diff --git a/.dockerignore b/.dockerignore index 092cd5d8a..00bcefcbb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -85,4 +85,4 @@ server/proto/* server/migrations/2024-07-26-165058_move_config_to_table/down.sql server/migrations/2024-07-26-165058_move_config_to_table/up.sql dist/** -clients/fetch-client/dist +clients/ts-sdk/dist diff --git a/.github/workflows/analytics-tests.yml b/.github/workflows/analytics-tests.yml deleted file mode 100644 index 5c9b8e8a0..000000000 --- a/.github/workflows/analytics-tests.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: analytics test suite - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -on: - pull_request: - paths: - - "frontends/analytics/**" - - "frontends/shared/**" - - "frontends/config/**" - - "clients/fetch-client/**" - -jobs: - build-test: - runs-on: blacksmith-2vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: yarn --frozen-lockfile - - name: Running lint - run: yarn build --filter analytics - eslint: - runs-on: blacksmith-2vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: yarn --frozen-lockfile - - name: Running lint - run: yarn lint:CI --filter analytics - - name: Annotate Code Linting Results - uses: ataylorme/eslint-annotate-action@1.0.4 - if: always() - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - report-json: "./frontends/analytics/eslint_report.json" diff --git a/.github/workflows/chat-tests.yml b/.github/workflows/chat-tests.yml deleted file mode 100644 index 56a33a874..000000000 --- a/.github/workflows/chat-tests.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: chat test suite - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -on: - pull_request: - paths: - - "frontends/chat/**" - - "frontends/shared/**" - - "frontends/config/**" - - "clients/fetch-client/**" -jobs: - build-test: - runs-on: blacksmith-2vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: yarn --frozen-lockfile - - name: Running lint - run: yarn build --filter chat - eslint: - runs-on: blacksmith-2vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: yarn --frozen-lockfile - - name: Running lint - run: yarn lint:CI --filter chat - - name: Annotate Code Linting Results - uses: ataylorme/eslint-annotate-action@1.0.4 - if: always() - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - report-json: "./frontends/chat/eslint_report.json" diff --git a/.github/workflows/dashboard-tests.yml b/.github/workflows/dashboard-tests.yml deleted file mode 100644 index 51ad25895..000000000 --- a/.github/workflows/dashboard-tests.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: dashboard test suite - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -on: - pull_request: - paths: - - "frontends/dashboard/**" - - "frontends/shared/**" - - "frontends/config/**" - - "clients/fetch-client/**" - -jobs: - build-test: - runs-on: blacksmith-2vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: yarn --frozen-lockfile - - name: Running lint - run: yarn build --filter dashboard - eslint: - runs-on: blacksmith-2vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: yarn --frozen-lockfile - - name: Running lint - run: yarn lint:CI --filter dashboard - - name: Annotate Code Linting Results - uses: ataylorme/eslint-annotate-action@1.0.4 - if: always() - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - report-json: "./frontends/dashboard/eslint_report.json" diff --git a/.github/workflows/frontend-tests.yml b/.github/workflows/frontend-tests.yml new file mode 100644 index 000000000..e966dd9bd --- /dev/null +++ b/.github/workflows/frontend-tests.yml @@ -0,0 +1,53 @@ +name: Frontends test suite + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref }} + cancel-in-progress: true + +on: + pull_request: + paths: + - "frontends/**" + - "clients/ts-sdk/**" + +jobs: + build-test: + runs-on: blacksmith-2vcpu-ubuntu-2204 + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + run: yarn --frozen-lockfile + - name: Running Build + run: yarn build + eslint: + runs-on: blacksmith-2vcpu-ubuntu-2204 + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + run: yarn --frozen-lockfile + - name: Running lint + run: yarn lint:CI + - name: Annotate Search Linting Results + uses: ataylorme/eslint-annotate-action@1.0.4 + if: always() + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + report-json: "./frontends/search/eslint_report.json" + - name: Annotate Chat Linting Results + uses: ataylorme/eslint-annotate-action@1.0.4 + if: always() + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + report-json: "./frontends/chat/eslint_report.json" + - name: Annotate Dashboard Linting Results + uses: ataylorme/eslint-annotate-action@1.0.4 + if: always() + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + report-json: "./frontends/dashboard/eslint_report.json" + - name: Annotate Analytics Linting Results + uses: ataylorme/eslint-annotate-action@1.0.4 + if: always() + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + report-json: "./frontends/analytics/eslint_report.json" diff --git a/.github/workflows/push-frontends.yml b/.github/workflows/push-frontends.yml index 868cbd65a..dd27cc93f 100644 --- a/.github/workflows/push-frontends.yml +++ b/.github/workflows/push-frontends.yml @@ -8,16 +8,16 @@ on: workflow_dispatch: push: branches: - - 'main' + - "main" paths: - - 'frontends/dashboard/**' - - 'frontends/search/**' - - 'frontends/chat/**' - - 'frontends/analytics-site/**' - - 'frontends/shared/**' - - 'frontends/config/**' - - '.github/workflows/**' - - 'clients/fetch-client/**' + - "frontends/dashboard/**" + - "frontends/search/**" + - "frontends/chat/**" + - "frontends/analytics-site/**" + - "frontends/shared/**" + - "frontends/config/**" + - ".github/workflows/**" + - "clients/ts-sdk/**" jobs: build_chat: diff --git a/.github/workflows/search-tests.yml b/.github/workflows/search-tests.yml deleted file mode 100644 index d0c3110d0..000000000 --- a/.github/workflows/search-tests.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: search test suite - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -on: - pull_request: - paths: - - "frontends/search/**" - - "frontends/shared/**" - - "frontends/config/**" - - "clients/fetch-client/**" - -jobs: - build-test: - runs-on: blacksmith-2vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: yarn --frozen-lockfile - - name: Running lint - run: yarn build --filter search - eslint: - runs-on: blacksmith-2vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: yarn --frozen-lockfile - - name: Running lint - run: yarn lint:CI --filter search - - name: Annotate Code Linting Results - uses: ataylorme/eslint-annotate-action@1.0.4 - if: always() - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" - report-json: "./frontends/search/eslint_report.json" diff --git a/.github/workflows/ts-sdk-tests.yml b/.github/workflows/ts-sdk-tests.yml new file mode 100644 index 000000000..144344b2f --- /dev/null +++ b/.github/workflows/ts-sdk-tests.yml @@ -0,0 +1,32 @@ +name: Typescript SDK test suite + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref }} + cancel-in-progress: true + +on: + pull_request: + paths: + - "clients/ts-sdk/**" + +jobs: + build-test: + runs-on: blacksmith-2vcpu-ubuntu-2204 + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + run: yarn --frozen-lockfile + - name: Running tests + run: yarn build --filter trieve-ts-sdk + tests: + runs-on: blacksmith-2vcpu-ubuntu-2204 + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + run: yarn --frozen-lockfile + - name: Running tests + working-directory: ./clients/ts-sdk + run: yarn vitest run + - name: Running lint + working-directory: ./clients/ts-sdk + run: yarn lint diff --git a/.gitignore b/.gitignore index 092cd5d8a..dcf959df9 100644 --- a/.gitignore +++ b/.gitignore @@ -79,10 +79,13 @@ embedding-server/data/* */dist/** */.vite data/* +clients/ts-sdk/dist/** +clients/ts-sdk/docs/** + server/src/trieve_protobufs/* server/proto/* server/migrations/2024-07-26-165058_move_config_to_table/down.sql server/migrations/2024-07-26-165058_move_config_to_table/up.sql dist/** -clients/fetch-client/dist +clients/ts-sdk/dist diff --git a/.vscode/settings.json b/.vscode/settings.json index dfb54cae8..dbe7ec23f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,6 +11,8 @@ "./frontends/chat", "./frontends/dashboard", "./frontends/search", - "./frontends/analytics" - ] + "./frontends/analytics", + "./clients/ts-sdk", + ], + "vitest.disableWorkspaceWarning": true } diff --git a/clients/fetch-client/package.json b/clients/fetch-client/package.json deleted file mode 100644 index 5130b18cf..000000000 --- a/clients/fetch-client/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "trieve-fetch-client", - "type": "module", - "exports": "./dist/index.js", - "types": "./dist/index.d.ts", - "version": "0.11.7", - "license": "MIT", - "scripts": { - "build:clean": "rm -rf dist && yarn type:gen && yarn build", - "build": "yarn build:src && yarn type:dts", - "build:src": "node ./scripts/build.js", - "type:gen": "node ./scripts/genClient.js", - "type:dts": "tsc --emitDeclarationOnly --declarationMap" - }, - "dependencies": {}, - "devDependencies": { - "typescript": "^5.5.4", - "esbuild": "^0.23.0", - "@hey-api/openapi-ts": "^0.52.1", - "esbuild-register": "^3.6.0" - } -} diff --git a/clients/fetch-client/tsconfig.json b/clients/fetch-client/tsconfig.json deleted file mode 100644 index b0abc0dae..000000000 --- a/clients/fetch-client/tsconfig.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - "lib": [ - "ES2021", - "DOM", - "DOM.Iterable" - ], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - /* Modules */ - // "module": "NodeNext", /* Specify what module code is generated. */ - "rootDir": "./src", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - /* Emit */ - "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./dist", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -} diff --git a/clients/fetch-client/yarn.lock b/clients/fetch-client/yarn.lock deleted file mode 100644 index 3effe575f..000000000 --- a/clients/fetch-client/yarn.lock +++ /dev/null @@ -1,661 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@apidevtools/json-schema-ref-parser@11.6.4": - version "11.6.4" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz#0f3e02302f646471d621a8850e6a346d63c8ebd4" - integrity sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w== - dependencies: - "@jsdevtools/ono" "^7.1.3" - "@types/json-schema" "^7.0.15" - js-yaml "^4.1.0" - -"@esbuild/aix-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" - integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== - -"@esbuild/android-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" - integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== - -"@esbuild/android-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" - integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== - -"@esbuild/android-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" - integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== - -"@esbuild/darwin-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" - integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== - -"@esbuild/darwin-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" - integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== - -"@esbuild/freebsd-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" - integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== - -"@esbuild/freebsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" - integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== - -"@esbuild/linux-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" - integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== - -"@esbuild/linux-arm@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" - integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== - -"@esbuild/linux-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" - integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== - -"@esbuild/linux-loong64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" - integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== - -"@esbuild/linux-mips64el@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" - integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== - -"@esbuild/linux-ppc64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" - integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== - -"@esbuild/linux-riscv64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" - integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== - -"@esbuild/linux-s390x@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" - integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== - -"@esbuild/linux-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" - integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== - -"@esbuild/netbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" - integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== - -"@esbuild/openbsd-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" - integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== - -"@esbuild/sunos-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" - integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== - -"@esbuild/win32-arm64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" - integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== - -"@esbuild/win32-ia32@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" - integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== - -"@esbuild/win32-x64@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" - integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== - -"@hey-api/openapi-ts@^0.48.2": - version "0.48.3" - resolved "https://registry.yarnpkg.com/@hey-api/openapi-ts/-/openapi-ts-0.48.3.tgz#bf1fdbd988be9af8a83b0f59d802f5bb2c470fec" - integrity sha512-R53Nr4Gicz77icS+RiH0fwHa9A0uFPtzsjC8SBaGwtOel5ZyxeBbayWE6HhE789hp3dok9pegwWncwwOrr4WFA== - dependencies: - "@apidevtools/json-schema-ref-parser" "11.6.4" - c12 "1.11.1" - camelcase "8.0.0" - commander "12.1.0" - handlebars "4.7.8" - -"@jsdevtools/ono@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" - integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== - -"@types/json-schema@^7.0.15": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -acorn@^8.11.3: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -c12@1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/c12/-/c12-1.11.1.tgz#d5244e95407af450a523e44eb57e5b87b82f8677" - integrity sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg== - dependencies: - chokidar "^3.6.0" - confbox "^0.1.7" - defu "^6.1.4" - dotenv "^16.4.5" - giget "^1.2.3" - jiti "^1.21.6" - mlly "^1.7.1" - ohash "^1.1.3" - pathe "^1.1.2" - perfect-debounce "^1.0.0" - pkg-types "^1.1.1" - rc9 "^2.1.2" - -camelcase@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-8.0.0.tgz#c0d36d418753fb6ad9c5e0437579745c1c14a534" - integrity sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA== - -chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -citty@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4" - integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== - dependencies: - consola "^3.2.3" - -commander@12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -confbox@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579" - integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== - -consola@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" - integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.3.4: - version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== - dependencies: - ms "2.1.2" - -defu@^6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" - integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== - -destr@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449" - integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ== - -dotenv@^16.4.5: - version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== - -esbuild-register@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.6.0.tgz#cf270cfa677baebbc0010ac024b823cbf723a36d" - integrity sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg== - dependencies: - debug "^4.3.4" - -esbuild@^0.21.5: - version "0.21.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" - integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== - optionalDependencies: - "@esbuild/aix-ppc64" "0.21.5" - "@esbuild/android-arm" "0.21.5" - "@esbuild/android-arm64" "0.21.5" - "@esbuild/android-x64" "0.21.5" - "@esbuild/darwin-arm64" "0.21.5" - "@esbuild/darwin-x64" "0.21.5" - "@esbuild/freebsd-arm64" "0.21.5" - "@esbuild/freebsd-x64" "0.21.5" - "@esbuild/linux-arm" "0.21.5" - "@esbuild/linux-arm64" "0.21.5" - "@esbuild/linux-ia32" "0.21.5" - "@esbuild/linux-loong64" "0.21.5" - "@esbuild/linux-mips64el" "0.21.5" - "@esbuild/linux-ppc64" "0.21.5" - "@esbuild/linux-riscv64" "0.21.5" - "@esbuild/linux-s390x" "0.21.5" - "@esbuild/linux-x64" "0.21.5" - "@esbuild/netbsd-x64" "0.21.5" - "@esbuild/openbsd-x64" "0.21.5" - "@esbuild/sunos-x64" "0.21.5" - "@esbuild/win32-arm64" "0.21.5" - "@esbuild/win32-ia32" "0.21.5" - "@esbuild/win32-x64" "0.21.5" - -execa@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - -giget@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/giget/-/giget-1.2.3.tgz#ef6845d1140e89adad595f7f3bb60aa31c672cb6" - integrity sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA== - dependencies: - citty "^0.1.6" - consola "^3.2.3" - defu "^6.1.4" - node-fetch-native "^1.6.3" - nypm "^0.3.8" - ohash "^1.1.3" - pathe "^1.1.2" - tar "^6.2.0" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -handlebars@4.7.8: - version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" - integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.2" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jiti@^1.21.6: - version "1.21.6" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" - integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -minimist@^1.2.5: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mlly@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.1.tgz#e0336429bb0731b6a8e887b438cbdae522c8f32f" - integrity sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA== - dependencies: - acorn "^8.11.3" - pathe "^1.1.2" - pkg-types "^1.1.1" - ufo "^1.5.3" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -node-fetch-native@^1.6.3: - version "1.6.4" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz#679fc8fd8111266d47d7e72c379f1bed9acff06e" - integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" - integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - dependencies: - path-key "^4.0.0" - -nypm@^0.3.8: - version "0.3.9" - resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.3.9.tgz#ab74c55075737466847611aa33c3c67741c01d8f" - integrity sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw== - dependencies: - citty "^0.1.6" - consola "^3.2.3" - execa "^8.0.1" - pathe "^1.1.2" - pkg-types "^1.1.1" - ufo "^1.5.3" - -ohash@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07" - integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -pathe@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== - -perfect-debounce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" - integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pkg-types@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.3.tgz#161bb1242b21daf7795036803f28e30222e476e3" - integrity sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA== - dependencies: - confbox "^0.1.7" - mlly "^1.7.1" - pathe "^1.1.2" - -rc9@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.1.2.tgz#6282ff638a50caa0a91a31d76af4a0b9cbd1080d" - integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== - dependencies: - defu "^6.1.4" - destr "^2.0.3" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -tar@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" - integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -typescript@^5.5.4: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== - -ufo@^1.5.3: - version "1.5.4" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754" - integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== - -uglify-js@^3.1.4: - version "3.19.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.1.tgz#2d5df6a0872c43da43187968308d7741d44b8056" - integrity sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== diff --git a/clients/ts-sdk/.eslintrc.json b/clients/ts-sdk/.eslintrc.json new file mode 100644 index 000000000..210a2ac11 --- /dev/null +++ b/clients/ts-sdk/.eslintrc.json @@ -0,0 +1,41 @@ +{ + "env": { + "browser": true, + "node": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-requiring-type-checking", + "plugin:@typescript-eslint/strict" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": ["./tsconfig.json"] + }, + "plugins": ["@typescript-eslint"], + "rules": { + "@typescript-eslint/no-unnecessary-type-assertion": 0, + "@typescript-eslint/no-unused-vars": [ + "error", + { + "args": "all", + "argsIgnorePattern": "^_", + "caughtErrors": "all", + "caughtErrorsIgnorePattern": "^_", + "destructuredArrayIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "ignoreRestSiblings": true + } + ] + }, + "overrides": [], + "ignorePatterns": [ + "node_modules", + "dist", + "postcss.config.cjs", + "src/types.gen.ts", + "scripts/build.js", + "src/**/*.test.ts" + ] +} diff --git a/clients/ts-sdk/README.md b/clients/ts-sdk/README.md new file mode 100644 index 000000000..db3298446 --- /dev/null +++ b/clients/ts-sdk/README.md @@ -0,0 +1,41 @@ +A Typescript based SDK that allows you to communicate with the Trieve API + +## How to use + +Install using your favorite package manager: + +``` +yarn add trieve-ts-sdk +# or +npm install trieve-ts-sdk +# or +pnpm install trieve-ts-sdk +``` + +After installing the first step is to instantiate a new `TrieveSDK` like so: + +```ts +import { TrieveSDK } from "trieve-ts-sdk"; + +export const trieve = new TrieveSDK({ + apiKey: "", + datasetId: "", +}); +``` + +With this done you can use any of the functions available to use trieve in your project and get searching: + +```ts +import { trieve } from "../trieve"; + +const data = await trieve.search({ + query: "my first query", + search_type: "hybrid", +}); +``` + +To see all the functions we export you can take a look at [our docs](https://test.com). + +## License + +MIT diff --git a/clients/fetch-client/openapi.json b/clients/ts-sdk/openapi.json similarity index 98% rename from clients/fetch-client/openapi.json rename to clients/ts-sdk/openapi.json index 1b49e9670..2121baa6f 100644 --- a/clients/fetch-client/openapi.json +++ b/clients/ts-sdk/openapi.json @@ -199,7 +199,7 @@ ] } }, - "/api/analytics/recommendation": { + "/api/analytics/recommendations": { "post": { "tags": [ "Analytics" @@ -5457,6 +5457,11 @@ "type": "boolean", "description": "If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false.", "nullable": true + }, + "user_id": { + "type": "string", + "description": "User ID is the id of the user who is making the request. This is used to track user interactions with the search results.", + "nullable": true } }, "example": { @@ -6431,7 +6436,7 @@ "items": { "type": "string" }, - "description": "Group tracking_ids are the user-assigned tracking_ids of the groups that the chunk should be placed into. This is useful for when you want to create a chunk and add it to a group or multiple groups in one request. Groups with these user-assigned tracking_ids must be created first, it cannot be arbitrarily created through this route.", + "description": "Group tracking_ids are the user-assigned tracking_ids of the groups that the chunk should be placed into. This is useful for when you want to create a chunk and add it to a group or multiple groups in one request. If a group with the tracking_id does not exist, it will be created.", "nullable": true }, "image_urls": { @@ -7038,6 +7043,11 @@ "type": "string", "format": "uuid", "description": "The ID of the topic to attach the message to." + }, + "user_id": { + "type": "string", + "description": "The user_id is the id of the user who is making the request. This is used to track user interactions with the RAG results.", + "nullable": true } } }, @@ -7707,6 +7717,11 @@ "type": "string", "format": "uuid", "description": "The id of the topic to edit the message at the given sort order for." + }, + "user_id": { + "type": "string", + "description": "The user_id is the id of the user who is making the request. This is used to track user interactions with the RAG results.", + "nullable": true } } }, @@ -8052,6 +8067,11 @@ "format": "float", "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. Default is 0.5.", "nullable": true + }, + "user_id": { + "type": "string", + "description": "User ID is the id of the user who is making the request. This is used to track user interactions with the RAG results.", + "nullable": true } }, "example": { @@ -8891,6 +8911,63 @@ "user_count": 5 } }, + "PopularFilters": { + "type": "object", + "required": [ + "clause", + "field", + "filter_type", + "count", + "common_values" + ], + "properties": { + "clause": { + "type": "string" + }, + "common_values": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + }, + "count": { + "type": "integer", + "format": "int64" + }, + "field": { + "type": "string" + }, + "filter_type": { + "type": "string" + } + }, + "example": { + "clause": "must", + "common_values": { + "130": 2, + "198": 11 + }, + "count": 8, + "field": "metadata.ep_num", + "filter_type": "match_any" + } + }, + "PopularFiltersResponse": { + "type": "object", + "required": [ + "popular_filters" + ], + "properties": { + "popular_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PopularFilters" + } + } + } + }, "QdrantSortBy": { "oneOf": [ { @@ -9113,7 +9190,8 @@ "search_id", "results", "dataset_id", - "created_at" + "created_at", + "user_id" ], "properties": { "created_at": { @@ -9140,6 +9218,9 @@ "type": "string", "format": "uuid" }, + "user_id": { + "type": "string" + }, "user_message": { "type": "string" } @@ -9323,6 +9404,11 @@ } ], "nullable": true + }, + "user_id": { + "type": "string", + "description": "User ID is the id of the user who is making the request. This is used to track user interactions with the recommendation results.", + "nullable": true } } }, @@ -9425,6 +9511,11 @@ } ], "nullable": true + }, + "user_id": { + "type": "string", + "description": "The user_id is the id of the user who is making the request. This is used to track user interactions with the rrecommendation results.", + "nullable": true } } }, @@ -9632,7 +9723,8 @@ "results", "top_score", "dataset_id", - "created_at" + "created_at", + "user_id" ], "properties": { "created_at": { @@ -9683,6 +9775,9 @@ "top_score": { "type": "number", "format": "float" + }, + "user_id": { + "type": "string" } } }, @@ -9867,6 +9962,11 @@ "type": "string", "format": "uuid", "description": "The id of the topic to regenerate the last message for." + }, + "user_id": { + "type": "string", + "description": "The user_id is the id of the user who is making the request. This is used to track user interactions with the RAG results.", + "nullable": true } } }, @@ -10305,6 +10405,29 @@ ] } } + }, + { + "type": "object", + "title": "PopularFilters", + "required": [ + "type" + ], + "properties": { + "filter": { + "allOf": [ + { + "$ref": "#/components/schemas/SearchAnalyticsFilter" + } + ], + "nullable": true + }, + "type": { + "type": "string", + "enum": [ + "popular_filters" + ] + } + } } ], "discriminator": { @@ -10368,6 +10491,9 @@ }, { "$ref": "#/components/schemas/SearchQueryEvent" + }, + { + "$ref": "#/components/schemas/PopularFiltersResponse" } ] }, @@ -10376,6 +10502,7 @@ "required": [ "searches_with_clicks", "percent_searches_with_clicks", + "percent_searches_without_clicks", "avg_position_of_click" ], "properties": { @@ -10387,6 +10514,10 @@ "type": "number", "format": "double" }, + "percent_searches_without_clicks": { + "type": "number", + "format": "double" + }, "searches_with_clicks": { "type": "integer", "format": "int64" @@ -10494,6 +10625,11 @@ "type": "boolean", "description": "If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false.", "nullable": true + }, + "user_id": { + "type": "string", + "description": "User ID is the id of the user who is making the request. This is used to track user interactions with the search results.", + "nullable": true } }, "example": { @@ -10702,6 +10838,11 @@ "type": "boolean", "description": "If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false.", "nullable": true + }, + "user_id": { + "type": "string", + "description": "The user_id is the id of the user who is making the request. This is used to track user interactions with the search results.", + "nullable": true } } }, @@ -10815,7 +10956,8 @@ "results", "dataset_id", "created_at", - "query_rating" + "query_rating", + "user_id" ], "properties": { "created_at": { @@ -10850,6 +10992,9 @@ "top_score": { "type": "number", "format": "float" + }, + "user_id": { + "type": "string" } } }, @@ -11059,6 +11204,11 @@ "type": "boolean", "description": "If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false.", "nullable": true + }, + "user_id": { + "type": "string", + "description": "The user_id is the id of the user who is making the request. This is used to track user interactions with the search results.", + "nullable": true } } }, diff --git a/clients/ts-sdk/package.json b/clients/ts-sdk/package.json new file mode 100644 index 000000000..ca7044d55 --- /dev/null +++ b/clients/ts-sdk/package.json @@ -0,0 +1,31 @@ +{ + "name": "trieve-ts-sdk", + "type": "module", + "exports": "./dist/index.js", + "types": "./dist/index.d.ts", + "version": "0.0.1", + "license": "MIT", + "scripts": { + "lint": "eslint 'src/**/*.ts'", + "build:clean": "rm tsconfig.tsbuildinfo && rm -rf dist && yarn type:gen && yarn build", + "build": "yarn build:src && yarn type:dts", + "build:src": "node ./scripts/build.js", + "type:gen": "node ./scripts/genClient.js", + "type:dts": "tsc --emitDeclarationOnly --declarationMap", + "test": "vitest", + "build:docs": "typedoc" + }, + "devDependencies": { + "@hey-api/openapi-ts": "^0.52.9", + "@vitest/ui": "^2.0.5", + "esbuild": "^0.23.1", + "esbuild-register": "^3.6.0", + "typedoc-plugin-mdn-links": "^3.2.9", + "typescript": "^5.5.4", + "vitest": "^2.0.5" + }, + "dependencies": { + "typedoc": "^0.26.0", + "typedoc-plugin-merge-modules": "^6.0.0" + } +} diff --git a/clients/fetch-client/scripts/build.js b/clients/ts-sdk/scripts/build.js similarity index 94% rename from clients/fetch-client/scripts/build.js rename to clients/ts-sdk/scripts/build.js index 643e60a13..14c82ebe5 100644 --- a/clients/fetch-client/scripts/build.js +++ b/clients/ts-sdk/scripts/build.js @@ -1,5 +1,4 @@ import path from "node:path"; -import url from "node:url"; import { build as esbuild } from "esbuild"; const srcPath = path.join(process.cwd(), "src"); diff --git a/clients/fetch-client/scripts/genClient.js b/clients/ts-sdk/scripts/genClient.js similarity index 92% rename from clients/fetch-client/scripts/genClient.js rename to clients/ts-sdk/scripts/genClient.js index 1ce839c0d..cd206d4e8 100644 --- a/clients/fetch-client/scripts/genClient.js +++ b/clients/ts-sdk/scripts/genClient.js @@ -2,7 +2,7 @@ import { createClient } from "@hey-api/openapi-ts"; import fs from "node:fs"; const main = async () => { - const client = await createClient({ + await createClient({ client: "fetch", types: true, schemas: false, @@ -19,4 +19,4 @@ const main = async () => { fs.rmSync("./client", { recursive: true }); }; -main(); +void main(); diff --git a/clients/ts-sdk/src/__tests__/constants.ts b/clients/ts-sdk/src/__tests__/constants.ts new file mode 100644 index 000000000..154c8da39 --- /dev/null +++ b/clients/ts-sdk/src/__tests__/constants.ts @@ -0,0 +1,21 @@ +import { TrieveSDK } from "../sdk"; + +export const GROUP_EXAMPLE_ID = "460e5ee8-98bc-4fed-b4ec-68f4d6453e5f"; +export const GROUP_EXAMPLE_TRACKING_ID = "1234"; +export const TRIEVE = new TrieveSDK({ + apiKey: "tr-mKHF9sstPHQHcCbh6Qk6Uw54hx7uwDGU", + datasetId: "6cba9148-9cbb-417a-a955-93ea749ef27c", +}); +export const EXAMPLE_TOPIC_ID = "f85984e1-7818-4971-b300-2f462fe1a5a2"; +export const EXAMPLE_MESSAGE_ID = "48d0d2ef-3bfa-4124-8625-3c625ffa45a6"; + +export const CHUNK_EXAMPLE_TRACKING_ID = "B08569DD46"; +export const CHUNK_EXAMPLE_ID = "7d5ef532-80e3-4978-a174-eb99960fdc9d"; +export const EXAMPLE_CHUNK_HTML = `Price: $25 +Brand: Whole Foods Market +Product Name: WHOLE FOODS MARKET Organic Chocolate Truffles, 8.8 OZ +Brought to you by Whole Foods Market. When it comes to innovative flavors and products sourced from artisans and producers around the world, the Whole Foods Market brand has you covered. Amazing products, exceptional ingredients, no compromises.;Limited Edition ~ Get yours while supplies last!;Made according to an old family recipe by one of France’s leading chocolatiers, our organic truffles are rich and darkly delicious.;They’re an exceptional midday treat served with tea or espresso and a perfectly simple and satisfying finish to any evening meal.;Product of France;Low-Sodium;Vegetarian;USDA Certified Organic;QAI Certified Organic - If It's Organic It's Non-GMO;Product Type: GROCERY +Country: US +Marketplace: WholeFoods +Domain: wholefoodsmarket.com`; +export const EXAMPLE_FILE_ID = "ea924959-9289-4918-a49b-cd3f3ce4e809"; diff --git a/examples/ts/src/uploadme.pdf b/clients/ts-sdk/src/__tests__/uploadme.pdf similarity index 100% rename from examples/ts/src/uploadme.pdf rename to clients/ts-sdk/src/__tests__/uploadme.pdf diff --git a/clients/ts-sdk/src/__tests__/utils.ts b/clients/ts-sdk/src/__tests__/utils.ts new file mode 100644 index 000000000..c4effc447 --- /dev/null +++ b/clients/ts-sdk/src/__tests__/utils.ts @@ -0,0 +1,4 @@ +import { test as baseTest } from "vitest"; + +export const test = (name: string, fn: () => void) => + baseTest(name, { retry: 3, timeout: 30_000 }, () => fn()); diff --git a/clients/fetch-client/src/index.ts b/clients/ts-sdk/src/fetch-client.ts similarity index 86% rename from clients/fetch-client/src/index.ts rename to clients/ts-sdk/src/fetch-client.ts index f1c91138e..1fa42b752 100644 --- a/clients/fetch-client/src/index.ts +++ b/clients/ts-sdk/src/fetch-client.ts @@ -69,10 +69,10 @@ function camelcaseToSnakeCase(str: string) { // Convert camelcase to snake case and replace function replacePathParams( path: string, - params: Record, + params: Record ): string { for (const [key, value] of Object.entries(params)) { - path = path.replace(`{${camelcaseToSnakeCase(key)}}`, value); + path = path.replaceAll(`{${camelcaseToSnakeCase(key)}}`, value); } return path; } @@ -87,7 +87,7 @@ interface TrieveOpts { debug?: boolean; } -export class Trieve { +export class TrieveFetchClient { private apiKey?: string; private baseUrl: string; private debug: boolean = false; @@ -110,6 +110,7 @@ export class Trieve { path: P, method: EJECT extends false ? M : HttpMethod, params?: EJECT extends false ? RequestParams : URQ, + signal?: AbortSignal ): Promise : URE> { let requestBody: unknown; @@ -137,8 +138,11 @@ export class Trieve { } // Check if the key is in the path as path params const snakedKey = camelcaseToSnakeCase(key); - if (path.includes(`{${snakedKey}}`) && typeof value === "string") { - pathParams[key] = value; + if ( + path.includes(`{${snakedKey}}`) && + (typeof value === "string" || typeof value === "number") + ) { + pathParams[key] = value.toLocaleString(); } } } @@ -159,17 +163,24 @@ export class Trieve { method, headers: headers, body: requestBody ? JSON.stringify(requestBody) : undefined, + signal: signal, }); if (!response.ok) { throw new Error(`HTTP error! status: ${await response.text()}`); } + let responseObject: unknown; - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - const responseObject = await response.json(); + try { + responseObject = await response.clone().json(); + } catch { + responseObject = await response.clone().text(); + } if (this.debug) { console.info("Response: ", responseObject); } - return responseObject; + return responseObject as unknown as EJECT extends false + ? ResponseBody + : URE; } } diff --git a/clients/ts-sdk/src/functions/analytics/analytics.test.ts b/clients/ts-sdk/src/functions/analytics/analytics.test.ts new file mode 100644 index 000000000..243441657 --- /dev/null +++ b/clients/ts-sdk/src/functions/analytics/analytics.test.ts @@ -0,0 +1,56 @@ +import { beforeAll, describe, expectTypeOf } from "vitest"; +import { TrieveSDK } from "../../sdk"; +import { + CTRAnalyticsResponse, + RAGAnalyticsResponse, + RecommendationAnalyticsResponse, + SearchAnalyticsResponse, +} from "../../types.gen"; +import { CHUNK_EXAMPLE_ID, TRIEVE } from "../../__tests__/constants"; +import { test } from "../../__tests__/utils"; + +describe("Analytics Tests", async () => { + let trieve: TrieveSDK; + beforeAll(() => { + trieve = TRIEVE; + }); + test("ctr analytics get", async () => { + const data = await trieve.getCTRAnalytics({ + type: "search_ctr_metrics", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("sendCTRAnalytics", async () => { + const data = await trieve.sendCTRAnalytics({ + clicked_chunk_id: CHUNK_EXAMPLE_ID, + ctr_type: "search", + metadata: "query", + position: 123, + request_id: CHUNK_EXAMPLE_ID, + }); + + expectTypeOf(data).toBeVoid(); + }); + test("rag analytics get", async () => { + const data = await trieve.getRagAnalytics({ + type: "rag_queries", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("recommendation analytics get", async () => { + const data = await trieve.getRecommendationAnalytics({ + type: "low_confidence_recommendations", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("getSearchAnalytics", async () => { + const data = await trieve.getSearchAnalytics({ + type: "count_queries", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); +}); diff --git a/clients/ts-sdk/src/functions/analytics/index.ts b/clients/ts-sdk/src/functions/analytics/index.ts new file mode 100644 index 000000000..e60b414fc --- /dev/null +++ b/clients/ts-sdk/src/functions/analytics/index.ts @@ -0,0 +1,126 @@ +/** + * This includes all the functions you can use to communicate with our analytics API + * + * @module Analytic Methods + */ + +import { + ClusterAnalytics, + CTRAnalytics, + CTRDataRequestBody, + RAGAnalytics, + RecommendationAnalytics, + SearchAnalytics, +} from "../../fetch-client"; +import { TrieveSDK } from "../../sdk"; + +/** + * Function that allows you to view the CTR analytics for a dataset: + * Example: + * ```js + *const data = await trieve.getCTRAnalytics({ + * type: "search_ctr_metrics", + *}); + * ``` + */ +export async function getCTRAnalytics( + /** @hidden */ + this: TrieveSDK, + data: CTRAnalytics, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/analytics/ctr", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function sendCTRAnalytics( + /** @hidden */ + this: TrieveSDK, + data: CTRDataRequestBody, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/analytics/ctr", + "put", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getRagAnalytics( + /** @hidden */ + this: TrieveSDK, + data: RAGAnalytics, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/analytics/rag", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getRecommendationAnalytics( + /** @hidden */ + this: TrieveSDK, + data: RecommendationAnalytics, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/analytics/recommendations", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getSearchAnalytics( + /** @hidden */ + this: TrieveSDK, + data: SearchAnalytics, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/analytics/search", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getClusterAnalytics( + /** @hidden */ + this: TrieveSDK, + data: ClusterAnalytics, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/analytics/search/cluster", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} diff --git a/clients/ts-sdk/src/functions/chunks/chunk.test.ts b/clients/ts-sdk/src/functions/chunks/chunk.test.ts new file mode 100644 index 000000000..307ab2e8d --- /dev/null +++ b/clients/ts-sdk/src/functions/chunks/chunk.test.ts @@ -0,0 +1,117 @@ +import { describe, beforeAll, expectTypeOf } from "vitest"; +import { TrieveSDK } from "../../sdk"; +import { + ChunkReturnTypes, + CountChunkQueryResponseBody, + RecommendResponseTypes, + ReturnQueuedChunk, + ScrollChunksResponseBody, + SearchResponseBody, + SearchResponseTypes, +} from "../../types.gen"; +import { + CHUNK_EXAMPLE_ID, + CHUNK_EXAMPLE_TRACKING_ID, + EXAMPLE_CHUNK_HTML, + TRIEVE, +} from "../../__tests__/constants"; +import { test } from "../../__tests__/utils"; + +describe("Chunk Methods Test", async () => { + let trieve: TrieveSDK; + beforeAll(() => { + trieve = TRIEVE; + }); + test("search", async () => { + const data = await trieve.search({ + query: "one", + search_type: "hybrid", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + + test("create chunk", async () => { + const data = await trieve.createChunk({ + chunk_html: "test", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("autocomplete", async () => { + const data = await trieve.autocomplete({ + query: "test", + search_type: "fulltext", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + + test("getRecommendedChunks", async () => { + const data = await trieve.getRecommendedChunks({ + positive_chunk_ids: [CHUNK_EXAMPLE_ID], + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + + test("ragOnChunk", async () => { + const data = await trieve.ragOnChunk({ + chunk_ids: [CHUNK_EXAMPLE_ID], + prev_messages: [ + { + content: "hello", + role: "user", + }, + ], + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + + test("countChunksAboveThreshold", async () => { + const data = await trieve.countChunksAboveThreshold({ + limit: 10, + query: "test", + search_type: "bm25", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + + test("scroll", async () => { + const data = await trieve.scroll({}); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("updateChunk", async () => { + const data = await trieve.updateChunk({ + tracking_id: CHUNK_EXAMPLE_TRACKING_ID, + chunk_html: EXAMPLE_CHUNK_HTML, + }); + expectTypeOf(data).toBeVoid(); + }); + test("updateChunkByTrackingId", async () => { + const data = await trieve.updateChunkByTrackingId({ + tracking_id: CHUNK_EXAMPLE_TRACKING_ID, + chunk_html: EXAMPLE_CHUNK_HTML, + }); + + expectTypeOf(data).toBeVoid(); + }); + test("getChunksByIds", async () => { + const data = await trieve.getChunksByIds({ + ids: [CHUNK_EXAMPLE_ID], + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + + test("getChunksByTrackingIds", async () => { + const data = await trieve.getChunksByTrackingIds({ + tracking_ids: [CHUNK_EXAMPLE_TRACKING_ID], + }); + + expectTypeOf(data).toEqualTypeOf(); + }); +}); diff --git a/clients/ts-sdk/src/functions/chunks/index.ts b/clients/ts-sdk/src/functions/chunks/index.ts new file mode 100644 index 000000000..6e9df7586 --- /dev/null +++ b/clients/ts-sdk/src/functions/chunks/index.ts @@ -0,0 +1,299 @@ +/** + * This includes all the functions you can use to communicate with our chunks API + * + * @module Chunk Methods + */ + +import { + AutocompleteReqPayload, + CountChunksReqPayload, + CreateChunkReqPayloadEnum, + DeleteChunkByTrackingIdData, + DeleteChunkData, + GenerateOffChunksReqPayload, + GetChunkByIdData, + GetChunkByTrackingIdData, + GetChunksData, + GetTrackingChunksData, + RecommendChunksRequest, + ScrollChunksReqPayload, + SearchChunksReqPayload, + SearchResponseBody, + SuggestedQueriesReqPayload, + UpdateChunkByTrackingIdData, + UpdateChunkReqPayload, +} from "../../fetch-client"; +import { TrieveSDK } from "../../sdk"; + +export async function search( + /** @hidden */ + this: TrieveSDK, + props: SearchChunksReqPayload, + signal?: AbortSignal +) { + const searchResults = (await this.trieve.fetch( + "/api/chunk/search", + "post", + { + xApiVersion: "V2", + data: props, + datasetId: this.datasetId, + }, + signal + )) as SearchResponseBody; + + return searchResults; +} +export async function createChunk( + /** @hidden */ + this: TrieveSDK, + props: CreateChunkReqPayloadEnum, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} +export async function autocomplete( + /** @hidden */ + this: TrieveSDK, + props: AutocompleteReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/autocomplete", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getRecommendedChunks( + /** @hidden */ + this: TrieveSDK, + props: RecommendChunksRequest, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/recommend", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function ragOnChunk( + /** @hidden */ + this: TrieveSDK, + props: GenerateOffChunksReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/generate", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function suggestedQueries( + /** @hidden */ + this: TrieveSDK, + props: SuggestedQueriesReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/suggestions", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function countChunksAboveThreshold( + /** @hidden */ + this: TrieveSDK, + props: CountChunksReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/count", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function scroll( + /** @hidden */ + this: TrieveSDK, + props: ScrollChunksReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunks/scroll", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} +export async function updateChunk( + /** @hidden */ + this: TrieveSDK, + props: UpdateChunkReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk", + "put", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} +export async function updateChunkByTrackingId( + /** @hidden */ + this: TrieveSDK, + props: UpdateChunkByTrackingIdData, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/tracking_id/update", + "put", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getChunkByTrackingId( + /** @hidden */ + this: TrieveSDK, + props: Omit, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/tracking_id/{tracking_id}", + "get", + { + trackingId: props.trackingId, + datasetId: this.datasetId, + xApiVersion: props.xApiVersion ?? "V2", + }, + signal + ); +} + +export async function deleteChunkByTrackingId( + /** @hidden */ + this: TrieveSDK, + props: Omit, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/tracking_id/{tracking_id}", + "delete", + { + trackingId: props.trackingId, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getChunkById( + /** @hidden */ + this: TrieveSDK, + props: Omit, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/{chunk_id}", + "get", + { + chunkId: props.chunkId, + xApiVersion: props.xApiVersion ?? "V2", + datasetId: this.datasetId, + }, + signal + ); +} + +export async function deleteChunkById( + /** @hidden */ + this: TrieveSDK, + props: DeleteChunkData, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk/{chunk_id}", + "delete", + { + chunkId: props.chunkId, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getChunksByIds( + /** @hidden */ + this: TrieveSDK, + props: GetChunksData, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunks", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getChunksByTrackingIds( + /** @hidden */ + this: TrieveSDK, + props: GetTrackingChunksData, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunks/tracking", + "post", + { + data: props, + datasetId: this.datasetId, + }, + signal + ); +} diff --git a/clients/ts-sdk/src/functions/events/events.test.ts b/clients/ts-sdk/src/functions/events/events.test.ts new file mode 100644 index 000000000..f9e2d7d21 --- /dev/null +++ b/clients/ts-sdk/src/functions/events/events.test.ts @@ -0,0 +1,17 @@ +import { beforeAll, describe, expectTypeOf } from "vitest"; +import { TrieveSDK } from "../../sdk"; +import { EventReturn } from "../../types.gen"; +import { TRIEVE } from "../../__tests__/constants"; +import { test } from "../../__tests__/utils"; + +describe("Events Tests", async () => { + let trieve: TrieveSDK; + beforeAll(() => { + trieve = TRIEVE; + }); + + test("getEventsForDataset", async () => { + const data = await trieve.getEventsForDataset({}); + expectTypeOf(data).toEqualTypeOf(); + }); +}); diff --git a/clients/ts-sdk/src/functions/events/index.ts b/clients/ts-sdk/src/functions/events/index.ts new file mode 100644 index 000000000..5a3abeb5c --- /dev/null +++ b/clients/ts-sdk/src/functions/events/index.ts @@ -0,0 +1,25 @@ +/** + * This includes all the functions you can use to communicate with our Events API + * + * @module Event Methods + */ + +import { GetEventsData } from "../../fetch-client"; +import { TrieveSDK } from "../../sdk"; + +export async function getEventsForDataset( + /** @hidden */ + this: TrieveSDK, + data: GetEventsData, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/events", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} diff --git a/clients/ts-sdk/src/functions/file/file.test.ts b/clients/ts-sdk/src/functions/file/file.test.ts new file mode 100644 index 000000000..f7929baff --- /dev/null +++ b/clients/ts-sdk/src/functions/file/file.test.ts @@ -0,0 +1,43 @@ +import { beforeAll, describe, expectTypeOf } from "vitest"; +import { TrieveSDK } from "../../sdk"; +import { File, FileDTO, UploadFileResult } from "../../types.gen"; +import { EXAMPLE_FILE_ID, TRIEVE } from "../../__tests__/constants"; +import fs from "fs"; +import { test } from "../../__tests__/utils"; + +const file = fs.readFileSync("./src/__tests__/uploadme.pdf"); + +const fileEncoded = file + .toString("base64") + .replace(/\+/g, "-") // Convert '+' to '-' + .replace(/\//g, "_") // Convert '/' to '_' + .replace(/=+$/, ""); // Remove ending '=' + +describe("File Tests", async () => { + let trieve: TrieveSDK; + beforeAll(() => { + trieve = TRIEVE; + }); + test("uploadFile", async () => { + const data = await trieve.uploadFile({ + base64_file: fileEncoded, + file_name: "uploadme.pdf", + group_tracking_id: "file-upload-group", + }); + expectTypeOf(data).toEqualTypeOf(); + }); + + test("getFilesForDataset", async () => { + const data = await trieve.getFilesForDataset({ + page: 1, + }); + expectTypeOf(data).toEqualTypeOf(); + }); + + test("getFile", async () => { + const data = await trieve.getFile({ + fileId: EXAMPLE_FILE_ID, + }); + expectTypeOf(data).toEqualTypeOf(); + }); +}); diff --git a/clients/ts-sdk/src/functions/file/index.ts b/clients/ts-sdk/src/functions/file/index.ts new file mode 100644 index 000000000..efe747142 --- /dev/null +++ b/clients/ts-sdk/src/functions/file/index.ts @@ -0,0 +1,80 @@ +/** + * This includes all the functions you can use to communicate with our file API + * + * @module File Methods + */ + +import { + DeleteFileHandlerData, + GetDatasetFilesHandlerData, + GetFileHandlerData, + UploadFileReqPayload, +} from "../../fetch-client"; +import { TrieveSDK } from "../../sdk"; + +export async function uploadFile( + /** @hidden */ + this: TrieveSDK, + data: UploadFileReqPayload, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/file", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getFilesForDataset( + /** @hidden */ + this: TrieveSDK, + data: Omit, "trDataset">, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/dataset/files/{dataset_id}/{page}", + "get", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} +export async function getFile( + /** @hidden */ + this: TrieveSDK, + data: Omit, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/file/{file_id}", + "get", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function deleteFile( + /** @hidden */ + this: TrieveSDK, + data: Omit, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/file/{file_id}", + "delete", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} diff --git a/clients/ts-sdk/src/functions/groups/chunkGroup.test.ts b/clients/ts-sdk/src/functions/groups/chunkGroup.test.ts new file mode 100644 index 000000000..ce1a9be25 --- /dev/null +++ b/clients/ts-sdk/src/functions/groups/chunkGroup.test.ts @@ -0,0 +1,102 @@ +import { describe, beforeAll, expectTypeOf } from "vitest"; +import { TrieveSDK } from "../../sdk"; +import { + GROUP_EXAMPLE_ID, + GROUP_EXAMPLE_TRACKING_ID, + TRIEVE, +} from "../../__tests__/constants"; +import { + ChunkGroupAndFileId, + CreateChunkGroupResponseEnum, + GetChunksInGroupResponse, + GroupData, + GroupsForChunk, + RecommendGroupsResponse, + SearchGroupResponseTypes, + SearchOverGroupsResponseTypes, +} from "../../types.gen"; +import { test } from "../../__tests__/utils"; + +describe("Chunk Groups Methods Test", async () => { + let trieve: TrieveSDK; + beforeAll(() => { + trieve = TRIEVE; + }); + test("createChunkGroup", async () => { + const data = await trieve.createChunkGroup({ + chunk_html: "", + name: "Example for API tests", + tracking_id: GROUP_EXAMPLE_TRACKING_ID, + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("searchOverGroups", async () => { + const data = await trieve.searchOverGroups({ + query: "test", + search_type: "fulltext", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("searchInGroup", async () => { + const data = await trieve.searchInGroup({ + query: "test", + search_type: "bm25", + group_id: GROUP_EXAMPLE_ID, + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("recommendedGroups", async () => { + const data = await trieve.recommendedGroups({ + positive_group_ids: [GROUP_EXAMPLE_ID], + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("updateGroup", async () => { + const data = await trieve.updateGroup({ + group_id: GROUP_EXAMPLE_ID, + description: "test", + }); + + expectTypeOf(data).toBeVoid(); + }); + test("getGroupsForChunks", async () => { + const data = await trieve.getGroupsForChunks({ + chunk_ids: ["7d5ef532-80e3-4978-a174-eb99960fdc9d"], + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("getGroupByTrackingId", async () => { + const data = await trieve.getGroupByTrackingId({ + trackingId: GROUP_EXAMPLE_TRACKING_ID, + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("getGroup", async () => { + const data = await trieve.getGroup({ + groupId: GROUP_EXAMPLE_ID, + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("getChunksInGroup", async () => { + const data = await trieve.getChunksInGroup({ + groupId: GROUP_EXAMPLE_ID, + page: 1, + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("getGroupsForDataset", async () => { + const data = await trieve.getGroupsForDataset({ + page: 1, + }); + + expectTypeOf(data).toEqualTypeOf(); + }); +}); diff --git a/clients/ts-sdk/src/functions/groups/index.ts b/clients/ts-sdk/src/functions/groups/index.ts new file mode 100644 index 000000000..fcf9fab39 --- /dev/null +++ b/clients/ts-sdk/src/functions/groups/index.ts @@ -0,0 +1,315 @@ +/** + * This includes all the functions you can use to communicate with our groups API + * + * @module Group Methods + */ + +import { + AddChunkToGroupReqPayload, + CreateChunkGroupReqPayloadEnum, + DeleteChunkGroupData, + DeleteGroupByTrackingIdData, + GetChunkGroupData, + GetChunksInGroupByTrackingIdData, + GetChunksInGroupData, + GetGroupByTrackingIdData, + GetGroupsForChunksReqPayload, + GetGroupsForDatasetData, + RecommendGroupsReqPayload, + RemoveChunkFromGroupReqPayload, + SearchOverGroupsReqPayload, + SearchWithinGroupReqPayload, + UpdateChunkGroupReqPayload, + UpdateGroupByTrackingIDReqPayload, +} from "../../fetch-client"; +import { TrieveSDK } from "../../sdk"; + +export async function createChunkGroup( + /** @hidden */ + this: TrieveSDK, + data: Omit +) { + return this.trieve.fetch("/api/chunk_group", "post", { + data, + datasetId: this.datasetId, + }); +} + +export async function searchOverGroups( + /** @hidden */ + this: TrieveSDK, + data: SearchOverGroupsReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/group_oriented_search", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function searchInGroup( + /** @hidden */ + this: TrieveSDK, + data: SearchWithinGroupReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/search", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function recommendedGroups( + /** @hidden */ + this: TrieveSDK, + data: RecommendGroupsReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/recommend", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function updateGroup( + /** @hidden */ + this: TrieveSDK, + data: UpdateChunkGroupReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group", + "put", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function updateGroupByTrackingId( + /** @hidden */ + this: TrieveSDK, + data: UpdateGroupByTrackingIDReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/tracking_id/{tracking_id}", + "put", + { + data, + trackingId: data.tracking_id, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function addChunkToGroup( + /** @hidden */ + this: TrieveSDK, + data: AddChunkToGroupReqPayload & { group_id: string }, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/chunk/{group_id}", + "post", + { + data, + groupId: data.group_id, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function removeChunkFromGroup( + /** @hidden */ + this: TrieveSDK, + data: RemoveChunkFromGroupReqPayload & { group_id: string }, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/chunk/{group_id}", + "delete", + { + data, + groupId: data.group_id, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getGroupsForChunks( + /** @hidden */ + this: TrieveSDK, + data: GetGroupsForChunksReqPayload, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/chunks", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getChunksGroupByTrackingId( + /** @hidden */ + this: TrieveSDK, + data: Omit, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/tracking_id/{group_tracking_id}/{page}", + "get", + { + ...data, + xApiVersion: data.xApiVersion || "V2", + + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getGroupByTrackingId( + /** @hidden */ + this: TrieveSDK, + data: Omit, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/tracking_id/{tracking_id}", + "get", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function addChunkToGroupByTrackingId( + /** @hidden */ + this: TrieveSDK, + data: AddChunkToGroupReqPayload & { trackingId: string }, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/tracking_id/{tracking_id}", + "post", + { + data, + datasetId: this.datasetId, + trackingId: data.trackingId, + }, + signal + ); +} + +export async function deleteGroupByTrackingId( + /** @hidden */ + this: TrieveSDK, + data: DeleteGroupByTrackingIdData & { trackingId: string }, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/tracking_id/{tracking_id}", + "delete", + { + ...data, + trackingId: data.trackingId, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getGroup( + /** @hidden */ + this: TrieveSDK, + data: Omit, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/{group_id}", + "get", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function deleteGroup( + /** @hidden */ + this: TrieveSDK, + data: DeleteChunkGroupData, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/{group_id}", + "delete", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getChunksInGroup( + /** @hidden */ + this: TrieveSDK, + data: Omit, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/chunk_group/{group_id}/{page}", + "get", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getGroupsForDataset( + /** @hidden */ + this: TrieveSDK, + data: Omit, "trDataset">, + signal?: AbortSignal +) { + return this.trieve.fetch( + "/api/dataset/groups/{dataset_id}/{page}", + "get", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} diff --git a/clients/ts-sdk/src/functions/index.ts b/clients/ts-sdk/src/functions/index.ts new file mode 100644 index 000000000..a059dc30b --- /dev/null +++ b/clients/ts-sdk/src/functions/index.ts @@ -0,0 +1,17 @@ +import * as chunkMethods from "./chunks/index"; +import * as groupsMethods from "./groups/index"; +import * as analyticsMethods from "./analytics/index"; +import * as topicMethods from "./topic/index"; +import * as messageMethods from "./message/index"; +import * as fileMethods from "./file/index"; +import * as eventsMethods from "./events/index"; + +export default { + ...chunkMethods, + ...groupsMethods, + ...analyticsMethods, + ...topicMethods, + ...messageMethods, + ...fileMethods, + ...eventsMethods, +}; diff --git a/clients/ts-sdk/src/functions/message/index.ts b/clients/ts-sdk/src/functions/message/index.ts new file mode 100644 index 000000000..f7e6b71f6 --- /dev/null +++ b/clients/ts-sdk/src/functions/message/index.ts @@ -0,0 +1,80 @@ +/** + * This includes all the functions you can use to communicate with our messages API + * + * @module Messages Methods + */ +import { + CreateMessageReqPayload, + EditMessageReqPayload, + GetAllTopicMessagesData, + RegenerateMessageReqPayload, +} from "../../fetch-client"; +import { TrieveSDK } from "../../sdk"; + +export async function createMessage( + /** @hidden */ + this: TrieveSDK, + data: CreateMessageReqPayload, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/message", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function editMessage( + /** @hidden */ + this: TrieveSDK, + data: EditMessageReqPayload, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/message", + "put", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function regenerateMessage( + /** @hidden */ + this: TrieveSDK, + data: RegenerateMessageReqPayload, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/message", + "delete", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getAllMessagesForTopic( + /** @hidden */ + this: TrieveSDK, + data: Omit, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/messages/{messages_topic_id}", + "get", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} diff --git a/clients/ts-sdk/src/functions/message/message.test.ts b/clients/ts-sdk/src/functions/message/message.test.ts new file mode 100644 index 000000000..ea5ac3a2d --- /dev/null +++ b/clients/ts-sdk/src/functions/message/message.test.ts @@ -0,0 +1,46 @@ +import { beforeAll, describe, expectTypeOf } from "vitest"; +import { TrieveSDK } from "../../sdk"; +import { Message } from "../../types.gen"; +import { EXAMPLE_TOPIC_ID, TRIEVE } from "../../__tests__/constants"; +import { test } from "../../__tests__/utils"; + +describe("Message Tests", async () => { + let trieve: TrieveSDK; + beforeAll(() => { + trieve = TRIEVE; + }); + test("createMessage", async () => { + const data = await trieve.createMessage({ + topic_id: EXAMPLE_TOPIC_ID, + new_message_content: "test", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("editMessage", async () => { + const data = await trieve.editMessage({ + message_sort_order: 1, + new_message_content: "test2", + topic_id: EXAMPLE_TOPIC_ID, + }); + + expectTypeOf(data).toBeUnknown(); + }); + + test("regenerateMessage", async () => { + const data = await trieve.regenerateMessage({ + topic_id: EXAMPLE_TOPIC_ID, + search_query: "test", + search_type: "fulltext", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("getAllMessagesForTopic", async () => { + const data = await trieve.getAllMessagesForTopic({ + messagesTopicId: EXAMPLE_TOPIC_ID, + }); + + expectTypeOf(data).toEqualTypeOf(); + }); +}); diff --git a/clients/ts-sdk/src/functions/topic/index.ts b/clients/ts-sdk/src/functions/topic/index.ts new file mode 100644 index 000000000..1f0bda2fc --- /dev/null +++ b/clients/ts-sdk/src/functions/topic/index.ts @@ -0,0 +1,62 @@ +/** + * This includes all the functions you can use to communicate with our topics API + * + * @module Topic Methods + */ +import { + CreateTopicReqPayload, + GetAllTopicsForOwnerIdData, + UpdateTopicReqPayload, +} from "../../fetch-client"; +import { TrieveSDK } from "../../sdk"; + +export async function createTopic( + /** @hidden */ + this: TrieveSDK, + data: CreateTopicReqPayload, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/topic", + "post", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function updateTopic( + /** @hidden */ + this: TrieveSDK, + data: UpdateTopicReqPayload, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/topic", + "put", + { + data, + datasetId: this.datasetId, + }, + signal + ); +} + +export async function getAllTopics( + /** @hidden */ + this: TrieveSDK, + data: Omit, + signal?: AbortSignal +) { + return await this.trieve.fetch( + "/api/topic/owner/{owner_id}", + "get", + { + ...data, + datasetId: this.datasetId, + }, + signal + ); +} diff --git a/clients/ts-sdk/src/functions/topic/topic.test.ts b/clients/ts-sdk/src/functions/topic/topic.test.ts new file mode 100644 index 000000000..d8d49dd64 --- /dev/null +++ b/clients/ts-sdk/src/functions/topic/topic.test.ts @@ -0,0 +1,35 @@ +import { beforeAll, describe, expectTypeOf } from "vitest"; +import { TrieveSDK } from "../../sdk"; +import { Topic } from "../../types.gen"; +import { EXAMPLE_TOPIC_ID, TRIEVE } from "../../__tests__/constants"; +import { test } from "../../__tests__/utils"; + +describe("Topic Tests", async () => { + let trieve: TrieveSDK; + beforeAll(() => { + trieve = TRIEVE; + }); + test("createTopic", async () => { + const data = await trieve.createTopic({ + owner_id: "de73679c-707f-4fc2-853e-994c910d944c", + first_user_message: "hello", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); + test("updateTopic", async () => { + const data = await trieve.updateTopic({ + topic_id: EXAMPLE_TOPIC_ID, + name: "change test", + }); + + expectTypeOf(data).toBeVoid(); + }); + test("getAllTopics", async () => { + const data = await trieve.getAllTopics({ + ownerId: "de73679c-707f-4fc2-853e-994c910d944c", + }); + + expectTypeOf(data).toEqualTypeOf(); + }); +}); diff --git a/clients/ts-sdk/src/index.ts b/clients/ts-sdk/src/index.ts new file mode 100644 index 000000000..f1fa557bd --- /dev/null +++ b/clients/ts-sdk/src/index.ts @@ -0,0 +1,6 @@ +/** + * This comment _supports_ [Markdown](https://www.markdownguide.org/) + */ + +export { TrieveFetchClient } from "./fetch-client"; +export { TrieveSDK } from "./sdk"; diff --git a/clients/ts-sdk/src/sdk.ts b/clients/ts-sdk/src/sdk.ts new file mode 100644 index 000000000..c6057e9ea --- /dev/null +++ b/clients/ts-sdk/src/sdk.ts @@ -0,0 +1,35 @@ +import methods from "./functions/index"; +import { TrieveFetchClient } from "./fetch-client"; + +export class TrieveSDK { + trieve: TrieveFetchClient; + datasetId: string; + constructor({ + apiKey, + baseUrl = "https://api.trieve.ai", + debug = false, + datasetId, + }: { + apiKey: string; + baseUrl?: string; + debug?: boolean; + datasetId: string; + }) { + this.trieve = new TrieveFetchClient({ + apiKey: apiKey, + baseUrl: baseUrl, + debug: debug, + }); + this.datasetId = datasetId; + } +} + +type Methods = typeof methods; +Object.entries(methods).forEach(([name, method]) => { + // @ts-expect-error string should be used to index in this case + TrieveSDK.prototype[name] = method; +}); + +declare module "./sdk" { + interface TrieveSDK extends Methods {} +} diff --git a/clients/fetch-client/src/types.gen.ts b/clients/ts-sdk/src/types.gen.ts similarity index 86% rename from clients/fetch-client/src/types.gen.ts rename to clients/ts-sdk/src/types.gen.ts index c8ec51688..c866c65d7 100644 --- a/clients/fetch-client/src/types.gen.ts +++ b/clients/ts-sdk/src/types.gen.ts @@ -6,11 +6,11 @@ export type AddChunkToGroupReqPayload = { /** * Id of the chunk to make a member of the group. */ - chunk_id?: string | null; + chunk_id?: (string) | null; /** * Tracking Id of the chunk to make a member of the group. */ - chunk_tracking_id?: string | null; + chunk_tracking_id?: (string) | null; }; export type ApiKeyRespBody = { @@ -28,32 +28,32 @@ export type AuthQuery = { /** * Code sent via email as a result of successful call to send_invitation */ - inv_code?: string | null; + inv_code?: (string) | null; /** * ID of organization to authenticate into */ - organization_id?: string | null; + organization_id?: (string) | null; /** * URL to redirect to after successful login */ - redirect_uri?: string | null; + redirect_uri?: (string) | null; }; export type AutocompleteReqPayload = { /** * Set content_only to true to only returning the chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typically 10-50ms). Default is false. */ - content_only?: boolean | null; + content_only?: (boolean) | null; /** * If specified to true, this will extend the search results to include non-exact prefix matches of the same search_type such that a full page_size of results are returned. Default is false. */ - extend_results?: boolean | null; - filters?: (ChunkFilter) | null; - highlight_options?: (HighlightOptions) | null; + extend_results?: (boolean) | null; + filters?: ((ChunkFilter) | null); + highlight_options?: ((HighlightOptions) | null); /** * Page size is the number of chunks to fetch. This can be used to fetch more than 10 chunks at a time. */ - page_size?: number | null; + page_size?: (number) | null; /** * Query is the search query. This can be any string. The query will be used to create an embedding vector and/or SPLADE vector which will be used to find the result set. */ @@ -61,21 +61,25 @@ export type AutocompleteReqPayload = { /** * If true, stop words (specified in server/src/stop-words.txt in the git repo) will be removed. Queries that are entirely stop words will be preserved. */ - remove_stop_words?: boolean | null; + remove_stop_words?: (boolean) | null; /** * Set score_threshold to a float to filter out chunks with a score below the threshold. This threshold applies before weight and bias modifications. If not specified, this defaults to 0.0. */ - score_threshold?: number | null; + score_threshold?: (number) | null; search_type: SearchMethod; /** * Set slim_chunks to true to avoid returning the content and chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typically 10-50ms). Default is false. */ - slim_chunks?: boolean | null; - sort_options?: (SortOptions) | null; + slim_chunks?: (boolean) | null; + sort_options?: ((SortOptions) | null); /** * If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false. */ - use_quote_negated_terms?: boolean | null; + use_quote_negated_terms?: (boolean) | null; + /** + * User ID is the id of the user who is making the request. This is used to track user interactions with the search results. + */ + user_id?: (string) | null; }; export type BatchQueuedChunkResponse = { @@ -87,26 +91,26 @@ export type BatchQueuedChunkResponse = { }; export type CTRAnalytics = { - filter?: (SearchAnalyticsFilter) | null; + filter?: ((SearchAnalyticsFilter) | null); type: 'search_ctr_metrics'; } | { - filter?: (SearchAnalyticsFilter) | null; - page?: number | null; + filter?: ((SearchAnalyticsFilter) | null); + page?: (number) | null; type: 'searches_with_clicks'; } | { - filter?: (SearchAnalyticsFilter) | null; - page?: number | null; + filter?: ((SearchAnalyticsFilter) | null); + page?: (number) | null; type: 'searches_without_clicks'; } | { - filter?: (RecommendationAnalyticsFilter) | null; + filter?: ((RecommendationAnalyticsFilter) | null); type: 'recommendation_ctr_metrics'; } | { - filter?: (RecommendationAnalyticsFilter) | null; - page?: number | null; + filter?: ((RecommendationAnalyticsFilter) | null); + page?: (number) | null; type: 'recommendations_with_clicks'; } | { - filter?: (RecommendationAnalyticsFilter) | null; - page?: number | null; + filter?: ((RecommendationAnalyticsFilter) | null); + page?: (number) | null; type: 'recommendations_without_clicks'; }; @@ -118,11 +122,11 @@ export type CTRDataRequestBody = { /** * The ID of chunk that was clicked */ - clicked_chunk_id?: string | null; + clicked_chunk_id?: (string) | null; /** * The tracking ID of the chunk that was clicked */ - clicked_chunk_tracking_id?: string | null; + clicked_chunk_tracking_id?: (string) | null; ctr_type: CTRType; /** * Any metadata you want to include with the event i.e. action, user_id, etc. @@ -168,7 +172,7 @@ export type ChunkFilter = { /** * JOSNB prefilter tells the server to perform a full scan over the metadata JSONB column instead of using the filtered HNSW. Datasets on the enterprise plan with custom metadata indices will perform better with the filtered HNSW instead. When false, the server will use the filtered HNSW index to filter chunks. When true, the server will perform a full scan over the metadata JSONB column to filter chunks. Default is true. */ - jsonb_prefilter?: boolean | null; + jsonb_prefilter?: (boolean) | null; /** * All of these field conditions have to match for the chunk to be included in the result set. */ @@ -190,8 +194,8 @@ export type ChunkGroup = { id: string; metadata?: unknown; name: string; - tag_set?: Array<(string | null)> | null; - tracking_id?: string | null; + tag_set?: Array<((string) | null)> | null; + tracking_id?: (string) | null; updated_at: string; }; @@ -199,47 +203,47 @@ export type ChunkGroupAndFileId = { created_at: string; dataset_id: string; description: string; - file_id?: string | null; + file_id?: (string) | null; id: string; metadata?: unknown; name: string; - tag_set?: Array<(string | null)> | null; - tracking_id?: string | null; + tag_set?: Array<((string) | null)> | null; + tracking_id?: (string) | null; updated_at: string; }; export type ChunkGroups = Array; export type ChunkMetadata = { - chunk_html?: string | null; + chunk_html?: (string) | null; created_at: string; dataset_id: string; id: string; - image_urls?: Array<(string | null)> | null; - link?: string | null; - location?: (GeoInfo) | null; + image_urls?: Array<((string) | null)> | null; + link?: (string) | null; + location?: ((GeoInfo) | null); metadata?: unknown; - num_value?: number | null; - tag_set?: Array<(string | null)> | null; - time_stamp?: string | null; - tracking_id?: string | null; + num_value?: (number) | null; + tag_set?: Array<((string) | null)> | null; + time_stamp?: (string) | null; + tracking_id?: (string) | null; updated_at: string; weight: number; }; export type ChunkMetadataStringTagSet = { - chunk_html?: string | null; + chunk_html?: (string) | null; created_at: string; dataset_id: string; id: string; - image_urls?: Array<(string | null)> | null; - link?: string | null; - location?: (GeoInfo) | null; + image_urls?: Array<((string) | null)> | null; + link?: (string) | null; + location?: ((GeoInfo) | null); metadata?: unknown; - num_value?: number | null; - tag_set?: string | null; - time_stamp?: string | null; - tracking_id?: string | null; + num_value?: (number) | null; + tag_set?: (string) | null; + time_stamp?: (string) | null; + tracking_id?: (string) | null; updated_at: string; weight: number; }; @@ -247,16 +251,16 @@ export type ChunkMetadataStringTagSet = { export type ChunkMetadataTypes = SlimChunkMetadata | ChunkMetadataStringTagSet | ContentChunkMetadata; export type ChunkMetadataWithScore = { - chunk_html?: string | null; + chunk_html?: (string) | null; created_at: string; dataset_id: string; id: string; - link?: string | null; + link?: (string) | null; metadata?: unknown; score: number; - tag_set?: string | null; - time_stamp?: string | null; - tracking_id?: string | null; + tag_set?: (string) | null; + time_stamp?: (string) | null; + tracking_id?: (string) | null; updated_at: string; weight: number; }; @@ -265,18 +269,18 @@ export type ChunkReqPayload = { /** * HTML content of the chunk. This can also be plaintext. The innerText of the HTML will be used to create the embedding vector. The point of using HTML is for convienience, as some users have applications where users submit HTML content. */ - chunk_html?: string | null; + chunk_html?: (string) | null; /** * Convert HTML to raw text before processing to avoid adding noise to the vector embeddings. By default this is true. If you are using HTML content that you want to be included in the vector embeddings, set this to false. */ - convert_html_to_text?: boolean | null; - fulltext_boost?: (FullTextBoost) | null; + convert_html_to_text?: (boolean) | null; + fulltext_boost?: ((FullTextBoost) | null); /** * Group ids are the Trieve generated ids of the groups that the chunk should be placed into. This is useful for when you want to create a chunk and add it to a group or multiple groups in one request. Groups with these Trieve generated ids must be created first, it cannot be arbitrarily created through this route. */ group_ids?: Array<(string)> | null; /** - * Group tracking_ids are the user-assigned tracking_ids of the groups that the chunk should be placed into. This is useful for when you want to create a chunk and add it to a group or multiple groups in one request. Groups with these user-assigned tracking_ids must be created first, it cannot be arbitrarily created through this route. + * Group tracking_ids are the user-assigned tracking_ids of the groups that the chunk should be placed into. This is useful for when you want to create a chunk and add it to a group or multiple groups in one request. If a group with the tracking_id does not exist, it will be created. */ group_tracking_ids?: Array<(string)> | null; /** @@ -286,8 +290,8 @@ export type ChunkReqPayload = { /** * Link to the chunk. This can also be any string. Frequently, this is a link to the source of the chunk. The link value will not affect the embedding creation. */ - link?: string | null; - location?: (GeoInfo) | null; + link?: (string) | null; + location?: ((GeoInfo) | null); /** * Metadata is a JSON object which can be used to filter chunks. This is useful for when you want to filter chunks by arbitrary metadata. Unlike with tag filtering, there is a performance hit for filtering on metadata. */ @@ -295,16 +299,16 @@ export type ChunkReqPayload = { /** * Num value is an arbitrary numerical value that can be used to filter chunks. This is useful for when you want to filter chunks by numerical value. There is no performance hit for filtering on num_value. */ - num_value?: number | null; - semantic_boost?: (SemanticBoost) | null; + num_value?: (number) | null; + semantic_boost?: ((SemanticBoost) | null); /** * If semantic_content is present, it will be used for creating semantic embeddings instead of the innerText `chunk_html`. `chunk_html` will still be the only thing stored and always used for fulltext functionality. */ - semantic_content?: string | null; + semantic_content?: (string) | null; /** * Split avg is a boolean which tells the server to split the text in the chunk_html into smaller chunks and average their resulting vectors. This is useful for when you want to create a chunk from a large piece of text and want to split it into smaller chunks to create a more fuzzy average dense vector. The sparse vector will be generated normally with no averaging. By default this is false. */ - split_avg?: boolean | null; + split_avg?: (boolean) | null; /** * Tag set is a list of tags. This can be used to filter chunks by tag. Unlike with metadata filtering, HNSW indices will exist for each tag such that there is not a performance hit for filtering on them. */ @@ -312,36 +316,36 @@ export type ChunkReqPayload = { /** * Time_stamp should be an ISO 8601 combined date and time without timezone. It is used for time window filtering and recency-biasing search results. */ - time_stamp?: string | null; + time_stamp?: (string) | null; /** * Tracking_id is a string which can be used to identify a chunk. This is useful for when you are coordinating with an external system and want to use the tracking_id to identify the chunk. */ - tracking_id?: string | null; + tracking_id?: (string) | null; /** * Upsert when a chunk with the same tracking_id exists. By default this is false, and the request will fail if a chunk with the same tracking_id exists. If this is true, the chunk will be updated if a chunk with the same tracking_id exists. */ - upsert_by_tracking_id?: boolean | null; + upsert_by_tracking_id?: (boolean) | null; /** * Weight is a float which can be used to bias search results. This is useful for when you want to bias search results for a chunk. The magnitude only matters relative to other chunks in the chunk's dataset dataset. */ - weight?: number | null; + weight?: (number) | null; }; export type ChunkReturnTypes = ChunkMetadata | ChunkMetadataStringTagSet; export type ClusterAnalytics = { - filter?: (ClusterAnalyticsFilter) | null; + filter?: ((ClusterAnalyticsFilter) | null); type: 'cluster_topics'; } | { cluster_id: string; - page?: number | null; + page?: (number) | null; type: 'cluster_queries'; }; export type type2 = 'cluster_topics'; export type ClusterAnalyticsFilter = { - date_range?: (DateRange) | null; + date_range?: ((DateRange) | null); }; export type ClusterAnalyticsResponse = SearchClusterResponse | SearchQueryResponse; @@ -349,12 +353,12 @@ export type ClusterAnalyticsResponse = SearchClusterResponse | SearchQueryRespon export type ConditionType = FieldCondition | HasIDCondition; export type ContentChunkMetadata = { - chunk_html?: string | null; + chunk_html?: (string) | null; id: string; - image_urls?: Array<(string | null)> | null; - num_value?: number | null; - time_stamp?: string | null; - tracking_id?: string | null; + image_urls?: Array<((string) | null)> | null; + num_value?: (number) | null; + time_stamp?: (string) | null; + tracking_id?: (string) | null; weight: number; }; @@ -363,21 +367,21 @@ export type CountChunkQueryResponseBody = { }; export type CountChunksReqPayload = { - filters?: (ChunkFilter) | null; + filters?: ((ChunkFilter) | null); /** * Set limit to restrict the maximum number of chunks to count. This is useful for when you want to reduce the latency of the count operation. By default the limit will be the number of chunks in the dataset. */ - limit?: number | null; + limit?: (number) | null; query: QueryTypes; /** * Set score_threshold to a float to filter out chunks with a score below the threshold. This threshold applies before weight and bias modifications. If not specified, this defaults to 0.0. */ - score_threshold?: number | null; + score_threshold?: (number) | null; search_type: CountSearchMethod; /** * If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false. */ - use_quote_negated_terms?: boolean | null; + use_quote_negated_terms?: (boolean) | null; }; export type CountSearchMethod = 'fulltext' | 'semantic' | 'bm25'; @@ -401,21 +405,21 @@ export type CreateDatasetRequest = { * Organization ID that the dataset will belong to. */ organization_id: string; - server_configuration?: (DatasetConfigurationDTO) | null; + server_configuration?: ((DatasetConfigurationDTO) | null); /** * Optional tracking ID for the dataset. Can be used to track the dataset in external systems. Must be unique within the organization. Strongly recommended to not use a valid uuid value as that will not work with the TR-Dataset header. */ - tracking_id?: string | null; + tracking_id?: (string) | null; }; export type CreateMessageReqPayload = { /** * If concat user messages query is set to true, all of the user messages in the topic will be concatenated together and used as the search query. If not specified, this defaults to false. Default is false. */ - concat_user_messages_query?: boolean | null; - filters?: (ChunkFilter) | null; - highlight_options?: (HighlightOptions) | null; - llm_options?: (LLMOptions) | null; + concat_user_messages_query?: (boolean) | null; + filters?: ((ChunkFilter) | null); + highlight_options?: ((HighlightOptions) | null); + llm_options?: ((LLMOptions) | null); /** * The content of the user message to attach to the topic and then generate an assistant message in response to. */ @@ -423,20 +427,24 @@ export type CreateMessageReqPayload = { /** * Page size is the number of chunks to fetch during RAG. If 0, then no search will be performed. If specified, this will override the N retrievals to include in the dataset configuration. Default is None. */ - page_size?: number | null; + page_size?: (number) | null; /** * Set score_threshold to a float to filter out chunks with a score below the threshold. This threshold applies before weight and bias modifications. If not specified, this defaults to 0.0. */ - score_threshold?: number | null; + score_threshold?: (number) | null; /** * Query is the search query. This can be any string. The search_query will be used to create a dense embedding vector and/or sparse vector which will be used to find the result set. If not specified, will default to the last user message or HyDE if HyDE is enabled in the dataset configuration. Default is None. */ - search_query?: string | null; - search_type?: (SearchMethod) | null; + search_query?: (string) | null; + search_type?: ((SearchMethod) | null); /** * The ID of the topic to attach the message to. */ topic_id: string; + /** + * The user_id is the id of the user who is making the request. This is used to track user interactions with the RAG results. + */ + user_id?: (string) | null; }; export type CreateOrganizationReqPayload = { @@ -454,7 +462,7 @@ export type CreateSingleChunkGroupReqPayload = { /** * Description to assign to the chunk_group. Convenience field for you to avoid having to remember what the group is for. */ - description?: string | null; + description?: (string) | null; /** * Optional metadata to assign to the chunk_group. This is a JSON object that can store any additional information you want to associate with the chunks inside of the chunk_group. */ @@ -462,7 +470,7 @@ export type CreateSingleChunkGroupReqPayload = { /** * Name to assign to the chunk_group. Does not need to be unique. */ - name?: string | null; + name?: (string) | null; /** * Optional tags to assign to the chunk_group. This is a list of strings that can be used to categorize the chunks inside the chunk_group. */ @@ -470,11 +478,11 @@ export type CreateSingleChunkGroupReqPayload = { /** * Optional tracking id to assign to the chunk_group. This is a unique identifier for the chunk_group. */ - tracking_id?: string | null; + tracking_id?: (string) | null; /** * Upsert when a chunk_group with the same tracking_id exists. By default this is false, and the request will fail if a chunk_group with the same tracking_id exists. If this is true, the chunk_group will be updated if a chunk_group with the same tracking_id exists. */ - upsert_by_tracking_id?: boolean | null; + upsert_by_tracking_id?: (boolean) | null; }; export type CreateSingleChunkReqPayload = ChunkReqPayload; @@ -483,11 +491,11 @@ export type CreateTopicReqPayload = { /** * The first message which will belong to the topic. The topic name is generated based on this message similar to how it works in the OpenAI chat UX if a name is not explicitly provided on the name request body key. */ - first_user_message?: string | null; + first_user_message?: (string) | null; /** * The name of the topic. If this is not provided, the topic name is generated from the first_user_message. */ - name?: string | null; + name?: (string) | null; /** * The owner_id of the topic. This is typically a browser fingerprint or your user's id. It is used to group topics together for a user. */ @@ -501,7 +509,7 @@ export type Dataset = { name: string; organization_id: string; server_configuration: unknown; - tracking_id?: string | null; + tracking_id?: (string) | null; updated_at: string; }; @@ -526,92 +534,92 @@ export type DatasetConfigurationDTO = { /** * The average length of the chunks in the index for BM25 */ - BM25_AVG_LEN?: number | null; + BM25_AVG_LEN?: (number) | null; /** * The BM25 B parameter */ - BM25_B?: number | null; + BM25_B?: (number) | null; /** * Whether to use BM25 */ - BM25_ENABLED?: boolean | null; + BM25_ENABLED?: (boolean) | null; /** * The BM25 K parameter */ - BM25_K?: number | null; - DISTANCE_METRIC?: (DistanceMetric) | null; + BM25_K?: (number) | null; + DISTANCE_METRIC?: ((DistanceMetric) | null); /** * The base URL for the embedding API */ - EMBEDDING_BASE_URL?: string | null; + EMBEDDING_BASE_URL?: (string) | null; /** * The name of the embedding model to use */ - EMBEDDING_MODEL_NAME?: string | null; + EMBEDDING_MODEL_NAME?: (string) | null; /** * The prefix to use for the embedding query */ - EMBEDDING_QUERY_PREFIX?: string | null; + EMBEDDING_QUERY_PREFIX?: (string) | null; /** * The size of the embeddings */ - EMBEDDING_SIZE?: number | null; + EMBEDDING_SIZE?: (number) | null; /** * The frequency penalty to use */ - FREQUENCY_PENALTY?: number | null; + FREQUENCY_PENALTY?: (number) | null; /** * Whether to use fulltext search */ - FULLTEXT_ENABLED?: boolean | null; + FULLTEXT_ENABLED?: (boolean) | null; /** * Whether to only use indexed chunks */ - INDEXED_ONLY?: boolean | null; + INDEXED_ONLY?: (boolean) | null; /** * The base URL for the LLM API */ - LLM_BASE_URL?: string | null; + LLM_BASE_URL?: (string) | null; /** * The default model to use for the LLM */ - LLM_DEFAULT_MODEL?: string | null; + LLM_DEFAULT_MODEL?: (string) | null; /** * Whether the dataset is locked to prevent changes or deletion */ - LOCKED?: boolean | null; + LOCKED?: (boolean) | null; /** * The maximum limit for the number of chunks for counting */ - MAX_LIMIT?: number | null; + MAX_LIMIT?: (number) | null; /** * The maximum number of tokens to use in LLM Response */ - MAX_TOKENS?: number | null; + MAX_TOKENS?: (number) | null; /** * The prompt to use for converting a message to a query */ - MESSAGE_TO_QUERY_PROMPT?: string | null; + MESSAGE_TO_QUERY_PROMPT?: (string) | null; /** * The number of retrievals to include with the RAG model */ - N_RETRIEVALS_TO_INCLUDE?: number | null; + N_RETRIEVALS_TO_INCLUDE?: (number) | null; /** * The presence penalty to use */ - PRESENCE_PENALTY?: number | null; + PRESENCE_PENALTY?: (number) | null; /** * The prompt to use for the RAG model */ - RAG_PROMPT?: string | null; + RAG_PROMPT?: (string) | null; /** * The base URL for the reranker API */ - RERANKER_BASE_URL?: string | null; + RERANKER_BASE_URL?: (string) | null; /** * Whether to use semantic search */ - SEMANTIC_ENABLED?: boolean | null; + SEMANTIC_ENABLED?: (boolean) | null; /** * The stop tokens to use */ @@ -619,15 +627,15 @@ export type DatasetConfigurationDTO = { /** * The system prompt to use for the LLM */ - SYSTEM_PROMPT?: string | null; + SYSTEM_PROMPT?: (string) | null; /** * The temperature to use */ - TEMPERATURE?: number | null; + TEMPERATURE?: (number) | null; /** * Whether to use the message to query prompt */ - USE_MESSAGE_TO_QUERY_PROMPT?: boolean | null; + USE_MESSAGE_TO_QUERY_PROMPT?: (boolean) | null; }; export type DatasetDTO = { @@ -635,7 +643,7 @@ export type DatasetDTO = { id: string; name: string; organization_id: string; - tracking_id?: string | null; + tracking_id?: (string) | null; updated_at: string; }; @@ -646,10 +654,10 @@ export type DatasetUsageCount = { }; export type DateRange = { - gt?: string | null; - gte?: string | null; - lt?: string | null; - lte?: string | null; + gt?: (string) | null; + gte?: (string) | null; + lt?: (string) | null; + lte?: (string) | null; }; export type DeleteTopicData = { @@ -677,10 +685,10 @@ export type EditMessageReqPayload = { /** * If concat user messages query is set to true, all of the user messages in the topic will be concatenated together and used as the search query. If not specified, this defaults to false. Default is false. */ - concat_user_messages_query?: boolean | null; - filters?: (ChunkFilter) | null; - highlight_options?: (HighlightOptions) | null; - llm_options?: (LLMOptions) | null; + concat_user_messages_query?: (boolean) | null; + filters?: ((ChunkFilter) | null); + highlight_options?: ((HighlightOptions) | null); + llm_options?: ((LLMOptions) | null); /** * The sort order of the message to edit. */ @@ -692,20 +700,24 @@ export type EditMessageReqPayload = { /** * Page size is the number of chunks to fetch during RAG. If 0, then no search will be performed. If specified, this will override the N retrievals to include in the dataset configuration. Default is None. */ - page_size?: number | null; + page_size?: (number) | null; /** * Set score_threshold to a float to filter out chunks with a score below the threshold. This threshold applies before weight and bias modifications. If not specified, this defaults to 0.0. */ - score_threshold?: number | null; + score_threshold?: (number) | null; /** * Query is the search query. This can be any string. The search_query will be used to create a dense embedding vector and/or sparse vector which will be used to find the result set. If not specified, will default to the last user message or HyDE if HyDE is enabled in the dataset configuration. Default is None. */ - search_query?: string | null; - search_type?: (SearchMethod) | null; + search_query?: (string) | null; + search_type?: ((SearchMethod) | null); /** * The id of the topic to edit the message at the given sort order for. */ topic_id: string; + /** + * The user_id is the id of the user who is making the request. This is used to track user interactions with the RAG results. + */ + user_id?: (string) | null; }; export type ErrorResponseBody = { @@ -720,14 +732,14 @@ export type EventReturn = { export type EventTypeRequest = 'file_uploaded' | 'file_upload_failed' | 'chunks_uploaded' | 'chunk_action_failed' | 'chunk_updated' | 'bulk_chunks_deleted' | 'dataset_delete_failed' | 'qdrant_upload_failed' | 'bulk_chunk_upload_failed' | 'group_chunks_updated' | 'group_chunks_action_failed'; export type FieldCondition = { - date_range?: (DateRange) | null; + date_range?: ((DateRange) | null); /** * Field is the name of the field to filter on. The field value will be used to check for an exact substring match on the metadata values for each existing chunk. This is useful for when you want to filter chunks by arbitrary metadata. To access fields inside of the metadata that you provide with the card, prefix the field name with `metadata.`. */ field: string; - geo_bounding_box?: (LocationBoundingBox) | null; - geo_polygon?: (LocationPolygon) | null; - geo_radius?: (LocationRadius) | null; + geo_bounding_box?: ((LocationBoundingBox) | null); + geo_polygon?: ((LocationPolygon) | null); + geo_radius?: ((LocationRadius) | null); /** * Match all lets you pass in an array of values that will return results if all of the items match. The match value will be used to check for an exact substring match on the metadata values for each existing chunk. If both match_all and match_any are provided, the match_any condition will be used. */ @@ -736,7 +748,7 @@ export type FieldCondition = { * Match any lets you pass in an array of values that will return results if any of the items match. The match value will be used to check for an exact substring match on the metadata values for each existing chunk. If both match_all and match_any are provided, the match_any condition will be used. */ match_any?: Array | null; - range?: (Range) | null; + range?: ((Range) | null); }; export type File = { @@ -744,11 +756,11 @@ export type File = { dataset_id: string; file_name: string; id: string; - link?: string | null; + link?: (string) | null; metadata?: unknown; size: number; - tag_set?: Array<(string | null)> | null; - time_stamp?: string | null; + tag_set?: Array<((string) | null)> | null; + time_stamp?: (string) | null; updated_at: string; }; @@ -756,7 +768,7 @@ export type FileDTO = { created_at: string; file_name: string; id: string; - link?: string | null; + link?: (string) | null; metadata?: unknown; s3_url: string; size: number; @@ -785,19 +797,19 @@ export type GenerateOffChunksReqPayload = { /** * Frequency penalty is a number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. Default is 0.7. */ - frequency_penalty?: number | null; + frequency_penalty?: (number) | null; /** * Set highlight_results to false for a slight latency improvement (1-10ms). If not specified, this defaults to true. This will add `` tags to the chunk_html of the chunks to highlight matching splits. */ - highlight_results?: boolean | null; + highlight_results?: (boolean) | null; /** * The maximum number of tokens to generate in the chat completion. Default is None. */ - max_tokens?: number | null; + max_tokens?: (number) | null; /** * Presence penalty is a number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. Default is 0.7. */ - presence_penalty?: number | null; + presence_penalty?: (number) | null; /** * The previous messages to be placed into the chat history. There must be at least one previous message. */ @@ -805,7 +817,7 @@ export type GenerateOffChunksReqPayload = { /** * Prompt will be used to tell the model what to generate in the next message in the chat. The default is 'Respond to the previous instruction and include the doc numbers that you used in square brackets at the end of the sentences that you used the docs for:'. You can also specify an empty string to leave the final message alone such that your user's final message can be used as the prompt. See docs.trieve.ai or contact us for more information. */ - prompt?: string | null; + prompt?: (string) | null; /** * Stop tokens are up to 4 sequences where the API will stop generating further tokens. Default is None. */ @@ -813,11 +825,15 @@ export type GenerateOffChunksReqPayload = { /** * Whether or not to stream the response. If this is set to true or not included, the response will be a stream. If this is set to false, the response will be a normal JSON response. Default is true. */ - stream_response?: boolean | null; + stream_response?: (boolean) | null; /** * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. Default is 0.5. */ - temperature?: number | null; + temperature?: (number) | null; + /** + * User ID is the id of the user who is making the request. This is used to track user interactions with the RAG results. + */ + user_id?: (string) | null; }; /** @@ -845,11 +861,11 @@ export type GetAllTagsReqPayload = { /** * Page number to return, 1-indexed. Default is 1. */ - page?: number | null; + page?: (number) | null; /** * Number of items to return per page. Default is 20. */ - page_size?: number | null; + page_size?: (number) | null; }; export type GetAllTagsResponse = { @@ -870,8 +886,8 @@ export type GetChunksInGroupsResponseBody = { }; export type GetDatasetsPagination = { - limit?: number | null; - offset?: number | null; + limit?: (number) | null; + offset?: (number) | null; }; export type GetEventsData = { @@ -882,11 +898,11 @@ export type GetEventsData = { /** * The page number to get. Default is 1. */ - page?: number | null; + page?: (number) | null; /** * The number of items per page. Default is 10. */ - page_size?: number | null; + page_size?: (number) | null; }; export type GetGroupsForChunksReqPayload = { @@ -905,15 +921,15 @@ export type GroupData = { }; export type GroupScoreChunk = { - file_id?: string | null; + file_id?: (string) | null; group_created_at: string; group_dataset_id: string; - group_description?: string | null; + group_description?: (string) | null; group_id: string; group_metadata?: unknown; - group_name?: string | null; - group_tag_set?: Array<(string | null)> | null; - group_tracking_id?: string | null; + group_name?: (string) | null; + group_tag_set?: Array<((string) | null)> | null; + group_tracking_id?: (string) | null; group_updated_at: string; metadata: Array; }; @@ -954,24 +970,24 @@ export type HighlightOptions = { /** * Set highlight_max_length to control the maximum number of tokens (typically whitespace separated strings, but sometimes also word stems) which can be present within a single highlight. If not specified, this defaults to 8. This is useful to shorten large splits which may have low scores due to length compared to the query. Set to something very large like 100 to highlight entire splits. */ - highlight_max_length?: number | null; + highlight_max_length?: (number) | null; /** * Set highlight_max_num to control the maximum number of highlights per chunk. If not specified, this defaults to 3. It may be less than 3 if no snippets score above the highlight_threshold. */ - highlight_max_num?: number | null; + highlight_max_num?: (number) | null; /** * Set highlight_results to false for a slight latency improvement (1-10ms). If not specified, this defaults to true. This will add `` tags to the chunk_html of the chunks to highlight matching splits and return the highlights on each scored chunk in the response. */ - highlight_results?: boolean | null; - highlight_strategy?: (HighlightStrategy) | null; + highlight_results?: (boolean) | null; + highlight_strategy?: ((HighlightStrategy) | null); /** * Set highlight_threshold to a lower or higher value to adjust the sensitivity of the highlights applied to the chunk html. If not specified, this defaults to 0.8. The range is 0.0 to 1.0. */ - highlight_threshold?: number | null; + highlight_threshold?: (number) | null; /** * Set highlight_window to a number to control the amount of words that are returned around the matched phrases. If not specified, this defaults to 0. This is useful for when you want to show more context around the matched words. When specified, window/2 whitespace separated words are added before and after each highlight in the response's highlights array. If an extended highlight overlaps with another highlight, the overlapping words are only included once. This parameter can be overriden to respect the highlight_max_length param. */ - highlight_window?: number | null; + highlight_window?: (number) | null; }; export type HighlightStrategy = 'exactmatch' | 'v1'; @@ -1006,19 +1022,19 @@ export type LLMOptions = { /** * Completion first decides whether the stream should contain the stream of the completion response or the chunks first. Default is false. Keep in mind that || is used to separate the chunks from the completion response. If || is in the completion then you may want to split on ||{ instead. */ - completion_first?: boolean | null; + completion_first?: (boolean) | null; /** * Frequency penalty is a number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. Default is 0.7. */ - frequency_penalty?: number | null; + frequency_penalty?: (number) | null; /** * The maximum number of tokens to generate in the chat completion. Default is None. */ - max_tokens?: number | null; + max_tokens?: (number) | null; /** * Presence penalty is a number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. Default is 0.7. */ - presence_penalty?: number | null; + presence_penalty?: (number) | null; /** * Stop tokens are up to 4 sequences where the API will stop generating further tokens. Default is None. */ @@ -1026,15 +1042,15 @@ export type LLMOptions = { /** * Whether or not to stream the response. If this is set to true or not included, the response will be a stream. If this is set to false, the response will be a normal JSON response. Default is true. */ - stream_response?: boolean | null; + stream_response?: (boolean) | null; /** * Optionally, override the system prompt in dataset server settings. */ - system_prompt?: string | null; + system_prompt?: (string) | null; /** * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. Default is 0.5. */ - temperature?: number | null; + temperature?: (number) | null; }; export type LatencyGraphResponse = { @@ -1059,13 +1075,13 @@ export type LocationRadius = { export type MatchCondition = string | number; export type Message = { - completion_tokens?: number | null; + completion_tokens?: (number) | null; content: string; created_at: string; dataset_id: string; deleted: boolean; id: string; - prompt_tokens?: number | null; + prompt_tokens?: (number) | null; role: string; sort_order: number; topic_id: string; @@ -1093,7 +1109,7 @@ export type Organization = { deleted: number; id: string; name: string; - registerable?: boolean | null; + registerable?: (boolean) | null; updated_at: string; }; @@ -1107,6 +1123,20 @@ export type OrganizationUsageCount = { user_count: number; }; +export type PopularFilters = { + clause: string; + common_values: { + [key: string]: (number); + }; + count: number; + field: string; + filter_type: string; +}; + +export type PopularFiltersResponse = { + popular_filters: Array; +}; + /** * Sort by lets you specify a method to sort the results by. If not specified, this defaults to the score of the chunks. If specified, this can be any key in the chunk metadata. This key must be a numeric value within the payload. */ @@ -1122,25 +1152,25 @@ export type QueryCountResponse = { export type QueryTypes = string | Array; export type RAGAnalytics = { - filter?: (RAGAnalyticsFilter) | null; - page?: number | null; - sort_by?: (RAGSortBy) | null; - sort_order?: (SortOrder) | null; + filter?: ((RAGAnalyticsFilter) | null); + page?: (number) | null; + sort_by?: ((RAGSortBy) | null); + sort_order?: ((SortOrder) | null); type: 'rag_queries'; } | { - filter?: (RAGAnalyticsFilter) | null; + filter?: ((RAGAnalyticsFilter) | null); type: 'rag_usage'; } | { - filter?: (RAGAnalyticsFilter) | null; - granularity?: (Granularity) | null; + filter?: ((RAGAnalyticsFilter) | null); + granularity?: ((Granularity) | null); type: 'rag_usage_graph'; }; export type type3 = 'rag_queries'; export type RAGAnalyticsFilter = { - date_range?: (DateRange) | null; - rag_type?: (RagTypes) | null; + date_range?: ((DateRange) | null); + rag_type?: ((RagTypes) | null); }; export type RAGAnalyticsResponse = RagQueryResponse | RAGUsageResponse | RAGUsageGraphResponse; @@ -1162,6 +1192,7 @@ export type RagQueryEvent = { rag_type: string; results: Array; search_id: string; + user_id: string; user_message: string; }; @@ -1172,16 +1203,16 @@ export type RagQueryResponse = { export type RagTypes = 'chosen_chunks' | 'all_chunks'; export type Range = { - gt?: (RangeCondition) | null; - gte?: (RangeCondition) | null; - lt?: (RangeCondition) | null; - lte?: (RangeCondition) | null; + gt?: ((RangeCondition) | null); + gte?: ((RangeCondition) | null); + lt?: ((RangeCondition) | null); + lte?: ((RangeCondition) | null); }; export type RangeCondition = number; export type RateQueryRequest = { - note?: string | null; + note?: (string) | null; query_id: string; rating: number; }; @@ -1189,11 +1220,11 @@ export type RateQueryRequest = { export type ReRankOptions = 'semantic' | 'fulltext' | 'bm25' | 'cross_encoder'; export type RecommendChunksRequest = { - filters?: (ChunkFilter) | null; + filters?: ((ChunkFilter) | null); /** * The number of chunks to return. This is the number of chunks which will be returned in the response. The default is 10. */ - limit?: number | null; + limit?: (number) | null; /** * The ids of the chunks to be used as negative examples for the recommendation. The chunks in this array will be used to filter out similar chunks. */ @@ -1210,12 +1241,16 @@ export type RecommendChunksRequest = { * The tracking_ids of the chunks to be used as positive examples for the recommendation. The chunks in this array will be used to find similar chunks. */ positive_tracking_ids?: Array<(string)> | null; - recommend_type?: (RecommendType) | null; + recommend_type?: ((RecommendType) | null); /** * Set slim_chunks to true to avoid returning the content and chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typicall 10-50ms). Default is false. */ - slim_chunks?: boolean | null; - strategy?: (RecommendationStrategy) | null; + slim_chunks?: (boolean) | null; + strategy?: ((RecommendationStrategy) | null); + /** + * User ID is the id of the user who is making the request. This is used to track user interactions with the recommendation results. + */ + user_id?: (string) | null; }; export type RecommendChunksResponseBody = { @@ -1224,15 +1259,15 @@ export type RecommendChunksResponseBody = { }; export type RecommendGroupsReqPayload = { - filters?: (ChunkFilter) | null; + filters?: ((ChunkFilter) | null); /** * The number of chunks to fetch for each group. This is the number of chunks which will be returned in the response for each group. The default is 3. If this is set to a large number, we recommend setting slim_chunks to true to avoid returning the content and chunk_html of the chunks so as to reduce latency due to content download and serialization. */ - group_size?: number | null; + group_size?: (number) | null; /** * The number of groups to return. This is the number of groups which will be returned in the response. The default is 10. */ - limit?: number | null; + limit?: (number) | null; /** * The ids of the groups to be used as negative examples for the recommendation. The groups in this array will be used to filter out similar groups. */ @@ -1249,12 +1284,16 @@ export type RecommendGroupsReqPayload = { * The ids of the groups to be used as positive examples for the recommendation. The groups in this array will be used to find similar groups. */ positive_group_tracking_ids?: Array<(string)> | null; - recommend_type?: (RecommendType) | null; + recommend_type?: ((RecommendType) | null); /** * Set slim_chunks to true to avoid returning the content and chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typicall 10-50ms). Default is false. */ - slim_chunks?: boolean | null; - strategy?: (RecommendationStrategy) | null; + slim_chunks?: (boolean) | null; + strategy?: ((RecommendationStrategy) | null); + /** + * The user_id is the id of the user who is making the request. This is used to track user interactions with the rrecommendation results. + */ + user_id?: (string) | null; }; export type RecommendGroupsResponse = RecommendGroupsResponseBody | GroupScoreChunk; @@ -1272,23 +1311,23 @@ export type RecommendResponseTypes = RecommendChunksResponseBody | Array; top_score: number; + user_id: string; }; /** @@ -1346,27 +1386,31 @@ export type RegenerateMessageReqPayload = { /** * If concat user messages query is set to true, all of the user messages in the topic will be concatenated together and used as the search query. If not specified, this defaults to false. Default is false. */ - concat_user_messages_query?: boolean | null; - filters?: (ChunkFilter) | null; - highlight_options?: (HighlightOptions) | null; - llm_options?: (LLMOptions) | null; + concat_user_messages_query?: (boolean) | null; + filters?: ((ChunkFilter) | null); + highlight_options?: ((HighlightOptions) | null); + llm_options?: ((LLMOptions) | null); /** * Page size is the number of chunks to fetch during RAG. If 0, then no search will be performed. If specified, this will override the N retrievals to include in the dataset configuration. Default is None. */ - page_size?: number | null; + page_size?: (number) | null; /** * Set score_threshold to a float to filter out chunks with a score below the threshold. This threshold applies before weight and bias modifications. If not specified, this defaults to 0.0. */ - score_threshold?: number | null; + score_threshold?: (number) | null; /** * Query is the search query. This can be any string. The search_query will be used to create a dense embedding vector and/or sparse vector which will be used to find the result set. If not specified, will default to the last user message or HyDE if HyDE is enabled in the dataset configuration. Default is None. */ - search_query?: string | null; - search_type?: (SearchMethod) | null; + search_query?: (string) | null; + search_type?: ((SearchMethod) | null); /** * The id of the topic to regenerate the last message for. */ topic_id: string; + /** + * The user_id is the id of the user who is making the request. This is used to track user interactions with the RAG results. + */ + user_id?: (string) | null; }; export type RemoveChunkFromGroupReqPayload = { @@ -1393,16 +1437,16 @@ export type ScoreChunkDTO = { }; export type ScrollChunksReqPayload = { - filters?: (ChunkFilter) | null; + filters?: ((ChunkFilter) | null); /** * Offset chunk id is the id of the chunk to start the page from. If not specified, this defaults to the first chunk in the dataset sorted by id ascending. */ - offset_chunk_id?: string | null; + offset_chunk_id?: (string) | null; /** * Page size is the number of chunks to fetch. This can be used to fetch more than 10 chunks at a time. */ - page_size?: number | null; - sort_by?: (SortByField) | null; + page_size?: (number) | null; + sort_by?: ((SortByField) | null); }; export type ScrollChunksResponseBody = { @@ -1410,56 +1454,60 @@ export type ScrollChunksResponseBody = { }; export type SearchAnalytics = { - filter?: (SearchAnalyticsFilter) | null; - granularity?: (Granularity) | null; + filter?: ((SearchAnalyticsFilter) | null); + granularity?: ((Granularity) | null); type: 'latency_graph'; } | { - filter?: (SearchAnalyticsFilter) | null; - granularity?: (Granularity) | null; + filter?: ((SearchAnalyticsFilter) | null); + granularity?: ((Granularity) | null); type: 'search_usage_graph'; } | { - filter?: (SearchAnalyticsFilter) | null; + filter?: ((SearchAnalyticsFilter) | null); type: 'search_metrics'; } | { - filter?: (SearchAnalyticsFilter) | null; - page?: number | null; + filter?: ((SearchAnalyticsFilter) | null); + page?: (number) | null; type: 'head_queries'; } | { - filter?: (SearchAnalyticsFilter) | null; - page?: number | null; - threshold?: number | null; + filter?: ((SearchAnalyticsFilter) | null); + page?: (number) | null; + threshold?: (number) | null; type: 'low_confidence_queries'; } | { - filter?: (SearchAnalyticsFilter) | null; - page?: number | null; + filter?: ((SearchAnalyticsFilter) | null); + page?: (number) | null; type: 'no_result_queries'; } | { - filter?: (SearchAnalyticsFilter) | null; - page?: number | null; - sort_by?: (SearchSortBy) | null; - sort_order?: (SortOrder) | null; + filter?: ((SearchAnalyticsFilter) | null); + page?: (number) | null; + sort_by?: ((SearchSortBy) | null); + sort_order?: ((SortOrder) | null); type: 'search_queries'; } | { - filter?: (SearchAnalyticsFilter) | null; + filter?: ((SearchAnalyticsFilter) | null); type: 'count_queries'; } | { search_id: string; type: 'query_details'; +} | { + filter?: ((SearchAnalyticsFilter) | null); + type: 'popular_filters'; }; export type type5 = 'latency_graph'; export type SearchAnalyticsFilter = { - date_range?: (DateRange) | null; - search_method?: (SearchMethod) | null; - search_type?: (SearchType) | null; + date_range?: ((DateRange) | null); + search_method?: ((SearchMethod) | null); + search_type?: ((SearchType) | null); }; -export type SearchAnalyticsResponse = LatencyGraphResponse | SearchUsageGraphResponse | DatasetAnalytics | HeadQueryResponse | SearchQueryResponse | QueryCountResponse | SearchQueryEvent; +export type SearchAnalyticsResponse = LatencyGraphResponse | SearchUsageGraphResponse | DatasetAnalytics | HeadQueryResponse | SearchQueryResponse | QueryCountResponse | SearchQueryEvent | PopularFiltersResponse; export type SearchCTRMetrics = { avg_position_of_click: number; percent_searches_with_clicks: number; + percent_searches_without_clicks: number; searches_with_clicks: number; }; @@ -1472,43 +1520,47 @@ export type SearchChunksReqPayload = { /** * Set content_only to true to only returning the chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typically 10-50ms). Default is false. */ - content_only?: boolean | null; - filters?: (ChunkFilter) | null; + content_only?: (boolean) | null; + filters?: ((ChunkFilter) | null); /** * Get total page count for the query accounting for the applied filters. Defaults to false, but can be set to true when the latency penalty is acceptable (typically 50-200ms). */ - get_total_pages?: boolean | null; - highlight_options?: (HighlightOptions) | null; + get_total_pages?: (boolean) | null; + highlight_options?: ((HighlightOptions) | null); /** * Page of chunks to fetch. Page is 1-indexed. */ - page?: number | null; + page?: (number) | null; /** * Page size is the number of chunks to fetch. This can be used to fetch more than 10 chunks at a time. */ - page_size?: number | null; + page_size?: (number) | null; query: QueryTypes; /** * If true, stop words (specified in server/src/stop-words.txt in the git repo) will be removed. Queries that are entirely stop words will be preserved. */ - remove_stop_words?: boolean | null; + remove_stop_words?: (boolean) | null; /** * Set score_threshold to a float to filter out chunks with a score below the threshold for cosine distance metric * For Manhattan Distance, Euclidean Distance, and Dot Product, it will filter out scores above the threshold distance * This threshold applies before weight and bias modifications. If not specified, this defaults to no threshold * A threshold of 0 will default to no threashold */ - score_threshold?: number | null; + score_threshold?: (number) | null; search_type: SearchMethod; /** * Set slim_chunks to true to avoid returning the content and chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typically 10-50ms). Default is false. */ - slim_chunks?: boolean | null; - sort_options?: (SortOptions) | null; + slim_chunks?: (boolean) | null; + sort_options?: ((SortOptions) | null); /** * If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false. */ - use_quote_negated_terms?: boolean | null; + use_quote_negated_terms?: (boolean) | null; + /** + * User ID is the id of the user who is making the request. This is used to track user interactions with the search results. + */ + user_id?: (string) | null; }; export type SearchClusterResponse = { @@ -1534,43 +1586,47 @@ export type SearchLatencyGraph = { export type SearchMethod = 'fulltext' | 'semantic' | 'hybrid' | 'bm25'; export type SearchOverGroupsReqPayload = { - filters?: (ChunkFilter) | null; + filters?: ((ChunkFilter) | null); /** * Get total page count for the query accounting for the applied filters. Defaults to false, but can be set to true when the latency penalty is acceptable (typically 50-200ms). */ - get_total_pages?: boolean | null; + get_total_pages?: (boolean) | null; /** * Group_size is the number of chunks to fetch for each group. The default is 3. If a group has less than group_size chunks, all chunks will be returned. If this is set to a large number, we recommend setting slim_chunks to true to avoid returning the content and chunk_html of the chunks so as to lower the amount of time required for content download and serialization. */ - group_size?: number | null; - highlight_options?: (HighlightOptions) | null; + group_size?: (number) | null; + highlight_options?: ((HighlightOptions) | null); /** * Page of group results to fetch. Page is 1-indexed. */ - page?: number | null; + page?: (number) | null; /** * Page size is the number of group results to fetch. The default is 10. */ - page_size?: number | null; + page_size?: (number) | null; query: QueryTypes; /** * If true, stop words (specified in server/src/stop-words.txt in the git repo) will be removed. Queries that are entirely stop words will be * preserved. */ - remove_stop_words?: boolean | null; + remove_stop_words?: (boolean) | null; /** * Set score_threshold to a float to filter out chunks with a score below the threshold. This threshold applies before weight and bias modifications. If not specified, this defaults to 0.0. */ - score_threshold?: number | null; + score_threshold?: (number) | null; search_type: SearchMethod; /** * Set slim_chunks to true to avoid returning the content and chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typicall 10-50ms). Default is false. */ - slim_chunks?: boolean | null; + slim_chunks?: (boolean) | null; /** * If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false. */ - use_quote_negated_terms?: boolean | null; + use_quote_negated_terms?: (boolean) | null; + /** + * The user_id is the id of the user who is making the request. This is used to track user interactions with the search results. + */ + user_id?: (string) | null; }; export type SearchOverGroupsResponseBody = { @@ -1583,7 +1639,7 @@ export type SearchOverGroupsResponseTypes = SearchOverGroupsResponseBody | Depre export type SearchOverGroupsResults = { chunks: Array; - file_id?: string | null; + file_id?: (string) | null; group: ChunkGroup; }; @@ -1610,6 +1666,7 @@ export type SearchQueryEvent = { results: Array; search_type: string; top_score: number; + user_id: string; }; export type SearchQueryResponse = { @@ -1644,48 +1701,52 @@ export type SearchWithinGroupReqPayload = { /** * Set content_only to true to only returning the chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typically 10-50ms). Default is false. */ - content_only?: boolean | null; - filters?: (ChunkFilter) | null; + content_only?: (boolean) | null; + filters?: ((ChunkFilter) | null); /** * Get total page count for the query accounting for the applied filters. Defaults to false, but can be set to true when the latency penalty is acceptable (typically 50-200ms). */ - get_total_pages?: boolean | null; + get_total_pages?: (boolean) | null; /** * Group specifies the group to search within. Results will only consist of chunks which are bookmarks within the specified group. */ - group_id?: string | null; + group_id?: (string) | null; /** * Group_tracking_id specifies the group to search within by tracking id. Results will only consist of chunks which are bookmarks within the specified group. If both group_id and group_tracking_id are provided, group_id will be used. */ - group_tracking_id?: string | null; - highlight_options?: (HighlightOptions) | null; + group_tracking_id?: (string) | null; + highlight_options?: ((HighlightOptions) | null); /** * The page of chunks to fetch. Page is 1-indexed. */ - page?: number | null; + page?: (number) | null; /** * The page size is the number of chunks to fetch. This can be used to fetch more than 10 chunks at a time. */ - page_size?: number | null; + page_size?: (number) | null; query: QueryTypes; /** * If true, stop words (specified in server/src/stop-words.txt in the git repo) will be removed. Queries that are entirely stop words will be preserved. */ - remove_stop_words?: boolean | null; + remove_stop_words?: (boolean) | null; /** * Set score_threshold to a float to filter out chunks with a score below the threshold. This threshold applies before weight and bias modifications. If not specified, this defaults to 0.0. */ - score_threshold?: number | null; + score_threshold?: (number) | null; search_type: SearchMethod; /** * Set slim_chunks to true to avoid returning the content and chunk_html of the chunks. This is useful for when you want to reduce amount of data over the wire for latency improvement (typicall 10-50ms). Default is false. */ - slim_chunks?: boolean | null; - sort_options?: (SortOptions) | null; + slim_chunks?: (boolean) | null; + sort_options?: ((SortOptions) | null); /** * If true, quoted and - prefixed words will be parsed from the queries and used as required and negated words respectively. Default is false. */ - use_quote_negated_terms?: boolean | null; + use_quote_negated_terms?: (boolean) | null; + /** + * The user_id is the id of the user who is making the request. This is used to track user interactions with the search results. + */ + user_id?: (string) | null; }; export type SearchWithinGroupResponseBody = { @@ -1756,14 +1817,14 @@ export type SlimChunkMetadata = { created_at: string; dataset_id: string; id: string; - image_urls?: Array<(string | null)> | null; - link?: string | null; - location?: (GeoInfo) | null; + image_urls?: Array<((string) | null)> | null; + link?: (string) | null; + location?: ((GeoInfo) | null); metadata?: unknown; - num_value?: number | null; - tag_set?: string | null; - time_stamp?: string | null; - tracking_id?: string | null; + num_value?: (number) | null; + tag_set?: (string) | null; + time_stamp?: (string) | null; + tracking_id?: (string) | null; updated_at: string; weight: number; }; @@ -1772,14 +1833,14 @@ export type SlimChunkMetadataWithArrayTagSet = { created_at: string; dataset_id: string; id: string; - image_urls?: Array<(string | null)> | null; - link?: string | null; - location?: (GeoInfo) | null; + image_urls?: Array<((string) | null)> | null; + link?: (string) | null; + location?: ((GeoInfo) | null); metadata?: unknown; - num_value?: number | null; + num_value?: (number) | null; tag_set?: Array<(string)> | null; - time_stamp?: string | null; - tracking_id?: string | null; + time_stamp?: (string) | null; + tracking_id?: (string) | null; updated_at: string; weight: number; }; @@ -1787,12 +1848,12 @@ export type SlimChunkMetadataWithArrayTagSet = { export type SlimChunkMetadataWithScore = { created_at: string; id: string; - link?: string | null; + link?: (string) | null; metadata?: unknown; score: number; - tag_set?: string | null; - time_stamp?: string | null; - tracking_id?: string | null; + tag_set?: (string) | null; + time_stamp?: (string) | null; + tracking_id?: (string) | null; updated_at: string; weight: number; }; @@ -1800,13 +1861,13 @@ export type SlimChunkMetadataWithScore = { export type SlimUser = { email: string; id: string; - name?: string | null; + name?: (string) | null; orgs: Array; user_orgs: Array; }; export type SortByField = { - direction?: (SortOrder) | null; + direction?: ((SortOrder) | null); /** * Field to sort by. This has to be a numeric field with a Qdrant `Range` index on it. i.e. num_value and timestamp */ @@ -1814,18 +1875,18 @@ export type SortByField = { /** * How many results to pull in before the sort */ - prefetch_amount?: number | null; + prefetch_amount?: (number) | null; }; export type SortBySearchType = { /** * How many results to pull in before the rerabj */ - prefetch_amount?: number | null; + prefetch_amount?: (number) | null; /** * Query to use for prefetching defaults to the search query */ - rerank_query?: string | null; + rerank_query?: (string) | null; rerank_type: ReRankOptions; }; @@ -1833,8 +1894,8 @@ export type SortBySearchType = { * Sort Options lets you specify different methods to rerank the chunks in the result set. If not specified, this defaults to the score of the chunks. */ export type SortOptions = { - location_bias?: (GeoInfoWithBias) | null; - sort_by?: (QdrantSortBy) | null; + location_bias?: ((GeoInfoWithBias) | null); + sort_by?: ((QdrantSortBy) | null); /** * Tag weights is a JSON object which can be used to boost the ranking of chunks with certain tags. This is useful for when you want to be able to bias towards chunks with a certain tag on the fly. The keys are the tag names and the values are the weights. */ @@ -1844,7 +1905,7 @@ export type SortOptions = { /** * Set use_weights to true to use the weights of the chunks in the result set in order to sort them. If not specified, this defaults to true. */ - use_weights?: boolean | null; + use_weights?: (boolean) | null; }; export type SortOrder = 'desc' | 'asc'; @@ -1855,7 +1916,7 @@ export type StripeInvoice = { id: string; org_id: string; status: string; - stripe_id?: string | null; + stripe_id?: (string) | null; total: number; }; @@ -1914,11 +1975,11 @@ export type UpdateChunkByTrackingIdData = { /** * HTML content of the chunk you want to update. This can also be plaintext. The innerText of the HTML will be used to create the embedding vector. The point of using HTML is for convienience, as some users have applications where users submit HTML content. If no chunk_html is provided, the existing chunk_html will be used. */ - chunk_html?: string | null; + chunk_html?: (string) | null; /** * Convert HTML to raw text before processing to avoid adding noise to the vector embeddings. By default this is true. If you are using HTML content that you want to be included in the vector embeddings, set this to false. */ - convert_html_to_text?: boolean | null; + convert_html_to_text?: (boolean) | null; /** * Group ids are the ids of the groups that the chunk should be placed into. This is useful for when you want to update a chunk and add it to a group or multiple groups in one request. */ @@ -1930,7 +1991,7 @@ export type UpdateChunkByTrackingIdData = { /** * Link of the chunk you want to update. This can also be any string. Frequently, this is a link to the source of the chunk. The link value will not affect the embedding creation. If no link is provided, the existing link will be used. */ - link?: string | null; + link?: (string) | null; /** * The metadata is a JSON object which can be used to filter chunks. This is useful for when you want to filter chunks by arbitrary metadata. Unlike with tag filtering, there is a performance hit for filtering on metadata. If no metadata is provided, the existing metadata will be used. */ @@ -1938,7 +1999,7 @@ export type UpdateChunkByTrackingIdData = { /** * Time_stamp should be an ISO 8601 combined date and time without timezone. It is used for time window filtering and recency-biasing search results. If no time_stamp is provided, the existing time_stamp will be used. */ - time_stamp?: string | null; + time_stamp?: (string) | null; /** * Tracking_id of the chunk you want to update. This is required to match an existing chunk. */ @@ -1946,18 +2007,18 @@ export type UpdateChunkByTrackingIdData = { /** * Weight is a float which can be used to bias search results. This is useful for when you want to bias search results for a chunk. The magnitude only matters relative to other chunks in the chunk's dataset dataset. If no weight is provided, the existing weight will be used. */ - weight?: number | null; + weight?: (number) | null; }; export type UpdateChunkGroupReqPayload = { /** * Description to assign to the chunk_group. Convenience field for you to avoid having to remember what the group is for. If not provided, the description will not be updated. */ - description?: string | null; + description?: (string) | null; /** * Id of the chunk_group to update. */ - group_id?: string | null; + group_id?: (string) | null; /** * Optional metadata to assign to the chunk_group. This is a JSON object that can store any additional information you want to associate with the chunks inside of the chunk_group. */ @@ -1965,7 +2026,7 @@ export type UpdateChunkGroupReqPayload = { /** * Name to assign to the chunk_group. Does not need to be unique. If not provided, the name will not be updated. */ - name?: string | null; + name?: (string) | null; /** * Optional tags to assign to the chunk_group. This is a list of strings that can be used to categorize the chunks inside the chunk_group. */ @@ -1973,28 +2034,28 @@ export type UpdateChunkGroupReqPayload = { /** * Tracking Id of the chunk_group to update. */ - tracking_id?: string | null; + tracking_id?: (string) | null; /** * Flag to update the chunks in the group. If true, each chunk in the group will be updated * by appending the group's tags to the chunk's tags. Default is false. */ - update_chunks?: boolean | null; + update_chunks?: (boolean) | null; }; export type UpdateChunkReqPayload = { /** * HTML content of the chunk you want to update. This can also be plaintext. The innerText of the HTML will be used to create the embedding vector. The point of using HTML is for convienience, as some users have applications where users submit HTML content. If no chunk_html is provided, the existing chunk_html will be used. */ - chunk_html?: string | null; + chunk_html?: (string) | null; /** * Id of the chunk you want to update. You can provide either the chunk_id or the tracking_id. If both are provided, the chunk_id will be used. */ - chunk_id?: string | null; + chunk_id?: (string) | null; /** * Convert HTML to raw text before processing to avoid adding noise to the vector embeddings. By default this is true. If you are using HTML content that you want to be included in the vector embeddings, set this to false. */ - convert_html_to_text?: boolean | null; - fulltext_boost?: (FullTextBoost) | null; + convert_html_to_text?: (boolean) | null; + fulltext_boost?: ((FullTextBoost) | null); /** * Group ids are the ids of the groups that the chunk should be placed into. This is useful for when you want to update a chunk and add it to a group or multiple groups in one request. */ @@ -2010,8 +2071,8 @@ export type UpdateChunkReqPayload = { /** * Link of the chunk you want to update. This can also be any string. Frequently, this is a link to the source of the chunk. The link value will not affect the embedding creation. If no link is provided, the existing link will be used. */ - link?: string | null; - location?: (GeoInfo) | null; + link?: (string) | null; + location?: ((GeoInfo) | null); /** * The metadata is a JSON object which can be used to filter chunks. This is useful for when you want to filter chunks by arbitrary metadata. Unlike with tag filtering, there is a performance hit for filtering on metadata. If no metadata is provided, the existing metadata will be used. */ @@ -2019,8 +2080,8 @@ export type UpdateChunkReqPayload = { /** * Num value is an arbitrary numerical value that can be used to filter chunks. This is useful for when you want to filter chunks by numerical value. If no num_value is provided, the existing num_value will be used. */ - num_value?: number | null; - semantic_boost?: (SemanticBoost) | null; + num_value?: (number) | null; + semantic_boost?: ((SemanticBoost) | null); /** * Tag set is a list of tags. This can be used to filter chunks by tag. Unlike with metadata filtering, HNSW indices will exist for each tag such that there is not a performance hit for filtering on them. If no tag_set is provided, the existing tag_set will be used. */ @@ -2028,42 +2089,42 @@ export type UpdateChunkReqPayload = { /** * Time_stamp should be an ISO 8601 combined date and time without timezone. It is used for time window filtering and recency-biasing search results. If no time_stamp is provided, the existing time_stamp will be used. */ - time_stamp?: string | null; + time_stamp?: (string) | null; /** * Tracking_id of the chunk you want to update. This is required to match an existing chunk. */ - tracking_id?: string | null; + tracking_id?: (string) | null; /** * Weight is a float which can be used to bias search results. This is useful for when you want to bias search results for a chunk. The magnitude only matters relative to other chunks in the chunk's dataset dataset. If no weight is provided, the existing weight will be used. */ - weight?: number | null; + weight?: (number) | null; }; export type UpdateDatasetRequest = { /** * The id of the dataset you want to update. */ - dataset_id?: string | null; + dataset_id?: (string) | null; /** * The new name of the dataset. Must be unique within the organization. If not provided, the name will not be updated. */ - dataset_name?: string | null; + dataset_name?: (string) | null; /** * Optional new tracking ID for the dataset. Can be used to track the dataset in external systems. Must be unique within the organization. If not provided, the tracking ID will not be updated. Strongly recommended to not use a valid uuid value as that will not work with the TR-Dataset header. */ - new_tracking_id?: string | null; - server_configuration?: (DatasetConfigurationDTO) | null; + new_tracking_id?: (string) | null; + server_configuration?: ((DatasetConfigurationDTO) | null); /** * The tracking ID of the dataset you want to update. */ - tracking_id?: string | null; + tracking_id?: (string) | null; }; export type UpdateGroupByTrackingIDReqPayload = { /** * Description to assign to the chunk_group. Convenience field for you to avoid having to remember what the group is for. If not provided, the description will not be updated. */ - description?: string | null; + description?: (string) | null; /** * Optional metadata to assign to the chunk_group. This is a JSON object that can store any additional information you want to associate with the chunks inside of the chunk_group. */ @@ -2071,7 +2132,7 @@ export type UpdateGroupByTrackingIDReqPayload = { /** * Name to assign to the chunk_group. Does not need to be unique. If not provided, the name will not be updated. */ - name?: string | null; + name?: (string) | null; /** * Optional tags to assign to the chunk_group. This is a list of strings that can be used to categorize the chunks inside the chunk_group. */ @@ -2086,7 +2147,7 @@ export type UpdateOrganizationReqPayload = { /** * The new name of the organization. If not provided, the name will not be updated. */ - name?: string | null; + name?: (string) | null; /** * The id of the organization to update. */ @@ -2116,7 +2177,7 @@ export type UpdateUserOrgRoleData = { /** * The id of the user to update, if not provided, the auth'ed user will be updated. If provided, the role of the auth'ed user or api key must be an admin (1) or owner (2) of the organization. */ - user_id?: string | null; + user_id?: (string) | null; }; export type UploadFileReqPayload = { @@ -2127,11 +2188,11 @@ export type UploadFileReqPayload = { /** * Create chunks is a boolean which determines whether or not to create chunks from the file. If false, you can manually chunk the file and send the chunks to the create_chunk endpoint with the file_id to associate chunks with the file. Meant mostly for advanced users. */ - create_chunks?: boolean | null; + create_chunks?: (boolean) | null; /** * Description is an optional convience field so you do not have to remember what the file contains or is about. It will be included on the group resulting from the file which will hold its chunk. */ - description?: string | null; + description?: (string) | null; /** * Name of the file being uploaded, including the extension. */ @@ -2139,11 +2200,11 @@ export type UploadFileReqPayload = { /** * Group tracking id is an optional field which allows you to specify the tracking id of the group that is created from the file. Chunks created will be created with the tracking id of `group_tracking_id|` */ - group_tracking_id?: string | null; + group_tracking_id?: (string) | null; /** * Link to the file. This can also be any string. This can be used to filter when searching for the file's resulting chunks. The link value will not affect embedding creation. */ - link?: string | null; + link?: (string) | null; /** * Metadata is a JSON object which can be used to filter chunks. This is useful for when you want to filter chunks by arbitrary metadata. Unlike with tag filtering, there is a performance hit for filtering on metadata. Will be passed down to the file's chunks. */ @@ -2151,7 +2212,7 @@ export type UploadFileReqPayload = { /** * Rebalance chunks is an optional field which allows you to specify whether or not to rebalance the chunks created from the file. If not specified, the default true is used. If true, Trieve will evenly distribute remainder splits across chunks such that 66 splits with a `target_splits_per_chunk` of 20 will result in 3 chunks with 22 splits each. */ - rebalance_chunks?: boolean | null; + rebalance_chunks?: (boolean) | null; /** * Split delimiters is an optional field which allows you to specify the delimiters to use when splitting the file before chunking the text. If not specified, the default [.!?\n] are used to split into sentences. However, you may want to use spaces or other delimiters. */ @@ -2163,11 +2224,11 @@ export type UploadFileReqPayload = { /** * Target splits per chunk. This is an optional field which allows you to specify the number of splits you want per chunk. If not specified, the default 20 is used. However, you may want to use a different number. */ - target_splits_per_chunk?: number | null; + target_splits_per_chunk?: (number) | null; /** * Time stamp should be an ISO 8601 combined date and time without timezone. Time_stamp is used for time window filtering and recency-biasing search results. Will be passed down to the file's chunks. */ - time_stamp?: string | null; + time_stamp?: (string) | null; }; export type UploadFileResult = { @@ -2207,7 +2268,7 @@ export type GetCtrAnalyticsData = { trDataset: string; }; -export type GetCtrAnalyticsResponse = CTRAnalyticsResponse; +export type GetCtrAnalyticsResponse = (CTRAnalyticsResponse); export type SendCtrDataData = { /** @@ -2220,7 +2281,7 @@ export type SendCtrDataData = { trDataset: string; }; -export type SendCtrDataResponse = void; +export type SendCtrDataResponse = (void); export type GetRagAnalyticsData = { /** @@ -2233,7 +2294,7 @@ export type GetRagAnalyticsData = { trDataset: string; }; -export type GetRagAnalyticsResponse = RAGAnalyticsResponse; +export type GetRagAnalyticsResponse = (RAGAnalyticsResponse); export type GetRecommendationAnalyticsData = { /** @@ -2246,7 +2307,7 @@ export type GetRecommendationAnalyticsData = { trDataset: string; }; -export type GetRecommendationAnalyticsResponse = RecommendationAnalyticsResponse; +export type GetRecommendationAnalyticsResponse = (RecommendationAnalyticsResponse); export type GetSearchAnalyticsData = { /** @@ -2259,7 +2320,7 @@ export type GetSearchAnalyticsData = { trDataset: string; }; -export type GetSearchAnalyticsResponse = SearchAnalyticsResponse; +export type GetSearchAnalyticsResponse = (SearchAnalyticsResponse); export type SetQueryRatingData = { /** @@ -2272,7 +2333,7 @@ export type SetQueryRatingData = { trDataset: string; }; -export type SetQueryRatingResponse = void; +export type SetQueryRatingResponse = (void); export type GetClusterAnalyticsData = { /** @@ -2285,28 +2346,28 @@ export type GetClusterAnalyticsData = { trDataset: string; }; -export type GetClusterAnalyticsResponse = ClusterAnalyticsResponse; +export type GetClusterAnalyticsResponse = (ClusterAnalyticsResponse); export type LoginData = { /** * Code sent via email as a result of successful call to send_invitation */ - invCode?: string | null; + invCode?: (string) | null; /** * ID of organization to authenticate into */ - organizationId?: string | null; + organizationId?: (string) | null; /** * URL to redirect to after successful login */ - redirectUri?: string | null; + redirectUri?: (string) | null; }; -export type LogoutResponse = void; +export type LogoutResponse = (void); -export type CallbackResponse = SlimUser; +export type CallbackResponse = (SlimUser); -export type GetMeResponse = SlimUser; +export type GetMeResponse = (SlimUser); export type CreateChunkData = { /** @@ -2319,7 +2380,7 @@ export type CreateChunkData = { trDataset: string; }; -export type CreateChunkResponse = ReturnQueuedChunk; +export type CreateChunkResponse = (ReturnQueuedChunk); export type UpdateChunkData = { /** @@ -2332,7 +2393,7 @@ export type UpdateChunkData = { trDataset: string; }; -export type UpdateChunkResponse = void; +export type UpdateChunkResponse = (void); export type AutocompleteData = { /** @@ -2346,10 +2407,10 @@ export type AutocompleteData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type AutocompleteResponse = SearchResponseTypes; +export type AutocompleteResponse = (SearchResponseTypes); export type CountChunksData = { /** @@ -2362,7 +2423,7 @@ export type CountChunksData = { trDataset: string; }; -export type CountChunksResponse = CountChunkQueryResponseBody; +export type CountChunksResponse = (CountChunkQueryResponseBody); export type GenerateOffChunksData = { /** @@ -2375,7 +2436,7 @@ export type GenerateOffChunksData = { trDataset: string; }; -export type GenerateOffChunksResponse = string; +export type GenerateOffChunksResponse = (string); export type GetRecommendedChunksData = { /** @@ -2389,10 +2450,10 @@ export type GetRecommendedChunksData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type GetRecommendedChunksResponse = RecommendResponseTypes; +export type GetRecommendedChunksResponse = (RecommendResponseTypes); export type SearchChunksData = { /** @@ -2406,10 +2467,10 @@ export type SearchChunksData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type SearchChunksResponse = SearchResponseTypes; +export type SearchChunksResponse = (SearchResponseTypes); export type GetSuggestedQueriesData = { /** @@ -2422,7 +2483,7 @@ export type GetSuggestedQueriesData = { trDataset: string; }; -export type GetSuggestedQueriesResponse = SuggestedQueriesResponse; +export type GetSuggestedQueriesResponse = (SuggestedQueriesResponse); export type UpdateChunkByTrackingIdData2 = { /** @@ -2435,7 +2496,7 @@ export type UpdateChunkByTrackingIdData2 = { trDataset: string; }; -export type UpdateChunkByTrackingIdResponse = void; +export type UpdateChunkByTrackingIdResponse = (void); export type GetChunkByTrackingIdData = { /** @@ -2449,10 +2510,10 @@ export type GetChunkByTrackingIdData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type GetChunkByTrackingIdResponse = ChunkReturnTypes; +export type GetChunkByTrackingIdResponse = (ChunkReturnTypes); export type DeleteChunkByTrackingIdData = { /** @@ -2465,7 +2526,7 @@ export type DeleteChunkByTrackingIdData = { trDataset: string; }; -export type DeleteChunkByTrackingIdResponse = void; +export type DeleteChunkByTrackingIdResponse = (void); export type GetChunkByIdData = { /** @@ -2479,10 +2540,10 @@ export type GetChunkByIdData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type GetChunkByIdResponse = ChunkReturnTypes; +export type GetChunkByIdResponse = (ChunkReturnTypes); export type DeleteChunkData = { /** @@ -2495,7 +2556,7 @@ export type DeleteChunkData = { trDataset: string; }; -export type DeleteChunkResponse = void; +export type DeleteChunkResponse = (void); export type CreateChunkGroupData = { /** @@ -2508,7 +2569,7 @@ export type CreateChunkGroupData = { trDataset: string; }; -export type CreateChunkGroupResponse = CreateChunkGroupResponseEnum; +export type CreateChunkGroupResponse = (CreateChunkGroupResponseEnum); export type UpdateChunkGroupData = { /** @@ -2521,7 +2582,7 @@ export type UpdateChunkGroupData = { trDataset: string; }; -export type UpdateChunkGroupResponse = void; +export type UpdateChunkGroupResponse = (void); export type AddChunkToGroupData = { /** @@ -2538,13 +2599,13 @@ export type AddChunkToGroupData = { trDataset: string; }; -export type AddChunkToGroupResponse = void; +export type AddChunkToGroupResponse = (void); export type RemoveChunkFromGroupData = { /** * Id of the chunk you want to remove from the group */ - chunkId?: string | null; + chunkId?: (string) | null; /** * Id of the group you want to remove the chunk from. */ @@ -2552,14 +2613,14 @@ export type RemoveChunkFromGroupData = { /** * JSON request payload to remove a chunk from a group */ - requestBody?: (RemoveChunkFromGroupReqPayload) | null; + requestBody?: ((RemoveChunkFromGroupReqPayload) | null); /** * The dataset id or tracking_id to use for the request. We assume you intend to use an id if the value is a valid uuid. */ trDataset: string; }; -export type RemoveChunkFromGroupResponse = void; +export type RemoveChunkFromGroupResponse = (void); export type GetGroupsForChunksData = { /** @@ -2572,7 +2633,7 @@ export type GetGroupsForChunksData = { trDataset: string; }; -export type GetGroupsForChunksResponse = Array; +export type GetGroupsForChunksResponse = (Array); export type SearchOverGroupsData = { /** @@ -2586,10 +2647,10 @@ export type SearchOverGroupsData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type SearchOverGroupsResponse = SearchOverGroupsResponseTypes; +export type SearchOverGroupsResponse = (SearchOverGroupsResponseTypes); export type GetRecommendedGroupsData = { /** @@ -2603,10 +2664,10 @@ export type GetRecommendedGroupsData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type GetRecommendedGroupsResponse = RecommendGroupsResponse; +export type GetRecommendedGroupsResponse = (RecommendGroupsResponse); export type SearchWithinGroupData = { /** @@ -2620,10 +2681,10 @@ export type SearchWithinGroupData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type SearchWithinGroupResponse = SearchGroupResponseTypes; +export type SearchWithinGroupResponse = (SearchGroupResponseTypes); export type GetChunksInGroupByTrackingIdData = { /** @@ -2641,10 +2702,10 @@ export type GetChunksInGroupByTrackingIdData = { /** * The version of the API to use for the request */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type GetChunksInGroupByTrackingIdResponse = GetChunksInGroupResponse; +export type GetChunksInGroupByTrackingIdResponse = (GetChunksInGroupResponse); export type GetGroupByTrackingIdData = { /** @@ -2657,7 +2718,7 @@ export type GetGroupByTrackingIdData = { trDataset: string; }; -export type GetGroupByTrackingIdResponse = ChunkGroupAndFileId; +export type GetGroupByTrackingIdResponse = (ChunkGroupAndFileId); export type AddChunkToGroupByTrackingIdData = { /** @@ -2674,7 +2735,7 @@ export type AddChunkToGroupByTrackingIdData = { trDataset: string; }; -export type AddChunkToGroupByTrackingIdResponse = void; +export type AddChunkToGroupByTrackingIdResponse = (void); export type UpdateGroupByTrackingIdData = { /** @@ -2691,7 +2752,7 @@ export type UpdateGroupByTrackingIdData = { trDataset: string; }; -export type UpdateGroupByTrackingIdResponse = void; +export type UpdateGroupByTrackingIdResponse = (void); export type DeleteGroupByTrackingIdData = { /** @@ -2708,7 +2769,7 @@ export type DeleteGroupByTrackingIdData = { trDataset: string; }; -export type DeleteGroupByTrackingIdResponse = void; +export type DeleteGroupByTrackingIdResponse = (void); export type GetChunkGroupData = { /** @@ -2721,7 +2782,7 @@ export type GetChunkGroupData = { trDataset: string; }; -export type GetChunkGroupResponse = ChunkGroupAndFileId; +export type GetChunkGroupResponse = (ChunkGroupAndFileId); export type DeleteChunkGroupData = { /** @@ -2738,7 +2799,7 @@ export type DeleteChunkGroupData = { trDataset: string; }; -export type DeleteChunkGroupResponse = void; +export type DeleteChunkGroupResponse = (void); export type GetChunksInGroupData = { /** @@ -2748,7 +2809,7 @@ export type GetChunksInGroupData = { /** * The page of chunks to get from the group */ - page: number | null; + page: (number) | null; /** * The dataset id or tracking_id to use for the request. We assume you intend to use an id if the value is a valid uuid. */ @@ -2756,10 +2817,10 @@ export type GetChunksInGroupData = { /** * The version of the API to use for the request */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type GetChunksInGroupResponse2 = GetChunksInGroupResponse; +export type GetChunksInGroupResponse2 = (GetChunksInGroupResponse); export type GetChunksByIdsData = { /** @@ -2773,10 +2834,10 @@ export type GetChunksByIdsData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type GetChunksByIdsResponse = Array; +export type GetChunksByIdsResponse = (Array); export type ScrollDatasetChunksData = { /** @@ -2789,7 +2850,7 @@ export type ScrollDatasetChunksData = { trDataset: string; }; -export type ScrollDatasetChunksResponse = ScrollChunksResponseBody; +export type ScrollDatasetChunksResponse = (ScrollChunksResponseBody); export type GetChunksByTrackingIdsData = { /** @@ -2803,10 +2864,10 @@ export type GetChunksByTrackingIdsData = { /** * The API version to use for this request. Defaults to V2 for orgs created after July 12, 2024 and V1 otherwise. */ - xApiVersion?: (APIVersion) | null; + xApiVersion?: ((APIVersion) | null); }; -export type GetChunksByTrackingIdsResponse = Array; +export type GetChunksByTrackingIdsResponse = (Array); export type CreateDatasetData = { /** @@ -2819,7 +2880,7 @@ export type CreateDatasetData = { trOrganization: string; }; -export type CreateDatasetResponse = Dataset; +export type CreateDatasetResponse = (Dataset); export type UpdateDatasetData = { /** @@ -2832,7 +2893,7 @@ export type UpdateDatasetData = { trOrganization: string; }; -export type UpdateDatasetResponse = Dataset; +export type UpdateDatasetResponse = (Dataset); export type ClearDatasetData = { /** @@ -2845,7 +2906,7 @@ export type ClearDatasetData = { trDataset: string; }; -export type ClearDatasetResponse = void; +export type ClearDatasetResponse = (void); export type GetDatasetFilesHandlerData = { /** @@ -2862,7 +2923,7 @@ export type GetDatasetFilesHandlerData = { trDataset: string; }; -export type GetDatasetFilesHandlerResponse = Array; +export type GetDatasetFilesHandlerResponse = (Array); export type GetAllTagsData = { /** @@ -2875,7 +2936,7 @@ export type GetAllTagsData = { trDataset: string; }; -export type GetAllTagsResponse2 = GetAllTagsResponse; +export type GetAllTagsResponse2 = (GetAllTagsResponse); export type GetGroupsForDatasetData = { /** @@ -2892,17 +2953,17 @@ export type GetGroupsForDatasetData = { trDataset: string; }; -export type GetGroupsForDatasetResponse = GroupData; +export type GetGroupsForDatasetResponse = (GroupData); export type GetDatasetsFromOrganizationData = { /** * The number of records to return */ - limit?: number | null; + limit?: (number) | null; /** * The number of records to skip */ - offset?: number | null; + offset?: (number) | null; /** * id of the organization you want to retrieve datasets for */ @@ -2913,7 +2974,7 @@ export type GetDatasetsFromOrganizationData = { trOrganization: string; }; -export type GetDatasetsFromOrganizationResponse = Array; +export type GetDatasetsFromOrganizationResponse = (Array); export type DeleteDatasetByTrackingIdData = { /** @@ -2926,7 +2987,7 @@ export type DeleteDatasetByTrackingIdData = { trDataset: string; }; -export type DeleteDatasetByTrackingIdResponse = void; +export type DeleteDatasetByTrackingIdResponse = (void); export type GetUsageByDatasetIdData = { /** @@ -2939,7 +3000,7 @@ export type GetUsageByDatasetIdData = { trDataset: string; }; -export type GetUsageByDatasetIdResponse = DatasetUsageCount; +export type GetUsageByDatasetIdResponse = (DatasetUsageCount); export type GetDatasetData = { /** @@ -2952,7 +3013,7 @@ export type GetDatasetData = { trDataset: string; }; -export type GetDatasetResponse = Dataset; +export type GetDatasetResponse = (Dataset); export type DeleteDatasetData = { /** @@ -2965,7 +3026,7 @@ export type DeleteDatasetData = { trDataset: string; }; -export type DeleteDatasetResponse = void; +export type DeleteDatasetResponse = (void); export type GetEventsData2 = { /** @@ -2978,7 +3039,7 @@ export type GetEventsData2 = { trDataset: string; }; -export type GetEventsResponse = EventReturn; +export type GetEventsResponse = (EventReturn); export type UploadFileHandlerData = { /** @@ -2991,7 +3052,7 @@ export type UploadFileHandlerData = { trDataset: string; }; -export type UploadFileHandlerResponse = UploadFileResult; +export type UploadFileHandlerResponse = (UploadFileResult); export type GetFileHandlerData = { /** @@ -3004,7 +3065,7 @@ export type GetFileHandlerData = { trDataset: string; }; -export type GetFileHandlerResponse = FileDTO; +export type GetFileHandlerResponse = (FileDTO); export type DeleteFileHandlerData = { /** @@ -3017,9 +3078,9 @@ export type DeleteFileHandlerData = { trDataset: string; }; -export type DeleteFileHandlerResponse = void; +export type DeleteFileHandlerResponse = (void); -export type HealthCheckResponse = unknown; +export type HealthCheckResponse = (unknown); export type PostInvitationData = { /** @@ -3032,7 +3093,7 @@ export type PostInvitationData = { trOrganization: string; }; -export type PostInvitationResponse = void; +export type PostInvitationResponse = (void); export type CreateMessageData = { /** @@ -3045,7 +3106,7 @@ export type CreateMessageData = { trDataset: string; }; -export type CreateMessageResponse = string; +export type CreateMessageResponse = (string); export type EditMessageData = { /** @@ -3058,7 +3119,7 @@ export type EditMessageData = { trDataset: string; }; -export type EditMessageResponse = unknown; +export type EditMessageResponse = (unknown); export type RegenerateMessageData = { /** @@ -3071,7 +3132,7 @@ export type RegenerateMessageData = { trDataset: string; }; -export type RegenerateMessageResponse = string; +export type RegenerateMessageResponse = (string); export type RegenerateMessagePatchData = { /** @@ -3084,7 +3145,7 @@ export type RegenerateMessagePatchData = { trDataset: string; }; -export type RegenerateMessagePatchResponse = string; +export type RegenerateMessagePatchResponse = (string); export type GetAllTopicMessagesData = { /** @@ -3097,7 +3158,7 @@ export type GetAllTopicMessagesData = { trDataset: string; }; -export type GetAllTopicMessagesResponse = Array; +export type GetAllTopicMessagesResponse = (Array); export type CreateOrganizationData = { /** @@ -3106,7 +3167,7 @@ export type CreateOrganizationData = { requestBody: CreateOrganizationReqPayload; }; -export type CreateOrganizationResponse = Organization; +export type CreateOrganizationResponse = (Organization); export type UpdateOrganizationData = { /** @@ -3119,7 +3180,7 @@ export type UpdateOrganizationData = { trOrganization: string; }; -export type UpdateOrganizationResponse = Organization; +export type UpdateOrganizationResponse = (Organization); export type UpdateAllOrgDatasetConfigsData = { /** @@ -3132,7 +3193,7 @@ export type UpdateAllOrgDatasetConfigsData = { trOrganization: string; }; -export type UpdateAllOrgDatasetConfigsResponse = void; +export type UpdateAllOrgDatasetConfigsResponse = (void); export type GetOrganizationUsageData = { /** @@ -3145,7 +3206,7 @@ export type GetOrganizationUsageData = { trOrganization: string; }; -export type GetOrganizationUsageResponse = OrganizationUsageCount; +export type GetOrganizationUsageResponse = (OrganizationUsageCount); export type GetOrganizationUsersData = { /** @@ -3158,7 +3219,7 @@ export type GetOrganizationUsersData = { trOrganization: string; }; -export type GetOrganizationUsersResponse = Array; +export type GetOrganizationUsersResponse = (Array); export type GetOrganizationData = { /** @@ -3171,7 +3232,7 @@ export type GetOrganizationData = { trOrganization: string; }; -export type GetOrganizationResponse = Organization; +export type GetOrganizationResponse = (Organization); export type DeleteOrganizationData = { /** @@ -3184,7 +3245,7 @@ export type DeleteOrganizationData = { trOrganization: string; }; -export type DeleteOrganizationResponse = void; +export type DeleteOrganizationResponse = (void); export type CreateSetupCheckoutSessionData = { /** @@ -3193,7 +3254,7 @@ export type CreateSetupCheckoutSessionData = { organizationId: string; }; -export type CreateSetupCheckoutSessionResponse = CreateSetupCheckoutSessionResPayload; +export type CreateSetupCheckoutSessionResponse = (CreateSetupCheckoutSessionResPayload); export type GetAllInvoicesData = { /** @@ -3202,7 +3263,7 @@ export type GetAllInvoicesData = { organizationId: string; }; -export type GetAllInvoicesResponse = Array; +export type GetAllInvoicesResponse = (Array); export type DirectToPaymentLinkData = { /** @@ -3215,7 +3276,7 @@ export type DirectToPaymentLinkData = { planId: string; }; -export type GetAllPlansResponse = Array; +export type GetAllPlansResponse = (Array); export type CancelSubscriptionData = { /** @@ -3228,7 +3289,7 @@ export type CancelSubscriptionData = { trOrganization: string; }; -export type CancelSubscriptionResponse = unknown; +export type CancelSubscriptionResponse = (unknown); export type UpdateSubscriptionPlanData = { /** @@ -3245,7 +3306,7 @@ export type UpdateSubscriptionPlanData = { trOrganization: string; }; -export type UpdateSubscriptionPlanResponse = unknown; +export type UpdateSubscriptionPlanResponse = (unknown); export type CreateTopicData = { /** @@ -3258,7 +3319,7 @@ export type CreateTopicData = { trDataset: string; }; -export type CreateTopicResponse = Topic; +export type CreateTopicResponse = (Topic); export type UpdateTopicData = { /** @@ -3271,7 +3332,7 @@ export type UpdateTopicData = { trDataset: string; }; -export type UpdateTopicResponse = void; +export type UpdateTopicResponse = (void); export type GetAllTopicsForOwnerIdData = { /** @@ -3284,7 +3345,7 @@ export type GetAllTopicsForOwnerIdData = { trDataset: string; }; -export type GetAllTopicsForOwnerIdResponse = Array; +export type GetAllTopicsForOwnerIdResponse = (Array); export type DeleteTopicData2 = { /** @@ -3297,7 +3358,7 @@ export type DeleteTopicData2 = { trDataset: string; }; -export type DeleteTopicResponse = void; +export type DeleteTopicResponse = (void); export type UpdateUserData = { /** @@ -3306,7 +3367,7 @@ export type UpdateUserData = { requestBody: UpdateUserOrgRoleData; }; -export type UpdateUserResponse = void; +export type UpdateUserResponse = (void); export type SetUserApiKeyData = { /** @@ -3315,7 +3376,7 @@ export type SetUserApiKeyData = { requestBody: SetUserApiKeyRequest; }; -export type SetUserApiKeyResponse2 = SetUserApiKeyResponse; +export type SetUserApiKeyResponse2 = (SetUserApiKeyResponse); export type DeleteUserApiKeyData = { /** @@ -3324,9 +3385,9 @@ export type DeleteUserApiKeyData = { apiKeyId: string; }; -export type DeleteUserApiKeyResponse = void; +export type DeleteUserApiKeyResponse = (void); -export type GetMetricsResponse = string; +export type GetMetricsResponse = (string); export type $OpenApiTs = { '/api/analytics/ctr': { @@ -3372,7 +3433,7 @@ export type $OpenApiTs = { }; }; }; - '/api/analytics/recommendation': { + '/api/analytics/recommendations': { post: { req: GetRecommendationAnalyticsData; res: { diff --git a/clients/ts-sdk/theme/style.css b/clients/ts-sdk/theme/style.css new file mode 100644 index 000000000..885f32416 --- /dev/null +++ b/clients/ts-sdk/theme/style.css @@ -0,0 +1,436 @@ +/* + * Define colors + */ + +:root { + /* GitHub "Light default" */ + --light-color-background: #ffffff; + --light-color-background-secondary: #f6f8fa; + --light-color-background-navbar: #f6f8fa; + + --light-color-accent: #d0d7de; + + --light-color-text: #1f2328; + --light-color-text-aside: #636c76; + + --light-color-link: #0969da; + + --light-color-warning-border: #f7ebba; + --light-color-background-warning: #fff8c5; + + /* GitHub "Dark default" */ + --dark-color-background: #0d1117; + --dark-color-background-secondary: #161b22; + --dark-color-background-navbar: #000000; + + --dark-color-accent: #30363d; + + --dark-color-text: #e6edf3; + --dark-color-text-aside: #8d96a0; + + --dark-color-link: #4493f8; + + --dark-color-warning-border: #3a2d12; + --dark-color-background-warning: #282215; + + /* Link colors */ + --color-warning-text: var(--color-text); + --color-icon-background: var(--color-background); + --color-focus-outline: var(--color-accent); +} + +@media (prefers-color-scheme: light) { + :root { + --color-background-navbar: var(--light-color-background-navbar); + --color-warning-border: var(--light-color-warning-border); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background-navbar: var(--dark-color-background-navbar); + --color-warning-border: var(--dark-color-warning-border); + } +} + +:root[data-theme="light"] { + --color-background-navbar: var(--light-color-background-navbar); + --color-warning-border: var(--light-color-warning-border); +} + +:root[data-theme="dark"] { + --color-background-navbar: var(--dark-color-background-navbar); + --color-warning-border: var(--dark-color-warning-border); +} + +/* + * Define fonts + */ + +:root { + --font-family-text: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + --font-family-code: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, + Liberation Mono, monospace; +} + +body { + font-family: var(--font-family-text); +} + +/* + * Headlines + */ + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 1em; + margin-bottom: 0.5em; +} + +/* + * Links + */ + +a, +.tsd-kind-class { + color: var(--color-link); + text-decoration: underline; +} + +.tsd-index-link { + text-decoration: none; +} + +.tsd-index-link:hover { + text-decoration: underline; +} + +.tsd-sources a { + color: var(--color-link); +} + +/* + * Lists + */ + +ul, +ol { + margin-left: 20px; + list-style: disc; +} + +li::marker { + color: var(--color-accent); +} + +/* + * Input fields + */ + +input { + background-color: var(--color-background-secondary); + color: var(--color-text); + border: 1px solid var(--color-accent); + border-radius: 6px; + padding: 8px; + width: 100%; +} + +/* + * Tables + */ + +table { + margin: 1em 0; +} + +.tsd-typography th, +.tsd-typography td { + padding: 8px; + text-align: left; +} + +.tsd-typography th { + background-color: var(--color-background); + color: var(--color-text); +} + +.tsd-typography tr:nth-child(2n) { + background-color: var(--color-background-code); +} + +/* + * Horizontal line + */ + +.tsd-typography hr { + color: var(--color-accent); +} + +/* + * Buttons + */ + +button { + background-color: var(--color-background-navbar); + color: var(--color-text); + border: 1px solid var(--color-accent); + border-radius: 6px; + padding: 8px 16px; + cursor: pointer; + transition: background-color 0.1s ease-in-out; +} + +button:hover { + background-color: var(--color-accent); +} + +pre > button { + background-color: transparent; + transition: background-color 0.1s ease-in-out; + border: none; + opacity: 1; + top: 8px; + padding: 4px 8px; +} + +/* + * Checkbox + */ + +.tsd-filter-input input[type="checkbox"], +.tsd-filter-input svg { + width: 1em; + height: 1em; +} + +.tsd-filter-input svg { + border-radius: 2px; +} + +.tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 6px; +} + +input[type="checkbox"]:checked ~ svg .tsd-checkbox-background { + fill: var(--color-accent); +} + +.tsd-checkbox-checkmark { + color: var(--color-text); +} + +/* + * Select + */ + +select { + background-color: var(--color-background); + border: 1px solid var(--color-accent); + border-radius: 6px; + padding: 8px; + font-family: inherit; +} + +/* + * Code blocks + */ + +code, +pre { + border: none; + border-radius: 6px; + margin: 1em 0; + background-color: var(--color-background-secondary); + color: var(--color-text); + font-family: var(--font-family-code); +} + +code.tsd-tag { + background-color: var(--color-accent); + border: unset; +} + +/* + * Warnings + */ + +.warning { + border-style: solid; + border-width: 1px; + border-color: var(--color-warning-border); + border-radius: 6px; +} + +/* + * Topbar + */ + +.tsd-page-toolbar { + background-color: var(--color-background-navbar); + border-bottom-color: var(--color-accent); +} + +.tsd-page-toolbar a.title:hover { + text-decoration: none; +} + +#tsd-search.has-focus { + background-color: var(--color-background-navbar); +} + +#tsd-search .results, +#tsd-search .results li, +#tsd-search .results li:nth-child(2n) { + background-color: var(--color-background-navbar); +} + +#tsd-search .results li { + margin-bottom: 0px; +} + +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} + +#tsd-search .results { + border-style: solid; + border-width: 1px; + border-color: var(--color-accent); + border-radius: 0px 0px 6px 6px; + overflow: hidden; +} + +#tsd-search .results .no-results { + padding: calc(4px + 0.25rem); +} + +/* + * Baseboard + */ + +footer { + border-top-color: var(--color-accent); +} + +/* + * Side navigations + */ + +.site-menu { + padding: 1rem 0; +} + +.tsd-navigation a { + color: var(--color-text); + border-radius: 6px; + padding: 6px; +} + +.tsd-navigation a, +.tsd-navigation a:hover { + text-decoration: none; +} + +.tsd-navigation a:hover:not(.current) { + background-color: color-mix(in srgb, var(--color-text-aside), #0000 88%); +} + +.tsd-navigation a.current { + background-color: color-mix(in srgb, var(--color-text-aside), #0000 92%); +} + +/* + * Type definition groups + */ + +.tsd-index-panel, +.tsd-member-group { + background-color: var(--color-background); + padding: 16px; + border: 1px var(--color-accent) solid; + border-radius: 6px; +} + +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin-top: 0px; +} + +.tsd-panel-group.tsd-index-group details { + margin: 0px; +} + +.tsd-member-group .tsd-member:last-child { + margin-bottom: 0px; +} + +.tsd-signature { + border: 1px solid var(--color-accent); + border-radius: 6px; +} + +.tsd-signatures .tsd-signature { + border-color: var(--color-accent); + border-radius: 0px; +} + +.tsd-description .tsd-signatures .tsd-signature { + border-radius: 6px; +} + +.tsd-full-hierarchy:not(:last-child) { + border-bottom: var(--color-accent); +} + +/* + * Footer + */ + +footer p { + font-size: 1rem; + text-align: center; + color: var(--color-text-aside); +} + +/* + * Fix collapsed margin + */ + +.tsd-accordion-summary.tsd-index-summary > h5 { + margin-top: 0px; + margin-bottom: 0px; +} + +.tsd-panel-group:not([open]) > .tsd-accordion-summary { + margin-bottom: 0px; +} + +/* + * Fix collapse arrow position + */ + +.tsd-accordion-summary:has(svg) > * { + display: inline-flex; + align-items: center; + line-height: normal; +} + +.tsd-accordion-summary > * > svg { + padding-top: 0px; + position: relative; + left: 0px; + top: 50%; +} + +.tsd-accordion-summary svg { + transition: transform 0.1s ease-in-out; +} diff --git a/clients/ts-sdk/tsconfig.json b/clients/ts-sdk/tsconfig.json new file mode 100644 index 000000000..3d2270d51 --- /dev/null +++ b/clients/ts-sdk/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "config/tsconfig", + "compilerOptions": { + "noEmit": false, + "emitDeclarationOnly": true, + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + "lib": ["ES2021", "DOM", "DOM.Iterable"], + "rootDir": "./src", + "declarationMap": true /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */, + "outDir": "./dist", + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + "strictNullChecks": true /* When type checking, take into account 'null' and 'undefined'. */, + "strictFunctionTypes": true /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */, + "strictBindCallApply": true /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */, + "strictPropertyInitialization": true /* Check for class properties that are declared but not set in the constructor. */, + "noImplicitThis": true /* Enable error reporting when 'this' is given the type 'any'. */, + "useUnknownInCatchVariables": true, + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "include": ["src"] +} diff --git a/clients/ts-sdk/typedoc.json b/clients/ts-sdk/typedoc.json new file mode 100644 index 000000000..53fe764d4 --- /dev/null +++ b/clients/ts-sdk/typedoc.json @@ -0,0 +1,22 @@ +/** @type { import('typedoc').TypeDocOptionMap & import('typedoc-plugin-merge-modules').Config } */ +{ + "out": "./docs", + "entryPointStrategy": "expand", + "entryPoints": ["src/functions/**", "src/types.gen.ts"], + "exclude": ["/src/**/*.test.ts", "src/functions/index.ts"], + "excludeProtected": true, + "includeVersion": true, + "name": "Trieve Typescript SDK", + "readme": "./Readme.md", + "searchInComments": true, + "searchInDocuments": true, + "navigationLinks": { + "Github": "http://example.com" + }, + + "categorizeByGroup": true, + "groupOrder": ["functions"], + "customCss": "./theme/style.css", + "plugin": ["typedoc-plugin-merge-modules", "typedoc-plugin-mdn-links"], + "mergeModulesMergeMode": "module" // NEW option of TypeDoc added by this plugin +} diff --git a/clients/ts-sdk/yarn.lock b/clients/ts-sdk/yarn.lock new file mode 100644 index 000000000..cad47862b --- /dev/null +++ b/clients/ts-sdk/yarn.lock @@ -0,0 +1,1414 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@apidevtools/json-schema-ref-parser@11.7.0": + version "11.7.0" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz#228d72018a0e7cbee744b677eaa01a8968f302d9" + integrity sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.15" + js-yaml "^4.1.0" + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/aix-ppc64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353" + integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018" + integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-arm@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee" + integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/android-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517" + integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16" + integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/darwin-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931" + integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc" + integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/freebsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730" + integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383" + integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-arm@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771" + integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-ia32@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333" + integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-loong64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac" + integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-mips64el@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6" + integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-ppc64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96" + integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-riscv64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7" + integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-s390x@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f" + integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/linux-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24" + integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/netbsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653" + integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA== + +"@esbuild/openbsd-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7" + integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/openbsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273" + integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/sunos-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403" + integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2" + integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-ia32@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac" + integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== + +"@esbuild/win32-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" + integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== + +"@hey-api/openapi-ts@^0.52.9": + version "0.52.9" + resolved "https://registry.yarnpkg.com/@hey-api/openapi-ts/-/openapi-ts-0.52.9.tgz#a51dd6deb10c4e2b1a8c1cdc2f560da0cd027a88" + integrity sha512-257xD5lHAszpbj4US5GGnb5keqcYmnB0Sh+6BmPX4atettBOF9c3knU4mgZWEy75Dx3eEzgSMsJyUjRIVADX4w== + dependencies: + "@apidevtools/json-schema-ref-parser" "11.7.0" + c12 "1.11.1" + commander "12.1.0" + handlebars "4.7.8" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.25" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" + integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== + +"@rollup/rollup-android-arm-eabi@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz#d941173f82f9b041c61b0dc1a2a91dcd06e4b31e" + integrity sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA== + +"@rollup/rollup-android-arm64@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz#7e7157c8543215245ceffc445134d9e843ba51c0" + integrity sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA== + +"@rollup/rollup-darwin-arm64@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz#f0a18a4fc8dc6eb1e94a51fa2adb22876f477947" + integrity sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA== + +"@rollup/rollup-darwin-x64@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz#34b7867613e5cc42d2b85ddc0424228cc33b43f0" + integrity sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg== + +"@rollup/rollup-linux-arm-gnueabihf@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz#422b19ff9ae02b05d3395183d1d43b38c7c8be0b" + integrity sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA== + +"@rollup/rollup-linux-arm-musleabihf@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz#568aa29195ef6fc57ec6ed3f518923764406a8ee" + integrity sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w== + +"@rollup/rollup-linux-arm64-gnu@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz#22309c8bcba9a73114f69165c72bc94b2fbec085" + integrity sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w== + +"@rollup/rollup-linux-arm64-musl@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz#c93c388af6d33f082894b8a60839d7265b2b9bc5" + integrity sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz#493c5e19e395cf3c6bd860c7139c8a903dea72b4" + integrity sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg== + +"@rollup/rollup-linux-riscv64-gnu@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz#a2eab4346fbe5909165ce99adb935ba30c9fb444" + integrity sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg== + +"@rollup/rollup-linux-s390x-gnu@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz#0bc49a79db4345d78d757bb1b05e73a1b42fa5c3" + integrity sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw== + +"@rollup/rollup-linux-x64-gnu@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz#4fd36a6a41f3406d8693321b13d4f9b7658dd4b9" + integrity sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg== + +"@rollup/rollup-linux-x64-musl@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz#10ebb13bd4469cbad1a5d9b073bd27ec8a886200" + integrity sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ== + +"@rollup/rollup-win32-arm64-msvc@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz#2fef1a90f1402258ef915ae5a94cc91a5a1d5bfc" + integrity sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ== + +"@rollup/rollup-win32-ia32-msvc@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz#a18ad47a95c5f264defb60acdd8c27569f816fc1" + integrity sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg== + +"@rollup/rollup-win32-x64-msvc@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz#20c09cf44dcb082140cc7f439dd679fe4bba3375" + integrity sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ== + +"@shikijs/core@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.14.1.tgz#008f1c4a20ff83fd1672d9e31d76b687862f7511" + integrity sha512-KyHIIpKNaT20FtFPFjCQB5WVSTpLR/n+jQXhWHWVUMm9MaOaG9BGOG0MSyt7yA4+Lm+4c9rTc03tt3nYzeYSfw== + dependencies: + "@types/hast" "^3.0.4" + +"@types/estree@1.0.5", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/unist@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@vitest/expect@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.0.5.tgz#f3745a6a2c18acbea4d39f5935e913f40d26fa86" + integrity sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA== + dependencies: + "@vitest/spy" "2.0.5" + "@vitest/utils" "2.0.5" + chai "^5.1.1" + tinyrainbow "^1.2.0" + +"@vitest/pretty-format@2.0.5", "@vitest/pretty-format@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.0.5.tgz#91d2e6d3a7235c742e1a6cc50e7786e2f2979b1e" + integrity sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ== + dependencies: + tinyrainbow "^1.2.0" + +"@vitest/runner@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.0.5.tgz#89197e712bb93513537d6876995a4843392b2a84" + integrity sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig== + dependencies: + "@vitest/utils" "2.0.5" + pathe "^1.1.2" + +"@vitest/snapshot@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.0.5.tgz#a2346bc5013b73c44670c277c430e0334690a162" + integrity sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew== + dependencies: + "@vitest/pretty-format" "2.0.5" + magic-string "^0.30.10" + pathe "^1.1.2" + +"@vitest/spy@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.0.5.tgz#590fc07df84a78b8e9dd976ec2090920084a2b9f" + integrity sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA== + dependencies: + tinyspy "^3.0.0" + +"@vitest/ui@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-2.0.5.tgz#cfae5f6c7a1cc8cd1be87c88153215cb60a2cc0d" + integrity sha512-m+ZpVt/PVi/nbeRKEjdiYeoh0aOfI9zr3Ria9LO7V2PlMETtAXJS3uETEZkc8Be2oOl8mhd7Ew+5SRBXRYncNw== + dependencies: + "@vitest/utils" "2.0.5" + fast-glob "^3.3.2" + fflate "^0.8.2" + flatted "^3.3.1" + pathe "^1.1.2" + sirv "^2.0.4" + tinyrainbow "^1.2.0" + +"@vitest/utils@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.0.5.tgz#6f8307a4b6bc6ceb9270007f73c67c915944e926" + integrity sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ== + dependencies: + "@vitest/pretty-format" "2.0.5" + estree-walker "^3.0.3" + loupe "^3.1.1" + tinyrainbow "^1.2.0" + +acorn@^8.11.3: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +c12@1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/c12/-/c12-1.11.1.tgz#d5244e95407af450a523e44eb57e5b87b82f8677" + integrity sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg== + dependencies: + chokidar "^3.6.0" + confbox "^0.1.7" + defu "^6.1.4" + dotenv "^16.4.5" + giget "^1.2.3" + jiti "^1.21.6" + mlly "^1.7.1" + ohash "^1.1.3" + pathe "^1.1.2" + perfect-debounce "^1.0.0" + pkg-types "^1.1.1" + rc9 "^2.1.2" + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +chai@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.1.tgz#f035d9792a22b481ead1c65908d14bb62ec1c82c" + integrity sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA== + dependencies: + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" + +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== + +chokidar@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +citty@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4" + integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== + dependencies: + consola "^3.2.3" + +commander@12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + +confbox@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579" + integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== + +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.3.4, debug@^4.3.5: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== + +defu@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== + +destr@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449" + integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ== + +dotenv@^16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +esbuild-register@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.6.0.tgz#cf270cfa677baebbc0010ac024b823cbf723a36d" + integrity sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg== + dependencies: + debug "^4.3.4" + +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== + optionalDependencies: + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" + +esbuild@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8" + integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.23.1" + "@esbuild/android-arm" "0.23.1" + "@esbuild/android-arm64" "0.23.1" + "@esbuild/android-x64" "0.23.1" + "@esbuild/darwin-arm64" "0.23.1" + "@esbuild/darwin-x64" "0.23.1" + "@esbuild/freebsd-arm64" "0.23.1" + "@esbuild/freebsd-x64" "0.23.1" + "@esbuild/linux-arm" "0.23.1" + "@esbuild/linux-arm64" "0.23.1" + "@esbuild/linux-ia32" "0.23.1" + "@esbuild/linux-loong64" "0.23.1" + "@esbuild/linux-mips64el" "0.23.1" + "@esbuild/linux-ppc64" "0.23.1" + "@esbuild/linux-riscv64" "0.23.1" + "@esbuild/linux-s390x" "0.23.1" + "@esbuild/linux-x64" "0.23.1" + "@esbuild/netbsd-x64" "0.23.1" + "@esbuild/openbsd-arm64" "0.23.1" + "@esbuild/openbsd-x64" "0.23.1" + "@esbuild/sunos-x64" "0.23.1" + "@esbuild/win32-arm64" "0.23.1" + "@esbuild/win32-ia32" "0.23.1" + "@esbuild/win32-x64" "0.23.1" + +estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fflate@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" + integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +flatted@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +get-func-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +giget@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/giget/-/giget-1.2.3.tgz#ef6845d1140e89adad595f7f3bb60aa31c672cb6" + integrity sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA== + dependencies: + citty "^0.1.6" + consola "^3.2.3" + defu "^6.1.4" + node-fetch-native "^1.6.3" + nypm "^0.3.8" + ohash "^1.1.3" + pathe "^1.1.2" + tar "^6.2.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +handlebars@4.7.8: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jiti@^1.21.6: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + +loupe@^3.1.0, loupe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.1.tgz#71d038d59007d890e3247c5db97c1ec5a92edc54" + integrity sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw== + dependencies: + get-func-name "^2.0.1" + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +magic-string@^0.30.10: + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.5: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mlly@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.1.tgz#e0336429bb0731b6a8e887b438cbdae522c8f32f" + integrity sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA== + dependencies: + acorn "^8.11.3" + pathe "^1.1.2" + pkg-types "^1.1.1" + ufo "^1.5.3" + +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-fetch-native@^1.6.3: + version "1.6.4" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz#679fc8fd8111266d47d7e72c379f1bed9acff06e" + integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + +nypm@^0.3.8: + version "0.3.9" + resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.3.9.tgz#ab74c55075737466847611aa33c3c67741c01d8f" + integrity sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw== + dependencies: + citty "^0.1.6" + consola "^3.2.3" + execa "^8.0.1" + pathe "^1.1.2" + pkg-types "^1.1.1" + ufo "^1.5.3" + +ohash@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07" + integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== + +perfect-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" + integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== + +picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-types@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.3.tgz#161bb1242b21daf7795036803f28e30222e476e3" + integrity sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA== + dependencies: + confbox "^0.1.7" + mlly "^1.7.1" + pathe "^1.1.2" + +postcss@^8.4.41: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +rc9@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.1.2.tgz#6282ff638a50caa0a91a31d76af4a0b9cbd1080d" + integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg== + dependencies: + defu "^6.1.4" + destr "^2.0.3" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rollup@^4.20.0: + version "4.21.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.0.tgz#28db5f5c556a5180361d35009979ccc749560b9d" + integrity sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.21.0" + "@rollup/rollup-android-arm64" "4.21.0" + "@rollup/rollup-darwin-arm64" "4.21.0" + "@rollup/rollup-darwin-x64" "4.21.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.21.0" + "@rollup/rollup-linux-arm-musleabihf" "4.21.0" + "@rollup/rollup-linux-arm64-gnu" "4.21.0" + "@rollup/rollup-linux-arm64-musl" "4.21.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.21.0" + "@rollup/rollup-linux-riscv64-gnu" "4.21.0" + "@rollup/rollup-linux-s390x-gnu" "4.21.0" + "@rollup/rollup-linux-x64-gnu" "4.21.0" + "@rollup/rollup-linux-x64-musl" "4.21.0" + "@rollup/rollup-win32-arm64-msvc" "4.21.0" + "@rollup/rollup-win32-ia32-msvc" "4.21.0" + "@rollup/rollup-win32-x64-msvc" "4.21.0" + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shiki@^1.9.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.14.1.tgz#617e62dfbe3a083e46111e22086044fbd7644786" + integrity sha512-FujAN40NEejeXdzPt+3sZ3F2dx1U24BY2XTY01+MG8mbxCiA2XukXdcbyMyLAHJ/1AUUnQd1tZlvIjefWWEJeA== + dependencies: + "@shikijs/core" "1.14.1" + "@types/hast" "^3.0.4" + +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sirv@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== + +std-env@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +tar@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tinybench@^2.8.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" + integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== + +tinypool@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.1.tgz#c64233c4fac4304e109a64340178760116dbe1fe" + integrity sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA== + +tinyrainbow@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-1.2.0.tgz#5c57d2fc0fb3d1afd78465c33ca885d04f02abb5" + integrity sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ== + +tinyspy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.0.tgz#cb61644f2713cd84dee184863f4642e06ddf0585" + integrity sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +typedoc-plugin-mdn-links@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/typedoc-plugin-mdn-links/-/typedoc-plugin-mdn-links-3.2.9.tgz#2ee846685e1e3d9e5f76445216e479566c9a3198" + integrity sha512-+bjuG/rPyeRBGA/ILk8u2j7KksohicCsUd+qcTQitOaS9GLvN69zcQlCJU1KqcPHpt3fTqJnVmyhMRe5F+ig7w== + +typedoc-plugin-merge-modules@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/typedoc-plugin-merge-modules/-/typedoc-plugin-merge-modules-6.0.0.tgz#0c40304e4257fcb00034710a9f16fd87631d8d30" + integrity sha512-SzxoA45hUHtI4Het+ggjrauRL+4qgRNZ+2NVh4hXeLbZx/Tzb2qhaxcLero7pwGNMcsXc2IzFKokF09ZAlluRw== + +typedoc@^0.26.0: + version "0.26.6" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.26.6.tgz#9cb3d6f0ed5070f86af169c3f88ca2c9b7031f59" + integrity sha512-SfEU3SH3wHNaxhFPjaZE2kNl/NFtLNW5c1oHsg7mti7GjmUj1Roq6osBQeMd+F4kL0BoRBBr8gQAuqBlfFu8LA== + dependencies: + lunr "^2.3.9" + markdown-it "^14.1.0" + minimatch "^9.0.5" + shiki "^1.9.1" + yaml "^2.4.5" + +typescript@^5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + +ufo@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754" + integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ== + +uglify-js@^3.1.4: + version "3.19.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.1.tgz#2d5df6a0872c43da43187968308d7741d44b8056" + integrity sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A== + +vite-node@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.0.5.tgz#36d909188fc6e3aba3da5fc095b3637d0d18e27b" + integrity sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q== + dependencies: + cac "^6.7.14" + debug "^4.3.5" + pathe "^1.1.2" + tinyrainbow "^1.2.0" + vite "^5.0.0" + +vite@^5.0.0: + version "5.4.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.2.tgz#8acb6ec4bfab823cdfc1cb2d6c53ed311bc4e47e" + integrity sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA== + dependencies: + esbuild "^0.21.3" + postcss "^8.4.41" + rollup "^4.20.0" + optionalDependencies: + fsevents "~2.3.3" + +vitest@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.0.5.tgz#2f15a532704a7181528e399cc5b754c7f335fd62" + integrity sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA== + dependencies: + "@ampproject/remapping" "^2.3.0" + "@vitest/expect" "2.0.5" + "@vitest/pretty-format" "^2.0.5" + "@vitest/runner" "2.0.5" + "@vitest/snapshot" "2.0.5" + "@vitest/spy" "2.0.5" + "@vitest/utils" "2.0.5" + chai "^5.1.1" + debug "^4.3.5" + execa "^8.0.1" + magic-string "^0.30.10" + pathe "^1.1.2" + std-env "^3.7.0" + tinybench "^2.8.0" + tinypool "^1.0.0" + tinyrainbow "^1.2.0" + vite "^5.0.0" + vite-node "2.0.5" + why-is-node-running "^2.3.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +why-is-node-running@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" + integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^2.4.5: + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== diff --git a/convenience.sh b/convenience.sh index 7ae21727e..71295f93c 100755 --- a/convenience.sh +++ b/convenience.sh @@ -25,8 +25,8 @@ start_local_services() { build_typescript_client() { echo "Building the TypeScript client..." - cargo run --features runtime-env --manifest-path server/Cargo.toml --bin redoc_ci > ./clients/fetch-client/openapi.json - cd ./clients/fetch-client/; yarn && yarn build:clean; + cargo run --features runtime-env --manifest-path server/Cargo.toml --bin redoc_ci > ./clients/ts-sdk/openapi.json + cd ./clients/ts-sdk/; yarn && yarn build:clean; echo "Done building the TypeScript client." } diff --git a/examples/ts/package.json b/examples/ts/package.json deleted file mode 100644 index 71866bb93..000000000 --- a/examples/ts/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "trieve-typescript-examples", - "version": "1.0.0", - "license": "MIT", - "scripts": { - "create-dataset": "node -r esbuild-register src/createOrgAndDataset.ts", - "create-group": "node -r esbuild-register src/createGroup.ts", - "upload-chunk": "node -r esbuild-register src/chunkUpload.ts", - "upload-file": "node -r esbuild-register ./src/fileUpload.ts", - "simple-search": "node -r esbuild-register ./src/simpleSearch.ts", - "advanced-search": "node -r esbuild-register ./src/advancedSearch.ts", - "recommendations": "node -r esbuild-register ./src/recommendations.ts" - }, - "dependencies": { - "trieve-fetch-client": "*" - }, - "devDependencies": { - "esbuild": "^0.23.0", - "esbuild-register": "^3.6.0", - "typescript": "^5.5.4" - } -} diff --git a/examples/ts/src/advancedSearch.ts b/examples/ts/src/advancedSearch.ts deleted file mode 100644 index 3c82d1ff5..000000000 --- a/examples/ts/src/advancedSearch.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { SearchResponseBody } from "trieve-fetch-client"; -import { EXAMPLE_DATASET_ID, trieve } from "./trieve"; - -const main = async () => { - const searchResponse = (await trieve.fetch("/api/chunk/search", "post", { - data: { - query: "This is an advanced search", - search_type: "hybrid", - score_threshold: 0.002, - highlight_options: { - highlight_delimiters: [",", "."], - }, - page_size: 20, - page: 1, - filters: { - must_not: [ - { - field: "test-metadata", - match_any: ["dontmatchme"], - }, - ], - }, - }, - datasetId: EXAMPLE_DATASET_ID, - })) as SearchResponseBody; - - console.log("Search response", searchResponse.chunks); -}; - -main(); diff --git a/examples/ts/src/chunkUpload.ts b/examples/ts/src/chunkUpload.ts deleted file mode 100644 index 45aad6e80..000000000 --- a/examples/ts/src/chunkUpload.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { EXAMPLE_DATASET_ID, trieve } from "./trieve"; - -const main = async () => { - const uploadedChunk = await trieve.fetch("/api/chunk", "post", { - data: { - chunk_html: "This is the text content of an example chunk", - metadata: { - user: "203802830", - }, - }, - datasetId: EXAMPLE_DATASET_ID, - }); - - console.log("Uploaded chunk:", uploadedChunk); -}; - -main(); diff --git a/examples/ts/src/createGroup.ts b/examples/ts/src/createGroup.ts deleted file mode 100644 index 59d03665e..000000000 --- a/examples/ts/src/createGroup.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { EXAMPLE_DATASET_ID, trieve } from "./trieve"; - -const main = async () => { - const group = await trieve.fetch("/api/chunk_group", "post", { - data: { - name: "Test Group", - }, - datasetId: EXAMPLE_DATASET_ID, - }); - - console.log(group); -}; - -main(); diff --git a/examples/ts/src/createOrgAndDataset.ts b/examples/ts/src/createOrgAndDataset.ts deleted file mode 100644 index 38c4f8d89..000000000 --- a/examples/ts/src/createOrgAndDataset.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { trieve } from "./trieve"; - -const main = async () => { - const organization = await trieve.fetch("/api/organization", "post", { - data: { - name: "My Test Organization", - }, - }); - - const dataset = await trieve.fetch("/api/dataset", "post", { - data: { - dataset_name: "My Dataset", - organization_id: organization.id, - }, - organizationId: organization.id, - }); - - console.log("Created dataset:", dataset); -}; - -main(); diff --git a/examples/ts/src/fileUpload.ts b/examples/ts/src/fileUpload.ts deleted file mode 100644 index c7329d681..000000000 --- a/examples/ts/src/fileUpload.ts +++ /dev/null @@ -1,25 +0,0 @@ -import fs from "fs"; -import { EXAMPLE_DATASET_ID, trieve } from "./trieve"; - -const main = async () => { - const file = fs.readFileSync("./src/uploadme.pdf"); - - const fileEncoded = file - .toString("base64") - .replace(/\+/g, "-") // Convert '+' to '-' - .replace(/\//g, "_") // Convert '/' to '_' - .replace(/=+$/, ""); // Remove ending '=' - - const response = await trieve.fetch("/api/file", "post", { - data: { - base64_file: fileEncoded, - file_name: "uploadme.pdf", - group_tracking_id: "file-upload-group", - }, - datasetId: EXAMPLE_DATASET_ID, - }); - - console.log(response); -}; - -main(); diff --git a/examples/ts/src/recommendations.ts b/examples/ts/src/recommendations.ts deleted file mode 100644 index 3fcefdce2..000000000 --- a/examples/ts/src/recommendations.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { EXAMPLE_DATASET_ID, trieve } from "./trieve"; - -const main = async () => { - const recommendations = await trieve.fetch("/api/chunk/recommend", "post", { - data: { - strategy: "average_vector", - limit: 20, - positive_chunk_ids: ["e6bb9796-fb05-4dc2-9087-1b2b6b6594a9"], - }, - datasetId: EXAMPLE_DATASET_ID, - }); - - console.log(recommendations); -}; - -main(); diff --git a/examples/ts/src/simpleSearch.ts b/examples/ts/src/simpleSearch.ts deleted file mode 100644 index c66f821f6..000000000 --- a/examples/ts/src/simpleSearch.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { SearchResponseBody } from "trieve-fetch-client"; -import { EXAMPLE_DATASET_ID, trieve } from "./trieve"; - -const main = async () => { - const searchResult = (await trieve.fetch("/api/chunk/search", "post", { - data: { - search_type: "fulltext", - query: "Hello", - }, - datasetId: EXAMPLE_DATASET_ID, - // This route has two possible response types so - // we are manually specifying - })) as SearchResponseBody; - - console.log(searchResult.chunks); -}; - -main(); diff --git a/examples/ts/src/trieve.ts b/examples/ts/src/trieve.ts deleted file mode 100644 index cb109ed40..000000000 --- a/examples/ts/src/trieve.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Trieve } from "trieve-fetch-client"; - -export const trieve = new Trieve({ - apiKey: "admin", - baseUrl: "http://localhost:8090", - debug: false, -}); - -export const EXAMPLE_DATASET_ID = "6e15c9ff-037b-4559-ad25-bbb17aaf51d2"; diff --git a/examples/ts/tsconfig.json b/examples/ts/tsconfig.json deleted file mode 100644 index 867f10bd8..000000000 --- a/examples/ts/tsconfig.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -} diff --git a/frontends/analytics/Dockerfile b/frontends/analytics/Dockerfile index 5e33a4833..2219b817c 100644 --- a/frontends/analytics/Dockerfile +++ b/frontends/analytics/Dockerfile @@ -7,7 +7,7 @@ COPY yarn.lock ./ COPY turbo.json . COPY frontends ./frontends -COPY clients/fetch-client ./clients/fetch-client +COPY clients/ts-sdk ./clients/ts-sdk RUN yarn install RUN yarn run build --filter analytics diff --git a/frontends/analytics/package.json b/frontends/analytics/package.json index 9e5b722e5..c4f248cc1 100644 --- a/frontends/analytics/package.json +++ b/frontends/analytics/package.json @@ -28,7 +28,7 @@ "solid-js": "^1.8.17", "tailwind-gradient-mask-image": "^1.2.0", "tailwind-scrollbar": "^3.1.0", - "trieve-fetch-client": "*", + "trieve-ts-sdk": "file:../../clients/ts-sdk", "yarn": "^1.22.22", "zod": "^3.23.8" }, diff --git a/frontends/analytics/src/api/trieve.ts b/frontends/analytics/src/api/trieve.ts deleted file mode 100644 index a15b1f746..000000000 --- a/frontends/analytics/src/api/trieve.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Trieve } from "trieve-fetch-client"; - -export const trieve = new Trieve({ - baseUrl: import.meta.env.VITE_API_HOST as string, -}); diff --git a/frontends/chat/Dockerfile b/frontends/chat/Dockerfile index c2ffbc74c..c105a505e 100644 --- a/frontends/chat/Dockerfile +++ b/frontends/chat/Dockerfile @@ -7,7 +7,7 @@ COPY yarn.lock ./ COPY turbo.json . COPY frontends ./frontends -COPY clients/fetch-client ./clients/fetch-client +COPY clients/ts-sdk ./clients/ts-sdk RUN yarn install RUN yarn run build --filter chat diff --git a/frontends/chat/package.json b/frontends/chat/package.json index ca2544c0d..49f0fbe00 100644 --- a/frontends/chat/package.json +++ b/frontends/chat/package.json @@ -30,7 +30,7 @@ "tailwind-gradient-mask-image": "^1.2.0", "tailwind-scrollbar": "^3.1.0", "terracotta": "^1.0.3", - "trieve-fetch-client": "*" + "trieve-ts-sdk": "file:../../clients/ts-sdk" }, "devDependencies": { "config": "*", diff --git a/frontends/chat/src/utils/trieve.ts b/frontends/chat/src/utils/trieve.ts deleted file mode 100644 index a15b1f746..000000000 --- a/frontends/chat/src/utils/trieve.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Trieve } from "trieve-fetch-client"; - -export const trieve = new Trieve({ - baseUrl: import.meta.env.VITE_API_HOST as string, -}); diff --git a/frontends/dashboard/Dockerfile b/frontends/dashboard/Dockerfile index 7531fc799..129663436 100644 --- a/frontends/dashboard/Dockerfile +++ b/frontends/dashboard/Dockerfile @@ -7,7 +7,7 @@ COPY yarn.lock ./ COPY turbo.json . COPY frontends ./frontends -COPY clients/fetch-client ./clients/fetch-client +COPY clients/ts-sdk ./clients/ts-sdk RUN yarn install RUN yarn run build --filter dashboard diff --git a/frontends/dashboard/package.json b/frontends/dashboard/package.json index c6797a22e..913cbd183 100644 --- a/frontends/dashboard/package.json +++ b/frontends/dashboard/package.json @@ -21,7 +21,7 @@ "solid-icons": "^1.1.0", "solid-js": "^1.8.11", "terracotta": "^1.0.3", - "trieve-fetch-client": "*", + "trieve-ts-sdk": "file:../../clients/ts-sdk", "vite-plugin-runtime-env": "^0.1.1" }, "devDependencies": { diff --git a/frontends/dashboard/src/api/trieve.ts b/frontends/dashboard/src/api/trieve.ts deleted file mode 100644 index a15b1f746..000000000 --- a/frontends/dashboard/src/api/trieve.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Trieve } from "trieve-fetch-client"; - -export const trieve = new Trieve({ - baseUrl: import.meta.env.VITE_API_HOST as string, -}); diff --git a/frontends/search/Dockerfile b/frontends/search/Dockerfile index 52734da8b..6443daffc 100644 --- a/frontends/search/Dockerfile +++ b/frontends/search/Dockerfile @@ -7,7 +7,7 @@ COPY yarn.lock ./ COPY turbo.json . COPY frontends ./frontends -COPY clients/fetch-client ./clients/fetch-client +COPY clients/ts-sdk ./clients/ts-sdk RUN yarn install RUN yarn run build --filter search diff --git a/frontends/search/eslint_report.json b/frontends/search/eslint_report.json new file mode 100644 index 000000000..9e1bf75ee --- /dev/null +++ b/frontends/search/eslint_report.json @@ -0,0 +1 @@ +[{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/HomeSearch.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Atoms/AfMessage.tsx","messages":[],"suppressedMessages":[{"ruleId":"solid/no-innerhtml","severity":2,"message":"The innerHTML attribute is dangerous; passing unsanitized input can lead to security vulnerabilities.","line":54,"column":19,"nodeType":"JSXAttribute","messageId":"dangerous","endLine":54,"endColumn":71,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Atoms/ComboboxChecklist.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Atoms/ConfirmModal.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Atoms/DatePicker.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Atoms/FullScreenModal.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Atoms/InputRowsForm.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Atoms/Navbar.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Atoms/PaginationController.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/BookmarkPopover.tsx","messages":[{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":241,"column":11,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":241,"endColumn":17},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":241,"column":19,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":241,"endColumn":27}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import {\n For,\n Setter,\n Show,\n createEffect,\n createSignal,\n useContext,\n} from \"solid-js\";\nimport {\n Menu,\n MenuItem,\n Popover,\n PopoverButton,\n PopoverPanel,\n} from \"solid-headless\";\nimport { RiSystemAddFill } from \"solid-icons/ri\";\nimport {\n isChunkGroupPageDTO,\n type ChunkBookmarksDTO,\n type ChunkGroupDTO,\n type ChunkMetadata,\n} from \"../utils/apiTypes\";\nimport InputRowsForm from \"./Atoms/InputRowsForm\";\nimport { BiRegularChevronLeft, BiRegularChevronRight } from \"solid-icons/bi\";\nimport { DatasetAndUserContext } from \"./Contexts/DatasetAndUserContext\";\nimport { AiOutlineGroup } from \"solid-icons/ai\";\nimport { Tooltip } from \"shared/ui\";\n\nexport interface BookmarkPopoverProps {\n chunkMetadata: ChunkMetadata;\n chunkGroups: ChunkGroupDTO[];\n totalGroupPages: number;\n setLoginModal?: Setter;\n bookmarks: ChunkBookmarksDTO[];\n setChunkGroups?: Setter;\n}\n\nconst BookmarkPopover = (props: BookmarkPopoverProps) => {\n const apiHost = import.meta.env.VITE_API_HOST as string;\n const datasetAndUserContext = useContext(DatasetAndUserContext);\n const $currentUser = datasetAndUserContext.user;\n const $dataset = datasetAndUserContext.currentDataset;\n\n const [refetchingChunkGroups, setRefetchingChunkGroups] = createSignal(false);\n const [refetchingBookmarks, setRefetchingBookmarks] = createSignal(false);\n const [showGroupForm, setShowGroupForm] = createSignal(false);\n const [notLoggedIn, setNotLoggedIn] = createSignal(false);\n const [groupFormTitle, setGroupFormTitle] = createSignal(\"\");\n const [usingPanel, setUsingPanel] = createSignal(false);\n const [bookmarks, setBookmarks] = createSignal([]);\n const [localGroupPage, setLocalGroupPage] = createSignal(1);\n const [localChunkGroups, setLocalChunkGroups] = createSignal(\n [],\n );\n\n createEffect(() => {\n const groupsToAdd: ChunkGroupDTO[] = [];\n props.bookmarks.forEach((b) => {\n b.slim_groups.forEach((c) => {\n groupsToAdd.push({\n id: c.id,\n name: c.name,\n description: \"\",\n created_at: \"\",\n updated_at: \"\",\n });\n });\n });\n\n setBookmarks(props.bookmarks);\n setLocalChunkGroups([...groupsToAdd, ...props.chunkGroups]);\n });\n\n createEffect((prevPage) => {\n const curPage = localGroupPage();\n if (curPage == prevPage) {\n return curPage;\n }\n\n const chunkBookmarks = bookmarks();\n const setChunkGroups = props.setChunkGroups;\n refetchGroups(curPage, chunkBookmarks, setChunkGroups);\n\n return curPage;\n }, 1);\n\n createEffect(() => {\n if ($currentUser?.()?.id === undefined) {\n return;\n }\n if (!refetchingChunkGroups()) {\n return;\n }\n\n const curPage = localGroupPage();\n const chunkBookmarks = bookmarks();\n const setChunkGroups = props.setChunkGroups;\n refetchGroups(curPage, chunkBookmarks, setChunkGroups);\n setRefetchingChunkGroups(false);\n });\n\n createEffect(() => {\n if ($currentUser?.()?.id === undefined) {\n return;\n }\n if (!refetchingBookmarks()) {\n return;\n }\n\n const curGroupPage = localGroupPage();\n refetchBookmarks(curGroupPage);\n setRefetchingBookmarks(false);\n });\n\n const refetchGroups = (\n curPage: number,\n chunkBookmarks: ChunkBookmarksDTO[],\n setChunkGroups: Setter | undefined,\n ) => {\n const currentDataset = $dataset?.();\n if (!currentDataset) return;\n\n void fetch(\n `${apiHost}/dataset/groups/${\n currentDataset.dataset.id\n }/${localGroupPage()}`,\n {\n method: \"GET\",\n headers: {\n \"X-API-version\": \"2.0\",\n \"TR-Dataset\": currentDataset.dataset.id,\n },\n credentials: \"include\",\n },\n ).then((response) => {\n if (!setChunkGroups) return;\n\n if (response.ok) {\n void response.json().then((data) => {\n if (isChunkGroupPageDTO(data)) {\n if (curPage !== 1) {\n setLocalChunkGroups(data.groups);\n return;\n }\n\n const groupsToAdd: ChunkGroupDTO[] = [];\n\n chunkBookmarks.forEach((chunkBookmark) => {\n chunkBookmark.slim_groups.forEach((group) => {\n const chunkGroup: ChunkGroupDTO = {\n id: group.id,\n name: group.name,\n description: \"\",\n created_at: \"\",\n updated_at: \"\",\n };\n\n groupsToAdd.push(chunkGroup);\n });\n });\n\n const deDupedPrev = data.groups.filter((group) => {\n return (\n groupsToAdd.find((groupToAdd) => groupToAdd.id == group.id) ==\n undefined\n );\n });\n\n const updatedGroups = [...groupsToAdd, ...deDupedPrev];\n setLocalChunkGroups(updatedGroups);\n setChunkGroups(updatedGroups);\n }\n });\n }\n\n if (response.status == 401) {\n setNotLoggedIn(true);\n }\n });\n };\n\n const refetchBookmarks = (curPage: number) => {\n const currentDataset = $dataset?.();\n if (!currentDataset) return;\n\n void fetch(`${apiHost}/chunk_group/chunks`, {\n method: \"POST\",\n credentials: \"include\",\n headers: {\n \"X-API-version\": \"2.0\",\n \"Content-Type\": \"application/json\",\n \"TR-Dataset\": currentDataset.dataset.id,\n },\n body: JSON.stringify({\n chunk_ids: [props.chunkMetadata.id],\n }),\n }).then((response) => {\n if (response.ok) {\n void response.json().then((data) => {\n const chunkBookmarks = data as ChunkBookmarksDTO[];\n\n setBookmarks(chunkBookmarks);\n\n if (curPage !== 1) {\n return;\n }\n\n const groupsToAdd: ChunkGroupDTO[] = [];\n\n chunkBookmarks.forEach((chunkBookmark) => {\n chunkBookmark.slim_groups.forEach((group) => {\n const chunkGroup: ChunkGroupDTO = {\n id: group.id,\n name: group.name,\n description: \"\",\n created_at: \"\",\n updated_at: \"\",\n };\n\n groupsToAdd.push(chunkGroup);\n });\n });\n\n setLocalChunkGroups((prev) => {\n const deDupedPrev = prev.filter((group) => {\n return (\n groupsToAdd.find((groupToAdd) => groupToAdd.id == group.id) ==\n undefined\n );\n });\n\n return [...groupsToAdd, ...deDupedPrev];\n });\n });\n }\n });\n };\n\n return (\n \n {({ isOpen, setState }) => (\n
\n
\n {\n if (notLoggedIn() || $currentUser?.()?.id === undefined) {\n props.setLoginModal?.(true);\n return;\n }\n refetchBookmarks(localGroupPage());\n }}\n >\n \n \n }\n tooltipText=\"Manage Groups For This Chunk\"\n direction=\"left\"\n />\n
\n \n setUsingPanel(true)}\n onMouseLeave={() => setUsingPanel(false)}\n onClick={() => setState(true)}\n >\n \n
\n Manage Groups For This Chunk\n
\n \n
\n \n {(group, idx) => {\n return (\n <>\n \n
\n \n
\n \n {group.name}\n \n\n \n bookmark.slim_groups\n .map((slimGroup) => slimGroup.id)\n .includes(group.id),\n )\n ? true\n : false\n }\n onChange={(e) => {\n const currentDataset = $dataset?.();\n if (!currentDataset) return;\n void fetch(\n `${apiHost}/chunk_group/chunk/${group.id}`,\n {\n method: e.currentTarget.checked\n ? \"POST\"\n : \"DELETE\",\n headers: {\n \"X-API-version\": \"2.0\",\n \"Content-Type\": \"application/json\",\n \"TR-Dataset\": currentDataset.dataset.id,\n },\n body: JSON.stringify({\n chunk_id: props.chunkMetadata.id,\n }),\n credentials: \"include\",\n },\n ).then((response) => {\n if (!response.ok) {\n e.currentTarget.checked =\n !e.currentTarget.checked;\n }\n setRefetchingBookmarks(true);\n });\n setState(true);\n }}\n class=\"h-4 w-4 cursor-pointer rounded-sm border-gray-300 bg-neutral-500 accent-turquoise focus:ring-neutral-200 dark:border-neutral-700 dark:focus:ring-neutral-600\"\n />\n
\n \n );\n }}\n \n
\n
\n
\n
\n {localGroupPage()} /{\" \"}\n {props.totalGroupPages == 0 ? 1 : props.totalGroupPages}\n
\n {\n setState(true);\n setLocalGroupPage((prev) => prev - 1);\n }}\n >\n \n \n {\n setState(true);\n setLocalGroupPage((prev) => prev + 1);\n }}\n >\n \n \n
\n
\n
\n \n
\n
Create New Group
\n
\n {\n const title = groupFormTitle();\n if (title.trim() == \"\") return;\n const currentDataset = $dataset?.();\n if (!currentDataset) return;\n void fetch(`${apiHost}/chunk_group`, {\n method: \"POST\",\n headers: {\n \"X-API-version\": \"2.0\",\n \"Content-Type\": \"application/json\",\n \"TR-Dataset\": currentDataset.dataset.id,\n },\n credentials: \"include\",\n body: JSON.stringify({\n name: title,\n description: \"\",\n }),\n }).then(() => {\n setRefetchingChunkGroups(true);\n setShowGroupForm(false);\n setGroupFormTitle(\"\");\n setState(true);\n });\n }}\n onCancel={() => {\n setShowGroupForm(false);\n setState(true);\n }}\n inputGroups={[\n {\n label: \"Title\",\n inputValue: groupFormTitle,\n setInputValue: setGroupFormTitle,\n },\n ]}\n />\n
\n
\n
\n {!showGroupForm() && (\n
\n {\n setShowGroupForm(true);\n setState(true);\n }}\n class=\"flex w-full items-center justify-center rounded-full border border-green-500 bg-transparent px-2 text-lg text-green-500\"\n >\n \n

Create New Group

\n \n
\n )}\n
\n \n \n
\n )}\n
\n );\n};\n\nexport default BookmarkPopover;\n","usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/ChatPopup.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/ChunkMetadataDisplay.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":278,"column":29,"nodeType":"MemberExpression","messageId":"anyAssignment","endLine":278,"endColumn":63,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":278,"column":54,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":278,"endColumn":57,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[10459,10462],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[10459,10462],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [key] on an `any` value.","line":278,"column":59,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":278,"endColumn":62,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":292,"column":58,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":292,"endColumn":61,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[11292,11295],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[11292,11295],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [key] on an `any` value.","line":292,"column":63,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":292,"endColumn":66,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"solid/no-innerhtml","severity":2,"message":"The innerHTML attribute is dangerous; passing unsanitized input can lead to security vulnerabilities.","line":314,"column":13,"nodeType":"JSXAttribute","messageId":"dangerous","endLine":320,"endColumn":15,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":355,"column":53,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":355,"endColumn":56,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[14068,14071],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[14068,14071],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [metadataKey] on an `any` value.","line":355,"column":58,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":355,"endColumn":69,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":359,"column":52,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":359,"endColumn":55,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[14343,14346],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[14343,14346],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [metadataKey] on an `any` value.","line":359,"column":57,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":359,"endColumn":68,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":362,"column":50,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":362,"endColumn":53,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[14568,14571],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[14568,14571],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [metadataKey] on an `any` value.","line":362,"column":55,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":362,"endColumn":66,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Contexts/DatasetAndUserContext.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/CreateNewDocChunkForm.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":29,"column":48,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":29,"endColumn":51,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1187,1190],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1187,1190],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":80,"column":7,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":80,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":80,"column":18,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":80,"endColumn":21,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3232,3235],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3232,3235],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .tinymce on an `any` value.","line":80,"column":23,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":80,"endColumn":30,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":88,"column":24,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":88,"endColumn":27,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3430,3433],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3430,3433],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .location on an `any` value.","line":97,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":97,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":105,"column":7,"nodeType":"AssignmentExpression","messageId":"anyAssignment","endLine":105,"endColumn":40,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .metadata on an `any` value.","line":105,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":105,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .fulltext_boost on an `any` value.","line":109,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":109,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .semantic_boost on an `any` value.","line":116,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":116,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .num_value on an `any` value.","line":123,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":123,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .time_stamp on an `any` value.","line":128,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":128,"endColumn":29,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .tracking_id on an `any` value.","line":132,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":132,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .semantic_content on an `any` value.","line":136,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":136,"endColumn":35,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/DatasetSelectBox.tsx","messages":[{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":55,"column":13,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":55,"endColumn":19},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":55,"column":21,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":55,"endColumn":29}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import { FaSolidCheck } from \"solid-icons/fa\";\nimport {\n Show,\n For,\n createMemo,\n useContext,\n Switch,\n Match,\n createSignal,\n createEffect,\n} from \"solid-js\";\nimport {\n Menu,\n MenuItem,\n Popover,\n PopoverButton,\n PopoverPanel,\n} from \"solid-headless\";\nimport { DatasetAndUserContext } from \"./Contexts/DatasetAndUserContext\";\nimport { FiChevronDown, FiChevronUp } from \"solid-icons/fi\";\nimport { DatasetAndUsageDTO } from \"../utils/apiTypes\";\nimport createFuzzySearch from \"@nozbe/microfuzz\";\n\nexport const DatasetSelectBox = () => {\n const datasetAndUserContext = useContext(DatasetAndUserContext);\n\n const [datasetSearchQuery, setDatasetSearchQuery] = createSignal(\"\");\n\n const $datasetsAndUsages = datasetAndUserContext.datasetsAndUsages;\n const $currentDataset = datasetAndUserContext.currentDataset;\n\n const datasetList = createMemo(() => $datasetsAndUsages?.());\n const [datasetSearchResults, setDatasetSearchResults] = createSignal<\n DatasetAndUsageDTO[]\n >([]);\n\n createEffect(() => {\n const datasetListOrEmpty = datasetList() ?? [];\n if (datasetSearchQuery() === \"\") {\n setDatasetSearchResults(datasetListOrEmpty);\n } else {\n const fuzzy = createFuzzySearch(datasetListOrEmpty, {\n getText: (item: DatasetAndUsageDTO) => {\n return [item.dataset.name];\n },\n });\n const results = fuzzy(datasetSearchQuery() ?? \"\");\n setDatasetSearchResults(results.map((result) => result.item));\n }\n });\n\n return (\n \n \n {({ isOpen, setState }) => (\n <>\n \n \n {$currentDataset?.()?.dataset.name}\n \n \n \n \n \n \n \n \n \n \n \n \n \n 5}>\n {\n setDatasetSearchQuery(e.target.value);\n }}\n value={datasetSearchQuery()}\n />\n \n\n \n {(datasetItem) => {\n return (\n {\n e.preventDefault();\n e.stopPropagation();\n datasetAndUserContext.setCurrentDataset(\n datasetItem,\n );\n setState(false);\n }}\n >\n
\n {datasetItem.dataset.name}\n
\n \n \n \n \n \n \n );\n }}\n
\n
\n \n
\n \n )}\n
\n
\n );\n};\n","usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/EditChunkPageForm.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":103,"column":11,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":103,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .forEach on an `any` value.","line":103,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":103,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":103,"column":60,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":103,"endColumn":63,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3799,3802],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3799,3802],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-argument","severity":2,"message":"Unsafe argument of type `any` assigned to a parameter of type `string`.","line":105,"column":33,"nodeType":"MemberExpression","messageId":"unsafeArgument","endLine":105,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .id on an `any` value.","line":105,"column":39,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":105,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":135,"column":7,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":135,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":135,"column":18,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":135,"endColumn":21,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[4727,4730],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[4727,4730],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .tinymce on an `any` value.","line":135,"column":23,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":135,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":148,"column":24,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":148,"endColumn":27,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[5028,5031],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[5028,5031],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .location on an `any` value.","line":162,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":162,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .fulltext_boost on an `any` value.","line":169,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":169,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .semantic_boost on an `any` value.","line":176,"column":19,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":176,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/FilterModal.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/Footer.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/GroupPage.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":162,"column":13,"nodeType":"Property","messageId":"anyAssignment","endLine":162,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .message on an `any` value.","line":162,"column":27,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":162,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .id on an `any` value.","line":283,"column":32,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":283,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .total_pages on an `any` value.","line":284,"column":34,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":284,"endColumn":45,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .chunks on an `any` value.","line":285,"column":48,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":285,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":427,"column":21,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":427,"endColumn":24,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[13452,13455],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[13452,13455],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .results on an `any` value.","line":459,"column":36,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":459,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .chunks on an `any` value.","line":471,"column":36,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":471,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/ImageModal.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .signed_url on an `any` value.","line":54,"column":34,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":54,"endColumn":44,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"solid/reactivity","severity":1,"message":"The reactive variable 'i' should be used within JSX, a tracked scope (like createEffect), or inside an event handler function, or else changes will be ignored.","line":84,"column":64,"nodeType":"CallExpression","messageId":"untrackedReactive","endLine":84,"endColumn":67,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/OrgGroupPageView.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/OrganizationSelectBox.tsx","messages":[{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":24,"column":15,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":24,"endColumn":21},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":24,"column":23,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":24,"endColumn":31}],"suppressedMessages":[],"errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import { Show, For, createMemo, useContext, Switch, Match } from \"solid-js\";\nimport {\n Menu,\n MenuItem,\n Popover,\n PopoverButton,\n PopoverPanel,\n} from \"solid-headless\";\nimport { FaSolidCheck } from \"solid-icons/fa\";\nimport { DatasetAndUserContext } from \"./Contexts/DatasetAndUserContext\";\nimport { FiChevronDown, FiChevronUp } from \"solid-icons/fi\";\n\nexport const OrganizationSelectBox = () => {\n const datasetAndUserContext = useContext(DatasetAndUserContext);\n\n const $organizations = datasetAndUserContext.organizations;\n const organizationsList = createMemo(() => $organizations?.());\n const $currentOrganization = datasetAndUserContext.currentOrganization;\n\n return (\n
\n
\n \n {({ isOpen, setState }) => (\n <>\n \n \n {$currentOrganization?.()?.name}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {(organizationItem) => {\n const onClick = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n datasetAndUserContext.setCurrentOrganization(\n organizationItem,\n );\n setState(false);\n };\n return (\n \n
\n \n {organizationItem.name}\n \n
\n {organizationItem.id ==\n $currentOrganization?.()?.id && (\n \n \n \n )}\n \n );\n }}\n
\n
\n \n
\n \n )}\n
\n
\n
\n );\n};\n","usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/ResultsPage.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .groups on an `any` value.","line":126,"column":36,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":126,"endColumn":42,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .total_pages on an `any` value.","line":128,"column":40,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":128,"endColumn":51,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":160,"column":13,"nodeType":"Property","messageId":"anyAssignment","endLine":160,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .message on an `any` value.","line":160,"column":27,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":160,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":271,"column":26,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":271,"endColumn":29,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[8249,8252],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[8249,8252],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [\"sort_by\"] on an `any` value.","line":313,"column":23,"nodeType":"Literal","messageId":"unsafeMemberExpression","endLine":313,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [\"extend_results\"] on an `any` value.","line":324,"column":23,"nodeType":"Literal","messageId":"unsafeMemberExpression","endLine":324,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":350,"column":34,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":350,"endColumn":37,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[11174,11177],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[11174,11177],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .results on an `any` value.","line":352,"column":40,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":352,"endColumn":47,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .total_pages on an `any` value.","line":353,"column":34,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":353,"endColumn":45,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .id on an `any` value.","line":354,"column":32,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":354,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":361,"column":15,"nodeType":"AssignmentExpression","messageId":"anyAssignment","endLine":361,"endColumn":44,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .chunks on an `any` value.","line":361,"column":38,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":361,"endColumn":44,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":362,"column":15,"nodeType":"AssignmentExpression","messageId":"anyAssignment","endLine":371,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":362,"column":33,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":362,"endColumn":52,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .map on an `any` value.","line":362,"column":49,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":362,"endColumn":52,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":362,"column":61,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":362,"endColumn":64,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[11682,11685],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[11682,11685],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-argument","severity":2,"message":"Unsafe argument of type `any` assigned to a parameter of type `{}`.","line":363,"column":34,"nodeType":"Identifier","messageId":"unsafeArgument","endLine":363,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":365,"column":21,"nodeType":"Property","messageId":"anyAssignment","endLine":365,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-return","severity":2,"message":"Unsafe return of an `any` typed value.","line":369,"column":19,"nodeType":"ReturnStatement","messageId":"unsafeReturn","endLine":369,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .id on an `any` value.","line":372,"column":32,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":372,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .total_pages on an `any` value.","line":374,"column":34,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":374,"endColumn":45,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .length on an `any` value.","line":377,"column":33,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":377,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":399,"column":17,"nodeType":"Property","messageId":"anyAssignment","endLine":399,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .message on an `any` value.","line":399,"column":31,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":399,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/ScoreChunk.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":158,"column":42,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":158,"endColumn":45,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[4743,4746],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[4743,4746],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":169,"column":21,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":169,"endColumn":24,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[5111,5114],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[5111,5114],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":173,"column":21,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":173,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .toString on an `any` value.","line":173,"column":26,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":173,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-argument","severity":2,"message":"Unsafe argument of type `any` assigned to a parameter of type `{}`.","line":188,"column":34,"nodeType":"Identifier","messageId":"unsafeArgument","endLine":188,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [subKey] on an `any` value.","line":196,"column":51,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":196,"endColumn":57,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-return","severity":2,"message":"Unsafe return of an `any` typed value.","line":205,"column":7,"nodeType":"ReturnStatement","messageId":"unsafeReturn","endLine":205,"endColumn":80,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":205,"column":54,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":205,"endColumn":68,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .toString on an `any` value.","line":205,"column":60,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":205,"endColumn":68,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":414,"column":52,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":414,"endColumn":55,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[14881,14884],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[14881,14884],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [key] on an `any` value.","line":414,"column":57,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":414,"endColumn":60,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"solid/no-innerhtml","severity":2,"message":"The innerHTML attribute is dangerous; passing unsanitized input can lead to security vulnerabilities.","line":448,"column":13,"nodeType":"JSXAttribute","messageId":"dangerous","endLine":453,"endColumn":15,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":488,"column":53,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":488,"endColumn":56,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[18216,18219],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[18216,18219],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [metadataKey] on an `any` value.","line":488,"column":58,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":488,"endColumn":69,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":492,"column":52,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":492,"endColumn":55,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[18491,18494],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[18491,18494],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [metadataKey] on an `any` value.","line":492,"column":57,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":492,"endColumn":68,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":495,"column":50,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":495,"endColumn":53,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[18716,18719],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[18716,18719],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access [metadataKey] on an `any` value.","line":495,"column":55,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":495,"endColumn":66,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/SearchForm.tsx","messages":[{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":487,"column":19,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":487,"endColumn":25},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":487,"column":27,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":487,"endColumn":35},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":729,"column":19,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":729,"endColumn":25},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":729,"column":27,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":729,"endColumn":35},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":814,"column":19,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":814,"endColumn":25},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":814,"column":27,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":814,"endColumn":35},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":889,"column":19,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":889,"endColumn":25},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":889,"column":27,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":889,"endColumn":35},{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":1011,"column":19,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":1011,"endColumn":25}],"suppressedMessages":[{"ruleId":"solid/reactivity","severity":1,"message":"The reactive variable 'props.search.state' should be used within JSX, a tracked scope (like createEffect), or inside an event handler function, or else changes will be ignored.","line":47,"column":5,"nodeType":"MemberExpression","messageId":"untrackedReactive","endLine":47,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"solid/reactivity","severity":1,"message":"The reactive variable 'tempSearchValues' should be used within JSX, a tracked scope (like createEffect), or inside an event handler function, or else changes will be ignored.","line":52,"column":5,"nodeType":"CallExpression","messageId":"untrackedReactive","endLine":52,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"solid/reactivity","severity":1,"message":"The reactive variable 'tempSearchValues' should be used within JSX, a tracked scope (like createEffect), or inside an event handler function, or else changes will be ignored.","line":56,"column":5,"nodeType":"CallExpression","messageId":"untrackedReactive","endLine":56,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"solid/reactivity","severity":1,"message":"The reactive variable 'tempSearchValues' should be used within JSX, a tracked scope (like createEffect), or inside an event handler function, or else changes will be ignored.","line":60,"column":5,"nodeType":"CallExpression","messageId":"untrackedReactive","endLine":60,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"solid/reactivity","severity":1,"message":"The reactive variable 'tempSearchValues' should be used within JSX, a tracked scope (like createEffect), or inside an event handler function, or else changes will be ignored.","line":64,"column":5,"nodeType":"CallExpression","messageId":"untrackedReactive","endLine":64,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":9,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { BiRegularSearch, BiRegularX } from \"solid-icons/bi\";\nimport {\n For,\n Match,\n Setter,\n Show,\n Switch,\n createEffect,\n createMemo,\n createSignal,\n} from \"solid-js\";\nimport {\n Menu,\n MenuItem,\n Popover,\n PopoverButton,\n PopoverPanel,\n} from \"solid-headless\";\nimport { FaRegularFlag, FaSolidCheck } from \"solid-icons/fa\";\nimport { Filter, FilterItem } from \"./FilterModal\";\nimport { FiChevronDown, FiChevronUp } from \"solid-icons/fi\";\nimport {\n HighlightStrategy,\n isSortByField,\n isSortBySearchType,\n SearchOptions,\n SearchStore,\n} from \"../hooks/useSearch\";\nimport { Tooltip } from \"shared/ui\";\nimport { BsQuestionCircle } from \"solid-icons/bs\";\nimport { AiOutlinePlus } from \"solid-icons/ai\";\n\nconst defaultFilter = {\n field: \"\",\n};\n\nconst SearchForm = (props: {\n search: SearchStore;\n groupID?: string;\n openRateQueryModal: Setter;\n}) => {\n const bm25Active = import.meta.env.VITE_BM25_ACTIVE as unknown as string;\n const [tempSearchValues, setTempSearchValues] = createSignal(\n // eslint-disable-next-line solid/reactivity\n props.search.state,\n );\n const [tempFilterType, setTempFilterType] = createSignal(\"must\");\n const [mustFilters, setMustFilters] = createSignal(\n // eslint-disable-next-line solid/reactivity\n tempSearchValues().filters?.must ?? [],\n );\n const [mustNotFilters, setMustNotFilters] = createSignal(\n // eslint-disable-next-line solid/reactivity\n tempSearchValues().filters?.must_not ?? [],\n );\n const [shouldFilters, setShouldFilters] = createSignal(\n // eslint-disable-next-line solid/reactivity\n tempSearchValues().filters?.should ?? [],\n );\n const [jsonbPrefilter, setJsonbPrefilter] = createSignal(\n // eslint-disable-next-line solid/reactivity\n tempSearchValues().filters?.jsonb_prefilter ?? true,\n );\n const [rerankQuery, setRerankQuery] = createSignal(\"\");\n\n const saveFilters = (setShowFilterModal: (filter: boolean) => void) => {\n const filters = {\n must: mustFilters(),\n must_not: mustNotFilters(),\n should: shouldFilters(),\n jsonb_prefilter: jsonbPrefilter(),\n };\n props.search.setSearch(\"filters\", filters);\n setShowFilterModal(false);\n };\n\n const default_settings = [\n { name: \"Hybrid\", isSelected: false, route: \"hybrid\" },\n {\n name: \"FullText\",\n isSelected: false,\n route: \"fulltext\",\n },\n {\n name: \"Semantic\",\n isSelected: false,\n route: \"semantic\",\n },\n {\n name: \"AutoComplete Semantic\",\n isSelected: false,\n route: \"autocomplete-semantic\",\n },\n {\n name: \"AutoComplete FullText\",\n isSelected: false,\n route: \"autocomplete-fulltext\",\n },\n ];\n\n if (bm25Active) {\n default_settings.push({\n name: \"AutoComplete BM25\",\n isSelected: false,\n route: \"autocomplete-bm25\",\n });\n default_settings.push({ name: \"BM25\", isSelected: false, route: \"BM25\" });\n }\n\n const [searchTypes, setSearchTypes] = createSignal(default_settings);\n const [sortTypes, setSortTypes] = createSignal([\n {\n name: \"Timestamp\",\n isSelected: false,\n value: \"time_stamp\",\n },\n {\n name: \"Num Value\",\n isSelected: false,\n value: \"num_value\",\n },\n ]);\n\n const defaultRerankTypes = [\n {\n name: \"Semantic\",\n isSelected: false,\n value: \"semantic\",\n },\n {\n name: \"FullText\",\n isSelected: false,\n value: \"fulltext\",\n },\n {\n name: \"Cross Encoder\",\n isSelected: false,\n value: \"cross_encoder\",\n },\n ];\n\n if (bm25Active) {\n defaultRerankTypes.push({\n name: \"BM25\",\n isSelected: false,\n value: \"bm25\",\n });\n }\n const [rerankTypes, setRerankTypes] = createSignal(defaultRerankTypes);\n\n createEffect(() => {\n setSearchTypes((prev) => {\n return prev.map((type) => {\n if (type.route === props.search.state.searchType) {\n return { ...type, isSelected: true };\n } else {\n return { ...type, isSelected: false };\n }\n });\n });\n });\n\n createEffect(() => {\n setSortTypes((prev) => {\n return prev.map((type) => {\n if (isSortByField(props.search.state.sort_by)) {\n if (type.value === props.search.state.sort_by.field) {\n return { ...type, isSelected: true };\n } else {\n return { ...type, isSelected: false };\n }\n } else {\n return { ...type, isSelected: false };\n }\n });\n });\n });\n\n createEffect(() => {\n setRerankTypes((prev) => {\n return prev.map((type) => {\n if (isSortBySearchType(props.search.state.sort_by)) {\n if (type.value === props.search.state.sort_by.rerank_type) {\n return { ...type, isSelected: true };\n } else {\n return { ...type, isSelected: false };\n }\n } else {\n return { ...type, isSelected: false };\n }\n });\n });\n setRerankQuery(() => {\n if (isSortBySearchType(props.search.state.sort_by)) {\n return props.search.state.sort_by.rerank_query ?? \"\";\n } else {\n return \"\";\n }\n });\n });\n\n createEffect(() => {\n props.search.setSearch(\n \"searchType\",\n searchTypes().find((type) => type.isSelected)?.route ?? \"hybrid\",\n );\n });\n\n createEffect(() => {\n props.search.setSearch(\"sort_by\", {\n field: sortTypes().find((type) => type.isSelected)?.value,\n });\n });\n\n createEffect(() => {\n props.search.setSearch(\"sort_by\", {\n rerank_type: rerankTypes().find((type) => type.isSelected)?.value,\n rerank_query: rerankQuery() == \"\" ? undefined : rerankQuery(),\n });\n });\n\n const filtersLength = createMemo(() => {\n return (\n mustFilters().length + mustNotFilters().length + shouldFilters().length\n );\n });\n\n return (\n <>\n
\n
\n
\n \n \n \n {\n props.search.setSearch(\"query\", e.currentTarget.value);\n\n e.currentTarget.style.height = \"auto\";\n e.currentTarget.style.height =\n e.currentTarget.scrollHeight + \"px\";\n }}\n onKeyDown={(e) => {\n if (\n ((e.ctrlKey || e.metaKey) && e.key === \"Enter\") ||\n (!e.shiftKey && e.key === \"Enter\")\n ) {\n props.search.setSearch(\"version\", (prev) => prev + 1);\n e.preventDefault();\n e.stopPropagation();\n }\n }}\n placeholder=\"Search for chunks...\"\n rows={props.search.state.query.split(\"\\n\").length}\n />\n {\n e.preventDefault();\n props.search.setSearch(\"query\", \"\");\n }}\n >\n \n \n \n \n \n
\n \n 0}>\n
\n \n {(multiQuery, index) => (\n \n \n {\n props.search.setSearch(\n \"multiQueries\",\n props.search.state.multiQueries.map((query) => {\n if (query === multiQuery) {\n return {\n ...query,\n query: e.currentTarget.value,\n };\n } else {\n return query;\n }\n }),\n );\n\n const searchTextarea = document.getElementById(\n `search-query-textarea-${index()}`,\n );\n\n searchTextarea?.focus();\n setTimeout(() => {\n searchTextarea?.focus();\n }, 50);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 100);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 200);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 300);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 400);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 500);\n e.currentTarget.style.height = \"auto\";\n e.currentTarget.style.height =\n e.currentTarget.scrollHeight + \"px\";\n }}\n onKeyDown={(e) => {\n if (\n ((e.ctrlKey || e.metaKey) && e.key === \"Enter\") ||\n (!e.shiftKey && e.key === \"Enter\")\n ) {\n props.search.setSearch(\n \"version\",\n (prev) => prev + 1,\n );\n e.preventDefault();\n e.stopPropagation();\n }\n }}\n placeholder=\"Search for chunks...\"\n rows={props.search.state.query.split(\"\\n\").length}\n />\n {\n props.search.setSearch(\n \"multiQueries\",\n props.search.state.multiQueries.map((query) => {\n if (query === multiQuery) {\n return {\n ...query,\n weight: parseFloat(e.currentTarget.value),\n };\n } else {\n return query;\n }\n }),\n );\n\n const searchTextarea = document.getElementById(\n `search-query-weight-${index()}`,\n );\n\n searchTextarea?.focus();\n setTimeout(() => {\n searchTextarea?.focus();\n }, 50);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 100);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 200);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 300);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 400);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 500);\n e.currentTarget.style.height = \"auto\";\n e.currentTarget.style.height =\n e.currentTarget.scrollHeight + \"px\";\n }}\n onKeyDown={(e) => {\n if (\n ((e.ctrlKey || e.metaKey) && e.key === \"Enter\") ||\n (!e.shiftKey && e.key === \"Enter\")\n ) {\n props.search.setSearch(\n \"version\",\n (prev) => prev + 1,\n );\n e.preventDefault();\n e.stopPropagation();\n }\n }}\n placeholder=\"Add weight...\"\n />\n {\n e.preventDefault();\n props.search.setSearch(\n \"multiQueries\",\n props.search.state.multiQueries.filter(\n (query) => query !== multiQuery,\n ),\n );\n }}\n >\n \n \n
\n )}\n \n
\n \n \n 0}>\n
\n
\n {\n e.preventDefault();\n props.search.setSearch(\"multiQueries\", [\n ...props.search.state.multiQueries,\n {\n query: \"\",\n weight: 1,\n },\n ]);\n }}\n >\n \n Add Query\n \n
\n \n
\n {\n saveFilters(() => {});\n }}\n >\n {({ isOpen, setState }) => (\n <>\n \n 0,\n \"bg-neutral-100 text-neutral-500\":\n filtersLength() === 0,\n }}\n >\n {filtersLength()}\n
\n }\n tooltipText={`${filtersLength()} filter(s) applied`}\n />\n Filters\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {\n setTempFilterType(e.currentTarget.value);\n }}\n value={tempFilterType()}\n >\n \n {(filter_type) => {\n return (\n \n {filter_type}\n \n );\n }}\n \n \n {\n const curFilterType = tempFilterType();\n if (curFilterType === \"must\") {\n setMustFilters([\n ...mustFilters(),\n defaultFilter,\n ]);\n }\n if (curFilterType === \"must not\") {\n setMustNotFilters([\n ...mustNotFilters(),\n defaultFilter,\n ]);\n }\n if (curFilterType === \"should\") {\n setShouldFilters([\n ...shouldFilters(),\n defaultFilter,\n ]);\n }\n }}\n >\n + Add Filter\n \n
\n \n \n }\n tooltipText=\"Only uncheck if on the enterprise plan and you wish to use custom indices for metadata filters.\"\n />\n JSONB Prefilter:\n \n {\n setJsonbPrefilter(e.currentTarget.checked);\n }}\n checked={jsonbPrefilter()}\n />\n {\n setMustFilters([]);\n setMustNotFilters([]);\n setShouldFilters([]);\n }}\n >\n Reset Filters\n \n saveFilters(setState)}\n >\n Apply Filters\n \n
\n 0}>\n
\n must: [\n
\n \n {(filter, index) => {\n const onFilterChange = (\n newFilter: Filter,\n ) => {\n const newFilters = mustFilters();\n newFilters[index()] = newFilter;\n setMustFilters(newFilters);\n };\n\n return (\n \n \n
\n );\n }}\n \n
\n ]\n
\n \n 0}>\n
\n must not: [\n
\n \n {(filter, index) => {\n const onFilterChange = (\n newFilter: Filter,\n ) => {\n const newFilters = mustNotFilters();\n newFilters[index()] = newFilter;\n setMustNotFilters(newFilters);\n };\n\n return (\n \n \n
\n );\n }}\n \n
\n ]\n
\n
\n 0}>\n
\n should: [\n
\n \n {(filter, index) => {\n const onFilterChange = (\n newFilter: Filter,\n ) => {\n const newFilters = shouldFilters();\n newFilters[index()] = newFilter;\n setShouldFilters(newFilters);\n };\n\n return (\n \n \n
\n );\n }}\n \n
\n ]\n
\n
\n \n \n \n \n )}\n \n \n {({ isOpen, setState }) => (\n <>\n \n \n Type:{\" \"}\n {searchTypes().find((type) => type.isSelected)?.name ??\n \"Hybrid\"}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {(option) => {\n if (props.groupID && option.route === \"hybrid\") {\n return <>;\n }\n\n const onClick = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n setSearchTypes((prev) => {\n return prev.map((item) => {\n if (item.name === option.name) {\n return { ...item, isSelected: true };\n } else {\n return { ...item, isSelected: false };\n }\n });\n });\n setState(true);\n };\n return (\n type.isSelected,\n )?.name == undefined),\n }}\n onClick={onClick}\n >\n
\n {option.name}\n
\n {(option.isSelected ||\n (option.route == \"hybrid\" &&\n searchTypes().find(\n (type) => type.isSelected,\n )?.name == undefined)) && (\n \n \n \n )}\n \n );\n }}\n
\n
\n \n
\n \n )}\n
\n \n {({ isOpen, setState }) => (\n <>\n \n Sort\n \n \n \n \n \n \n \n \n \n \n \n \n \n {(option) => {\n const onClick = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n setSortTypes((prev) => {\n return prev.map((item) => {\n if (item.name === option.name) {\n return {\n ...item,\n isSelected: !item.isSelected,\n };\n } else {\n return {\n ...item,\n isSelected: false,\n };\n }\n });\n });\n setState(true);\n };\n return (\n \n
\n {option.name}\n
\n {option.isSelected && (\n \n \n \n )}\n \n );\n }}\n
\n
\n \n
\n \n )}\n
\n \n {({ isOpen, setState }) => (\n <>\n \n Rerank By\n \n \n \n \n \n \n \n \n \n \n \n \n {\n setRerankQuery(e.currentTarget.value);\n }}\n value={rerankQuery()}\n />\n \n {(option) => {\n const onClick = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n setRerankTypes((prev) => {\n return prev.map((item) => {\n if (item.name === option.name) {\n return {\n ...item,\n isSelected: !item.isSelected,\n };\n } else {\n return {\n ...item,\n isSelected: false,\n };\n }\n });\n });\n setState(true);\n };\n return (\n \n
\n {option.name}\n
\n {option.isSelected && (\n \n \n \n )}\n \n );\n }}\n
\n
\n \n
\n \n )}\n
\n {\n const newSearchValues = tempSearchValues();\n newSearchValues.version += 1;\n newSearchValues.sort_by = props.search.state.sort_by;\n newSearchValues.searchType = props.search.state.searchType;\n newSearchValues.groupUniqueSearch =\n props.search.state.groupUniqueSearch;\n newSearchValues.query = props.search.state.query;\n\n props.search.setSearch(newSearchValues);\n\n const searchTextarea = document.getElementById(\n \"search-query-textarea\",\n );\n\n searchTextarea?.focus();\n setTimeout(() => {\n searchTextarea?.focus();\n }, 50);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 100);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 200);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 300);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 400);\n setTimeout(() => {\n searchTextarea?.focus();\n }, 500);\n }}\n >\n {({ isOpen }) => (\n <>\n \n Options\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n {\n e.preventDefault();\n setTempSearchValues((prev) => {\n return {\n ...props.search.state,\n ...prev,\n scoreThreshold: 0.0,\n extendResults: false,\n slimChunks: false,\n sort_by: {\n field: \"\",\n },\n pageSize: 10,\n getTotalPages: false,\n highlightStrategy: \"exactmatch\",\n highlightResults: true,\n highlightDelimiters: [\"?\", \".\", \"!\"],\n highlightMaxLength: 8,\n highlightMaxNum: 3,\n highlightWindow: 0,\n group_size: 3,\n removeStopWords: false,\n } as SearchOptions;\n });\n }}\n >\n Reset\n \n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n scoreThreshold: parseFloat(\n e.currentTarget.value,\n ),\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n highlightStrategy: s.target\n .value as HighlightStrategy,\n };\n });\n }}\n value={tempSearchValues().highlightStrategy}\n >\n \n \n \n
\n type.isSelected)\n ?.route === \"autocomplete-semantic\" ||\n searchTypes().find((type) => type.isSelected)\n ?.route === \"autocomplete-fulltext\" ||\n searchTypes().find((type) => type.isSelected)\n ?.route === \"autocomplete-bm25\"\n }\n >\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n extendResults: e.target.checked,\n };\n });\n }}\n />\n
\n \n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n slimChunks: e.target.checked,\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n pageSize: parseInt(e.currentTarget.value),\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n useQuoteNegatedTerms: e.target.checked,\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n getTotalPages: e.target.checked,\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n removeStopWords: e.target.checked,\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n highlightResults: e.target.checked,\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n highlightThreshold: parseFloat(\n e.currentTarget.value,\n ),\n };\n });\n }}\n />\n
\n
\n \n {\n if (e.currentTarget.value === \" \") {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n highlightDelimiters: [\" \"],\n };\n });\n }\n\n setTempSearchValues((prev) => {\n return {\n ...prev,\n highlightDelimiters:\n e.currentTarget.value.split(\",\"),\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n highlightMaxLength: parseInt(\n e.currentTarget.value,\n ),\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n highlightMaxNum: parseInt(\n e.currentTarget.value,\n ),\n };\n });\n }}\n />\n
\n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n highlightWindow: parseInt(\n e.currentTarget.value,\n ),\n };\n });\n }}\n />\n
\n \n
\n \n {\n setTempSearchValues((prev) => {\n return {\n ...prev,\n group_size: parseInt(e.currentTarget.value),\n };\n });\n }}\n />\n
\n
\n
\n \n
\n \n )}\n \n
\n \n }\n tooltipText=\"Use multiple queries with different weights to search for chunks. Only works with Semantic Search and is not compatible with cross encoder re-ranking or highlights.\"\n />\n Multi Query\n 0}\n onChange={(e) => {\n if (e.target.checked) {\n props.search.setSearch(\"multiQueries\", [\n {\n query: props.search.state.query,\n weight: 0.5,\n },\n ]);\n props.search.setSearch(\"searchType\", \"semantic\");\n props.search.setSearch(\"sort_by\", {});\n } else {\n props.search.setSearch(\"multiQueries\", []);\n }\n }}\n />\n
\n \n
\n
\n {\n e.preventDefault();\n props.openRateQueryModal(true);\n }}\n >\n \n Rate This Search\n \n
\n \n \n \n
\n \n
\n \n {\n props.search.setSearch(\n \"groupUniqueSearch\",\n e.target.checked,\n );\n }}\n />\n
\n \n
\n \n
\n \n );\n};\n\nexport default SearchForm;\n","usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/ServerTimings.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-non-null-assertion","severity":2,"message":"Forbidden non-null assertion.","line":25,"column":24,"nodeType":"TSNonNullExpression","messageId":"noNonNull","endLine":25,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-non-null-assertion","severity":2,"message":"Forbidden non-null assertion.","line":34,"column":37,"nodeType":"TSNonNullExpression","messageId":"noNonNull","endLine":34,"endColumn":53,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/ShowToasts.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/SingleChunkPage.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .chunks on an `any` value.","line":156,"column":35,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":156,"endColumn":41,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/ThemeModeController.tsx","messages":[{"ruleId":"@typescript-eslint/unbound-method","severity":2,"message":"Avoid referencing unbound methods which may cause unintentional scoping of `this`.\nIf your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.","line":61,"column":15,"nodeType":"Identifier","messageId":"unboundWithoutThisAnnotation","endLine":61,"endColumn":21}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import {\n Menu,\n MenuItem,\n Popover,\n PopoverButton,\n PopoverPanel,\n Transition,\n} from \"solid-headless\";\nimport { createEffect, createSignal } from \"solid-js\";\nimport { BsMoonStars, BsSun } from \"solid-icons/bs\";\nimport { CgScreen } from \"solid-icons/cg\";\n\nexport const setThemeMode = (mode: \"light\" | \"dark\") => {\n const oppositeMode = mode === \"light\" ? \"dark\" : \"light\";\n document.documentElement.classList.remove(oppositeMode);\n window.localStorage.setItem(\"theme\", mode);\n document.documentElement.classList.add(mode);\n};\n\nexport const getThemeMode = () => {\n const mode = window.localStorage.getItem(\"theme\");\n return mode ?? \"system\";\n};\n\nexport const clearThemeMode = () => {\n window.localStorage.removeItem(\"theme\");\n if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n document.documentElement.classList.add(\"dark\");\n } else {\n document.documentElement.classList.remove(\"dark\");\n }\n};\n\nconst ThemeModeController = () => {\n const [currentTheme, setCurrentTheme] = createSignal(getThemeMode());\n\n createEffect(() => {\n const currentThemeMode = getThemeMode();\n\n if (\n currentThemeMode == \"dark\" ||\n (currentThemeMode === \"system\" &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches)\n ) {\n document.documentElement.classList.add(\"dark\");\n }\n });\n\n return (\n \n
\n \n {({ isOpen }) => (\n <>\n \n
\n \n
\n
\n \n
\n \n \n \n \n \n {\n setThemeMode(\"light\");\n setCurrentTheme(getThemeMode());\n }}\n >\n \n \n
\n
\n \n Light\n
\n \n \n {\n setThemeMode(\"dark\");\n setCurrentTheme(getThemeMode());\n }}\n >\n \n \n \n
\n \n Dark\n
\n \n \n {\n clearThemeMode();\n setCurrentTheme(getThemeMode());\n }}\n >\n \n \n \n
\n \n System\n
\n \n \n \n \n \n \n )}\n \n \n \n );\n};\n\nexport default ThemeModeController;\n","usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/TinyEditor.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":60,"column":32,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":60,"endColumn":35,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1830,1833],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1830,1833],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":62,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":62,"endColumn":18,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .on on an `any` value.","line":62,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":62,"endColumn":18,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"solid/reactivity","severity":1,"message":"This function should be passed to a tracked scope (like createEffect) or an event handler because it contains reactivity, or else changes will be ignored.","line":62,"column":38,"nodeType":null,"messageId":"badUnnamedDerivedSignal","endLine":62,"endColumn":40,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-argument","severity":2,"message":"Unsafe argument of type `any` assigned to a parameter of type `string`.","line":64,"column":32,"nodeType":"CallExpression","messageId":"unsafeArgument","endLine":64,"endColumn":51,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":64,"column":32,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":64,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .getContent on an `any` value.","line":64,"column":39,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":64,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-argument","severity":2,"message":"Unsafe argument of type `any` assigned to a parameter of type `string`.","line":67,"column":32,"nodeType":"MemberExpression","messageId":"unsafeArgument","endLine":67,"endColumn":60,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":67,"column":32,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":67,"endColumn":46,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .getBody on an `any` value.","line":67,"column":39,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":67,"endColumn":46,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .textContent on an `any` value.","line":67,"column":49,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":67,"endColumn":60,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":70,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":70,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .addShortcut on an `any` value.","line":70,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":70,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":71,"column":11,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":71,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .execCommand on an `any` value.","line":71,"column":18,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":71,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":74,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":74,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .addShortcut on an `any` value.","line":74,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":74,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":75,"column":11,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":75,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .execCommand on an `any` value.","line":75,"column":18,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":75,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":78,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":78,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .addShortcut on an `any` value.","line":78,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":78,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":79,"column":11,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":79,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .execCommand on an `any` value.","line":79,"column":18,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":79,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":82,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":82,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .addShortcut on an `any` value.","line":82,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":82,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":83,"column":11,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":83,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .execCommand on an `any` value.","line":83,"column":18,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":83,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":86,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":86,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .addShortcut on an `any` value.","line":86,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":86,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":87,"column":11,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":87,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .execCommand on an `any` value.","line":87,"column":18,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":87,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":90,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":90,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .addShortcut on an `any` value.","line":90,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":90,"endColumn":27,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":91,"column":11,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":91,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .execCommand on an `any` value.","line":91,"column":18,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":91,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":98,"column":13,"nodeType":"VariableDeclarator","messageId":"anyAssignment","endLine":98,"endColumn":46,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":98,"column":34,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":98,"endColumn":37,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3101,3104],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3101,3104],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .tinymce on an `any` value.","line":98,"column":39,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":98,"endColumn":46,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":100,"column":13,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":100,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .init on an `any` value.","line":100,"column":21,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":100,"endColumn":25,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":103,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":103,"endColumn":41,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":103,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":103,"endColumn":20,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .get on an `any` value.","line":103,"column":17,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":103,"endColumn":20,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .setContent on an `any` value.","line":103,"column":31,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":103,"endColumn":41,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":111,"column":11,"nodeType":"VariableDeclarator","messageId":"anyAssignment","endLine":111,"endColumn":44,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":111,"column":32,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":111,"endColumn":35,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[3467,3470],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[3467,3470],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .tinymce on an `any` value.","line":111,"column":37,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":111,"endColumn":44,"suppressions":[{"kind":"directive","justification":""},{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":113,"column":13,"nodeType":"VariableDeclarator","messageId":"anyAssignment","endLine":113,"endColumn":43,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":113,"column":22,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":113,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .get on an `any` value.","line":113,"column":30,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":113,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-call","severity":2,"message":"Unsafe call of an `any` typed value.","line":115,"column":9,"nodeType":"MemberExpression","messageId":"unsafeCall","endLine":115,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .remove on an `any` value.","line":115,"column":16,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":115,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/components/UploadFile.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":18,"column":13,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":18,"endColumn":16,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[655,658],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[655,658],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":32,"column":48,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":32,"endColumn":51,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[1182,1185],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[1182,1185],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":149,"column":9,"nodeType":"Property","messageId":"anyAssignment","endLine":149,"endColumn":29,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":431,"column":22,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":431,"endColumn":25,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[16506,16509],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[16506,16509],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/hooks/useDatasetServerConfig.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/hooks/useSearch.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/index.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-non-null-assertion","severity":2,"message":"Forbidden non-null assertion.","line":57,"column":3,"nodeType":"TSNonNullExpression","messageId":"noNonNull","endLine":57,"endColumn":8,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/layouts/HomeLayout.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/layouts/SearchLayout.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/pages/404.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/pages/CreateChunk.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/pages/Upload.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/pages/chunk/ViewChunk.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":6,"column":34,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":6,"endColumn":37,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[274,277],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[274,277],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":11,"column":18,"nodeType":"MemberExpression","messageId":"anyAssignment","endLine":11,"endColumn":33,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .params on an `any` value.","line":11,"column":24,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":11,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/pages/chunk/edit/EditChunk.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":7,"column":34,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":7,"endColumn":37,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[324,327],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[324,327],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-assignment","severity":2,"message":"Unsafe assignment of an `any` value.","line":22,"column":22,"nodeType":"MemberExpression","messageId":"anyAssignment","endLine":22,"endColumn":37,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .params on an `any` value.","line":22,"column":28,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":22,"endColumn":34,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/pages/group/OrgGroups.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/pages/group/ViewGroup.tsx","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":7,"column":34,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":7,"endColumn":37,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[317,320],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[317,320],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-unsafe-member-access","severity":2,"message":"Unsafe member access .params on an `any` value.","line":12,"column":22,"nodeType":"Identifier","messageId":"unsafeMemberExpression","endLine":12,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/utils/apiTypes.ts","messages":[],"suppressedMessages":[{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":443,"column":40,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":443,"endColumn":43,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[11839,11842],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[11839,11842],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":444,"column":40,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":444,"endColumn":43,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[11884,11887],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[11884,11887],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"@typescript-eslint/no-explicit-any","severity":2,"message":"Unexpected any. Specify a different type.","line":520,"column":28,"nodeType":"TSAnyKeyword","messageId":"unexpectedAny","endLine":520,"endColumn":31,"suggestions":[{"messageId":"suggestUnknown","fix":{"range":[14142,14145],"text":"unknown"},"desc":"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct."},{"messageId":"suggestNever","fix":{"range":[14142,14145],"text":"never"},"desc":"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/utils/downloadFile.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/utils/trieve.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/home/skeptrune/git_projects/devflowinc/trieve/frontends/search/src/vite-env.d.ts","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]}] \ No newline at end of file diff --git a/frontends/search/package.json b/frontends/search/package.json index 053864c58..7e13f6883 100644 --- a/frontends/search/package.json +++ b/frontends/search/package.json @@ -20,7 +20,7 @@ "solid-headless": "^0.13.1", "solid-icons": "^1.0.4", "solid-js": "^1.4.3", - "trieve-fetch-client": "*" + "trieve-ts-sdk": "file:../../clients/ts-sdk" }, "devDependencies": { "config": "*", diff --git a/frontends/search/src/components/BookmarkPopover.tsx b/frontends/search/src/components/BookmarkPopover.tsx index ed6626229..72eea6cbe 100644 --- a/frontends/search/src/components/BookmarkPopover.tsx +++ b/frontends/search/src/components/BookmarkPopover.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/unbound-method */ import { For, Setter, diff --git a/frontends/search/src/components/DatasetSelectBox.tsx b/frontends/search/src/components/DatasetSelectBox.tsx index 273180d6f..8114146a3 100644 --- a/frontends/search/src/components/DatasetSelectBox.tsx +++ b/frontends/search/src/components/DatasetSelectBox.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/unbound-method */ import { FaSolidCheck } from "solid-icons/fa"; import { Show, diff --git a/frontends/search/src/components/OrganizationSelectBox.tsx b/frontends/search/src/components/OrganizationSelectBox.tsx index d7986cd1c..cbb78ecad 100644 --- a/frontends/search/src/components/OrganizationSelectBox.tsx +++ b/frontends/search/src/components/OrganizationSelectBox.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/unbound-method */ import { Show, For, createMemo, useContext, Switch, Match } from "solid-js"; import { Menu, diff --git a/frontends/search/src/components/SearchForm.tsx b/frontends/search/src/components/SearchForm.tsx index f7b172cdb..25be35cf1 100644 --- a/frontends/search/src/components/SearchForm.tsx +++ b/frontends/search/src/components/SearchForm.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/unbound-method */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-call */ import { BiRegularSearch, BiRegularX } from "solid-icons/bi"; diff --git a/frontends/search/src/components/ThemeModeController.tsx b/frontends/search/src/components/ThemeModeController.tsx index d76037b54..2926b7282 100644 --- a/frontends/search/src/components/ThemeModeController.tsx +++ b/frontends/search/src/components/ThemeModeController.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/unbound-method */ import { Menu, MenuItem, diff --git a/frontends/search/src/utils/trieve.ts b/frontends/search/src/utils/trieve.ts deleted file mode 100644 index a15b1f746..000000000 --- a/frontends/search/src/utils/trieve.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Trieve } from "trieve-fetch-client"; - -export const trieve = new Trieve({ - baseUrl: import.meta.env.VITE_API_HOST as string, -}); diff --git a/package.json b/package.json index 861ade327..1482ade59 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "frontends/analytics", "frontends/shared", "frontends/config", - "clients/fetch-client", + "clients/ts-sdk", "examples/ts" ], "scripts": { diff --git a/turbo.json b/turbo.json index 62aa0c60f..f9bc30d0c 100644 --- a/turbo.json +++ b/turbo.json @@ -3,36 +3,24 @@ "ui": "tui", "tasks": { "build": { - "outputs": [ - "dist/**" - ], - "dependsOn": [ - "^build" - ] + "outputs": ["dist/**"], + "dependsOn": ["^build"] }, "lint": { "cache": false, - "dependsOn": [ - "^build" - ] + "dependsOn": ["^build"] }, "lint:CI": { "cache": false, - "dependsOn": [ - "^build" - ] + "dependsOn": ["^build"] }, "dev": { "persistent": true, "cache": false, - "dependsOn": [ - "trieve-fetch-client#build" - ] + "dependsOn": ["trieve-ts-sdk#build"] }, - "trieve-fetch-client#build": { - "outputs": [ - "dist" - ] + "trieve-ts-sdk#build": { + "outputs": ["dist"] } } } diff --git a/yarn.lock b/yarn.lock index cc2c07249..3f4609aa3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,15 +24,6 @@ "@types/json-schema" "^7.0.15" js-yaml "^4.1.0" -"@apidevtools/json-schema-ref-parser@11.7.0": - version "11.7.0" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz#228d72018a0e7cbee744b677eaa01a8968f302d9" - integrity sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog== - dependencies: - "@jsdevtools/ono" "^7.1.3" - "@types/json-schema" "^7.0.15" - js-yaml "^4.1.0" - "@babel/code-frame@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" @@ -249,248 +240,121 @@ dependencies: "@floating-ui/dom" "^1.6.7" -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - "@esbuild/aix-ppc64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== -"@esbuild/aix-ppc64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz#145b74d5e4a5223489cabdc238d8dad902df5259" - integrity sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ== - "@esbuild/android-arm64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== -"@esbuild/android-arm64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz#453bbe079fc8d364d4c5545069e8260228559832" - integrity sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ== - "@esbuild/android-arm@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== -"@esbuild/android-arm@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.0.tgz#26c806853aa4a4f7e683e519cd9d68e201ebcf99" - integrity sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g== - "@esbuild/android-x64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== -"@esbuild/android-x64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.0.tgz#1e51af9a6ac1f7143769f7ee58df5b274ed202e6" - integrity sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ== - "@esbuild/darwin-arm64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== -"@esbuild/darwin-arm64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz#d996187a606c9534173ebd78c58098a44dd7ef9e" - integrity sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow== - "@esbuild/darwin-x64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== -"@esbuild/darwin-x64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz#30c8f28a7ef4e32fe46501434ebe6b0912e9e86c" - integrity sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ== - "@esbuild/freebsd-arm64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== -"@esbuild/freebsd-arm64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz#30f4fcec8167c08a6e8af9fc14b66152232e7fb4" - integrity sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw== - "@esbuild/freebsd-x64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== -"@esbuild/freebsd-x64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz#1003a6668fe1f5d4439e6813e5b09a92981bc79d" - integrity sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ== - "@esbuild/linux-arm64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== -"@esbuild/linux-arm64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz#3b9a56abfb1410bb6c9138790f062587df3e6e3a" - integrity sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw== - "@esbuild/linux-arm@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== -"@esbuild/linux-arm@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz#237a8548e3da2c48cd79ae339a588f03d1889aad" - integrity sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw== - "@esbuild/linux-ia32@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== -"@esbuild/linux-ia32@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz#4269cd19cb2de5de03a7ccfc8855dde3d284a238" - integrity sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA== - "@esbuild/linux-loong64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== -"@esbuild/linux-loong64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz#82b568f5658a52580827cc891cb69d2cb4f86280" - integrity sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A== - "@esbuild/linux-mips64el@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== -"@esbuild/linux-mips64el@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz#9a57386c926262ae9861c929a6023ed9d43f73e5" - integrity sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w== - "@esbuild/linux-ppc64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== -"@esbuild/linux-ppc64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz#f3a79fd636ba0c82285d227eb20ed8e31b4444f6" - integrity sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw== - "@esbuild/linux-riscv64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== -"@esbuild/linux-riscv64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz#f9d2ef8356ce6ce140f76029680558126b74c780" - integrity sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw== - "@esbuild/linux-s390x@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== -"@esbuild/linux-s390x@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz#45390f12e802201f38a0229e216a6aed4351dfe8" - integrity sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg== - "@esbuild/linux-x64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== -"@esbuild/linux-x64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz#c8409761996e3f6db29abcf9b05bee8d7d80e910" - integrity sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ== - "@esbuild/netbsd-x64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== -"@esbuild/netbsd-x64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz#ba70db0114380d5f6cfb9003f1d378ce989cd65c" - integrity sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw== - -"@esbuild/openbsd-arm64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz#72fc55f0b189f7a882e3cf23f332370d69dfd5db" - integrity sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ== - "@esbuild/openbsd-x64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== -"@esbuild/openbsd-x64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz#b6ae7a0911c18fe30da3db1d6d17a497a550e5d8" - integrity sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg== - "@esbuild/sunos-x64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== -"@esbuild/sunos-x64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz#58f0d5e55b9b21a086bfafaa29f62a3eb3470ad8" - integrity sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA== - "@esbuild/win32-arm64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== -"@esbuild/win32-arm64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz#b858b2432edfad62e945d5c7c9e5ddd0f528ca6d" - integrity sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ== - "@esbuild/win32-ia32@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== -"@esbuild/win32-ia32@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz#167ef6ca22a476c6c0c014a58b4f43ae4b80dec7" - integrity sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA== - "@esbuild/win32-x64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== -"@esbuild/win32-x64@0.23.0": - version "0.23.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz#db44a6a08520b5f25bbe409f34a59f2d4bcc7ced" - integrity sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g== - "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -554,17 +418,6 @@ commander "12.1.0" handlebars "4.7.8" -"@hey-api/openapi-ts@^0.52.1": - version "0.52.2" - resolved "https://registry.yarnpkg.com/@hey-api/openapi-ts/-/openapi-ts-0.52.2.tgz#c7a86aebef43188f7f0881f262acb7b8b3b7b03b" - integrity sha512-ZifYJmOKafLlGN98GIVdYhj30BtZPxYAeM03TPtHPhPViiHQpxklW6f6vXK65Lsy4HpOOzj8WzoKrT73dWacCQ== - dependencies: - "@apidevtools/json-schema-ref-parser" "11.7.0" - c12 "1.11.1" - camelcase "8.0.0" - commander "12.1.0" - handlebars "4.7.8" - "@humanwhocodes/config-array@^0.11.14": version "0.11.14" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" @@ -605,7 +458,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": +"@jridgewell/resolve-uri@^3.1.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== @@ -615,18 +468,15 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" @@ -1008,26 +858,6 @@ "@tanstack/query-core" "5.50.1" solid-js "^1.8.17" -"@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - "@types/ace@*", "@types/ace@^0.0.52": version "0.0.52" resolved "https://registry.yarnpkg.com/@types/ace/-/ace-0.0.52.tgz#e530e7b85e5407ed3b8c987a3719692ac0d95d4c" @@ -1369,14 +1199,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.1.1: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.9.0: +acorn@^8.11.3, acorn@^8.9.0: version "8.12.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== @@ -1438,11 +1261,6 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - arg@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" @@ -1804,11 +1622,6 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1936,11 +1749,6 @@ didyoumean@^1.2.2: resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - diff@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" @@ -2128,13 +1936,6 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-register@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.6.0.tgz#cf270cfa677baebbc0010ac024b823cbf723a36d" - integrity sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg== - dependencies: - debug "^4.3.4" - esbuild@^0.21.3: version "0.21.5" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" @@ -2164,36 +1965,6 @@ esbuild@^0.21.3: "@esbuild/win32-ia32" "0.21.5" "@esbuild/win32-x64" "0.21.5" -esbuild@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.0.tgz#de06002d48424d9fdb7eb52dbe8e95927f852599" - integrity sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA== - optionalDependencies: - "@esbuild/aix-ppc64" "0.23.0" - "@esbuild/android-arm" "0.23.0" - "@esbuild/android-arm64" "0.23.0" - "@esbuild/android-x64" "0.23.0" - "@esbuild/darwin-arm64" "0.23.0" - "@esbuild/darwin-x64" "0.23.0" - "@esbuild/freebsd-arm64" "0.23.0" - "@esbuild/freebsd-x64" "0.23.0" - "@esbuild/linux-arm" "0.23.0" - "@esbuild/linux-arm64" "0.23.0" - "@esbuild/linux-ia32" "0.23.0" - "@esbuild/linux-loong64" "0.23.0" - "@esbuild/linux-mips64el" "0.23.0" - "@esbuild/linux-ppc64" "0.23.0" - "@esbuild/linux-riscv64" "0.23.0" - "@esbuild/linux-s390x" "0.23.0" - "@esbuild/linux-x64" "0.23.0" - "@esbuild/netbsd-x64" "0.23.0" - "@esbuild/openbsd-arm64" "0.23.0" - "@esbuild/openbsd-x64" "0.23.0" - "@esbuild/sunos-x64" "0.23.0" - "@esbuild/win32-arm64" "0.23.0" - "@esbuild/win32-ia32" "0.23.0" - "@esbuild/win32-x64" "0.23.0" - escalade@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" @@ -2334,19 +2105,12 @@ eslint-utils@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" eslint-visitor-keys@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" @@ -3178,6 +2942,13 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + localforage@^1.8.1: version "1.10.0" resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4" @@ -3224,17 +2995,29 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + magic-string@^0.30.0: - version "0.30.10" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/sourcemap-codec" "^1.5.0" -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" markdown-table@^3.0.0: version "3.0.3" @@ -3392,6 +3175,11 @@ mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: dependencies: "@types/mdast" "^3.0.0" +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + merge-anything@^5.1.7: version "5.1.7" resolved "https://registry.yarnpkg.com/merge-anything/-/merge-anything-5.1.7.tgz#94f364d2b0cf21ac76067b5120e429353b3525d7" @@ -3714,7 +3502,7 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.4: +minimatch@^9.0.4, minimatch@^9.0.5: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -4154,6 +3942,11 @@ property-information@^6.3.0: resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -4397,12 +4190,13 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shiki@^1.10.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.10.1.tgz#5587f02c7577db018bb49f8bce3c971e157a5281" - integrity sha512-uafV7WCgN4YYrccH6yxpnps6k38sSTlFRrwc4jycWmhWxJIm9dPrk+XkY1hZ2t0I7jmacMNb15Lf2fspa/Y3lg== +shiki@^1.10.0, shiki@^1.9.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.14.1.tgz#617e62dfbe3a083e46111e22086044fbd7644786" + integrity sha512-FujAN40NEejeXdzPt+3sZ3F2dx1U24BY2XTY01+MG8mbxCiA2XukXdcbyMyLAHJ/1AUUnQd1tZlvIjefWWEJeA== dependencies: - "@shikijs/core" "1.10.1" + "@shikijs/core" "1.14.1" + "@types/hast" "^3.0.4" side-channel@^1.0.4: version "1.0.6" @@ -4733,6 +4527,12 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +"trieve-ts-sdk@file:clients/ts-sdk": + version "0.0.1" + dependencies: + typedoc "^0.26.0" + typedoc-plugin-merge-modules "^6.0.0" + trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" @@ -4753,25 +4553,6 @@ ts-interface-checker@^0.1.9: resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" @@ -4885,16 +4666,32 @@ typed-array-length@^1.0.6: is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" -typescript@^5.0.4, typescript@^5.2.2: - version "5.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.3.tgz#e1b0a3c394190838a0b168e771b0ad56a0af0faa" - integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ== +typedoc-plugin-merge-modules@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/typedoc-plugin-merge-modules/-/typedoc-plugin-merge-modules-6.0.0.tgz#0c40304e4257fcb00034710a9f16fd87631d8d30" + integrity sha512-SzxoA45hUHtI4Het+ggjrauRL+4qgRNZ+2NVh4hXeLbZx/Tzb2qhaxcLero7pwGNMcsXc2IzFKokF09ZAlluRw== + +typedoc@^0.26.0: + version "0.26.6" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.26.6.tgz#9cb3d6f0ed5070f86af169c3f88ca2c9b7031f59" + integrity sha512-SfEU3SH3wHNaxhFPjaZE2kNl/NFtLNW5c1oHsg7mti7GjmUj1Roq6osBQeMd+F4kL0BoRBBr8gQAuqBlfFu8LA== + dependencies: + lunr "^2.3.9" + markdown-it "^14.1.0" + minimatch "^9.0.5" + shiki "^1.9.1" + yaml "^2.4.5" -typescript@^5.5.4: +typescript@^5.0.4, typescript@^5.2.2: version "5.5.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + ufo@^1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344" @@ -5013,11 +4810,6 @@ uvu@^0.5.0: kleur "^4.0.3" sade "^1.7.3" -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - validate-html-nesting@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/validate-html-nesting/-/validate-html-nesting-1.2.2.tgz#2d74de14b598a0de671fad01bd71deabb93b8aca" @@ -5155,21 +4947,16 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.3.4: - version "2.4.5" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" - integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== +yaml@^2.3.4, yaml@^2.4.5: + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== yarn@^1.22.22: version "1.22.22" resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.22.tgz#ac34549e6aa8e7ead463a7407e1c7390f61a6610" integrity sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg== -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"