diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml index 0575dfe..fa06d85 100644 --- a/app/pnpm-lock.yaml +++ b/app/pnpm-lock.yaml @@ -337,14 +337,13 @@ packages: '@types/node': 18.16.0 '@types/node-fetch': 2.6.4 abort-controller: 3.0.0 - agentkeepalive: 4.3.0 + agentkeepalive: 4.5.0 digest-fetch: 1.3.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.6.12 transitivePeerDependencies: - encoding - - supports-color dev: false /@apidevtools/json-schema-ref-parser@10.1.0: @@ -415,7 +414,7 @@ packages: '@babel/compat-data': 7.22.9 '@babel/core': 7.22.9 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.9 + browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 @@ -1994,8 +1993,8 @@ packages: dev: false optional: true - /@esbuild/android-arm64@0.18.14: - resolution: {integrity: sha512-rZ2v+Luba5/3D6l8kofWgTnqE+qsC/L5MleKIKFyllHTKHrNBMqeRCnZI1BtRx8B24xMYxeU32iIddRQqMsOsg==} + /@esbuild/android-arm64@0.18.18: + resolution: {integrity: sha512-dkAPYzRHq3dNXIzOyAknYOzsx8o3KWaNiuu56B2rP9IFPmFWMS58WQcTlUQi6iloku8ZyHHMluCe5sTWhKq/Yw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -2012,8 +2011,8 @@ packages: dev: false optional: true - /@esbuild/android-arm@0.18.14: - resolution: {integrity: sha512-blODaaL+lngG5bdK/t4qZcQvq2BBqrABmYwqPPcS5VRxrCSGHb9R/rA3fqxh7R18I7WU4KKv+NYkt22FDfalcg==} + /@esbuild/android-arm@0.18.18: + resolution: {integrity: sha512-oBymf7ZwplAawSxmiSlBCf+FMcY0f4bs5QP2jn43JKUf0M9DnrUTjqa5RvFPl1elw+sMfcpfBRPK+rb+E1q7zg==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -2030,8 +2029,8 @@ packages: dev: false optional: true - /@esbuild/android-x64@0.18.14: - resolution: {integrity: sha512-qSwh8y38QKl+1Iqg+YhvCVYlSk3dVLk9N88VO71U4FUjtiSFylMWK3Ugr8GC6eTkkP4Tc83dVppt2n8vIdlSGg==} + /@esbuild/android-x64@0.18.18: + resolution: {integrity: sha512-r7/pVcrUQMYkjvtE/1/n6BxhWM+/9tvLxDG1ev1ce4z3YsqoxMK9bbOM6bFcj0BowMeGQvOZWcBV182lFFKmrw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -2048,8 +2047,8 @@ packages: dev: false optional: true - /@esbuild/darwin-arm64@0.18.14: - resolution: {integrity: sha512-9Hl2D2PBeDYZiNbnRKRWuxwHa9v5ssWBBjisXFkVcSP5cZqzZRFBUWEQuqBHO4+PKx4q4wgHoWtfQ1S7rUqJ2Q==} + /@esbuild/darwin-arm64@0.18.18: + resolution: {integrity: sha512-MSe2iV9MAH3wfP0g+vzN9bp36rtPPuCSk+bT5E2vv/d8krvW5uB/Pi/Q5+txUZuxsG3GcO8dhygjnFq0wJU9hQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -2066,8 +2065,8 @@ packages: dev: false optional: true - /@esbuild/darwin-x64@0.18.14: - resolution: {integrity: sha512-ZnI3Dg4ElQ6tlv82qLc/UNHtFsgZSKZ7KjsUNAo1BF1SoYDjkGKHJyCrYyWjFecmXpvvG/KJ9A/oe0H12odPLQ==} + /@esbuild/darwin-x64@0.18.18: + resolution: {integrity: sha512-ARFYISOWkaifjcr48YtO70gcDNeOf1H2RnmOj6ip3xHIj66f3dAbhcd5Nph5np6oHI7DhHIcr9MWO18RvUL1bw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -2084,8 +2083,8 @@ packages: dev: false optional: true - /@esbuild/freebsd-arm64@0.18.14: - resolution: {integrity: sha512-h3OqR80Da4oQCIa37zl8tU5MwHQ7qgPV0oVScPfKJK21fSRZEhLE4IIVpmcOxfAVmqjU6NDxcxhYaM8aDIGRLw==} + /@esbuild/freebsd-arm64@0.18.18: + resolution: {integrity: sha512-BHnXmexzEWRU2ZySJosU0Ts0NRnJnNrMB6t4EiIaOSel73I8iLsNiTPLH0rJulAh19cYZutsB5XHK6N8fi5eMg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -2102,8 +2101,8 @@ packages: dev: false optional: true - /@esbuild/freebsd-x64@0.18.14: - resolution: {integrity: sha512-ha4BX+S6CZG4BoH9tOZTrFIYC1DH13UTCRHzFc3GWX74nz3h/N6MPF3tuR3XlsNjMFUazGgm35MPW5tHkn2lzQ==} + /@esbuild/freebsd-x64@0.18.18: + resolution: {integrity: sha512-n823w35wm0ZOobbuE//0sJjuz1Qj619+AwjgOcAJMN2pomZhH9BONCtn+KlfrmM/NWZ+27yB/eGVFzUIWLeh3w==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -2120,8 +2119,8 @@ packages: dev: false optional: true - /@esbuild/linux-arm64@0.18.14: - resolution: {integrity: sha512-IXORRe22In7U65NZCzjwAUc03nn8SDIzWCnfzJ6t/8AvGx5zBkcLfknI+0P+hhuftufJBmIXxdSTbzWc8X/V4w==} + /@esbuild/linux-arm64@0.18.18: + resolution: {integrity: sha512-zANxnwF0sCinDcAqoMohGoWBK9QaFJ65Vgh0ZE+RXtURaMwx+RfmfLElqtnn7X8OYNckMoIXSg7u+tZ3tqTlrA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -2138,8 +2137,8 @@ packages: dev: false optional: true - /@esbuild/linux-arm@0.18.14: - resolution: {integrity: sha512-5+7vehI1iqru5WRtJyU2XvTOvTGURw3OZxe3YTdE9muNNIdmKAVmSHpB3Vw2LazJk2ifEdIMt/wTWnVe5V98Kg==} + /@esbuild/linux-arm@0.18.18: + resolution: {integrity: sha512-Kck3jxPLQU4VeAGwe8Q4NU+IWIx+suULYOFUI9T0C2J1+UQlOHJ08ITN+MaJJ+2youzJOmKmcphH/t3SJxQ1Tw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -2156,8 +2155,8 @@ packages: dev: false optional: true - /@esbuild/linux-ia32@0.18.14: - resolution: {integrity: sha512-BfHlMa0nibwpjG+VXbOoqJDmFde4UK2gnW351SQ2Zd4t1N3zNdmUEqRkw/srC1Sa1DRBE88Dbwg4JgWCbNz/FQ==} + /@esbuild/linux-ia32@0.18.18: + resolution: {integrity: sha512-+VHz2sIRlY5u8IlaLJpdf5TL2kM76yx186pW7bpTB+vLWpzcFQVP04L842ZB2Ty13A1VXUvy3DbU1jV65P2skg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -2174,8 +2173,8 @@ packages: dev: false optional: true - /@esbuild/linux-loong64@0.18.14: - resolution: {integrity: sha512-j2/Ex++DRUWIAaUDprXd3JevzGtZ4/d7VKz+AYDoHZ3HjJzCyYBub9CU1wwIXN+viOP0b4VR3RhGClsvyt/xSw==} + /@esbuild/linux-loong64@0.18.18: + resolution: {integrity: sha512-fXPEPdeGBvguo/1+Na8OIWz3667BN1cwbGtTEZWTd0qdyTsk5gGf9jVX8MblElbDb/Cpw6y5JiaQuL96YmvBwQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -2192,8 +2191,8 @@ packages: dev: false optional: true - /@esbuild/linux-mips64el@0.18.14: - resolution: {integrity: sha512-qn2+nc+ZCrJmiicoAnJXJJkZWt8Nwswgu1crY7N+PBR8ChBHh89XRxj38UU6Dkthl2yCVO9jWuafZ24muzDC/A==} + /@esbuild/linux-mips64el@0.18.18: + resolution: {integrity: sha512-dLvRB87pIBIRnEIC32LIcgwK1JzlIuADIRjLKdUIpxauKwMuS/xMpN+cFl+0nN4RHNYOZ57DmXFFmQAcdlFOmw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -2210,8 +2209,8 @@ packages: dev: false optional: true - /@esbuild/linux-ppc64@0.18.14: - resolution: {integrity: sha512-aGzXzd+djqeEC5IRkDKt3kWzvXoXC6K6GyYKxd+wsFJ2VQYnOWE954qV2tvy5/aaNrmgPTb52cSCHFE+Z7Z0yg==} + /@esbuild/linux-ppc64@0.18.18: + resolution: {integrity: sha512-fRChqIJZ7hLkXSKfBLYgsX9Ssb5OGCjk3dzCETF5QSS1qjTgayLv0ALUdJDB9QOh/nbWwp+qfLZU6md4XcjL7w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -2228,8 +2227,8 @@ packages: dev: false optional: true - /@esbuild/linux-riscv64@0.18.14: - resolution: {integrity: sha512-8C6vWbfr0ygbAiMFLS6OPz0BHvApkT2gCboOGV76YrYw+sD/MQJzyITNsjZWDXJwPu9tjrFQOVG7zijRzBCnLw==} + /@esbuild/linux-riscv64@0.18.18: + resolution: {integrity: sha512-ALK/BT3u7Hoa/vHjow6W6+MKF0ohYcVcVA1EpskI4bkBPVuDLrUDqt2YFifg5UcZc8qup0CwQqWmFUd6VMNgaA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -2246,8 +2245,8 @@ packages: dev: false optional: true - /@esbuild/linux-s390x@0.18.14: - resolution: {integrity: sha512-G/Lf9iu8sRMM60OVGOh94ZW2nIStksEcITkXdkD09/T6QFD/o+g0+9WVyR/jajIb3A0LvBJ670tBnGe1GgXMgw==} + /@esbuild/linux-s390x@0.18.18: + resolution: {integrity: sha512-crT7jtOXd9iirY65B+mJQ6W0HWdNy8dtkZqKGWNcBnunpLcTCfne5y5bKic9bhyYzKpQEsO+C/VBPD8iF0RhRw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -2264,8 +2263,8 @@ packages: dev: false optional: true - /@esbuild/linux-x64@0.18.14: - resolution: {integrity: sha512-TBgStYBQaa3EGhgqIDM+ECnkreb0wkcKqL7H6m+XPcGUoU4dO7dqewfbm0mWEQYH3kzFHrzjOFNpSAVzDZRSJw==} + /@esbuild/linux-x64@0.18.18: + resolution: {integrity: sha512-/NSgghjBOW9ELqjXDYxOCCIsvQUZpvua1/6NdnA9Vnrp9UzEydyDdFXljUjMMS9p5KxMzbMO9frjHYGVHBfCHg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -2282,8 +2281,8 @@ packages: dev: false optional: true - /@esbuild/netbsd-x64@0.18.14: - resolution: {integrity: sha512-stvCcjyCQR2lMTroqNhAbvROqRjxPEq0oQ380YdXxA81TaRJEucH/PzJ/qsEtsHgXlWFW6Ryr/X15vxQiyRXVg==} + /@esbuild/netbsd-x64@0.18.18: + resolution: {integrity: sha512-8Otf05Vx5sZjLLDulgr5QS5lsWXMplKZEyHMArH9/S4olLlhzmdhQBPhzhJTNwaL2FJNdWcUPNGAcoD5zDTfUA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -2300,8 +2299,8 @@ packages: dev: false optional: true - /@esbuild/openbsd-x64@0.18.14: - resolution: {integrity: sha512-apAOJF14CIsN5ht1PA57PboEMsNV70j3FUdxLmA2liZ20gEQnfTG5QU0FhENo5nwbTqCB2O3WDsXAihfODjHYw==} + /@esbuild/openbsd-x64@0.18.18: + resolution: {integrity: sha512-tFiFF4kT5L5qhVrWJUNxEXWvvX8nK/UX9ZrB7apuTwY3f6+Xy4aFMBPwAVrBYtBd5MOUuyOVHK6HBZCAHkwUlw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -2318,8 +2317,8 @@ packages: dev: false optional: true - /@esbuild/sunos-x64@0.18.14: - resolution: {integrity: sha512-fYRaaS8mDgZcGybPn2MQbn1ZNZx+UXFSUoS5Hd2oEnlsyUcr/l3c6RnXf1bLDRKKdLRSabTmyCy7VLQ7VhGdOQ==} + /@esbuild/sunos-x64@0.18.18: + resolution: {integrity: sha512-MPogVV8Bzh8os4OM+YDGGsSzCzmNRiyKGtHoJyZLtI4BMmd6EcxmGlcEGK1uM46h1BiOyi7Z7teUtzzQhvkC+w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -2336,8 +2335,8 @@ packages: dev: false optional: true - /@esbuild/win32-arm64@0.18.14: - resolution: {integrity: sha512-1c44RcxKEJPrVj62XdmYhxXaU/V7auELCmnD+Ri+UCt+AGxTvzxl9uauQhrFso8gj6ZV1DaORV0sT9XSHOAk8Q==} + /@esbuild/win32-arm64@0.18.18: + resolution: {integrity: sha512-YKD6LF/XXY9REu+ZL5RAsusiG48n602qxsMVh/E8FFD9hp4OyTQaL9fpE1ovxwQXqFio+tT0ITUGjDSSSPN13w==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -2354,8 +2353,8 @@ packages: dev: false optional: true - /@esbuild/win32-ia32@0.18.14: - resolution: {integrity: sha512-EXAFttrdAxZkFQmpvcAQ2bywlWUsONp/9c2lcfvPUhu8vXBBenCXpoq9YkUvVP639ld3YGiYx0YUQ6/VQz3Maw==} + /@esbuild/win32-ia32@0.18.18: + resolution: {integrity: sha512-NjSBmBsyZBTsZB6ga6rA6PfG/RHnwruUz/9YEVXcm4STGauFWvhYhOMhEyw1yU5NVgYYm8CH5AltCm77TS21/Q==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -2372,8 +2371,8 @@ packages: dev: false optional: true - /@esbuild/win32-x64@0.18.14: - resolution: {integrity: sha512-K0QjGbcskx+gY+qp3v4/940qg8JitpXbdxFhRDA1aYoNaPff88+aEwoq45aqJ+ogpxQxmU0ZTjgnrQD/w8iiUg==} + /@esbuild/win32-x64@0.18.18: + resolution: {integrity: sha512-eTSg/gC3p3tdjj4roDhe5xu94l1s2jMazP8u2FsYO8SEKvSpPOO71EucprDn/IuErDPvTFUhV9lTw5z5WJCRKQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -2388,16 +2387,16 @@ packages: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: eslint: 8.40.0 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc@2.1.1: + resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -2418,14 +2417,21 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@floating-ui/core@1.3.1: - resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} + /@floating-ui/core@1.4.1: + resolution: {integrity: sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==} + dependencies: + '@floating-ui/utils': 0.1.1 dev: false - /@floating-ui/dom@1.4.5: - resolution: {integrity: sha512-96KnRWkRnuBSSFbj0sFGwwOUd8EkiecINVl0O9wiZlZ64EkpyAOG3Xc2vKKNJmru0Z7RqWNymA+6b8OZqjgyyw==} + /@floating-ui/dom@1.5.1: + resolution: {integrity: sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==} dependencies: - '@floating-ui/core': 1.3.1 + '@floating-ui/core': 1.4.1 + '@floating-ui/utils': 0.1.1 + dev: false + + /@floating-ui/utils@0.1.1: + resolution: {integrity: sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==} dev: false /@fontsource/inconsolata@5.0.5: @@ -2636,7 +2642,7 @@ packages: resolution: {integrity: sha512-E6s9hfQx125CfGXW5896s0ZtUEecTS69KvqkNDPxKomeZ/Y2rNsG90yO8K47uchXqKw5RhD/rCNcOJ2VODfQiw==} dependencies: '@types/json-schema': 7.0.12 - '@types/node': 20.4.2 + '@types/node': 20.4.8 fast-deep-equal: 3.1.3 openapi-typescript: 5.4.1 dev: true @@ -2650,11 +2656,11 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 - fast-glob: 3.3.0 + fast-glob: 3.3.1 is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: true /@popperjs/core@2.11.8: @@ -2732,7 +2738,7 @@ packages: '@sentry/core': 7.61.0 '@sentry/types': 7.61.0 '@sentry/utils': 7.61.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@sentry/browser@7.61.0: @@ -2744,7 +2750,7 @@ packages: '@sentry/replay': 7.61.0 '@sentry/types': 7.61.0 '@sentry/utils': 7.61.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@sentry/cli@1.75.2: @@ -2770,7 +2776,7 @@ packages: dependencies: '@sentry/types': 7.61.0 '@sentry/utils': 7.61.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@sentry/integrations@7.61.0: @@ -2780,7 +2786,7 @@ packages: '@sentry/types': 7.61.0 '@sentry/utils': 7.61.0 localforage: 1.10.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@sentry/nextjs@7.61.0(next@13.4.2)(react@18.2.0)(webpack@5.88.2): @@ -2807,7 +2813,7 @@ packages: react: 18.2.0 rollup: 2.78.0 stacktrace-parser: 0.1.10 - tslib: 2.6.0 + tslib: 2.6.1 webpack: 5.88.2 transitivePeerDependencies: - encoding @@ -2825,7 +2831,7 @@ packages: cookie: 0.4.2 https-proxy-agent: 5.0.1 lru_map: 0.3.3 - tslib: 2.6.0 + tslib: 2.6.1 transitivePeerDependencies: - supports-color dev: false @@ -2841,7 +2847,7 @@ packages: '@sentry/utils': 7.61.0 hoist-non-react-statics: 3.3.2 react: 18.2.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@sentry/replay@7.61.0: @@ -2863,7 +2869,7 @@ packages: engines: {node: '>=8'} dependencies: '@sentry/types': 7.61.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@sentry/webpack-plugin@1.20.0: @@ -2897,7 +2903,7 @@ packages: /@swc/helpers@0.5.1: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: false /@t3-oss/env-core@0.3.1(typescript@5.0.4)(zod@3.21.4): @@ -3092,7 +3098,7 @@ packages: /@types/eslint-scope@3.7.4: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} dependencies: - '@types/eslint': 8.44.1 + '@types/eslint': 8.44.2 '@types/estree': 1.0.1 /@types/eslint@8.37.0: @@ -3102,8 +3108,8 @@ packages: '@types/json-schema': 7.0.12 dev: true - /@types/eslint@8.44.1: - resolution: {integrity: sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==} + /@types/eslint@8.44.2: + resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} dependencies: '@types/estree': 1.0.1 '@types/json-schema': 7.0.12 @@ -3156,23 +3162,23 @@ packages: /@types/lodash-es@4.17.8: resolution: {integrity: sha512-euY3XQcZmIzSy7YH5+Unb3b2X12Wtk54YWINBvvGQ5SmMvwb11JQskGsfkH/5HXK77Kr8GF0wkVDIxzAisWtog==} dependencies: - '@types/lodash': 4.14.195 + '@types/lodash': 4.14.196 dev: true /@types/lodash.clonedeep@4.5.7: resolution: {integrity: sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==} dependencies: - '@types/lodash': 4.14.195 + '@types/lodash': 4.14.196 dev: false /@types/lodash.mergewith@4.6.7: resolution: {integrity: sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==} dependencies: - '@types/lodash': 4.14.195 + '@types/lodash': 4.14.196 dev: false - /@types/lodash@4.14.195: - resolution: {integrity: sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==} + /@types/lodash@4.14.196: + resolution: {integrity: sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==} /@types/mime@1.3.2: resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} @@ -3200,11 +3206,11 @@ packages: /@types/node@18.16.0: resolution: {integrity: sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==} - /@types/node@18.17.1: - resolution: {integrity: sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==} + /@types/node@18.17.3: + resolution: {integrity: sha512-2x8HWtFk0S99zqVQABU9wTpr8wPoaDHZUcAkoTKH+nL7kPv3WUI9cRi/Kk5Mz4xdqXSqTkKP7IWNoQQYCnDsTA==} - /@types/node@20.4.2: - resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==} + /@types/node@20.4.8: + resolution: {integrity: sha512-0mHckf6D2DiIAzh8fM8f3HQCvMKDpK94YQ0DSVkfWTG9BZleYIWudw9cJxX8oCk9bM+vAkDyujDV6dmKHbvQpg==} dev: true /@types/parse-json@4.0.0: @@ -3308,7 +3314,7 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.1 + '@eslint-community/regexpp': 4.6.2 '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.59.6 '@typescript-eslint/type-utils': 5.59.6(eslint@8.40.0)(typescript@5.0.4) @@ -3424,7 +3430,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.59.6 - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true /@vercel/og@0.5.9: @@ -3455,9 +3461,9 @@ packages: /@vitest/snapshot@0.33.0: resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} dependencies: - magic-string: 0.30.1 + magic-string: 0.30.2 pathe: 1.1.1 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true /@vitest/spy@0.33.0: @@ -3471,7 +3477,7 @@ packages: dependencies: diff-sequences: 29.4.3 loupe: 2.3.6 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true /@webassemblyjs/ast@1.11.6: @@ -3628,15 +3634,11 @@ packages: - supports-color dev: false - /agentkeepalive@4.3.0: - resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} engines: {node: '>= 8.0.0'} dependencies: - debug: 4.3.4 - depd: 2.0.0 humanize-ms: 1.2.1 - transitivePeerDependencies: - - supports-color dev: false /ajv-keywords@3.5.2(ajv@6.12.6): @@ -3699,7 +3701,7 @@ packages: resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} engines: {node: '>=10'} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: false /aria-query@5.3.0: @@ -3735,6 +3737,17 @@ packages: engines: {node: '>=8'} dev: true + /array.prototype.findlastindex@1.2.2: + resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + /array.prototype.flat@1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} @@ -3798,14 +3811,14 @@ packages: resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} engines: {node: '>=4'} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: false /ast-types@0.16.1: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: false /asynckit@0.4.0: @@ -3856,7 +3869,7 @@ packages: dependencies: '@babel/runtime': 7.22.6 cosmiconfig: 6.0.0 - resolve: 1.22.2 + resolve: 1.22.4 dev: false /babel-plugin-macros@3.1.0: @@ -3865,7 +3878,7 @@ packages: dependencies: '@babel/runtime': 7.22.6 cosmiconfig: 7.1.0 - resolve: 1.22.2 + resolve: 1.22.4 dev: false /babel-plugin-syntax-jsx@6.18.0: @@ -3962,20 +3975,10 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001519 - electron-to-chromium: 1.4.482 + electron-to-chromium: 1.4.485 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) - /browserslist@4.21.9: - resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001517 - electron-to-chromium: 1.4.465 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11(browserslist@4.21.9) - /buffer-from@0.1.2: resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==} dev: false @@ -4029,9 +4032,6 @@ packages: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} dev: false - /caniuse-lite@1.0.30001517: - resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} - /caniuse-lite@1.0.30001519: resolution: {integrity: sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==} @@ -4154,8 +4154,8 @@ packages: resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} dependencies: inflation: 2.0.0 - qs: 6.11.0 - raw-body: 2.5.1 + qs: 6.11.2 + raw-body: 2.5.2 type-is: 1.6.18 dev: false @@ -4465,7 +4465,7 @@ packages: dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 - execa: 7.1.1 + execa: 7.2.0 titleize: 3.0.0 dev: true @@ -4578,11 +4578,8 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: false - /electron-to-chromium@1.4.465: - resolution: {integrity: sha512-XQcuHvEJRMU97UJ75e170mgcITZoz0lIyiaVjk6R+NMTJ8KBIvUHYd1779swgOppUlzxR+JsLpq59PumaXS1jQ==} - - /electron-to-chromium@1.4.482: - resolution: {integrity: sha512-h+UqpfmEr1Qkk0zp7ej/jid7CXoq4m4QzW6wNTb0ELJ/BZCpA4wgUylBIMGCe621tnr4l5VmoHjdoSx2lbnNJA==} + /electron-to-chromium@1.4.485: + resolution: {integrity: sha512-1ndQ5IBNEnFirPwvyud69GHL+31FkE09gH/CJ6m3KCbkx3i0EVOrjwz4UNxRmN9H8OVHbC6vMRZGN1yCvjSs9w==} /emoji-regex@10.2.1: resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} @@ -4613,12 +4610,12 @@ packages: engines: {node: '>= 0.8'} dev: false - /engine.io-client@6.5.1: - resolution: {integrity: sha512-hE5wKXH8Ru4L19MbM1GgYV/2Qo54JSMh1rlJbfpa40bEWkCKNo3ol2eOtGmowcr+ysgbI7+SGL+by42Q3pt/Ng==} + /engine.io-client@6.5.2: + resolution: {integrity: sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==} dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 - engine.io-parser: 5.1.0 + engine.io-parser: 5.2.1 ws: 8.11.0 xmlhttprequest-ssl: 2.0.0 transitivePeerDependencies: @@ -4627,14 +4624,14 @@ packages: - utf-8-validate dev: false - /engine.io-parser@5.1.0: - resolution: {integrity: sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==} + /engine.io-parser@5.2.1: + resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} engines: {node: '>=10.0.0'} dev: false - /engine.io@6.5.1: - resolution: {integrity: sha512-mGqhI+D7YxS9KJMppR6Iuo37Ed3abhU8NdfgSvJSDUafQutrN+sPTncJYTyM9+tkhSmWodKtVYGPPHyXJEwEQA==} - engines: {node: '>=10.0.0'} + /engine.io@6.5.2: + resolution: {integrity: sha512-IXsMcGpw/xRfjra46sVZVHiSWo/nJ/3g1337q9KNXtS6YRzbW5yIzTCb9DjhrBe7r3GZQR0I4+nq+4ODk5g/cA==} + engines: {node: '>=10.2.0'} dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.13 @@ -4644,7 +4641,7 @@ packages: cookie: 0.4.2 cors: 2.8.5 debug: 4.3.4 - engine.io-parser: 5.1.0 + engine.io-parser: 5.2.1 ws: 8.11.0 transitivePeerDependencies: - bufferutil @@ -4805,34 +4802,34 @@ packages: '@esbuild/win32-x64': 0.17.19 dev: false - /esbuild@0.18.14: - resolution: {integrity: sha512-uNPj5oHPYmj+ZhSQeYQVFZ+hAlJZbAGOmmILWIqrGvPVlNLbyOvU5Bu6Woi8G8nskcx0vwY0iFoMPrzT86Ko+w==} + /esbuild@0.18.18: + resolution: {integrity: sha512-UckDPWvdVJLNT0npk5AMTpVwGRQhS76rWFLmHwEtgNvWlR9sgVV1eyc/oeBtM86q9s8ABBLMmm0CwNxhVemOiw==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.14 - '@esbuild/android-arm64': 0.18.14 - '@esbuild/android-x64': 0.18.14 - '@esbuild/darwin-arm64': 0.18.14 - '@esbuild/darwin-x64': 0.18.14 - '@esbuild/freebsd-arm64': 0.18.14 - '@esbuild/freebsd-x64': 0.18.14 - '@esbuild/linux-arm': 0.18.14 - '@esbuild/linux-arm64': 0.18.14 - '@esbuild/linux-ia32': 0.18.14 - '@esbuild/linux-loong64': 0.18.14 - '@esbuild/linux-mips64el': 0.18.14 - '@esbuild/linux-ppc64': 0.18.14 - '@esbuild/linux-riscv64': 0.18.14 - '@esbuild/linux-s390x': 0.18.14 - '@esbuild/linux-x64': 0.18.14 - '@esbuild/netbsd-x64': 0.18.14 - '@esbuild/openbsd-x64': 0.18.14 - '@esbuild/sunos-x64': 0.18.14 - '@esbuild/win32-arm64': 0.18.14 - '@esbuild/win32-ia32': 0.18.14 - '@esbuild/win32-x64': 0.18.14 + '@esbuild/android-arm': 0.18.18 + '@esbuild/android-arm64': 0.18.18 + '@esbuild/android-x64': 0.18.18 + '@esbuild/darwin-arm64': 0.18.18 + '@esbuild/darwin-x64': 0.18.18 + '@esbuild/freebsd-arm64': 0.18.18 + '@esbuild/freebsd-x64': 0.18.18 + '@esbuild/linux-arm': 0.18.18 + '@esbuild/linux-arm64': 0.18.18 + '@esbuild/linux-ia32': 0.18.18 + '@esbuild/linux-loong64': 0.18.18 + '@esbuild/linux-mips64el': 0.18.18 + '@esbuild/linux-ppc64': 0.18.18 + '@esbuild/linux-riscv64': 0.18.18 + '@esbuild/linux-s390x': 0.18.18 + '@esbuild/linux-x64': 0.18.18 + '@esbuild/netbsd-x64': 0.18.18 + '@esbuild/openbsd-x64': 0.18.18 + '@esbuild/sunos-x64': 0.18.18 + '@esbuild/win32-arm64': 0.18.18 + '@esbuild/win32-ia32': 0.18.18 + '@esbuild/win32-x64': 0.18.18 dev: true /escalade@3.1.1: @@ -4864,11 +4861,11 @@ packages: '@rushstack/eslint-patch': 1.3.2 '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) eslint: 8.40.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.40.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-import-resolver-node: 0.3.8 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.8)(eslint-plugin-import@2.28.0)(eslint@8.40.0) + eslint-plugin-import: 2.28.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.40.0) - eslint-plugin-react: 7.32.2(eslint@8.40.0) + eslint-plugin-react: 7.33.1(eslint@8.40.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.40.0) typescript: 5.0.4 transitivePeerDependencies: @@ -4876,17 +4873,17 @@ packages: - supports-color dev: true - /eslint-import-resolver-node@0.3.7: - resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + /eslint-import-resolver-node@0.3.8: + resolution: {integrity: sha512-tEe+Pok22qIGaK3KoMP+N96GVDS66B/zreoVVmiavLvRUEmGRtvb4B8wO9jwnb8d2lvHtrkhZ7UD73dWBVnf/Q==} dependencies: debug: 3.2.7 - is-core-module: 2.12.1 - resolve: 1.22.2 + is-core-module: 2.13.0 + resolve: 1.22.4 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.40.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.8)(eslint-plugin-import@2.28.0)(eslint@8.40.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4896,11 +4893,11 @@ packages: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.40.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-plugin-import: 2.28.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) get-tsconfig: 4.6.2 globby: 13.2.2 - is-core-module: 2.12.1 + is-core-module: 2.13.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: @@ -4910,7 +4907,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4934,14 +4931,14 @@ packages: '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) debug: 3.2.7 eslint: 8.40.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.40.0) + eslint-import-resolver-node: 0.3.8 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.8)(eslint-plugin-import@2.28.0)(eslint@8.40.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + /eslint-plugin-import@2.28.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0): + resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -4952,19 +4949,22 @@ packages: dependencies: '@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4) array-includes: 3.1.6 + array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.40.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) + eslint-import-resolver-node: 0.3.8 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.6)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) has: 1.0.3 - is-core-module: 2.12.1 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 + object.fromentries: 2.0.6 + object.groupby: 1.0.0 object.values: 1.1.6 - resolve: 1.22.2 + resolve: 1.22.4 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -4990,7 +4990,7 @@ packages: emoji-regex: 9.2.2 eslint: 8.40.0 has: 1.0.3 - jsx-ast-utils: 3.3.4 + jsx-ast-utils: 3.3.5 language-tags: 1.0.5 minimatch: 3.1.2 object.entries: 1.1.6 @@ -5007,8 +5007,8 @@ packages: eslint: 8.40.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.40.0): - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + /eslint-plugin-react@7.33.1(eslint@8.40.0): + resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -5019,7 +5019,7 @@ packages: doctrine: 2.1.0 eslint: 8.40.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.4 + jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 @@ -5058,16 +5058,16 @@ packages: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope@7.2.1: - resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys@3.4.2: + resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -5077,8 +5077,8 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.1.0 + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.1 '@eslint/js': 8.40.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 @@ -5089,8 +5089,8 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.1 - eslint-visitor-keys: 3.4.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.2 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -5105,7 +5105,7 @@ packages: imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.4.1 + js-sdsl: 4.4.2 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -5126,7 +5126,7 @@ packages: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true /esprima@4.0.1: @@ -5201,8 +5201,8 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: cross-spawn: 7.0.3 @@ -5264,8 +5264,8 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-glob@3.3.0: - resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5358,7 +5358,7 @@ packages: resolution: {integrity: sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==} engines: {node: '>=10'} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: false /follow-redirects@1.15.2: @@ -5429,7 +5429,7 @@ packages: dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - tslib: 2.6.0 + tslib: 2.6.1 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 dev: false @@ -5611,7 +5611,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.0 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -5622,7 +5622,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.0 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -5661,8 +5661,8 @@ packages: chokidar: 3.5.3 cosmiconfig: 7.1.0 json5: 2.2.3 - pg: 8.11.1 - tslib: 2.6.0 + pg: 8.11.2 + tslib: 2.6.1 yargs: 16.2.0 transitivePeerDependencies: - pg-native @@ -5676,7 +5676,7 @@ packages: destr: 2.0.1 iron-webcrypto: 0.7.1 radix3: 1.0.1 - ufo: 1.1.2 + ufo: 1.2.0 uncrypto: 0.1.3 dev: false @@ -5928,8 +5928,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 @@ -6116,7 +6116,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.17.1 + '@types/node': 18.17.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6124,8 +6124,8 @@ packages: resolution: {integrity: sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==} dev: false - /js-sdsl@4.4.1: - resolution: {integrity: sha512-6Gsx8R0RucyePbWqPssR8DyfuXmLBooYN5cZFZKjHGnQuaf7pEzhtpceagJxVu4LqhYY5EYA7nko3FmeHZ1KbA==} + /js-sdsl@4.4.2: + resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==} dev: true /js-tiktoken@1.0.7: @@ -6158,7 +6158,7 @@ packages: dependencies: '@bcherny/json-schema-ref-parser': 10.0.5-fork '@types/json-schema': 7.0.12 - '@types/lodash': 4.14.195 + '@types/lodash': 4.14.196 '@types/prettier': 2.7.3 cli-color: 2.0.3 get-stdin: 8.0.0 @@ -6203,8 +6203,8 @@ packages: resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} dev: false - /jsx-ast-utils@3.3.4: - resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==} + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: array-includes: 3.1.6 @@ -6350,8 +6350,8 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: false - /magic-string@0.30.1: - resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==} + /magic-string@0.30.2: + resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -6482,7 +6482,7 @@ packages: acorn: 8.10.0 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.1.2 + ufo: 1.2.0 dev: true /monaco-editor@0.40.0: @@ -6568,7 +6568,7 @@ packages: dependencies: next: 13.4.2(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 - tslib: 2.6.0 + tslib: 2.6.1 use-query-params: 2.2.1(react-dom@18.2.0)(react@18.2.0) dev: false @@ -6600,7 +6600,7 @@ packages: '@next/env': 13.4.2 '@swc/helpers': 0.5.1 busboy: 1.6.0 - caniuse-lite: 1.0.30001517 + caniuse-lite: 1.0.30001519 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -6755,6 +6755,15 @@ packages: es-abstract: 1.22.1 dev: true + /object.groupby@1.0.0: + resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + get-intrinsic: 1.2.1 + dev: true + /object.hasown@1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: @@ -6822,14 +6831,13 @@ packages: '@types/node': 18.16.0 '@types/node-fetch': 2.6.4 abort-controller: 3.0.0 - agentkeepalive: 4.3.0 + agentkeepalive: 4.5.0 digest-fetch: 1.3.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.6.12 transitivePeerDependencies: - encoding - - supports-color dev: false /openapi-types@12.1.3: @@ -6845,7 +6853,7 @@ packages: mime: 3.0.0 prettier: 2.8.8 tiny-glob: 0.2.9 - undici: 5.22.1 + undici: 5.23.0 yargs-parser: 21.1.1 dev: true @@ -6854,10 +6862,10 @@ packages: hasBin: true dependencies: ansi-colors: 4.1.3 - fast-glob: 3.3.0 + fast-glob: 3.3.1 js-yaml: 4.1.0 supports-color: 9.4.0 - undici: 5.22.1 + undici: 5.23.0 yargs-parser: 21.1.1 dev: true @@ -6994,8 +7002,8 @@ packages: dev: false optional: true - /pg-connection-string@2.6.1: - resolution: {integrity: sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==} + /pg-connection-string@2.6.2: + resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} dev: false /pg-int8@1.0.1: @@ -7008,12 +7016,12 @@ packages: engines: {node: '>=4'} dev: false - /pg-pool@3.6.1(pg@8.11.1): + /pg-pool@3.6.1(pg@8.11.2): resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} peerDependencies: pg: '>=8.0' dependencies: - pg: 8.11.1 + pg: 8.11.2 dev: false /pg-protocol@1.6.0: @@ -7044,8 +7052,8 @@ packages: postgres-range: 1.1.3 dev: false - /pg@8.11.1: - resolution: {integrity: sha512-utdq2obft07MxaDg0zBJI+l/M3mBRfIpEN3iSemsz0G5F2/VXx+XzqF4oxrbIZXQxt2AZzIUzyVg/YM6xOP/WQ==} + /pg@8.11.2: + resolution: {integrity: sha512-l4rmVeV8qTIrrPrIR3kZQqBgSN93331s9i6wiUiLOSk0Q7PmUxZD/m1rQI622l3NfqBby9Ar5PABfS/SulfieQ==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -7055,8 +7063,8 @@ packages: dependencies: buffer-writer: 2.0.0 packet-reader: 1.0.0 - pg-connection-string: 2.6.1 - pg-pool: 3.6.1(pg@8.11.1) + pg-connection-string: 2.6.2 + pg-pool: 3.6.1(pg@8.11.2) pg-protocol: 1.6.0 pg-types: 2.2.0 pgpass: 1.0.5 @@ -7103,8 +7111,8 @@ packages: source-map-js: 1.0.2 dev: false - /postcss@8.4.26: - resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} + /postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -7205,8 +7213,8 @@ packages: hasBin: true dev: false - /pretty-format@29.6.1: - resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==} + /pretty-format@29.6.2: + resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.0 @@ -7281,6 +7289,13 @@ packages: side-channel: 1.0.4 dev: false + /qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: false + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -7309,6 +7324,16 @@ packages: unpipe: 1.0.0 dev: false + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + /raw-loader@4.0.2(webpack@5.88.2): resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} engines: {node: '>= 10.13.0'} @@ -7325,7 +7350,7 @@ packages: dependencies: '@babel/runtime': 7.22.6 '@types/base16': 1.0.2 - '@types/lodash': 4.14.195 + '@types/lodash': 4.14.196 base16: 1.0.0 color: 3.2.1 csstype: 3.1.2 @@ -7422,7 +7447,7 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@babel/runtime': 7.22.6 - '@types/lodash': 4.14.195 + '@types/lodash': 4.14.196 '@types/react': 18.2.6 react: 18.2.0 react-base16-styling: 0.9.1 @@ -7441,7 +7466,7 @@ packages: '@types/react': 18.2.6 react: 18.2.0 react-style-singleton: 2.2.1(@types/react@18.2.6)(react@18.2.0) - tslib: 2.6.0 + tslib: 2.6.1 dev: false /react-remove-scroll@2.5.6(@types/react@18.2.6)(react@18.2.0): @@ -7458,7 +7483,7 @@ packages: react: 18.2.0 react-remove-scroll-bar: 2.3.4(@types/react@18.2.6)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.2.6)(react@18.2.0) - tslib: 2.6.0 + tslib: 2.6.1 use-callback-ref: 1.3.0(@types/react@18.2.6)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.6)(react@18.2.0) dev: false @@ -7472,7 +7497,7 @@ packages: '@babel/runtime': 7.22.6 '@emotion/cache': 11.11.0 '@emotion/react': 11.11.1(@types/react@18.2.6)(react@18.2.0) - '@floating-ui/dom': 1.4.5 + '@floating-ui/dom': 1.5.1 '@types/react-transition-group': 4.4.6 memoize-one: 6.0.0 prop-types: 15.8.1 @@ -7506,7 +7531,7 @@ packages: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /react-syntax-highlighter@15.5.0(react@18.2.0): @@ -7593,7 +7618,7 @@ packages: ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /refractor@3.6.0: @@ -7633,11 +7658,11 @@ packages: /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + /resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -7645,7 +7670,7 @@ packages: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -7670,8 +7695,8 @@ packages: fsevents: 2.3.2 dev: false - /rollup@3.26.3: - resolution: {integrity: sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==} + /rollup@3.27.2: + resolution: {integrity: sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -7698,7 +7723,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.0 + tslib: 2.6.1 dev: false /safe-array-concat@1.0.0: @@ -7880,7 +7905,7 @@ packages: dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 - engine.io-client: 6.5.1 + engine.io-client: 6.5.2 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil @@ -7906,7 +7931,7 @@ packages: base64id: 2.0.0 cors: 2.8.5 debug: 4.3.4 - engine.io: 6.5.1 + engine.io: 6.5.2 socket.io-adapter: 2.5.2 socket.io-parser: 4.2.4 transitivePeerDependencies: @@ -8062,8 +8087,8 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.0.1: - resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.10.0 dev: true @@ -8129,7 +8154,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.2 - tslib: 2.6.0 + tslib: 2.6.1 dev: true /tapable@2.2.1: @@ -8312,8 +8337,8 @@ packages: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: false - /tslib@2.6.0: - resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} + /tslib@2.6.1: + resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} /tsutils@3.21.0(typescript@5.0.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -8422,8 +8447,8 @@ packages: engines: {node: '>=12.20'} hasBin: true - /ufo@1.1.2: - resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} + /ufo@1.2.0: + resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -8438,8 +8463,8 @@ packages: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} dev: false - /undici@5.22.1: - resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} + /undici@5.23.0: + resolution: {integrity: sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==} engines: {node: '>=14.0'} dependencies: busboy: 1.6.0 @@ -8472,16 +8497,6 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 - /update-browserslist-db@1.0.11(browserslist@4.21.9): - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.9 - escalade: 3.1.1 - picocolors: 1.0.0 - /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -8499,7 +8514,7 @@ packages: dependencies: '@types/react': 18.2.6 react: 18.2.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /use-composed-ref@1.3.0(react@18.2.0): @@ -8568,7 +8583,7 @@ packages: '@types/react': 18.2.6 detect-node-es: 1.1.0 react: 18.2.0 - tslib: 2.6.0 + tslib: 2.6.1 dev: false /use-sync-external-store@1.2.0(react@18.2.0): @@ -8623,7 +8638,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.4(@types/node@18.16.0) + vite: 4.4.8(@types/node@18.16.0) transitivePeerDependencies: - '@types/node' - less @@ -8651,8 +8666,8 @@ packages: - typescript dev: false - /vite@4.4.4(@types/node@18.16.0): - resolution: {integrity: sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==} + /vite@4.4.8(@types/node@18.16.0): + resolution: {integrity: sha512-LONawOUUjxQridNWGQlNizfKH89qPigK36XhMI7COMGztz8KNY0JHim7/xDd71CZwGT4HtSRgI7Hy+RlhG0Gvg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -8680,9 +8695,9 @@ packages: optional: true dependencies: '@types/node': 18.16.0 - esbuild: 0.18.14 - postcss: 8.4.26 - rollup: 3.26.3 + esbuild: 0.18.18 + postcss: 8.4.27 + rollup: 3.27.2 optionalDependencies: fsevents: 2.3.2 dev: true @@ -8732,14 +8747,14 @@ packages: chai: 4.3.7 debug: 4.3.4 local-pkg: 0.4.3 - magic-string: 0.30.1 + magic-string: 0.30.2 pathe: 1.1.1 picocolors: 1.0.0 std-env: 3.3.3 - strip-literal: 1.0.1 + strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.4(@types/node@18.16.0) + vite: 4.4.8(@types/node@18.16.0) vite-node: 0.33.0(@types/node@18.16.0) why-is-node-running: 2.2.2 transitivePeerDependencies: diff --git a/app/src/server/api/root.router.ts b/app/src/server/api/root.router.ts index 6ec1d8e..9ff807f 100644 --- a/app/src/server/api/root.router.ts +++ b/app/src/server/api/root.router.ts @@ -8,6 +8,7 @@ import { evaluationsRouter } from "./routers/evaluations.router"; import { worldChampsRouter } from "./routers/worldChamps.router"; import { datasetsRouter } from "./routers/datasets.router"; import { datasetEntries } from "./routers/datasetEntries.router"; +import { externalApiRouter } from "./routers/externalApi.router"; /** * This is the primary router for your server. @@ -24,6 +25,7 @@ export const appRouter = createTRPCRouter({ worldChamps: worldChampsRouter, datasets: datasetsRouter, datasetEntries: datasetEntries, + externalApi: externalApiRouter, }); // export type definition of API diff --git a/app/src/server/api/trpc.ts b/app/src/server/api/trpc.ts index 2f6c8b9..eab697e 100644 --- a/app/src/server/api/trpc.ts +++ b/app/src/server/api/trpc.ts @@ -64,7 +64,7 @@ export const createTRPCContext = async (opts: CreateNextContextOptions) => { // Get the session from the server using the getServerSession wrapper function const session = await getServerAuthSession({ req, res }); - const apiKey = req.headers["x-openpipe-api-key"] as string | null; + const apiKey = req.headers["X-Openpipe-Api-Key"] as string | null; console.log('api key is', apiKey) diff --git a/app/src/server/scripts/client-codegen.ts b/app/src/server/scripts/client-codegen.ts index d3bbc0f..e5a2945 100644 --- a/app/src/server/scripts/client-codegen.ts +++ b/app/src/server/scripts/client-codegen.ts @@ -34,3 +34,5 @@ execSync( ); console.log("Done!"); + +process.exit(0); diff --git a/app/src/server/utils/openai.ts b/app/src/server/utils/openai.ts index e345456..9112474 100644 --- a/app/src/server/utils/openai.ts +++ b/app/src/server/utils/openai.ts @@ -1,6 +1,10 @@ import { env } from "~/env.mjs"; -import OpenAI from "openai"; +// import OpenAI from "openai"; + +// import { OpenPipe } from "../../../../client-libs/js/openai/index"; + +import { OpenAI } from "openpipe"; // Set a dummy key so it doesn't fail at build time -export const openai = new OpenAI({ apiKey: env.OPENAI_API_KEY ?? "dummy-key" }); +export const openai = new OpenAI.OpenPipe({ apiKey: env.OPENAI_API_KEY ?? "dummy-key" }); diff --git a/client-libs/js/codegen/api.ts b/client-libs/js/codegen/api.ts deleted file mode 100644 index f1f89f8..0000000 --- a/client-libs/js/codegen/api.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * OpenPipe API - * The public API for reporting API calls to OpenPipe - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import type { Configuration } from './configuration'; -import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; -import globalAxios from 'axios'; -// Some imports not used depending on template conditions -// @ts-ignore -import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common'; -import type { RequestArgs } from './base'; -// @ts-ignore -import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError } from './base'; - - diff --git a/client-libs/js/package.json b/client-libs/js/package.json deleted file mode 100644 index 9f7a8a4..0000000 --- a/client-libs/js/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "openpipe", - "version": "0.1.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "openai": "^3.3.0" - }, - "devDependencies": { - "dotenv": "^16.3.1", - "tsx": "^3.12.7", - "typescript": "^5.1.6" - } - } - \ No newline at end of file diff --git a/client-libs/schema.json b/client-libs/schema.json index a3be03f..3cf2280 100644 --- a/client-libs/schema.json +++ b/client-libs/schema.json @@ -10,7 +10,132 @@ "url": "https://app.openpipe.ai/api" } ], - "paths": {}, + "paths": { + "/v1/check-cache": { + "post": { + "operationId": "externalApi-checkCache", + "description": "Check if a prompt is cached", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "startTime": { + "type": "number", + "description": "Unix timestamp in milliseconds" + }, + "reqPayload": { + "description": "JSON-encoded request payload" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Extra tags to attach to the call for filtering. Eg { \"userId\": \"123\", \"promptId\": \"populate-title\" }" + } + }, + "required": [ + "startTime" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "respPayload": { + "description": "JSON-encoded response payload" + } + }, + "additionalProperties": false + } + } + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + }, + "/v1/report": { + "post": { + "operationId": "externalApi-report", + "description": "Report an API call", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "startTime": { + "type": "number", + "description": "Unix timestamp in milliseconds" + }, + "endTime": { + "type": "number", + "description": "Unix timestamp in milliseconds" + }, + "reqPayload": { + "description": "JSON-encoded request payload" + }, + "respPayload": { + "description": "JSON-encoded response payload" + }, + "respStatus": { + "type": "number", + "description": "HTTP status code of response" + }, + "error": { + "type": "string", + "description": "User-friendly error message" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Extra tags to attach to the call for filtering. Eg { \"userId\": \"123\", \"promptId\": \"populate-title\" }" + } + }, + "required": [ + "startTime", + "endTime" + ], + "additionalProperties": false + } + } + } + }, + "parameters": [], + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "default": { + "$ref": "#/components/responses/error" + } + } + } + } + }, "components": { "securitySchemes": { "Authorization": { diff --git a/client-libs/typescript/.gitignore b/client-libs/typescript/.gitignore new file mode 100644 index 0000000..f06235c --- /dev/null +++ b/client-libs/typescript/.gitignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/client-libs/js/codegen/.gitignore b/client-libs/typescript/codegen/.gitignore similarity index 100% rename from client-libs/js/codegen/.gitignore rename to client-libs/typescript/codegen/.gitignore diff --git a/client-libs/js/codegen/.npmignore b/client-libs/typescript/codegen/.npmignore similarity index 100% rename from client-libs/js/codegen/.npmignore rename to client-libs/typescript/codegen/.npmignore diff --git a/client-libs/js/codegen/.openapi-generator-ignore b/client-libs/typescript/codegen/.openapi-generator-ignore similarity index 100% rename from client-libs/js/codegen/.openapi-generator-ignore rename to client-libs/typescript/codegen/.openapi-generator-ignore diff --git a/client-libs/js/codegen/.openapi-generator/FILES b/client-libs/typescript/codegen/.openapi-generator/FILES similarity index 100% rename from client-libs/js/codegen/.openapi-generator/FILES rename to client-libs/typescript/codegen/.openapi-generator/FILES diff --git a/client-libs/js/codegen/.openapi-generator/VERSION b/client-libs/typescript/codegen/.openapi-generator/VERSION similarity index 100% rename from client-libs/js/codegen/.openapi-generator/VERSION rename to client-libs/typescript/codegen/.openapi-generator/VERSION diff --git a/client-libs/typescript/codegen/api.js b/client-libs/typescript/codegen/api.js new file mode 100644 index 0000000..9680129 --- /dev/null +++ b/client-libs/typescript/codegen/api.js @@ -0,0 +1,272 @@ +"use strict"; +/* tslint:disable */ +/* eslint-disable */ +/** + * OpenPipe API + * The public API for reporting API calls to OpenPipe + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DefaultApi = exports.DefaultApiFactory = exports.DefaultApiFp = exports.DefaultApiAxiosParamCreator = void 0; +var axios_1 = require("axios"); +// Some imports not used depending on template conditions +// @ts-ignore +var common_1 = require("./common"); +// @ts-ignore +var base_1 = require("./base"); +/** + * DefaultApi - axios parameter creator + * @export + */ +var DefaultApiAxiosParamCreator = function (configuration) { + var _this = this; + return { + /** + * Check if a prompt is cached + * @param {ExternalApiCheckCacheRequest} externalApiCheckCacheRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiCheckCache: function (externalApiCheckCacheRequest, options) { + if (options === void 0) { options = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + // verify required parameter 'externalApiCheckCacheRequest' is not null or undefined + (0, common_1.assertParamExists)('externalApiCheckCache', 'externalApiCheckCacheRequest', externalApiCheckCacheRequest); + localVarPath = "/v1/check-cache"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(externalApiCheckCacheRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + options: localVarRequestOptions, + }]; + }); + }); + }, + /** + * Report an API call + * @param {ExternalApiReportRequest} externalApiReportRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiReport: function (externalApiReportRequest, options) { + if (options === void 0) { options = {}; } + return __awaiter(_this, void 0, void 0, function () { + var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions; + return __generator(this, function (_a) { + // verify required parameter 'externalApiReportRequest' is not null or undefined + (0, common_1.assertParamExists)('externalApiReport', 'externalApiReportRequest', externalApiReportRequest); + localVarPath = "/v1/report"; + localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL); + if (configuration) { + baseOptions = configuration.baseOptions; + } + localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options); + localVarHeaderParameter = {}; + localVarQueryParameter = {}; + localVarHeaderParameter['Content-Type'] = 'application/json'; + (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter); + headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); + localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(externalApiReportRequest, localVarRequestOptions, configuration); + return [2 /*return*/, { + url: (0, common_1.toPathString)(localVarUrlObj), + options: localVarRequestOptions, + }]; + }); + }); + }, + }; +}; +exports.DefaultApiAxiosParamCreator = DefaultApiAxiosParamCreator; +/** + * DefaultApi - functional programming interface + * @export + */ +var DefaultApiFp = function (configuration) { + var localVarAxiosParamCreator = (0, exports.DefaultApiAxiosParamCreator)(configuration); + return { + /** + * Check if a prompt is cached + * @param {ExternalApiCheckCacheRequest} externalApiCheckCacheRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiCheckCache: function (externalApiCheckCacheRequest, options) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.externalApiCheckCache(externalApiCheckCacheRequest, options)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + /** + * Report an API call + * @param {ExternalApiReportRequest} externalApiReportRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiReport: function (externalApiReportRequest, options) { + return __awaiter(this, void 0, void 0, function () { + var localVarAxiosArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, localVarAxiosParamCreator.externalApiReport(externalApiReportRequest, options)]; + case 1: + localVarAxiosArgs = _a.sent(); + return [2 /*return*/, (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)]; + } + }); + }); + }, + }; +}; +exports.DefaultApiFp = DefaultApiFp; +/** + * DefaultApi - factory interface + * @export + */ +var DefaultApiFactory = function (configuration, basePath, axios) { + var localVarFp = (0, exports.DefaultApiFp)(configuration); + return { + /** + * Check if a prompt is cached + * @param {ExternalApiCheckCacheRequest} externalApiCheckCacheRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiCheckCache: function (externalApiCheckCacheRequest, options) { + return localVarFp.externalApiCheckCache(externalApiCheckCacheRequest, options).then(function (request) { return request(axios, basePath); }); + }, + /** + * Report an API call + * @param {ExternalApiReportRequest} externalApiReportRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiReport: function (externalApiReportRequest, options) { + return localVarFp.externalApiReport(externalApiReportRequest, options).then(function (request) { return request(axios, basePath); }); + }, + }; +}; +exports.DefaultApiFactory = DefaultApiFactory; +/** + * DefaultApi - object-oriented interface + * @export + * @class DefaultApi + * @extends {BaseAPI} + */ +var DefaultApi = /** @class */ (function (_super) { + __extends(DefaultApi, _super); + function DefaultApi() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Check if a prompt is cached + * @param {ExternalApiCheckCacheRequest} externalApiCheckCacheRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApi + */ + DefaultApi.prototype.externalApiCheckCache = function (externalApiCheckCacheRequest, options) { + var _this = this; + return (0, exports.DefaultApiFp)(this.configuration).externalApiCheckCache(externalApiCheckCacheRequest, options).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + /** + * Report an API call + * @param {ExternalApiReportRequest} externalApiReportRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApi + */ + DefaultApi.prototype.externalApiReport = function (externalApiReportRequest, options) { + var _this = this; + return (0, exports.DefaultApiFp)(this.configuration).externalApiReport(externalApiReportRequest, options).then(function (request) { return request(_this.axios, _this.basePath); }); + }; + return DefaultApi; +}(base_1.BaseAPI)); +exports.DefaultApi = DefaultApi; diff --git a/client-libs/typescript/codegen/api.ts b/client-libs/typescript/codegen/api.ts new file mode 100644 index 0000000..64b5068 --- /dev/null +++ b/client-libs/typescript/codegen/api.ts @@ -0,0 +1,319 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * OpenPipe API + * The public API for reporting API calls to OpenPipe + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import type { Configuration } from './configuration'; +import type { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; +// Some imports not used depending on template conditions +// @ts-ignore +import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common'; +import type { RequestArgs } from './base'; +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError } from './base'; + +/** + * + * @export + * @interface ExternalApiCheckCache200Response + */ +export interface ExternalApiCheckCache200Response { + /** + * JSON-encoded response payload + * @type {any} + * @memberof ExternalApiCheckCache200Response + */ + 'respPayload'?: any; +} +/** + * + * @export + * @interface ExternalApiCheckCacheDefaultResponse + */ +export interface ExternalApiCheckCacheDefaultResponse { + /** + * + * @type {string} + * @memberof ExternalApiCheckCacheDefaultResponse + */ + 'message': string; + /** + * + * @type {string} + * @memberof ExternalApiCheckCacheDefaultResponse + */ + 'code': string; + /** + * + * @type {Array} + * @memberof ExternalApiCheckCacheDefaultResponse + */ + 'issues'?: Array; +} +/** + * + * @export + * @interface ExternalApiCheckCacheDefaultResponseIssuesInner + */ +export interface ExternalApiCheckCacheDefaultResponseIssuesInner { + /** + * + * @type {string} + * @memberof ExternalApiCheckCacheDefaultResponseIssuesInner + */ + 'message': string; +} +/** + * + * @export + * @interface ExternalApiCheckCacheRequest + */ +export interface ExternalApiCheckCacheRequest { + /** + * Unix timestamp in milliseconds + * @type {number} + * @memberof ExternalApiCheckCacheRequest + */ + 'startTime': number; + /** + * JSON-encoded request payload + * @type {any} + * @memberof ExternalApiCheckCacheRequest + */ + 'reqPayload'?: any; + /** + * Extra tags to attach to the call for filtering. Eg { \"userId\": \"123\", \"promptId\": \"populate-title\" } + * @type {{ [key: string]: string; }} + * @memberof ExternalApiCheckCacheRequest + */ + 'tags'?: { [key: string]: string; }; +} +/** + * + * @export + * @interface ExternalApiReportRequest + */ +export interface ExternalApiReportRequest { + /** + * Unix timestamp in milliseconds + * @type {number} + * @memberof ExternalApiReportRequest + */ + 'startTime': number; + /** + * Unix timestamp in milliseconds + * @type {number} + * @memberof ExternalApiReportRequest + */ + 'endTime': number; + /** + * JSON-encoded request payload + * @type {any} + * @memberof ExternalApiReportRequest + */ + 'reqPayload'?: any; + /** + * JSON-encoded response payload + * @type {any} + * @memberof ExternalApiReportRequest + */ + 'respPayload'?: any; + /** + * HTTP status code of response + * @type {number} + * @memberof ExternalApiReportRequest + */ + 'respStatus'?: number; + /** + * User-friendly error message + * @type {string} + * @memberof ExternalApiReportRequest + */ + 'error'?: string; + /** + * Extra tags to attach to the call for filtering. Eg { \"userId\": \"123\", \"promptId\": \"populate-title\" } + * @type {{ [key: string]: string; }} + * @memberof ExternalApiReportRequest + */ + 'tags'?: { [key: string]: string; }; +} + +/** + * DefaultApi - axios parameter creator + * @export + */ +export const DefaultApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Check if a prompt is cached + * @param {ExternalApiCheckCacheRequest} externalApiCheckCacheRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiCheckCache: async (externalApiCheckCacheRequest: ExternalApiCheckCacheRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'externalApiCheckCacheRequest' is not null or undefined + assertParamExists('externalApiCheckCache', 'externalApiCheckCacheRequest', externalApiCheckCacheRequest) + const localVarPath = `/v1/check-cache`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(externalApiCheckCacheRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Report an API call + * @param {ExternalApiReportRequest} externalApiReportRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiReport: async (externalApiReportRequest: ExternalApiReportRequest, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'externalApiReportRequest' is not null or undefined + assertParamExists('externalApiReport', 'externalApiReportRequest', externalApiReportRequest) + const localVarPath = `/v1/report`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(externalApiReportRequest, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * DefaultApi - functional programming interface + * @export + */ +export const DefaultApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = DefaultApiAxiosParamCreator(configuration) + return { + /** + * Check if a prompt is cached + * @param {ExternalApiCheckCacheRequest} externalApiCheckCacheRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async externalApiCheckCache(externalApiCheckCacheRequest: ExternalApiCheckCacheRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.externalApiCheckCache(externalApiCheckCacheRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + /** + * Report an API call + * @param {ExternalApiReportRequest} externalApiReportRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async externalApiReport(externalApiReportRequest: ExternalApiReportRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.externalApiReport(externalApiReportRequest, options); + return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); + }, + } +}; + +/** + * DefaultApi - factory interface + * @export + */ +export const DefaultApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = DefaultApiFp(configuration) + return { + /** + * Check if a prompt is cached + * @param {ExternalApiCheckCacheRequest} externalApiCheckCacheRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiCheckCache(externalApiCheckCacheRequest: ExternalApiCheckCacheRequest, options?: any): AxiosPromise { + return localVarFp.externalApiCheckCache(externalApiCheckCacheRequest, options).then((request) => request(axios, basePath)); + }, + /** + * Report an API call + * @param {ExternalApiReportRequest} externalApiReportRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + externalApiReport(externalApiReportRequest: ExternalApiReportRequest, options?: any): AxiosPromise { + return localVarFp.externalApiReport(externalApiReportRequest, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * DefaultApi - object-oriented interface + * @export + * @class DefaultApi + * @extends {BaseAPI} + */ +export class DefaultApi extends BaseAPI { + /** + * Check if a prompt is cached + * @param {ExternalApiCheckCacheRequest} externalApiCheckCacheRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApi + */ + public externalApiCheckCache(externalApiCheckCacheRequest: ExternalApiCheckCacheRequest, options?: AxiosRequestConfig) { + return DefaultApiFp(this.configuration).externalApiCheckCache(externalApiCheckCacheRequest, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Report an API call + * @param {ExternalApiReportRequest} externalApiReportRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApi + */ + public externalApiReport(externalApiReportRequest: ExternalApiReportRequest, options?: AxiosRequestConfig) { + return DefaultApiFp(this.configuration).externalApiReport(externalApiReportRequest, options).then((request) => request(this.axios, this.basePath)); + } +} + + diff --git a/client-libs/typescript/codegen/base.js b/client-libs/typescript/codegen/base.js new file mode 100644 index 0000000..5d52771 --- /dev/null +++ b/client-libs/typescript/codegen/base.js @@ -0,0 +1,80 @@ +"use strict"; +/* tslint:disable */ +/* eslint-disable */ +/** + * OpenPipe API + * The public API for reporting API calls to OpenPipe + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0; +var axios_1 = require("axios"); +exports.BASE_PATH = "https://app.openpipe.ai/api".replace(/\/+$/, ""); +/** + * + * @export + */ +exports.COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", +}; +/** + * + * @export + * @class BaseAPI + */ +var BaseAPI = /** @class */ (function () { + function BaseAPI(configuration, basePath, axios) { + if (basePath === void 0) { basePath = exports.BASE_PATH; } + if (axios === void 0) { axios = axios_1.default; } + this.basePath = basePath; + this.axios = axios; + if (configuration) { + this.configuration = configuration; + this.basePath = configuration.basePath || this.basePath; + } + } + return BaseAPI; +}()); +exports.BaseAPI = BaseAPI; +; +/** + * + * @export + * @class RequiredError + * @extends {Error} + */ +var RequiredError = /** @class */ (function (_super) { + __extends(RequiredError, _super); + function RequiredError(field, msg) { + var _this = _super.call(this, msg) || this; + _this.field = field; + _this.name = "RequiredError"; + return _this; + } + return RequiredError; +}(Error)); +exports.RequiredError = RequiredError; diff --git a/client-libs/js/codegen/base.ts b/client-libs/typescript/codegen/base.ts similarity index 100% rename from client-libs/js/codegen/base.ts rename to client-libs/typescript/codegen/base.ts diff --git a/client-libs/typescript/codegen/common.js b/client-libs/typescript/codegen/common.js new file mode 100644 index 0000000..fa65488 --- /dev/null +++ b/client-libs/typescript/codegen/common.js @@ -0,0 +1,252 @@ +"use strict"; +/* tslint:disable */ +/* eslint-disable */ +/** + * OpenPipe API + * The public API for reporting API calls to OpenPipe + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0; +var base_1 = require("./base"); +/** + * + * @export + */ +exports.DUMMY_BASE_URL = 'https://example.com'; +/** + * + * @throws {RequiredError} + * @export + */ +var assertParamExists = function (functionName, paramName, paramValue) { + if (paramValue === null || paramValue === undefined) { + throw new base_1.RequiredError(paramName, "Required parameter ".concat(paramName, " was null or undefined when calling ").concat(functionName, ".")); + } +}; +exports.assertParamExists = assertParamExists; +/** + * + * @export + */ +var setApiKeyToObject = function (object, keyParamName, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarApiKeyValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5]; + if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.apiKey(keyParamName)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.apiKey]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarApiKeyValue = _a; + object[keyParamName] = localVarApiKeyValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); +}; +exports.setApiKeyToObject = setApiKeyToObject; +/** + * + * @export + */ +var setBasicAuthToObject = function (object, configuration) { + if (configuration && (configuration.username || configuration.password)) { + object["auth"] = { username: configuration.username, password: configuration.password }; + } +}; +exports.setBasicAuthToObject = setBasicAuthToObject; +/** + * + * @export + */ +var setBearerAuthToObject = function (object, configuration) { + return __awaiter(this, void 0, void 0, function () { + var accessToken, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken()]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + accessToken = _a; + object["Authorization"] = "Bearer " + accessToken; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); +}; +exports.setBearerAuthToObject = setBearerAuthToObject; +/** + * + * @export + */ +var setOAuthToObject = function (object, name, scopes, configuration) { + return __awaiter(this, void 0, void 0, function () { + var localVarAccessTokenValue, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5]; + if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2]; + return [4 /*yield*/, configuration.accessToken(name, scopes)]; + case 1: + _a = _b.sent(); + return [3 /*break*/, 4]; + case 2: return [4 /*yield*/, configuration.accessToken]; + case 3: + _a = _b.sent(); + _b.label = 4; + case 4: + localVarAccessTokenValue = _a; + object["Authorization"] = "Bearer " + localVarAccessTokenValue; + _b.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); +}; +exports.setOAuthToObject = setOAuthToObject; +function setFlattenedQueryParams(urlSearchParams, parameter, key) { + if (key === void 0) { key = ""; } + if (parameter == null) + return; + if (typeof parameter === "object") { + if (Array.isArray(parameter)) { + parameter.forEach(function (item) { return setFlattenedQueryParams(urlSearchParams, item, key); }); + } + else { + Object.keys(parameter).forEach(function (currentKey) { + return setFlattenedQueryParams(urlSearchParams, parameter[currentKey], "".concat(key).concat(key !== '' ? '.' : '').concat(currentKey)); + }); + } + } + else { + if (urlSearchParams.has(key)) { + urlSearchParams.append(key, parameter); + } + else { + urlSearchParams.set(key, parameter); + } + } +} +/** + * + * @export + */ +var setSearchParams = function (url) { + var objects = []; + for (var _i = 1; _i < arguments.length; _i++) { + objects[_i - 1] = arguments[_i]; + } + var searchParams = new URLSearchParams(url.search); + setFlattenedQueryParams(searchParams, objects); + url.search = searchParams.toString(); +}; +exports.setSearchParams = setSearchParams; +/** + * + * @export + */ +var serializeDataIfNeeded = function (value, requestOptions, configuration) { + var nonString = typeof value !== 'string'; + var needsSerialization = nonString && configuration && configuration.isJsonMime + ? configuration.isJsonMime(requestOptions.headers['Content-Type']) + : nonString; + return needsSerialization + ? JSON.stringify(value !== undefined ? value : {}) + : (value || ""); +}; +exports.serializeDataIfNeeded = serializeDataIfNeeded; +/** + * + * @export + */ +var toPathString = function (url) { + return url.pathname + url.search + url.hash; +}; +exports.toPathString = toPathString; +/** + * + * @export + */ +var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) { + return function (axios, basePath) { + if (axios === void 0) { axios = globalAxios; } + if (basePath === void 0) { basePath = BASE_PATH; } + var axiosRequestArgs = __assign(__assign({}, axiosArgs.options), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePath) || basePath) + axiosArgs.url }); + return axios.request(axiosRequestArgs); + }; +}; +exports.createRequestFunction = createRequestFunction; diff --git a/client-libs/js/codegen/common.ts b/client-libs/typescript/codegen/common.ts similarity index 100% rename from client-libs/js/codegen/common.ts rename to client-libs/typescript/codegen/common.ts diff --git a/client-libs/typescript/codegen/configuration.js b/client-libs/typescript/codegen/configuration.js new file mode 100644 index 0000000..bbc5bfb --- /dev/null +++ b/client-libs/typescript/codegen/configuration.js @@ -0,0 +1,44 @@ +"use strict"; +/* tslint:disable */ +/* eslint-disable */ +/** + * OpenPipe API + * The public API for reporting API calls to OpenPipe + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Configuration = void 0; +var Configuration = /** @class */ (function () { + function Configuration(param) { + if (param === void 0) { param = {}; } + this.apiKey = param.apiKey; + this.username = param.username; + this.password = param.password; + this.accessToken = param.accessToken; + this.basePath = param.basePath; + this.baseOptions = param.baseOptions; + this.formDataCtor = param.formDataCtor; + } + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + Configuration.prototype.isJsonMime = function (mime) { + var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + }; + return Configuration; +}()); +exports.Configuration = Configuration; diff --git a/client-libs/js/codegen/configuration.ts b/client-libs/typescript/codegen/configuration.ts similarity index 100% rename from client-libs/js/codegen/configuration.ts rename to client-libs/typescript/codegen/configuration.ts diff --git a/client-libs/js/codegen/git_push.sh b/client-libs/typescript/codegen/git_push.sh similarity index 100% rename from client-libs/js/codegen/git_push.sh rename to client-libs/typescript/codegen/git_push.sh diff --git a/client-libs/typescript/codegen/index.js b/client-libs/typescript/codegen/index.js new file mode 100644 index 0000000..519d4f3 --- /dev/null +++ b/client-libs/typescript/codegen/index.js @@ -0,0 +1,31 @@ +"use strict"; +/* tslint:disable */ +/* eslint-disable */ +/** + * OpenPipe API + * The public API for reporting API calls to OpenPipe + * + * The version of the OpenAPI document: 0.1.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./api"), exports); +__exportStar(require("./configuration"), exports); diff --git a/client-libs/js/codegen/index.ts b/client-libs/typescript/codegen/index.ts similarity index 100% rename from client-libs/js/codegen/index.ts rename to client-libs/typescript/codegen/index.ts diff --git a/client-libs/typescript/index.ts b/client-libs/typescript/index.ts new file mode 100644 index 0000000..04c7df2 --- /dev/null +++ b/client-libs/typescript/index.ts @@ -0,0 +1,3 @@ +// main.ts or index.ts at the root level +export * as OpenAI from './openai'; +export * as OpenAILegacy from './openai-legacy'; diff --git a/client-libs/typescript/openai-legacy/index.ts b/client-libs/typescript/openai-legacy/index.ts new file mode 100644 index 0000000..99b8d80 --- /dev/null +++ b/client-libs/typescript/openai-legacy/index.ts @@ -0,0 +1,81 @@ +import * as openPipeClient from "../codegen"; +import * as openai from "openai-legacy"; +import { version } from "../package.json"; + +// Anything we don't override we want to pass through to openai directly +export * as openAILegacy from "openai-legacy"; + +type OPConfigurationParameters = { + apiKey?: string; + basePath?: string; +}; + +export class Configuration extends openai.Configuration { + public qkConfig?: openPipeClient.Configuration; + + constructor(config: openai.ConfigurationParameters & { opParameters?: OPConfigurationParameters }) { + super(config); + if (config.opParameters) { + this.qkConfig = new openPipeClient.Configuration(config.opParameters); + } + } +} + +type CreateChatCompletion = InstanceType["createChatCompletion"]; + +export class OpenAIApi extends openai.OpenAIApi { + public openPipeApi?: openPipeClient.DefaultApi; + + constructor(config: Configuration) { + super(config); + if (config.qkConfig) { + this.openPipeApi = new openPipeClient.DefaultApi(config.qkConfig); + } + } + + public async createChatCompletion( + createChatCompletionRequest: Parameters[0], + options?: Parameters[1] + ): ReturnType { + const startTime = Date.now(); + let resp: Awaited> | null = null; + let respPayload: openai.CreateChatCompletionResponse | null = null; + let respStatus: number | undefined = undefined; + let error: string | undefined; + try { + resp = await super.createChatCompletion(createChatCompletionRequest, options); + respPayload = resp.data; + respStatus = resp.status; + } catch (err) { + console.error("Error in createChatCompletion"); + if ("isAxiosError" in err && err.isAxiosError) { + error = err.response?.data?.error?.message; + respPayload = err.response?.data; + respStatus = err.response?.status; + } else if ("message" in err) { + error = err.message.toString(); + } + throw err; + } finally { + this.openPipeApi + ?.externalApiReport({ + startTime, + endTime: Date.now(), + reqPayload: createChatCompletionRequest, + respPayload: respPayload, + respStatus: respStatus, + error, + tags: { + client: "openai-js", + clientVersion: version, + }, + }) + .catch((err) => { + console.error("Error reporting to QK", err); + }); + } + + console.log("done"); + return resp; + } +} diff --git a/client-libs/typescript/openai/index.ts b/client-libs/typescript/openai/index.ts new file mode 100644 index 0000000..8c43fed --- /dev/null +++ b/client-libs/typescript/openai/index.ts @@ -0,0 +1,31 @@ +import * as OpenAI from "openai-beta"; +import { readEnv } from "openai-beta/core"; + +// Anything we don't override we want to pass through to openai directly +export * as openai from "openai-beta"; + +interface ClientOptions extends OpenAI.ClientOptions { + openPipeApiKey?: string; + openPipeBaseUrl?: string; +} + +export class OpenPipe extends OpenAI.OpenAI { + openPipeApiKey: string; + openPipeBaseUrl: string; + + constructor({ + openPipeApiKey = readEnv("OPENPIPE_API_KEY"), + openPipeBaseUrl = readEnv("OPENPIPE_BASE_URL") ?? + `https://app.openpipe.ai/v1`, + ...opts + }: ClientOptions = {}) { + if (openPipeApiKey === undefined) { + console.error( + "The OPENPIPE_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenPipe client with an openPipeApiKey option, like new OpenPipe({ openPipeApiKey: undefined })." + ); + } + super({ + ...opts, + }); + } +} diff --git a/client-libs/typescript/package.json b/client-libs/typescript/package.json new file mode 100644 index 0000000..1173fc2 --- /dev/null +++ b/client-libs/typescript/package.json @@ -0,0 +1,24 @@ +{ + "name": "openpipe", + "version": "0.1.0", + "description": "Metrics and auto-evaluation for LLM calls", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "main": "dist/index.js", + "types": "dist/index.d.ts", + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "axios": "^0.26.0", + "openai-beta": "npm:openai@4.0.0-beta.7", + "openai-legacy": "npm:openai@3.3.0" + }, + "devDependencies": { + "@types/node": "^20.4.8", + "dotenv": "^16.3.1", + "tsx": "^3.12.7", + "typescript": "^5.0.4" + } +} diff --git a/client-libs/typescript/pnpm-lock.yaml b/client-libs/typescript/pnpm-lock.yaml new file mode 100644 index 0000000..5d145bb --- /dev/null +++ b/client-libs/typescript/pnpm-lock.yaml @@ -0,0 +1,548 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + axios: + specifier: ^0.26.0 + version: 0.26.0 + openai-beta: + specifier: npm:openai@4.0.0-beta.7 + version: /openai@4.0.0-beta.7 + openai-legacy: + specifier: npm:openai@3.3.0 + version: /openai@3.3.0 + +devDependencies: + '@types/node': + specifier: ^20.4.8 + version: 20.4.8 + dotenv: + specifier: ^16.3.1 + version: 16.3.1 + tsx: + specifier: ^3.12.7 + version: 3.12.7 + typescript: + specifier: ^5.0.4 + version: 5.0.4 + +packages: + + /@esbuild-kit/cjs-loader@2.4.2: + resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} + dependencies: + '@esbuild-kit/core-utils': 3.1.0 + get-tsconfig: 4.6.2 + dev: true + + /@esbuild-kit/core-utils@3.1.0: + resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} + dependencies: + esbuild: 0.17.19 + source-map-support: 0.5.21 + dev: true + + /@esbuild-kit/esm-loader@2.5.5: + resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} + dependencies: + '@esbuild-kit/core-utils': 3.1.0 + get-tsconfig: 4.6.2 + dev: true + + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@types/node-fetch@2.6.4: + resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} + dependencies: + '@types/node': 20.4.8 + form-data: 3.0.1 + dev: false + + /@types/node@18.17.3: + resolution: {integrity: sha512-2x8HWtFk0S99zqVQABU9wTpr8wPoaDHZUcAkoTKH+nL7kPv3WUI9cRi/Kk5Mz4xdqXSqTkKP7IWNoQQYCnDsTA==} + dev: false + + /@types/node@20.4.8: + resolution: {integrity: sha512-0mHckf6D2DiIAzh8fM8f3HQCvMKDpK94YQ0DSVkfWTG9BZleYIWudw9cJxX8oCk9bM+vAkDyujDV6dmKHbvQpg==} + + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: false + + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: false + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /axios@0.26.0: + resolution: {integrity: sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==} + dependencies: + follow-redirects: 1.15.2 + transitivePeerDependencies: + - debug + dev: false + + /base-64@0.1.0: + resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==} + dev: false + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + dev: false + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + + /crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + dev: false + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + + /digest-fetch@1.3.0: + resolution: {integrity: sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==} + dependencies: + base-64: 0.1.0 + md5: 2.3.0 + dev: false + + /dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + engines: {node: '>=12'} + dev: true + + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true + + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: false + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + dev: false + + /form-data@3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + dev: false + + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /get-tsconfig@4.6.2: + resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.3 + dev: false + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: false + + /md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + dev: false + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: false + + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: false + + /node-fetch@2.6.12: + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + + /openai@3.3.0: + resolution: {integrity: sha512-uqxI/Au+aPRnsaQRe8CojU0eCR7I0mBiKjD3sNMzY6DaC1ZVrc85u98mtJW6voDug8fgGN+DIZmTDxTthxb7dQ==} + dependencies: + axios: 0.26.0 + form-data: 4.0.0 + transitivePeerDependencies: + - debug + dev: false + + /openai@4.0.0-beta.7: + resolution: {integrity: sha512-jHjwvpMuGkNxiQ3erwLZsOvPEhcVrMtwtfNeYmGCjhbdB+oStVw/7pIhIPkualu8rlhLwgMR7awknIaN3IQcOA==} + dependencies: + '@types/node': 18.17.3 + '@types/node-fetch': 2.6.4 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + digest-fetch: 1.3.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.6.12 + transitivePeerDependencies: + - encoding + dev: false + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false + + /tsx@3.12.7: + resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} + hasBin: true + dependencies: + '@esbuild-kit/cjs-loader': 2.4.2 + '@esbuild-kit/core-utils': 3.1.0 + '@esbuild-kit/esm-loader': 2.5.5 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + dev: true + + /web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + dev: false + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: false diff --git a/client-libs/typescript/tsconfig.json b/client-libs/typescript/tsconfig.json new file mode 100644 index 0000000..60b88bf --- /dev/null +++ b/client-libs/typescript/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "declaration": true, + "target": "es6", + "module": "commonjs", + "noImplicitAny": true, + "resolveJsonModule": true, + "outDir": "dist", + "rootDir": ".", + "skipLibCheck": true + }, + "exclude": ["dist", "node_modules"], +}