chromadb 1.7.1-beta1 → 1.7.1-beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generated/runtime.ts","../src/generated/api.ts","../src/generated/models.ts","../src/generated/configuration.ts","../src/utils.ts","../src/Collection.ts","../src/auth.ts","../src/AdminClient.ts","../src/ChromaClient.ts","../src/embeddings/OpenAIEmbeddingFunction.ts","../src/embeddings/CohereEmbeddingFunction.ts","../src/types.ts","../src/embeddings/HuggingFaceEmbeddingServerFunction.ts"],"sourcesContent":["import 'isomorphic-fetch';\n/* eslint-disable */\n// tslint:disable\n/**\n * FastAPI\n * \n *\n * OpenAPI spec version: 0.1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator+.\n * https://github.com/karlvr/openapi-generator-plus\n * Do not edit the class manually.\n */\n\nexport const defaultFetch = fetch;\nimport { Configuration } from \"./configuration\";\n\nexport const BASE_PATH = \"\";\n\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n\tcsv: \",\",\n\tssv: \" \",\n\ttsv: \"\\t\",\n\tpipes: \"|\",\n};\n\n/**\n *\n * @export\n * @type FetchAPI\n */\nexport type FetchAPI = typeof defaultFetch;\n\n/**\n * \n * @export\n * @interface FetchArgs\n */\nexport interface FetchArgs {\n\turl: string;\n\toptions: RequestInit;\n}\n\n/**\n * \n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n\tprotected configuration?: Configuration;\n\n\tconstructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected fetch: FetchAPI = defaultFetch) {\n\t\tif (configuration) {\n\t\t\tthis.configuration = configuration;\n\t\t\tthis.basePath = configuration.basePath || this.basePath;\n\t\t}\n\t}\n};\n\n/**\n * \n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n\tconstructor(public field: string, msg?: string) {\n\t\tsuper(msg);\n\t\tObject.setPrototypeOf(this, RequiredError.prototype);\n\t\tthis.name = \"RequiredError\";\n\t}\n}\n","/* eslint-disable */\n// tslint:disable\n/**\n * FastAPI\n * \n *\n * OpenAPI spec version: 0.1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator+.\n * https://github.com/karlvr/openapi-generator-plus\n * Do not edit the class manually.\n */\n\nimport { Configuration } from \"./configuration\";\nimport { BASE_PATH, COLLECTION_FORMATS, FetchAPI, FetchArgs, BaseAPI, RequiredError, defaultFetch } from \"./runtime\";\nimport { Api } from \"./models\";\n\nexport type FactoryFunction<T> = (configuration?: Configuration, basePath?: string, fetch?: FetchAPI) => T;\n\n/**\n * ApiApi - fetch parameter creator\n * @export\n */\nexport const ApiApiFetchParamCreator = function (configuration?: Configuration) {\n\treturn {\n\t\t/**\n\t\t * @summary Add\n\t\t * @param {string} collectionId\n\t\t * @param {Api.AddEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tadd(collectionId: string, request: Api.AddEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling add.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling add.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/add`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Delete\n\t\t * @param {string} collectionId\n\t\t * @param {Api.DeleteEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\taDelete(collectionId: string, request: Api.DeleteEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling aDelete.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling aDelete.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/delete`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get\n\t\t * @param {string} collectionId\n\t\t * @param {Api.GetEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\taGet(collectionId: string, request: Api.GetEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling aGet.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling aGet.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/get`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Count\n\t\t * @param {string} collectionId\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcount(collectionId: string, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling count.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/count`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Count Collections\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcountCollections(tenant: string | undefined, database: string | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/count_collections`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Collection\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {Api.CreateCollection} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateCollection(tenant: string | undefined, database: string | undefined, request: Api.CreateCollection, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling createCollection.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Database\n\t\t * @param {string} [tenant]\n\t\t * @param {Api.CreateDatabase} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateDatabase(tenant: string | undefined, request: Api.CreateDatabase, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling createDatabase.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/databases`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Tenant\n\t\t * @param {Api.CreateTenant} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateTenant(request: Api.CreateTenant, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling createTenant.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/tenants`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Delete Collection\n\t\t * @param {string} collectionName\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tdeleteCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionName' is not null or undefined\n\t\t\tif (collectionName === null || collectionName === undefined) {\n\t\t\t\tthrow new RequiredError('collectionName', 'Required parameter collectionName was null or undefined when calling deleteCollection.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_name}`\n\t\t\t\t.replace('{collection_name}', encodeURIComponent(String(collectionName)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'DELETE' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Collection\n\t\t * @param {string} collectionName\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionName' is not null or undefined\n\t\t\tif (collectionName === null || collectionName === undefined) {\n\t\t\t\tthrow new RequiredError('collectionName', 'Required parameter collectionName was null or undefined when calling getCollection.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_name}`\n\t\t\t\t.replace('{collection_name}', encodeURIComponent(String(collectionName)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Database\n\t\t * @param {string} database\n\t\t * @param {string} [tenant]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetDatabase(database: string, tenant: string | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'database' is not null or undefined\n\t\t\tif (database === null || database === undefined) {\n\t\t\t\tthrow new RequiredError('database', 'Required parameter database was null or undefined when calling getDatabase.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/databases/{database}`\n\t\t\t\t.replace('{database}', encodeURIComponent(String(database)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Nearest Neighbors\n\t\t * @param {string} collectionId\n\t\t * @param {Api.QueryEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetNearestNeighbors(collectionId: string, request: Api.QueryEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling getNearestNeighbors.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling getNearestNeighbors.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/query`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Tenant\n\t\t * @param {string} tenant\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetTenant(tenant: string, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'tenant' is not null or undefined\n\t\t\tif (tenant === null || tenant === undefined) {\n\t\t\t\tthrow new RequiredError('tenant', 'Required parameter tenant was null or undefined when calling getTenant.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/tenants/{tenant}`\n\t\t\t\t.replace('{tenant}', encodeURIComponent(String(tenant)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Heartbeat\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\theartbeat(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/heartbeat`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary List Collections\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {number} [limit]\n\t\t * @param {number} [offset]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tlistCollections(tenant: string | undefined, database: string | undefined, limit: number | undefined, offset: number | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/collections`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tif (limit !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('limit', String(limit));\n\t\t\t}\n\n\t\t\tif (offset !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('offset', String(offset));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Pre Flight Checks\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tpreFlightChecks(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/pre-flight-checks`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Reset\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\treset(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/reset`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Root\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\troot(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Update\n\t\t * @param {string} collectionId\n\t\t * @param {Api.UpdateEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupdate(collectionId: string, request: Api.UpdateEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling update.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling update.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/update`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Update Collection\n\t\t * @param {string} collectionId\n\t\t * @param {Api.UpdateCollection} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupdateCollection(collectionId: string, request: Api.UpdateCollection, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling updateCollection.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling updateCollection.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'PUT' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Upsert\n\t\t * @param {string} collectionId\n\t\t * @param {Api.AddEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupsert(collectionId: string, request: Api.AddEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling upsert.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling upsert.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/upsert`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Version\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tversion(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/version`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t}\n};\n\n/**\n * ApiApi - functional programming interface\n * @export\n */\nexport const ApiApiFp = function(configuration?: Configuration) {\n\treturn {\n\t\t/**\n\t\t * @summary Add\n\t\t * @param {string} collectionId\n\t\t * @param {Api.AddEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tadd(collectionId: string, request: Api.AddEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.Add201Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).add(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 201) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Delete\n\t\t * @param {string} collectionId\n\t\t * @param {Api.DeleteEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\taDelete(collectionId: string, request: Api.DeleteEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.ADelete200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).aDelete(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get\n\t\t * @param {string} collectionId\n\t\t * @param {Api.GetEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\taGet(collectionId: string, request: Api.GetEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.AGet200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).aGet(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Count\n\t\t * @param {string} collectionId\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcount(collectionId: string, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.Count200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).count(collectionId, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Count Collections\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcountCollections(tenant: string | undefined, database: string | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.CountCollections200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).countCollections(tenant, database, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Collection\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {Api.CreateCollection} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateCollection(tenant: string | undefined, database: string | undefined, request: Api.CreateCollection, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.CreateCollection200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).createCollection(tenant, database, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Database\n\t\t * @param {string} [tenant]\n\t\t * @param {Api.CreateDatabase} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateDatabase(tenant: string | undefined, request: Api.CreateDatabase, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.CreateDatabase200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).createDatabase(tenant, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Tenant\n\t\t * @param {Api.CreateTenant} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateTenant(request: Api.CreateTenant, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.CreateTenant200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).createTenant(request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Delete Collection\n\t\t * @param {string} collectionName\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tdeleteCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.DeleteCollection200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).deleteCollection(collectionName, tenant, database, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Collection\n\t\t * @param {string} collectionName\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.GetCollection200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).getCollection(collectionName, tenant, database, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Database\n\t\t * @param {string} database\n\t\t * @param {string} [tenant]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetDatabase(database: string, tenant: string | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.GetDatabase200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).getDatabase(database, tenant, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Nearest Neighbors\n\t\t * @param {string} collectionId\n\t\t * @param {Api.QueryEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetNearestNeighbors(collectionId: string, request: Api.QueryEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.GetNearestNeighbors200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).getNearestNeighbors(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Tenant\n\t\t * @param {string} tenant\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetTenant(tenant: string, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.GetTenant200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).getTenant(tenant, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Heartbeat\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\theartbeat(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<{ [name: string]: number }> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).heartbeat(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary List Collections\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {number} [limit]\n\t\t * @param {number} [offset]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tlistCollections(tenant: string | undefined, database: string | undefined, limit: number | undefined, offset: number | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.ListCollections200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).listCollections(tenant, database, limit, offset, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Pre Flight Checks\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tpreFlightChecks(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.PreFlightChecks200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).preFlightChecks(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Reset\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\treset(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<boolean> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).reset(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Root\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\troot(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<{ [name: string]: number }> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).root(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Update\n\t\t * @param {string} collectionId\n\t\t * @param {Api.UpdateEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupdate(collectionId: string, request: Api.UpdateEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.Update200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).update(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Update Collection\n\t\t * @param {string} collectionId\n\t\t * @param {Api.UpdateCollection} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupdateCollection(collectionId: string, request: Api.UpdateCollection, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.UpdateCollection200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).updateCollection(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Upsert\n\t\t * @param {string} collectionId\n\t\t * @param {Api.AddEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupsert(collectionId: string, request: Api.AddEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.Upsert200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).upsert(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Version\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tversion(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<string> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).version(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t}\n};\n\n/**\n * ApiApi - factory interface\n * @export\n */\nexport const ApiApiFactory: FactoryFunction<ApiApi> = function (configuration?: Configuration, basePath?: string, fetch?: FetchAPI) {\n\treturn new ApiApi(configuration, basePath, fetch);\n};\n\n/**\n * ApiApi - object-oriented interface\n * @export\n * @class ApiApi\n * @extends {BaseAPI}\n */\nexport class ApiApi extends BaseAPI {\n\t/**\n\t * @summary Add\n\t * @param {string} collectionId\n\t * @param {Api.AddEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic add(collectionId: string, request: Api.AddEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).add(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Delete\n\t * @param {string} collectionId\n\t * @param {Api.DeleteEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic aDelete(collectionId: string, request: Api.DeleteEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).aDelete(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get\n\t * @param {string} collectionId\n\t * @param {Api.GetEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic aGet(collectionId: string, request: Api.GetEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).aGet(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Count\n\t * @param {string} collectionId\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic count(collectionId: string, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).count(collectionId, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Count Collections\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic countCollections(tenant: string | undefined, database: string | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).countCollections(tenant, database, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Create Collection\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {Api.CreateCollection} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic createCollection(tenant: string | undefined, database: string | undefined, request: Api.CreateCollection, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).createCollection(tenant, database, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Create Database\n\t * @param {string} [tenant]\n\t * @param {Api.CreateDatabase} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic createDatabase(tenant: string | undefined, request: Api.CreateDatabase, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).createDatabase(tenant, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Create Tenant\n\t * @param {Api.CreateTenant} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic createTenant(request: Api.CreateTenant, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).createTenant(request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Delete Collection\n\t * @param {string} collectionName\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic deleteCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).deleteCollection(collectionName, tenant, database, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get Collection\n\t * @param {string} collectionName\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic getCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).getCollection(collectionName, tenant, database, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get Database\n\t * @param {string} database\n\t * @param {string} [tenant]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic getDatabase(database: string, tenant: string | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).getDatabase(database, tenant, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get Nearest Neighbors\n\t * @param {string} collectionId\n\t * @param {Api.QueryEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic getNearestNeighbors(collectionId: string, request: Api.QueryEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).getNearestNeighbors(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get Tenant\n\t * @param {string} tenant\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic getTenant(tenant: string, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).getTenant(tenant, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Heartbeat\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic heartbeat(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).heartbeat(options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary List Collections\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {number} [limit]\n\t * @param {number} [offset]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic listCollections(tenant: string | undefined, database: string | undefined, limit: number | undefined, offset: number | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).listCollections(tenant, database, limit, offset, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Pre Flight Checks\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic preFlightChecks(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).preFlightChecks(options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Reset\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic reset(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).reset(options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Root\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic root(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).root(options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Update\n\t * @param {string} collectionId\n\t * @param {Api.UpdateEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic update(collectionId: string, request: Api.UpdateEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).update(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Update Collection\n\t * @param {string} collectionId\n\t * @param {Api.UpdateCollection} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic updateCollection(collectionId: string, request: Api.UpdateCollection, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).updateCollection(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Upsert\n\t * @param {string} collectionId\n\t * @param {Api.AddEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic upsert(collectionId: string, request: Api.AddEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).upsert(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Version\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic version(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).version(options)(this.fetch, this.basePath);\n\t}\n\n}\n\n/**\n * We sometimes represent dates as strings (in models) and as Dates (in parameters) so this\n * function converts them both to a string.\n */\nfunction dateToString(value: Date | string | undefined): string | undefined {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t} else if (typeof value === 'string') {\n\t\treturn value;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n","/* eslint-disable */\n// tslint:disable\n/**\n * FastAPI\n *\n *\n * OpenAPI spec version: 0.1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator+.\n * https://github.com/karlvr/openapi-generator-plus\n * Do not edit the class manually.\n */\n\nexport namespace Api {\n\texport interface Add201Response {\n\t}\n\n\texport interface AddEmbedding {\n\t\tembeddings?: Api.AddEmbedding.Embedding[];\n\t\tmetadatas?: Api.AddEmbedding.Metadata[];\n\t\tdocuments?: string[];\n\t\turis?: string[];\n\t\tids: string[];\n\t}\n\n\t/**\n\t * @export\n\t * @namespace AddEmbedding\n\t */\n\texport namespace AddEmbedding {\n\t\texport interface Embedding {\n\t\t}\n\n\t\texport interface Metadata {\n\t\t}\n\n\t}\n\n\texport interface ADelete200Response {\n\t}\n\n\texport interface AGet200Response {\n\t}\n\n\texport interface Count200Response {\n\t}\n\n\texport interface CountCollections200Response {\n\t}\n\n\texport interface CreateCollection {\n\t\tname: string;\n\t\tmetadata?: Api.CreateCollection.Metadata;\n\t\t'get_or_create'?: boolean;\n\t}\n\n\t/**\n\t * @export\n\t * @namespace CreateCollection\n\t */\n\texport namespace CreateCollection {\n\t\texport interface Metadata {\n\t\t}\n\n\t}\n\n\texport interface CreateCollection200Response {\n\t}\n\n\texport interface CreateDatabase {\n\t\tname: string;\n\t}\n\n\texport interface CreateDatabase200Response {\n\t}\n\n\texport interface CreateTenant {\n\t\tname: string;\n\t}\n\n\texport interface CreateTenant200Response {\n\t}\n\n\texport interface DeleteCollection200Response {\n\t}\n\n\texport interface DeleteEmbedding {\n\t\tids?: string[];\n\t\twhere?: Api.DeleteEmbedding.Where;\n\t\t'where_document'?: Api.DeleteEmbedding.WhereDocument;\n\t}\n\n\t/**\n\t * @export\n\t * @namespace DeleteEmbedding\n\t */\n\texport namespace DeleteEmbedding {\n\t\texport interface Where {\n\t\t}\n\n\t\texport interface WhereDocument {\n\t\t}\n\n\t}\n\n\texport interface GetCollection200Response {\n\t}\n\n\texport interface GetDatabase200Response {\n\t}\n\n\texport interface GetEmbedding {\n\t\tids?: string[];\n\t\twhere?: Api.GetEmbedding.Where;\n\t\t'where_document'?: Api.GetEmbedding.WhereDocument;\n\t\tsort?: string;\n\t\t/**\n\t\t * @type {number}\n\t\t * @memberof GetEmbedding\n\t\t */\n\t\tlimit?: number;\n\t\t/**\n\t\t * @type {number}\n\t\t * @memberof GetEmbedding\n\t\t */\n\t\toffset?: number;\n\t\tinclude?: (Api.GetEmbedding.Include.EnumValueEnum | Api.GetEmbedding.Include.EnumValueEnum2 | Api.GetEmbedding.Include.EnumValueEnum3 | Api.GetEmbedding.Include.EnumValueEnum4 | Api.GetEmbedding.Include.EnumValueEnum5 | Api.GetEmbedding.Include.EnumValueEnum6)[];\n\t}\n\n\t/**\n\t * @export\n\t * @namespace GetEmbedding\n\t */\n\texport namespace GetEmbedding {\n\t\texport interface Where {\n\t\t}\n\n\t\texport interface WhereDocument {\n\t\t}\n\n\t\texport type Include = Api.GetEmbedding.Include.EnumValueEnum | Api.GetEmbedding.Include.EnumValueEnum2 | Api.GetEmbedding.Include.EnumValueEnum3 | Api.GetEmbedding.Include.EnumValueEnum4 | Api.GetEmbedding.Include.EnumValueEnum5 | Api.GetEmbedding.Include.EnumValueEnum6;\n\n\t\t/**\n\t\t * @export\n\t\t * @namespace Include\n\t\t */\n\t\texport namespace Include {\n\t\t\texport enum EnumValueEnum {\n\t\t\t\tDocuments = 'documents'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum2 {\n\t\t\t\tEmbeddings = 'embeddings'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum3 {\n\t\t\t\tMetadatas = 'metadatas'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum4 {\n\t\t\t\tDistances = 'distances'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum5 {\n\t\t\t\tUris = 'uris'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum6 {\n\t\t\t\tData = 'data'\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\texport interface GetNearestNeighbors200Response {\n\t}\n\n\texport interface GetTenant200Response {\n\t}\n\n\texport interface HTTPValidationError {\n\t\tdetail?: Api.ValidationError[];\n\t}\n\n\texport interface ListCollections200Response {\n\t}\n\n\texport interface PreFlightChecks200Response {\n\t}\n\n\texport interface QueryEmbedding {\n\t\twhere?: Api.QueryEmbedding.Where;\n\t\t'where_document'?: Api.QueryEmbedding.WhereDocument;\n\t\t'query_embeddings': Api.QueryEmbedding.QueryEmbedding2[];\n\t\t/**\n\t\t * @type {number}\n\t\t * @memberof QueryEmbedding\n\t\t */\n\t\t'n_results'?: number;\n\t\tinclude?: (Api.QueryEmbedding.Include.EnumValueEnum | Api.QueryEmbedding.Include.EnumValueEnum2 | Api.QueryEmbedding.Include.EnumValueEnum3 | Api.QueryEmbedding.Include.EnumValueEnum4 | Api.QueryEmbedding.Include.EnumValueEnum5 | Api.QueryEmbedding.Include.EnumValueEnum6)[];\n\t}\n\n\t/**\n\t * @export\n\t * @namespace QueryEmbedding\n\t */\n\texport namespace QueryEmbedding {\n\t\texport interface Where {\n\t\t}\n\n\t\texport interface WhereDocument {\n\t\t}\n\n\t\texport interface QueryEmbedding2 {\n\t\t}\n\n\t\texport type Include = Api.QueryEmbedding.Include.EnumValueEnum | Api.QueryEmbedding.Include.EnumValueEnum2 | Api.QueryEmbedding.Include.EnumValueEnum3 | Api.QueryEmbedding.Include.EnumValueEnum4 | Api.QueryEmbedding.Include.EnumValueEnum5 | Api.QueryEmbedding.Include.EnumValueEnum6;\n\n\t\t/**\n\t\t * @export\n\t\t * @namespace Include\n\t\t */\n\t\texport namespace Include {\n\t\t\texport enum EnumValueEnum {\n\t\t\t\tDocuments = 'documents'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum2 {\n\t\t\t\tEmbeddings = 'embeddings'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum3 {\n\t\t\t\tMetadatas = 'metadatas'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum4 {\n\t\t\t\tDistances = 'distances'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum5 {\n\t\t\t\tUris = 'uris'\n\t\t\t}\n\n\t\t\texport enum EnumValueEnum6 {\n\t\t\t\tData = 'data'\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\texport interface Update200Response {\n\t}\n\n\texport interface UpdateCollection {\n\t\t'new_name'?: string;\n\t\t'new_metadata'?: Api.UpdateCollection.NewMetadata;\n\t}\n\n\t/**\n\t * @export\n\t * @namespace UpdateCollection\n\t */\n\texport namespace UpdateCollection {\n\t\texport interface NewMetadata {\n\t\t}\n\n\t}\n\n\texport interface UpdateCollection200Response {\n\t}\n\n\texport interface UpdateEmbedding {\n\t\tembeddings?: Api.UpdateEmbedding.Embedding[];\n\t\tmetadatas?: Api.UpdateEmbedding.Metadata[];\n\t\tdocuments?: string[];\n\t\turis?: string[];\n\t\tids: string[];\n\t}\n\n\t/**\n\t * @export\n\t * @namespace UpdateEmbedding\n\t */\n\texport namespace UpdateEmbedding {\n\t\texport interface Embedding {\n\t\t}\n\n\t\texport interface Metadata {\n\t\t}\n\n\t}\n\n\texport interface Upsert200Response {\n\t}\n\n\texport interface ValidationError {\n\t\tloc: (string | number)[];\n\t\tmsg: string;\n\t\t'type': string;\n\t}\n\n}\n","/* eslint-disable */\n// tslint:disable\n/**\n * FastAPI\n * \n *\n * OpenAPI spec version: 0.1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator+.\n * https://github.com/karlvr/openapi-generator-plus\n * Do not edit the class manually.\n */\n\nexport interface ConfigurationParameters {\n\tapiKey?: string | ((name: string) => string | null);\n\tusername?: string;\n\tpassword?: string;\n\tauthorization?: string | ((name: string, scopes?: string[]) => string | null);\n\tbasePath?: string;\n}\n\nexport class Configuration {\n\t/**\n\t * parameter for apiKey security\n\t * @param name security name\n\t * @memberof Configuration\n\t */\n\tapiKey?: string | ((name: string) => string | null);\n\t/**\n\t * parameter for basic security\n\t * \n\t * @type {string}\n\t * @memberof Configuration\n\t */\n\tusername?: string;\n\t/**\n\t * parameter for basic security\n\t * \n\t * @type {string}\n\t * @memberof Configuration\n\t */\n\tpassword?: string;\n\t/**\n\t * parameter for oauth2, openIdConnect or http security\n\t * @param name security name\n\t * @param scopes oauth2 scopes\n\t * @memberof Configuration\n\t */\n\tauthorization?: string | ((name: string, scopes?: string[]) => string | null);\n\t/**\n\t * override base path\n\t * \n\t * @type {string}\n\t * @memberof Configuration\n\t */\n\tbasePath?: string;\n\n\tconstructor(param: ConfigurationParameters = {}) {\n\t\tthis.apiKey = param.apiKey;\n\t\tthis.username = param.username;\n\t\tthis.password = param.password;\n\t\tthis.authorization = param.authorization;\n\t\tthis.basePath = param.basePath;\n\t}\n}\n","import { Api } from \"./generated\";\nimport Count200Response = Api.Count200Response;\nimport { AdminClient } from \"./AdminClient\";\n\n// a function to convert a non-Array object to an Array\nexport function toArray<T>(obj: T | Array<T>): Array<T> {\n if (Array.isArray(obj)) {\n return obj;\n } else {\n return [obj];\n }\n}\n\n// a function to convert an array to array of arrays\nexport function toArrayOfArrays<T>(\n obj: Array<Array<T>> | Array<T>\n): Array<Array<T>> {\n if (Array.isArray(obj[0])) {\n return obj as Array<Array<T>>;\n } else {\n return [obj] as Array<Array<T>>;\n }\n}\n\n// we need to override constructors to make it work with jest\n// https://stackoverflow.com/questions/76007003/jest-tobeinstanceof-expected-constructor-array-received-constructor-array\nexport function repack(value: unknown): any {\n if (Boolean(value) && typeof value === \"object\") {\n if (Array.isArray(value)) {\n return new Array(...value);\n } else {\n return { ...value };\n }\n } else {\n return value;\n }\n}\n\nexport async function handleError(error: unknown) {\n if (error instanceof Response) {\n try {\n const res = await (error as Response).json();\n if (\"error\" in res) {\n return { error: res.error };\n }\n } catch (e: unknown) {\n return {\n error:\n e && typeof e === \"object\" && \"message\" in e\n ? e.message\n : \"unknown error\",\n };\n }\n }\n return { error };\n}\n\nexport async function handleSuccess(\n response: Response | string | Count200Response\n) {\n switch (true) {\n case response instanceof Response:\n return repack(await (response as Response).json());\n case typeof response === \"string\":\n return repack(response as string); // currently version is the only thing that return non-JSON\n default:\n return repack(response);\n }\n}\n\n/**\n * Dynamically imports a specified module, providing a workaround for browser environments.\n * This function is necessary because we dynamically import optional dependencies\n * which can cause issues with bundlers that detect the import and throw an error\n * on build time when the dependency is not installed.\n * Using this workaround, the dynamic import is only evaluated on runtime\n * where we work with try-catch when importing optional dependencies.\n *\n * @param {string} moduleName - Specifies the module to import.\n * @returns {Promise<any>} Returns a Promise that resolves to the imported module.\n */\nexport async function importOptionalModule(moduleName: string) {\n return Function(`return import(\"${moduleName}\")`)();\n}\n\n\nexport async function validateTenantDatabase(adminClient: AdminClient, tenant: string, database: string): Promise<void> {\n try {\n await adminClient.getTenant({name: tenant});\n } catch (error) {\n throw new Error(`Error: ${error}, Could not connect to tenant ${tenant}. Are you sure it exists?`);\n }\n\n try {\n await adminClient.getDatabase({name: database, tenantName: tenant});\n } catch (error) {\n throw new Error(`Error: ${error}, Could not connect to database ${database} for tenant ${tenant}. Are you sure it exists?`);\n }\n}\n","import {\n GetResponse,\n QueryResponse,\n AddResponse,\n CollectionMetadata,\n ConfigOptions,\n GetParams,\n AddParams,\n UpsertParams,\n ModifyCollectionParams,\n UpdateParams,\n QueryParams,\n PeekParams,\n DeleteParams\n} from \"./types\";\nimport { IEmbeddingFunction } from './embeddings/IEmbeddingFunction';\nimport { ApiApi as DefaultApi } from \"./generated\";\nimport { handleError, handleSuccess } from \"./utils\";\nimport { toArray, toArrayOfArrays } from \"./utils\";\n\n\nexport class Collection {\n public name: string;\n public id: string;\n public metadata: CollectionMetadata | undefined;\n /**\n * @ignore\n */\n private api: DefaultApi & ConfigOptions;\n /**\n * @ignore\n */\n public embeddingFunction: IEmbeddingFunction | undefined;\n\n /**\n * @ignore\n */\n constructor(\n name: string,\n id: string,\n api: DefaultApi,\n metadata?: CollectionMetadata,\n embeddingFunction?: IEmbeddingFunction\n ) {\n this.name = name;\n this.id = id;\n this.metadata = metadata;\n this.api = api;\n if (embeddingFunction !== undefined)\n this.embeddingFunction = embeddingFunction;\n }\n\n /**\n * @ignore\n */\n private setName(name: string): void {\n this.name = name;\n }\n /**\n * @ignore\n */\n private setMetadata(metadata: CollectionMetadata | undefined): void {\n this.metadata = metadata;\n }\n\n /**\n * @ignore\n */\n private async validate(\n require_embeddings_or_documents: boolean, // set to false in the case of Update\n ids: string | string[],\n embeddings: number[] | number[][] | undefined,\n metadatas?: object | object[],\n documents?: string | string[],\n ) {\n\n if (require_embeddings_or_documents) {\n if ((embeddings === undefined) && (documents === undefined)) {\n throw new Error(\n \"embeddings and documents cannot both be undefined\",\n );\n }\n }\n\n if ((embeddings === undefined) && (documents !== undefined)) {\n const documentsArray = toArray(documents);\n if (this.embeddingFunction !== undefined) {\n embeddings = await this.embeddingFunction.generate(documentsArray);\n } else {\n throw new Error(\n \"embeddingFunction is undefined. Please configure an embedding function\"\n );\n }\n }\n if (embeddings === undefined)\n throw new Error(\"embeddings is undefined but shouldnt be\");\n\n const idsArray = toArray(ids);\n const embeddingsArray: number[][] = toArrayOfArrays(embeddings);\n\n let metadatasArray: object[] | undefined;\n if (metadatas === undefined) {\n metadatasArray = undefined;\n } else {\n metadatasArray = toArray(metadatas);\n }\n\n let documentsArray: (string | undefined)[] | undefined;\n if (documents === undefined) {\n documentsArray = undefined;\n } else {\n documentsArray = toArray(documents);\n }\n\n // validate all ids are strings\n for (let i = 0; i < idsArray.length; i += 1) {\n if (typeof idsArray[i] !== \"string\") {\n throw new Error(\n `Expected ids to be strings, found ${typeof idsArray[i]} at index ${i}`\n );\n }\n }\n\n if (\n (embeddingsArray !== undefined &&\n idsArray.length !== embeddingsArray.length) ||\n (metadatasArray !== undefined &&\n idsArray.length !== metadatasArray.length) ||\n (documentsArray !== undefined &&\n idsArray.length !== documentsArray.length)\n ) {\n throw new Error(\n \"ids, embeddings, metadatas, and documents must all be the same length\"\n );\n }\n\n const uniqueIds = new Set(idsArray);\n if (uniqueIds.size !== idsArray.length) {\n const duplicateIds = idsArray.filter((item, index) => idsArray.indexOf(item) !== index);\n throw new Error(\n `Expected IDs to be unique, found duplicates for: ${duplicateIds}`,\n );\n }\n\n return [idsArray, embeddingsArray, metadatasArray, documentsArray]\n }\n\n /**\n * Add items to the collection\n * @param {Object} params - The parameters for the query.\n * @param {ID | IDs} [params.ids] - IDs of the items to add.\n * @param {Embedding | Embeddings} [params.embeddings] - Optional embeddings of the items to add.\n * @param {Metadata | Metadatas} [params.metadatas] - Optional metadata of the items to add.\n * @param {Document | Documents} [params.documents] - Optional documents of the items to add.\n * @returns {Promise<AddResponse>} - The response from the API. True if successful.\n *\n * @example\n * ```typescript\n * const response = await collection.add({\n * ids: [\"id1\", \"id2\"],\n * embeddings: [[1, 2, 3], [4, 5, 6]],\n * metadatas: [{ \"key\": \"value\" }, { \"key\": \"value\" }],\n * documents: [\"document1\", \"document2\"]\n * });\n * ```\n */\n public async add({\n ids,\n embeddings,\n metadatas,\n documents,\n }: AddParams): Promise<AddResponse> {\n\n const [idsArray, embeddingsArray, metadatasArray, documentsArray] = await this.validate(\n true,\n ids,\n embeddings,\n metadatas,\n documents\n )\n\n const response = await this.api.add(this.id,\n {\n // @ts-ignore\n ids: idsArray,\n embeddings: embeddingsArray as number[][], // We know this is defined because of the validate function\n // @ts-ignore\n documents: documentsArray,\n // @ts-ignore\n metadatas: metadatasArray,\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n return response\n }\n\n /**\n * Upsert items to the collection\n * @param {Object} params - The parameters for the query.\n * @param {ID | IDs} [params.ids] - IDs of the items to add.\n * @param {Embedding | Embeddings} [params.embeddings] - Optional embeddings of the items to add.\n * @param {Metadata | Metadatas} [params.metadatas] - Optional metadata of the items to add.\n * @param {Document | Documents} [params.documents] - Optional documents of the items to add.\n * @returns {Promise<boolean>} - The response from the API. True if successful.\n *\n * @example\n * ```typescript\n * const response = await collection.upsert({\n * ids: [\"id1\", \"id2\"],\n * embeddings: [[1, 2, 3], [4, 5, 6]],\n * metadatas: [{ \"key\": \"value\" }, { \"key\": \"value\" }],\n * documents: [\"document1\", \"document2\"],\n * });\n * ```\n */\n public async upsert({\n ids,\n embeddings,\n metadatas,\n documents,\n }: UpsertParams): Promise<boolean> {\n const [idsArray, embeddingsArray, metadatasArray, documentsArray] = await this.validate(\n true,\n ids,\n embeddings,\n metadatas,\n documents\n )\n\n const response = await this.api.upsert(this.id,\n {\n //@ts-ignore\n ids: idsArray,\n embeddings: embeddingsArray as number[][], // We know this is defined because of the validate function\n //@ts-ignore\n documents: documentsArray,\n //@ts-ignore\n metadatas: metadatasArray,\n },\n this.api.options\n )\n .then(handleSuccess)\n .catch(handleError);\n\n return response\n\n }\n\n /**\n * Count the number of items in the collection\n * @returns {Promise<number>} - The response from the API.\n *\n * @example\n * ```typescript\n * const response = await collection.count();\n * ```\n */\n public async count(): Promise<number> {\n const response = await this.api.count(this.id, this.api.options);\n return handleSuccess(response);\n }\n\n /**\n * Modify the collection name or metadata\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.name] - Optional new name for the collection.\n * @param {CollectionMetadata} [params.metadata] - Optional new metadata for the collection.\n * @returns {Promise<void>} - The response from the API.\n *\n * @example\n * ```typescript\n * const response = await collection.modify({\n * name: \"new name\",\n * metadata: { \"key\": \"value\" },\n * });\n * ```\n */\n public async modify({\n name,\n metadata\n }: ModifyCollectionParams = {}): Promise<void> {\n const response = await this.api\n .updateCollection(\n this.id,\n {\n new_name: name,\n new_metadata: metadata,\n },\n this.api.options\n )\n .then(handleSuccess)\n .catch(handleError);\n\n this.setName(name || this.name);\n this.setMetadata(metadata || this.metadata);\n\n return response;\n }\n\n /**\n * Get items from the collection\n * @param {Object} params - The parameters for the query.\n * @param {ID | IDs} [params.ids] - Optional IDs of the items to get.\n * @param {Where} [params.where] - Optional where clause to filter items by.\n * @param {PositiveInteger} [params.limit] - Optional limit on the number of items to get.\n * @param {PositiveInteger} [params.offset] - Optional offset on the items to get.\n * @param {IncludeEnum[]} [params.include] - Optional list of items to include in the response.\n * @param {WhereDocument} [params.whereDocument] - Optional where clause to filter items by.\n * @returns {Promise<GetResponse>} - The response from the server.\n *\n * @example\n * ```typescript\n * const response = await collection.get({\n * ids: [\"id1\", \"id2\"],\n * where: { \"key\": \"value\" },\n * limit: 10,\n * offset: 0,\n * include: [\"embeddings\", \"metadatas\", \"documents\"],\n * whereDocument: { $contains: \"value\" },\n * });\n * ```\n */\n public async get({\n ids,\n where,\n limit,\n offset,\n include,\n whereDocument,\n }: GetParams = {}): Promise<GetResponse> {\n let idsArray = undefined;\n if (ids !== undefined) idsArray = toArray(ids);\n\n return await this.api\n .aGet(this.id, {\n ids: idsArray,\n where,\n limit,\n offset,\n //@ts-ignore\n include,\n where_document: whereDocument,\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n }\n\n /**\n * Update the embeddings, documents, and/or metadatas of existing items\n * @param {Object} params - The parameters for the query.\n * @param {ID | IDs} [params.ids] - The IDs of the items to update.\n * @param {Embedding | Embeddings} [params.embeddings] - Optional embeddings to update.\n * @param {Metadata | Metadatas} [params.metadatas] - Optional metadatas to update.\n * @param {Document | Documents} [params.documents] - Optional documents to update.\n * @returns {Promise<boolean>} - The API Response. True if successful. Else, error.\n *\n * @example\n * ```typescript\n * const response = await collection.update({\n * ids: [\"id1\", \"id2\"],\n * embeddings: [[1, 2, 3], [4, 5, 6]],\n * metadatas: [{ \"key\": \"value\" }, { \"key\": \"value\" }],\n * documents: [\"new document 1\", \"new document 2\"],\n * });\n * ```\n */\n public async update({\n ids,\n embeddings,\n metadatas,\n documents,\n }: UpdateParams): Promise<boolean> {\n if (\n embeddings === undefined &&\n documents === undefined &&\n metadatas === undefined\n ) {\n throw new Error(\n \"embeddings, documents, and metadatas cannot all be undefined\"\n );\n } else if (embeddings === undefined && documents !== undefined) {\n const documentsArray = toArray(documents);\n if (this.embeddingFunction !== undefined) {\n embeddings = await this.embeddingFunction.generate(documentsArray);\n } else {\n throw new Error(\n \"embeddingFunction is undefined. Please configure an embedding function\"\n );\n }\n }\n\n // backend expects None if metadatas is undefined\n if (metadatas !== undefined) metadatas = toArray(metadatas);\n if (documents !== undefined) documents = toArray(documents);\n\n var resp = await this.api\n .update(\n this.id,\n {\n ids: toArray(ids),\n embeddings: embeddings ? toArrayOfArrays(embeddings) : undefined,\n documents: documents,\n metadatas: metadatas\n },\n this.api.options\n )\n .then(handleSuccess)\n .catch(handleError);\n\n return resp;\n }\n\n /**\n * Performs a query on the collection using the specified parameters.\n *\n * @param {Object} params - The parameters for the query.\n * @param {Embedding | Embeddings} [params.queryEmbeddings] - Optional query embeddings to use for the search.\n * @param {PositiveInteger} [params.nResults] - Optional number of results to return (default is 10).\n * @param {Where} [params.where] - Optional query condition to filter results based on metadata values.\n * @param {string | string[]} [params.queryTexts] - Optional query text(s) to search for in the collection.\n * @param {WhereDocument} [params.whereDocument] - Optional query condition to filter results based on document content.\n * @param {IncludeEnum[]} [params.include] - Optional array of fields to include in the result, such as \"metadata\" and \"document\".\n *\n * @returns {Promise<QueryResponse>} A promise that resolves to the query results.\n * @throws {Error} If there is an issue executing the query.\n * @example\n * // Query the collection using embeddings\n * const results = await collection.query({\n * queryEmbeddings: [[0.1, 0.2, ...], ...],\n * nResults: 10,\n * where: {\"name\": {\"$eq\": \"John Doe\"}},\n * include: [\"metadata\", \"document\"]\n * });\n * @example\n * ```js\n * // Query the collection using query text\n * const results = await collection.query({\n * queryTexts: \"some text\",\n * nResults: 10,\n * where: {\"name\": {\"$eq\": \"John Doe\"}},\n * include: [\"metadata\", \"document\"]\n * });\n * ```\n *\n */\n public async query({\n queryEmbeddings,\n nResults,\n where,\n queryTexts,\n whereDocument,\n include,\n }: QueryParams): Promise<QueryResponse> {\n if (nResults === undefined) nResults = 10\n if (queryEmbeddings === undefined && queryTexts === undefined) {\n throw new Error(\n \"queryEmbeddings and queryTexts cannot both be undefined\"\n );\n } else if (queryEmbeddings === undefined && queryTexts !== undefined) {\n const queryTextsArray = toArray(queryTexts);\n if (this.embeddingFunction !== undefined) {\n queryEmbeddings = await this.embeddingFunction.generate(queryTextsArray);\n } else {\n throw new Error(\n \"embeddingFunction is undefined. Please configure an embedding function\"\n );\n }\n }\n if (queryEmbeddings === undefined)\n throw new Error(\"embeddings is undefined but shouldnt be\");\n\n const query_embeddingsArray = toArrayOfArrays(queryEmbeddings);\n\n return await this.api\n .getNearestNeighbors(this.id, {\n query_embeddings: query_embeddingsArray,\n where,\n n_results: nResults,\n where_document: whereDocument,\n //@ts-ignore\n include: include,\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n }\n\n /**\n * Peek inside the collection\n * @param {Object} params - The parameters for the query.\n * @param {PositiveInteger} [params.limit] - Optional number of results to return (default is 10).\n * @returns {Promise<GetResponse>} A promise that resolves to the query results.\n * @throws {Error} If there is an issue executing the query.\n *\n * @example\n * ```typescript\n * const results = await collection.peek({\n * limit: 10\n * });\n * ```\n */\n public async peek({ limit }: PeekParams = {}): Promise<GetResponse> {\n if (limit === undefined) limit = 10;\n const response = await this.api.aGet(this.id, {\n limit: limit,\n }, this.api.options);\n return handleSuccess(response);\n }\n\n /**\n * Deletes items from the collection.\n * @param {Object} params - The parameters for deleting items from the collection.\n * @param {ID | IDs} [params.ids] - Optional ID or array of IDs of items to delete.\n * @param {Where} [params.where] - Optional query condition to filter items to delete based on metadata values.\n * @param {WhereDocument} [params.whereDocument] - Optional query condition to filter items to delete based on document content.\n * @returns {Promise<string[]>} A promise that resolves to the IDs of the deleted items.\n * @throws {Error} If there is an issue deleting items from the collection.\n *\n * @example\n * ```typescript\n * const results = await collection.delete({\n * ids: \"some_id\",\n * where: {\"name\": {\"$eq\": \"John Doe\"}},\n * whereDocument: {\"$contains\":\"search_string\"}\n * });\n * ```\n */\n public async delete({\n ids,\n where,\n whereDocument\n }: DeleteParams = {}): Promise<string[]> {\n let idsArray = undefined;\n if (ids !== undefined) idsArray = toArray(ids);\n return await this.api\n .aDelete(this.id, { ids: idsArray, where: where, where_document: whereDocument }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n }\n}\n","import {ApiApi as DefaultApi} from \"./generated\";\n\nexport interface ClientAuthProvider {\n /**\n * Abstract method for authenticating a client.\n */\n authenticate(): ClientAuthResponse;\n}\n\nexport interface ClientAuthConfigurationProvider<T> {\n /**\n * Abstract method for getting the configuration for the client.\n */\n getConfig(): T;\n}\n\nexport interface ClientAuthCredentialsProvider<T> {\n /**\n * Abstract method for getting the credentials for the client.\n * @param user\n */\n getCredentials(user?: string): T;\n}\n\nenum AuthInfoType {\n COOKIE = \"cookie\",\n HEADER = \"header\",\n URL = \"url\",\n METADATA = \"metadata\"\n\n}\n\nexport interface ClientAuthResponse {\n getAuthInfoType(): AuthInfoType;\n\n getAuthInfo(): { key: string, value: string };\n}\n\n\nexport interface AbstractCredentials<T> {\n getCredentials(): T;\n}\n\nexport interface ClientAuthProtocolAdapter<T> {\n injectCredentials(injectionContext: T): T;\n\n getApi(): any;\n}\n\n\nclass SecretStr {\n constructor(private readonly secret: string) {\n }\n\n getSecret(): string {\n return this.secret;\n }\n}\n\nconst base64Encode = (str: string): string => {\n return Buffer.from(str).toString('base64');\n};\n\nclass BasicAuthCredentials implements AbstractCredentials<SecretStr> {\n private readonly credentials: SecretStr;\n\n constructor(_creds: string) {\n this.credentials = new SecretStr(base64Encode(_creds))\n }\n\n getCredentials(): SecretStr {\n //encode base64\n return this.credentials;\n }\n}\n\n\nclass BasicAuthClientAuthResponse implements ClientAuthResponse {\n constructor(private readonly credentials: BasicAuthCredentials) {\n }\n\n getAuthInfo(): { key: string; value: string } {\n return {key: \"Authorization\", value: \"Basic \" + this.credentials.getCredentials().getSecret()};\n }\n\n getAuthInfoType(): AuthInfoType {\n return AuthInfoType.HEADER;\n }\n}\n\nexport class BasicAuthCredentialsProvider implements ClientAuthCredentialsProvider<BasicAuthCredentials> {\n private readonly credentials: BasicAuthCredentials;\n\n /**\n * Creates a new BasicAuthCredentialsProvider. This provider loads credentials from provided text credentials or from the environment variable CHROMA_CLIENT_AUTH_CREDENTIALS.\n * @param _creds - The credentials\n * @throws {Error} If neither credentials provider or text credentials are supplied.\n */\n\n constructor(_creds: string | undefined) {\n if (_creds === undefined && !process.env.CHROMA_CLIENT_AUTH_CREDENTIALS) throw new Error(\"Credentials must be supplied via environment variable (CHROMA_CLIENT_AUTH_CREDENTIALS) or passed in as configuration.\");\n this.credentials = new BasicAuthCredentials((_creds ?? process.env.CHROMA_CLIENT_AUTH_CREDENTIALS) as string);\n }\n\n getCredentials(): BasicAuthCredentials {\n return this.credentials;\n }\n}\n\nclass BasicAuthClientAuthProvider implements ClientAuthProvider {\n private readonly credentialsProvider: ClientAuthCredentialsProvider<any>;\n\n /**\n * Creates a new BasicAuthClientAuthProvider.\n * @param options - The options for the authentication provider.\n * @param options.textCredentials - The credentials for the authentication provider.\n * @param options.credentialsProvider - The credentials provider for the authentication provider.\n * @throws {Error} If neither credentials provider or text credentials are supplied.\n */\n\n constructor(options: {\n textCredentials: any;\n credentialsProvider: ClientAuthCredentialsProvider<any> | undefined\n }) {\n if (!options.credentialsProvider && !options.textCredentials) {\n throw new Error(\"Either credentials provider or text credentials must be supplied.\");\n }\n this.credentialsProvider = options.credentialsProvider || new BasicAuthCredentialsProvider(options.textCredentials);\n }\n\n authenticate(): ClientAuthResponse {\n return new BasicAuthClientAuthResponse(this.credentialsProvider.getCredentials());\n }\n}\n\nclass TokenAuthCredentials implements AbstractCredentials<SecretStr> {\n private readonly credentials: SecretStr;\n\n constructor(_creds: string) {\n this.credentials = new SecretStr(_creds)\n }\n\n getCredentials(): SecretStr {\n return this.credentials;\n }\n}\n\nexport class TokenCredentialsProvider implements ClientAuthCredentialsProvider<TokenAuthCredentials> {\n private readonly credentials: TokenAuthCredentials;\n\n constructor(_creds: string | undefined) {\n if (_creds === undefined && !process.env.CHROMA_CLIENT_AUTH_CREDENTIALS) throw new Error(\"Credentials must be supplied via environment variable (CHROMA_CLIENT_AUTH_CREDENTIALS) or passed in as configuration.\");\n this.credentials = new TokenAuthCredentials((_creds ?? process.env.CHROMA_CLIENT_AUTH_CREDENTIALS) as string);\n }\n\n getCredentials(): TokenAuthCredentials {\n return this.credentials;\n }\n}\n\nexport class TokenClientAuthProvider implements ClientAuthProvider {\n private readonly credentialsProvider: ClientAuthCredentialsProvider<any>;\n private readonly providerOptions: { headerType: TokenHeaderType };\n\n constructor(options: {\n textCredentials: any;\n credentialsProvider: ClientAuthCredentialsProvider<any> | undefined,\n providerOptions?: { headerType: TokenHeaderType }\n }) {\n if (!options.credentialsProvider && !options.textCredentials) {\n throw new Error(\"Either credentials provider or text credentials must be supplied.\");\n }\n if (options.providerOptions === undefined || !options.providerOptions.hasOwnProperty(\"headerType\")) {\n this.providerOptions = {headerType: \"AUTHORIZATION\"};\n } else {\n this.providerOptions = {headerType: options.providerOptions.headerType};\n }\n this.credentialsProvider = options.credentialsProvider || new TokenCredentialsProvider(options.textCredentials);\n }\n\n authenticate(): ClientAuthResponse {\n return new TokenClientAuthResponse(this.credentialsProvider.getCredentials(), this.providerOptions.headerType);\n }\n\n}\n\n\ntype TokenHeaderType = 'AUTHORIZATION' | 'X_CHROMA_TOKEN';\n\nconst TokenHeader: Record<TokenHeaderType, (value: string) => { key: string; value: string; }> = {\n AUTHORIZATION: (value: string) => ({key: \"Authorization\", value: `Bearer ${value}`}),\n X_CHROMA_TOKEN: (value: string) => ({key: \"X-Chroma-Token\", value: value})\n}\n\nclass TokenClientAuthResponse implements ClientAuthResponse {\n constructor(private readonly credentials: TokenAuthCredentials, private readonly headerType: TokenHeaderType = 'AUTHORIZATION') {\n }\n\n getAuthInfo(): { key: string; value: string } {\n if (this.headerType === 'AUTHORIZATION') {\n return TokenHeader.AUTHORIZATION(this.credentials.getCredentials().getSecret());\n } else if (this.headerType === 'X_CHROMA_TOKEN') {\n return TokenHeader.X_CHROMA_TOKEN(this.credentials.getCredentials().getSecret());\n } else {\n throw new Error(\"Invalid header type: \" + this.headerType + \". Valid types are: \" + Object.keys(TokenHeader).join(\", \"));\n }\n }\n\n getAuthInfoType(): AuthInfoType {\n return AuthInfoType.HEADER;\n }\n}\n\n\nexport class IsomorphicFetchClientAuthProtocolAdapter implements ClientAuthProtocolAdapter<RequestInit> {\n authProvider: ClientAuthProvider | undefined;\n wrapperApi: DefaultApi | undefined;\n\n /**\n * Creates a new adapter of IsomorphicFetchClientAuthProtocolAdapter.\n * @param api - The API to wrap.\n * @param authConfiguration - The configuration for the authentication provider.\n */\n\n constructor(private api: DefaultApi, authConfiguration: AuthOptions) {\n\n switch (authConfiguration.provider) {\n case \"basic\":\n this.authProvider = new BasicAuthClientAuthProvider({\n textCredentials: authConfiguration.credentials,\n credentialsProvider: authConfiguration.credentialsProvider\n });\n break;\n case \"token\":\n this.authProvider = new TokenClientAuthProvider({\n textCredentials: authConfiguration.credentials,\n credentialsProvider: authConfiguration.credentialsProvider,\n providerOptions: authConfiguration.providerOptions\n });\n break;\n default:\n this.authProvider = undefined;\n break;\n }\n if (this.authProvider !== undefined) {\n this.wrapperApi = this.wrapMethods(this.api);\n }\n }\n\n getApi(): DefaultApi {\n return this.wrapperApi ?? this.api;\n }\n\n getAllMethods(obj: any): string[] {\n let methods: string[] = [];\n let currentObj = obj;\n\n do {\n const objMethods = Object.getOwnPropertyNames(currentObj)\n .filter(name => typeof currentObj[name] === 'function' && name !== 'constructor');\n\n methods = methods.concat(objMethods);\n currentObj = Object.getPrototypeOf(currentObj);\n } while (currentObj);\n\n return methods;\n }\n\n wrapMethods(obj: any): any {\n let self = this;\n const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj))\n .filter(name => typeof obj[name] === 'function' && name !== 'constructor');\n\n return new Proxy(obj, {\n get(target, prop: string) {\n if (methodNames.includes(prop)) {\n return new Proxy(target[prop], {\n apply(fn, thisArg, args) {\n const modifiedArgs = args.map(arg => {\n if (arg && typeof arg === 'object' && 'method' in arg) {\n return self.injectCredentials(arg as RequestInit);\n }\n return arg;\n });\n if (Object.keys(modifiedArgs[modifiedArgs.length - 1]).length === 0) {\n modifiedArgs[modifiedArgs.length - 1] = self.injectCredentials({} as RequestInit);\n } else {\n modifiedArgs[modifiedArgs.length - 1] = self.injectCredentials(modifiedArgs[modifiedArgs.length - 1] as RequestInit);\n }\n return fn.apply(thisArg, modifiedArgs);\n }\n });\n }\n return target[prop];\n }\n });\n }\n\n injectCredentials(injectionContext: RequestInit): RequestInit {\n const authInfo = this.authProvider?.authenticate().getAuthInfo();\n if (authInfo) {\n const {key, value} = authInfo;\n injectionContext = {\n ...injectionContext,\n headers: {\n [key]: value\n },\n }\n }\n return injectionContext;\n }\n}\n\n\nexport type AuthOptions = {\n provider: ClientAuthProvider | string | undefined,\n credentialsProvider?: ClientAuthCredentialsProvider<any> | undefined,\n configProvider?: ClientAuthConfigurationProvider<any> | undefined,\n credentials?: any | undefined,\n providerOptions?: any | undefined\n}\n","import { Configuration, ApiApi as DefaultApi } from \"./generated\";\nimport { handleSuccess, handleError, validateTenantDatabase } from \"./utils\";\nimport { ConfigOptions } from './types';\nimport {\n AuthOptions,\n ClientAuthProtocolAdapter,\n IsomorphicFetchClientAuthProtocolAdapter\n} from \"./auth\";\n\nconst DEFAULT_TENANT = \"default_tenant\"\nconst DEFAULT_DATABASE = \"default_database\"\n\n// interface for tenant\ninterface Tenant {\n name: string,\n}\n\n// interface for tenant\ninterface Database {\n name: string,\n}\n\nexport class AdminClient {\n /**\n * @ignore\n */\n private api: DefaultApi & ConfigOptions;\n private apiAdapter: ClientAuthProtocolAdapter<any>|undefined;\n public tenant: string = DEFAULT_TENANT;\n public database: string = DEFAULT_DATABASE;\n\n /**\n * Creates a new AdminClient instance.\n * @param {Object} params - The parameters for creating a new client\n * @param {string} [params.path] - The base path for the Chroma API.\n * @returns {AdminClient} A new AdminClient instance.\n *\n * @example\n * ```typescript\n * const client = new AdminClient({\n * path: \"http://localhost:8000\"\n * });\n * ```\n */\n constructor({\n path,\n fetchOptions,\n auth,\n tenant = DEFAULT_TENANT,\n database = DEFAULT_DATABASE\n }: {\n path?: string,\n fetchOptions?: RequestInit,\n auth?: AuthOptions,\n tenant?: string,\n database?: string,\n } = {}) {\n if (path === undefined) path = \"http://localhost:8000\";\n this.tenant = tenant;\n this.database = database;\n\n const apiConfig: Configuration = new Configuration({\n basePath: path,\n });\n if (auth !== undefined) {\n this.apiAdapter = new IsomorphicFetchClientAuthProtocolAdapter(new DefaultApi(apiConfig), auth);\n this.api = this.apiAdapter.getApi();\n } else {\n this.api = new DefaultApi(apiConfig);\n }\n\n this.api.options = fetchOptions ?? {};\n }\n\n /**\n * Sets the tenant and database for the client.\n *\n * @param {Object} params - The parameters for setting tenant and database.\n * @param {string} params.tenant - The name of the tenant.\n * @param {string} params.database - The name of the database.\n *\n * @returns {Promise<void>} A promise that returns nothing\n * @throws {Error} Any issues\n *\n * @example\n * ```typescript\n * await adminClient.setTenant({\n * tenant: \"my_tenant\",\n * database: \"my_database\",\n * });\n * ```\n */\n public async setTenant({\n tenant = DEFAULT_TENANT,\n database = DEFAULT_DATABASE\n }: {\n tenant: string,\n database?: string,\n }): Promise<void> {\n await validateTenantDatabase(this, tenant, database);\n this.tenant = tenant;\n this.database = database;\n }\n\n /**\n * Sets the database for the client.\n *\n * @param {Object} params - The parameters for setting the database.\n * @param {string} params.database - The name of the database.\n *\n * @returns {Promise<void>} A promise that returns nothing\n * @throws {Error} Any issues\n *\n * @example\n * ```typescript\n * await adminClient.setDatabase({\n * database: \"my_database\",\n * });\n * ```\n */\n public async setDatabase({\n database = DEFAULT_DATABASE\n }: {\n database?: string,\n }): Promise<void> {\n await validateTenantDatabase(this, this.tenant, database);\n this.database = database;\n }\n\n /**\n * Creates a new tenant with the specified properties.\n *\n * @param {Object} params - The parameters for creating a new tenant.\n * @param {string} params.name - The name of the tenant.\n *\n * @returns {Promise<Tenant>} A promise that resolves to the created tenant.\n * @throws {Error} If there is an issue creating the tenant.\n *\n * @example\n * ```typescript\n * await adminClient.createTenant({\n * name: \"my_tenant\",\n * });\n * ```\n */\n public async createTenant({\n name,\n }: {\n name: string,\n }): Promise<Tenant> {\n const newTenant = await this.api\n .createTenant({name}, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n // newTenant is null if successful\n if (newTenant && newTenant.error) {\n throw new Error(newTenant.error);\n }\n\n return {name: name} as Tenant\n }\n\n /**\n * Gets a tenant with the specified properties.\n *\n * @param {Object} params - The parameters for getting a tenant.\n * @param {string} params.name - The name of the tenant.\n *\n * @returns {Promise<Tenant>} A promise that resolves to the tenant.\n * @throws {Error} If there is an issue getting the tenant.\n *\n * @example\n * ```typescript\n * await adminClient.getTenant({\n * name: \"my_tenant\",\n * });\n * ```\n */\n public async getTenant({\n name,\n }: {\n name: string,\n }): Promise<Tenant> {\n const getTenant = await this.api\n .getTenant(name, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (getTenant.error) {\n throw new Error(getTenant.error);\n }\n\n return {name: getTenant.name} as Tenant\n }\n\n /**\n * Creates a new database with the specified properties.\n *\n * @param {Object} params - The parameters for creating a new database.\n * @param {string} params.name - The name of the database.\n * @param {string} params.tenantName - The name of the tenant.\n *\n * @returns {Promise<Database>} A promise that resolves to the created database.\n * @throws {Error} If there is an issue creating the database.\n *\n * @example\n * ```typescript\n * await adminClient.createDatabase({\n * name: \"my_database\",\n * tenantName: \"my_tenant\",\n * });\n * ```\n */\n public async createDatabase({\n name,\n tenantName\n }: {\n name: string,\n tenantName: string,\n }): Promise<Database> {\n const newDatabase = await this.api\n .createDatabase(tenantName, {name}, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n // newDatabase is null if successful\n if (newDatabase && newDatabase.error) {\n throw new Error(newDatabase.error);\n }\n\n return {name: name} as Database\n }\n\n /**\n * Gets a database with the specified properties.\n *\n * @param {Object} params - The parameters for getting a database.\n * @param {string} params.name - The name of the database.\n * @param {string} params.tenantName - The name of the tenant.\n *\n * @returns {Promise<Database>} A promise that resolves to the database.\n * @throws {Error} If there is an issue getting the database.\n *\n * @example\n * ```typescript\n * await adminClient.getDatabase({\n * name: \"my_database\",\n * tenantName: \"my_tenant\",\n * });\n * ```\n */\n public async getDatabase({\n name,\n tenantName\n }: {\n name: string,\n tenantName: string,\n }): Promise<Database> {\n const getDatabase = await this.api\n .getDatabase(name, tenantName, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (getDatabase.error) {\n throw new Error(getDatabase.error);\n }\n\n return {name: getDatabase.name} as Database\n }\n\n}\n","import { IEmbeddingFunction } from './embeddings/IEmbeddingFunction';\nimport { Configuration, ApiApi as DefaultApi } from \"./generated\";\nimport { handleSuccess, handleError } from \"./utils\";\nimport { Collection } from './Collection';\nimport { ChromaClientParams, CollectionMetadata, CollectionType, ConfigOptions, CreateCollectionParams, DeleteCollectionParams, GetCollectionParams, GetOrCreateCollectionParams, ListCollectionsParams } from './types';\nimport {\n AuthOptions,\n ClientAuthProtocolAdapter,\n IsomorphicFetchClientAuthProtocolAdapter\n} from \"./auth\";\nimport { AdminClient } from './AdminClient';\n\nconst DEFAULT_TENANT = \"default_tenant\"\nconst DEFAULT_DATABASE = \"default_database\"\n\nexport class ChromaClient {\n /**\n * @ignore\n */\n private api: DefaultApi & ConfigOptions;\n private apiAdapter: ClientAuthProtocolAdapter<any>|undefined;\n private tenant: string = DEFAULT_TENANT;\n private database: string = DEFAULT_DATABASE;\n private _adminClient?: AdminClient\n\n /**\n * Creates a new ChromaClient instance.\n * @param {Object} params - The parameters for creating a new client\n * @param {string} [params.path] - The base path for the Chroma API.\n * @returns {ChromaClient} A new ChromaClient instance.\n *\n * @example\n * ```typescript\n * const client = new ChromaClient({\n * path: \"http://localhost:8000\"\n * });\n * ```\n */\n constructor({\n path,\n fetchOptions,\n auth,\n tenant = DEFAULT_TENANT,\n database = DEFAULT_DATABASE,\n }: ChromaClientParams = {}) {\n if (path === undefined) path = \"http://localhost:8000\";\n this.tenant = tenant;\n this.database = database;\n\n const apiConfig: Configuration = new Configuration({\n basePath: path,\n });\n if (auth !== undefined) {\n this.apiAdapter = new IsomorphicFetchClientAuthProtocolAdapter(new DefaultApi(apiConfig), auth);\n this.api = this.apiAdapter.getApi();\n } else {\n this.api = new DefaultApi(apiConfig);\n }\n\n this._adminClient = new AdminClient({\n path: path,\n fetchOptions: fetchOptions,\n auth: auth,\n tenant: tenant,\n database: database\n });\n\n // TODO: Validate tenant and database on client creation\n // this got tricky because:\n // - the constructor is sync but the generated api is async\n // - we need to inject auth information so a simple rewrite/fetch does not work\n\n this.api.options = fetchOptions ?? {};\n }\n\n /**\n * Resets the state of the object by making an API call to the reset endpoint.\n *\n * @returns {Promise<boolean>} A promise that resolves when the reset operation is complete.\n * @throws {Error} If there is an issue resetting the state.\n *\n * @example\n * ```typescript\n * await client.reset();\n * ```\n */\n public async reset(): Promise<boolean> {\n return await this.api.reset(this.api.options);\n }\n\n /**\n * Returns the version of the Chroma API.\n * @returns {Promise<string>} A promise that resolves to the version of the Chroma API.\n *\n * @example\n * ```typescript\n * const version = await client.version();\n * ```\n */\n public async version(): Promise<string> {\n const response = await this.api.version(this.api.options);\n return await handleSuccess(response);\n }\n\n /**\n * Returns a heartbeat from the Chroma API.\n * @returns {Promise<number>} A promise that resolves to the heartbeat from the Chroma API.\n *\n * @example\n * ```typescript\n * const heartbeat = await client.heartbeat();\n * ```\n */\n public async heartbeat(): Promise<number> {\n const response = await this.api.heartbeat(this.api.options);\n let ret = await handleSuccess(response);\n return ret[\"nanosecond heartbeat\"]\n }\n\n /**\n * Creates a new collection with the specified properties.\n *\n * @param {Object} params - The parameters for creating a new collection.\n * @param {string} params.name - The name of the collection.\n * @param {CollectionMetadata} [params.metadata] - Optional metadata associated with the collection.\n * @param {IEmbeddingFunction} [params.embeddingFunction] - Optional custom embedding function for the collection.\n *\n * @returns {Promise<Collection>} A promise that resolves to the created collection.\n * @throws {Error} If there is an issue creating the collection.\n *\n * @example\n * ```typescript\n * const collection = await client.createCollection({\n * name: \"my_collection\",\n * metadata: {\n * \"description\": \"My first collection\"\n * }\n * });\n * ```\n */\n public async createCollection({\n name,\n metadata,\n embeddingFunction\n }: CreateCollectionParams): Promise<Collection> {\n const newCollection = await this.api\n .createCollection(this.tenant, this.database, {\n name,\n metadata,\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (newCollection.error) {\n throw new Error(newCollection.error);\n }\n\n return new Collection(name, newCollection.id, this.api, metadata, embeddingFunction);\n }\n\n /**\n * Gets or creates a collection with the specified properties.\n *\n * @param {Object} params - The parameters for creating a new collection.\n * @param {string} params.name - The name of the collection.\n * @param {CollectionMetadata} [params.metadata] - Optional metadata associated with the collection.\n * @param {IEmbeddingFunction} [params.embeddingFunction] - Optional custom embedding function for the collection.\n *\n * @returns {Promise<Collection>} A promise that resolves to the got or created collection.\n * @throws {Error} If there is an issue getting or creating the collection.\n *\n * @example\n * ```typescript\n * const collection = await client.getOrCreateCollection({\n * name: \"my_collection\",\n * metadata: {\n * \"description\": \"My first collection\"\n * }\n * });\n * ```\n */\n public async getOrCreateCollection({\n name,\n metadata,\n embeddingFunction\n }: GetOrCreateCollectionParams): Promise<Collection> {\n const newCollection = await this.api\n .createCollection(this.tenant, this.database, {\n name,\n metadata,\n 'get_or_create': true\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (newCollection.error) {\n throw new Error(newCollection.error);\n }\n\n return new Collection(\n name,\n newCollection.id,\n this.api,\n newCollection.metadata,\n embeddingFunction\n );\n }\n\n /**\n * Lists all collections.\n *\n * @returns {Promise<CollectionType[]>} A promise that resolves to a list of collection names.\n * @param {PositiveInteger} [params.limit] - Optional limit on the number of items to get.\n * @param {PositiveInteger} [params.offset] - Optional offset on the items to get.\n * @throws {Error} If there is an issue listing the collections.\n *\n * @example\n * ```typescript\n * const collections = await client.listCollections({\n * limit: 10,\n * offset: 0,\n * });\n * ```\n */\n public async listCollections({\n limit,\n offset,\n }: ListCollectionsParams = {}): Promise<CollectionType[]> {\n const response = await this.api.listCollections(\n this.tenant,\n this.database,\n limit,\n offset,\n this.api.options);\n return handleSuccess(response);\n }\n\n /**\n * Counts all collections.\n *\n * @returns {Promise<number>} A promise that resolves to the number of collections.\n * @throws {Error} If there is an issue counting the collections.\n *\n * @example\n * ```typescript\n * const collections = await client.countCollections();\n * ```\n */\n public async countCollections(): Promise<number> {\n const response = await this.api.countCollections(this.tenant, this.database, this.api.options);\n return handleSuccess(response);\n }\n\n /**\n * Gets a collection with the specified name.\n * @param {Object} params - The parameters for getting a collection.\n * @param {string} params.name - The name of the collection.\n * @param {IEmbeddingFunction} [params.embeddingFunction] - Optional custom embedding function for the collection.\n * @returns {Promise<Collection>} A promise that resolves to the collection.\n * @throws {Error} If there is an issue getting the collection.\n *\n * @example\n * ```typescript\n * const collection = await client.getCollection({\n * name: \"my_collection\"\n * });\n * ```\n */\n public async getCollection({\n name,\n embeddingFunction\n }: GetCollectionParams): Promise<Collection> {\n const response = await this.api\n .getCollection(name, this.tenant, this.database, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (response.error) {\n throw new Error(response.error);\n }\n\n return new Collection(\n response.name,\n response.id,\n this.api,\n response.metadata,\n embeddingFunction\n );\n\n }\n\n /**\n * Deletes a collection with the specified name.\n * @param {Object} params - The parameters for deleting a collection.\n * @param {string} params.name - The name of the collection.\n * @returns {Promise<void>} A promise that resolves when the collection is deleted.\n * @throws {Error} If there is an issue deleting the collection.\n *\n * @example\n * ```typescript\n * await client.deleteCollection({\n * name: \"my_collection\"\n * });\n * ```\n */\n public async deleteCollection({\n name\n }: DeleteCollectionParams): Promise<void> {\n return await this.api\n .deleteCollection(name, this.tenant, this.database, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n }\n\n}\n","import {IEmbeddingFunction} from \"./IEmbeddingFunction\";\n\nlet OpenAIApi: any;\nlet openAiVersion = null;\nlet openAiMajorVersion = null;\n\ninterface OpenAIAPI {\n createEmbedding: (params: {\n model: string;\n input: string[];\n user?: string;\n }) => Promise<number[][]>;\n}\n\nclass OpenAIAPIv3 implements OpenAIAPI {\n private readonly configuration: any;\n private openai: any;\n\n constructor(configuration: { organization: string, apiKey: string }) {\n this.configuration = new OpenAIApi.Configuration({\n organization: configuration.organization,\n apiKey: configuration.apiKey,\n });\n this.openai = new OpenAIApi.OpenAIApi(this.configuration);\n }\n\n public async createEmbedding(params: {\n model: string,\n input: string[],\n user?: string\n }): Promise<number[][]> {\n const embeddings: number[][] = [];\n const response = await this.openai.createEmbedding({\n model: params.model,\n input: params.input,\n }).catch((error: any) => {\n throw error;\n });\n // @ts-ignore\n const data = response.data[\"data\"];\n for (let i = 0; i < data.length; i += 1) {\n embeddings.push(data[i][\"embedding\"]);\n }\n return embeddings\n }\n}\n\nclass OpenAIAPIv4 implements OpenAIAPI {\n private readonly apiKey: any;\n private openai: any;\n\n constructor(apiKey: any) {\n this.apiKey = apiKey;\n this.openai = new OpenAIApi({\n apiKey: this.apiKey,\n });\n }\n\n public async createEmbedding(params: {\n model: string,\n input: string[],\n user?: string\n }): Promise<number[][]> {\n const embeddings: number[][] = [];\n const response = await this.openai.embeddings.create(params);\n const data = response[\"data\"];\n for (let i = 0; i < data.length; i += 1) {\n embeddings.push(data[i][\"embedding\"]);\n }\n return embeddings\n }\n}\n\nexport class OpenAIEmbeddingFunction implements IEmbeddingFunction {\n private api_key: string;\n private org_id: string;\n private model: string;\n private openaiApi?: OpenAIAPI;\n\n constructor({openai_api_key, openai_model, openai_organization_id}: {\n openai_api_key: string,\n openai_model?: string,\n openai_organization_id?: string\n }) {\n // we used to construct the client here, but we need to async import the types\n // for the openai npm package, and the constructor can not be async\n this.api_key = openai_api_key;\n this.org_id = openai_organization_id || \"\";\n this.model = openai_model || \"text-embedding-ada-002\";\n }\n\n private async loadClient() {\n // cache the client\n if(this.openaiApi) return;\n\n try {\n const { openai, version } = await OpenAIEmbeddingFunction.import();\n OpenAIApi = openai;\n let versionVar: string = version;\n openAiVersion = versionVar.replace(/[^0-9.]/g, '');\n openAiMajorVersion = parseInt(openAiVersion.split('.')[0]);\n } catch (_a) {\n // @ts-ignore\n if (_a.code === 'MODULE_NOT_FOUND') {\n throw new Error(\"Please install the openai package to use the OpenAIEmbeddingFunction, `npm install -S openai`\");\n }\n throw _a; // Re-throw other errors\n }\n\n if (openAiMajorVersion > 3) {\n this.openaiApi = new OpenAIAPIv4(this.api_key);\n } else {\n this.openaiApi = new OpenAIAPIv3({\n organization: this.org_id,\n apiKey: this.api_key,\n });\n }\n }\n\n public async generate(texts: string[]): Promise<number[][]> {\n\n await this.loadClient();\n\n return await this.openaiApi!.createEmbedding({\n model: this.model,\n input: texts,\n }).catch((error: any) => {\n throw error;\n });\n }\n\n /** @ignore */\n static async import(): Promise<{\n // @ts-ignore\n openai: typeof import(\"openai\");\n version: string;\n }> {\n try {\n // @ts-ignore\n const { default: openai } = await import(\"openai\");\n // @ts-ignore\n const { VERSION } = await import('openai/version');\n return { openai, version: VERSION };\n } catch (e) {\n throw new Error(\n \"Please install openai as a dependency with, e.g. `yarn add openai`\"\n );\n }\n }\n\n}\n","import { IEmbeddingFunction } from \"./IEmbeddingFunction\";\n\nlet CohereAiApi: any;\n\nexport class CohereEmbeddingFunction implements IEmbeddingFunction {\n private api_key: string;\n private model: string;\n private cohereAiApi?: any;\n\n constructor({ cohere_api_key, model }: { cohere_api_key: string, model?: string }) {\n // we used to construct the client here, but we need to async import the types\n // for the openai npm package, and the constructor can not be async\n this.api_key = cohere_api_key;\n this.model = model || \"large\";\n }\n\n private async loadClient() {\n if(this.cohereAiApi) return;\n try {\n // eslint-disable-next-line global-require,import/no-extraneous-dependencies\n const { cohere } = await CohereEmbeddingFunction.import();\n CohereAiApi = cohere;\n CohereAiApi.init(this.api_key);\n } catch (_a) {\n // @ts-ignore\n if (_a.code === 'MODULE_NOT_FOUND') {\n throw new Error(\"Please install the cohere-ai package to use the CohereEmbeddingFunction, `npm install -S cohere-ai`\");\n }\n throw _a; // Re-throw other errors\n }\n this.cohereAiApi = CohereAiApi;\n }\n\n public async generate(texts: string[]) {\n\n await this.loadClient();\n\n const response = await this.cohereAiApi.embed({\n texts: texts,\n model: this.model,\n });\n return response.body.embeddings;\n }\n\n /** @ignore */\n static async import(): Promise<{\n // @ts-ignore\n cohere: typeof import(\"cohere-ai\");\n }> {\n try {\n // @ts-ignore\n const { default: cohere } = await import(\"cohere-ai\");\n return { cohere };\n } catch (e) {\n throw new Error(\n \"Please install cohere-ai as a dependency with, e.g. `yarn add cohere-ai`\"\n );\n }\n }\n\n}\n","import { AuthOptions } from \"./auth\";\nimport { IEmbeddingFunction } from \"./embeddings/IEmbeddingFunction\";\n\nexport enum IncludeEnum {\n Documents = 'documents',\n Embeddings = 'embeddings',\n Metadatas = 'metadatas',\n Distances = 'distances'\n}\n\ntype Number = number;\nexport type Embedding = Array<Number>;\nexport type Embeddings = Array<Embedding>;\n\nexport type Metadata = Record<string, string | number | boolean>;\nexport type Metadatas = Array<Metadata>;\n\nexport type Document = string;\nexport type Documents = Array<Document>;\n\nexport type ID = string;\nexport type IDs = ID[];\n\nexport type PositiveInteger = number;\n\ntype LiteralValue = string | number | boolean;\ntype ListLiteralValue = LiteralValue[];\ntype LiteralNumber = number;\ntype LogicalOperator = \"$and\" | \"$or\";\ntype InclusionOperator = \"$in\" | \"$nin\";\ntype WhereOperator = \"$gt\" | \"$gte\" | \"$lt\" | \"$lte\" | \"$ne\" | \"$eq\";\n\ntype OperatorExpression = {\n [key in WhereOperator | InclusionOperator | LogicalOperator ]?: LiteralValue | ListLiteralValue;\n};\n\ntype BaseWhere = {\n [key: string]: LiteralValue | OperatorExpression;\n};\n\ntype LogicalWhere = {\n [key in LogicalOperator]?: Where[];\n};\n\nexport type Where = BaseWhere | LogicalWhere;\n\ntype WhereDocumentOperator = \"$contains\" | LogicalOperator;\n\nexport type WhereDocument = {\n [key in WhereDocumentOperator]?: LiteralValue | LiteralNumber | WhereDocument[];\n};\n\nexport type CollectionType = {\n name: string;\n id: string;\n metadata: Metadata | null;\n};\n\nexport type GetResponse = {\n ids: IDs;\n embeddings: null | Embeddings;\n documents: (null | Document)[];\n metadatas: (null | Metadata)[];\n error: null | string;\n};\n\nexport type QueryResponse = {\n ids: IDs[];\n embeddings: null | Embeddings[];\n documents: (null | Document)[][];\n metadatas: (null | Metadata)[][];\n distances: null | number[][];\n}\n\nexport type AddResponse = {\n error: string;\n}\n\nexport type CollectionMetadata = Record<string, unknown>;\n\n// RequestInit can be used to set Authorization headers and more\n// see all options here: https://www.jsdocs.io/package/@types/node-fetch#RequestInit\nexport type ConfigOptions = {\n options?: RequestInit;\n};\n\nexport type GetParams = {\n ids?: ID | IDs,\n where?: Where,\n limit?: PositiveInteger,\n offset?: PositiveInteger,\n include?: IncludeEnum[],\n whereDocument?: WhereDocument\n}\n\nexport type ListCollectionsParams = {\n limit?: PositiveInteger,\n offset?: PositiveInteger,\n}\n\nexport type ChromaClientParams = {\n path?: string,\n fetchOptions?: RequestInit,\n auth?: AuthOptions,\n tenant?: string,\n database?: string,\n}\n\nexport type CreateCollectionParams = {\n name: string,\n metadata?: CollectionMetadata,\n embeddingFunction?: IEmbeddingFunction\n}\n\nexport type GetOrCreateCollectionParams = CreateCollectionParams\n\nexport type GetCollectionParams = {\n name: string;\n embeddingFunction?: IEmbeddingFunction\n}\n\nexport type DeleteCollectionParams = {\n name: string\n}\n\nexport type AddParams = {\n ids: ID | IDs,\n embeddings?: Embedding | Embeddings,\n metadatas?: Metadata | Metadatas,\n documents?: Document | Documents,\n}\n\nexport type UpsertParams = AddParams;\nexport type UpdateParams = AddParams;\n\nexport type ModifyCollectionParams = {\n name?: string,\n metadata?: CollectionMetadata\n}\n\nexport type QueryParams = {\n queryEmbeddings?: Embedding | Embeddings,\n nResults?: PositiveInteger,\n where?: Where,\n queryTexts?: string | string[],\n whereDocument?: WhereDocument, // {\"$contains\":\"search_string\"}\n include?: IncludeEnum[] // [\"metadata\", \"document\"]\n}\n\nexport type PeekParams = { limit?: PositiveInteger }\n\nexport type DeleteParams = {\n ids?: ID | IDs,\n where?: Where,\n whereDocument?: WhereDocument\n}\n\n","import { IEmbeddingFunction } from \"./IEmbeddingFunction\";\n\nlet CohereAiApi: any;\n\nexport class HuggingFaceEmbeddingServerFunction implements IEmbeddingFunction {\n private url: string;\n\n constructor({ url }: { url: string }) {\n // we used to construct the client here, but we need to async import the types\n // for the openai npm package, and the constructor can not be async\n this.url = url;\n }\n\n public async generate(texts: string[]) {\n const response = await fetch(this.url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ 'inputs': texts })\n });\n\n if (!response.ok) {\n throw new Error(`Failed to generate embeddings: ${response.statusText}`);\n }\n\n const data = await response.json();\n return data;\n }\n\n}\n"],"mappings":"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","names":["fetch","fetch","Api","GetEmbedding","Include","EnumValueEnum","EnumValueEnum2","EnumValueEnum3","EnumValueEnum4","EnumValueEnum5","EnumValueEnum6","QueryEmbedding","documentsArray","DEFAULT_TENANT","DEFAULT_DATABASE","IncludeEnum"]}
1
+ {"version":3,"sources":["../src/generated/runtime.ts","../src/generated/api.ts","../src/generated/models.ts","../src/generated/configuration.ts","../src/utils.ts","../src/Collection.ts","../src/auth.ts","../src/AdminClient.ts","../src/ChromaClient.ts","../src/embeddings/OpenAIEmbeddingFunction.ts","../src/embeddings/CohereEmbeddingFunction.ts","../src/types.ts","../src/embeddings/HuggingFaceEmbeddingServerFunction.ts"],"sourcesContent":["import 'isomorphic-fetch';\n/* eslint-disable */\n// tslint:disable\n/**\n * FastAPI\n * \n *\n * OpenAPI spec version: 0.1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator+.\n * https://github.com/karlvr/openapi-generator-plus\n * Do not edit the class manually.\n */\n\nexport const defaultFetch = fetch;\nimport { Configuration } from \"./configuration\";\n\nexport const BASE_PATH = \"\";\n\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n\tcsv: \",\",\n\tssv: \" \",\n\ttsv: \"\\t\",\n\tpipes: \"|\",\n};\n\n/**\n *\n * @export\n * @type FetchAPI\n */\nexport type FetchAPI = typeof defaultFetch;\n\n/**\n * \n * @export\n * @interface FetchArgs\n */\nexport interface FetchArgs {\n\turl: string;\n\toptions: RequestInit;\n}\n\n/**\n * \n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n\tprotected configuration?: Configuration;\n\n\tconstructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected fetch: FetchAPI = defaultFetch) {\n\t\tif (configuration) {\n\t\t\tthis.configuration = configuration;\n\t\t\tthis.basePath = configuration.basePath || this.basePath;\n\t\t}\n\t}\n};\n\n/**\n * \n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n\tconstructor(public field: string, msg?: string) {\n\t\tsuper(msg);\n\t\tObject.setPrototypeOf(this, RequiredError.prototype);\n\t\tthis.name = \"RequiredError\";\n\t}\n}\n","/* eslint-disable */\n// tslint:disable\n/**\n * FastAPI\n * \n *\n * OpenAPI spec version: 0.1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator+.\n * https://github.com/karlvr/openapi-generator-plus\n * Do not edit the class manually.\n */\n\nimport { Configuration } from \"./configuration\";\nimport { BASE_PATH, COLLECTION_FORMATS, FetchAPI, FetchArgs, BaseAPI, RequiredError, defaultFetch } from \"./runtime\";\nimport { Api } from \"./models\";\n\nexport type FactoryFunction<T> = (configuration?: Configuration, basePath?: string, fetch?: FetchAPI) => T;\n\n/**\n * ApiApi - fetch parameter creator\n * @export\n */\nexport const ApiApiFetchParamCreator = function (configuration?: Configuration) {\n\treturn {\n\t\t/**\n\t\t * @summary Add\n\t\t * @param {string} collectionId\n\t\t * @param {Api.AddEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tadd(collectionId: string, request: Api.AddEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling add.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling add.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/add`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Delete\n\t\t * @param {string} collectionId\n\t\t * @param {Api.DeleteEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\taDelete(collectionId: string, request: Api.DeleteEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling aDelete.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling aDelete.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/delete`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get\n\t\t * @param {string} collectionId\n\t\t * @param {Api.GetEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\taGet(collectionId: string, request: Api.GetEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling aGet.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling aGet.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/get`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Count\n\t\t * @param {string} collectionId\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcount(collectionId: string, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling count.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/count`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Count Collections\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcountCollections(tenant: string | undefined, database: string | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/count_collections`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Collection\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {Api.CreateCollection} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateCollection(tenant: string | undefined, database: string | undefined, request: Api.CreateCollection, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling createCollection.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Database\n\t\t * @param {string} [tenant]\n\t\t * @param {Api.CreateDatabase} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateDatabase(tenant: string | undefined, request: Api.CreateDatabase, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling createDatabase.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/databases`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Tenant\n\t\t * @param {Api.CreateTenant} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateTenant(request: Api.CreateTenant, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling createTenant.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/tenants`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Delete Collection\n\t\t * @param {string} collectionName\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tdeleteCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionName' is not null or undefined\n\t\t\tif (collectionName === null || collectionName === undefined) {\n\t\t\t\tthrow new RequiredError('collectionName', 'Required parameter collectionName was null or undefined when calling deleteCollection.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_name}`\n\t\t\t\t.replace('{collection_name}', encodeURIComponent(String(collectionName)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'DELETE' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Collection\n\t\t * @param {string} collectionName\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionName' is not null or undefined\n\t\t\tif (collectionName === null || collectionName === undefined) {\n\t\t\t\tthrow new RequiredError('collectionName', 'Required parameter collectionName was null or undefined when calling getCollection.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_name}`\n\t\t\t\t.replace('{collection_name}', encodeURIComponent(String(collectionName)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Database\n\t\t * @param {string} database\n\t\t * @param {string} [tenant]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetDatabase(database: string, tenant: string | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'database' is not null or undefined\n\t\t\tif (database === null || database === undefined) {\n\t\t\t\tthrow new RequiredError('database', 'Required parameter database was null or undefined when calling getDatabase.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/databases/{database}`\n\t\t\t\t.replace('{database}', encodeURIComponent(String(database)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Nearest Neighbors\n\t\t * @param {string} collectionId\n\t\t * @param {Api.QueryEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetNearestNeighbors(collectionId: string, request: Api.QueryEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling getNearestNeighbors.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling getNearestNeighbors.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/query`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Tenant\n\t\t * @param {string} tenant\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetTenant(tenant: string, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'tenant' is not null or undefined\n\t\t\tif (tenant === null || tenant === undefined) {\n\t\t\t\tthrow new RequiredError('tenant', 'Required parameter tenant was null or undefined when calling getTenant.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/tenants/{tenant}`\n\t\t\t\t.replace('{tenant}', encodeURIComponent(String(tenant)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Heartbeat\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\theartbeat(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/heartbeat`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary List Collections\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {number} [limit]\n\t\t * @param {number} [offset]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tlistCollections(tenant: string | undefined, database: string | undefined, limit: number | undefined, offset: number | undefined, options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/collections`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tif (tenant !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('tenant', String(tenant));\n\t\t\t}\n\n\t\t\tif (database !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('database', String(database));\n\t\t\t}\n\n\t\t\tif (limit !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('limit', String(limit));\n\t\t\t}\n\n\t\t\tif (offset !== undefined) {\n\t\t\t\tlocalVarQueryParameter.append('offset', String(offset));\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Pre Flight Checks\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tpreFlightChecks(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/pre-flight-checks`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Reset\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\treset(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/reset`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Root\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\troot(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Update\n\t\t * @param {string} collectionId\n\t\t * @param {Api.UpdateEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupdate(collectionId: string, request: Api.UpdateEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling update.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling update.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/update`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Update Collection\n\t\t * @param {string} collectionId\n\t\t * @param {Api.UpdateCollection} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupdateCollection(collectionId: string, request: Api.UpdateCollection, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling updateCollection.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling updateCollection.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'PUT' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Upsert\n\t\t * @param {string} collectionId\n\t\t * @param {Api.AddEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupsert(collectionId: string, request: Api.AddEmbedding, options: RequestInit = {}): FetchArgs {\n\t\t\t// verify required parameter 'collectionId' is not null or undefined\n\t\t\tif (collectionId === null || collectionId === undefined) {\n\t\t\t\tthrow new RequiredError('collectionId', 'Required parameter collectionId was null or undefined when calling upsert.');\n\t\t\t}\n\t\t\t// verify required parameter 'request' is not null or undefined\n\t\t\tif (request === null || request === undefined) {\n\t\t\t\tthrow new RequiredError('request', 'Required parameter request was null or undefined when calling upsert.');\n\t\t\t}\n\t\t\tlet localVarPath = `/api/v1/collections/{collection_id}/upsert`\n\t\t\t\t.replace('{collection_id}', encodeURIComponent(String(collectionId)));\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'POST' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarHeaderParameter.set('Content-Type', 'application/json');\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\t\n\t\t\tif (request !== undefined) {\n\t\t\t\tlocalVarRequestOptions.body = JSON.stringify(request || {});\n\t\t\t}\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Version\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tversion(options: RequestInit = {}): FetchArgs {\n\t\t\tlet localVarPath = `/api/v1/version`;\n\t\t\tconst localVarPathQueryStart = localVarPath.indexOf(\"?\");\n\t\t\tconst localVarRequestOptions: RequestInit = Object.assign({ method: 'GET' }, options);\n\t\t\tconst localVarHeaderParameter: Headers = options.headers ? new Headers(options.headers) : new Headers();\n\t\t\tconst localVarQueryParameter = new URLSearchParams(localVarPathQueryStart !== -1 ? localVarPath.substring(localVarPathQueryStart + 1) : \"\");\n\t\t\tif (localVarPathQueryStart !== -1) {\n\t\t\t\tlocalVarPath = localVarPath.substring(0, localVarPathQueryStart);\n\t\t\t}\n\n\t\t\tlocalVarRequestOptions.headers = localVarHeaderParameter;\n\n\t\t\tconst localVarQueryParameterString = localVarQueryParameter.toString();\n\t\t\tif (localVarQueryParameterString) {\n\t\t\t\tlocalVarPath += \"?\" + localVarQueryParameterString;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: localVarPath,\n\t\t\t\toptions: localVarRequestOptions,\n\t\t\t};\n\t\t},\n\t}\n};\n\n/**\n * ApiApi - functional programming interface\n * @export\n */\nexport const ApiApiFp = function(configuration?: Configuration) {\n\treturn {\n\t\t/**\n\t\t * @summary Add\n\t\t * @param {string} collectionId\n\t\t * @param {Api.AddEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tadd(collectionId: string, request: Api.AddEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.Add201Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).add(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 201) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Delete\n\t\t * @param {string} collectionId\n\t\t * @param {Api.DeleteEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\taDelete(collectionId: string, request: Api.DeleteEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.ADelete200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).aDelete(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get\n\t\t * @param {string} collectionId\n\t\t * @param {Api.GetEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\taGet(collectionId: string, request: Api.GetEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.AGet200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).aGet(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Count\n\t\t * @param {string} collectionId\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcount(collectionId: string, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.Count200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).count(collectionId, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Count Collections\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcountCollections(tenant: string | undefined, database: string | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.CountCollections200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).countCollections(tenant, database, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Collection\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {Api.CreateCollection} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateCollection(tenant: string | undefined, database: string | undefined, request: Api.CreateCollection, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.CreateCollection200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).createCollection(tenant, database, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Database\n\t\t * @param {string} [tenant]\n\t\t * @param {Api.CreateDatabase} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateDatabase(tenant: string | undefined, request: Api.CreateDatabase, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.CreateDatabase200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).createDatabase(tenant, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Create Tenant\n\t\t * @param {Api.CreateTenant} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tcreateTenant(request: Api.CreateTenant, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.CreateTenant200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).createTenant(request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Delete Collection\n\t\t * @param {string} collectionName\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tdeleteCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.DeleteCollection200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).deleteCollection(collectionName, tenant, database, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Collection\n\t\t * @param {string} collectionName\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.GetCollection200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).getCollection(collectionName, tenant, database, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Database\n\t\t * @param {string} database\n\t\t * @param {string} [tenant]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetDatabase(database: string, tenant: string | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.GetDatabase200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).getDatabase(database, tenant, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Nearest Neighbors\n\t\t * @param {string} collectionId\n\t\t * @param {Api.QueryEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetNearestNeighbors(collectionId: string, request: Api.QueryEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.GetNearestNeighbors200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).getNearestNeighbors(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Get Tenant\n\t\t * @param {string} tenant\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tgetTenant(tenant: string, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.GetTenant200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).getTenant(tenant, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Heartbeat\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\theartbeat(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<{ [name: string]: number }> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).heartbeat(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary List Collections\n\t\t * @param {string} [tenant]\n\t\t * @param {string} [database]\n\t\t * @param {number} [limit]\n\t\t * @param {number} [offset]\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tlistCollections(tenant: string | undefined, database: string | undefined, limit: number | undefined, offset: number | undefined, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.ListCollections200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).listCollections(tenant, database, limit, offset, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Pre Flight Checks\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tpreFlightChecks(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.PreFlightChecks200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).preFlightChecks(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Reset\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\treset(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<boolean> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).reset(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Root\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\troot(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<{ [name: string]: number }> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).root(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Update\n\t\t * @param {string} collectionId\n\t\t * @param {Api.UpdateEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupdate(collectionId: string, request: Api.UpdateEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.Update200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).update(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Update Collection\n\t\t * @param {string} collectionId\n\t\t * @param {Api.UpdateCollection} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupdateCollection(collectionId: string, request: Api.UpdateCollection, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.UpdateCollection200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).updateCollection(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Upsert\n\t\t * @param {string} collectionId\n\t\t * @param {Api.AddEmbedding} request\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tupsert(collectionId: string, request: Api.AddEmbedding, options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<Api.Upsert200Response> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).upsert(collectionId, request, options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tif (response.status === 422) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\tthrow response;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t * @summary Version\n\t\t * @param {RequestInit} [options] Override http request option.\n\t\t * @throws {RequiredError}\n\t\t */\n\t\tversion(options?: RequestInit): (fetch?: FetchAPI, basePath?: string) => Promise<string> {\n\t\t\tconst localVarFetchArgs = ApiApiFetchParamCreator(configuration).version(options);\n\t\t\treturn (fetch: FetchAPI = defaultFetch, basePath: string = BASE_PATH) => {\n\t\t\t\treturn fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => {\n\t\t\t\t\tconst contentType = response.headers.get('Content-Type');\n\t\t\t\t\tconst mimeType = contentType ? contentType.replace(/;.*/, '') : undefined;\n\t\t\t\t\t\n\t\t\t\t\tif (response.status === 200) {\n\t\t\t\t\t\tif (mimeType === 'application/json') {\n\t\t\t\t\t\t\treturn response.json() as any;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow response;\n\t\t\t\t\t}\n\t\t\t\t\tthrow response;\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t}\n};\n\n/**\n * ApiApi - factory interface\n * @export\n */\nexport const ApiApiFactory: FactoryFunction<ApiApi> = function (configuration?: Configuration, basePath?: string, fetch?: FetchAPI) {\n\treturn new ApiApi(configuration, basePath, fetch);\n};\n\n/**\n * ApiApi - object-oriented interface\n * @export\n * @class ApiApi\n * @extends {BaseAPI}\n */\nexport class ApiApi extends BaseAPI {\n\t/**\n\t * @summary Add\n\t * @param {string} collectionId\n\t * @param {Api.AddEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic add(collectionId: string, request: Api.AddEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).add(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Delete\n\t * @param {string} collectionId\n\t * @param {Api.DeleteEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic aDelete(collectionId: string, request: Api.DeleteEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).aDelete(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get\n\t * @param {string} collectionId\n\t * @param {Api.GetEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic aGet(collectionId: string, request: Api.GetEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).aGet(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Count\n\t * @param {string} collectionId\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic count(collectionId: string, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).count(collectionId, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Count Collections\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic countCollections(tenant: string | undefined, database: string | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).countCollections(tenant, database, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Create Collection\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {Api.CreateCollection} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic createCollection(tenant: string | undefined, database: string | undefined, request: Api.CreateCollection, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).createCollection(tenant, database, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Create Database\n\t * @param {string} [tenant]\n\t * @param {Api.CreateDatabase} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic createDatabase(tenant: string | undefined, request: Api.CreateDatabase, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).createDatabase(tenant, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Create Tenant\n\t * @param {Api.CreateTenant} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic createTenant(request: Api.CreateTenant, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).createTenant(request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Delete Collection\n\t * @param {string} collectionName\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic deleteCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).deleteCollection(collectionName, tenant, database, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get Collection\n\t * @param {string} collectionName\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic getCollection(collectionName: string, tenant: string | undefined, database: string | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).getCollection(collectionName, tenant, database, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get Database\n\t * @param {string} database\n\t * @param {string} [tenant]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic getDatabase(database: string, tenant: string | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).getDatabase(database, tenant, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get Nearest Neighbors\n\t * @param {string} collectionId\n\t * @param {Api.QueryEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic getNearestNeighbors(collectionId: string, request: Api.QueryEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).getNearestNeighbors(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Get Tenant\n\t * @param {string} tenant\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic getTenant(tenant: string, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).getTenant(tenant, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Heartbeat\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic heartbeat(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).heartbeat(options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary List Collections\n\t * @param {string} [tenant]\n\t * @param {string} [database]\n\t * @param {number} [limit]\n\t * @param {number} [offset]\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic listCollections(tenant: string | undefined, database: string | undefined, limit: number | undefined, offset: number | undefined, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).listCollections(tenant, database, limit, offset, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Pre Flight Checks\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic preFlightChecks(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).preFlightChecks(options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Reset\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic reset(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).reset(options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Root\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic root(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).root(options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Update\n\t * @param {string} collectionId\n\t * @param {Api.UpdateEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic update(collectionId: string, request: Api.UpdateEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).update(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Update Collection\n\t * @param {string} collectionId\n\t * @param {Api.UpdateCollection} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic updateCollection(collectionId: string, request: Api.UpdateCollection, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).updateCollection(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Upsert\n\t * @param {string} collectionId\n\t * @param {Api.AddEmbedding} request\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic upsert(collectionId: string, request: Api.AddEmbedding, options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).upsert(collectionId, request, options)(this.fetch, this.basePath);\n\t}\n\n\t/**\n\t * @summary Version\n\t * @param {RequestInit} [options] Override http request option.\n\t * @throws {RequiredError}\n\t */\n\tpublic version(options?: RequestInit) {\n\t\treturn ApiApiFp(this.configuration).version(options)(this.fetch, this.basePath);\n\t}\n\n}\n\n/**\n * We sometimes represent dates as strings (in models) and as Dates (in parameters) so this\n * function converts them both to a string.\n */\nfunction dateToString(value: Date | string | undefined): string | undefined {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t} else if (typeof value === 'string') {\n\t\treturn value;\n\t} else {\n\t\treturn undefined;\n\t}\n}\n","/* eslint-disable */\n// tslint:disable\n/**\n * FastAPI\n *\n *\n * OpenAPI spec version: 0.1.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator+.\n * https://github.com/karlvr/openapi-generator-plus\n * Do not edit the class manually.\n */\n\nexport namespace Api {\n\texport interface Add201Response {\n\t}\n\n\texport interface AddEmbedding {\n\t\tembeddings?: Api.AddEmbedding.Embedding[];\n\t\tmetadatas?: Api.AddEmbedding.Metadata[];\n\t\tdocuments?: string[];\n\t\turis?: string[];\n\t\tids: string[];\n\t}\n\n\t/**\n\t * @export\n\t * @namespace AddEmbedding\n\t */\n\texport namespace AddEmbedding {\n\t\texport interface Embedding {\n\t\t}\n\t\n\t\texport interface Metadata {\n\t\t}\n\t\n\t}\n\n\texport interface ADelete200Response {\n\t}\n\n\texport interface AGet200Response {\n\t}\n\n\texport interface Count200Response {\n\t}\n\n\texport interface CountCollections200Response {\n\t}\n\n\texport interface CreateCollection {\n\t\tname: string;\n\t\tmetadata?: Api.CreateCollection.Metadata;\n\t\t'get_or_create'?: boolean;\n\t}\n\t\n\t/**\n\t * @export\n\t * @namespace CreateCollection\n\t */\n\texport namespace CreateCollection {\n\t\texport interface Metadata {\n\t\t}\n\t\n\t}\n\n\texport interface CreateCollection200Response {\n\t}\n\n\texport interface CreateDatabase {\n\t\tname: string;\n\t}\n\n\texport interface CreateDatabase200Response {\n\t}\n\n\texport interface CreateTenant {\n\t\tname: string;\n\t}\n\n\texport interface CreateTenant200Response {\n\t}\n\n\texport interface DeleteCollection200Response {\n\t}\n\n\texport interface DeleteEmbedding {\n\t\tids?: string[];\n\t\twhere?: Api.DeleteEmbedding.Where;\n\t\t'where_document'?: Api.DeleteEmbedding.WhereDocument;\n\t}\n\t\n\t/**\n\t * @export\n\t * @namespace DeleteEmbedding\n\t */\n\texport namespace DeleteEmbedding {\n\t\texport interface Where {\n\t\t}\n\t\n\t\texport interface WhereDocument {\n\t\t}\n\t\n\t}\n\n\texport interface GetCollection200Response {\n\t}\n\n\texport interface GetDatabase200Response {\n\t}\n\n\texport interface GetEmbedding {\n\t\tids?: string[];\n\t\twhere?: Api.GetEmbedding.Where;\n\t\t'where_document'?: Api.GetEmbedding.WhereDocument;\n\t\tsort?: string;\n\t\t/**\n\t\t * @type {number}\n\t\t * @memberof GetEmbedding\n\t\t */\n\t\tlimit?: number;\n\t\t/**\n\t\t * @type {number}\n\t\t * @memberof GetEmbedding\n\t\t */\n\t\toffset?: number;\n\t\tinclude?: (Api.GetEmbedding.Include.EnumValueEnum | Api.GetEmbedding.Include.EnumValueEnum2 | Api.GetEmbedding.Include.EnumValueEnum3 | Api.GetEmbedding.Include.EnumValueEnum4 | Api.GetEmbedding.Include.EnumValueEnum5 | Api.GetEmbedding.Include.EnumValueEnum6)[];\n\t}\n\t\n\t/**\n\t * @export\n\t * @namespace GetEmbedding\n\t */\n\texport namespace GetEmbedding {\n\t\texport interface Where {\n\t\t}\n\t\n\t\texport interface WhereDocument {\n\t\t}\n\t\n\t\texport type Include = Api.GetEmbedding.Include.EnumValueEnum | Api.GetEmbedding.Include.EnumValueEnum2 | Api.GetEmbedding.Include.EnumValueEnum3 | Api.GetEmbedding.Include.EnumValueEnum4 | Api.GetEmbedding.Include.EnumValueEnum5 | Api.GetEmbedding.Include.EnumValueEnum6;\n\t\t\n\t\t/**\n\t\t * @export\n\t\t * @namespace Include\n\t\t */\n\t\texport namespace Include {\n\t\t\texport enum EnumValueEnum {\n\t\t\t\tDocuments = 'documents'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum2 {\n\t\t\t\tEmbeddings = 'embeddings'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum3 {\n\t\t\t\tMetadatas = 'metadatas'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum4 {\n\t\t\t\tDistances = 'distances'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum5 {\n\t\t\t\tUris = 'uris'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum6 {\n\t\t\t\tData = 'data'\n\t\t\t}\n\t\t\n\t\t}\n\t\n\t}\n\n\texport interface GetNearestNeighbors200Response {\n\t}\n\n\texport interface GetTenant200Response {\n\t}\n\n\texport interface HTTPValidationError {\n\t\tdetail?: Api.ValidationError[];\n\t}\n\n\texport interface ListCollections200Response {\n\t}\n\n\texport interface PreFlightChecks200Response {\n\t}\n\n\texport interface QueryEmbedding {\n\t\twhere?: Api.QueryEmbedding.Where;\n\t\t'where_document'?: Api.QueryEmbedding.WhereDocument;\n\t\t'query_embeddings': Api.QueryEmbedding.QueryEmbedding2[];\n\t\t/**\n\t\t * @type {number}\n\t\t * @memberof QueryEmbedding\n\t\t */\n\t\t'n_results'?: number;\n\t\tinclude?: (Api.QueryEmbedding.Include.EnumValueEnum | Api.QueryEmbedding.Include.EnumValueEnum2 | Api.QueryEmbedding.Include.EnumValueEnum3 | Api.QueryEmbedding.Include.EnumValueEnum4 | Api.QueryEmbedding.Include.EnumValueEnum5 | Api.QueryEmbedding.Include.EnumValueEnum6)[];\n\t}\n\t\n\t/**\n\t * @export\n\t * @namespace QueryEmbedding\n\t */\n\texport namespace QueryEmbedding {\n\t\texport interface Where {\n\t\t}\n\t\n\t\texport interface WhereDocument {\n\t\t}\n\t\n\t\texport interface QueryEmbedding2 {\n\t\t}\n\t\n\t\texport type Include = Api.QueryEmbedding.Include.EnumValueEnum | Api.QueryEmbedding.Include.EnumValueEnum2 | Api.QueryEmbedding.Include.EnumValueEnum3 | Api.QueryEmbedding.Include.EnumValueEnum4 | Api.QueryEmbedding.Include.EnumValueEnum5 | Api.QueryEmbedding.Include.EnumValueEnum6;\n\t\t\n\t\t/**\n\t\t * @export\n\t\t * @namespace Include\n\t\t */\n\t\texport namespace Include {\n\t\t\texport enum EnumValueEnum {\n\t\t\t\tDocuments = 'documents'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum2 {\n\t\t\t\tEmbeddings = 'embeddings'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum3 {\n\t\t\t\tMetadatas = 'metadatas'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum4 {\n\t\t\t\tDistances = 'distances'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum5 {\n\t\t\t\tUris = 'uris'\n\t\t\t}\n\t\t\n\t\t\texport enum EnumValueEnum6 {\n\t\t\t\tData = 'data'\n\t\t\t}\n\t\t\n\t\t}\n\t\n\t}\n\n\texport interface Update200Response {\n\t}\n\n\texport interface UpdateCollection {\n\t\t'new_name'?: string;\n\t\t'new_metadata'?: Api.UpdateCollection.NewMetadata;\n\t}\n\t\n\t/**\n\t * @export\n\t * @namespace UpdateCollection\n\t */\n\texport namespace UpdateCollection {\n\t\texport interface NewMetadata {\n\t\t}\n\t\n\t}\n\n\texport interface UpdateCollection200Response {\n\t}\n\n\texport interface UpdateEmbedding {\n\t\tembeddings?: Api.UpdateEmbedding.Embedding[];\n\t\tmetadatas?: Api.UpdateEmbedding.Metadata[];\n\t\tdocuments?: string[];\n\t\turis?: string[];\n\t\tids: string[];\n\t}\n\t\n\t/**\n\t * @export\n\t * @namespace UpdateEmbedding\n\t */\n\texport namespace UpdateEmbedding {\n\t\texport interface Embedding {\n\t\t}\n\t\n\t\texport interface Metadata {\n\t\t}\n\t\n\t}\n\n\texport interface Upsert200Response {\n\t}\n\n\texport interface ValidationError {\n\t\tloc: (string | number)[];\n\t\tmsg: string;\n\t\t'type': string;\n\t}\n\n}\n","/* eslint-disable */\n// tslint:disable\n/**\n * FastAPI\n * \n *\n * OpenAPI spec version: 0.1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator+.\n * https://github.com/karlvr/openapi-generator-plus\n * Do not edit the class manually.\n */\n\nexport interface ConfigurationParameters {\n\tapiKey?: string | ((name: string) => string | null);\n\tusername?: string;\n\tpassword?: string;\n\tauthorization?: string | ((name: string, scopes?: string[]) => string | null);\n\tbasePath?: string;\n}\n\nexport class Configuration {\n\t/**\n\t * parameter for apiKey security\n\t * @param name security name\n\t * @memberof Configuration\n\t */\n\tapiKey?: string | ((name: string) => string | null);\n\t/**\n\t * parameter for basic security\n\t * \n\t * @type {string}\n\t * @memberof Configuration\n\t */\n\tusername?: string;\n\t/**\n\t * parameter for basic security\n\t * \n\t * @type {string}\n\t * @memberof Configuration\n\t */\n\tpassword?: string;\n\t/**\n\t * parameter for oauth2, openIdConnect or http security\n\t * @param name security name\n\t * @param scopes oauth2 scopes\n\t * @memberof Configuration\n\t */\n\tauthorization?: string | ((name: string, scopes?: string[]) => string | null);\n\t/**\n\t * override base path\n\t * \n\t * @type {string}\n\t * @memberof Configuration\n\t */\n\tbasePath?: string;\n\n\tconstructor(param: ConfigurationParameters = {}) {\n\t\tthis.apiKey = param.apiKey;\n\t\tthis.username = param.username;\n\t\tthis.password = param.password;\n\t\tthis.authorization = param.authorization;\n\t\tthis.basePath = param.basePath;\n\t}\n}\n","import { Api } from \"./generated\";\nimport Count200Response = Api.Count200Response;\nimport { AdminClient } from \"./AdminClient\";\n\n// a function to convert a non-Array object to an Array\nexport function toArray<T>(obj: T | Array<T>): Array<T> {\n if (Array.isArray(obj)) {\n return obj;\n } else {\n return [obj];\n }\n}\n\n// a function to convert an array to array of arrays\nexport function toArrayOfArrays<T>(\n obj: Array<Array<T>> | Array<T>\n): Array<Array<T>> {\n if (Array.isArray(obj[0])) {\n return obj as Array<Array<T>>;\n } else {\n return [obj] as Array<Array<T>>;\n }\n}\n\n// we need to override constructors to make it work with jest\n// https://stackoverflow.com/questions/76007003/jest-tobeinstanceof-expected-constructor-array-received-constructor-array\nexport function repack(value: unknown): any {\n if (Boolean(value) && typeof value === \"object\") {\n if (Array.isArray(value)) {\n return new Array(...value);\n } else {\n return { ...value };\n }\n } else {\n return value;\n }\n}\n\nexport async function handleError(error: unknown) {\n if (error instanceof Response) {\n try {\n const res = await (error as Response).json();\n if (\"error\" in res) {\n return { error: res.error };\n }\n } catch (e: unknown) {\n return {\n error:\n e && typeof e === \"object\" && \"message\" in e\n ? e.message\n : \"unknown error\",\n };\n }\n }\n return { error };\n}\n\nexport async function handleSuccess(\n response: Response | string | Count200Response\n) {\n switch (true) {\n case response instanceof Response:\n return repack(await (response as Response).json());\n case typeof response === \"string\":\n return repack(response as string); // currently version is the only thing that return non-JSON\n default:\n return repack(response);\n }\n}\n\n/**\n * Dynamically imports a specified module, providing a workaround for browser environments.\n * This function is necessary because we dynamically import optional dependencies\n * which can cause issues with bundlers that detect the import and throw an error\n * on build time when the dependency is not installed.\n * Using this workaround, the dynamic import is only evaluated on runtime\n * where we work with try-catch when importing optional dependencies.\n *\n * @param {string} moduleName - Specifies the module to import.\n * @returns {Promise<any>} Returns a Promise that resolves to the imported module.\n */\nexport async function importOptionalModule(moduleName: string) {\n return Function(`return import(\"${moduleName}\")`)();\n}\n\n\nexport async function validateTenantDatabase(adminClient: AdminClient, tenant: string, database: string): Promise<void> {\n try {\n await adminClient.getTenant({name: tenant});\n } catch (error) {\n throw new Error(`Error: ${error}, Could not connect to tenant ${tenant}. Are you sure it exists?`);\n }\n\n try {\n await adminClient.getDatabase({name: database, tenantName: tenant});\n } catch (error) {\n throw new Error(`Error: ${error}, Could not connect to database ${database} for tenant ${tenant}. Are you sure it exists?`);\n }\n}\n","import {\n GetResponse,\n QueryResponse,\n AddResponse,\n CollectionMetadata,\n ConfigOptions,\n GetParams,\n AddParams,\n UpsertParams,\n ModifyCollectionParams,\n UpdateParams,\n QueryParams,\n PeekParams,\n DeleteParams\n} from \"./types\";\nimport { IEmbeddingFunction } from './embeddings/IEmbeddingFunction';\nimport { ApiApi as DefaultApi } from \"./generated\";\nimport { handleError, handleSuccess } from \"./utils\";\nimport { toArray, toArrayOfArrays } from \"./utils\";\n\n\nexport class Collection {\n public name: string;\n public id: string;\n public metadata: CollectionMetadata | undefined;\n /**\n * @ignore\n */\n private api: DefaultApi & ConfigOptions;\n /**\n * @ignore\n */\n public embeddingFunction: IEmbeddingFunction | undefined;\n\n /**\n * @ignore\n */\n constructor(\n name: string,\n id: string,\n api: DefaultApi,\n metadata?: CollectionMetadata,\n embeddingFunction?: IEmbeddingFunction\n ) {\n this.name = name;\n this.id = id;\n this.metadata = metadata;\n this.api = api;\n if (embeddingFunction !== undefined)\n this.embeddingFunction = embeddingFunction;\n }\n\n /**\n * @ignore\n */\n private setName(name: string): void {\n this.name = name;\n }\n /**\n * @ignore\n */\n private setMetadata(metadata: CollectionMetadata | undefined): void {\n this.metadata = metadata;\n }\n\n /**\n * @ignore\n */\n private async validate(\n require_embeddings_or_documents: boolean, // set to false in the case of Update\n ids: string | string[],\n embeddings: number[] | number[][] | undefined,\n metadatas?: object | object[],\n documents?: string | string[],\n ) {\n\n if (require_embeddings_or_documents) {\n if ((embeddings === undefined) && (documents === undefined)) {\n throw new Error(\n \"embeddings and documents cannot both be undefined\",\n );\n }\n }\n\n if ((embeddings === undefined) && (documents !== undefined)) {\n const documentsArray = toArray(documents);\n if (this.embeddingFunction !== undefined) {\n embeddings = await this.embeddingFunction.generate(documentsArray);\n } else {\n throw new Error(\n \"embeddingFunction is undefined. Please configure an embedding function\"\n );\n }\n }\n if (embeddings === undefined)\n throw new Error(\"embeddings is undefined but shouldnt be\");\n\n const idsArray = toArray(ids);\n const embeddingsArray: number[][] = toArrayOfArrays(embeddings);\n\n let metadatasArray: object[] | undefined;\n if (metadatas === undefined) {\n metadatasArray = undefined;\n } else {\n metadatasArray = toArray(metadatas);\n }\n\n let documentsArray: (string | undefined)[] | undefined;\n if (documents === undefined) {\n documentsArray = undefined;\n } else {\n documentsArray = toArray(documents);\n }\n\n // validate all ids are strings\n for (let i = 0; i < idsArray.length; i += 1) {\n if (typeof idsArray[i] !== \"string\") {\n throw new Error(\n `Expected ids to be strings, found ${typeof idsArray[i]} at index ${i}`\n );\n }\n }\n\n if (\n (embeddingsArray !== undefined &&\n idsArray.length !== embeddingsArray.length) ||\n (metadatasArray !== undefined &&\n idsArray.length !== metadatasArray.length) ||\n (documentsArray !== undefined &&\n idsArray.length !== documentsArray.length)\n ) {\n throw new Error(\n \"ids, embeddings, metadatas, and documents must all be the same length\"\n );\n }\n\n const uniqueIds = new Set(idsArray);\n if (uniqueIds.size !== idsArray.length) {\n const duplicateIds = idsArray.filter((item, index) => idsArray.indexOf(item) !== index);\n throw new Error(\n `Expected IDs to be unique, found duplicates for: ${duplicateIds}`,\n );\n }\n\n return [idsArray, embeddingsArray, metadatasArray, documentsArray]\n }\n\n /**\n * Add items to the collection\n * @param {Object} params - The parameters for the query.\n * @param {ID | IDs} [params.ids] - IDs of the items to add.\n * @param {Embedding | Embeddings} [params.embeddings] - Optional embeddings of the items to add.\n * @param {Metadata | Metadatas} [params.metadatas] - Optional metadata of the items to add.\n * @param {Document | Documents} [params.documents] - Optional documents of the items to add.\n * @returns {Promise<AddResponse>} - The response from the API. True if successful.\n *\n * @example\n * ```typescript\n * const response = await collection.add({\n * ids: [\"id1\", \"id2\"],\n * embeddings: [[1, 2, 3], [4, 5, 6]],\n * metadatas: [{ \"key\": \"value\" }, { \"key\": \"value\" }],\n * documents: [\"document1\", \"document2\"]\n * });\n * ```\n */\n public async add({\n ids,\n embeddings,\n metadatas,\n documents,\n }: AddParams): Promise<AddResponse> {\n\n const [idsArray, embeddingsArray, metadatasArray, documentsArray] = await this.validate(\n true,\n ids,\n embeddings,\n metadatas,\n documents\n )\n\n const response = await this.api.add(this.id,\n {\n // @ts-ignore\n ids: idsArray,\n embeddings: embeddingsArray as number[][], // We know this is defined because of the validate function\n // @ts-ignore\n documents: documentsArray,\n // @ts-ignore\n metadatas: metadatasArray,\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n return response\n }\n\n /**\n * Upsert items to the collection\n * @param {Object} params - The parameters for the query.\n * @param {ID | IDs} [params.ids] - IDs of the items to add.\n * @param {Embedding | Embeddings} [params.embeddings] - Optional embeddings of the items to add.\n * @param {Metadata | Metadatas} [params.metadatas] - Optional metadata of the items to add.\n * @param {Document | Documents} [params.documents] - Optional documents of the items to add.\n * @returns {Promise<boolean>} - The response from the API. True if successful.\n *\n * @example\n * ```typescript\n * const response = await collection.upsert({\n * ids: [\"id1\", \"id2\"],\n * embeddings: [[1, 2, 3], [4, 5, 6]],\n * metadatas: [{ \"key\": \"value\" }, { \"key\": \"value\" }],\n * documents: [\"document1\", \"document2\"],\n * });\n * ```\n */\n public async upsert({\n ids,\n embeddings,\n metadatas,\n documents,\n }: UpsertParams): Promise<boolean> {\n const [idsArray, embeddingsArray, metadatasArray, documentsArray] = await this.validate(\n true,\n ids,\n embeddings,\n metadatas,\n documents\n )\n\n const response = await this.api.upsert(this.id,\n {\n //@ts-ignore\n ids: idsArray,\n embeddings: embeddingsArray as number[][], // We know this is defined because of the validate function\n //@ts-ignore\n documents: documentsArray,\n //@ts-ignore\n metadatas: metadatasArray,\n },\n this.api.options\n )\n .then(handleSuccess)\n .catch(handleError);\n\n return response\n\n }\n\n /**\n * Count the number of items in the collection\n * @returns {Promise<number>} - The response from the API.\n *\n * @example\n * ```typescript\n * const response = await collection.count();\n * ```\n */\n public async count(): Promise<number> {\n const response = await this.api.count(this.id, this.api.options);\n return handleSuccess(response);\n }\n\n /**\n * Modify the collection name or metadata\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.name] - Optional new name for the collection.\n * @param {CollectionMetadata} [params.metadata] - Optional new metadata for the collection.\n * @returns {Promise<void>} - The response from the API.\n *\n * @example\n * ```typescript\n * const response = await collection.modify({\n * name: \"new name\",\n * metadata: { \"key\": \"value\" },\n * });\n * ```\n */\n public async modify({\n name,\n metadata\n }: ModifyCollectionParams = {}): Promise<void> {\n const response = await this.api\n .updateCollection(\n this.id,\n {\n new_name: name,\n new_metadata: metadata,\n },\n this.api.options\n )\n .then(handleSuccess)\n .catch(handleError);\n\n this.setName(name || this.name);\n this.setMetadata(metadata || this.metadata);\n\n return response;\n }\n\n /**\n * Get items from the collection\n * @param {Object} params - The parameters for the query.\n * @param {ID | IDs} [params.ids] - Optional IDs of the items to get.\n * @param {Where} [params.where] - Optional where clause to filter items by.\n * @param {PositiveInteger} [params.limit] - Optional limit on the number of items to get.\n * @param {PositiveInteger} [params.offset] - Optional offset on the items to get.\n * @param {IncludeEnum[]} [params.include] - Optional list of items to include in the response.\n * @param {WhereDocument} [params.whereDocument] - Optional where clause to filter items by.\n * @returns {Promise<GetResponse>} - The response from the server.\n *\n * @example\n * ```typescript\n * const response = await collection.get({\n * ids: [\"id1\", \"id2\"],\n * where: { \"key\": \"value\" },\n * limit: 10,\n * offset: 0,\n * include: [\"embeddings\", \"metadatas\", \"documents\"],\n * whereDocument: { $contains: \"value\" },\n * });\n * ```\n */\n public async get({\n ids,\n where,\n limit,\n offset,\n include,\n whereDocument,\n }: GetParams = {}): Promise<GetResponse> {\n let idsArray = undefined;\n if (ids !== undefined) idsArray = toArray(ids);\n\n return await this.api\n .aGet(this.id, {\n ids: idsArray,\n where,\n limit,\n offset,\n //@ts-ignore\n include,\n where_document: whereDocument,\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n }\n\n /**\n * Update the embeddings, documents, and/or metadatas of existing items\n * @param {Object} params - The parameters for the query.\n * @param {ID | IDs} [params.ids] - The IDs of the items to update.\n * @param {Embedding | Embeddings} [params.embeddings] - Optional embeddings to update.\n * @param {Metadata | Metadatas} [params.metadatas] - Optional metadatas to update.\n * @param {Document | Documents} [params.documents] - Optional documents to update.\n * @returns {Promise<boolean>} - The API Response. True if successful. Else, error.\n *\n * @example\n * ```typescript\n * const response = await collection.update({\n * ids: [\"id1\", \"id2\"],\n * embeddings: [[1, 2, 3], [4, 5, 6]],\n * metadatas: [{ \"key\": \"value\" }, { \"key\": \"value\" }],\n * documents: [\"new document 1\", \"new document 2\"],\n * });\n * ```\n */\n public async update({\n ids,\n embeddings,\n metadatas,\n documents,\n }: UpdateParams): Promise<boolean> {\n if (\n embeddings === undefined &&\n documents === undefined &&\n metadatas === undefined\n ) {\n throw new Error(\n \"embeddings, documents, and metadatas cannot all be undefined\"\n );\n } else if (embeddings === undefined && documents !== undefined) {\n const documentsArray = toArray(documents);\n if (this.embeddingFunction !== undefined) {\n embeddings = await this.embeddingFunction.generate(documentsArray);\n } else {\n throw new Error(\n \"embeddingFunction is undefined. Please configure an embedding function\"\n );\n }\n }\n\n // backend expects None if metadatas is undefined\n if (metadatas !== undefined) metadatas = toArray(metadatas);\n if (documents !== undefined) documents = toArray(documents);\n\n var resp = await this.api\n .update(\n this.id,\n {\n ids: toArray(ids),\n embeddings: embeddings ? toArrayOfArrays(embeddings) : undefined,\n documents: documents,\n metadatas: metadatas\n },\n this.api.options\n )\n .then(handleSuccess)\n .catch(handleError);\n\n return resp;\n }\n\n /**\n * Performs a query on the collection using the specified parameters.\n *\n * @param {Object} params - The parameters for the query.\n * @param {Embedding | Embeddings} [params.queryEmbeddings] - Optional query embeddings to use for the search.\n * @param {PositiveInteger} [params.nResults] - Optional number of results to return (default is 10).\n * @param {Where} [params.where] - Optional query condition to filter results based on metadata values.\n * @param {string | string[]} [params.queryTexts] - Optional query text(s) to search for in the collection.\n * @param {WhereDocument} [params.whereDocument] - Optional query condition to filter results based on document content.\n * @param {IncludeEnum[]} [params.include] - Optional array of fields to include in the result, such as \"metadata\" and \"document\".\n *\n * @returns {Promise<QueryResponse>} A promise that resolves to the query results.\n * @throws {Error} If there is an issue executing the query.\n * @example\n * // Query the collection using embeddings\n * const results = await collection.query({\n * queryEmbeddings: [[0.1, 0.2, ...], ...],\n * nResults: 10,\n * where: {\"name\": {\"$eq\": \"John Doe\"}},\n * include: [\"metadata\", \"document\"]\n * });\n * @example\n * ```js\n * // Query the collection using query text\n * const results = await collection.query({\n * queryTexts: \"some text\",\n * nResults: 10,\n * where: {\"name\": {\"$eq\": \"John Doe\"}},\n * include: [\"metadata\", \"document\"]\n * });\n * ```\n *\n */\n public async query({\n queryEmbeddings,\n nResults,\n where,\n queryTexts,\n whereDocument,\n include,\n }: QueryParams): Promise<QueryResponse> {\n if (nResults === undefined) nResults = 10\n if (queryEmbeddings === undefined && queryTexts === undefined) {\n throw new Error(\n \"queryEmbeddings and queryTexts cannot both be undefined\"\n );\n } else if (queryEmbeddings === undefined && queryTexts !== undefined) {\n const queryTextsArray = toArray(queryTexts);\n if (this.embeddingFunction !== undefined) {\n queryEmbeddings = await this.embeddingFunction.generate(queryTextsArray);\n } else {\n throw new Error(\n \"embeddingFunction is undefined. Please configure an embedding function\"\n );\n }\n }\n if (queryEmbeddings === undefined)\n throw new Error(\"embeddings is undefined but shouldnt be\");\n\n const query_embeddingsArray = toArrayOfArrays(queryEmbeddings);\n\n return await this.api\n .getNearestNeighbors(this.id, {\n query_embeddings: query_embeddingsArray,\n where,\n n_results: nResults,\n where_document: whereDocument,\n //@ts-ignore\n include: include,\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n }\n\n /**\n * Peek inside the collection\n * @param {Object} params - The parameters for the query.\n * @param {PositiveInteger} [params.limit] - Optional number of results to return (default is 10).\n * @returns {Promise<GetResponse>} A promise that resolves to the query results.\n * @throws {Error} If there is an issue executing the query.\n *\n * @example\n * ```typescript\n * const results = await collection.peek({\n * limit: 10\n * });\n * ```\n */\n public async peek({ limit }: PeekParams = {}): Promise<GetResponse> {\n if (limit === undefined) limit = 10;\n const response = await this.api.aGet(this.id, {\n limit: limit,\n }, this.api.options);\n return handleSuccess(response);\n }\n\n /**\n * Deletes items from the collection.\n * @param {Object} params - The parameters for deleting items from the collection.\n * @param {ID | IDs} [params.ids] - Optional ID or array of IDs of items to delete.\n * @param {Where} [params.where] - Optional query condition to filter items to delete based on metadata values.\n * @param {WhereDocument} [params.whereDocument] - Optional query condition to filter items to delete based on document content.\n * @returns {Promise<string[]>} A promise that resolves to the IDs of the deleted items.\n * @throws {Error} If there is an issue deleting items from the collection.\n *\n * @example\n * ```typescript\n * const results = await collection.delete({\n * ids: \"some_id\",\n * where: {\"name\": {\"$eq\": \"John Doe\"}},\n * whereDocument: {\"$contains\":\"search_string\"}\n * });\n * ```\n */\n public async delete({\n ids,\n where,\n whereDocument\n }: DeleteParams = {}): Promise<string[]> {\n let idsArray = undefined;\n if (ids !== undefined) idsArray = toArray(ids);\n return await this.api\n .aDelete(this.id, { ids: idsArray, where: where, where_document: whereDocument }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n }\n}\n","import {ApiApi as DefaultApi} from \"./generated\";\n\nexport interface ClientAuthProvider {\n /**\n * Abstract method for authenticating a client.\n */\n authenticate(): ClientAuthResponse;\n}\n\nexport interface ClientAuthConfigurationProvider<T> {\n /**\n * Abstract method for getting the configuration for the client.\n */\n getConfig(): T;\n}\n\nexport interface ClientAuthCredentialsProvider<T> {\n /**\n * Abstract method for getting the credentials for the client.\n * @param user\n */\n getCredentials(user?: string): T;\n}\n\nenum AuthInfoType {\n COOKIE = \"cookie\",\n HEADER = \"header\",\n URL = \"url\",\n METADATA = \"metadata\"\n\n}\n\nexport interface ClientAuthResponse {\n getAuthInfoType(): AuthInfoType;\n\n getAuthInfo(): { key: string, value: string };\n}\n\n\nexport interface AbstractCredentials<T> {\n getCredentials(): T;\n}\n\nexport interface ClientAuthProtocolAdapter<T> {\n injectCredentials(injectionContext: T): T;\n\n getApi(): any;\n}\n\n\nclass SecretStr {\n constructor(private readonly secret: string) {\n }\n\n getSecret(): string {\n return this.secret;\n }\n}\n\nconst base64Encode = (str: string): string => {\n return Buffer.from(str).toString('base64');\n};\n\nclass BasicAuthCredentials implements AbstractCredentials<SecretStr> {\n private readonly credentials: SecretStr;\n\n constructor(_creds: string) {\n this.credentials = new SecretStr(base64Encode(_creds))\n }\n\n getCredentials(): SecretStr {\n //encode base64\n return this.credentials;\n }\n}\n\n\nclass BasicAuthClientAuthResponse implements ClientAuthResponse {\n constructor(private readonly credentials: BasicAuthCredentials) {\n }\n\n getAuthInfo(): { key: string; value: string } {\n return {key: \"Authorization\", value: \"Basic \" + this.credentials.getCredentials().getSecret()};\n }\n\n getAuthInfoType(): AuthInfoType {\n return AuthInfoType.HEADER;\n }\n}\n\nexport class BasicAuthCredentialsProvider implements ClientAuthCredentialsProvider<BasicAuthCredentials> {\n private readonly credentials: BasicAuthCredentials;\n\n /**\n * Creates a new BasicAuthCredentialsProvider. This provider loads credentials from provided text credentials or from the environment variable CHROMA_CLIENT_AUTH_CREDENTIALS.\n * @param _creds - The credentials\n * @throws {Error} If neither credentials provider or text credentials are supplied.\n */\n\n constructor(_creds: string | undefined) {\n if (_creds === undefined && !process.env.CHROMA_CLIENT_AUTH_CREDENTIALS) throw new Error(\"Credentials must be supplied via environment variable (CHROMA_CLIENT_AUTH_CREDENTIALS) or passed in as configuration.\");\n this.credentials = new BasicAuthCredentials((_creds ?? process.env.CHROMA_CLIENT_AUTH_CREDENTIALS) as string);\n }\n\n getCredentials(): BasicAuthCredentials {\n return this.credentials;\n }\n}\n\nclass BasicAuthClientAuthProvider implements ClientAuthProvider {\n private readonly credentialsProvider: ClientAuthCredentialsProvider<any>;\n\n /**\n * Creates a new BasicAuthClientAuthProvider.\n * @param options - The options for the authentication provider.\n * @param options.textCredentials - The credentials for the authentication provider.\n * @param options.credentialsProvider - The credentials provider for the authentication provider.\n * @throws {Error} If neither credentials provider or text credentials are supplied.\n */\n\n constructor(options: {\n textCredentials: any;\n credentialsProvider: ClientAuthCredentialsProvider<any> | undefined\n }) {\n if (!options.credentialsProvider && !options.textCredentials) {\n throw new Error(\"Either credentials provider or text credentials must be supplied.\");\n }\n this.credentialsProvider = options.credentialsProvider || new BasicAuthCredentialsProvider(options.textCredentials);\n }\n\n authenticate(): ClientAuthResponse {\n return new BasicAuthClientAuthResponse(this.credentialsProvider.getCredentials());\n }\n}\n\nclass TokenAuthCredentials implements AbstractCredentials<SecretStr> {\n private readonly credentials: SecretStr;\n\n constructor(_creds: string) {\n this.credentials = new SecretStr(_creds)\n }\n\n getCredentials(): SecretStr {\n return this.credentials;\n }\n}\n\nexport class TokenCredentialsProvider implements ClientAuthCredentialsProvider<TokenAuthCredentials> {\n private readonly credentials: TokenAuthCredentials;\n\n constructor(_creds: string | undefined) {\n if (_creds === undefined && !process.env.CHROMA_CLIENT_AUTH_CREDENTIALS) throw new Error(\"Credentials must be supplied via environment variable (CHROMA_CLIENT_AUTH_CREDENTIALS) or passed in as configuration.\");\n this.credentials = new TokenAuthCredentials((_creds ?? process.env.CHROMA_CLIENT_AUTH_CREDENTIALS) as string);\n }\n\n getCredentials(): TokenAuthCredentials {\n return this.credentials;\n }\n}\n\nexport class TokenClientAuthProvider implements ClientAuthProvider {\n private readonly credentialsProvider: ClientAuthCredentialsProvider<any>;\n private readonly providerOptions: { headerType: TokenHeaderType };\n\n constructor(options: {\n textCredentials: any;\n credentialsProvider: ClientAuthCredentialsProvider<any> | undefined,\n providerOptions?: { headerType: TokenHeaderType }\n }) {\n if (!options.credentialsProvider && !options.textCredentials) {\n throw new Error(\"Either credentials provider or text credentials must be supplied.\");\n }\n if (options.providerOptions === undefined || !options.providerOptions.hasOwnProperty(\"headerType\")) {\n this.providerOptions = {headerType: \"AUTHORIZATION\"};\n } else {\n this.providerOptions = {headerType: options.providerOptions.headerType};\n }\n this.credentialsProvider = options.credentialsProvider || new TokenCredentialsProvider(options.textCredentials);\n }\n\n authenticate(): ClientAuthResponse {\n return new TokenClientAuthResponse(this.credentialsProvider.getCredentials(), this.providerOptions.headerType);\n }\n\n}\n\n\ntype TokenHeaderType = 'AUTHORIZATION' | 'X_CHROMA_TOKEN';\n\nconst TokenHeader: Record<TokenHeaderType, (value: string) => { key: string; value: string; }> = {\n AUTHORIZATION: (value: string) => ({key: \"Authorization\", value: `Bearer ${value}`}),\n X_CHROMA_TOKEN: (value: string) => ({key: \"X-Chroma-Token\", value: value})\n}\n\nclass TokenClientAuthResponse implements ClientAuthResponse {\n constructor(private readonly credentials: TokenAuthCredentials, private readonly headerType: TokenHeaderType = 'AUTHORIZATION') {\n }\n\n getAuthInfo(): { key: string; value: string } {\n if (this.headerType === 'AUTHORIZATION') {\n return TokenHeader.AUTHORIZATION(this.credentials.getCredentials().getSecret());\n } else if (this.headerType === 'X_CHROMA_TOKEN') {\n return TokenHeader.X_CHROMA_TOKEN(this.credentials.getCredentials().getSecret());\n } else {\n throw new Error(\"Invalid header type: \" + this.headerType + \". Valid types are: \" + Object.keys(TokenHeader).join(\", \"));\n }\n }\n\n getAuthInfoType(): AuthInfoType {\n return AuthInfoType.HEADER;\n }\n}\n\n\nexport class IsomorphicFetchClientAuthProtocolAdapter implements ClientAuthProtocolAdapter<RequestInit> {\n authProvider: ClientAuthProvider | undefined;\n wrapperApi: DefaultApi | undefined;\n\n /**\n * Creates a new adapter of IsomorphicFetchClientAuthProtocolAdapter.\n * @param api - The API to wrap.\n * @param authConfiguration - The configuration for the authentication provider.\n */\n\n constructor(private api: DefaultApi, authConfiguration: AuthOptions) {\n\n switch (authConfiguration.provider) {\n case \"basic\":\n this.authProvider = new BasicAuthClientAuthProvider({\n textCredentials: authConfiguration.credentials,\n credentialsProvider: authConfiguration.credentialsProvider\n });\n break;\n case \"token\":\n this.authProvider = new TokenClientAuthProvider({\n textCredentials: authConfiguration.credentials,\n credentialsProvider: authConfiguration.credentialsProvider,\n providerOptions: authConfiguration.providerOptions\n });\n break;\n default:\n this.authProvider = undefined;\n break;\n }\n if (this.authProvider !== undefined) {\n this.wrapperApi = this.wrapMethods(this.api);\n }\n }\n\n getApi(): DefaultApi {\n return this.wrapperApi ?? this.api;\n }\n\n getAllMethods(obj: any): string[] {\n let methods: string[] = [];\n let currentObj = obj;\n\n do {\n const objMethods = Object.getOwnPropertyNames(currentObj)\n .filter(name => typeof currentObj[name] === 'function' && name !== 'constructor');\n\n methods = methods.concat(objMethods);\n currentObj = Object.getPrototypeOf(currentObj);\n } while (currentObj);\n\n return methods;\n }\n\n wrapMethods(obj: any): any {\n let self = this;\n const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj))\n .filter(name => typeof obj[name] === 'function' && name !== 'constructor');\n\n return new Proxy(obj, {\n get(target, prop: string) {\n if (methodNames.includes(prop)) {\n return new Proxy(target[prop], {\n apply(fn, thisArg, args) {\n const modifiedArgs = args.map(arg => {\n if (arg && typeof arg === 'object' && 'method' in arg) {\n return self.injectCredentials(arg as RequestInit);\n }\n return arg;\n });\n if (Object.keys(modifiedArgs[modifiedArgs.length - 1]).length === 0) {\n modifiedArgs[modifiedArgs.length - 1] = self.injectCredentials({} as RequestInit);\n } else {\n modifiedArgs[modifiedArgs.length - 1] = self.injectCredentials(modifiedArgs[modifiedArgs.length - 1] as RequestInit);\n }\n return fn.apply(thisArg, modifiedArgs);\n }\n });\n }\n return target[prop];\n }\n });\n }\n\n injectCredentials(injectionContext: RequestInit): RequestInit {\n const authInfo = this.authProvider?.authenticate().getAuthInfo();\n if (authInfo) {\n const {key, value} = authInfo;\n injectionContext = {\n ...injectionContext,\n headers: {\n [key]: value\n },\n }\n }\n return injectionContext;\n }\n}\n\n\nexport type AuthOptions = {\n provider: ClientAuthProvider | string | undefined,\n credentialsProvider?: ClientAuthCredentialsProvider<any> | undefined,\n configProvider?: ClientAuthConfigurationProvider<any> | undefined,\n credentials?: any | undefined,\n providerOptions?: any | undefined\n}\n","import { Configuration, ApiApi as DefaultApi } from \"./generated\";\nimport { handleSuccess, handleError, validateTenantDatabase } from \"./utils\";\nimport { ConfigOptions } from './types';\nimport {\n AuthOptions,\n ClientAuthProtocolAdapter,\n IsomorphicFetchClientAuthProtocolAdapter\n} from \"./auth\";\n\nconst DEFAULT_TENANT = \"default_tenant\"\nconst DEFAULT_DATABASE = \"default_database\"\n\n// interface for tenant\ninterface Tenant {\n name: string,\n}\n\n// interface for tenant\ninterface Database {\n name: string,\n}\n\nexport class AdminClient {\n /**\n * @ignore\n */\n private api: DefaultApi & ConfigOptions;\n private apiAdapter: ClientAuthProtocolAdapter<any>|undefined;\n public tenant: string = DEFAULT_TENANT;\n public database: string = DEFAULT_DATABASE;\n\n /**\n * Creates a new AdminClient instance.\n * @param {Object} params - The parameters for creating a new client\n * @param {string} [params.path] - The base path for the Chroma API.\n * @returns {AdminClient} A new AdminClient instance.\n *\n * @example\n * ```typescript\n * const client = new AdminClient({\n * path: \"http://localhost:8000\"\n * });\n * ```\n */\n constructor({\n path,\n fetchOptions,\n auth,\n tenant = DEFAULT_TENANT,\n database = DEFAULT_DATABASE\n }: {\n path?: string,\n fetchOptions?: RequestInit,\n auth?: AuthOptions,\n tenant?: string,\n database?: string,\n } = {}) {\n if (path === undefined) path = \"http://localhost:8000\";\n this.tenant = tenant;\n this.database = database;\n\n const apiConfig: Configuration = new Configuration({\n basePath: path,\n });\n if (auth !== undefined) {\n this.apiAdapter = new IsomorphicFetchClientAuthProtocolAdapter(new DefaultApi(apiConfig), auth);\n this.api = this.apiAdapter.getApi();\n } else {\n this.api = new DefaultApi(apiConfig);\n }\n\n this.api.options = fetchOptions ?? {};\n }\n\n /**\n * Sets the tenant and database for the client.\n *\n * @param {Object} params - The parameters for setting tenant and database.\n * @param {string} params.tenant - The name of the tenant.\n * @param {string} params.database - The name of the database.\n *\n * @returns {Promise<void>} A promise that returns nothing\n * @throws {Error} Any issues\n *\n * @example\n * ```typescript\n * await adminClient.setTenant({\n * tenant: \"my_tenant\",\n * database: \"my_database\",\n * });\n * ```\n */\n public async setTenant({\n tenant = DEFAULT_TENANT,\n database = DEFAULT_DATABASE\n }: {\n tenant: string,\n database?: string,\n }): Promise<void> {\n await validateTenantDatabase(this, tenant, database);\n this.tenant = tenant;\n this.database = database;\n }\n\n /**\n * Sets the database for the client.\n *\n * @param {Object} params - The parameters for setting the database.\n * @param {string} params.database - The name of the database.\n *\n * @returns {Promise<void>} A promise that returns nothing\n * @throws {Error} Any issues\n *\n * @example\n * ```typescript\n * await adminClient.setDatabase({\n * database: \"my_database\",\n * });\n * ```\n */\n public async setDatabase({\n database = DEFAULT_DATABASE\n }: {\n database?: string,\n }): Promise<void> {\n await validateTenantDatabase(this, this.tenant, database);\n this.database = database;\n }\n\n /**\n * Creates a new tenant with the specified properties.\n *\n * @param {Object} params - The parameters for creating a new tenant.\n * @param {string} params.name - The name of the tenant.\n *\n * @returns {Promise<Tenant>} A promise that resolves to the created tenant.\n * @throws {Error} If there is an issue creating the tenant.\n *\n * @example\n * ```typescript\n * await adminClient.createTenant({\n * name: \"my_tenant\",\n * });\n * ```\n */\n public async createTenant({\n name,\n }: {\n name: string,\n }): Promise<Tenant> {\n const newTenant = await this.api\n .createTenant({name}, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n // newTenant is null if successful\n if (newTenant && newTenant.error) {\n throw new Error(newTenant.error);\n }\n\n return {name: name} as Tenant\n }\n\n /**\n * Gets a tenant with the specified properties.\n *\n * @param {Object} params - The parameters for getting a tenant.\n * @param {string} params.name - The name of the tenant.\n *\n * @returns {Promise<Tenant>} A promise that resolves to the tenant.\n * @throws {Error} If there is an issue getting the tenant.\n *\n * @example\n * ```typescript\n * await adminClient.getTenant({\n * name: \"my_tenant\",\n * });\n * ```\n */\n public async getTenant({\n name,\n }: {\n name: string,\n }): Promise<Tenant> {\n const getTenant = await this.api\n .getTenant(name, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (getTenant.error) {\n throw new Error(getTenant.error);\n }\n\n return {name: getTenant.name} as Tenant\n }\n\n /**\n * Creates a new database with the specified properties.\n *\n * @param {Object} params - The parameters for creating a new database.\n * @param {string} params.name - The name of the database.\n * @param {string} params.tenantName - The name of the tenant.\n *\n * @returns {Promise<Database>} A promise that resolves to the created database.\n * @throws {Error} If there is an issue creating the database.\n *\n * @example\n * ```typescript\n * await adminClient.createDatabase({\n * name: \"my_database\",\n * tenantName: \"my_tenant\",\n * });\n * ```\n */\n public async createDatabase({\n name,\n tenantName\n }: {\n name: string,\n tenantName: string,\n }): Promise<Database> {\n const newDatabase = await this.api\n .createDatabase(tenantName, {name}, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n // newDatabase is null if successful\n if (newDatabase && newDatabase.error) {\n throw new Error(newDatabase.error);\n }\n\n return {name: name} as Database\n }\n\n /**\n * Gets a database with the specified properties.\n *\n * @param {Object} params - The parameters for getting a database.\n * @param {string} params.name - The name of the database.\n * @param {string} params.tenantName - The name of the tenant.\n *\n * @returns {Promise<Database>} A promise that resolves to the database.\n * @throws {Error} If there is an issue getting the database.\n *\n * @example\n * ```typescript\n * await adminClient.getDatabase({\n * name: \"my_database\",\n * tenantName: \"my_tenant\",\n * });\n * ```\n */\n public async getDatabase({\n name,\n tenantName\n }: {\n name: string,\n tenantName: string,\n }): Promise<Database> {\n const getDatabase = await this.api\n .getDatabase(name, tenantName, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (getDatabase.error) {\n throw new Error(getDatabase.error);\n }\n\n return {name: getDatabase.name} as Database\n }\n\n}\n","import { IEmbeddingFunction } from './embeddings/IEmbeddingFunction';\nimport { Configuration, ApiApi as DefaultApi } from \"./generated\";\nimport { handleSuccess, handleError } from \"./utils\";\nimport { Collection } from './Collection';\nimport { ChromaClientParams, CollectionMetadata, CollectionType, ConfigOptions, CreateCollectionParams, DeleteCollectionParams, GetCollectionParams, GetOrCreateCollectionParams, ListCollectionsParams } from './types';\nimport {\n AuthOptions,\n ClientAuthProtocolAdapter,\n IsomorphicFetchClientAuthProtocolAdapter\n} from \"./auth\";\nimport { AdminClient } from './AdminClient';\n\nconst DEFAULT_TENANT = \"default_tenant\"\nconst DEFAULT_DATABASE = \"default_database\"\n\nexport class ChromaClient {\n /**\n * @ignore\n */\n private api: DefaultApi & ConfigOptions;\n private apiAdapter: ClientAuthProtocolAdapter<any>|undefined;\n private tenant: string = DEFAULT_TENANT;\n private database: string = DEFAULT_DATABASE;\n private _adminClient?: AdminClient\n\n /**\n * Creates a new ChromaClient instance.\n * @param {Object} params - The parameters for creating a new client\n * @param {string} [params.path] - The base path for the Chroma API.\n * @returns {ChromaClient} A new ChromaClient instance.\n *\n * @example\n * ```typescript\n * const client = new ChromaClient({\n * path: \"http://localhost:8000\"\n * });\n * ```\n */\n constructor({\n path,\n fetchOptions,\n auth,\n tenant = DEFAULT_TENANT,\n database = DEFAULT_DATABASE,\n }: ChromaClientParams = {}) {\n if (path === undefined) path = \"http://localhost:8000\";\n this.tenant = tenant;\n this.database = database;\n\n const apiConfig: Configuration = new Configuration({\n basePath: path,\n });\n if (auth !== undefined) {\n this.apiAdapter = new IsomorphicFetchClientAuthProtocolAdapter(new DefaultApi(apiConfig), auth);\n this.api = this.apiAdapter.getApi();\n } else {\n this.api = new DefaultApi(apiConfig);\n }\n\n this._adminClient = new AdminClient({\n path: path,\n fetchOptions: fetchOptions,\n auth: auth,\n tenant: tenant,\n database: database\n });\n\n // TODO: Validate tenant and database on client creation\n // this got tricky because:\n // - the constructor is sync but the generated api is async\n // - we need to inject auth information so a simple rewrite/fetch does not work\n\n this.api.options = fetchOptions ?? {};\n }\n\n /**\n * Resets the state of the object by making an API call to the reset endpoint.\n *\n * @returns {Promise<boolean>} A promise that resolves when the reset operation is complete.\n * @throws {Error} If there is an issue resetting the state.\n *\n * @example\n * ```typescript\n * await client.reset();\n * ```\n */\n public async reset(): Promise<boolean> {\n return await this.api.reset(this.api.options);\n }\n\n /**\n * Returns the version of the Chroma API.\n * @returns {Promise<string>} A promise that resolves to the version of the Chroma API.\n *\n * @example\n * ```typescript\n * const version = await client.version();\n * ```\n */\n public async version(): Promise<string> {\n const response = await this.api.version(this.api.options);\n return await handleSuccess(response);\n }\n\n /**\n * Returns a heartbeat from the Chroma API.\n * @returns {Promise<number>} A promise that resolves to the heartbeat from the Chroma API.\n *\n * @example\n * ```typescript\n * const heartbeat = await client.heartbeat();\n * ```\n */\n public async heartbeat(): Promise<number> {\n const response = await this.api.heartbeat(this.api.options);\n let ret = await handleSuccess(response);\n return ret[\"nanosecond heartbeat\"]\n }\n\n /**\n * Creates a new collection with the specified properties.\n *\n * @param {Object} params - The parameters for creating a new collection.\n * @param {string} params.name - The name of the collection.\n * @param {CollectionMetadata} [params.metadata] - Optional metadata associated with the collection.\n * @param {IEmbeddingFunction} [params.embeddingFunction] - Optional custom embedding function for the collection.\n *\n * @returns {Promise<Collection>} A promise that resolves to the created collection.\n * @throws {Error} If there is an issue creating the collection.\n *\n * @example\n * ```typescript\n * const collection = await client.createCollection({\n * name: \"my_collection\",\n * metadata: {\n * \"description\": \"My first collection\"\n * }\n * });\n * ```\n */\n public async createCollection({\n name,\n metadata,\n embeddingFunction\n }: CreateCollectionParams): Promise<Collection> {\n const newCollection = await this.api\n .createCollection(this.tenant, this.database, {\n name,\n metadata,\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (newCollection.error) {\n throw new Error(newCollection.error);\n }\n\n return new Collection(name, newCollection.id, this.api, metadata, embeddingFunction);\n }\n\n /**\n * Gets or creates a collection with the specified properties.\n *\n * @param {Object} params - The parameters for creating a new collection.\n * @param {string} params.name - The name of the collection.\n * @param {CollectionMetadata} [params.metadata] - Optional metadata associated with the collection.\n * @param {IEmbeddingFunction} [params.embeddingFunction] - Optional custom embedding function for the collection.\n *\n * @returns {Promise<Collection>} A promise that resolves to the got or created collection.\n * @throws {Error} If there is an issue getting or creating the collection.\n *\n * @example\n * ```typescript\n * const collection = await client.getOrCreateCollection({\n * name: \"my_collection\",\n * metadata: {\n * \"description\": \"My first collection\"\n * }\n * });\n * ```\n */\n public async getOrCreateCollection({\n name,\n metadata,\n embeddingFunction\n }: GetOrCreateCollectionParams): Promise<Collection> {\n const newCollection = await this.api\n .createCollection(this.tenant, this.database, {\n name,\n metadata,\n 'get_or_create': true\n }, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (newCollection.error) {\n throw new Error(newCollection.error);\n }\n\n return new Collection(\n name,\n newCollection.id,\n this.api,\n newCollection.metadata,\n embeddingFunction\n );\n }\n\n /**\n * Lists all collections.\n *\n * @returns {Promise<CollectionType[]>} A promise that resolves to a list of collection names.\n * @param {PositiveInteger} [params.limit] - Optional limit on the number of items to get.\n * @param {PositiveInteger} [params.offset] - Optional offset on the items to get.\n * @throws {Error} If there is an issue listing the collections.\n *\n * @example\n * ```typescript\n * const collections = await client.listCollections({\n * limit: 10,\n * offset: 0,\n * });\n * ```\n */\n public async listCollections({\n limit,\n offset,\n }: ListCollectionsParams = {}): Promise<CollectionType[]> {\n const response = await this.api.listCollections(\n this.tenant,\n this.database,\n limit,\n offset,\n this.api.options);\n return handleSuccess(response);\n }\n\n /**\n * Counts all collections.\n *\n * @returns {Promise<number>} A promise that resolves to the number of collections.\n * @throws {Error} If there is an issue counting the collections.\n *\n * @example\n * ```typescript\n * const collections = await client.countCollections();\n * ```\n */\n public async countCollections(): Promise<number> {\n const response = await this.api.countCollections(this.tenant, this.database, this.api.options);\n return handleSuccess(response);\n }\n\n /**\n * Gets a collection with the specified name.\n * @param {Object} params - The parameters for getting a collection.\n * @param {string} params.name - The name of the collection.\n * @param {IEmbeddingFunction} [params.embeddingFunction] - Optional custom embedding function for the collection.\n * @returns {Promise<Collection>} A promise that resolves to the collection.\n * @throws {Error} If there is an issue getting the collection.\n *\n * @example\n * ```typescript\n * const collection = await client.getCollection({\n * name: \"my_collection\"\n * });\n * ```\n */\n public async getCollection({\n name,\n embeddingFunction\n }: GetCollectionParams): Promise<Collection> {\n const response = await this.api\n .getCollection(name, this.tenant, this.database, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n\n if (response.error) {\n throw new Error(response.error);\n }\n\n return new Collection(\n response.name,\n response.id,\n this.api,\n response.metadata,\n embeddingFunction\n );\n\n }\n\n /**\n * Deletes a collection with the specified name.\n * @param {Object} params - The parameters for deleting a collection.\n * @param {string} params.name - The name of the collection.\n * @returns {Promise<void>} A promise that resolves when the collection is deleted.\n * @throws {Error} If there is an issue deleting the collection.\n *\n * @example\n * ```typescript\n * await client.deleteCollection({\n * name: \"my_collection\"\n * });\n * ```\n */\n public async deleteCollection({\n name\n }: DeleteCollectionParams): Promise<void> {\n return await this.api\n .deleteCollection(name, this.tenant, this.database, this.api.options)\n .then(handleSuccess)\n .catch(handleError);\n }\n\n}\n","import {IEmbeddingFunction} from \"./IEmbeddingFunction\";\n\nlet OpenAIApi: any;\nlet openAiVersion = null;\nlet openAiMajorVersion = null;\n\ninterface OpenAIAPI {\n createEmbedding: (params: {\n model: string;\n input: string[];\n user?: string;\n }) => Promise<number[][]>;\n}\n\nclass OpenAIAPIv3 implements OpenAIAPI {\n private readonly configuration: any;\n private openai: any;\n\n constructor(configuration: { organization: string, apiKey: string }) {\n this.configuration = new OpenAIApi.Configuration({\n organization: configuration.organization,\n apiKey: configuration.apiKey,\n });\n this.openai = new OpenAIApi.OpenAIApi(this.configuration);\n }\n\n public async createEmbedding(params: {\n model: string,\n input: string[],\n user?: string\n }): Promise<number[][]> {\n const embeddings: number[][] = [];\n const response = await this.openai.createEmbedding({\n model: params.model,\n input: params.input,\n }).catch((error: any) => {\n throw error;\n });\n // @ts-ignore\n const data = response.data[\"data\"];\n for (let i = 0; i < data.length; i += 1) {\n embeddings.push(data[i][\"embedding\"]);\n }\n return embeddings\n }\n}\n\nclass OpenAIAPIv4 implements OpenAIAPI {\n private readonly apiKey: any;\n private openai: any;\n\n constructor(apiKey: any) {\n this.apiKey = apiKey;\n this.openai = new OpenAIApi({\n apiKey: this.apiKey,\n });\n }\n\n public async createEmbedding(params: {\n model: string,\n input: string[],\n user?: string\n }): Promise<number[][]> {\n const embeddings: number[][] = [];\n const response = await this.openai.embeddings.create(params);\n const data = response[\"data\"];\n for (let i = 0; i < data.length; i += 1) {\n embeddings.push(data[i][\"embedding\"]);\n }\n return embeddings\n }\n}\n\nexport class OpenAIEmbeddingFunction implements IEmbeddingFunction {\n private api_key: string;\n private org_id: string;\n private model: string;\n private openaiApi?: OpenAIAPI;\n\n constructor({openai_api_key, openai_model, openai_organization_id}: {\n openai_api_key: string,\n openai_model?: string,\n openai_organization_id?: string\n }) {\n // we used to construct the client here, but we need to async import the types\n // for the openai npm package, and the constructor can not be async\n this.api_key = openai_api_key;\n this.org_id = openai_organization_id || \"\";\n this.model = openai_model || \"text-embedding-ada-002\";\n }\n\n private async loadClient() {\n // cache the client\n if(this.openaiApi) return;\n\n try {\n const { openai, version } = await OpenAIEmbeddingFunction.import();\n OpenAIApi = openai;\n let versionVar: string = version;\n openAiVersion = versionVar.replace(/[^0-9.]/g, '');\n openAiMajorVersion = parseInt(openAiVersion.split('.')[0]);\n } catch (_a) {\n // @ts-ignore\n if (_a.code === 'MODULE_NOT_FOUND') {\n throw new Error(\"Please install the openai package to use the OpenAIEmbeddingFunction, `npm install -S openai`\");\n }\n throw _a; // Re-throw other errors\n }\n\n if (openAiMajorVersion > 3) {\n this.openaiApi = new OpenAIAPIv4(this.api_key);\n } else {\n this.openaiApi = new OpenAIAPIv3({\n organization: this.org_id,\n apiKey: this.api_key,\n });\n }\n }\n\n public async generate(texts: string[]): Promise<number[][]> {\n\n await this.loadClient();\n\n return await this.openaiApi!.createEmbedding({\n model: this.model,\n input: texts,\n }).catch((error: any) => {\n throw error;\n });\n }\n\n /** @ignore */\n static async import(): Promise<{\n // @ts-ignore\n openai: typeof import(\"openai\");\n version: string;\n }> {\n try {\n // @ts-ignore\n const { default: openai } = await import(\"openai\");\n // @ts-ignore\n const { VERSION } = await import('openai/version');\n return { openai, version: VERSION };\n } catch (e) {\n throw new Error(\n \"Please install openai as a dependency with, e.g. `yarn add openai`\"\n );\n }\n }\n\n}\n","import { IEmbeddingFunction } from \"./IEmbeddingFunction\";\n\nlet CohereAiApi: any;\n\nexport class CohereEmbeddingFunction implements IEmbeddingFunction {\n private api_key: string;\n private model: string;\n private cohereAiApi?: any;\n\n constructor({ cohere_api_key, model }: { cohere_api_key: string, model?: string }) {\n // we used to construct the client here, but we need to async import the types\n // for the openai npm package, and the constructor can not be async\n this.api_key = cohere_api_key;\n this.model = model || \"large\";\n }\n\n private async loadClient() {\n if(this.cohereAiApi) return;\n try {\n // eslint-disable-next-line global-require,import/no-extraneous-dependencies\n const { cohere } = await CohereEmbeddingFunction.import();\n CohereAiApi = cohere;\n CohereAiApi.init(this.api_key);\n } catch (_a) {\n // @ts-ignore\n if (_a.code === 'MODULE_NOT_FOUND') {\n throw new Error(\"Please install the cohere-ai package to use the CohereEmbeddingFunction, `npm install -S cohere-ai`\");\n }\n throw _a; // Re-throw other errors\n }\n this.cohereAiApi = CohereAiApi;\n }\n\n public async generate(texts: string[]) {\n\n await this.loadClient();\n\n const response = await this.cohereAiApi.embed({\n texts: texts,\n model: this.model,\n });\n return response.body.embeddings;\n }\n\n /** @ignore */\n static async import(): Promise<{\n // @ts-ignore\n cohere: typeof import(\"cohere-ai\");\n }> {\n try {\n // @ts-ignore\n const { default: cohere } = await import(\"cohere-ai\");\n return { cohere };\n } catch (e) {\n throw new Error(\n \"Please install cohere-ai as a dependency with, e.g. `yarn add cohere-ai`\"\n );\n }\n }\n\n}\n","import { AuthOptions } from \"./auth\";\nimport { IEmbeddingFunction } from \"./embeddings/IEmbeddingFunction\";\n\nexport enum IncludeEnum {\n Documents = 'documents',\n Embeddings = 'embeddings',\n Metadatas = 'metadatas',\n Distances = 'distances'\n}\n\ntype Number = number;\nexport type Embedding = Array<Number>;\nexport type Embeddings = Array<Embedding>;\n\nexport type Metadata = Record<string, string | number | boolean>;\nexport type Metadatas = Array<Metadata>;\n\nexport type Document = string;\nexport type Documents = Array<Document>;\n\nexport type ID = string;\nexport type IDs = ID[];\n\nexport type PositiveInteger = number;\n\ntype LiteralValue = string | number | boolean;\ntype ListLiteralValue = LiteralValue[];\ntype LiteralNumber = number;\ntype LogicalOperator = \"$and\" | \"$or\";\ntype InclusionOperator = \"$in\" | \"$nin\";\ntype WhereOperator = \"$gt\" | \"$gte\" | \"$lt\" | \"$lte\" | \"$ne\" | \"$eq\";\n\ntype OperatorExpression = {\n [key in WhereOperator | InclusionOperator | LogicalOperator ]?: LiteralValue | ListLiteralValue;\n};\n\ntype BaseWhere = {\n [key: string]: LiteralValue | OperatorExpression;\n};\n\ntype LogicalWhere = {\n [key in LogicalOperator]?: Where[];\n};\n\nexport type Where = BaseWhere | LogicalWhere;\n\ntype WhereDocumentOperator = \"$contains\" | LogicalOperator;\n\nexport type WhereDocument = {\n [key in WhereDocumentOperator]?: LiteralValue | LiteralNumber | WhereDocument[];\n};\n\nexport type CollectionType = {\n name: string;\n id: string;\n metadata: Metadata | null;\n};\n\nexport type GetResponse = {\n ids: IDs;\n embeddings: null | Embeddings;\n documents: (null | Document)[];\n metadatas: (null | Metadata)[];\n error: null | string;\n};\n\nexport type QueryResponse = {\n ids: IDs[];\n embeddings: null | Embeddings[];\n documents: (null | Document)[][];\n metadatas: (null | Metadata)[][];\n distances: null | number[][];\n}\n\nexport type AddResponse = {\n error: string;\n}\n\nexport type CollectionMetadata = Record<string, unknown>;\n\n// RequestInit can be used to set Authorization headers and more\n// see all options here: https://www.jsdocs.io/package/@types/node-fetch#RequestInit\nexport type ConfigOptions = {\n options?: RequestInit;\n};\n\nexport type GetParams = {\n ids?: ID | IDs,\n where?: Where,\n limit?: PositiveInteger,\n offset?: PositiveInteger,\n include?: IncludeEnum[],\n whereDocument?: WhereDocument\n}\n\nexport type ListCollectionsParams = {\n limit?: PositiveInteger,\n offset?: PositiveInteger,\n}\n\nexport type ChromaClientParams = {\n path?: string,\n fetchOptions?: RequestInit,\n auth?: AuthOptions,\n tenant?: string,\n database?: string,\n}\n\nexport type CreateCollectionParams = {\n name: string,\n metadata?: CollectionMetadata,\n embeddingFunction?: IEmbeddingFunction\n}\n\nexport type GetOrCreateCollectionParams = CreateCollectionParams\n\nexport type GetCollectionParams = {\n name: string;\n embeddingFunction?: IEmbeddingFunction\n}\n\nexport type DeleteCollectionParams = {\n name: string\n}\n\nexport type AddParams = {\n ids: ID | IDs,\n embeddings?: Embedding | Embeddings,\n metadatas?: Metadata | Metadatas,\n documents?: Document | Documents,\n}\n\nexport type UpsertParams = AddParams;\nexport type UpdateParams = AddParams;\n\nexport type ModifyCollectionParams = {\n name?: string,\n metadata?: CollectionMetadata\n}\n\nexport type QueryParams = {\n queryEmbeddings?: Embedding | Embeddings,\n nResults?: PositiveInteger,\n where?: Where,\n queryTexts?: string | string[],\n whereDocument?: WhereDocument, // {\"$contains\":\"search_string\"}\n include?: IncludeEnum[] // [\"metadata\", \"document\"]\n}\n\nexport type PeekParams = { limit?: PositiveInteger }\n\nexport type DeleteParams = {\n ids?: ID | IDs,\n where?: Where,\n whereDocument?: WhereDocument\n}\n\n","import { IEmbeddingFunction } from \"./IEmbeddingFunction\";\n\nlet CohereAiApi: any;\n\nexport class HuggingFaceEmbeddingServerFunction implements IEmbeddingFunction {\n private url: string;\n\n constructor({ url }: { url: string }) {\n // we used to construct the client here, but we need to async import the types\n // for the openai npm package, and the constructor can not be async\n this.url = url;\n }\n\n public async generate(texts: string[]) {\n const response = await fetch(this.url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ 'inputs': texts })\n });\n\n if (!response.ok) {\n throw new Error(`Failed to generate embeddings: ${response.statusText}`);\n }\n\n const data = await response.json();\n return data;\n }\n\n}\n"],"mappings":"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","names":["fetch","fetch","Api","GetEmbedding","Include","EnumValueEnum","EnumValueEnum2","EnumValueEnum3","EnumValueEnum4","EnumValueEnum5","EnumValueEnum6","QueryEmbedding","documentsArray","DEFAULT_TENANT","DEFAULT_DATABASE","IncludeEnum"]}