{"version":3,"file":"372-4f0826d78c38326f482b-v1.1.4.min.js","mappings":"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","sources":["webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/batch.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/enqueued-task.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/errors/meilisearch-api-error.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/errors/meilisearch-error.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/errors/meilisearch-request-error.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/errors/meilisearch-timeout-error.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/errors/version-hint-message.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/http-requests.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/indexes.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/meilisearch.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/package-version.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/task.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/types.js","webpack://MeilisearchModule/../../../../../../.yarn/berry/cache/meilisearch-npm-0.48.2-54163da8a0-10.zip/node_modules/meilisearch/dist/esm/utils.js"],"sourcesContent":["import { HttpRequests, toQueryParams } from \"./http-requests.js\";\nclass Batch {\n uid;\n details;\n stats;\n startedAt;\n finishedAt;\n duration;\n progress;\n constructor(batch) {\n this.uid = batch.uid;\n this.details = batch.details;\n this.stats = batch.stats;\n this.startedAt = batch.startedAt;\n this.finishedAt = batch.finishedAt;\n this.duration = batch.duration;\n this.progress = batch.progress;\n }\n}\nclass BatchClient {\n httpRequest;\n constructor(config) {\n this.httpRequest = new HttpRequests(config);\n }\n /**\n * Get one batch\n *\n * @param uid - Unique identifier of the batch\n * @returns\n */\n async getBatch(uid) {\n const url = `batches/${uid}`;\n const batch = await this.httpRequest.get(url);\n return new Batch(batch);\n }\n /**\n * Get batches\n *\n * @param parameters - Parameters to browse the batches\n * @returns Promise containing all batches\n */\n async getBatches(parameters = {}) {\n const url = `batches`;\n const batches = await this.httpRequest.get(url, toQueryParams(parameters));\n return {\n ...batches,\n results: batches.results.map((batch) => new Batch(batch)),\n };\n }\n}\nexport { BatchClient, Batch };\n","class EnqueuedTask {\n taskUid;\n indexUid;\n status;\n type;\n enqueuedAt;\n constructor(task) {\n this.taskUid = task.taskUid;\n this.indexUid = task.indexUid;\n this.status = task.status;\n this.type = task.type;\n this.enqueuedAt = new Date(task.enqueuedAt);\n }\n}\nexport { EnqueuedTask };\n","import { MeiliSearchError } from \"./meilisearch-error.js\";\nexport class MeiliSearchApiError extends MeiliSearchError {\n name = \"MeiliSearchApiError\";\n cause;\n response;\n constructor(response, responseBody) {\n super(responseBody?.message ?? `${response.status}: ${response.statusText}`);\n this.response = response;\n if (responseBody !== undefined) {\n this.cause = responseBody;\n }\n }\n}\n","export class MeiliSearchError extends Error {\n name = \"MeiliSearchError\";\n constructor(...params) {\n super(...params);\n }\n}\n","import { MeiliSearchError } from \"./meilisearch-error.js\";\nexport class MeiliSearchRequestError extends MeiliSearchError {\n name = \"MeiliSearchRequestError\";\n constructor(url, cause) {\n super(`Request to ${url} has failed`, { cause });\n }\n}\n","import { MeiliSearchError } from \"./meilisearch-error.js\";\nexport class MeiliSearchTimeOutError extends MeiliSearchError {\n name = \"MeiliSearchTimeOutError\";\n constructor(message) {\n super(message);\n }\n}\n","export function versionErrorHintMessage(message, method) {\n return `${message}\\nHint: It might not be working because maybe you're not up to date with the Meilisearch version that ${method} call requires.`;\n}\n","import { PACKAGE_VERSION } from \"./package-version.js\";\nimport { MeiliSearchError, MeiliSearchApiError, MeiliSearchRequestError, } from \"./errors/index.js\";\nimport { addTrailingSlash, addProtocolIfNotPresent } from \"./utils.js\";\nfunction toQueryParams(parameters) {\n const params = Object.keys(parameters);\n const queryParams = params.reduce((acc, key) => {\n const value = parameters[key];\n if (value === undefined) {\n return acc;\n }\n else if (Array.isArray(value)) {\n return { ...acc, [key]: value.join(\",\") };\n }\n else if (value instanceof Date) {\n return { ...acc, [key]: value.toISOString() };\n }\n return { ...acc, [key]: value };\n }, {});\n return queryParams;\n}\nfunction constructHostURL(host) {\n try {\n host = addProtocolIfNotPresent(host);\n host = addTrailingSlash(host);\n return host;\n }\n catch {\n throw new MeiliSearchError(\"The provided host is not valid.\");\n }\n}\nfunction cloneAndParseHeaders(headers) {\n if (Array.isArray(headers)) {\n return headers.reduce((acc, headerPair) => {\n acc[headerPair[0]] = headerPair[1];\n return acc;\n }, {});\n }\n else if (\"has\" in headers) {\n const clonedHeaders = {};\n headers.forEach((value, key) => (clonedHeaders[key] = value));\n return clonedHeaders;\n }\n else {\n return Object.assign({}, headers);\n }\n}\nfunction createHeaders(config) {\n const agentHeader = \"X-Meilisearch-Client\";\n const packageAgent = `Meilisearch JavaScript (v${PACKAGE_VERSION})`;\n const contentType = \"Content-Type\";\n const authorization = \"Authorization\";\n const headers = cloneAndParseHeaders(config.requestConfig?.headers ?? {});\n // do not override if user provided the header\n if (config.apiKey && !headers[authorization]) {\n headers[authorization] = `Bearer ${config.apiKey}`;\n }\n if (!headers[contentType]) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n // Creates the custom user agent with information on the package used.\n if (config.clientAgents && Array.isArray(config.clientAgents)) {\n const clients = config.clientAgents.concat(packageAgent);\n headers[agentHeader] = clients.join(\" ; \");\n }\n else if (config.clientAgents && !Array.isArray(config.clientAgents)) {\n // If the header is defined but not an array\n throw new MeiliSearchError(`Meilisearch: The header \"${agentHeader}\" should be an array of string(s).\\n`);\n }\n else {\n headers[agentHeader] = packageAgent;\n }\n return headers;\n}\nclass HttpRequests {\n headers;\n url;\n requestConfig;\n httpClient;\n requestTimeout;\n constructor(config) {\n this.headers = createHeaders(config);\n this.requestConfig = config.requestConfig;\n this.httpClient = config.httpClient;\n this.requestTimeout = config.timeout;\n try {\n const host = constructHostURL(config.host);\n this.url = new URL(host);\n }\n catch {\n throw new MeiliSearchError(\"The provided host is not valid.\");\n }\n }\n async request({ method, url, params, body, config = {}, }) {\n const constructURL = new URL(url, this.url);\n if (params) {\n const queryParams = new URLSearchParams();\n Object.keys(params)\n .filter((x) => params[x] !== null)\n .map((x) => queryParams.set(x, params[x]));\n constructURL.search = queryParams.toString();\n }\n // in case a custom content-type is provided\n // do not stringify body\n if (!config.headers?.[\"Content-Type\"]) {\n body = JSON.stringify(body);\n }\n const headers = { ...this.headers, ...config.headers };\n const responsePromise = this.fetchWithTimeout(constructURL.toString(), {\n ...config,\n ...this.requestConfig,\n method,\n body,\n headers,\n }, this.requestTimeout);\n const response = await responsePromise.catch((error) => {\n throw new MeiliSearchRequestError(constructURL.toString(), error);\n });\n // When using a custom HTTP client, the response is returned to allow the user to parse/handle it as they see fit\n if (this.httpClient !== undefined) {\n return response;\n }\n const responseBody = await response.text();\n const parsedResponse = responseBody === \"\" ? undefined : JSON.parse(responseBody);\n if (!response.ok) {\n throw new MeiliSearchApiError(response, parsedResponse);\n }\n return parsedResponse;\n }\n async fetchWithTimeout(url, options, timeout) {\n return new Promise((resolve, reject) => {\n const fetchFn = this.httpClient ? this.httpClient : fetch;\n const fetchPromise = fetchFn(url, options);\n const promises = [fetchPromise];\n // TimeoutPromise will not run if undefined or zero\n let timeoutId;\n if (timeout) {\n const timeoutPromise = new Promise((_, reject) => {\n timeoutId = setTimeout(() => {\n reject(new Error(\"Error: Request Timed Out\"));\n }, timeout);\n });\n promises.push(timeoutPromise);\n }\n Promise.race(promises)\n .then(resolve)\n .catch(reject)\n .finally(() => {\n clearTimeout(timeoutId);\n });\n });\n }\n async get(url, params, config) {\n return await this.request({\n method: \"GET\",\n url,\n params,\n config,\n });\n }\n async post(url, data, params, config) {\n return await this.request({\n method: \"POST\",\n url,\n body: data,\n params,\n config,\n });\n }\n async put(url, data, params, config) {\n return await this.request({\n method: \"PUT\",\n url,\n body: data,\n params,\n config,\n });\n }\n async patch(url, data, params, config) {\n return await this.request({\n method: \"PATCH\",\n url,\n body: data,\n params,\n config,\n });\n }\n async delete(url, data, params, config) {\n return await this.request({\n method: \"DELETE\",\n url,\n body: data,\n params,\n config,\n });\n }\n}\nexport { HttpRequests, toQueryParams };\n","/*\n * Bundle: MeiliSearch / Indexes\n * Project: MeiliSearch - Javascript API\n * Author: Quentin de Quelen \n * Copyright: 2019, MeiliSearch\n */\nimport { MeiliSearchError, MeiliSearchRequestError, versionErrorHintMessage, MeiliSearchApiError, } from \"./errors/index.js\";\nimport { removeUndefinedFromObject } from \"./utils.js\";\nimport { HttpRequests } from \"./http-requests.js\";\nimport { Task, TaskClient } from \"./task.js\";\nimport { EnqueuedTask } from \"./enqueued-task.js\";\nclass Index {\n uid;\n primaryKey;\n createdAt;\n updatedAt;\n httpRequest;\n tasks;\n /**\n * @param config - Request configuration options\n * @param uid - UID of the index\n * @param primaryKey - Primary Key of the index\n */\n constructor(config, uid, primaryKey) {\n this.uid = uid;\n this.primaryKey = primaryKey;\n this.httpRequest = new HttpRequests(config);\n this.tasks = new TaskClient(config);\n }\n ///\n /// SEARCH\n ///\n /**\n * Search for documents into an index\n *\n * @param query - Query string\n * @param options - Search options\n * @param config - Additional request configuration options\n * @returns Promise containing the search response\n */\n async search(query, options, config) {\n const url = `indexes/${this.uid}/search`;\n return await this.httpRequest.post(url, removeUndefinedFromObject({ q: query, ...options }), undefined, config);\n }\n /**\n * Search for documents into an index using the GET method\n *\n * @param query - Query string\n * @param options - Search options\n * @param config - Additional request configuration options\n * @returns Promise containing the search response\n */\n async searchGet(query, options, config) {\n const url = `indexes/${this.uid}/search`;\n const parseFilter = (filter) => {\n if (typeof filter === \"string\")\n return filter;\n else if (Array.isArray(filter))\n throw new MeiliSearchError(\"The filter query parameter should be in string format when using searchGet\");\n else\n return undefined;\n };\n const getParams = {\n q: query,\n ...options,\n filter: parseFilter(options?.filter),\n sort: options?.sort?.join(\",\"),\n facets: options?.facets?.join(\",\"),\n attributesToRetrieve: options?.attributesToRetrieve?.join(\",\"),\n attributesToCrop: options?.attributesToCrop?.join(\",\"),\n attributesToHighlight: options?.attributesToHighlight?.join(\",\"),\n vector: options?.vector?.join(\",\"),\n attributesToSearchOn: options?.attributesToSearchOn?.join(\",\"),\n };\n return await this.httpRequest.get(url, removeUndefinedFromObject(getParams), config);\n }\n /**\n * Search for facet values\n *\n * @param params - Parameters used to search on the facets\n * @param config - Additional request configuration options\n * @returns Promise containing the search response\n */\n async searchForFacetValues(params, config) {\n const url = `indexes/${this.uid}/facet-search`;\n return await this.httpRequest.post(url, removeUndefinedFromObject(params), undefined, config);\n }\n /**\n * Search for similar documents\n *\n * @param params - Parameters used to search for similar documents\n * @returns Promise containing the search response\n */\n async searchSimilarDocuments(params) {\n const url = `indexes/${this.uid}/similar`;\n return await this.httpRequest.post(url, removeUndefinedFromObject(params), undefined);\n }\n ///\n /// INDEX\n ///\n /**\n * Get index information.\n *\n * @returns Promise containing index information\n */\n async getRawInfo() {\n const url = `indexes/${this.uid}`;\n const res = await this.httpRequest.get(url);\n this.primaryKey = res.primaryKey;\n this.updatedAt = new Date(res.updatedAt);\n this.createdAt = new Date(res.createdAt);\n return res;\n }\n /**\n * Fetch and update Index information.\n *\n * @returns Promise to the current Index object with updated information\n */\n async fetchInfo() {\n await this.getRawInfo();\n return this;\n }\n /**\n * Get Primary Key.\n *\n * @returns Promise containing the Primary Key of the index\n */\n async fetchPrimaryKey() {\n this.primaryKey = (await this.getRawInfo()).primaryKey;\n return this.primaryKey;\n }\n /**\n * Create an index.\n *\n * @param uid - Unique identifier of the Index\n * @param options - Index options\n * @param config - Request configuration options\n * @returns Newly created Index object\n */\n static async create(uid, options = {}, config) {\n const url = `indexes`;\n const req = new HttpRequests(config);\n const task = await req.post(url, { ...options, uid });\n return new EnqueuedTask(task);\n }\n /**\n * Update an index.\n *\n * @param data - Data to update\n * @returns Promise to the current Index object with updated information\n */\n async update(data) {\n const url = `indexes/${this.uid}`;\n const task = await this.httpRequest.patch(url, data);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n /**\n * Delete an index.\n *\n * @returns Promise which resolves when index is deleted successfully\n */\n async delete() {\n const url = `indexes/${this.uid}`;\n const task = await this.httpRequest.delete(url);\n return new EnqueuedTask(task);\n }\n ///\n /// TASKS\n ///\n /**\n * Get the list of all the tasks of the index.\n *\n * @param parameters - Parameters to browse the tasks\n * @returns Promise containing all tasks\n */\n async getTasks(parameters = {}) {\n return await this.tasks.getTasks({ ...parameters, indexUids: [this.uid] });\n }\n /**\n * Get one task of the index.\n *\n * @param taskUid - Task identifier\n * @returns Promise containing a task\n */\n async getTask(taskUid) {\n return await this.tasks.getTask(taskUid);\n }\n /**\n * Wait for multiple tasks to be processed.\n *\n * @param taskUids - Tasks identifier\n * @param waitOptions - Options on timeout and interval\n * @returns Promise containing an array of tasks\n */\n async waitForTasks(taskUids, { timeOutMs = 5000, intervalMs = 50 } = {}) {\n return await this.tasks.waitForTasks(taskUids, {\n timeOutMs,\n intervalMs,\n });\n }\n /**\n * Wait for a task to be processed.\n *\n * @param taskUid - Task identifier\n * @param waitOptions - Options on timeout and interval\n * @returns Promise containing an array of tasks\n */\n async waitForTask(taskUid, { timeOutMs = 5000, intervalMs = 50 } = {}) {\n return await this.tasks.waitForTask(taskUid, {\n timeOutMs,\n intervalMs,\n });\n }\n ///\n /// STATS\n ///\n /**\n * Get stats of an index\n *\n * @returns Promise containing object with stats of the index\n */\n async getStats() {\n const url = `indexes/${this.uid}/stats`;\n return await this.httpRequest.get(url);\n }\n ///\n /// DOCUMENTS\n ///\n /**\n * Get documents of an index.\n *\n * @param parameters - Parameters to browse the documents. Parameters can\n * contain the `filter` field only available in Meilisearch v1.2 and newer\n * @returns Promise containing the returned documents\n */\n async getDocuments(parameters = {}) {\n parameters = removeUndefinedFromObject(parameters);\n // In case `filter` is provided, use `POST /documents/fetch`\n if (parameters.filter !== undefined) {\n try {\n const url = `indexes/${this.uid}/documents/fetch`;\n return await this.httpRequest.post(url, parameters);\n }\n catch (e) {\n if (e instanceof MeiliSearchRequestError) {\n e.message = versionErrorHintMessage(e.message, \"getDocuments\");\n }\n else if (e instanceof MeiliSearchApiError) {\n e.message = versionErrorHintMessage(e.message, \"getDocuments\");\n }\n throw e;\n }\n // Else use `GET /documents` method\n }\n else {\n const url = `indexes/${this.uid}/documents`;\n // Transform fields to query parameter string format\n const fields = Array.isArray(parameters?.fields)\n ? { fields: parameters?.fields?.join(\",\") }\n : {};\n return await this.httpRequest.get(url, {\n ...parameters,\n ...fields,\n });\n }\n }\n /**\n * Get one document\n *\n * @param documentId - Document ID\n * @param parameters - Parameters applied on a document\n * @returns Promise containing Document response\n */\n async getDocument(documentId, parameters) {\n const url = `indexes/${this.uid}/documents/${documentId}`;\n const fields = (() => {\n if (Array.isArray(parameters?.fields)) {\n return parameters?.fields?.join(\",\");\n }\n return undefined;\n })();\n return await this.httpRequest.get(url, removeUndefinedFromObject({\n ...parameters,\n fields,\n }));\n }\n /**\n * Add or replace multiples documents to an index\n *\n * @param documents - Array of Document objects to add/replace\n * @param options - Options on document addition\n * @returns Promise containing an EnqueuedTask\n */\n async addDocuments(documents, options) {\n const url = `indexes/${this.uid}/documents`;\n const task = await this.httpRequest.post(url, documents, options);\n return new EnqueuedTask(task);\n }\n /**\n * Add or replace multiples documents in a string format to an index. It only\n * supports csv, ndjson and json formats.\n *\n * @param documents - Documents provided in a string to add/replace\n * @param contentType - Content type of your document:\n * 'text/csv'|'application/x-ndjson'|'application/json'\n * @param options - Options on document addition\n * @returns Promise containing an EnqueuedTask\n */\n async addDocumentsFromString(documents, contentType, queryParams) {\n const url = `indexes/${this.uid}/documents`;\n const task = await this.httpRequest.post(url, documents, queryParams, {\n headers: {\n \"Content-Type\": contentType,\n },\n });\n return new EnqueuedTask(task);\n }\n /**\n * Add or replace multiples documents to an index in batches\n *\n * @param documents - Array of Document objects to add/replace\n * @param batchSize - Size of the batch\n * @param options - Options on document addition\n * @returns Promise containing array of enqueued task objects for each batch\n */\n async addDocumentsInBatches(documents, batchSize = 1000, options) {\n const updates = [];\n for (let i = 0; i < documents.length; i += batchSize) {\n updates.push(await this.addDocuments(documents.slice(i, i + batchSize), options));\n }\n return updates;\n }\n /**\n * Add or update multiples documents to an index\n *\n * @param documents - Array of Document objects to add/update\n * @param options - Options on document update\n * @returns Promise containing an EnqueuedTask\n */\n async updateDocuments(documents, options) {\n const url = `indexes/${this.uid}/documents`;\n const task = await this.httpRequest.put(url, documents, options);\n return new EnqueuedTask(task);\n }\n /**\n * Add or update multiples documents to an index in batches\n *\n * @param documents - Array of Document objects to add/update\n * @param batchSize - Size of the batch\n * @param options - Options on document update\n * @returns Promise containing array of enqueued task objects for each batch\n */\n async updateDocumentsInBatches(documents, batchSize = 1000, options) {\n const updates = [];\n for (let i = 0; i < documents.length; i += batchSize) {\n updates.push(await this.updateDocuments(documents.slice(i, i + batchSize), options));\n }\n return updates;\n }\n /**\n * Add or update multiples documents in a string format to an index. It only\n * supports csv, ndjson and json formats.\n *\n * @param documents - Documents provided in a string to add/update\n * @param contentType - Content type of your document:\n * 'text/csv'|'application/x-ndjson'|'application/json'\n * @param queryParams - Options on raw document addition\n * @returns Promise containing an EnqueuedTask\n */\n async updateDocumentsFromString(documents, contentType, queryParams) {\n const url = `indexes/${this.uid}/documents`;\n const task = await this.httpRequest.put(url, documents, queryParams, {\n headers: {\n \"Content-Type\": contentType,\n },\n });\n return new EnqueuedTask(task);\n }\n /**\n * Delete one document\n *\n * @param documentId - Id of Document to delete\n * @returns Promise containing an EnqueuedTask\n */\n async deleteDocument(documentId) {\n const url = `indexes/${this.uid}/documents/${documentId}`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n /**\n * Delete multiples documents of an index.\n *\n * @param params - Params value can be:\n *\n * - DocumentsDeletionQuery: An object containing the parameters to customize\n * your document deletion. Only available in Meilisearch v1.2 and newer\n * - DocumentsIds: An array of document ids to delete\n *\n * @returns Promise containing an EnqueuedTask\n */\n async deleteDocuments(params) {\n // If params is of type DocumentsDeletionQuery\n const isDocumentsDeletionQuery = !Array.isArray(params) && typeof params === \"object\";\n const endpoint = isDocumentsDeletionQuery\n ? \"documents/delete\"\n : \"documents/delete-batch\";\n const url = `indexes/${this.uid}/${endpoint}`;\n try {\n const task = await this.httpRequest.post(url, params);\n return new EnqueuedTask(task);\n }\n catch (e) {\n if (e instanceof MeiliSearchRequestError && isDocumentsDeletionQuery) {\n e.message = versionErrorHintMessage(e.message, \"deleteDocuments\");\n }\n else if (e instanceof MeiliSearchApiError) {\n e.message = versionErrorHintMessage(e.message, \"deleteDocuments\");\n }\n throw e;\n }\n }\n /**\n * Delete all documents of an index\n *\n * @returns Promise containing an EnqueuedTask\n */\n async deleteAllDocuments() {\n const url = `indexes/${this.uid}/documents`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n /**\n * This is an EXPERIMENTAL feature, which may break without a major version.\n * It's available after Meilisearch v1.10.\n *\n * More info about the feature:\n * https://github.com/orgs/meilisearch/discussions/762 More info about\n * experimental features in general:\n * https://www.meilisearch.com/docs/reference/api/experimental-features\n *\n * @param options - Object containing the function string and related options\n * @returns Promise containing an EnqueuedTask\n */\n async updateDocumentsByFunction(options) {\n const url = `indexes/${this.uid}/documents/edit`;\n const task = await this.httpRequest.post(url, options);\n return new EnqueuedTask(task);\n }\n ///\n /// SETTINGS\n ///\n /**\n * Retrieve all settings\n *\n * @returns Promise containing Settings object\n */\n async getSettings() {\n const url = `indexes/${this.uid}/settings`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update all settings Any parameters not provided will be left unchanged.\n *\n * @param settings - Object containing parameters with their updated values\n * @returns Promise containing an EnqueuedTask\n */\n async updateSettings(settings) {\n const url = `indexes/${this.uid}/settings`;\n const task = await this.httpRequest.patch(url, settings);\n task.enqueued = new Date(task.enqueuedAt);\n return task;\n }\n /**\n * Reset settings.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetSettings() {\n const url = `indexes/${this.uid}/settings`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// PAGINATION SETTINGS\n ///\n /**\n * Get the pagination settings.\n *\n * @returns Promise containing object of pagination settings\n */\n async getPagination() {\n const url = `indexes/${this.uid}/settings/pagination`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the pagination settings.\n *\n * @param pagination - Pagination object\n * @returns Promise containing an EnqueuedTask\n */\n async updatePagination(pagination) {\n const url = `indexes/${this.uid}/settings/pagination`;\n const task = await this.httpRequest.patch(url, pagination);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the pagination settings.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetPagination() {\n const url = `indexes/${this.uid}/settings/pagination`;\n const task = await this.httpRequest.delete(url);\n return new EnqueuedTask(task);\n }\n ///\n /// SYNONYMS\n ///\n /**\n * Get the list of all synonyms\n *\n * @returns Promise containing object of synonym mappings\n */\n async getSynonyms() {\n const url = `indexes/${this.uid}/settings/synonyms`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the list of synonyms. Overwrite the old list.\n *\n * @param synonyms - Mapping of synonyms with their associated words\n * @returns Promise containing an EnqueuedTask\n */\n async updateSynonyms(synonyms) {\n const url = `indexes/${this.uid}/settings/synonyms`;\n const task = await this.httpRequest.put(url, synonyms);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the synonym list to be empty again\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetSynonyms() {\n const url = `indexes/${this.uid}/settings/synonyms`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// STOP WORDS\n ///\n /**\n * Get the list of all stop-words\n *\n * @returns Promise containing array of stop-words\n */\n async getStopWords() {\n const url = `indexes/${this.uid}/settings/stop-words`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the list of stop-words. Overwrite the old list.\n *\n * @param stopWords - Array of strings that contains the stop-words.\n * @returns Promise containing an EnqueuedTask\n */\n async updateStopWords(stopWords) {\n const url = `indexes/${this.uid}/settings/stop-words`;\n const task = await this.httpRequest.put(url, stopWords);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the stop-words list to be empty again\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetStopWords() {\n const url = `indexes/${this.uid}/settings/stop-words`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// RANKING RULES\n ///\n /**\n * Get the list of all ranking-rules\n *\n * @returns Promise containing array of ranking-rules\n */\n async getRankingRules() {\n const url = `indexes/${this.uid}/settings/ranking-rules`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the list of ranking-rules. Overwrite the old list.\n *\n * @param rankingRules - Array that contain ranking rules sorted by order of\n * importance.\n * @returns Promise containing an EnqueuedTask\n */\n async updateRankingRules(rankingRules) {\n const url = `indexes/${this.uid}/settings/ranking-rules`;\n const task = await this.httpRequest.put(url, rankingRules);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the ranking rules list to its default value\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetRankingRules() {\n const url = `indexes/${this.uid}/settings/ranking-rules`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// DISTINCT ATTRIBUTE\n ///\n /**\n * Get the distinct-attribute\n *\n * @returns Promise containing the distinct-attribute of the index\n */\n async getDistinctAttribute() {\n const url = `indexes/${this.uid}/settings/distinct-attribute`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the distinct-attribute.\n *\n * @param distinctAttribute - Field name of the distinct-attribute\n * @returns Promise containing an EnqueuedTask\n */\n async updateDistinctAttribute(distinctAttribute) {\n const url = `indexes/${this.uid}/settings/distinct-attribute`;\n const task = await this.httpRequest.put(url, distinctAttribute);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the distinct-attribute.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetDistinctAttribute() {\n const url = `indexes/${this.uid}/settings/distinct-attribute`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// FILTERABLE ATTRIBUTES\n ///\n /**\n * Get the filterable-attributes\n *\n * @returns Promise containing an array of filterable-attributes\n */\n async getFilterableAttributes() {\n const url = `indexes/${this.uid}/settings/filterable-attributes`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the filterable-attributes.\n *\n * @param filterableAttributes - Array of strings containing the attributes\n * that can be used as filters at query time\n * @returns Promise containing an EnqueuedTask\n */\n async updateFilterableAttributes(filterableAttributes) {\n const url = `indexes/${this.uid}/settings/filterable-attributes`;\n const task = await this.httpRequest.put(url, filterableAttributes);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the filterable-attributes.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetFilterableAttributes() {\n const url = `indexes/${this.uid}/settings/filterable-attributes`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// SORTABLE ATTRIBUTES\n ///\n /**\n * Get the sortable-attributes\n *\n * @returns Promise containing array of sortable-attributes\n */\n async getSortableAttributes() {\n const url = `indexes/${this.uid}/settings/sortable-attributes`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the sortable-attributes.\n *\n * @param sortableAttributes - Array of strings containing the attributes that\n * can be used to sort search results at query time\n * @returns Promise containing an EnqueuedTask\n */\n async updateSortableAttributes(sortableAttributes) {\n const url = `indexes/${this.uid}/settings/sortable-attributes`;\n const task = await this.httpRequest.put(url, sortableAttributes);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the sortable-attributes.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetSortableAttributes() {\n const url = `indexes/${this.uid}/settings/sortable-attributes`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// SEARCHABLE ATTRIBUTE\n ///\n /**\n * Get the searchable-attributes\n *\n * @returns Promise containing array of searchable-attributes\n */\n async getSearchableAttributes() {\n const url = `indexes/${this.uid}/settings/searchable-attributes`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the searchable-attributes.\n *\n * @param searchableAttributes - Array of strings that contains searchable\n * attributes sorted by order of importance(most to least important)\n * @returns Promise containing an EnqueuedTask\n */\n async updateSearchableAttributes(searchableAttributes) {\n const url = `indexes/${this.uid}/settings/searchable-attributes`;\n const task = await this.httpRequest.put(url, searchableAttributes);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the searchable-attributes.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetSearchableAttributes() {\n const url = `indexes/${this.uid}/settings/searchable-attributes`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// DISPLAYED ATTRIBUTE\n ///\n /**\n * Get the displayed-attributes\n *\n * @returns Promise containing array of displayed-attributes\n */\n async getDisplayedAttributes() {\n const url = `indexes/${this.uid}/settings/displayed-attributes`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the displayed-attributes.\n *\n * @param displayedAttributes - Array of strings that contains attributes of\n * an index to display\n * @returns Promise containing an EnqueuedTask\n */\n async updateDisplayedAttributes(displayedAttributes) {\n const url = `indexes/${this.uid}/settings/displayed-attributes`;\n const task = await this.httpRequest.put(url, displayedAttributes);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the displayed-attributes.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetDisplayedAttributes() {\n const url = `indexes/${this.uid}/settings/displayed-attributes`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// TYPO TOLERANCE\n ///\n /**\n * Get the typo tolerance settings.\n *\n * @returns Promise containing the typo tolerance settings.\n */\n async getTypoTolerance() {\n const url = `indexes/${this.uid}/settings/typo-tolerance`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the typo tolerance settings.\n *\n * @param typoTolerance - Object containing the custom typo tolerance\n * settings.\n * @returns Promise containing object of the enqueued update\n */\n async updateTypoTolerance(typoTolerance) {\n const url = `indexes/${this.uid}/settings/typo-tolerance`;\n const task = await this.httpRequest.patch(url, typoTolerance);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n /**\n * Reset the typo tolerance settings.\n *\n * @returns Promise containing object of the enqueued update\n */\n async resetTypoTolerance() {\n const url = `indexes/${this.uid}/settings/typo-tolerance`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// FACETING\n ///\n /**\n * Get the faceting settings.\n *\n * @returns Promise containing object of faceting index settings\n */\n async getFaceting() {\n const url = `indexes/${this.uid}/settings/faceting`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the faceting settings.\n *\n * @param faceting - Faceting index settings object\n * @returns Promise containing an EnqueuedTask\n */\n async updateFaceting(faceting) {\n const url = `indexes/${this.uid}/settings/faceting`;\n const task = await this.httpRequest.patch(url, faceting);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the faceting settings.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetFaceting() {\n const url = `indexes/${this.uid}/settings/faceting`;\n const task = await this.httpRequest.delete(url);\n return new EnqueuedTask(task);\n }\n ///\n /// SEPARATOR TOKENS\n ///\n /**\n * Get the list of all separator tokens.\n *\n * @returns Promise containing array of separator tokens\n */\n async getSeparatorTokens() {\n const url = `indexes/${this.uid}/settings/separator-tokens`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the list of separator tokens. Overwrite the old list.\n *\n * @param separatorTokens - Array that contains separator tokens.\n * @returns Promise containing an EnqueuedTask or null\n */\n async updateSeparatorTokens(separatorTokens) {\n const url = `indexes/${this.uid}/settings/separator-tokens`;\n const task = await this.httpRequest.put(url, separatorTokens);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the separator tokens list to its default value\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetSeparatorTokens() {\n const url = `indexes/${this.uid}/settings/separator-tokens`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// NON-SEPARATOR TOKENS\n ///\n /**\n * Get the list of all non-separator tokens.\n *\n * @returns Promise containing array of non-separator tokens\n */\n async getNonSeparatorTokens() {\n const url = `indexes/${this.uid}/settings/non-separator-tokens`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the list of non-separator tokens. Overwrite the old list.\n *\n * @param nonSeparatorTokens - Array that contains non-separator tokens.\n * @returns Promise containing an EnqueuedTask or null\n */\n async updateNonSeparatorTokens(nonSeparatorTokens) {\n const url = `indexes/${this.uid}/settings/non-separator-tokens`;\n const task = await this.httpRequest.put(url, nonSeparatorTokens);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the non-separator tokens list to its default value\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetNonSeparatorTokens() {\n const url = `indexes/${this.uid}/settings/non-separator-tokens`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// DICTIONARY\n ///\n /**\n * Get the dictionary settings of a Meilisearch index.\n *\n * @returns Promise containing the dictionary settings\n */\n async getDictionary() {\n const url = `indexes/${this.uid}/settings/dictionary`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the dictionary settings. Overwrite the old settings.\n *\n * @param dictionary - Array that contains the new dictionary settings.\n * @returns Promise containing an EnqueuedTask or null\n */\n async updateDictionary(dictionary) {\n const url = `indexes/${this.uid}/settings/dictionary`;\n const task = await this.httpRequest.put(url, dictionary);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the dictionary settings to its default value\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetDictionary() {\n const url = `indexes/${this.uid}/settings/dictionary`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// PROXIMITY PRECISION\n ///\n /**\n * Get the proximity precision settings of a Meilisearch index.\n *\n * @returns Promise containing the proximity precision settings\n */\n async getProximityPrecision() {\n const url = `indexes/${this.uid}/settings/proximity-precision`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the proximity precision settings. Overwrite the old settings.\n *\n * @param proximityPrecision - String that contains the new proximity\n * precision settings.\n * @returns Promise containing an EnqueuedTask or null\n */\n async updateProximityPrecision(proximityPrecision) {\n const url = `indexes/${this.uid}/settings/proximity-precision`;\n const task = await this.httpRequest.put(url, proximityPrecision);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the proximity precision settings to its default value\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetProximityPrecision() {\n const url = `indexes/${this.uid}/settings/proximity-precision`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// EMBEDDERS\n ///\n /**\n * Get the embedders settings of a Meilisearch index.\n *\n * @returns Promise containing the embedders settings\n */\n async getEmbedders() {\n const url = `indexes/${this.uid}/settings/embedders`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the embedders settings. Overwrite the old settings.\n *\n * @param embedders - Object that contains the new embedders settings.\n * @returns Promise containing an EnqueuedTask or null\n */\n async updateEmbedders(embedders) {\n const url = `indexes/${this.uid}/settings/embedders`;\n const task = await this.httpRequest.patch(url, embedders);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the embedders settings to its default value\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetEmbedders() {\n const url = `indexes/${this.uid}/settings/embedders`;\n const task = await this.httpRequest.delete(url);\n task.enqueuedAt = new Date(task.enqueuedAt);\n return task;\n }\n ///\n /// SEARCHCUTOFFMS SETTINGS\n ///\n /**\n * Get the SearchCutoffMs settings.\n *\n * @returns Promise containing object of SearchCutoffMs settings\n */\n async getSearchCutoffMs() {\n const url = `indexes/${this.uid}/settings/search-cutoff-ms`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the SearchCutoffMs settings.\n *\n * @param searchCutoffMs - Object containing SearchCutoffMsSettings\n * @returns Promise containing an EnqueuedTask\n */\n async updateSearchCutoffMs(searchCutoffMs) {\n const url = `indexes/${this.uid}/settings/search-cutoff-ms`;\n const task = await this.httpRequest.put(url, searchCutoffMs);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the SearchCutoffMs settings.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetSearchCutoffMs() {\n const url = `indexes/${this.uid}/settings/search-cutoff-ms`;\n const task = await this.httpRequest.delete(url);\n return new EnqueuedTask(task);\n }\n ///\n /// LOCALIZED ATTRIBUTES SETTINGS\n ///\n /**\n * Get the localized attributes settings.\n *\n * @returns Promise containing object of localized attributes settings\n */\n async getLocalizedAttributes() {\n const url = `indexes/${this.uid}/settings/localized-attributes`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the localized attributes settings.\n *\n * @param localizedAttributes - Localized attributes object\n * @returns Promise containing an EnqueuedTask\n */\n async updateLocalizedAttributes(localizedAttributes) {\n const url = `indexes/${this.uid}/settings/localized-attributes`;\n const task = await this.httpRequest.put(url, localizedAttributes);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the localized attributes settings.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetLocalizedAttributes() {\n const url = `indexes/${this.uid}/settings/localized-attributes`;\n const task = await this.httpRequest.delete(url);\n return new EnqueuedTask(task);\n }\n ///\n /// FACET SEARCH SETTINGS\n ///\n /**\n * Get the facet search settings.\n *\n * @returns Promise containing object of facet search settings\n */\n async getFacetSearch() {\n const url = `indexes/${this.uid}/settings/facet-search`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the facet search settings.\n *\n * @param facetSearch - Boolean value\n * @returns Promise containing an EnqueuedTask\n */\n async updateFacetSearch(facetSearch) {\n const url = `indexes/${this.uid}/settings/facet-search`;\n const task = await this.httpRequest.put(url, facetSearch);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the facet search settings.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetFacetSearch() {\n const url = `indexes/${this.uid}/settings/facet-search`;\n const task = await this.httpRequest.delete(url);\n return new EnqueuedTask(task);\n }\n ///\n /// PREFIX SEARCH SETTINGS\n ///\n /**\n * Get the prefix search settings.\n *\n * @returns Promise containing object of prefix search settings\n */\n async getPrefixSearch() {\n const url = `indexes/${this.uid}/settings/prefix-search`;\n return await this.httpRequest.get(url);\n }\n /**\n * Update the prefix search settings.\n *\n * @param prefixSearch - PrefixSearch value\n * @returns Promise containing an EnqueuedTask\n */\n async updatePrefixSearch(prefixSearch) {\n const url = `indexes/${this.uid}/settings/prefix-search`;\n const task = await this.httpRequest.put(url, prefixSearch);\n return new EnqueuedTask(task);\n }\n /**\n * Reset the prefix search settings.\n *\n * @returns Promise containing an EnqueuedTask\n */\n async resetPrefixSearch() {\n const url = `indexes/${this.uid}/settings/prefix-search`;\n const task = await this.httpRequest.delete(url);\n return new EnqueuedTask(task);\n }\n}\nexport { Index };\n","/*\n * Bundle: MeiliSearch\n * Project: MeiliSearch - Javascript API\n * Author: Quentin de Quelen \n * Copyright: 2019, MeiliSearch\n */\nimport { Index } from \"./indexes.js\";\nimport { ErrorStatusCode } from \"./types.js\";\nimport { HttpRequests } from \"./http-requests.js\";\nimport { TaskClient } from \"./task.js\";\nimport { EnqueuedTask } from \"./enqueued-task.js\";\nimport { BatchClient } from \"./batch.js\";\nexport class MeiliSearch {\n config;\n httpRequest;\n tasks;\n batches;\n /**\n * Creates new MeiliSearch instance\n *\n * @param config - Configuration object\n */\n constructor(config) {\n this.config = config;\n this.httpRequest = new HttpRequests(config);\n this.tasks = new TaskClient(config);\n this.batches = new BatchClient(config);\n }\n /**\n * Return an Index instance\n *\n * @param indexUid - The index UID\n * @returns Instance of Index\n */\n index(indexUid) {\n return new Index(this.config, indexUid);\n }\n /**\n * Gather information about an index by calling MeiliSearch and return an\n * Index instance with the gathered information\n *\n * @param indexUid - The index UID\n * @returns Promise returning Index instance\n */\n async getIndex(indexUid) {\n return new Index(this.config, indexUid).fetchInfo();\n }\n /**\n * Gather information about an index by calling MeiliSearch and return the raw\n * JSON response\n *\n * @param indexUid - The index UID\n * @returns Promise returning index information\n */\n async getRawIndex(indexUid) {\n return new Index(this.config, indexUid).getRawInfo();\n }\n /**\n * Get all the indexes as Index instances.\n *\n * @param parameters - Parameters to browse the indexes\n * @returns Promise returning array of raw index information\n */\n async getIndexes(parameters = {}) {\n const rawIndexes = await this.getRawIndexes(parameters);\n const indexes = rawIndexes.results.map((index) => new Index(this.config, index.uid, index.primaryKey));\n return { ...rawIndexes, results: indexes };\n }\n /**\n * Get all the indexes in their raw value (no Index instances).\n *\n * @param parameters - Parameters to browse the indexes\n * @returns Promise returning array of raw index information\n */\n async getRawIndexes(parameters = {}) {\n const url = `indexes`;\n return await this.httpRequest.get(url, parameters);\n }\n /**\n * Create a new index\n *\n * @param uid - The index UID\n * @param options - Index options\n * @returns Promise returning Index instance\n */\n async createIndex(uid, options = {}) {\n return await Index.create(uid, options, this.config);\n }\n /**\n * Update an index\n *\n * @param uid - The index UID\n * @param options - Index options to update\n * @returns Promise returning Index instance after updating\n */\n async updateIndex(uid, options = {}) {\n return await new Index(this.config, uid).update(options);\n }\n /**\n * Delete an index\n *\n * @param uid - The index UID\n * @returns Promise which resolves when index is deleted successfully\n */\n async deleteIndex(uid) {\n return await new Index(this.config, uid).delete();\n }\n /**\n * Deletes an index if it already exists.\n *\n * @param uid - The index UID\n * @returns Promise which resolves to true when index exists and is deleted\n * successfully, otherwise false if it does not exist\n */\n async deleteIndexIfExists(uid) {\n try {\n await this.deleteIndex(uid);\n return true;\n }\n catch (e) {\n if (e.code === ErrorStatusCode.INDEX_NOT_FOUND) {\n return false;\n }\n throw e;\n }\n }\n /**\n * Swaps a list of index tuples.\n *\n * @param params - List of indexes tuples to swap.\n * @returns Promise returning object of the enqueued task\n */\n async swapIndexes(params) {\n const url = \"/swap-indexes\";\n return await this.httpRequest.post(url, params);\n }\n ///\n /// Multi Search\n ///\n /**\n * Perform multiple search queries.\n *\n * It is possible to make multiple search queries on the same index or on\n * different ones\n *\n * @example\n *\n * ```ts\n * client.multiSearch({\n * queries: [\n * { indexUid: \"movies\", q: \"wonder\" },\n * { indexUid: \"books\", q: \"flower\" },\n * ],\n * });\n * ```\n *\n * @param queries - Search queries\n * @param config - Additional request configuration options\n * @returns Promise containing the search responses\n */\n async multiSearch(queries, config) {\n const url = `multi-search`;\n return await this.httpRequest.post(url, queries, undefined, config);\n }\n ///\n /// TASKS\n ///\n /**\n * Get the list of all client tasks\n *\n * @param parameters - Parameters to browse the tasks\n * @returns Promise returning all tasks\n */\n async getTasks(parameters = {}) {\n return await this.tasks.getTasks(parameters);\n }\n /**\n * Get one task on the client scope\n *\n * @param taskUid - Task identifier\n * @returns Promise returning a task\n */\n async getTask(taskUid) {\n return await this.tasks.getTask(taskUid);\n }\n /**\n * Wait for multiple tasks to be finished.\n *\n * @param taskUids - Tasks identifier\n * @param waitOptions - Options on timeout and interval\n * @returns Promise returning an array of tasks\n */\n async waitForTasks(taskUids, { timeOutMs = 5000, intervalMs = 50 } = {}) {\n return await this.tasks.waitForTasks(taskUids, {\n timeOutMs,\n intervalMs,\n });\n }\n /**\n * Wait for a task to be finished.\n *\n * @param taskUid - Task identifier\n * @param waitOptions - Options on timeout and interval\n * @returns Promise returning an array of tasks\n */\n async waitForTask(taskUid, { timeOutMs = 5000, intervalMs = 50 } = {}) {\n return await this.tasks.waitForTask(taskUid, {\n timeOutMs,\n intervalMs,\n });\n }\n /**\n * Cancel a list of enqueued or processing tasks.\n *\n * @param parameters - Parameters to filter the tasks.\n * @returns Promise containing an EnqueuedTask\n */\n async cancelTasks(parameters) {\n return await this.tasks.cancelTasks(parameters);\n }\n /**\n * Delete a list of tasks.\n *\n * @param parameters - Parameters to filter the tasks.\n * @returns Promise containing an EnqueuedTask\n */\n async deleteTasks(parameters = {}) {\n return await this.tasks.deleteTasks(parameters);\n }\n /**\n * Get all the batches\n *\n * @param parameters - Parameters to browse the batches\n * @returns Promise returning all batches\n */\n async getBatches(parameters = {}) {\n return await this.batches.getBatches(parameters);\n }\n /**\n * Get one batch\n *\n * @param uid - Batch identifier\n * @returns Promise returning a batch\n */\n async getBatch(uid) {\n return await this.batches.getBatch(uid);\n }\n ///\n /// KEYS\n ///\n /**\n * Get all API keys\n *\n * @param parameters - Parameters to browse the indexes\n * @returns Promise returning an object with keys\n */\n async getKeys(parameters = {}) {\n const url = `keys`;\n const keys = await this.httpRequest.get(url, parameters);\n keys.results = keys.results.map((key) => ({\n ...key,\n createdAt: new Date(key.createdAt),\n updatedAt: new Date(key.updatedAt),\n }));\n return keys;\n }\n /**\n * Get one API key\n *\n * @param keyOrUid - Key or uid of the API key\n * @returns Promise returning a key\n */\n async getKey(keyOrUid) {\n const url = `keys/${keyOrUid}`;\n return await this.httpRequest.get(url);\n }\n /**\n * Create one API key\n *\n * @param options - Key options\n * @returns Promise returning a key\n */\n async createKey(options) {\n const url = `keys`;\n return await this.httpRequest.post(url, options);\n }\n /**\n * Update one API key\n *\n * @param keyOrUid - Key\n * @param options - Key options\n * @returns Promise returning a key\n */\n async updateKey(keyOrUid, options) {\n const url = `keys/${keyOrUid}`;\n return await this.httpRequest.patch(url, options);\n }\n /**\n * Delete one API key\n *\n * @param keyOrUid - Key\n * @returns\n */\n async deleteKey(keyOrUid) {\n const url = `keys/${keyOrUid}`;\n return await this.httpRequest.delete(url);\n }\n ///\n /// HEALTH\n ///\n /**\n * Checks if the server is healthy, otherwise an error will be thrown.\n *\n * @returns Promise returning an object with health details\n */\n async health() {\n const url = `health`;\n return await this.httpRequest.get(url);\n }\n /**\n * Checks if the server is healthy, return true or false.\n *\n * @returns Promise returning a boolean\n */\n async isHealthy() {\n try {\n const url = `health`;\n await this.httpRequest.get(url);\n return true;\n }\n catch {\n return false;\n }\n }\n ///\n /// STATS\n ///\n /**\n * Get the stats of all the database\n *\n * @returns Promise returning object of all the stats\n */\n async getStats() {\n const url = `stats`;\n return await this.httpRequest.get(url);\n }\n ///\n /// VERSION\n ///\n /**\n * Get the version of MeiliSearch\n *\n * @returns Promise returning object with version details\n */\n async getVersion() {\n const url = `version`;\n return await this.httpRequest.get(url);\n }\n ///\n /// DUMPS\n ///\n /**\n * Creates a dump\n *\n * @returns Promise returning object of the enqueued task\n */\n async createDump() {\n const url = `dumps`;\n const task = await this.httpRequest.post(url);\n return new EnqueuedTask(task);\n }\n ///\n /// SNAPSHOTS\n ///\n /**\n * Creates a snapshot\n *\n * @returns Promise returning object of the enqueued task\n */\n async createSnapshot() {\n const url = `snapshots`;\n const task = await this.httpRequest.post(url);\n return new EnqueuedTask(task);\n }\n}\n","export const PACKAGE_VERSION = \"0.48.2\";\n","import { MeiliSearchTimeOutError } from \"./errors/index.js\";\nimport { TaskStatus } from \"./types.js\";\nimport { HttpRequests, toQueryParams } from \"./http-requests.js\";\nimport { sleep } from \"./utils.js\";\nimport { EnqueuedTask } from \"./enqueued-task.js\";\nclass Task {\n indexUid;\n status;\n type;\n uid;\n batchUid;\n canceledBy;\n details;\n error;\n duration;\n startedAt;\n enqueuedAt;\n finishedAt;\n constructor(task) {\n this.indexUid = task.indexUid;\n this.status = task.status;\n this.type = task.type;\n this.uid = task.uid;\n this.batchUid = task.batchUid;\n this.details = task.details;\n this.canceledBy = task.canceledBy;\n this.error = task.error;\n this.duration = task.duration;\n this.startedAt = new Date(task.startedAt);\n this.enqueuedAt = new Date(task.enqueuedAt);\n this.finishedAt = new Date(task.finishedAt);\n }\n}\nclass TaskClient {\n httpRequest;\n constructor(config) {\n this.httpRequest = new HttpRequests(config);\n }\n /**\n * Get one task\n *\n * @param uid - Unique identifier of the task\n * @returns\n */\n async getTask(uid) {\n const url = `tasks/${uid}`;\n const taskItem = await this.httpRequest.get(url);\n return new Task(taskItem);\n }\n /**\n * Get tasks\n *\n * @param parameters - Parameters to browse the tasks\n * @returns Promise containing all tasks\n */\n async getTasks(parameters = {}) {\n const url = `tasks`;\n const tasks = await this.httpRequest.get(url, toQueryParams(parameters));\n return {\n ...tasks,\n results: tasks.results.map((task) => new Task(task)),\n };\n }\n /**\n * Wait for a task to be processed.\n *\n * @param taskUid - Task identifier\n * @param options - Additional configuration options\n * @returns Promise returning a task after it has been processed\n */\n async waitForTask(taskUid, { timeOutMs = 5000, intervalMs = 50 } = {}) {\n const startingTime = Date.now();\n while (Date.now() - startingTime < timeOutMs) {\n const response = await this.getTask(taskUid);\n if (![\n TaskStatus.TASK_ENQUEUED,\n TaskStatus.TASK_PROCESSING,\n ].includes(response.status))\n return response;\n await sleep(intervalMs);\n }\n throw new MeiliSearchTimeOutError(`timeout of ${timeOutMs}ms has exceeded on process ${taskUid} when waiting a task to be resolved.`);\n }\n /**\n * Waits for multiple tasks to be processed\n *\n * @param taskUids - Tasks identifier list\n * @param options - Wait options\n * @returns Promise returning a list of tasks after they have been processed\n */\n async waitForTasks(taskUids, { timeOutMs = 5000, intervalMs = 50 } = {}) {\n const tasks = [];\n for (const taskUid of taskUids) {\n const task = await this.waitForTask(taskUid, {\n timeOutMs,\n intervalMs,\n });\n tasks.push(task);\n }\n return tasks;\n }\n /**\n * Cancel a list of enqueued or processing tasks.\n *\n * @param parameters - Parameters to filter the tasks.\n * @returns Promise containing an EnqueuedTask\n */\n async cancelTasks(parameters = {}) {\n const url = `tasks/cancel`;\n const task = await this.httpRequest.post(url, {}, toQueryParams(parameters));\n return new EnqueuedTask(task);\n }\n /**\n * Delete a list tasks.\n *\n * @param parameters - Parameters to filter the tasks.\n * @returns Promise containing an EnqueuedTask\n */\n async deleteTasks(parameters = {}) {\n const url = `tasks`;\n const task = await this.httpRequest.delete(url, {}, toQueryParams(parameters));\n return new EnqueuedTask(task);\n }\n}\nexport { TaskClient, Task };\n","// Type definitions for meilisearch\n// Project: https://github.com/meilisearch/meilisearch-js\n// Definitions by: qdequele \n// Definitions: https://github.com/meilisearch/meilisearch-js\n// TypeScript Version: ^3.8.3\nimport { Task } from \"./task.js\";\nimport { Batch } from \"./batch.js\";\n/*\n * SEARCH PARAMETERS\n */\nexport const MatchingStrategies = {\n ALL: \"all\",\n LAST: \"last\",\n FREQUENCY: \"frequency\",\n};\nexport const ContentTypeEnum = {\n JSON: \"application/json\",\n CSV: \"text/csv\",\n NDJSON: \"application/x-ndjson\",\n};\n/*\n ** TASKS\n */\nexport const TaskStatus = {\n TASK_SUCCEEDED: \"succeeded\",\n TASK_PROCESSING: \"processing\",\n TASK_FAILED: \"failed\",\n TASK_ENQUEUED: \"enqueued\",\n TASK_CANCELED: \"canceled\",\n};\nexport const TaskTypes = {\n DOCUMENTS_ADDITION_OR_UPDATE: \"documentAdditionOrUpdate\",\n DOCUMENT_DELETION: \"documentDeletion\",\n DUMP_CREATION: \"dumpCreation\",\n INDEX_CREATION: \"indexCreation\",\n INDEX_DELETION: \"indexDeletion\",\n INDEXES_SWAP: \"indexSwap\",\n INDEX_UPDATE: \"indexUpdate\",\n SETTINGS_UPDATE: \"settingsUpdate\",\n SNAPSHOT_CREATION: \"snapshotCreation\",\n TASK_CANCELATION: \"taskCancelation\",\n TASK_DELETION: \"taskDeletion\",\n};\n// @TODO: This doesn't seem to be up to date, and its usefullness comes into question.\nexport const ErrorStatusCode = {\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#index_creation_failed */\n INDEX_CREATION_FAILED: \"index_creation_failed\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_index_uid */\n MISSING_INDEX_UID: \"missing_index_uid\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#index_already_exists */\n INDEX_ALREADY_EXISTS: \"index_already_exists\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#index_not_found */\n INDEX_NOT_FOUND: \"index_not_found\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_index_uid */\n INVALID_INDEX_UID: \"invalid_index_uid\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#index_not_accessible */\n INDEX_NOT_ACCESSIBLE: \"index_not_accessible\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_index_offset */\n INVALID_INDEX_OFFSET: \"invalid_index_offset\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_index_limit */\n INVALID_INDEX_LIMIT: \"invalid_index_limit\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_state */\n INVALID_STATE: \"invalid_state\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#primary_key_inference_failed */\n PRIMARY_KEY_INFERENCE_FAILED: \"primary_key_inference_failed\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#index_primary_key_already_exists */\n INDEX_PRIMARY_KEY_ALREADY_EXISTS: \"index_primary_key_already_exists\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_index_primary_key */\n INVALID_INDEX_PRIMARY_KEY: \"invalid_index_primary_key\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#max_fields_limit_exceeded */\n DOCUMENTS_FIELDS_LIMIT_REACHED: \"document_fields_limit_reached\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_document_id */\n MISSING_DOCUMENT_ID: \"missing_document_id\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_document_id */\n INVALID_DOCUMENT_ID: \"invalid_document_id\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_content_type */\n INVALID_CONTENT_TYPE: \"invalid_content_type\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_content_type */\n MISSING_CONTENT_TYPE: \"missing_content_type\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_document_fields */\n INVALID_DOCUMENT_FIELDS: \"invalid_document_fields\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_document_limit */\n INVALID_DOCUMENT_LIMIT: \"invalid_document_limit\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_document_offset */\n INVALID_DOCUMENT_OFFSET: \"invalid_document_offset\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_document_filter */\n INVALID_DOCUMENT_FILTER: \"invalid_document_filter\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_document_filter */\n MISSING_DOCUMENT_FILTER: \"missing_document_filter\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_document_vectors_field */\n INVALID_DOCUMENT_VECTORS_FIELD: \"invalid_document_vectors_field\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#payload_too_large */\n PAYLOAD_TOO_LARGE: \"payload_too_large\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_payload */\n MISSING_PAYLOAD: \"missing_payload\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#malformed_payload */\n MALFORMED_PAYLOAD: \"malformed_payload\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#no_space_left_on_device */\n NO_SPACE_LEFT_ON_DEVICE: \"no_space_left_on_device\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_store_file */\n INVALID_STORE_FILE: \"invalid_store_file\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_ranking_rules */\n INVALID_RANKING_RULES: \"missing_document_id\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_request */\n INVALID_REQUEST: \"invalid_request\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_document_geo_field */\n INVALID_DOCUMENT_GEO_FIELD: \"invalid_document_geo_field\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_q */\n INVALID_SEARCH_Q: \"invalid_search_q\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_offset */\n INVALID_SEARCH_OFFSET: \"invalid_search_offset\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_limit */\n INVALID_SEARCH_LIMIT: \"invalid_search_limit\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_page */\n INVALID_SEARCH_PAGE: \"invalid_search_page\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_hits_per_page */\n INVALID_SEARCH_HITS_PER_PAGE: \"invalid_search_hits_per_page\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_attributes_to_retrieve */\n INVALID_SEARCH_ATTRIBUTES_TO_RETRIEVE: \"invalid_search_attributes_to_retrieve\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_attributes_to_crop */\n INVALID_SEARCH_ATTRIBUTES_TO_CROP: \"invalid_search_attributes_to_crop\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_crop_length */\n INVALID_SEARCH_CROP_LENGTH: \"invalid_search_crop_length\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_attributes_to_highlight */\n INVALID_SEARCH_ATTRIBUTES_TO_HIGHLIGHT: \"invalid_search_attributes_to_highlight\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_show_matches_position */\n INVALID_SEARCH_SHOW_MATCHES_POSITION: \"invalid_search_show_matches_position\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_filter */\n INVALID_SEARCH_FILTER: \"invalid_search_filter\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_sort */\n INVALID_SEARCH_SORT: \"invalid_search_sort\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_facets */\n INVALID_SEARCH_FACETS: \"invalid_search_facets\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_highlight_pre_tag */\n INVALID_SEARCH_HIGHLIGHT_PRE_TAG: \"invalid_search_highlight_pre_tag\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_highlight_post_tag */\n INVALID_SEARCH_HIGHLIGHT_POST_TAG: \"invalid_search_highlight_post_tag\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_crop_marker */\n INVALID_SEARCH_CROP_MARKER: \"invalid_search_crop_marker\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_matching_strategy */\n INVALID_SEARCH_MATCHING_STRATEGY: \"invalid_search_matching_strategy\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_vector */\n INVALID_SEARCH_VECTOR: \"invalid_search_vector\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_attributes_to_search_on */\n INVALID_SEARCH_ATTRIBUTES_TO_SEARCH_ON: \"invalid_search_attributes_to_search_on\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#bad_request */\n BAD_REQUEST: \"bad_request\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#document_not_found */\n DOCUMENT_NOT_FOUND: \"document_not_found\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#internal */\n INTERNAL: \"internal\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_api_key */\n INVALID_API_KEY: \"invalid_api_key\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_api_key_description */\n INVALID_API_KEY_DESCRIPTION: \"invalid_api_key_description\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_api_key_actions */\n INVALID_API_KEY_ACTIONS: \"invalid_api_key_actions\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_api_key_indexes */\n INVALID_API_KEY_INDEXES: \"invalid_api_key_indexes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_api_key_expires_at */\n INVALID_API_KEY_EXPIRES_AT: \"invalid_api_key_expires_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#api_key_not_found */\n API_KEY_NOT_FOUND: \"api_key_not_found\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_api_key_uid */\n IMMUTABLE_API_KEY_UID: \"immutable_api_key_uid\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_api_key_actions */\n IMMUTABLE_API_KEY_ACTIONS: \"immutable_api_key_actions\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_api_key_indexes */\n IMMUTABLE_API_KEY_INDEXES: \"immutable_api_key_indexes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_api_key_expires_at */\n IMMUTABLE_API_KEY_EXPIRES_AT: \"immutable_api_key_expires_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_api_key_created_at */\n IMMUTABLE_API_KEY_CREATED_AT: \"immutable_api_key_created_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_api_key_updated_at */\n IMMUTABLE_API_KEY_UPDATED_AT: \"immutable_api_key_updated_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_authorization_header */\n MISSING_AUTHORIZATION_HEADER: \"missing_authorization_header\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#unretrievable_document */\n UNRETRIEVABLE_DOCUMENT: \"unretrievable_document\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#database_size_limit_reached */\n MAX_DATABASE_SIZE_LIMIT_REACHED: \"database_size_limit_reached\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#task_not_found */\n TASK_NOT_FOUND: \"task_not_found\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#dump_process_failed */\n DUMP_PROCESS_FAILED: \"dump_process_failed\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#dump_not_found */\n DUMP_NOT_FOUND: \"dump_not_found\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_swap_duplicate_index_found */\n INVALID_SWAP_DUPLICATE_INDEX_FOUND: \"invalid_swap_duplicate_index_found\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_swap_indexes */\n INVALID_SWAP_INDEXES: \"invalid_swap_indexes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_swap_indexes */\n MISSING_SWAP_INDEXES: \"missing_swap_indexes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_master_key */\n MISSING_MASTER_KEY: \"missing_master_key\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_types */\n INVALID_TASK_TYPES: \"invalid_task_types\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_uids */\n INVALID_TASK_UIDS: \"invalid_task_uids\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_statuses */\n INVALID_TASK_STATUSES: \"invalid_task_statuses\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_limit */\n INVALID_TASK_LIMIT: \"invalid_task_limit\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_from */\n INVALID_TASK_FROM: \"invalid_task_from\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_canceled_by */\n INVALID_TASK_CANCELED_BY: \"invalid_task_canceled_by\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_task_filters */\n MISSING_TASK_FILTERS: \"missing_task_filters\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#too_many_open_files */\n TOO_MANY_OPEN_FILES: \"too_many_open_files\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#io_error */\n IO_ERROR: \"io_error\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_index_uids */\n INVALID_TASK_INDEX_UIDS: \"invalid_task_index_uids\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_index_uid */\n IMMUTABLE_INDEX_UID: \"immutable_index_uid\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_index_created_at */\n IMMUTABLE_INDEX_CREATED_AT: \"immutable_index_created_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#immutable_index_updated_at */\n IMMUTABLE_INDEX_UPDATED_AT: \"immutable_index_updated_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_displayed_attributes */\n INVALID_SETTINGS_DISPLAYED_ATTRIBUTES: \"invalid_settings_displayed_attributes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_searchable_attributes */\n INVALID_SETTINGS_SEARCHABLE_ATTRIBUTES: \"invalid_settings_searchable_attributes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_filterable_attributes */\n INVALID_SETTINGS_FILTERABLE_ATTRIBUTES: \"invalid_settings_filterable_attributes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_sortable_attributes */\n INVALID_SETTINGS_SORTABLE_ATTRIBUTES: \"invalid_settings_sortable_attributes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_ranking_rules */\n INVALID_SETTINGS_RANKING_RULES: \"invalid_settings_ranking_rules\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_stop_words */\n INVALID_SETTINGS_STOP_WORDS: \"invalid_settings_stop_words\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_synonyms */\n INVALID_SETTINGS_SYNONYMS: \"invalid_settings_synonyms\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_distinct_attribute */\n INVALID_SETTINGS_DISTINCT_ATTRIBUTE: \"invalid_settings_distinct_attribute\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_typo_tolerance */\n INVALID_SETTINGS_TYPO_TOLERANCE: \"invalid_settings_typo_tolerance\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_faceting */\n INVALID_SETTINGS_FACETING: \"invalid_settings_faceting\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_pagination */\n INVALID_SETTINGS_PAGINATION: \"invalid_settings_pagination\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_search_cutoff_ms */\n INVALID_SETTINGS_SEARCH_CUTOFF_MS: \"invalid_settings_search_cutoff_ms\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_settings_search_cutoff_ms */\n INVALID_SETTINGS_LOCALIZED_ATTRIBUTES: \"invalid_settings_localized_attributes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_before_enqueued_at */\n INVALID_TASK_BEFORE_ENQUEUED_AT: \"invalid_task_before_enqueued_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_after_enqueued_at */\n INVALID_TASK_AFTER_ENQUEUED_AT: \"invalid_task_after_enqueued_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_before_started_at */\n INVALID_TASK_BEFORE_STARTED_AT: \"invalid_task_before_started_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_after_started_at */\n INVALID_TASK_AFTER_STARTED_AT: \"invalid_task_after_started_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_before_finished_at */\n INVALID_TASK_BEFORE_FINISHED_AT: \"invalid_task_before_finished_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_task_after_finished_at */\n INVALID_TASK_AFTER_FINISHED_AT: \"invalid_task_after_finished_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_api_key_actions */\n MISSING_API_KEY_ACTIONS: \"missing_api_key_actions\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_api_key_indexes */\n MISSING_API_KEY_INDEXES: \"missing_api_key_indexes\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_api_key_expires_at */\n MISSING_API_KEY_EXPIRES_AT: \"missing_api_key_expires_at\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_api_key_limit */\n INVALID_API_KEY_LIMIT: \"invalid_api_key_limit\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_api_key_offset */\n INVALID_API_KEY_OFFSET: \"invalid_api_key_offset\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_facet_search_facet_name */\n INVALID_FACET_SEARCH_FACET_NAME: \"invalid_facet_search_facet_name\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#missing_facet_search_facet_name */\n MISSING_FACET_SEARCH_FACET_NAME: \"missing_facet_search_facet_name\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_facet_search_facet_query */\n INVALID_FACET_SEARCH_FACET_QUERY: \"invalid_facet_search_facet_query\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_search_ranking_score_threshold */\n INVALID_SEARCH_RANKING_SCORE_THRESHOLD: \"invalid_search_ranking_score_threshold\",\n /** @see https://www.meilisearch.com/docs/reference/errors/error_codes#invalid_similar_ranking_score_threshold */\n INVALID_SIMILAR_RANKING_SCORE_THRESHOLD: \"invalid_similar_ranking_score_threshold\",\n};\n","/** Removes undefined entries from object */\nfunction removeUndefinedFromObject(obj) {\n return Object.entries(obj).reduce((acc, curEntry) => {\n const [key, val] = curEntry;\n if (val !== undefined)\n acc[key] = val;\n return acc;\n }, {});\n}\nasync function sleep(ms) {\n return await new Promise((resolve) => setTimeout(resolve, ms));\n}\nfunction addProtocolIfNotPresent(host) {\n if (!(host.startsWith(\"https://\") || host.startsWith(\"http://\"))) {\n return `http://${host}`;\n }\n return host;\n}\nfunction addTrailingSlash(url) {\n if (!url.endsWith(\"/\")) {\n url += \"/\";\n }\n return url;\n}\nexport { sleep, removeUndefinedFromObject, addProtocolIfNotPresent, addTrailingSlash, };\n"],"names":["Batch","uid","details","stats","startedAt","finishedAt","duration","progress","constructor","batch","this","BatchClient","httpRequest","config","getBatch","url","get","getBatches","parameters","batches","results","map","EnqueuedTask","taskUid","indexUid","status","type","enqueuedAt","task","Date","MeiliSearchApiError","name","cause","response","responseBody","super","message","statusText","undefined","MeiliSearchError","Error","params","MeiliSearchRequestError","MeiliSearchTimeOutError","versionErrorHintMessage","method","toQueryParams","Object","keys","reduce","acc","key","value","Array","isArray","join","toISOString","createHeaders","agentHeader","packageAgent","authorization","headers","headerPair","clonedHeaders","forEach","assign","cloneAndParseHeaders","requestConfig","apiKey","clientAgents","clients","concat","HttpRequests","httpClient","requestTimeout","timeout","host","constructHostURL","URL","request","body","constructURL","queryParams","URLSearchParams","filter","x","set","search","toString","JSON","stringify","responsePromise","fetchWithTimeout","catch","error","text","parsedResponse","parse","ok","options","Promise","resolve","reject","promises","fetch","timeoutId","timeoutPromise","_","setTimeout","push","race","then","finally","clearTimeout","post","data","put","patch","Index","primaryKey","createdAt","updatedAt","tasks","query","q","searchGet","getParams","parseFilter","sort","facets","attributesToRetrieve","attributesToCrop","attributesToHighlight","vector","attributesToSearchOn","searchForFacetValues","searchSimilarDocuments","getRawInfo","res","fetchInfo","fetchPrimaryKey","create","req","update","delete","getTasks","indexUids","getTask","waitForTasks","taskUids","timeOutMs","intervalMs","waitForTask","getStats","getDocuments","fields","e","getDocument","documentId","addDocuments","documents","addDocumentsFromString","contentType","addDocumentsInBatches","batchSize","updates","i","length","slice","updateDocuments","updateDocumentsInBatches","updateDocumentsFromString","deleteDocument","deleteDocuments","isDocumentsDeletionQuery","endpoint","deleteAllDocuments","updateDocumentsByFunction","getSettings","updateSettings","settings","enqueued","resetSettings","getPagination","updatePagination","pagination","resetPagination","getSynonyms","updateSynonyms","synonyms","resetSynonyms","getStopWords","updateStopWords","stopWords","resetStopWords","getRankingRules","updateRankingRules","rankingRules","resetRankingRules","getDistinctAttribute","updateDistinctAttribute","distinctAttribute","resetDistinctAttribute","getFilterableAttributes","updateFilterableAttributes","filterableAttributes","resetFilterableAttributes","getSortableAttributes","updateSortableAttributes","sortableAttributes","resetSortableAttributes","getSearchableAttributes","updateSearchableAttributes","searchableAttributes","resetSearchableAttributes","getDisplayedAttributes","updateDisplayedAttributes","displayedAttributes","resetDisplayedAttributes","getTypoTolerance","updateTypoTolerance","typoTolerance","resetTypoTolerance","getFaceting","updateFaceting","faceting","resetFaceting","getSeparatorTokens","updateSeparatorTokens","separatorTokens","resetSeparatorTokens","getNonSeparatorTokens","updateNonSeparatorTokens","nonSeparatorTokens","resetNonSeparatorTokens","getDictionary","updateDictionary","dictionary","resetDictionary","getProximityPrecision","updateProximityPrecision","proximityPrecision","resetProximityPrecision","getEmbedders","updateEmbedders","embedders","resetEmbedders","getSearchCutoffMs","updateSearchCutoffMs","searchCutoffMs","resetSearchCutoffMs","getLocalizedAttributes","updateLocalizedAttributes","localizedAttributes","resetLocalizedAttributes","getFacetSearch","updateFacetSearch","facetSearch","resetFacetSearch","getPrefixSearch","updatePrefixSearch","prefixSearch","resetPrefixSearch","MeiliSearch","index","getIndex","getRawIndex","getIndexes","rawIndexes","getRawIndexes","indexes","createIndex","updateIndex","deleteIndex","deleteIndexIfExists","code","INDEX_NOT_FOUND","swapIndexes","multiSearch","queries","cancelTasks","deleteTasks","getKeys","getKey","keyOrUid","createKey","updateKey","deleteKey","health","isHealthy","getVersion","createDump","createSnapshot","PACKAGE_VERSION","Task","batchUid","canceledBy","TaskClient","taskItem","startingTime","now","TASK_ENQUEUED","TASK_PROCESSING","includes","TaskStatus","TASK_SUCCEEDED","TASK_FAILED","TASK_CANCELED","ErrorStatusCode","INDEX_CREATION_FAILED","MISSING_INDEX_UID","INDEX_ALREADY_EXISTS","INVALID_INDEX_UID","INDEX_NOT_ACCESSIBLE","INVALID_INDEX_OFFSET","INVALID_INDEX_LIMIT","INVALID_STATE","PRIMARY_KEY_INFERENCE_FAILED","INDEX_PRIMARY_KEY_ALREADY_EXISTS","INVALID_INDEX_PRIMARY_KEY","DOCUMENTS_FIELDS_LIMIT_REACHED","MISSING_DOCUMENT_ID","INVALID_DOCUMENT_ID","INVALID_CONTENT_TYPE","MISSING_CONTENT_TYPE","INVALID_DOCUMENT_FIELDS","INVALID_DOCUMENT_LIMIT","INVALID_DOCUMENT_OFFSET","INVALID_DOCUMENT_FILTER","MISSING_DOCUMENT_FILTER","INVALID_DOCUMENT_VECTORS_FIELD","PAYLOAD_TOO_LARGE","MISSING_PAYLOAD","MALFORMED_PAYLOAD","NO_SPACE_LEFT_ON_DEVICE","INVALID_STORE_FILE","INVALID_RANKING_RULES","INVALID_REQUEST","INVALID_DOCUMENT_GEO_FIELD","INVALID_SEARCH_Q","INVALID_SEARCH_OFFSET","INVALID_SEARCH_LIMIT","INVALID_SEARCH_PAGE","INVALID_SEARCH_HITS_PER_PAGE","INVALID_SEARCH_ATTRIBUTES_TO_RETRIEVE","INVALID_SEARCH_ATTRIBUTES_TO_CROP","INVALID_SEARCH_CROP_LENGTH","INVALID_SEARCH_ATTRIBUTES_TO_HIGHLIGHT","INVALID_SEARCH_SHOW_MATCHES_POSITION","INVALID_SEARCH_FILTER","INVALID_SEARCH_SORT","INVALID_SEARCH_FACETS","INVALID_SEARCH_HIGHLIGHT_PRE_TAG","INVALID_SEARCH_HIGHLIGHT_POST_TAG","INVALID_SEARCH_CROP_MARKER","INVALID_SEARCH_MATCHING_STRATEGY","INVALID_SEARCH_VECTOR","INVALID_SEARCH_ATTRIBUTES_TO_SEARCH_ON","BAD_REQUEST","DOCUMENT_NOT_FOUND","INTERNAL","INVALID_API_KEY","INVALID_API_KEY_DESCRIPTION","INVALID_API_KEY_ACTIONS","INVALID_API_KEY_INDEXES","INVALID_API_KEY_EXPIRES_AT","API_KEY_NOT_FOUND","IMMUTABLE_API_KEY_UID","IMMUTABLE_API_KEY_ACTIONS","IMMUTABLE_API_KEY_INDEXES","IMMUTABLE_API_KEY_EXPIRES_AT","IMMUTABLE_API_KEY_CREATED_AT","IMMUTABLE_API_KEY_UPDATED_AT","MISSING_AUTHORIZATION_HEADER","UNRETRIEVABLE_DOCUMENT","MAX_DATABASE_SIZE_LIMIT_REACHED","TASK_NOT_FOUND","DUMP_PROCESS_FAILED","DUMP_NOT_FOUND","INVALID_SWAP_DUPLICATE_INDEX_FOUND","INVALID_SWAP_INDEXES","MISSING_SWAP_INDEXES","MISSING_MASTER_KEY","INVALID_TASK_TYPES","INVALID_TASK_UIDS","INVALID_TASK_STATUSES","INVALID_TASK_LIMIT","INVALID_TASK_FROM","INVALID_TASK_CANCELED_BY","MISSING_TASK_FILTERS","TOO_MANY_OPEN_FILES","IO_ERROR","INVALID_TASK_INDEX_UIDS","IMMUTABLE_INDEX_UID","IMMUTABLE_INDEX_CREATED_AT","IMMUTABLE_INDEX_UPDATED_AT","INVALID_SETTINGS_DISPLAYED_ATTRIBUTES","INVALID_SETTINGS_SEARCHABLE_ATTRIBUTES","INVALID_SETTINGS_FILTERABLE_ATTRIBUTES","INVALID_SETTINGS_SORTABLE_ATTRIBUTES","INVALID_SETTINGS_RANKING_RULES","INVALID_SETTINGS_STOP_WORDS","INVALID_SETTINGS_SYNONYMS","INVALID_SETTINGS_DISTINCT_ATTRIBUTE","INVALID_SETTINGS_TYPO_TOLERANCE","INVALID_SETTINGS_FACETING","INVALID_SETTINGS_PAGINATION","INVALID_SETTINGS_SEARCH_CUTOFF_MS","INVALID_SETTINGS_LOCALIZED_ATTRIBUTES","INVALID_TASK_BEFORE_ENQUEUED_AT","INVALID_TASK_AFTER_ENQUEUED_AT","INVALID_TASK_BEFORE_STARTED_AT","INVALID_TASK_AFTER_STARTED_AT","INVALID_TASK_BEFORE_FINISHED_AT","INVALID_TASK_AFTER_FINISHED_AT","MISSING_API_KEY_ACTIONS","MISSING_API_KEY_INDEXES","MISSING_API_KEY_EXPIRES_AT","INVALID_API_KEY_LIMIT","INVALID_API_KEY_OFFSET","INVALID_FACET_SEARCH_FACET_NAME","MISSING_FACET_SEARCH_FACET_NAME","INVALID_FACET_SEARCH_FACET_QUERY","INVALID_SEARCH_RANKING_SCORE_THRESHOLD","INVALID_SIMILAR_RANKING_SCORE_THRESHOLD","removeUndefinedFromObject","obj","entries","curEntry","val","async","sleep","ms","addProtocolIfNotPresent","startsWith","addTrailingSlash","endsWith"],"sourceRoot":""}