From 20343affd67139a636816b8fa7922ce84dd02c7c Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 11:56:50 +0300 Subject: [PATCH 01/24] docs(client): add jsdoc for client resources --- src/Typesense/Client.ts | 239 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) diff --git a/src/Typesense/Client.ts b/src/Typesense/Client.ts index 0d77ba94..429abdfe 100644 --- a/src/Typesense/Client.ts +++ b/src/Typesense/Client.ts @@ -29,17 +29,94 @@ import SynonymSets from "./SynonymSets"; import SynonymSet from "./SynonymSet"; import CurationSets from "./CurationSets"; import CurationSet from "./CurationSet"; +/** + * Typesense client for indexing, searching, and managing collections. + * + * @see https://typesense.org/docs/latest/api/ + */ export default class Client { configuration: Configuration; apiCall: ApiCall; + /** + * Retrieve server version and state information. + * + * @example + * await client.debug.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug + */ debug: Debug; + /** + * Get current RAM, CPU, Disk & Network usage metrics. + * + * @example + * await client.metrics.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ metrics: Metrics; + /** + * Get stats about API endpoints. + * + * @example + * await client.stats.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ stats: Stats; + /** + * Checks if Typesense server is ready to accept requests. + * + * @example + * await client.health.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#health + */ health: Health; + /** + * Cluster operations: snapshots, voting, cache, on-disk compaction, slow request log. + * + * @example + * await client.operations.perform("snapshot", { snapshot_path: "/tmp/snap" }) + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ operations: Operations; + /** + * Send multiple search requests in a single HTTP request. + * + * @example + * await client.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ multiSearch: MultiSearch; + /** + * Manage analytics rules and events. + * + * @example + * await client.analytics.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ analytics: Analytics; + /** + * Legacy v1 analytics API for rules and events. + * + * @example + * await client.analyticsV1.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ analyticsV1: AnalyticsV1; + /** + * Manage stemming dictionaries. + * + * @example + * await client.stemming.dictionaries().retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ stemming: Stemming; private readonly _collections: Collections; private readonly individualCollections: Record; @@ -94,7 +171,25 @@ export default class Client { this.individualCurationSets = {}; } + /** + * Access the collections resource. Call without arguments to list or create collections, or pass a name to access a single collection. + * + * @example + * await client.collections().create({ name: "products", fields: [{ name: "title", type: "string" }] }) + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html + */ collections(): Collections; + /** + * Access an individual collection by name. + * + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html + */ collections = object>( collectionName: string, ): Collection; @@ -113,7 +208,25 @@ export default class Client { } } + /** + * Access the aliases resource. Call without arguments to list or upsert aliases, or pass a name to access a single alias. + * + * @example + * await client.aliases().upsert("my-alias", { collection_name: "products" }) + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html + */ aliases(): Aliases; + /** + * Access an individual collection alias by name. + * + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html + */ aliases(aliasName: string): Alias; aliases(aliasName?: string): Aliases | Alias { if (aliasName === undefined) { @@ -126,7 +239,25 @@ export default class Client { } } + /** + * Access the API keys resource. Call without arguments to list or create keys, or pass an ID to access a single key. + * + * @example + * await client.keys().create({ description: "Search-only key", actions: ["documents:search"], collections: ["*"] }) + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html + */ keys(): Keys; + /** + * Access an individual API key by ID. + * + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html + */ keys(id: number): Key; keys(id?: number): Keys | Key { if (id === undefined) { @@ -139,7 +270,25 @@ export default class Client { } } + /** + * Access the presets resource. Call without arguments to list or upsert presets, or pass an ID to access a single preset. + * + * @example + * await client.presets().upsert("listing_view", { value: { q: "*" } }) + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ presets(): Presets; + /** + * Access an individual preset by ID. + * + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ presets(id: string): Preset; presets(id?: string): Presets | Preset { if (id === undefined) { @@ -152,7 +301,25 @@ export default class Client { } } + /** + * Access the stopwords resource. Call without arguments to list or upsert stopword sets, or pass an ID to access a single set. + * + * @example + * await client.stopwords().upsert("en", { stopwords: ["a", "the"] }) + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ stopwords(): Stopwords; + /** + * Access an individual stopwords set by ID. + * + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ stopwords(id: string): Stopword; stopwords(id?: string): Stopwords | Stopword { if (id === undefined) { @@ -165,7 +332,25 @@ export default class Client { } } + /** + * Access the conversation models resource. Call without arguments to list models, or pass an ID to access a single model. + * + * @example + * await client.conversations().retrieve() + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ conversations(): Conversations; + /** + * Access an individual conversation model by ID. + * + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ conversations(id: string): Conversation; conversations(id?: string): Conversations | Conversation { if (id === undefined) { @@ -178,7 +363,25 @@ export default class Client { } } + /** + * Access the NL search models resource. Call without arguments to list or create models, or pass an ID to access a single model. + * + * @example + * await client.nlSearchModels().create({ model_name: "openai/gpt-4" }) + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ nlSearchModels(): NLSearchModels; + /** + * Access an individual NL search model by ID. + * + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ nlSearchModels(id: string): NLSearchModel; nlSearchModels(id?: string): NLSearchModels | NLSearchModel { if (id === undefined) { @@ -191,7 +394,25 @@ export default class Client { } } + /** + * Access the synonym sets resource. Call without arguments to list sets, or pass a name to access a single set. + * + * @example + * await client.synonymSets().retrieve() + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ synonymSets(): SynonymSets; + /** + * Access an individual synonym set by name. + * + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ synonymSets(synonymSetName: string): SynonymSet; synonymSets(synonymSetName?: string): SynonymSets | SynonymSet { if (synonymSetName === undefined) { @@ -207,7 +428,25 @@ export default class Client { } } + /** + * Access the curation sets resource. Call without arguments to list sets, or pass a name to access a single set. + * + * @example + * await client.curationSets().retrieve() + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ curationSets(): CurationSets; + /** + * Access an individual curation set by name. + * + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ curationSets(name: string): CurationSet; curationSets(name?: string): CurationSets | CurationSet { if (name === undefined) { From f72ca0bcee614d31ded947ab4f9c9a0bac36fc59 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:06:48 +0300 Subject: [PATCH 02/24] docs(debug): add jsdoc for debug class methods --- src/Typesense/Debug.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Typesense/Debug.ts b/src/Typesense/Debug.ts index acdf2e92..93a6023e 100644 --- a/src/Typesense/Debug.ts +++ b/src/Typesense/Debug.ts @@ -10,6 +10,14 @@ export interface DebugResponseSchema { export default class Debug { constructor(private apiCall: ApiCall) {} + /** + * Retrieve server version and state information. + * + * @example + * await client.debug.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug + */ async retrieve(): Promise { return this.apiCall.get(RESOURCEPATH); } From 1e490f202be8439c90b2f0db80eceee0d8723f77 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:15:17 +0300 Subject: [PATCH 03/24] docs(metrics): add jsdoc for metrics class methods --- src/Typesense/Metrics.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Typesense/Metrics.ts b/src/Typesense/Metrics.ts index 8121497b..681c31ba 100644 --- a/src/Typesense/Metrics.ts +++ b/src/Typesense/Metrics.ts @@ -25,6 +25,14 @@ export interface MetricsResponse { export default class Metrics { constructor(private apiCall: ApiCall) {} + /** + * Get current RAM, CPU, Disk & Network usage metrics. + * + * @example + * await client.metrics.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ async retrieve(): Promise { return this.apiCall.get(RESOURCEPATH); } From f62c0230251a32f8cc5c77082eec5196af4825ec Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:15:39 +0300 Subject: [PATCH 04/24] docs(stats): add jsdoc for stats class methods --- src/Typesense/Stats.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Typesense/Stats.ts b/src/Typesense/Stats.ts index 00cb9edd..eb262356 100644 --- a/src/Typesense/Stats.ts +++ b/src/Typesense/Stats.ts @@ -25,6 +25,14 @@ export interface StatsResponse { export default class Metrics { constructor(private apiCall: ApiCall) {} + /** + * Get stats about API endpoints. + * + * @example + * await client.stats.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ async retrieve(): Promise { return this.apiCall.get(RESOURCEPATH); } From b9423e94e874a7669895156c0624322fad482159 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:16:22 +0300 Subject: [PATCH 05/24] docs(health): add jsdoc for health class methods --- src/Typesense/Health.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Typesense/Health.ts b/src/Typesense/Health.ts index 784b45d7..2bafc315 100644 --- a/src/Typesense/Health.ts +++ b/src/Typesense/Health.ts @@ -9,6 +9,14 @@ export interface HealthResponse { export default class Health { constructor(private apiCall: ApiCall) {} + /** + * Checks if Typesense server is ready to accept requests. + * + * @example + * await client.health.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#health + */ async retrieve(): Promise { return this.apiCall.get(RESOURCEPATH); } From 3af5e263d9a0e7a8cf80f306ab31a39ad960c76f Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:16:49 +0300 Subject: [PATCH 06/24] docs(operations): add jsdoc for operations class methods --- src/Typesense/Operations.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Typesense/Operations.ts b/src/Typesense/Operations.ts index 0100707d..eaf7e277 100644 --- a/src/Typesense/Operations.ts +++ b/src/Typesense/Operations.ts @@ -11,6 +11,14 @@ export interface SchemaChangeStatus { export default class Operations { constructor(private apiCall: ApiCall) {} + /** + * Perform a cluster operation: snapshot, vote, cache/clear, db/compact, or a custom path. + * + * @example + * await client.operations.perform("snapshot", { snapshot_path: "/tmp/snap" }) + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ async perform( operationName: | "vote" @@ -27,6 +35,14 @@ export default class Operations { ); } + /** + * Get the status of in-progress schema change operations + * + * @example + * await client.operations.getSchemaChanges() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ async getSchemaChanges(): Promise { return this.apiCall.get( `${RESOURCEPATH}/schema_changes`, From ce596b31a7b274d0b3e8d56696cabe7e80b3b4d2 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:17:19 +0300 Subject: [PATCH 07/24] docs(multi-search): add jsdoc for multi-search class methods --- src/Typesense/MultiSearch.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Typesense/MultiSearch.ts b/src/Typesense/MultiSearch.ts index 660d93d0..6d302731 100644 --- a/src/Typesense/MultiSearch.ts +++ b/src/Typesense/MultiSearch.ts @@ -39,6 +39,16 @@ export default class MultiSearch { this.requestWithCache.clearCache(); } + /** + * Send multiple search requests in a single HTTP request. Pass `union: true` to merge results, or omit it to receive a `results` array. + * + * @example + * await client.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * @example + * await client.multiSearch.perform({ union: true, searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ async perform< const T extends DocumentSchema[] = [], const Infix extends string = string, @@ -48,6 +58,14 @@ export default class MultiSearch { options?: SearchOptions, ): Promise>; + /** + * Send multiple search requests in a single HTTP request and receive a `results` array (one entry per search). + * + * @example + * await client.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ async perform< const T extends DocumentSchema[] = [], const Infix extends string = string, From 322178ff012159c0029c0f71472e4aff2f40dcaf Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:24:07 +0300 Subject: [PATCH 08/24] docs(analytics): add jsdoc for analytics class methods --- src/Typesense/Analytics.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Typesense/Analytics.ts b/src/Typesense/Analytics.ts index d49209e2..826141cd 100644 --- a/src/Typesense/Analytics.ts +++ b/src/Typesense/Analytics.ts @@ -16,7 +16,25 @@ export default class Analytics { this._analyticsEvents = new AnalyticsEvents(this.apiCall); } + /** + * Access the analytics rules resource. Call without arguments to list or create rules, or pass an ID to access a single rule. + * + * @example + * await client.analytics.rules().retrieve() + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ rules(): AnalyticsRules; + /** + * Access an individual analytics rule by ID. + * + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ rules(id: string): AnalyticsRule; rules(id?: string): AnalyticsRules | AnalyticsRule { if (id === undefined) { @@ -29,6 +47,14 @@ export default class Analytics { } } + /** + * Access the analytics events resource to send analytics events. + * + * @example + * await client.analytics.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ events(): AnalyticsEvents { return this._analyticsEvents; } From 05562a79aaf75cee72eb0510a5b55f52ec84229e Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:28:29 +0300 Subject: [PATCH 09/24] docs(analytics-rules): add jsdoc for analytics rules and events class methods --- src/Typesense/AnalyticsEvents.ts | 16 ++++++++++++++++ src/Typesense/AnalyticsRule.ts | 16 ++++++++++++++++ src/Typesense/AnalyticsRules.ts | 24 ++++++++++++++++++++++++ 3 files changed, 56 insertions(+) diff --git a/src/Typesense/AnalyticsEvents.ts b/src/Typesense/AnalyticsEvents.ts index 196318bc..ac523dd6 100644 --- a/src/Typesense/AnalyticsEvents.ts +++ b/src/Typesense/AnalyticsEvents.ts @@ -21,6 +21,14 @@ export default class AnalyticsEvents { this.apiCall = apiCall; } + /** + * Submit a single analytics event. The event must correspond to an existing analytics rule by name. + * + * @example + * await client.analytics.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ async create( params: AnalyticsEventCreateSchema, ): Promise { @@ -30,6 +38,14 @@ export default class AnalyticsEvents { ); } + /** + * Retrieve the most recent events for a user and rule. + * + * @example + * await client.analytics.events().retrieve({ user_id: "u1", name: "products_click", n: 10 }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ async retrieve(params: { user_id: string; name: string; diff --git a/src/Typesense/AnalyticsRule.ts b/src/Typesense/AnalyticsRule.ts index fe8b5028..52c1a6b6 100644 --- a/src/Typesense/AnalyticsRule.ts +++ b/src/Typesense/AnalyticsRule.ts @@ -49,10 +49,26 @@ export default class AnalyticsRule { private apiCall: ApiCall, ) {} + /** + * Retrieve the details of an analytics rule, given it's name + * + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Permanently deletes an analytics rule, given it's name + * + * @example + * await client.analytics.rules("rule-1").delete() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/AnalyticsRules.ts b/src/Typesense/AnalyticsRules.ts index 86026142..3a3dd360 100644 --- a/src/Typesense/AnalyticsRules.ts +++ b/src/Typesense/AnalyticsRules.ts @@ -16,6 +16,14 @@ export default class AnalyticsRules { this.apiCall = apiCall; } + /** + * Create one or more analytics rules. You can send a single rule object or an array of rule objects. + * + * @example + * await client.analytics.rules().create({ name: "products_query_hits", type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ async create( params: | AnalyticsRuleCreateSchema @@ -37,6 +45,14 @@ export default class AnalyticsRules { ); } + /** + * Upserts an analytics rule with the given name. + * + * @example + * await client.analytics.rules().upsert("products_query_hits", { type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ async upsert( name: string, params: AnalyticsRuleUpsertSchema @@ -47,6 +63,14 @@ export default class AnalyticsRules { ); } + /** + * Retrieve all analytics rules. Use the optional rule_tag filter to narrow down results. + * + * @example + * await client.analytics.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ async retrieve(ruleTag?: string): Promise { const query: Record = {}; if (ruleTag) { From 9ce8a291329c964aa163f97aa255d4ec29f26b56 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:29:15 +0300 Subject: [PATCH 10/24] docs(analytics-v1): add jsdoc for legacy v1 analytics class methods docs(analytics-v1): pin doc links to v29 for deprecated v1 api --- src/Typesense/AnalyticsRuleV1.ts | 18 +++++++++++++++++- src/Typesense/AnalyticsRulesV1.ts | 21 ++++++++++++++++++--- src/Typesense/AnalyticsV1.ts | 26 ++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/src/Typesense/AnalyticsRuleV1.ts b/src/Typesense/AnalyticsRuleV1.ts index d404637e..b7805736 100644 --- a/src/Typesense/AnalyticsRuleV1.ts +++ b/src/Typesense/AnalyticsRuleV1.ts @@ -34,12 +34,28 @@ export default class AnalyticsRuleV1 { constructor( private name: string, private apiCall: ApiCall, - ) {} + ) { } + /** + * Retrieve a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules("rule-1").delete() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/AnalyticsRulesV1.ts b/src/Typesense/AnalyticsRulesV1.ts index dfa5da7b..70c0d320 100644 --- a/src/Typesense/AnalyticsRulesV1.ts +++ b/src/Typesense/AnalyticsRulesV1.ts @@ -15,6 +15,14 @@ export default class AnalyticsRulesV1 { this.apiCall = apiCall; } + /** + * Upsert a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules().upsert("products_query_hits", { type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ async upsert( name: string, params: AnalyticsRuleCreateSchemaV1 @@ -25,14 +33,21 @@ export default class AnalyticsRulesV1 { ); } + /** + * Retrieve all legacy v1 analytics rules. + * + * @example + * await client.analyticsV1.rules().retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } private endpointPath(operation?: string): string { - return `${AnalyticsRulesV1.RESOURCEPATH}${ - operation === undefined ? "" : "/" + encodeURIComponent(operation) - }`; + return `${AnalyticsRulesV1.RESOURCEPATH}${operation === undefined ? "" : "/" + encodeURIComponent(operation) + }`; } static get RESOURCEPATH() { diff --git a/src/Typesense/AnalyticsV1.ts b/src/Typesense/AnalyticsV1.ts index 74398c66..5b73d428 100644 --- a/src/Typesense/AnalyticsV1.ts +++ b/src/Typesense/AnalyticsV1.ts @@ -20,7 +20,25 @@ export default class AnalyticsV1 { this._analyticsEvents = new AnalyticsEvents(this.apiCall); } + /** + * Access the legacy v1 analytics rules resource. Call without arguments to list or upsert rules, or pass an ID to access a single rule. + * + * @example + * await client.analyticsV1.rules().retrieve() + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ rules(): AnalyticsRulesV1; + /** + * Access an individual legacy v1 analytics rule by ID. + * + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ rules(id: string): AnalyticsRuleV1; rules(id?: string): AnalyticsRulesV1 | AnalyticsRuleV1 { if (!AnalyticsV1.hasWarnedDeprecation) { @@ -40,6 +58,14 @@ export default class AnalyticsV1 { } } + /** + * Access the legacy v1 analytics events resource to send analytics events. + * + * @example + * await client.analyticsV1.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ events(): AnalyticsEvents { return this._analyticsEvents; } From e6f30a408c3e45e8c5a3af60d9bc4c1cbca3697c Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:30:41 +0300 Subject: [PATCH 11/24] docs(stemming): add jsdoc for stemming class methods --- src/Typesense/Stemming.ts | 18 ++++++++++++++++++ src/Typesense/StemmingDictionaries.ts | 16 ++++++++++++++++ src/Typesense/StemmingDictionary.ts | 16 ++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/src/Typesense/Stemming.ts b/src/Typesense/Stemming.ts index ab06957c..799ba642 100644 --- a/src/Typesense/Stemming.ts +++ b/src/Typesense/Stemming.ts @@ -16,7 +16,25 @@ export default class Stemming { this._stemmingDictionaries = new StemmingDictionaries(this.apiCall); } + /** + * Access the stemming dictionaries resource. Call without arguments to list or import dictionaries, or pass an ID to access a single dictionary. + * + * @example + * await client.stemming.dictionaries().retrieve() + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ dictionaries(): StemmingDictionaries; + /** + * Access an individual stemming dictionary by ID. + * + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ dictionaries(id: string): StemmingDictionary; dictionaries(id?: string): StemmingDictionaries | StemmingDictionary { if (id === undefined) { diff --git a/src/Typesense/StemmingDictionaries.ts b/src/Typesense/StemmingDictionaries.ts index 6b3d8fe3..1875f8ad 100644 --- a/src/Typesense/StemmingDictionaries.ts +++ b/src/Typesense/StemmingDictionaries.ts @@ -12,6 +12,14 @@ export default class StemmingDictionaries { this.apiCall = apiCall; } + /** + * Upload a JSONL file containing word mappings to create or update a stemming dictionary. + * + * @example + * await client.stemming.dictionaries().upsert("irregular-plurals", [{ word: "people", root: "person" }]) + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ async upsert( id: string, wordRootCombinations: StemmingDictionaryCreateSchema[] | string, @@ -41,6 +49,14 @@ export default class StemmingDictionaries { : resultsInJSONLFormat; } + /** + * Retrieve a list of all available stemming dictionaries. + * + * @example + * await client.stemming.dictionaries().retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ async retrieve(): Promise { return this.apiCall.get( this.endpointPath(), diff --git a/src/Typesense/StemmingDictionary.ts b/src/Typesense/StemmingDictionary.ts index 73c7c99a..25f949de 100644 --- a/src/Typesense/StemmingDictionary.ts +++ b/src/Typesense/StemmingDictionary.ts @@ -21,10 +21,26 @@ export default class StemmingDictionary { private apiCall: ApiCall, ) {} + /** + * Fetch details of a specific stemming dictionary. + * + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete a stemming dictionary by ID. + * + * @example + * await client.stemming.dictionaries("en").delete() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ async delete(): Promise { return this.apiCall.delete( this.endpointPath(), From 3ed9b781ee2d201058097d32224e3b3574e83ba4 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:31:42 +0300 Subject: [PATCH 12/24] docs(collections): add jsdoc for collection class methods --- src/Typesense/Collection.ts | 86 ++++++++++++++++++++++++++++++++++++ src/Typesense/Collections.ts | 16 +++++++ 2 files changed, 102 insertions(+) diff --git a/src/Typesense/Collection.ts b/src/Typesense/Collection.ts index 9bedd832..ed7e90d6 100644 --- a/src/Typesense/Collection.ts +++ b/src/Typesense/Collection.ts @@ -97,20 +97,52 @@ export default class Collection { this._synonyms = new Synonyms(this.name, this.apiCall); } + /** + * Retrieve the details of a collection, given its name. + * + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Update a collection's schema to modify the fields and their types. + * + * @example + * await client.collections("products").update({ fields: [{ name: "tags", type: "string[]" }] }) + * + * @see https://typesense.org/docs/latest/api/collections.html#update-or-alter-a-collection + */ async update(schema: CollectionUpdateSchema): Promise { return this.apiCall.patch(this.endpointPath(), schema); } + /** + * Permanently drops a collection. This action cannot be undone. For large collections, this might have an impact on read latencies. + * + * @example + * await client.collections("products").delete() + * + * @see https://typesense.org/docs/latest/api/collections.html#drop-a-collection + */ async delete( options: CollectionDeleteOptions = {}, ): Promise { return this.apiCall.delete(this.endpointPath(), options); } + /** + * Check whether the collection exists. + * + * @example + * await client.collections("products").exists() + * + * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection + */ async exists(): Promise { try { await this.retrieve(); @@ -121,7 +153,25 @@ export default class Collection { } } + /** + * Access the documents resource for this collection. Call without arguments to list, index, search, import, or export documents, or pass a document ID to access a single document. + * + * @example + * await client.collections("products").documents().create({ id: "1", title: "Hat" }) + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html + */ documents(): Documents; + /** + * Access an individual document by ID within this collection. + * + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html + */ documents(documentId: string): Document; documents(documentId?: string): Document | Documents { if (!documentId) { @@ -138,7 +188,25 @@ export default class Collection { } } + /** + * Access the legacy overrides (curation) resource for this collection. Call without arguments to list or upsert overrides, or pass an ID to access a single override. + * + * @example + * await client.collections("products").overrides().upsert("promote-hat", { rule: { query: "hat", match: "exact" }, includes: [] }) + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ overrides(): Overrides; + /** + * Access an individual override by ID within this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ overrides(overrideId: string): Override; overrides(overrideId?: string): Overrides | Override { if (overrideId === undefined) { @@ -155,7 +223,25 @@ export default class Collection { } } + /** + * Access the legacy synonyms resource for this collection. Call without arguments to list or upsert synonyms, or pass an ID to access a single synonym. + * + * @example + * await client.collections("products").synonyms().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ synonyms(): Synonyms; + /** + * Access an individual synonym by ID within this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ synonyms(synonymId: string): Synonym; synonyms(synonymId?: string): Synonyms | Synonym { if (synonymId === undefined) { diff --git a/src/Typesense/Collections.ts b/src/Typesense/Collections.ts index 0ba9326e..4c73017c 100644 --- a/src/Typesense/Collections.ts +++ b/src/Typesense/Collections.ts @@ -49,6 +49,14 @@ const RESOURCEPATH = "/collections"; export default class Collections { constructor(private apiCall: ApiCall) {} + /** + * When a collection is created, we give it a name and describe the fields that will be indexed from the documents added to the collection. + * + * @example + * await client.collections().create({ name: "products", fields: [{ name: "title", type: "string" }] }) + * + * @see https://typesense.org/docs/latest/api/collections.html#create-a-collection + */ async create( schema: CollectionCreateSchema, options?: Options, @@ -56,6 +64,14 @@ export default class Collections { return this.apiCall.post(RESOURCEPATH, schema, options); } + /** + * Returns a summary of all your collections. The collections are returned sorted by creation date, with the most recent collections appearing first. + * + * @example + * await client.collections().retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html#list-all-collections + */ async retrieve( options: CollectionsRetrieveOptions = {}, ): Promise { From 083360563c95ad53c13d68dff5281229784e26e8 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:33:24 +0300 Subject: [PATCH 13/24] docs(documents): add jsdoc for document class methods --- src/Typesense/Document.ts | 26 ++++++- src/Typesense/Documents.ts | 104 +++++++++++++++++++++++++-- src/Typesense/SearchOnlyDocuments.ts | 8 +++ 3 files changed, 131 insertions(+), 7 deletions(-) diff --git a/src/Typesense/Document.ts b/src/Typesense/Document.ts index 676af2ab..d3d03f37 100644 --- a/src/Typesense/Document.ts +++ b/src/Typesense/Document.ts @@ -19,16 +19,40 @@ export class Document { private apiCall: ApiCall ) {} + /** + * Fetch an individual document from a collection by using its ID. + * + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html#retrieve-a-document + */ async retrieve(options?: DocumentsRetrieveParameters): Promise { const queryParams = normalizeArrayableParams(options ?? {}) - + return this.apiCall.get(this.endpointPath(), queryParams); } + /** + * Delete an individual document from a collection by using its ID. + * + * @example + * await client.collections("products").documents("1").delete() + * + * @see https://typesense.org/docs/latest/api/documents.html#delete-a-document + */ async delete(options?: DeleteQuery): Promise { return this.apiCall.delete(this.endpointPath(), options); } + /** + * Update an individual document by ID by merging the provided fields. + * + * @example + * await client.collections("products").documents("1").update({ in_stock: true }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-a-document + */ async update( partialDocument: Partial, options: DocumentWriteParameters = {} diff --git a/src/Typesense/Documents.ts b/src/Typesense/Documents.ts index 683ddb37..813dff79 100644 --- a/src/Typesense/Documents.ts +++ b/src/Typesense/Documents.ts @@ -214,6 +214,14 @@ export default class Documents super(collectionName, apiCall, configuration); } + /** + * Index a single document. The document must conform to the schema of the collection. + * + * @example + * await client.collections("products").documents().create({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-a-single-document + */ async create( document: T, options: Omit = {}, @@ -222,6 +230,14 @@ export default class Documents return this.apiCall.post(this.endpointPath(), document, options); } + /** + * Upsert a single document. Creates the document if it does not exist, otherwise updates it. + * + * @example + * await client.collections("products").documents().upsert({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#upsert + */ async upsert(document: T, options: Omit = {}): Promise { if (!document) throw new Error("No document provided"); return this.apiCall.post( @@ -231,10 +247,28 @@ export default class Documents ); } + /** + * Update documents matching a `filter_by` condition, or update a single document with `action: "update"` semantics. + * + * @example + * await client.collections("products").documents().update({ in_stock: true }, { filter_by: "category:=hats" }) + * @example + * await client.collections("products").documents().update({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-documents-with-conditional-query + */ async update( document: T, options: UpdateByFilterParameters, ): Promise; + /** + * Update a single document by merging the provided fields. + * + * @example + * await client.collections("products").documents().update({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-a-document + */ async update(document: T, options: Omit): Promise; async update( document: T, @@ -257,10 +291,28 @@ export default class Documents } } + /** + * Emplace documents — insert new documents or update existing ones, optionally by `filter_by`. + * + * @example + * await client.collections("products").documents().emplace({ id: "1", title: "Hat" }) + * @example + * await client.collections("products").documents().emplace({ in_stock: true }, { filter_by: "category:=hats" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents + */ async emplace( document: T, options: UpdateByFilterParameters, ): Promise; + /** + * Emplace a single document — inserts if it does not exist, otherwise merges the provided fields. + * + * @example + * await client.collections("products").documents().emplace({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents + */ async emplace( document: T, options: Omit, @@ -286,12 +338,25 @@ export default class Documents } } + /** + * Delete a bunch of documents that match a specific filter condition, or truncate the collection. + * + * @example + * await client.collections("products").documents().delete({ filter_by: "in_stock:=false" }) + * @example + * await client.collections("products").documents().delete({ truncate: true }) + * + * @see https://typesense.org/docs/latest/api/documents.html#delete-by-query + */ async delete( query: DeleteQuery = {} as DeleteQuery, ): Promise> { return this.apiCall.delete>(this.endpointPath(), query); } + /** + * @deprecated Use `import` instead, which accepts both an array of documents or a JSONL string. + */ async createMany(documents: T[], options: DocumentImportParameters = {}) { this.configuration.logger.warn( "createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents", @@ -300,15 +365,27 @@ export default class Documents } /** - * Import a set of documents in a batch. - * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects. - * @param options - * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results. + * Import documents into a collection. Accepts a JSONL string or an array of document objects. + * + * @example + * await client.collections("products").documents().import([{ id: "1", title: "Hat" }, { id: "2", title: "Shirt" }]) + * @example + * await client.collections("products").documents().import(jsonlString) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents */ async import( documents: string, options?: DocumentImportParameters, ): Promise; + /** + * Import documents into a collection from an array of objects. Returns one result per document. + * + * @example + * await client.collections("products").documents().import([{ id: "1", title: "Hat" }]) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents + */ async import( documents: T[], options?: DocumentImportParameters, @@ -394,6 +471,11 @@ export default class Documents } /** * Imports documents from a NodeJS readable stream of JSONL. + * + * @example + * await client.collections("products").documents().importStream(fs.createReadStream("products.jsonl")) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents */ async importStream( readableStream: ReadStream, @@ -438,14 +520,24 @@ export default class Documents } /** - * Returns a JSONL string for all the documents in this collection + * Export all documents in a collection as a JSONL string. + * + * @example + * await client.collections("products").documents().export() + * + * @see https://typesense.org/docs/latest/api/documents.html#export-documents */ async export(options: DocumentsExportParameters = {}): Promise { return this.apiCall.get(this.endpointPath("export"), options); } /** - * Returns a NodeJS readable stream of JSONL for all the documents in this collection. + * Export all documents in a collection as a NodeJS readable stream of JSONL. + * + * @example + * await client.collections("products").documents().exportStream() + * + * @see https://typesense.org/docs/latest/api/documents.html#export-documents */ async exportStream( options: DocumentsExportParameters = {}, diff --git a/src/Typesense/SearchOnlyDocuments.ts b/src/Typesense/SearchOnlyDocuments.ts index 1281e07d..e39fb60a 100644 --- a/src/Typesense/SearchOnlyDocuments.ts +++ b/src/Typesense/SearchOnlyDocuments.ts @@ -28,6 +28,14 @@ export class SearchOnlyDocuments this.requestWithCache.clearCache(); } + /** + * Search for documents in a collection that match the search criteria. + * + * @example + * await client.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ async search( searchParameters: SearchParams | SearchParamsWithPreset, { From 486e036e0d4a15794a442c96a02f2907fbc02120 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:39:52 +0300 Subject: [PATCH 14/24] docs(aliases): add jsdoc for alias class methods --- src/Typesense/Alias.ts | 16 ++++++++++++++++ src/Typesense/Aliases.ts | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/Typesense/Alias.ts b/src/Typesense/Alias.ts index 14b61c30..6e497505 100644 --- a/src/Typesense/Alias.ts +++ b/src/Typesense/Alias.ts @@ -4,10 +4,26 @@ import ApiCall from "./ApiCall"; export default class Alias { constructor(private name: string, private apiCall: ApiCall) {} + /** + * Find out which collection an alias points to by fetching it + * + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#retrieve-an-alias + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete an alias + * + * @example + * await client.aliases("my-alias").delete() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#delete-an-alias + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/Aliases.ts b/src/Typesense/Aliases.ts index 2647af2a..863b5a5a 100644 --- a/src/Typesense/Aliases.ts +++ b/src/Typesense/Aliases.ts @@ -17,6 +17,14 @@ export interface CollectionAliasesResponseSchema { export default class Aliases { constructor(private apiCall: ApiCall) {} + /** + * Create or update a collection alias. + * + * @example + * await client.aliases().upsert("my-alias", { collection_name: "products" }) + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#create-or-update-an-alias + */ async upsert( name: string, mapping: CollectionAliasCreateSchema @@ -27,6 +35,14 @@ export default class Aliases { ); } + /** + * List all aliases and the corresponding collections that they map to. + * + * @example + * await client.aliases().retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#list-all-aliases + */ async retrieve(): Promise { return this.apiCall.get(RESOURCEPATH); } From 3222216d8495d1cf77bbc1a1b203aa047ab544ad Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:40:27 +0300 Subject: [PATCH 15/24] docs(keys): add jsdoc for api key class methods --- src/Typesense/Key.ts | 16 ++++++++++++++++ src/Typesense/Keys.ts | 24 ++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/Typesense/Key.ts b/src/Typesense/Key.ts index 5a7eacf0..7c44e323 100644 --- a/src/Typesense/Key.ts +++ b/src/Typesense/Key.ts @@ -59,10 +59,26 @@ export default class Key { private apiCall: ApiCall, ) {} + /** + * Retrieve (metadata about) a key. Only the key prefix is returned when you retrieve a key. Due to security reasons, only the create endpoint returns the full API key. + * + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#retrieve-an-api-key + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete an API key given its ID. + * + * @example + * await client.keys(1).delete() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#delete-api-key + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/Keys.ts b/src/Typesense/Keys.ts index faabd9c6..cf3f6b1b 100644 --- a/src/Typesense/Keys.ts +++ b/src/Typesense/Keys.ts @@ -24,14 +24,38 @@ export default class Keys { this.apiCall = apiCall; } + /** + * Create an API Key with fine-grain access control. You can restrict access on both a per-collection and per-action level. The generated key is returned only during creation. You want to store this key carefully in a secure place. + * + * @example + * await client.keys().create({ description: "Search-only key", actions: ["documents:search"], collections: ["*"] }) + * + * @see https://typesense.org/docs/latest/api/api-keys.html#create-an-api-key + */ async create(params: KeyCreateSchema): Promise { return this.apiCall.post(Keys.RESOURCEPATH, params); } + /** + * Retrieve (metadata about) all keys. + * + * @example + * await client.keys().retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#list-all-keys + */ async retrieve(): Promise { return this.apiCall.get(RESOURCEPATH); } + /** + * Generate a scoped search-only API key with embedded parameters such as `filter_by` or `expires_at`. + * + * @example + * client.keys().generateScopedSearchKey("search-only-key", { filter_by: "company_id:124", expires_at: 1700000000 }) + * + * @see https://typesense.org/docs/latest/api/api-keys.html#generate-scoped-search-key + */ generateScopedSearchKey( searchKey: string, parameters: GenerateScopedSearchKeyParams, From 00ae1dabdd0bfff08002ea8c22ea305c8c54c2ce Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:41:12 +0300 Subject: [PATCH 16/24] docs(presets): add jsdoc for preset class methods --- src/Typesense/Preset.ts | 16 ++++++++++++++++ src/Typesense/Presets.ts | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/Typesense/Preset.ts b/src/Typesense/Preset.ts index 900dd1c4..eb6730f4 100644 --- a/src/Typesense/Preset.ts +++ b/src/Typesense/Preset.ts @@ -17,10 +17,26 @@ export default class Preset { private apiCall: ApiCall, ) {} + /** + * Retrieve the details of a preset, given it's name. + * + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ async retrieve(): Promise> { return this.apiCall.get>(this.endpointPath()); } + /** + * Permanently deletes a preset, given it's name. + * + * @example + * await client.presets("listing_view").delete() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/Presets.ts b/src/Typesense/Presets.ts index 974d2816..73c80a78 100644 --- a/src/Typesense/Presets.ts +++ b/src/Typesense/Presets.ts @@ -20,6 +20,14 @@ export interface PresetsRetrieveSchema { export default class Presets { constructor(private apiCall: ApiCall) {} + /** + * Create or update an existing preset. + * + * @example + * await client.presets().upsert("listing_view", { value: { q: "*" } }) + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ async upsert( presetId: string, params: PresetCreateSchema, @@ -44,6 +52,14 @@ export default class Presets { }); } + /** + * Retrieve the details of all presets + * + * @example + * await client.presets().retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ async retrieve(): Promise< PresetsRetrieveSchema > { From 88b60a05ff7c2fce5dcec331102bcaf7669c2988 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:41:45 +0300 Subject: [PATCH 17/24] docs(stopwords): add jsdoc for stopword class methods --- src/Typesense/Stopword.ts | 16 ++++++++++++++++ src/Typesense/Stopwords.ts | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/Typesense/Stopword.ts b/src/Typesense/Stopword.ts index ffae91f4..2c6a40c6 100644 --- a/src/Typesense/Stopword.ts +++ b/src/Typesense/Stopword.ts @@ -17,10 +17,26 @@ export default class Stopword { private apiCall: ApiCall, ) {} + /** + * Retrieve the details of a stopwords set, given it's name. + * + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Permanently deletes a stopwords set, given it's name. + * + * @example + * await client.stopwords("en").delete() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/Stopwords.ts b/src/Typesense/Stopwords.ts index 85a186f7..170fcc8c 100644 --- a/src/Typesense/Stopwords.ts +++ b/src/Typesense/Stopwords.ts @@ -15,6 +15,14 @@ export interface StopwordsRetrieveSchema { export default class Stopwords { constructor(private apiCall: ApiCall) {} + /** + * Upserts a stopwords set. + * + * @example + * await client.stopwords().upsert("en", { stopwords: ["a", "the"] }) + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ async upsert( stopwordId: string, params: StopwordCreateSchema, @@ -25,6 +33,14 @@ export default class Stopwords { ); } + /** + * Retrieve the details of all stopwords sets + * + * @example + * await client.stopwords().retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } From 3f64bbdc01435f6c773315fcfe4f4140fe1b003e Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:42:57 +0300 Subject: [PATCH 18/24] docs(conversations): add jsdoc for conversation class methods --- src/Typesense/Conversation.ts | 24 ++++++++++++++++++++++++ src/Typesense/ConversationModel.ts | 24 ++++++++++++++++++++++++ src/Typesense/ConversationModels.ts | 16 ++++++++++++++++ src/Typesense/Conversations.ts | 26 ++++++++++++++++++++++++++ 4 files changed, 90 insertions(+) diff --git a/src/Typesense/Conversation.ts b/src/Typesense/Conversation.ts index fd18dd78..9d09f9ce 100644 --- a/src/Typesense/Conversation.ts +++ b/src/Typesense/Conversation.ts @@ -22,10 +22,26 @@ export default class Conversation { private apiCall: ApiCall, ) {} + /** + * Retrieve a conversation by ID. + * + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Update a conversation's TTL. + * + * @example + * await client.conversations("conv-1").update({ ttl: 3600 }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async update( params: ConversationUpdateSchema, ): Promise { @@ -35,6 +51,14 @@ export default class Conversation { ); } + /** + * Delete a conversation by ID. + * + * @example + * await client.conversations("conv-1").delete() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/ConversationModel.ts b/src/Typesense/ConversationModel.ts index b83da90b..f9947965 100644 --- a/src/Typesense/ConversationModel.ts +++ b/src/Typesense/ConversationModel.ts @@ -30,6 +30,14 @@ export default class ConversationModel { private apiCall: ApiCall, ) {} + /** + * Update a conversation model + * + * @example + * await client.conversations().models("model-1").update({ model_name: "openai/gpt-4", max_bytes: 16384 }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async update( params: ConversationModelCreateSchema, ): Promise { @@ -39,10 +47,26 @@ export default class ConversationModel { ); } + /** + * Retrieve a conversation model + * + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete a conversation model + * + * @example + * await client.conversations().models("model-1").delete() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async delete(): Promise { return this.apiCall.delete( this.endpointPath(), diff --git a/src/Typesense/ConversationModels.ts b/src/Typesense/ConversationModels.ts index d7c67cc8..01951ace 100644 --- a/src/Typesense/ConversationModels.ts +++ b/src/Typesense/ConversationModels.ts @@ -11,6 +11,14 @@ export default class ConversationModels { this.apiCall = apiCall; } + /** + * Create a Conversation Model + * + * @example + * await client.conversations().models().create({ model_name: "openai/gpt-4", api_key: "..." }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async create( params: ConversationModelCreateSchema, ): Promise { @@ -20,6 +28,14 @@ export default class ConversationModels { ); } + /** + * Retrieve all conversation models + * + * @example + * await client.conversations().models().retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async retrieve(): Promise { return this.apiCall.get( this.endpointPath(), diff --git a/src/Typesense/Conversations.ts b/src/Typesense/Conversations.ts index 8cfaba67..2e33a156 100644 --- a/src/Typesense/Conversations.ts +++ b/src/Typesense/Conversations.ts @@ -21,11 +21,37 @@ export default class Conversations { this._conversationsModels = new ConversationModels(this.apiCall); } + /** + * Retrieve all conversations. + * + * @example + * await client.conversations().retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ async retrieve(): Promise { return this.apiCall.get(RESOURCEPATH); } + /** + * Access the conversation models resource. Call without arguments to list or create models, or pass an ID to access a single model. + * + * @example + * await client.conversations().models().create({ model_name: "openai/gpt-4", api_key: "..." }) + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ models(): ConversationModels; + /** + * Access an individual conversation model by ID. + * + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ models(id: string): ConversationModel; models(id?: string): ConversationModels | ConversationModel { if (id === undefined) { From 2967ea41111e50b026e6b7ab692544ea90ab4de1 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:43:32 +0300 Subject: [PATCH 19/24] docs(nl-search-models): add jsdoc for nl search model class methods --- src/Typesense/NLSearchModel.ts | 24 ++++++++++++++++++++++++ src/Typesense/NLSearchModels.ts | 16 ++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/Typesense/NLSearchModel.ts b/src/Typesense/NLSearchModel.ts index 9923fe4c..d35e5014 100644 --- a/src/Typesense/NLSearchModel.ts +++ b/src/Typesense/NLSearchModel.ts @@ -14,16 +14,40 @@ export default class NLSearchModel { private apiCall: ApiCall, ) {} + /** + * Retrieve a specific NL search model by its ID. + * + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Update an existing NL search model. + * + * @example + * await client.nlSearchModels("model-1").update({ model_name: "openai/gpt-4" }) + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ async update( schema: NLSearchModelUpdateSchema, ): Promise { return this.apiCall.put(this.endpointPath(), schema); } + /** + * Delete a specific NL search model by its ID. + * + * @example + * await client.nlSearchModels("model-1").delete() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/NLSearchModels.ts b/src/Typesense/NLSearchModels.ts index 91c7d855..f3b6987e 100644 --- a/src/Typesense/NLSearchModels.ts +++ b/src/Typesense/NLSearchModels.ts @@ -40,12 +40,28 @@ export type NLSearchModelsRetrieveSchema = NLSearchModelSchema[]; export default class NLSearchModels { constructor(private apiCall: ApiCall) {} + /** + * Create a new NL search model. + * + * @example + * await client.nlSearchModels().create({ model_name: "openai/gpt-4", api_key: "..." }) + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ async create( schema: NLSearchModelCreateSchema, ): Promise { return this.apiCall.post(this.endpointPath(), schema); } + /** + * Retrieve all NL search models. + * + * @example + * await client.nlSearchModels().retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } From 0005585b0f1c4bce1b7e52e29986197418326f9c Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:44:32 +0300 Subject: [PATCH 20/24] docs(synonym-sets): add jsdoc for synonym set class methods --- src/Typesense/SynonymSet.ts | 42 ++++++++++++++++++++++++++++++++ src/Typesense/SynonymSetItem.ts | 16 ++++++++++++ src/Typesense/SynonymSetItems.ts | 16 ++++++++++++ src/Typesense/SynonymSets.ts | 8 ++++++ 4 files changed, 82 insertions(+) diff --git a/src/Typesense/SynonymSet.ts b/src/Typesense/SynonymSet.ts index 2d8467fc..b69d6235 100644 --- a/src/Typesense/SynonymSet.ts +++ b/src/Typesense/SynonymSet.ts @@ -20,21 +20,63 @@ export default class SynonymSet { this._items = new SynonymSetItems(this.synonymSetName, apiCall); } + /** + * Create or update a synonym set with the given name + * + * @example + * await client.synonymSets("my-set").upsert({ items: [{ id: "syn-1", synonyms: ["nyc", "new york"] }] }) + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ async upsert( params: SynonymSetCreateSchema, ): Promise { return this.apiCall.put(this.endpointPath(), params); } + /** + * Retrieve a specific synonym set by its name + * + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete a specific synonym set by its name + * + * @example + * await client.synonymSets("my-set").delete() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } + /** + * Access the items in this synonym set. Call without arguments to list or upsert items, or pass an item ID to access a single item. + * + * @example + * await client.synonymSets("my-set").items().retrieve() + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ items(): SynonymSetItems; + /** + * Access an individual synonym item by ID within this synonym set. + * + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ items(itemId: string): SynonymSetItem; items(itemId?: string): SynonymSetItems | SynonymSetItem { if (itemId === undefined) { diff --git a/src/Typesense/SynonymSetItem.ts b/src/Typesense/SynonymSetItem.ts index 6af22446..c40e4e39 100644 --- a/src/Typesense/SynonymSetItem.ts +++ b/src/Typesense/SynonymSetItem.ts @@ -12,10 +12,26 @@ export default class SynonymSetItem { private apiCall: ApiCall, ) {} + /** + * Retrieve a specific synonym item by its id + * + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete a specific synonym item by its id + * + * @example + * await client.synonymSets("my-set").items("syn-1").delete() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/SynonymSetItems.ts b/src/Typesense/SynonymSetItems.ts index 5275975b..bcbfd36e 100644 --- a/src/Typesense/SynonymSetItems.ts +++ b/src/Typesense/SynonymSetItems.ts @@ -7,6 +7,14 @@ export default class SynonymSetItems { private apiCall: ApiCall, ) {} + /** + * Create or update a synonym set item with the given id + * + * @example + * await client.synonymSets("my-set").items().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ async upsert( itemId: string, params: Omit, @@ -17,6 +25,14 @@ export default class SynonymSetItems { ); } + /** + * Retrieve all synonym items in a set + * + * @example + * await client.synonymSets("my-set").items().retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } diff --git a/src/Typesense/SynonymSets.ts b/src/Typesense/SynonymSets.ts index 545d3c88..b9d8c2b9 100644 --- a/src/Typesense/SynonymSets.ts +++ b/src/Typesense/SynonymSets.ts @@ -24,6 +24,14 @@ export default class SynonymSets { constructor(private apiCall: ApiCall) {} static readonly RESOURCEPATH = "/synonym_sets"; + /** + * Retrieve all synonym sets + * + * @example + * await client.synonymSets().retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ async retrieve(): Promise { return this.apiCall.get(SynonymSets.RESOURCEPATH); } From 4b98ccc3d970b0fa35de72033f07f85983dec616 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:45:31 +0300 Subject: [PATCH 21/24] docs(curation-sets): add jsdoc for curation set class methods --- src/Typesense/CurationSet.ts | 42 +++++++++++++++++++++++++++++++ src/Typesense/CurationSetItem.ts | 24 ++++++++++++++++++ src/Typesense/CurationSetItems.ts | 8 ++++++ src/Typesense/CurationSets.ts | 8 ++++++ 4 files changed, 82 insertions(+) diff --git a/src/Typesense/CurationSet.ts b/src/Typesense/CurationSet.ts index a370cbe3..478569ec 100644 --- a/src/Typesense/CurationSet.ts +++ b/src/Typesense/CurationSet.ts @@ -19,21 +19,63 @@ export default class CurationSet { this._items = new CurationSetItems(this.name, apiCall); } + /** + * Create or update a curation set with the given name + * + * @example + * await client.curationSets("my-set").upsert({ items: [{ id: "promote-hat", rule: { query: "hat", match: "exact" } }] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async upsert(params: CurationSetUpsertSchema): Promise { return this.apiCall.put(this.endpointPath(), params); } + /** + * Retrieve a specific curation set by its name + * + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete a specific curation set by its name + * + * @example + * await client.curationSets("my-set").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async delete(): Promise { return this.apiCall.delete( this.endpointPath(), ); } + /** + * Access the items in this curation set. Call without arguments to list items, or pass an item ID to access a single item. + * + * @example + * await client.curationSets("my-set").items().retrieve() + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ items(): CurationSetItems; + /** + * Access an individual curation item by ID within this curation set. + * + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ items(itemId: string): CurationSetItem; items(itemId?: string): CurationSetItems | CurationSetItem { if (itemId === undefined) { diff --git a/src/Typesense/CurationSetItem.ts b/src/Typesense/CurationSetItem.ts index 05a3c9b0..765206a1 100644 --- a/src/Typesense/CurationSetItem.ts +++ b/src/Typesense/CurationSetItem.ts @@ -15,16 +15,40 @@ export default class CurationSetItem { private apiCall: ApiCall, ) {} + /** + * Retrieve a specific curation item by its id + * + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Create or update a curation set item with the given id + * + * @example + * await client.curationSets("my-set").items("promote-hat").upsert({ rule: { query: "hat", match: "exact" }, includes: [] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async upsert( params: CurationItemUpsertSchema, ): Promise { return this.apiCall.put(this.endpointPath(), params); } + /** + * Delete a specific curation item by its id + * + * @example + * await client.curationSets("my-set").items("promote-hat").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async delete(): Promise { return this.apiCall.delete( this.endpointPath(), diff --git a/src/Typesense/CurationSetItems.ts b/src/Typesense/CurationSetItems.ts index e910d254..87ecde3b 100644 --- a/src/Typesense/CurationSetItems.ts +++ b/src/Typesense/CurationSetItems.ts @@ -4,6 +4,14 @@ import CurationSets, { CurationObjectSchema } from "./CurationSets"; export default class CurationSetItems { constructor(private name: string, private apiCall: ApiCall) {} + /** + * Retrieve all curation items in a set + * + * @example + * await client.curationSets("my-set").items().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } diff --git a/src/Typesense/CurationSets.ts b/src/Typesense/CurationSets.ts index 46b6a928..5acd653b 100644 --- a/src/Typesense/CurationSets.ts +++ b/src/Typesense/CurationSets.ts @@ -62,6 +62,14 @@ export default class CurationSets { constructor(private apiCall: ApiCall) {} static readonly RESOURCEPATH = "/curation_sets"; + /** + * Retrieve all curation sets + * + * @example + * await client.curationSets().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async retrieve(): Promise { return this.apiCall.get( CurationSets.RESOURCEPATH, From dce016882cb457e9a09dbd3c93bfd23f07297942 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:46:28 +0300 Subject: [PATCH 22/24] docs(overrides-synonyms): add jsdoc for legacy collection-scoped override and synonym methods --- src/Typesense/Override.ts | 16 ++++++++++++++++ src/Typesense/Overrides.ts | 16 ++++++++++++++++ src/Typesense/Synonym.ts | 16 ++++++++++++++++ src/Typesense/Synonyms.ts | 16 ++++++++++++++++ 4 files changed, 64 insertions(+) diff --git a/src/Typesense/Override.ts b/src/Typesense/Override.ts index a17a945d..e19bccbd 100644 --- a/src/Typesense/Override.ts +++ b/src/Typesense/Override.ts @@ -17,10 +17,26 @@ export default class Override { private apiCall: ApiCall ) {} + /** + * Retrieve an override (curation rule) by ID on this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete an override (curation rule) by ID on this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/Overrides.ts b/src/Typesense/Overrides.ts index 75cd397b..192eb998 100644 --- a/src/Typesense/Overrides.ts +++ b/src/Typesense/Overrides.ts @@ -47,6 +47,14 @@ export default class Overrides { private apiCall: ApiCall, ) {} + /** + * Create or update an override (curation rule) on this collection. + * + * @example + * await client.collections("products").overrides().upsert("promote-hat", { rule: { query: "hat", match: "exact" }, includes: [] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async upsert( overrideId: string, params: OverrideCreateSchema, @@ -57,6 +65,14 @@ export default class Overrides { ); } + /** + * Retrieve all overrides (curation rules) on this collection. + * + * @example + * await client.collections("products").overrides().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } diff --git a/src/Typesense/Synonym.ts b/src/Typesense/Synonym.ts index b06e0f69..97412856 100644 --- a/src/Typesense/Synonym.ts +++ b/src/Typesense/Synonym.ts @@ -21,10 +21,26 @@ export default class Synonym { private apiCall: ApiCall ) {} + /** + * Retrieve a synonym (legacy v1) by ID on this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } + /** + * Delete a synonym (legacy v1) by ID on this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").delete() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ async delete(): Promise { return this.apiCall.delete(this.endpointPath()); } diff --git a/src/Typesense/Synonyms.ts b/src/Typesense/Synonyms.ts index 2cee7efa..c41673b3 100644 --- a/src/Typesense/Synonyms.ts +++ b/src/Typesense/Synonyms.ts @@ -22,6 +22,14 @@ export default class Synonyms { private static hasWarnedDeprecation = false; constructor(private collectionName: string, private apiCall: ApiCall) {} + /** + * Create or update a synonym (legacy v1) on this collection. + * + * @example + * await client.collections("products").synonyms().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ async upsert( synonymId: string, params: SynonymCreateSchema @@ -32,6 +40,14 @@ export default class Synonyms { ); } + /** + * Retrieve all synonyms (legacy v1) on this collection. + * + * @example + * await client.collections("products").synonyms().retrieve() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ async retrieve(): Promise { return this.apiCall.get(this.endpointPath()); } From 457565bcbde9aaf88de691bfb0ea9f27b13bced6 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 12:46:55 +0300 Subject: [PATCH 23/24] docs(search-client): add jsdoc for search-only client methods --- src/Typesense/SearchClient.ts | 21 +++++++++++++++++++++ src/Typesense/SearchOnlyCollection.ts | 8 ++++++++ 2 files changed, 29 insertions(+) diff --git a/src/Typesense/SearchClient.ts b/src/Typesense/SearchClient.ts index 8b288e62..c5d47934 100644 --- a/src/Typesense/SearchClient.ts +++ b/src/Typesense/SearchClient.ts @@ -4,7 +4,20 @@ import MultiSearch from "./MultiSearch"; import { DocumentSchema } from "./Documents"; import { SearchOnlyCollection } from "./SearchOnlyCollection"; +/** + * Search-only Typesense client. Restricted to search operations and intended for use with search-only API keys in browser environments. + * + * @see https://typesense.org/docs/latest/api/ + */ export default class SearchClient { + /** + * Send multiple search requests in a single HTTP request. + * + * @example + * await searchClient.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ public readonly multiSearch: MultiSearch; private readonly configuration: Configuration; private readonly apiCall: ApiCall; @@ -40,6 +53,14 @@ export default class SearchClient { }); } + /** + * Access a search-only collection by name. + * + * @example + * await searchClient.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ collections( collectionName: string, ): SearchOnlyCollection { diff --git a/src/Typesense/SearchOnlyCollection.ts b/src/Typesense/SearchOnlyCollection.ts index 97d74ab6..84f1f2fc 100644 --- a/src/Typesense/SearchOnlyCollection.ts +++ b/src/Typesense/SearchOnlyCollection.ts @@ -18,6 +18,14 @@ export class SearchOnlyCollection { ); } + /** + * Access the search-only documents resource for this collection. + * + * @example + * await searchClient.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ documents(): SearchableDocuments { return this._documents; } From 7a00a0ee4880dcf341064b7a281f3b30263f1854 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Tue, 19 May 2026 13:27:27 +0300 Subject: [PATCH 24/24] chore: build --- dist/typesense.js | 3796 +++++++++++++++------ dist/typesense.js.map | 2 +- dist/typesense.min.js | 2 +- dist/typesense.min.js.map | 2 +- lib/Typesense/Alias.d.ts | 16 + lib/Typesense/Alias.js | 16 + lib/Typesense/Alias.js.map | 2 +- lib/Typesense/Aliases.d.ts | 16 + lib/Typesense/Aliases.js | 16 + lib/Typesense/Aliases.js.map | 2 +- lib/Typesense/Analytics.d.ts | 26 + lib/Typesense/Analytics.js | 8 + lib/Typesense/Analytics.js.map | 2 +- lib/Typesense/AnalyticsEvents.d.ts | 16 + lib/Typesense/AnalyticsEvents.js | 16 + lib/Typesense/AnalyticsEvents.js.map | 2 +- lib/Typesense/AnalyticsRule.d.ts | 16 + lib/Typesense/AnalyticsRule.js | 16 + lib/Typesense/AnalyticsRule.js.map | 2 +- lib/Typesense/AnalyticsRuleV1.d.ts | 16 + lib/Typesense/AnalyticsRuleV1.js | 16 + lib/Typesense/AnalyticsRuleV1.js.map | 2 +- lib/Typesense/AnalyticsRules.d.ts | 24 + lib/Typesense/AnalyticsRules.js | 24 + lib/Typesense/AnalyticsRules.js.map | 2 +- lib/Typesense/AnalyticsRulesV1.d.ts | 16 + lib/Typesense/AnalyticsRulesV1.js | 16 + lib/Typesense/AnalyticsRulesV1.js.map | 2 +- lib/Typesense/AnalyticsV1.d.ts | 26 + lib/Typesense/AnalyticsV1.js | 8 + lib/Typesense/AnalyticsV1.js.map | 2 +- lib/Typesense/Client.d.ts | 239 ++ lib/Typesense/Client.js | 5 + lib/Typesense/Client.js.map | 2 +- lib/Typesense/Collection.d.ts | 86 + lib/Typesense/Collection.js | 32 + lib/Typesense/Collection.js.map | 2 +- lib/Typesense/Collections.d.ts | 16 + lib/Typesense/Collections.js | 16 + lib/Typesense/Collections.js.map | 2 +- lib/Typesense/Conversation.d.ts | 24 + lib/Typesense/Conversation.js | 24 + lib/Typesense/Conversation.js.map | 2 +- lib/Typesense/ConversationModel.d.ts | 24 + lib/Typesense/ConversationModel.js | 24 + lib/Typesense/ConversationModel.js.map | 2 +- lib/Typesense/ConversationModels.d.ts | 16 + lib/Typesense/ConversationModels.js | 16 + lib/Typesense/ConversationModels.js.map | 2 +- lib/Typesense/Conversations.d.ts | 26 + lib/Typesense/Conversations.js | 8 + lib/Typesense/Conversations.js.map | 2 +- lib/Typesense/CurationSet.d.ts | 42 + lib/Typesense/CurationSet.js | 24 + lib/Typesense/CurationSet.js.map | 2 +- lib/Typesense/CurationSetItem.d.ts | 24 + lib/Typesense/CurationSetItem.js | 24 + lib/Typesense/CurationSetItem.js.map | 2 +- lib/Typesense/CurationSetItems.d.ts | 8 + lib/Typesense/CurationSetItems.js | 8 + lib/Typesense/CurationSetItems.js.map | 2 +- lib/Typesense/CurationSets.d.ts | 8 + lib/Typesense/CurationSets.js | 8 + lib/Typesense/CurationSets.js.map | 2 +- lib/Typesense/Debug.d.ts | 8 + lib/Typesense/Debug.js | 8 + lib/Typesense/Debug.js.map | 2 +- lib/Typesense/Document.d.ts | 24 + lib/Typesense/Document.js | 24 + lib/Typesense/Document.js.map | 2 +- lib/Typesense/Documents.d.ts | 104 +- lib/Typesense/Documents.js | 48 +- lib/Typesense/Documents.js.map | 2 +- lib/Typesense/Health.d.ts | 8 + lib/Typesense/Health.js | 8 + lib/Typesense/Health.js.map | 2 +- lib/Typesense/Key.d.ts | 16 + lib/Typesense/Key.js | 16 + lib/Typesense/Key.js.map | 2 +- lib/Typesense/Keys.d.ts | 24 + lib/Typesense/Keys.js | 24 + lib/Typesense/Keys.js.map | 2 +- lib/Typesense/Metrics.d.ts | 8 + lib/Typesense/Metrics.js | 8 + lib/Typesense/Metrics.js.map | 2 +- lib/Typesense/MultiSearch.d.ts | 18 + lib/Typesense/MultiSearch.js.map | 2 +- lib/Typesense/NLSearchModel.d.ts | 24 + lib/Typesense/NLSearchModel.js | 24 + lib/Typesense/NLSearchModel.js.map | 2 +- lib/Typesense/NLSearchModels.d.ts | 16 + lib/Typesense/NLSearchModels.js | 16 + lib/Typesense/NLSearchModels.js.map | 2 +- lib/Typesense/Operations.d.ts | 16 + lib/Typesense/Operations.js | 16 + lib/Typesense/Operations.js.map | 2 +- lib/Typesense/Override.d.ts | 16 + lib/Typesense/Override.js | 16 + lib/Typesense/Override.js.map | 2 +- lib/Typesense/Overrides.d.ts | 16 + lib/Typesense/Overrides.js | 16 + lib/Typesense/Overrides.js.map | 2 +- lib/Typesense/Preset.d.ts | 16 + lib/Typesense/Preset.js | 16 + lib/Typesense/Preset.js.map | 2 +- lib/Typesense/Presets.d.ts | 16 + lib/Typesense/Presets.js | 16 + lib/Typesense/Presets.js.map | 2 +- lib/Typesense/SearchClient.d.ts | 21 + lib/Typesense/SearchClient.js | 13 + lib/Typesense/SearchClient.js.map | 2 +- lib/Typesense/SearchOnlyCollection.d.ts | 8 + lib/Typesense/SearchOnlyCollection.js | 8 + lib/Typesense/SearchOnlyCollection.js.map | 2 +- lib/Typesense/SearchOnlyDocuments.d.ts | 8 + lib/Typesense/SearchOnlyDocuments.js | 8 + lib/Typesense/SearchOnlyDocuments.js.map | 2 +- lib/Typesense/Stats.d.ts | 8 + lib/Typesense/Stats.js | 8 + lib/Typesense/Stats.js.map | 2 +- lib/Typesense/Stemming.d.ts | 18 + lib/Typesense/Stemming.js.map | 2 +- lib/Typesense/StemmingDictionaries.d.ts | 16 + lib/Typesense/StemmingDictionaries.js | 16 + lib/Typesense/StemmingDictionaries.js.map | 2 +- lib/Typesense/StemmingDictionary.d.ts | 16 + lib/Typesense/StemmingDictionary.js | 16 + lib/Typesense/StemmingDictionary.js.map | 2 +- lib/Typesense/Stopword.d.ts | 16 + lib/Typesense/Stopword.js | 16 + lib/Typesense/Stopword.js.map | 2 +- lib/Typesense/Stopwords.d.ts | 16 + lib/Typesense/Stopwords.js | 16 + lib/Typesense/Stopwords.js.map | 2 +- lib/Typesense/Synonym.d.ts | 16 + lib/Typesense/Synonym.js | 16 + lib/Typesense/Synonym.js.map | 2 +- lib/Typesense/SynonymSet.d.ts | 42 + lib/Typesense/SynonymSet.js | 24 + lib/Typesense/SynonymSet.js.map | 2 +- lib/Typesense/SynonymSetItem.d.ts | 16 + lib/Typesense/SynonymSetItem.js | 16 + lib/Typesense/SynonymSetItem.js.map | 2 +- lib/Typesense/SynonymSetItems.d.ts | 16 + lib/Typesense/SynonymSetItems.js | 16 + lib/Typesense/SynonymSetItems.js.map | 2 +- lib/Typesense/SynonymSets.d.ts | 8 + lib/Typesense/SynonymSets.js | 8 + lib/Typesense/SynonymSets.js.map | 2 +- lib/Typesense/Synonyms.d.ts | 16 + lib/Typesense/Synonyms.js | 16 + lib/Typesense/Synonyms.js.map | 2 +- 152 files changed, 4798 insertions(+), 1138 deletions(-) diff --git a/dist/typesense.js b/dist/typesense.js index f341cde9..a2d481ae 100644 --- a/dist/typesense.js +++ b/dist/typesense.js @@ -13,10 +13,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Alias) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Aliases__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Aliases */ "./src/Typesense/Aliases.ts"); @@ -30,9 +30,18 @@ var Alias = /*#__PURE__*/function () { this.name = name; this.apiCall = apiCall; } + + /** + * Find out which collection an alias points to by fetching it + * + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#retrieve-an-alias + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Alias, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -49,9 +58,18 @@ var Alias = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete an alias + * + * @example + * await client.aliases("my-alias").delete() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#delete-an-alias + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -67,7 +85,7 @@ var Alias = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -90,10 +108,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Aliases) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -105,9 +123,18 @@ var Aliases = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Aliases); this.apiCall = apiCall; } + + /** + * Create or update a collection alias. + * + * @example + * await client.aliases().upsert("my-alias", { collection_name: "products" }) + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#create-or-update-an-alias + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Aliases, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(name, mapping) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -124,9 +151,18 @@ var Aliases = /*#__PURE__*/function () { } return upsert; }() + /** + * List all aliases and the corresponding collections that they map to. + * + * @example + * await client.aliases().retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#list-all-aliases + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -142,7 +178,7 @@ var Aliases = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(aliasName) { @@ -170,9 +206,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Analytics) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); /* harmony import */ var _AnalyticsRules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AnalyticsRules */ "./src/Typesense/AnalyticsRules.ts"); /* harmony import */ var _AnalyticsRule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AnalyticsRule */ "./src/Typesense/AnalyticsRule.ts"); /* harmony import */ var _AnalyticsEvents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AnalyticsEvents */ "./src/Typesense/AnalyticsEvents.ts"); @@ -192,6 +228,17 @@ var Analytics = /*#__PURE__*/function () { this._analyticsRules = new _AnalyticsRules__WEBPACK_IMPORTED_MODULE_3__["default"](this.apiCall); this._analyticsEvents = new _AnalyticsEvents__WEBPACK_IMPORTED_MODULE_5__["default"](this.apiCall); } + + /** + * Access the analytics rules resource. Call without arguments to list or create rules, or pass an ID to access a single rule. + * + * @example + * await client.analytics.rules().retrieve() + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(Analytics, [{ key: "rules", value: function rules(id) { @@ -204,6 +251,15 @@ var Analytics = /*#__PURE__*/function () { return this.individualAnalyticsRules[id]; } } + + /** + * Access the analytics events resource to send analytics events. + * + * @example + * await client.analytics.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ }, { key: "events", value: function events() { @@ -231,10 +287,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsEvents) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -247,9 +303,18 @@ var AnalyticsEvents = /*#__PURE__*/function () { this.apiCall = apiCall; this.apiCall = apiCall; } + + /** + * Submit a single analytics event. The event must correspond to an existing analytics rule by name. + * + * @example + * await client.analytics.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsEvents, [{ key: "create", - value: function () { + value: (function () { var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -266,9 +331,18 @@ var AnalyticsEvents = /*#__PURE__*/function () { } return create; }() + /** + * Retrieve the most recent events for a user and rule. + * + * @example + * await client.analytics.events().retrieve({ user_id: "u1", name: "products_click", n: 10 }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -284,7 +358,7 @@ var AnalyticsEvents = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -312,10 +386,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsRule) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _AnalyticsRules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AnalyticsRules */ "./src/Typesense/AnalyticsRules.ts"); @@ -329,9 +403,18 @@ var AnalyticsRule = /*#__PURE__*/function () { this.name = name; this.apiCall = apiCall; } + + /** + * Retrieve the details of an analytics rule, given it's name + * + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsRule, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -348,9 +431,18 @@ var AnalyticsRule = /*#__PURE__*/function () { } return retrieve; }() + /** + * Permanently deletes an analytics rule, given it's name + * + * @example + * await client.analytics.rules("rule-1").delete() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -366,7 +458,7 @@ var AnalyticsRule = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -389,10 +481,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsRuleV1) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _AnalyticsRulesV1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AnalyticsRulesV1 */ "./src/Typesense/AnalyticsRulesV1.ts"); @@ -406,9 +498,18 @@ var AnalyticsRuleV1 = /*#__PURE__*/function () { this.name = name; this.apiCall = apiCall; } + + /** + * Retrieve a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsRuleV1, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -425,9 +526,18 @@ var AnalyticsRuleV1 = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules("rule-1").delete() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -443,7 +553,7 @@ var AnalyticsRuleV1 = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -466,10 +576,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsRules) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -482,9 +592,18 @@ var AnalyticsRules = /*#__PURE__*/function () { this.apiCall = apiCall; this.apiCall = apiCall; } + + /** + * Create one or more analytics rules. You can send a single rule object or an array of rule objects. + * + * @example + * await client.analytics.rules().create({ name: "products_query_hits", type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsRules, [{ key: "create", - value: function () { + value: (function () { var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -501,9 +620,18 @@ var AnalyticsRules = /*#__PURE__*/function () { } return create; }() + /** + * Upserts an analytics rule with the given name. + * + * @example + * await client.analytics.rules().upsert("products_query_hits", { type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ + ) }, { key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(name, params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -520,9 +648,18 @@ var AnalyticsRules = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve all analytics rules. Use the optional rule_tag filter to narrow down results. + * + * @example + * await client.analytics.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3(ruleTag) { var query; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context3) { @@ -543,7 +680,7 @@ var AnalyticsRules = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -571,10 +708,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsRulesV1) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -587,9 +724,18 @@ var AnalyticsRulesV1 = /*#__PURE__*/function () { this.apiCall = apiCall; this.apiCall = apiCall; } + + /** + * Upsert a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules().upsert("products_query_hits", { type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsRulesV1, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(name, params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -606,9 +752,18 @@ var AnalyticsRulesV1 = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve all legacy v1 analytics rules. + * + * @example + * await client.analyticsV1.rules().retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -624,7 +779,7 @@ var AnalyticsRulesV1 = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -652,9 +807,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsV1) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); /* harmony import */ var _AnalyticsRulesV1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AnalyticsRulesV1 */ "./src/Typesense/AnalyticsRulesV1.ts"); /* harmony import */ var _AnalyticsRuleV1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AnalyticsRuleV1 */ "./src/Typesense/AnalyticsRuleV1.ts"); /* harmony import */ var _AnalyticsEvents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AnalyticsEvents */ "./src/Typesense/AnalyticsEvents.ts"); @@ -678,6 +833,17 @@ var AnalyticsV1 = /*#__PURE__*/function () { this._analyticsRules = new _AnalyticsRulesV1__WEBPACK_IMPORTED_MODULE_3__["default"](this.apiCall); this._analyticsEvents = new _AnalyticsEvents__WEBPACK_IMPORTED_MODULE_5__["default"](this.apiCall); } + + /** + * Access the legacy v1 analytics rules resource. Call without arguments to list or upsert rules, or pass an ID to access a single rule. + * + * @example + * await client.analyticsV1.rules().retrieve() + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(AnalyticsV1, [{ key: "rules", value: function rules(id) { @@ -695,6 +861,15 @@ var AnalyticsV1 = /*#__PURE__*/function () { return this.individualAnalyticsRules[id]; } } + + /** + * Access the legacy v1 analytics events resource to send analytics events. + * + * @example + * await client.analyticsV1.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ }, { key: "events", value: function events() { @@ -723,15 +898,15 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ApiCall) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_readOnlyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "./node_modules/@babel/runtime/helpers/esm/readOnlyError.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_readOnlyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/readOnlyError */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/readOnlyError.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js"); +/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! axios */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/axios.js"); /* harmony import */ var http__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! http */ "?e89d"); /* harmony import */ var http__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(http__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var https__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! https */ "?77e4"); @@ -1001,7 +1176,7 @@ var ApiCall = /*#__PURE__*/function () { }, transformResponse: [function (data, headers) { var transformedData = data; - if (headers !== undefined && typeof data === "string" && headers["content-type"] && headers["content-type"].startsWith("application/json")) { + if (headers !== undefined && typeof data === "string" && typeof headers["content-type"] === "string" && headers["content-type"].startsWith("application/json")) { transformedData = JSON.parse(data); } return transformedData; @@ -1742,8 +1917,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Client) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _Configuration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Configuration */ "./src/Typesense/Configuration.ts"); /* harmony import */ var _ApiCall__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ApiCall */ "./src/Typesense/ApiCall.ts"); /* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); @@ -1806,7 +1981,93 @@ __webpack_require__.r(__webpack_exports__); +/** + * Typesense client for indexing, searching, and managing collections. + * + * @see https://typesense.org/docs/latest/api/ + */ var Client = /*#__PURE__*/function () { + /** + * Retrieve server version and state information. + * + * @example + * await client.debug.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug + */ + + /** + * Get current RAM, CPU, Disk & Network usage metrics. + * + * @example + * await client.metrics.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ + + /** + * Get stats about API endpoints. + * + * @example + * await client.stats.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ + + /** + * Checks if Typesense server is ready to accept requests. + * + * @example + * await client.health.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#health + */ + + /** + * Cluster operations: snapshots, voting, cache, on-disk compaction, slow request log. + * + * @example + * await client.operations.perform("snapshot", { snapshot_path: "/tmp/snap" }) + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ + + /** + * Send multiple search requests in a single HTTP request. + * + * @example + * await client.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ + + /** + * Manage analytics rules and events. + * + * @example + * await client.analytics.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ + + /** + * Legacy v1 analytics API for rules and events. + * + * @example + * await client.analyticsV1.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ + + /** + * Manage stemming dictionaries. + * + * @example + * await client.stemming.dictionaries().retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ + function Client(options) { var _options$sendApiKeyAs; (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, Client); @@ -1841,6 +2102,17 @@ var Client = /*#__PURE__*/function () { this._curationSets = new _CurationSets__WEBPACK_IMPORTED_MODULE_29__["default"](this.apiCall); this.individualCurationSets = {}; } + + /** + * Access the collections resource. Call without arguments to list or create collections, or pass a name to access a single collection. + * + * @example + * await client.collections().create({ name: "products", fields: [{ name: "title", type: "string" }] }) + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(Client, [{ key: "collections", value: function collections(collectionName) { @@ -1853,6 +2125,17 @@ var Client = /*#__PURE__*/function () { return this.individualCollections[collectionName]; } } + + /** + * Access the aliases resource. Call without arguments to list or upsert aliases, or pass a name to access a single alias. + * + * @example + * await client.aliases().upsert("my-alias", { collection_name: "products" }) + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html + */ }, { key: "aliases", value: function aliases(aliasName) { @@ -1865,6 +2148,17 @@ var Client = /*#__PURE__*/function () { return this.individualAliases[aliasName]; } } + + /** + * Access the API keys resource. Call without arguments to list or create keys, or pass an ID to access a single key. + * + * @example + * await client.keys().create({ description: "Search-only key", actions: ["documents:search"], collections: ["*"] }) + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html + */ }, { key: "keys", value: function keys(id) { @@ -1877,6 +2171,17 @@ var Client = /*#__PURE__*/function () { return this.individualKeys[id]; } } + + /** + * Access the presets resource. Call without arguments to list or upsert presets, or pass an ID to access a single preset. + * + * @example + * await client.presets().upsert("listing_view", { value: { q: "*" } }) + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ }, { key: "presets", value: function presets(id) { @@ -1889,6 +2194,17 @@ var Client = /*#__PURE__*/function () { return this.individualPresets[id]; } } + + /** + * Access the stopwords resource. Call without arguments to list or upsert stopword sets, or pass an ID to access a single set. + * + * @example + * await client.stopwords().upsert("en", { stopwords: ["a", "the"] }) + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ }, { key: "stopwords", value: function stopwords(id) { @@ -1901,6 +2217,17 @@ var Client = /*#__PURE__*/function () { return this.individualStopwords[id]; } } + + /** + * Access the conversation models resource. Call without arguments to list models, or pass an ID to access a single model. + * + * @example + * await client.conversations().retrieve() + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ }, { key: "conversations", value: function conversations(id) { @@ -1913,6 +2240,17 @@ var Client = /*#__PURE__*/function () { return this.individualConversations[id]; } } + + /** + * Access the NL search models resource. Call without arguments to list or create models, or pass an ID to access a single model. + * + * @example + * await client.nlSearchModels().create({ model_name: "openai/gpt-4" }) + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ }, { key: "nlSearchModels", value: function nlSearchModels(id) { @@ -1925,6 +2263,17 @@ var Client = /*#__PURE__*/function () { return this.individualNLSearchModels[id]; } } + + /** + * Access the synonym sets resource. Call without arguments to list sets, or pass a name to access a single set. + * + * @example + * await client.synonymSets().retrieve() + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ }, { key: "synonymSets", value: function synonymSets(synonymSetName) { @@ -1937,6 +2286,17 @@ var Client = /*#__PURE__*/function () { return this.individualSynonymSets[synonymSetName]; } } + + /** + * Access the curation sets resource. Call without arguments to list sets, or pass a name to access a single set. + * + * @example + * await client.curationSets().retrieve() + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ }, { key: "curationSets", value: function curationSets(name) { @@ -1966,11 +2326,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Collection) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); /* harmony import */ var _Documents__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Documents */ "./src/Typesense/Documents.ts"); @@ -2009,9 +2369,18 @@ var Collection = /*#__PURE__*/function () { this._overrides = new _Overrides__WEBPACK_IMPORTED_MODULE_8__["default"](this.name, this.apiCall); this._synonyms = new _Synonyms__WEBPACK_IMPORTED_MODULE_10__["default"](this.name, this.apiCall); } + + /** + * Retrieve the details of a collection, given its name. + * + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Collection, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -2028,9 +2397,18 @@ var Collection = /*#__PURE__*/function () { } return retrieve; }() + /** + * Update a collection's schema to modify the fields and their types. + * + * @example + * await client.collections("products").update({ fields: [{ name: "tags", type: "string[]" }] }) + * + * @see https://typesense.org/docs/latest/api/collections.html#update-or-alter-a-collection + */ + ) }, { key: "update", - value: function () { + value: (function () { var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2(schema) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -2047,9 +2425,18 @@ var Collection = /*#__PURE__*/function () { } return update; }() + /** + * Permanently drops a collection. This action cannot be undone. For large collections, this might have an impact on read latencies. + * + * @example + * await client.collections("products").delete() + * + * @see https://typesense.org/docs/latest/api/collections.html#drop-a-collection + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee3() { var options, _args3 = arguments; @@ -2069,9 +2456,18 @@ var Collection = /*#__PURE__*/function () { } return _delete; }() - }, { - key: "exists", - value: function () { + /** + * Check whether the collection exists. + * + * @example + * await client.collections("products").exists() + * + * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection + */ + ) + }, { + key: "exists", + value: (function () { var _exists = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee4() { var _t; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context4) { @@ -2103,6 +2499,17 @@ var Collection = /*#__PURE__*/function () { } return exists; }() + /** + * Access the documents resource for this collection. Call without arguments to list, index, search, import, or export documents, or pass a document ID to access a single document. + * + * @example + * await client.collections("products").documents().create({ id: "1", title: "Hat" }) + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html + */ + ) }, { key: "documents", value: function documents(documentId) { @@ -2115,6 +2522,17 @@ var Collection = /*#__PURE__*/function () { return this.individualDocuments[documentId]; } } + + /** + * Access the legacy overrides (curation) resource for this collection. Call without arguments to list or upsert overrides, or pass an ID to access a single override. + * + * @example + * await client.collections("products").overrides().upsert("promote-hat", { rule: { query: "hat", match: "exact" }, includes: [] }) + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ }, { key: "overrides", value: function overrides(overrideId) { @@ -2127,6 +2545,17 @@ var Collection = /*#__PURE__*/function () { return this.individualOverrides[overrideId]; } } + + /** + * Access the legacy synonyms resource for this collection. Call without arguments to list or upsert synonyms, or pass an ID to access a single synonym. + * + * @example + * await client.collections("products").synonyms().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ }, { key: "synonyms", value: function synonyms(synonymId) { @@ -2161,10 +2590,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Collections) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -2183,9 +2612,18 @@ var Collections = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Collections); this.apiCall = apiCall; } + + /** + * When a collection is created, we give it a name and describe the fields that will be indexed from the documents added to the collection. + * + * @example + * await client.collections().create({ name: "products", fields: [{ name: "title", type: "string" }] }) + * + * @see https://typesense.org/docs/latest/api/collections.html#create-a-collection + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Collections, [{ key: "create", - value: function () { + value: (function () { var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(schema, options) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -2202,9 +2640,18 @@ var Collections = /*#__PURE__*/function () { } return create; }() + /** + * Returns a summary of all your collections. The collections are returned sorted by creation date, with the most recent collections appearing first. + * + * @example + * await client.collections().retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html#list-all-collections + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { var options, _args2 = arguments; @@ -2223,7 +2670,7 @@ var Collections = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }], [{ key: "RESOURCEPATH", get: function get() { @@ -2246,10 +2693,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Configuration) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var loglevel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! loglevel */ "./node_modules/loglevel/lib/loglevel.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var loglevel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! loglevel */ "./node_modules/.pnpm/loglevel@1.9.2/node_modules/loglevel/lib/loglevel.js"); /* harmony import */ var loglevel__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(loglevel__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Errors */ "./src/Typesense/Errors/index.ts"); @@ -2402,10 +2849,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Conversation) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Conversations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Conversations */ "./src/Typesense/Conversations.ts"); @@ -2419,9 +2866,18 @@ var Conversation = /*#__PURE__*/function () { this.id = id; this.apiCall = apiCall; } + + /** + * Retrieve a conversation by ID. + * + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Conversation, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -2438,9 +2894,18 @@ var Conversation = /*#__PURE__*/function () { } return retrieve; }() + /** + * Update a conversation's TTL. + * + * @example + * await client.conversations("conv-1").update({ ttl: 3600 }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ + ) }, { key: "update", - value: function () { + value: (function () { var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -2457,9 +2922,18 @@ var Conversation = /*#__PURE__*/function () { } return update; }() + /** + * Delete a conversation by ID. + * + * @example + * await client.conversations("conv-1").delete() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -2475,7 +2949,7 @@ var Conversation = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -2498,10 +2972,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ConversationModel) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _ConversationModels__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ConversationModels */ "./src/Typesense/ConversationModels.ts"); @@ -2515,9 +2989,18 @@ var ConversationModel = /*#__PURE__*/function () { this.id = id; this.apiCall = apiCall; } + + /** + * Update a conversation model + * + * @example + * await client.conversations().models("model-1").update({ model_name: "openai/gpt-4", max_bytes: 16384 }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(ConversationModel, [{ key: "update", - value: function () { + value: (function () { var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -2534,9 +3017,18 @@ var ConversationModel = /*#__PURE__*/function () { } return update; }() + /** + * Retrieve a conversation model + * + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -2553,9 +3045,18 @@ var ConversationModel = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete a conversation model + * + * @example + * await client.conversations().models("model-1").delete() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -2571,7 +3072,7 @@ var ConversationModel = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -2594,10 +3095,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ConversationModels) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -2610,9 +3111,18 @@ var ConversationModels = /*#__PURE__*/function () { this.apiCall = apiCall; this.apiCall = apiCall; } + + /** + * Create a Conversation Model + * + * @example + * await client.conversations().models().create({ model_name: "openai/gpt-4", api_key: "..." }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(ConversationModels, [{ key: "create", - value: function () { + value: (function () { var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -2629,9 +3139,18 @@ var ConversationModels = /*#__PURE__*/function () { } return create; }() + /** + * Retrieve all conversation models + * + * @example + * await client.conversations().models().retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -2647,7 +3166,7 @@ var ConversationModels = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -2675,11 +3194,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Conversations) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _ConversationModels__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ConversationModels */ "./src/Typesense/ConversationModels.ts"); /* harmony import */ var _ConversationModel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ConversationModel */ "./src/Typesense/ConversationModel.ts"); @@ -2699,9 +3218,18 @@ var Conversations = /*#__PURE__*/function () { this.apiCall = apiCall; this._conversationsModels = new _ConversationModels__WEBPACK_IMPORTED_MODULE_5__["default"](this.apiCall); } + + /** + * Retrieve all conversations. + * + * @example + * await client.conversations().retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Conversations, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -2718,6 +3246,17 @@ var Conversations = /*#__PURE__*/function () { } return retrieve; }() + /** + * Access the conversation models resource. Call without arguments to list or create models, or pass an ID to access a single model. + * + * @example + * await client.conversations().models().create({ model_name: "openai/gpt-4", api_key: "..." }) + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ + ) }, { key: "models", value: function models(id) { @@ -2752,11 +3291,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ CurationSet) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _CurationSets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CurationSets */ "./src/Typesense/CurationSets.ts"); /* harmony import */ var _CurationSetItems__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CurationSetItems */ "./src/Typesense/CurationSetItems.ts"); @@ -2777,9 +3316,18 @@ var CurationSet = /*#__PURE__*/function () { this.apiCall = apiCall; this._items = new _CurationSetItems__WEBPACK_IMPORTED_MODULE_6__["default"](this.name, apiCall); } + + /** + * Create or update a curation set with the given name + * + * @example + * await client.curationSets("my-set").upsert({ items: [{ id: "promote-hat", rule: { query: "hat", match: "exact" } }] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(CurationSet, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -2796,9 +3344,18 @@ var CurationSet = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve a specific curation set by its name + * + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -2815,9 +3372,18 @@ var CurationSet = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete a specific curation set by its name + * + * @example + * await client.curationSets("my-set").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee3() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -2834,6 +3400,17 @@ var CurationSet = /*#__PURE__*/function () { } return _delete; }() + /** + * Access the items in this curation set. Call without arguments to list items, or pass an item ID to access a single item. + * + * @example + * await client.curationSets("my-set").items().retrieve() + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ + ) }, { key: "items", value: function items(itemId) { @@ -2868,10 +3445,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ CurationSetItem) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _CurationSets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CurationSets */ "./src/Typesense/CurationSets.ts"); @@ -2886,9 +3463,18 @@ var CurationSetItem = /*#__PURE__*/function () { this.itemId = itemId; this.apiCall = apiCall; } + + /** + * Retrieve a specific curation item by its id + * + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(CurationSetItem, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -2905,9 +3491,18 @@ var CurationSetItem = /*#__PURE__*/function () { } return retrieve; }() + /** + * Create or update a curation set item with the given id + * + * @example + * await client.curationSets("my-set").items("promote-hat").upsert({ rule: { query: "hat", match: "exact" }, includes: [] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ + ) }, { key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -2924,9 +3519,18 @@ var CurationSetItem = /*#__PURE__*/function () { } return upsert; }() + /** + * Delete a specific curation item by its id + * + * @example + * await client.curationSets("my-set").items("promote-hat").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -2942,7 +3546,7 @@ var CurationSetItem = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -2965,10 +3569,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ CurationSetItems) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _CurationSets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CurationSets */ "./src/Typesense/CurationSets.ts"); @@ -2982,9 +3586,18 @@ var CurationSetItems = /*#__PURE__*/function () { this.name = name; this.apiCall = apiCall; } + + /** + * Retrieve all curation items in a set + * + * @example + * await client.curationSets("my-set").items().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(CurationSetItems, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -3000,7 +3613,7 @@ var CurationSetItems = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -3023,11 +3636,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ CurationSets) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); @@ -3041,7 +3654,16 @@ var CurationSets = /*#__PURE__*/function () { } return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(CurationSets, [{ key: "retrieve", - value: function () { + value: ( + /** + * Retrieve all curation sets + * + * @example + * await client.curationSets().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ + function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -3057,7 +3679,7 @@ var CurationSets = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }]); }(); (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__["default"])(CurationSets, "RESOURCEPATH", "/curation_sets"); @@ -3076,10 +3698,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Debug) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -3091,9 +3713,18 @@ var Debug = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Debug); this.apiCall = apiCall; } + + /** + * Retrieve server version and state information. + * + * @example + * await client.debug.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Debug, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -3109,7 +3740,7 @@ var Debug = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }]); }(); @@ -3127,10 +3758,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Document: () => (/* binding */ Document) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); /* harmony import */ var _Documents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Documents */ "./src/Typesense/Documents.ts"); @@ -3149,9 +3780,18 @@ var Document = /*#__PURE__*/function () { this.documentId = documentId; this.apiCall = apiCall; } + + /** + * Fetch an individual document from a collection by using its ID. + * + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html#retrieve-a-document + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Document, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(options) { var queryParams; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { @@ -3170,9 +3810,18 @@ var Document = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete an individual document from a collection by using its ID. + * + * @example + * await client.collections("products").documents("1").delete() + * + * @see https://typesense.org/docs/latest/api/documents.html#delete-a-document + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(options) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -3189,9 +3838,18 @@ var Document = /*#__PURE__*/function () { } return _delete; }() + /** + * Update an individual document by ID by merging the provided fields. + * + * @example + * await client.collections("products").documents("1").update({ in_stock: true }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-a-document + */ + ) }, { key: "update", - value: function () { + value: (function () { var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3(partialDocument) { var options, _args3 = arguments; @@ -3210,7 +3868,7 @@ var Document = /*#__PURE__*/function () { return _update.apply(this, arguments); } return update; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -3232,14 +3890,14 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Documents) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Errors */ "./src/Typesense/Errors/index.ts"); /* harmony import */ var _SearchOnlyDocuments__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SearchOnlyDocuments */ "./src/Typesense/SearchOnlyDocuments.ts"); @@ -3268,10 +3926,19 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__["default"])(this, Documents); return _callSuper(this, Documents, [collectionName, apiCall, configuration]); } + + /** + * Index a single document. The document must conform to the schema of the collection. + * + * @example + * await client.collections("products").documents().create({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-a-single-document + */ (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__["default"])(Documents, _SearchOnlyDocuments); return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__["default"])(Documents, [{ key: "create", - value: function () { + value: (function () { var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default().mark(function _callee(document) { var options, _args = arguments; @@ -3297,9 +3964,18 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { } return create; }() + /** + * Upsert a single document. Creates the document if it does not exist, otherwise updates it. + * + * @example + * await client.collections("products").documents().upsert({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#upsert + */ + ) }, { key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default().mark(function _callee2(document) { var options, _args2 = arguments; @@ -3327,6 +4003,17 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { } return upsert; }() + /** + * Update documents matching a `filter_by` condition, or update a single document with `action: "update"` semantics. + * + * @example + * await client.collections("products").documents().update({ in_stock: true }, { filter_by: "category:=hats" }) + * @example + * await client.collections("products").documents().update({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-documents-with-conditional-query + */ + ) }, { key: "update", value: function () { @@ -3363,6 +4050,16 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { } return update; }() + /** + * Emplace documents — insert new documents or update existing ones, optionally by `filter_by`. + * + * @example + * await client.collections("products").documents().emplace({ id: "1", title: "Hat" }) + * @example + * await client.collections("products").documents().emplace({ in_stock: true }, { filter_by: "category:=hats" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents + */ }, { key: "emplace", value: function () { @@ -3399,9 +4096,19 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { } return emplace; }() + /** + * Delete a bunch of documents that match a specific filter condition, or truncate the collection. + * + * @example + * await client.collections("products").documents().delete({ filter_by: "in_stock:=false" }) + * @example + * await client.collections("products").documents().delete({ truncate: true }) + * + * @see https://typesense.org/docs/latest/api/documents.html#delete-by-query + */ }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default().mark(function _callee5() { var query, _args5 = arguments; @@ -3421,9 +4128,13 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { } return _delete; }() + /** + * @deprecated Use `import` instead, which accepts both an array of documents or a JSONL string. + */ + ) }, { key: "createMany", - value: function () { + value: (function () { var _createMany = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default().mark(function _callee6(documents) { var options, _args6 = arguments; @@ -3445,11 +4156,16 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { return createMany; }() /** - * Import a set of documents in a batch. - * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects. - * @param options - * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results. + * Import documents into a collection. Accepts a JSONL string or an array of document objects. + * + * @example + * await client.collections("products").documents().import([{ id: "1", title: "Hat" }, { id: "2", title: "Shirt" }]) + * @example + * await client.collections("products").documents().import(jsonlString) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents */ + ) }, { key: "import", value: function () { @@ -3560,6 +4276,11 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { }() /** * Imports documents from a NodeJS readable stream of JSONL. + * + * @example + * await client.collections("products").documents().importStream(fs.createReadStream("products.jsonl")) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents */ }, { key: "importStream", @@ -3621,7 +4342,12 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { return importStream; }() /** - * Returns a JSONL string for all the documents in this collection + * Export all documents in a collection as a JSONL string. + * + * @example + * await client.collections("products").documents().export() + * + * @see https://typesense.org/docs/latest/api/documents.html#export-documents */ ) }, { @@ -3647,7 +4373,12 @@ var Documents = /*#__PURE__*/function (_SearchOnlyDocuments) { return _export; }() /** - * Returns a NodeJS readable stream of JSONL for all the documents in this collection. + * Export all documents in a collection as a NodeJS readable stream of JSONL. + * + * @example + * await client.collections("products").documents().exportStream() + * + * @see https://typesense.org/docs/latest/api/documents.html#export-documents */ ) }, { @@ -3698,11 +4429,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ HTTPError) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -3735,11 +4466,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ImportError) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -3776,11 +4507,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ MissingConfigurationError) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -3813,11 +4544,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ObjectAlreadyExists) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -3850,11 +4581,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ObjectNotFound) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -3887,11 +4618,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ObjectUnprocessable) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -3924,11 +4655,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ RequestMalformed) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -3961,11 +4692,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ RequestUnauthorized) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -3998,11 +4729,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ServerError) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); /* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); @@ -4035,12 +4766,12 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ TypesenseError) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ "./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js"); +/* harmony import */ var _babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js"); @@ -4123,10 +4854,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Health) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -4138,9 +4869,18 @@ var Health = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Health); this.apiCall = apiCall; } + + /** + * Checks if Typesense server is ready to accept requests. + * + * @example + * await client.health.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#health + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Health, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4156,7 +4896,7 @@ var Health = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }]); }(); @@ -4174,10 +4914,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Key) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Keys */ "./src/Typesense/Keys.ts"); @@ -4191,9 +4931,18 @@ var Key = /*#__PURE__*/function () { this.id = id; this.apiCall = apiCall; } + + /** + * Retrieve (metadata about) a key. Only the key prefix is returned when you retrieve a key. Due to security reasons, only the create endpoint returns the full API key. + * + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#retrieve-an-api-key + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Key, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4210,9 +4959,18 @@ var Key = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete an API key given its ID. + * + * @example + * await client.keys(1).delete() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#delete-api-key + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -4228,7 +4986,7 @@ var Key = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -4251,10 +5009,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Keys) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! crypto */ "?4bf0"); /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_4__); @@ -4272,9 +5030,18 @@ var Keys = /*#__PURE__*/function () { this.apiCall = apiCall; this.apiCall = apiCall; } + + /** + * Create an API Key with fine-grain access control. You can restrict access on both a per-collection and per-action level. The generated key is returned only during creation. You want to store this key carefully in a secure place. + * + * @example + * await client.keys().create({ description: "Search-only key", actions: ["documents:search"], collections: ["*"] }) + * + * @see https://typesense.org/docs/latest/api/api-keys.html#create-an-api-key + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Keys, [{ key: "create", - value: function () { + value: (function () { var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4291,9 +5058,18 @@ var Keys = /*#__PURE__*/function () { } return create; }() + /** + * Retrieve (metadata about) all keys. + * + * @example + * await client.keys().retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#list-all-keys + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -4310,6 +5086,15 @@ var Keys = /*#__PURE__*/function () { } return retrieve; }() + /** + * Generate a scoped search-only API key with embedded parameters such as `filter_by` or `expires_at`. + * + * @example + * client.keys().generateScopedSearchKey("search-only-key", { filter_by: "company_id:124", expires_at: 1700000000 }) + * + * @see https://typesense.org/docs/latest/api/api-keys.html#generate-scoped-search-key + */ + ) }, { key: "generateScopedSearchKey", value: function generateScopedSearchKey(searchKey, parameters) { @@ -4344,10 +5129,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Metrics) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -4359,9 +5144,18 @@ var Metrics = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Metrics); this.apiCall = apiCall; } + + /** + * Get current RAM, CPU, Disk & Network usage metrics. + * + * @example + * await client.metrics.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Metrics, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4377,7 +5171,7 @@ var Metrics = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }]); }(); @@ -4395,12 +5189,12 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ MultiSearch) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _RequestWithCache__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RequestWithCache */ "./src/Typesense/RequestWithCache.ts"); /* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Utils */ "./src/Typesense/Utils.ts"); @@ -4431,6 +5225,17 @@ var MultiSearch = /*#__PURE__*/function () { value: function clearCache() { this.requestWithCache.clearCache(); } + + /** + * Send multiple search requests in a single HTTP request. Pass `union: true` to merge results, or omit it to receive a `results` array. + * + * @example + * await client.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * @example + * await client.multiSearch.perform({ union: true, searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ }, { key: "perform", value: function () { @@ -4507,10 +5312,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ NLSearchModel) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _NLSearchModels__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NLSearchModels */ "./src/Typesense/NLSearchModels.ts"); @@ -4524,9 +5329,18 @@ var NLSearchModel = /*#__PURE__*/function () { this.id = id; this.apiCall = apiCall; } + + /** + * Retrieve a specific NL search model by its ID. + * + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(NLSearchModel, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4543,9 +5357,18 @@ var NLSearchModel = /*#__PURE__*/function () { } return retrieve; }() + /** + * Update an existing NL search model. + * + * @example + * await client.nlSearchModels("model-1").update({ model_name: "openai/gpt-4" }) + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ + ) }, { key: "update", - value: function () { + value: (function () { var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(schema) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -4562,9 +5385,18 @@ var NLSearchModel = /*#__PURE__*/function () { } return update; }() + /** + * Delete a specific NL search model by its ID. + * + * @example + * await client.nlSearchModels("model-1").delete() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -4580,7 +5412,7 @@ var NLSearchModel = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -4603,10 +5435,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ NLSearchModels) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -4620,9 +5452,18 @@ var NLSearchModels = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, NLSearchModels); this.apiCall = apiCall; } + + /** + * Create a new NL search model. + * + * @example + * await client.nlSearchModels().create({ model_name: "openai/gpt-4", api_key: "..." }) + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(NLSearchModels, [{ key: "create", - value: function () { + value: (function () { var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(schema) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4639,9 +5480,18 @@ var NLSearchModels = /*#__PURE__*/function () { } return create; }() + /** + * Retrieve all NL search models. + * + * @example + * await client.nlSearchModels().retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -4657,7 +5507,7 @@ var NLSearchModels = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -4685,10 +5535,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Operations) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -4700,9 +5550,18 @@ var Operations = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Operations); this.apiCall = apiCall; } + + /** + * Perform a cluster operation: snapshot, vote, cache/clear, db/compact, or a custom path. + * + * @example + * await client.operations.perform("snapshot", { snapshot_path: "/tmp/snap" }) + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Operations, [{ key: "perform", - value: function () { + value: (function () { var _perform = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(operationName) { var queryParameters, _args = arguments; @@ -4722,9 +5581,18 @@ var Operations = /*#__PURE__*/function () { } return perform; }() + /** + * Get the status of in-progress schema change operations + * + * @example + * await client.operations.getSchemaChanges() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ + ) }, { key: "getSchemaChanges", - value: function () { + value: (function () { var _getSchemaChanges = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -4740,7 +5608,7 @@ var Operations = /*#__PURE__*/function () { return _getSchemaChanges.apply(this, arguments); } return getSchemaChanges; - }() + }()) }]); }(); @@ -4758,10 +5626,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Override) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); /* harmony import */ var _Overrides__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Overrides */ "./src/Typesense/Overrides.ts"); @@ -4778,9 +5646,18 @@ var Override = /*#__PURE__*/function () { this.overrideId = overrideId; this.apiCall = apiCall; } + + /** + * Retrieve an override (curation rule) by ID on this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Override, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4797,9 +5674,18 @@ var Override = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete an override (curation rule) by ID on this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -4815,7 +5701,7 @@ var Override = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -4838,10 +5724,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Overrides) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); @@ -4856,9 +5742,18 @@ var Overrides = /*#__PURE__*/function () { this.collectionName = collectionName; this.apiCall = apiCall; } + + /** + * Create or update an override (curation rule) on this collection. + * + * @example + * await client.collections("products").overrides().upsert("promote-hat", { rule: { query: "hat", match: "exact" }, includes: [] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Overrides, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(overrideId, params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4875,9 +5770,18 @@ var Overrides = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve all overrides (curation rules) on this collection. + * + * @example + * await client.collections("products").overrides().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -4893,7 +5797,7 @@ var Overrides = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -4921,10 +5825,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Preset) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Presets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Presets */ "./src/Typesense/Presets.ts"); @@ -4938,9 +5842,18 @@ var Preset = /*#__PURE__*/function () { this.presetId = presetId; this.apiCall = apiCall; } + + /** + * Retrieve the details of a preset, given it's name. + * + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Preset, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -4957,9 +5870,18 @@ var Preset = /*#__PURE__*/function () { } return retrieve; }() + /** + * Permanently deletes a preset, given it's name. + * + * @example + * await client.presets("listing_view").delete() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -4975,7 +5897,7 @@ var Preset = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -4998,11 +5920,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Presets) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Utils */ "./src/Typesense/Utils.ts"); @@ -5017,9 +5939,18 @@ var Presets = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__["default"])(this, Presets); this.apiCall = apiCall; } + + /** + * Create or update an existing preset. + * + * @example + * await client.presets().upsert("listing_view", { value: { q: "*" } }) + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__["default"])(Presets, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee(presetId, params) { var _normalizedParams, normalizedParams; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { @@ -5053,9 +5984,18 @@ var Presets = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve the details of all presets + * + * @example + * await client.presets().retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5071,7 +6011,7 @@ var Presets = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -5099,11 +6039,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ RequestWithCache) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); @@ -5273,9 +6213,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ SearchClient) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/slicedToArray.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _Configuration__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Configuration */ "./src/Typesense/Configuration.ts"); /* harmony import */ var _ApiCall__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ApiCall */ "./src/Typesense/ApiCall.ts"); /* harmony import */ var _MultiSearch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MultiSearch */ "./src/Typesense/MultiSearch.ts"); @@ -5287,7 +6227,22 @@ __webpack_require__.r(__webpack_exports__); + +/** + * Search-only Typesense client. Restricted to search operations and intended for use with search-only API keys in browser environments. + * + * @see https://typesense.org/docs/latest/api/ + */ var SearchClient = /*#__PURE__*/function () { + /** + * Send multiple search requests in a single HTTP request. + * + * @example + * await searchClient.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ + function SearchClient(options) { var _options$sendApiKeyAs; (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, SearchClient); @@ -5314,6 +6269,15 @@ var SearchClient = /*#__PURE__*/function () { collection.documents().clearCache(); }); } + + /** + * Access a search-only collection by name. + * + * @example + * await searchClient.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ }, { key: "collections", value: function collections(collectionName) { @@ -5343,8 +6307,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ SearchOnlyCollection: () => (/* binding */ SearchOnlyCollection) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _SearchOnlyDocuments__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SearchOnlyDocuments */ "./src/Typesense/SearchOnlyDocuments.ts"); @@ -5357,6 +6321,15 @@ var SearchOnlyCollection = /*#__PURE__*/function () { this.configuration = configuration; this._documents = new _SearchOnlyDocuments__WEBPACK_IMPORTED_MODULE_2__.SearchOnlyDocuments(this.name, this.apiCall, this.configuration); } + + /** + * Access the search-only documents resource for this collection. + * + * @example + * await searchClient.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(SearchOnlyCollection, [{ key: "documents", value: function documents() { @@ -5378,12 +6351,12 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ SearchOnlyDocuments: () => (/* binding */ SearchOnlyDocuments) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _RequestWithCache__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RequestWithCache */ "./src/Typesense/RequestWithCache.ts"); /* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); @@ -5414,9 +6387,18 @@ var SearchOnlyDocuments = /*#__PURE__*/function () { value: function clearCache() { this.requestWithCache.clearCache(); } + + /** + * Search for documents in a collection that match the search criteria. + * + * @example + * await client.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ }, { key: "search", - value: function () { + value: (function () { var _search = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee(searchParameters) { var _ref, _ref$cacheSearchResul, @@ -5460,7 +6442,7 @@ var SearchOnlyDocuments = /*#__PURE__*/function () { return _search.apply(this, arguments); } return search; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -5487,10 +6469,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Metrics) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -5502,9 +6484,18 @@ var Metrics = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Metrics); this.apiCall = apiCall; } + + /** + * Get stats about API endpoints. + * + * @example + * await client.stats.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Metrics, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -5520,7 +6511,7 @@ var Metrics = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }]); }(); @@ -5538,9 +6529,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Stemming) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); /* harmony import */ var _StemmingDictionaries__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./StemmingDictionaries */ "./src/Typesense/StemmingDictionaries.ts"); /* harmony import */ var _StemmingDictionary__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./StemmingDictionary */ "./src/Typesense/StemmingDictionary.ts"); @@ -5557,6 +6548,17 @@ var Stemming = /*#__PURE__*/function () { this.apiCall = apiCall; this._stemmingDictionaries = new _StemmingDictionaries__WEBPACK_IMPORTED_MODULE_3__["default"](this.apiCall); } + + /** + * Access the stemming dictionaries resource. Call without arguments to list or import dictionaries, or pass an ID to access a single dictionary. + * + * @example + * await client.stemming.dictionaries().retrieve() + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(Stemming, [{ key: "dictionaries", value: function dictionaries(id) { @@ -5591,10 +6593,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ StemmingDictionaries) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -5607,9 +6609,18 @@ var StemmingDictionaries = /*#__PURE__*/function () { this.apiCall = apiCall; this.apiCall = apiCall; } + + /** + * Upload a JSONL file containing word mappings to create or update a stemming dictionary. + * + * @example + * await client.stemming.dictionaries().upsert("irregular-plurals", [{ word: "people", root: "person" }]) + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(StemmingDictionaries, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(id, wordRootCombinations) { var wordRootCombinationsInJSONLFormat, resultsInJSONLFormat; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { @@ -5645,9 +6656,18 @@ var StemmingDictionaries = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve a list of all available stemming dictionaries. + * + * @example + * await client.stemming.dictionaries().retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5663,7 +6683,7 @@ var StemmingDictionaries = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -5691,10 +6711,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ StemmingDictionary) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _StemmingDictionaries__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./StemmingDictionaries */ "./src/Typesense/StemmingDictionaries.ts"); @@ -5708,9 +6728,18 @@ var StemmingDictionary = /*#__PURE__*/function () { this.id = id; this.apiCall = apiCall; } + + /** + * Fetch details of a specific stemming dictionary. + * + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(StemmingDictionary, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -5727,9 +6756,18 @@ var StemmingDictionary = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete a stemming dictionary by ID. + * + * @example + * await client.stemming.dictionaries("en").delete() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5745,7 +6783,7 @@ var StemmingDictionary = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -5768,10 +6806,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Stopword) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Stopwords__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Stopwords */ "./src/Typesense/Stopwords.ts"); @@ -5785,9 +6823,18 @@ var Stopword = /*#__PURE__*/function () { this.stopwordId = stopwordId; this.apiCall = apiCall; } + + /** + * Retrieve the details of a stopwords set, given it's name. + * + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Stopword, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -5804,9 +6851,18 @@ var Stopword = /*#__PURE__*/function () { } return retrieve; }() + /** + * Permanently deletes a stopwords set, given it's name. + * + * @example + * await client.stopwords("en").delete() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5822,7 +6878,7 @@ var Stopword = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -5845,10 +6901,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Stopwords) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); @@ -5860,9 +6916,18 @@ var Stopwords = /*#__PURE__*/function () { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Stopwords); this.apiCall = apiCall; } + + /** + * Upserts a stopwords set. + * + * @example + * await client.stopwords().upsert("en", { stopwords: ["a", "the"] }) + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Stopwords, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(stopwordId, params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -5879,9 +6944,18 @@ var Stopwords = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve the details of all stopwords sets + * + * @example + * await client.stopwords().retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5897,7 +6971,7 @@ var Stopwords = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -5925,11 +6999,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Synonym) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); /* harmony import */ var _Synonyms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Synonyms */ "./src/Typesense/Synonyms.ts"); @@ -5950,9 +7024,18 @@ var Synonym = /*#__PURE__*/function () { this.synonymId = synonymId; this.apiCall = apiCall; } + + /** + * Retrieve a synonym (legacy v1) by ID on this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Synonym, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -5969,9 +7052,18 @@ var Synonym = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete a synonym (legacy v1) by ID on this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").delete() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -5987,7 +7079,7 @@ var Synonym = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -6016,11 +7108,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ SynonymSet) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _SynonymSets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SynonymSets */ "./src/Typesense/SynonymSets.ts"); /* harmony import */ var _SynonymSetItems__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SynonymSetItems */ "./src/Typesense/SynonymSetItems.ts"); @@ -6041,9 +7133,18 @@ var SynonymSet = /*#__PURE__*/function () { this.apiCall = apiCall; this._items = new _SynonymSetItems__WEBPACK_IMPORTED_MODULE_6__["default"](this.synonymSetName, apiCall); } + + /** + * Create or update a synonym set with the given name + * + * @example + * await client.synonymSets("my-set").upsert({ items: [{ id: "syn-1", synonyms: ["nyc", "new york"] }] }) + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(SynonymSet, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -6060,9 +7161,18 @@ var SynonymSet = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve a specific synonym set by its name + * + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -6079,9 +7189,18 @@ var SynonymSet = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete a specific synonym set by its name + * + * @example + * await client.synonymSets("my-set").delete() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee3() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { @@ -6098,6 +7217,17 @@ var SynonymSet = /*#__PURE__*/function () { } return _delete; }() + /** + * Access the items in this synonym set. Call without arguments to list or upsert items, or pass an item ID to access a single item. + * + * @example + * await client.synonymSets("my-set").items().retrieve() + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ + ) }, { key: "items", value: function items(itemId) { @@ -6132,10 +7262,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ SynonymSetItem) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _SynonymSets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SynonymSets */ "./src/Typesense/SynonymSets.ts"); @@ -6150,9 +7280,18 @@ var SynonymSetItem = /*#__PURE__*/function () { this.itemId = itemId; this.apiCall = apiCall; } + + /** + * Retrieve a specific synonym item by its id + * + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(SynonymSetItem, [{ key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -6169,9 +7308,18 @@ var SynonymSetItem = /*#__PURE__*/function () { } return retrieve; }() + /** + * Delete a specific synonym item by its id + * + * @example + * await client.synonymSets("my-set").items("syn-1").delete() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ + ) }, { key: "delete", - value: function () { + value: (function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -6187,7 +7335,7 @@ var SynonymSetItem = /*#__PURE__*/function () { return _delete2.apply(this, arguments); } return _delete; - }() + }()) }, { key: "endpointPath", value: function endpointPath() { @@ -6210,10 +7358,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ SynonymSetItems) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _SynonymSets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SynonymSets */ "./src/Typesense/SynonymSets.ts"); @@ -6227,9 +7375,18 @@ var SynonymSetItems = /*#__PURE__*/function () { this.synonymSetName = synonymSetName; this.apiCall = apiCall; } + + /** + * Create or update a synonym set item with the given id + * + * @example + * await client.synonymSets("my-set").items().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(SynonymSetItems, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(itemId, params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -6246,9 +7403,18 @@ var SynonymSetItems = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve all synonym items in a set + * + * @example + * await client.synonymSets("my-set").items().retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -6264,7 +7430,7 @@ var SynonymSetItems = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -6287,11 +7453,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ SynonymSets) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); @@ -6305,7 +7471,16 @@ var SynonymSets = /*#__PURE__*/function () { } return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(SynonymSets, [{ key: "retrieve", - value: function () { + value: ( + /** + * Retrieve all synonym sets + * + * @example + * await client.synonymSets().retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ + function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -6321,7 +7496,7 @@ var SynonymSets = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }]); }(); (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__["default"])(SynonymSets, "RESOURCEPATH", "/synonym_sets"); @@ -6340,11 +7515,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Synonyms) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); +/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); +/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); @@ -6363,9 +7538,18 @@ var Synonyms = /*#__PURE__*/function () { this.collectionName = collectionName; this.apiCall = apiCall; } + + /** + * Create or update a synonym (legacy v1) on this collection. + * + * @example + * await client.collections("products").synonyms().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Synonyms, [{ key: "upsert", - value: function () { + value: (function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee(synonymId, params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context) { while (1) switch (_context.prev = _context.next) { @@ -6382,9 +7566,18 @@ var Synonyms = /*#__PURE__*/function () { } return upsert; }() + /** + * Retrieve all synonyms (legacy v1) on this collection. + * + * @example + * await client.collections("products").synonyms().retrieve() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ + ) }, { key: "retrieve", - value: function () { + value: (function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { @@ -6400,7 +7593,7 @@ var Synonyms = /*#__PURE__*/function () { return _retrieve.apply(this, arguments); } return retrieve; - }() + }()) }, { key: "endpointPath", value: function endpointPath(operation) { @@ -6467,8 +7660,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ normalizeArrayableParams: () => (/* binding */ normalizeArrayableParams), /* harmony export */ toErrorWithMessage: () => (/* binding */ toErrorWithMessage) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); +/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js"); /* harmony import */ var _Types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Types */ "./src/Typesense/Types.ts"); @@ -6518,10 +7711,10 @@ function toErrorWithMessage(couldBeError) { /***/ }, -/***/ "./node_modules/loglevel/lib/loglevel.js" -/*!***********************************************!*\ - !*** ./node_modules/loglevel/lib/loglevel.js ***! - \***********************************************/ +/***/ "./node_modules/.pnpm/loglevel@1.9.2/node_modules/loglevel/lib/loglevel.js" +/*!*********************************************************************************!*\ + !*** ./node_modules/.pnpm/loglevel@1.9.2/node_modules/loglevel/lib/loglevel.js ***! + \*********************************************************************************/ (module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* @@ -6916,10 +8109,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/OverloadYield.js" -/*!**************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/OverloadYield.js ***! - \**************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/OverloadYield.js" +/*!*******************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/OverloadYield.js ***! + \*******************************************************************************************************/ (module) { function _OverloadYield(e, d) { @@ -6929,13 +8122,13 @@ module.exports = _OverloadYield, module.exports.__esModule = true, module.export /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/regenerator.js" -/*!************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regenerator.js ***! - \************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regenerator.js" +/*!*****************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regenerator.js ***! + \*****************************************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { -var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "./node_modules/@babel/runtime/helpers/regeneratorDefine.js"); +var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorDefine.js"); function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, @@ -7027,13 +8220,13 @@ module.exports = _regenerator, module.exports.__esModule = true, module.exports[ /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/regeneratorAsync.js" -/*!*****************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorAsync.js ***! - \*****************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsync.js" +/*!**********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsync.js ***! + \**********************************************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { -var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js"); +var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js"); function _regeneratorAsync(n, e, r, t, o) { var a = regeneratorAsyncGen(n, e, r, t, o); return a.next().then(function (n) { @@ -7044,14 +8237,14 @@ module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exp /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js" -/*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***! - \********************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js" +/*!*************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***! + \*************************************************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { -var regenerator = __webpack_require__(/*! ./regenerator.js */ "./node_modules/@babel/runtime/helpers/regenerator.js"); -var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js"); +var regenerator = __webpack_require__(/*! ./regenerator.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regenerator.js"); +var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js"); function _regeneratorAsyncGen(r, e, t, o, n) { return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise); } @@ -7059,14 +8252,14 @@ module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module. /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js" -/*!*************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***! - \*************************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js" +/*!******************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***! + \******************************************************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { -var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "./node_modules/@babel/runtime/helpers/OverloadYield.js"); -var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "./node_modules/@babel/runtime/helpers/regeneratorDefine.js"); +var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/OverloadYield.js"); +var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorDefine.js"); function AsyncIterator(t, e) { function n(r, o, i, f) { try { @@ -7101,10 +8294,10 @@ module.exports = AsyncIterator, module.exports.__esModule = true, module.exports /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/regeneratorDefine.js" -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorDefine.js ***! - \******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorDefine.js" +/*!***********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorDefine.js ***! + \***********************************************************************************************************/ (module) { function _regeneratorDefine(e, r, n, t) { @@ -7132,10 +8325,10 @@ module.exports = _regeneratorDefine, module.exports.__esModule = true, module.ex /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/regeneratorKeys.js" -/*!****************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorKeys.js ***! - \****************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorKeys.js" +/*!*********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorKeys.js ***! + \*********************************************************************************************************/ (module) { function _regeneratorKeys(e) { @@ -7151,19 +8344,19 @@ module.exports = _regeneratorKeys, module.exports.__esModule = true, module.expo /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js" -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! - \*******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorRuntime.js" +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! + \************************************************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { -var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "./node_modules/@babel/runtime/helpers/OverloadYield.js"); -var regenerator = __webpack_require__(/*! ./regenerator.js */ "./node_modules/@babel/runtime/helpers/regenerator.js"); -var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "./node_modules/@babel/runtime/helpers/regeneratorAsync.js"); -var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js"); -var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js"); -var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "./node_modules/@babel/runtime/helpers/regeneratorKeys.js"); -var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "./node_modules/@babel/runtime/helpers/regeneratorValues.js"); +var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/OverloadYield.js"); +var regenerator = __webpack_require__(/*! ./regenerator.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regenerator.js"); +var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsync.js"); +var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js"); +var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js"); +var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorKeys.js"); +var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorValues.js"); function _regeneratorRuntime() { "use strict"; @@ -7237,13 +8430,13 @@ module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.e /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/regeneratorValues.js" -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorValues.js ***! - \******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorValues.js" +/*!***********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorValues.js ***! + \***********************************************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { -var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]); +var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/typeof.js")["default"]); function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], @@ -7265,10 +8458,10 @@ module.exports = _regeneratorValues, module.exports.__esModule = true, module.ex /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/typeof.js" -/*!*******************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! - \*******************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/typeof.js" +/*!************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/typeof.js ***! + \************************************************************************************************/ (module) { function _typeof(o) { @@ -7284,15 +8477,15 @@ module.exports = _typeof, module.exports.__esModule = true, module.exports["defa /***/ }, -/***/ "./node_modules/@babel/runtime/regenerator/index.js" -/*!**********************************************************!*\ - !*** ./node_modules/@babel/runtime/regenerator/index.js ***! - \**********************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js" +/*!***************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js ***! + \***************************************************************************************************/ (module, __unused_webpack_exports, __webpack_require__) { // TODO(Babel 8): Remove this file. -var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")(); +var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorRuntime.js")(); module.exports = runtime; // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= @@ -7309,10 +8502,10 @@ try { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js" -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \*********************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js" +/*!**************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! + \**************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7329,10 +8522,10 @@ function _arrayLikeToArray(r, a) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js" -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***! - \*******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js" +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***! + \************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7347,10 +8540,10 @@ function _arrayWithHoles(r) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js" -/*!**************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! - \**************************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js" +/*!*******************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! + \*******************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7366,10 +8559,10 @@ function _assertThisInitialized(e) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js" -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! - \*********************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js" +/*!**************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! + \**************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7406,10 +8599,10 @@ function _asyncToGenerator(n) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js" -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js" +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! + \************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7424,10 +8617,10 @@ function _classCallCheck(a, n) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/construct.js" -/*!**************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/construct.js ***! - \**************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/construct.js" +/*!*******************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/construct.js ***! + \*******************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7435,8 +8628,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _construct) /* harmony export */ }); -/* harmony import */ var _isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js"); -/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); +/* harmony import */ var _isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js"); +/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); function _construct(t, e, r) { @@ -7450,10 +8643,10 @@ function _construct(t, e, r) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js" -/*!****************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***! - \****************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js" +/*!*********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js ***! + \*********************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7461,7 +8654,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _createClass) /* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { @@ -7478,10 +8671,10 @@ function _createClass(e, r, t) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js" -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \*******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js" +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7489,7 +8682,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _defineProperty) /* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); +/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); function _defineProperty(e, r, t) { return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { @@ -7503,10 +8696,10 @@ function _defineProperty(e, r, t) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js" -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***! - \*******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js" +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***! + \************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7523,10 +8716,10 @@ function _getPrototypeOf(t) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js" -/*!*************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***! - \*************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js" +/*!******************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js ***! + \******************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7534,7 +8727,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _inherits) /* harmony export */ }); -/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); +/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); @@ -7552,10 +8745,10 @@ function _inherits(t, e) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js" -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js ***! - \*********************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js" +/*!**************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js ***! + \**************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7574,10 +8767,10 @@ function _isNativeFunction(t) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js" -/*!*****************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js ***! - \*****************************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js" +/*!**********************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js ***! + \**********************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7597,10 +8790,10 @@ function _isNativeReflectConstruct() { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js" -/*!*************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***! - \*************************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js" +/*!******************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***! + \******************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7639,10 +8832,10 @@ function _iterableToArrayLimit(r, l) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js" -/*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***! - \********************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js" +/*!*************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***! + \*************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7657,10 +8850,10 @@ function _nonIterableRest() { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js" -/*!****************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***! - \****************************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js" +/*!*********************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***! + \*********************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7668,7 +8861,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _objectWithoutProperties) /* harmony export */ }); -/* harmony import */ var _objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"); +/* harmony import */ var _objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"); function _objectWithoutProperties(e, t) { if (null == e) return {}; @@ -7685,10 +8878,10 @@ function _objectWithoutProperties(e, t) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js" -/*!*********************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***! - \*********************************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js" +/*!**************************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***! + \**************************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7709,10 +8902,10 @@ function _objectWithoutPropertiesLoose(r, e) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js" -/*!******************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***! - \******************************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js" +/*!***********************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***! + \***********************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7720,8 +8913,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _possibleConstructorReturn) /* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"); function _possibleConstructorReturn(t, e) { @@ -7733,10 +8926,10 @@ function _possibleConstructorReturn(t, e) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/readOnlyError.js" -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/readOnlyError.js ***! - \******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/readOnlyError.js" +/*!***********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/readOnlyError.js ***! + \***********************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7751,10 +8944,10 @@ function _readOnlyError(r) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js" -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! - \*******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js" +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! + \************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7771,10 +8964,10 @@ function _setPrototypeOf(t, e) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js" -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***! - \******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/slicedToArray.js" +/*!***********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***! + \***********************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7782,10 +8975,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _slicedToArray) /* harmony export */ }); -/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js"); -/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js"); +/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js"); +/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js"); +/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); +/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js"); @@ -7797,10 +8990,10 @@ function _slicedToArray(r, e) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js" -/*!****************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! - \****************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js" +/*!*********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! + \*********************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7808,7 +9001,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ toPrimitive) /* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js"); function toPrimitive(t, r) { if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; @@ -7824,10 +9017,10 @@ function toPrimitive(t, r) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js" -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! - \******************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js" +/*!***********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! + \***********************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7835,8 +9028,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ toPropertyKey) /* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); +/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js"); +/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); function toPropertyKey(t) { @@ -7847,10 +9040,10 @@ function toPropertyKey(t) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js" -/*!***********************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \***********************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js" +/*!****************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js ***! + \****************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7871,10 +9064,10 @@ function _typeof(o) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js" -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*******************************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js" +/*!************************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! + \************************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7882,7 +9075,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) /* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); +/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); function _unsupportedIterableToArray(r, a) { if (r) { @@ -7895,10 +9088,10 @@ function _unsupportedIterableToArray(r, a) { /***/ }, -/***/ "./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js" -/*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js ***! - \********************************************************************/ +/***/ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js" +/*!*************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js ***! + \*************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7906,10 +9099,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _wrapNativeSuper) /* harmony export */ }); -/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); -/* harmony import */ var _isNativeFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNativeFunction.js */ "./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js"); -/* harmony import */ var _construct_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./construct.js */ "./node_modules/@babel/runtime/helpers/esm/construct.js"); +/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrototypeOf.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); +/* harmony import */ var _isNativeFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNativeFunction.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js"); +/* harmony import */ var _construct_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./construct.js */ "./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/construct.js"); @@ -7940,10 +9133,10 @@ function _wrapNativeSuper(t) { /***/ }, -/***/ "./node_modules/axios/lib/adapters/adapters.js" -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/adapters/adapters.js ***! - \*****************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/adapters.js" +/*!*************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/adapters.js ***! + \*************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -7951,11 +9144,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _http_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./http.js */ "./node_modules/axios/lib/helpers/null.js"); -/* harmony import */ var _xhr_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./xhr.js */ "./node_modules/axios/lib/adapters/xhr.js"); -/* harmony import */ var _fetch_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fetch.js */ "./node_modules/axios/lib/adapters/fetch.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _http_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./http.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/null.js"); +/* harmony import */ var _xhr_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./xhr.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/xhr.js"); +/* harmony import */ var _fetch_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fetch.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/fetch.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); @@ -7983,11 +9176,13 @@ const knownAdapters = { _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(knownAdapters, (fn, value) => { if (fn) { try { - Object.defineProperty(fn, 'name', { value }); + // Null-proto descriptors so a polluted Object.prototype.get cannot turn + // these data descriptors into accessor descriptors on the way in. + Object.defineProperty(fn, 'name', { __proto__: null, value }); } catch (e) { // eslint-disable-next-line no-empty } - Object.defineProperty(fn, 'adapterName', { value }); + Object.defineProperty(fn, 'adapterName', { __proto__: null, value }); } }); @@ -8090,10 +9285,10 @@ function getAdapter(adapters, config) { /***/ }, -/***/ "./node_modules/axios/lib/adapters/fetch.js" -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/adapters/fetch.js ***! - \**************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/fetch.js" +/*!**********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/fetch.js ***! + \**********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -8102,15 +9297,19 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), /* harmony export */ getFetch: () => (/* binding */ getFetch) /* harmony export */ }); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/composeSignals.js */ "./node_modules/axios/lib/helpers/composeSignals.js"); -/* harmony import */ var _helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/trackStream.js */ "./node_modules/axios/lib/helpers/trackStream.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/axios/lib/helpers/progressEventReducer.js"); -/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/axios/lib/helpers/resolveConfig.js"); -/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/settle.js */ "./node_modules/axios/lib/core/settle.js"); +/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/composeSignals.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/composeSignals.js"); +/* harmony import */ var _helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/trackStream.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/trackStream.js"); +/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); +/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/progressEventReducer.js"); +/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/resolveConfig.js"); +/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/settle.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/settle.js"); +/* harmony import */ var _helpers_estimateDataURLDecodedBytes_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/estimateDataURLDecodedBytes.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js"); +/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../env/data.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/env/data.js"); + + @@ -8125,13 +9324,6 @@ const DEFAULT_CHUNK_SIZE = 64 * 1024; const { isFunction } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"]; -const globalFetchAPI = (({ Request, Response }) => ({ - Request, - Response, -}))(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global); - -const { ReadableStream, TextEncoder } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global; - const test = (fn, ...args) => { try { return !!fn(...args); @@ -8141,11 +9333,17 @@ const test = (fn, ...args) => { }; const factory = (env) => { + const globalObject = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global ?? globalThis; + const { ReadableStream, TextEncoder } = globalObject; + env = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge.call( { skipUndefined: true, }, - globalFetchAPI, + { + Request: globalObject.Request, + Response: globalObject.Response, + }, env ); @@ -8175,18 +9373,20 @@ const factory = (env) => { test(() => { let duplexAccessed = false; - const body = new ReadableStream(); - - const hasContentType = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, { - body, + const request = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, { + body: new ReadableStream(), method: 'POST', get duplex() { duplexAccessed = true; return 'half'; }, - }).headers.has('Content-Type'); + }); - body.cancel(); + const hasContentType = request.headers.has('Content-Type'); + + if (request.body != null) { + request.body.cancel(); + } return duplexAccessed && !hasContentType; }); @@ -8270,8 +9470,13 @@ const factory = (env) => { headers, withCredentials = 'same-origin', fetchOptions, + maxContentLength, + maxBodyLength, } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__["default"])(config); + const hasMaxContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNumber(maxContentLength) && maxContentLength > -1; + const hasMaxBodyLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNumber(maxBodyLength) && maxBodyLength > -1; + let _fetch = envFetch || fetch; responseType = responseType ? (responseType + '').toLowerCase() : 'text'; @@ -8293,6 +9498,41 @@ const factory = (env) => { let requestContentLength; try { + // Enforce maxContentLength for data: URLs up-front so we never materialize + // an oversized payload. The HTTP adapter applies the same check (see http.js + // "if (protocol === 'data:')" branch). + if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) { + const estimated = (0,_helpers_estimateDataURLDecodedBytes_js__WEBPACK_IMPORTED_MODULE_9__["default"])(url); + if (estimated > maxContentLength) { + throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE, + config, + request + ); + } + } + + // Enforce maxBodyLength against the outbound request body before dispatch. + // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than + // maxBodyLength limit'). Skip when the body length cannot be determined + // (e.g. a live ReadableStream supplied by the caller). + if (hasMaxBodyLength && method !== 'get' && method !== 'head') { + const outboundLength = await resolveBodyLength(headers, data); + if ( + typeof outboundLength === 'number' && + isFinite(outboundLength) && + outboundLength > maxBodyLength + ) { + throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]( + 'Request body larger than maxBodyLength limit', + _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_REQUEST, + config, + request + ); + } + } + if ( onUploadProgress && supportsRequestStream && @@ -8330,6 +9570,22 @@ const factory = (env) => { // see https://github.com/cloudflare/workerd/issues/902 const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; + // If data is FormData and Content-Type is multipart/form-data without boundary, + // delete it so fetch can set it correctly with the boundary + if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFormData(data)) { + const contentType = headers.getContentType(); + if ( + contentType && + /^multipart\/form-data/i.test(contentType) && + !/boundary=/i.test(contentType) + ) { + headers.delete('content-type'); + } + } + + // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js) + headers.set('User-Agent', 'axios/' + _env_data_js__WEBPACK_IMPORTED_MODULE_10__.VERSION, false); + const resolvedOptions = { ...fetchOptions, signal: composedSignal, @@ -8346,10 +9602,28 @@ const factory = (env) => { ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions)); + // Cheap pre-check: if the server honestly declares a content-length that + // already exceeds the cap, reject before we start streaming. + if (hasMaxContentLength) { + const declaredLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(response.headers.get('content-length')); + if (declaredLength != null && declaredLength > maxContentLength) { + throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE, + config, + request + ); + } + } + const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response'); - if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) { + if ( + supportsResponseStream && + response.body && + (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe)) + ) { const options = {}; ['status', 'statusText', 'headers'].forEach((prop) => { @@ -8366,8 +9640,24 @@ const factory = (env) => { )) || []; + let bytesRead = 0; + const onChunkProgress = (loadedBytes) => { + if (hasMaxContentLength) { + bytesRead = loadedBytes; + if (bytesRead > maxContentLength) { + throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE, + config, + request + ); + } + } + onProgress && onProgress(loadedBytes); + }; + response = new Response( - (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => { + (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => { flush && flush(); unsubscribe && unsubscribe(); }), @@ -8382,6 +9672,33 @@ const factory = (env) => { config ); + // Fallback enforcement for environments without ReadableStream support + // (legacy runtimes). Detect materialized size from typed output; skip + // streams/Response passthrough since the user will read those themselves. + if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) { + let materializedSize; + if (responseData != null) { + if (typeof responseData.byteLength === 'number') { + materializedSize = responseData.byteLength; + } else if (typeof responseData.size === 'number') { + materializedSize = responseData.size; + } else if (typeof responseData === 'string') { + materializedSize = + typeof TextEncoder === 'function' + ? new TextEncoder().encode(responseData).byteLength + : responseData.length; + } + } + if (typeof materializedSize === 'number' && materializedSize > maxContentLength) { + throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_BAD_RESPONSE, + config, + request + ); + } + } + !isStreamResponse && unsubscribe && unsubscribe(); return await new Promise((resolve, reject) => { @@ -8397,6 +9714,17 @@ const factory = (env) => { } catch (err) { unsubscribe && unsubscribe(); + // Safari can surface fetch aborts as a DOMException-like object whose + // branded getters throw. Prefer our composed signal reason before reading + // the caught error, preserving timeout vs cancellation semantics. + if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]) { + const canceledError = composedSignal.reason; + canceledError.config = config; + request && (canceledError.request = request); + err !== canceledError && (canceledError.cause = err); + throw canceledError; + } + if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { throw Object.assign( new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]( @@ -8449,10 +9777,10 @@ const adapter = getFetch(); /***/ }, -/***/ "./node_modules/axios/lib/adapters/xhr.js" -/*!************************************************!*\ - !*** ./node_modules/axios/lib/adapters/xhr.js ***! - \************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/xhr.js" +/*!********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/xhr.js ***! + \********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -8460,16 +9788,16 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/settle.js */ "./node_modules/axios/lib/core/settle.js"); -/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../defaults/transitional.js */ "./node_modules/axios/lib/defaults/transitional.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); -/* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/parseProtocol.js */ "./node_modules/axios/lib/helpers/parseProtocol.js"); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/axios/lib/helpers/progressEventReducer.js"); -/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/axios/lib/helpers/resolveConfig.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/settle.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/settle.js"); +/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../defaults/transitional.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/transitional.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js"); +/* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/parseProtocol.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseProtocol.js"); +/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js"); +/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); +/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/progressEventReducer.js"); +/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/resolveConfig.js"); @@ -8563,7 +9891,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; // will return status as 0 even though it's a successful request if ( request.status === 0 && - !(request.responseURL && request.responseURL.indexOf('file:') === 0) + !(request.responseURL && request.responseURL.startsWith('file:')) ) { return; } @@ -8580,6 +9908,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; } reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]('Request aborted', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED, config, request)); + done(); // Clean up request request = null; @@ -8595,6 +9924,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; // attach the underlying event for consumers who want details err.event = event || null; reject(err); + done(); request = null; }; @@ -8615,6 +9945,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; request ) ); + done(); // Clean up request request = null; @@ -8664,6 +9995,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; } reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_4__["default"](null, config, request) : cancel); request.abort(); + done(); request = null; }; @@ -8677,7 +10009,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_config.url); - if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].protocols.indexOf(protocol) === -1) { + if (protocol && !_platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].protocols.includes(protocol)) { reject( new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]( 'Unsupported protocol ' + protocol + ':', @@ -8696,10 +10028,10 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; /***/ }, -/***/ "./node_modules/axios/lib/axios.js" -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/axios.js ***! - \*****************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/axios.js" +/*!*************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/axios.js ***! + \*************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -8707,23 +10039,23 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/axios/lib/helpers/bind.js"); -/* harmony import */ var _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core/Axios.js */ "./node_modules/axios/lib/core/Axios.js"); -/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js"); -/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaults/index.js */ "./node_modules/axios/lib/defaults/index.js"); -/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js"); -/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); -/* harmony import */ var _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cancel/CancelToken.js */ "./node_modules/axios/lib/cancel/CancelToken.js"); -/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js"); -/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./env/data.js */ "./node_modules/axios/lib/env/data.js"); -/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _helpers_spread_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/spread.js */ "./node_modules/axios/lib/helpers/spread.js"); -/* harmony import */ var _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./helpers/isAxiosError.js */ "./node_modules/axios/lib/helpers/isAxiosError.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js"); -/* harmony import */ var _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/HttpStatusCode.js */ "./node_modules/axios/lib/helpers/HttpStatusCode.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/bind.js"); +/* harmony import */ var _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core/Axios.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/Axios.js"); +/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/mergeConfig.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/mergeConfig.js"); +/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaults/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/index.js"); +/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helpers/formDataToJSON.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/formDataToJSON.js"); +/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cancel/CanceledError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js"); +/* harmony import */ var _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cancel/CancelToken.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CancelToken.js"); +/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cancel/isCancel.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/isCancel.js"); +/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./env/data.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/env/data.js"); +/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/toFormData.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toFormData.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _helpers_spread_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/spread.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/spread.js"); +/* harmony import */ var _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./helpers/isAxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAxiosError.js"); +/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./core/AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); +/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adapters/adapters.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/adapters.js"); +/* harmony import */ var _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/HttpStatusCode.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/HttpStatusCode.js"); @@ -8817,10 +10149,10 @@ axios.default = axios; /***/ }, -/***/ "./node_modules/axios/lib/cancel/CancelToken.js" -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! - \******************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CancelToken.js" +/*!**************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CancelToken.js ***! + \**************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -8828,7 +10160,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); +/* harmony import */ var _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanceledError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js"); @@ -8968,10 +10300,10 @@ class CancelToken { /***/ }, -/***/ "./node_modules/axios/lib/cancel/CanceledError.js" -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/cancel/CanceledError.js ***! - \********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js" +/*!****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js ***! + \****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -8979,7 +10311,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); @@ -9006,10 +10338,10 @@ class CanceledError extends _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["de /***/ }, -/***/ "./node_modules/axios/lib/cancel/isCancel.js" -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/cancel/isCancel.js ***! - \***************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/isCancel.js" +/*!***********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/isCancel.js ***! + \***********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -9026,10 +10358,10 @@ function isCancel(value) { /***/ }, -/***/ "./node_modules/axios/lib/core/Axios.js" -/*!**********************************************!*\ - !*** ./node_modules/axios/lib/core/Axios.js ***! - \**********************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/Axios.js" +/*!******************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/Axios.js ***! + \******************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -9037,15 +10369,15 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js"); -/* harmony import */ var _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./InterceptorManager.js */ "./node_modules/axios/lib/core/InterceptorManager.js"); -/* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dispatchRequest.js */ "./node_modules/axios/lib/core/dispatchRequest.js"); -/* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js"); -/* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js"); -/* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/validator.js */ "./node_modules/axios/lib/helpers/validator.js"); -/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../defaults/transitional.js */ "./node_modules/axios/lib/defaults/transitional.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/buildURL.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/buildURL.js"); +/* harmony import */ var _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./InterceptorManager.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/InterceptorManager.js"); +/* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dispatchRequest.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/dispatchRequest.js"); +/* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mergeConfig.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/mergeConfig.js"); +/* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./buildFullPath.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/buildFullPath.js"); +/* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/validator.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/validator.js"); +/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); +/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../defaults/transitional.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/transitional.js"); @@ -9196,7 +10528,7 @@ class Axios { let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].merge(headers.common, headers[config.method]); headers && - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => { + _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => { delete headers[method]; }); @@ -9299,7 +10631,7 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'hea }; }); -_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { +_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) { function generateHTTPMethod(isForm) { return function httpMethod(url, data, config) { return this.request( @@ -9319,7 +10651,11 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch Axios.prototype[method] = generateHTTPMethod(); - Axios.prototype[method + 'Form'] = generateHTTPMethod(true); + // QUERY is a safe/idempotent read method; multipart form bodies don't fit + // its semantics, so no queryForm shorthand is generated. + if (method !== 'query') { + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); + } }); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Axios); @@ -9327,10 +10663,10 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['post', 'put', 'patch /***/ }, -/***/ "./node_modules/axios/lib/core/AxiosError.js" -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/core/AxiosError.js ***! - \***************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js" +/*!***********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js ***! + \***********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -9338,11 +10674,82 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); + +const REDACTED = '[REDACTED ****]'; + +function hasOwnOrPrototypeToJSON(source) { + if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(source, 'toJSON')) { + return true; + } + + let prototype = Object.getPrototypeOf(source); + + while (prototype && prototype !== Object.prototype) { + if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(prototype, 'toJSON')) { + return true; + } + + prototype = Object.getPrototypeOf(prototype); + } + + return false; +} + +// Build a plain-object snapshot of `config` and replace the value of any key +// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays +// and AxiosHeaders, and short-circuits on circular references. +function redactConfig(config, redactKeys) { + const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase())); + const seen = []; + + const visit = (source) => { + if (source === null || typeof source !== 'object') return source; + if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBuffer(source)) return source; + if (seen.indexOf(source) !== -1) return undefined; + + if (source instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"]) { + source = source.toJSON(); + } + + seen.push(source); + + let result; + if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(source)) { + result = []; + source.forEach((v, i) => { + const reducedValue = visit(v); + if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(reducedValue)) { + result[i] = reducedValue; + } + }); + } else { + if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) { + seen.pop(); + return source; + } + + result = Object.create(null); + for (const [key, value] of Object.entries(source)) { + const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value); + if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(reducedValue)) { + result[key] = reducedValue; + } + } + } + + seen.pop(); + return result; + }; + + return visit(config); +} + class AxiosError extends Error { static from(error, code, config, request, response, customProps) { const axiosError = new AxiosError(error.message, code || error.code, config, request, response); @@ -9358,42 +10765,56 @@ class AxiosError extends Error { return axiosError; } - /** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [config] The config. - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * - * @returns {Error} The created error. - */ - constructor(message, code, config, request, response) { - super(message); - - // Make message enumerable to maintain backward compatibility - // The native Error constructor sets message as non-enumerable, - // but axios < v1.13.3 had it as enumerable - Object.defineProperty(this, 'message', { - value: message, - enumerable: true, - writable: true, - configurable: true - }); - - this.name = 'AxiosError'; - this.isAxiosError = true; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - if (response) { - this.response = response; - this.status = response.status; - } + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ + constructor(message, code, config, request, response) { + super(message); + + // Make message enumerable to maintain backward compatibility + // The native Error constructor sets message as non-enumerable, + // but axios < v1.13.3 had it as enumerable + Object.defineProperty(this, 'message', { + // Null-proto descriptor so a polluted Object.prototype.get cannot turn + // this data descriptor into an accessor descriptor on the way in. + __proto__: null, + value: message, + enumerable: true, + writable: true, + configurable: true, + }); + + this.name = 'AxiosError'; + this.isAxiosError = true; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + if (response) { + this.response = response; + this.status = response.status; } + } toJSON() { + // Opt-in redaction: when the request config carries a `redact` array, the + // value of any matching key (case-insensitive, at any depth) is replaced + // with REDACTED in the serialized snapshot. Undefined or empty leaves the + // existing serialization behavior unchanged. + const config = this.config; + const redactKeys = config && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config, 'redact') ? config.redact : undefined; + const serializedConfig = + _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(redactKeys) && redactKeys.length > 0 + ? redactConfig(config, redactKeys) + : _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toJSONObject(config); + return { // Standard message: this.message, @@ -9407,7 +10828,7 @@ class AxiosError extends Error { columnNumber: this.columnNumber, stack: this.stack, // Axios - config: _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toJSONObject(this.config), + config: serializedConfig, code: this.code, status: this.status, }; @@ -9419,6 +10840,7 @@ AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; AxiosError.ECONNABORTED = 'ECONNABORTED'; AxiosError.ETIMEDOUT = 'ETIMEDOUT'; +AxiosError.ECONNREFUSED = 'ECONNREFUSED'; AxiosError.ERR_NETWORK = 'ERR_NETWORK'; AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; @@ -9427,16 +10849,17 @@ AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; AxiosError.ERR_CANCELED = 'ERR_CANCELED'; AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; +AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosError); /***/ }, -/***/ "./node_modules/axios/lib/core/AxiosHeaders.js" -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/core/AxiosHeaders.js ***! - \*****************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js" +/*!*************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js ***! + \*************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -9444,8 +10867,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/parseHeaders.js */ "./node_modules/axios/lib/helpers/parseHeaders.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/parseHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseHeaders.js"); @@ -9453,41 +10876,41 @@ __webpack_require__.r(__webpack_exports__); const $internals = Symbol('internals'); -const isValidHeaderValue = (value) => !/[\r\n]/.test(value); - -function assertValidHeaderValue(value, header) { - if (value === false || value == null) { - return; - } +const INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g; - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value)) { - value.forEach((v) => assertValidHeaderValue(v, header)); - return; - } +function trimSPorHTAB(str) { + let start = 0; + let end = str.length; - if (!isValidHeaderValue(String(value))) { - throw new Error(`Invalid character in header content ["${header}"]`); - } -} + while (start < end) { + const code = str.charCodeAt(start); -function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); -} + if (code !== 0x09 && code !== 0x20) { + break; + } -function stripTrailingCRLF(str) { - let end = str.length; + start += 1; + } - while (end > 0) { - const charCode = str.charCodeAt(end - 1); + while (end > start) { + const code = str.charCodeAt(end - 1); - if (charCode !== 10 && charCode !== 13) { + if (code !== 0x09 && code !== 0x20) { break; } end -= 1; } - return end === str.length ? str : str.slice(0, end); + return start === 0 && end === str.length ? str : str.slice(start, end); +} + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function sanitizeHeaderValue(str) { + return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, '')); } function normalizeValue(value) { @@ -9495,7 +10918,7 @@ function normalizeValue(value) { return value; } - return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : stripTrailingCRLF(String(value)); + return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); } function parseTokens(str) { @@ -9546,6 +10969,9 @@ function buildAccessors(obj, header) { ['get', 'set', 'has'].forEach((methodName) => { Object.defineProperty(obj, methodName + accessorName, { + // Null-proto descriptor so a polluted Object.prototype.get cannot turn + // this data descriptor into an accessor descriptor on the way in. + __proto__: null, value: function (arg1, arg2, arg3) { return this[methodName].call(this, header, arg1, arg2, arg3); }, @@ -9577,7 +11003,6 @@ class AxiosHeaders { _rewrite === true || (_rewrite === undefined && self[key] !== false) ) { - assertValidHeaderValue(_value, _header); self[key || _header] = normalizeValue(_value); } } @@ -9828,10 +11253,10 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].freezeMethods(AxiosHeaders); /***/ }, -/***/ "./node_modules/axios/lib/core/InterceptorManager.js" -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! - \***********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/InterceptorManager.js" +/*!*******************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/InterceptorManager.js ***! + \*******************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -9839,7 +11264,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); @@ -9916,10 +11341,10 @@ class InterceptorManager { /***/ }, -/***/ "./node_modules/axios/lib/core/buildFullPath.js" -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/buildFullPath.js ***! - \******************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/buildFullPath.js" +/*!**************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/buildFullPath.js ***! + \**************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -9927,8 +11352,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ buildFullPath) /* harmony export */ }); -/* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/isAbsoluteURL.js */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js"); -/* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/combineURLs.js */ "./node_modules/axios/lib/helpers/combineURLs.js"); +/* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/isAbsoluteURL.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAbsoluteURL.js"); +/* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/combineURLs.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/combineURLs.js"); @@ -9946,7 +11371,7 @@ __webpack_require__.r(__webpack_exports__); */ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { let isRelativeUrl = !(0,_helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__["default"])(requestedURL); - if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) { + if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { return (0,_helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURL, requestedURL); } return requestedURL; @@ -9955,10 +11380,10 @@ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { /***/ }, -/***/ "./node_modules/axios/lib/core/dispatchRequest.js" -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! - \********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/dispatchRequest.js" +/*!****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/dispatchRequest.js ***! + \****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -9966,12 +11391,12 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ dispatchRequest) /* harmony export */ }); -/* harmony import */ var _transformData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transformData.js */ "./node_modules/axios/lib/core/transformData.js"); -/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js"); -/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js"); -/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js"); +/* harmony import */ var _transformData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transformData.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/transformData.js"); +/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cancel/isCancel.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/isCancel.js"); +/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/index.js"); +/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js"); +/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); +/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../adapters/adapters.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/adapters.js"); @@ -10023,8 +11448,15 @@ function dispatchRequest(config) { function onAdapterResolution(response) { throwIfCancellationRequested(config); - // Transform response data - response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(config, config.transformResponse, response); + // Expose the current response on config so that transformResponse can + // attach it to any AxiosError it throws (e.g. on JSON parse failure). + // We clean it up afterwards to avoid polluting the config object. + config.response = response; + try { + response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(config, config.transformResponse, response); + } finally { + delete config.response; + } response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(response.headers); @@ -10036,11 +11468,16 @@ function dispatchRequest(config) { // Transform response data if (reason && reason.response) { - reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call( - config, - config.transformResponse, - reason.response - ); + config.response = reason.response; + try { + reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call( + config, + config.transformResponse, + reason.response + ); + } finally { + delete config.response; + } reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(reason.response.headers); } } @@ -10053,10 +11490,10 @@ function dispatchRequest(config) { /***/ }, -/***/ "./node_modules/axios/lib/core/mergeConfig.js" -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/core/mergeConfig.js ***! - \****************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/mergeConfig.js" +/*!************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/mergeConfig.js ***! + \************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10064,8 +11501,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ mergeConfig) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); @@ -10085,7 +11522,21 @@ const headersToObject = (thing) => (thing instanceof _AxiosHeaders_js__WEBPACK_I function mergeConfig(config1, config2) { // eslint-disable-next-line no-param-reassign config2 = config2 || {}; - const config = {}; + + // Use a null-prototype object so that downstream reads such as `config.auth` + // or `config.baseURL` cannot inherit polluted values from Object.prototype. + // `hasOwnProperty` is restored as a non-enumerable own slot to preserve + // ergonomics for user code that relies on it. + const config = Object.create(null); + Object.defineProperty(config, 'hasOwnProperty', { + // Null-proto descriptor so a polluted Object.prototype.get cannot turn + // this data descriptor into an accessor descriptor on the way in. + __proto__: null, + value: Object.prototype.hasOwnProperty, + enumerable: false, + writable: true, + configurable: true, + }); function getMergedValue(target, source, prop, caseless) { if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(source)) { @@ -10124,9 +11575,9 @@ function mergeConfig(config1, config2) { // eslint-disable-next-line consistent-return function mergeDirectKeys(a, b, prop) { - if (prop in config2) { + if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config2, prop)) { return getMergedValue(a, b); - } else if (prop in config1) { + } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config1, prop)) { return getMergedValue(undefined, a); } } @@ -10158,6 +11609,7 @@ function mergeConfig(config1, config2) { httpsAgent: defaultToConfig2, cancelToken: defaultToConfig2, socketPath: defaultToConfig2, + allowedSocketPaths: defaultToConfig2, responseEncoding: defaultToConfig2, validateStatus: mergeDirectKeys, headers: (a, b, prop) => @@ -10167,7 +11619,9 @@ function mergeConfig(config1, config2) { _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) { if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; const merge = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; - const configValue = merge(config1[prop], config2[prop], prop); + const a = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config1, prop) ? config1[prop] : undefined; + const b = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(config2, prop) ? config2[prop] : undefined; + const configValue = merge(a, b, prop); (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); }); @@ -10177,10 +11631,10 @@ function mergeConfig(config1, config2) { /***/ }, -/***/ "./node_modules/axios/lib/core/settle.js" -/*!***********************************************!*\ - !*** ./node_modules/axios/lib/core/settle.js ***! - \***********************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/settle.js" +/*!*******************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/settle.js ***! + \*******************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10188,7 +11642,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ settle) /* harmony export */ }); -/* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); @@ -10207,27 +11661,23 @@ function settle(resolve, reject, response) { if (!response.status || !validateStatus || validateStatus(response.status)) { resolve(response); } else { - reject( - new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"]( - 'Request failed with status code ' + response.status, - [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE][ - Math.floor(response.status / 100) - 4 - ], - response.config, - response.request, - response - ) - ); + reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"]( + 'Request failed with status code ' + response.status, + response.status >= 400 && response.status < 500 ? _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST : _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE, + response.config, + response.request, + response + )); } } /***/ }, -/***/ "./node_modules/axios/lib/core/transformData.js" -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/transformData.js ***! - \******************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/transformData.js" +/*!**************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/transformData.js ***! + \**************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10235,9 +11685,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ transformData) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/index.js"); +/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); @@ -10270,10 +11720,10 @@ function transformData(fns, response) { /***/ }, -/***/ "./node_modules/axios/lib/defaults/index.js" -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/defaults/index.js ***! - \**************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/index.js" +/*!**********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/index.js ***! + \**********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10281,13 +11731,14 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _transitional_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitional.js */ "./node_modules/axios/lib/defaults/transitional.js"); -/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js"); -/* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/toURLEncodedForm.js */ "./node_modules/axios/lib/helpers/toURLEncodedForm.js"); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); -/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _transitional_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitional.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/transitional.js"); +/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/toFormData.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toFormData.js"); +/* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/toURLEncodedForm.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toURLEncodedForm.js"); +/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js"); +/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/formDataToJSON.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/formDataToJSON.js"); + @@ -10297,6 +11748,7 @@ __webpack_require__.r(__webpack_exports__); +const own = (obj, key) => (obj != null && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(obj, key) ? obj[key] : undefined); /** * It takes a string, tries to parse it, and if it fails, it returns the stringified version @@ -10365,20 +11817,22 @@ const defaults = { let isFileList; if (isObjectPayload) { + const formSerializer = own(this, 'formSerializer'); if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { - return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__["default"])(data, this.formSerializer).toString(); + return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__["default"])(data, formSerializer).toString(); } if ( (isFileList = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(data)) || contentType.indexOf('multipart/form-data') > -1 ) { - const _FormData = this.env && this.env.FormData; + const env = own(this, 'env'); + const _FormData = env && env.FormData; return (0,_helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_3__["default"])( isFileList ? { 'files[]': data } : data, _FormData && new _FormData(), - this.formSerializer + formSerializer ); } } @@ -10394,9 +11848,10 @@ const defaults = { transformResponse: [ function transformResponse(data) { - const transitional = this.transitional || defaults.transitional; + const transitional = own(this, 'transitional') || defaults.transitional; const forcedJSONParsing = transitional && transitional.forcedJSONParsing; - const JSONRequested = this.responseType === 'json'; + const responseType = own(this, 'responseType'); + const JSONRequested = responseType === 'json'; if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isResponse(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isReadableStream(data)) { return data; @@ -10405,17 +11860,17 @@ const defaults = { if ( data && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(data) && - ((forcedJSONParsing && !this.responseType) || JSONRequested) + ((forcedJSONParsing && !responseType) || JSONRequested) ) { const silentJSONParsing = transitional && transitional.silentJSONParsing; const strictJSONParsing = !silentJSONParsing && JSONRequested; try { - return JSON.parse(data, this.parseReviver); + return JSON.parse(data, own(this, 'parseReviver')); } catch (e) { if (strictJSONParsing) { if (e.name === 'SyntaxError') { - throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_RESPONSE, this, null, this.response); + throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_RESPONSE, this, null, own(this, 'response')); } throw e; } @@ -10455,7 +11910,7 @@ const defaults = { }, }; -_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { +_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => { defaults.headers[method] = {}; }); @@ -10464,10 +11919,10 @@ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'hea /***/ }, -/***/ "./node_modules/axios/lib/defaults/transitional.js" -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/defaults/transitional.js ***! - \*********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/transitional.js" +/*!*****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/transitional.js ***! + \*****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10487,10 +11942,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/env/data.js" -/*!********************************************!*\ - !*** ./node_modules/axios/lib/env/data.js ***! - \********************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/env/data.js" +/*!****************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/env/data.js ***! + \****************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10498,14 +11953,14 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ VERSION: () => (/* binding */ VERSION) /* harmony export */ }); -const VERSION = "1.15.0"; +const VERSION = "1.16.0"; /***/ }, -/***/ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js" -/*!****************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/AxiosURLSearchParams.js ***! - \****************************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js" +/*!************************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js ***! + \************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10513,7 +11968,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js"); +/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toFormData.js"); @@ -10534,9 +11989,8 @@ function encode(str) { ')': '%29', '~': '%7E', '%20': '+', - '%00': '\x00', }; - return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { + return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { return charMap[match]; }); } @@ -10580,10 +12034,10 @@ prototype.toString = function toString(encoder) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/HttpStatusCode.js" -/*!**********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/HttpStatusCode.js ***! - \**********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/HttpStatusCode.js" +/*!******************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/HttpStatusCode.js ***! + \******************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10672,10 +12126,10 @@ Object.entries(HttpStatusCode).forEach(([key, value]) => { /***/ }, -/***/ "./node_modules/axios/lib/helpers/bind.js" -/*!************************************************!*\ - !*** ./node_modules/axios/lib/helpers/bind.js ***! - \************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/bind.js" +/*!********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/bind.js ***! + \********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10701,19 +12155,20 @@ function bind(fn, thisArg) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/buildURL.js" -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/buildURL.js ***! - \****************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/buildURL.js" +/*!************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/buildURL.js ***! + \************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ buildURL) +/* harmony export */ "default": () => (/* binding */ buildURL), +/* harmony export */ encode: () => (/* binding */ encode) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/AxiosURLSearchParams.js */ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/AxiosURLSearchParams.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js"); @@ -10784,10 +12239,10 @@ function buildURL(url, params, options) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/combineURLs.js" -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! - \*******************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/combineURLs.js" +/*!***************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/combineURLs.js ***! + \***************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10814,10 +12269,10 @@ function combineURLs(baseURL, relativeURL) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/composeSignals.js" -/*!**********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/composeSignals.js ***! - \**********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/composeSignals.js" +/*!******************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/composeSignals.js ***! + \******************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10825,9 +12280,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); +/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); @@ -10888,10 +12343,10 @@ const composeSignals = (signals, timeout) => { /***/ }, -/***/ "./node_modules/axios/lib/helpers/cookies.js" -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/helpers/cookies.js ***! - \***************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/cookies.js" +/*!***********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/cookies.js ***! + \***********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10899,8 +12354,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js"); @@ -10933,8 +12388,20 @@ __webpack_require__.r(__webpack_exports__); read(name) { if (typeof document === 'undefined') return null; - const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)')); - return match ? decodeURIComponent(match[1]) : null; + // Match name=value by splitting on the semicolon separator instead of building a + // RegExp from `name` — interpolating an unescaped string into a RegExp would let + // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or + // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or + // "; ", so ignore optional whitespace before each cookie name. + const cookies = document.cookie.split(';'); + for (let i = 0; i < cookies.length; i++) { + const cookie = cookies[i].replace(/^\s+/, ''); + const eq = cookie.indexOf('='); + if (eq !== -1 && cookie.slice(0, eq) === name) { + return decodeURIComponent(cookie.slice(eq + 1)); + } + } + return null; }, remove(name) { @@ -10953,10 +12420,125 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/helpers/formDataToJSON.js" -/*!**********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/formDataToJSON.js ***! - \**********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js" +/*!*******************************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js ***! + \*******************************************************************************************************/ +(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ estimateDataURLDecodedBytes) +/* harmony export */ }); +/** + * Estimate decoded byte length of a data:// URL *without* allocating large buffers. + * - For base64: compute exact decoded size using length and padding; + * handle %XX at the character-count level (no string allocation). + * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound. + * + * @param {string} url + * @returns {number} + */ +function estimateDataURLDecodedBytes(url) { + if (!url || typeof url !== 'string') return 0; + if (!url.startsWith('data:')) return 0; + + const comma = url.indexOf(','); + if (comma < 0) return 0; + + const meta = url.slice(5, comma); + const body = url.slice(comma + 1); + const isBase64 = /;base64/i.test(meta); + + if (isBase64) { + let effectiveLen = body.length; + const len = body.length; // cache length + + for (let i = 0; i < len; i++) { + if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { + const a = body.charCodeAt(i + 1); + const b = body.charCodeAt(i + 2); + const isHex = + ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) && + ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102)); + + if (isHex) { + effectiveLen -= 2; + i += 2; + } + } + } + + let pad = 0; + let idx = len - 1; + + const tailIsPct3D = (j) => + j >= 2 && + body.charCodeAt(j - 2) === 37 && // '%' + body.charCodeAt(j - 1) === 51 && // '3' + (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd' + + if (idx >= 0) { + if (body.charCodeAt(idx) === 61 /* '=' */) { + pad++; + idx--; + } else if (tailIsPct3D(idx)) { + pad++; + idx -= 3; + } + } + + if (pad === 1 && idx >= 0) { + if (body.charCodeAt(idx) === 61 /* '=' */) { + pad++; + } else if (tailIsPct3D(idx)) { + pad++; + } + } + + const groups = Math.floor(effectiveLen / 4); + const bytes = groups * 3 - (pad || 0); + return bytes > 0 ? bytes : 0; + } + + if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') { + return Buffer.byteLength(body, 'utf8'); + } + + // Compute UTF-8 byte length directly from UTF-16 code units without allocating + // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies). + // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit + // but 3 UTF-8 bytes). + let bytes = 0; + for (let i = 0, len = body.length; i < len; i++) { + const c = body.charCodeAt(i); + if (c < 0x80) { + bytes += 1; + } else if (c < 0x800) { + bytes += 2; + } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) { + const next = body.charCodeAt(i + 1); + if (next >= 0xdc00 && next <= 0xdfff) { + bytes += 4; + i++; + } else { + bytes += 3; + } + } else { + bytes += 3; + } + } + return bytes; +} + + +/***/ }, + +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/formDataToJSON.js" +/*!******************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/formDataToJSON.js ***! + \******************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10964,7 +12546,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); @@ -11025,7 +12607,9 @@ function formDataToJSON(formData) { if (isLast) { if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(target, name)) { - target[name] = [target[name], value]; + target[name] = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target[name]) + ? target[name].concat(value) + : [target[name], value]; } else { target[name] = value; } @@ -11064,10 +12648,10 @@ function formDataToJSON(formData) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js" -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! - \*********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAbsoluteURL.js" +/*!*****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAbsoluteURL.js ***! + \*****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11098,10 +12682,10 @@ function isAbsoluteURL(url) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/isAxiosError.js" -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***! - \********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAxiosError.js" +/*!****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAxiosError.js ***! + \****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11109,7 +12693,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ isAxiosError) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); @@ -11128,10 +12712,10 @@ function isAxiosError(payload) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js" -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! - \***********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isURLSameOrigin.js" +/*!*******************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isURLSameOrigin.js ***! + \*******************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11139,7 +12723,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); +/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js"); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasStandardBrowserEnv @@ -11160,10 +12744,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/helpers/null.js" -/*!************************************************!*\ - !*** ./node_modules/axios/lib/helpers/null.js ***! - \************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/null.js" +/*!********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/null.js ***! + \********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11177,10 +12761,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/helpers/parseHeaders.js" -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! - \********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseHeaders.js" +/*!****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseHeaders.js ***! + \****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11188,7 +12772,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); @@ -11263,10 +12847,10 @@ const ignoreDuplicateOf = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toOb /***/ }, -/***/ "./node_modules/axios/lib/helpers/parseProtocol.js" -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/parseProtocol.js ***! - \*********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseProtocol.js" +/*!*****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseProtocol.js ***! + \*****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11277,17 +12861,17 @@ __webpack_require__.r(__webpack_exports__); function parseProtocol(url) { - const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url); return (match && match[1]) || ''; } /***/ }, -/***/ "./node_modules/axios/lib/helpers/progressEventReducer.js" -/*!****************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/progressEventReducer.js ***! - \****************************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/progressEventReducer.js" +/*!************************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/progressEventReducer.js ***! + \************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11297,9 +12881,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ progressEventDecorator: () => (/* binding */ progressEventDecorator), /* harmony export */ progressEventReducer: () => (/* binding */ progressEventReducer) /* harmony export */ }); -/* harmony import */ var _speedometer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./speedometer.js */ "./node_modules/axios/lib/helpers/speedometer.js"); -/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./throttle.js */ "./node_modules/axios/lib/helpers/throttle.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); +/* harmony import */ var _speedometer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./speedometer.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/speedometer.js"); +/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./throttle.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/throttle.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); @@ -11309,13 +12893,13 @@ const progressEventReducer = (listener, isDownloadStream, freq = 3) => { const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(50, 250); return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__["default"])((e) => { - const loaded = e.loaded; + const rawLoaded = e.loaded; const total = e.lengthComputable ? e.total : undefined; - const progressBytes = loaded - bytesNotified; + const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; + const progressBytes = Math.max(0, loaded - bytesNotified); const rate = _speedometer(progressBytes); - const inRange = loaded <= total; - bytesNotified = loaded; + bytesNotified = Math.max(bytesNotified, loaded); const data = { loaded, @@ -11323,7 +12907,7 @@ const progressEventReducer = (listener, isDownloadStream, freq = 3) => { progress: total ? loaded / total : undefined, bytes: progressBytes, rate: rate ? rate : undefined, - estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + estimated: rate && total ? (total - loaded) / rate : undefined, event: e, lengthComputable: total != null, [isDownloadStream ? 'download' : 'upload']: true, @@ -11355,10 +12939,10 @@ const asyncDecorator = /***/ }, -/***/ "./node_modules/axios/lib/helpers/resolveConfig.js" -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/resolveConfig.js ***! - \*********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/resolveConfig.js" +/*!*****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/resolveConfig.js ***! + \*****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11366,14 +12950,15 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isURLSameOrigin.js */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js"); -/* harmony import */ var _cookies_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cookies.js */ "./node_modules/axios/lib/helpers/cookies.js"); -/* harmony import */ var _core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js"); -/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _buildURL_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js"); +/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isURLSameOrigin.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isURLSameOrigin.js"); +/* harmony import */ var _cookies_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cookies.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/cookies.js"); +/* harmony import */ var _core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/buildFullPath.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/buildFullPath.js"); +/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/mergeConfig.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/mergeConfig.js"); +/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js"); +/* harmony import */ var _buildURL_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./buildURL.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/buildURL.js"); + @@ -11382,16 +12967,55 @@ __webpack_require__.r(__webpack_exports__); +const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; + +function setFormDataHeaders(headers, formHeaders, policy) { + if (policy !== 'content-only') { + headers.set(formHeaders); + return; + } + + Object.entries(formHeaders).forEach(([key, val]) => { + if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { + headers.set(key, val); + } + }); +} + +/** + * Encode a UTF-8 string to a Latin-1 byte string for use with btoa(). + * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern. + * + * @param {string} str The string to encode + * + * @returns {string} UTF-8 bytes as a Latin-1 string + */ +const encodeUTF8 = (str) => + encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) => + String.fromCharCode(parseInt(hex, 16)) + ); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((config) => { const newConfig = (0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_5__["default"])({}, config); - let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig; + // Read only own properties to prevent prototype pollution gadgets + // (e.g. Object.prototype.baseURL = 'https://evil.com'). + const own = (key) => (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].hasOwnProp(newConfig, key) ? newConfig[key] : undefined); + + const data = own('data'); + let withXSRFToken = own('withXSRFToken'); + const xsrfHeaderName = own('xsrfHeaderName'); + const xsrfCookieName = own('xsrfCookieName'); + let headers = own('headers'); + const auth = own('auth'); + const baseURL = own('baseURL'); + const allowAbsoluteUrls = own('allowAbsoluteUrls'); + const url = own('url'); newConfig.headers = headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_6__["default"].from(headers); newConfig.url = (0,_buildURL_js__WEBPACK_IMPORTED_MODULE_7__["default"])( - (0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__["default"])(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), + (0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__["default"])(baseURL, url, allowAbsoluteUrls), config.params, config.paramsSerializer ); @@ -11401,11 +13025,7 @@ __webpack_require__.r(__webpack_exports__); headers.set( 'Authorization', 'Basic ' + - btoa( - (auth.username || '') + - ':' + - (auth.password ? unescape(encodeURIComponent(auth.password)) : '') - ) + btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : '')) ); } @@ -11414,14 +13034,7 @@ __webpack_require__.r(__webpack_exports__); headers.setContentType(undefined); // browser handles it } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(data.getHeaders)) { // Node.js FormData (like form-data package) - const formHeaders = data.getHeaders(); - // Only set safe headers to avoid overwriting security headers - const allowedHeaders = ['content-type', 'content-length']; - Object.entries(formHeaders).forEach(([key, val]) => { - if (allowedHeaders.includes(key.toLowerCase())) { - headers.set(key, val); - } - }); + setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); } } @@ -11430,10 +13043,17 @@ __webpack_require__.r(__webpack_exports__); // Specifically not if we're in a web worker, or react-native. if (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasStandardBrowserEnv) { - withXSRFToken && _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig)); + if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(withXSRFToken)) { + withXSRFToken = withXSRFToken(newConfig); + } - if (withXSRFToken || (withXSRFToken !== false && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__["default"])(newConfig.url))) { - // Add xsrf header + // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) + // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking + // the XSRF token cross-origin. + const shouldSendXSRF = + withXSRFToken === true || (withXSRFToken == null && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__["default"])(newConfig.url)); + + if (shouldSendXSRF) { const xsrfValue = xsrfHeaderName && xsrfCookieName && _cookies_js__WEBPACK_IMPORTED_MODULE_3__["default"].read(xsrfCookieName); if (xsrfValue) { @@ -11449,10 +13069,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/helpers/speedometer.js" -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/speedometer.js ***! - \*******************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/speedometer.js" +/*!***************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/speedometer.js ***! + \***************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11519,10 +13139,10 @@ function speedometer(samplesCount, min) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/spread.js" -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/helpers/spread.js ***! - \**************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/spread.js" +/*!**********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/spread.js ***! + \**********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11562,10 +13182,10 @@ function spread(callback) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/throttle.js" -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/throttle.js ***! - \****************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/throttle.js" +/*!************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/throttle.js ***! + \************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11621,10 +13241,10 @@ function throttle(fn, freq) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/toFormData.js" -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/toFormData.js ***! - \******************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toFormData.js" +/*!**************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toFormData.js ***! + \**************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11632,9 +13252,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform/node/classes/FormData.js */ "./node_modules/axios/lib/helpers/null.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform/node/classes/FormData.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/null.js"); @@ -11752,6 +13372,7 @@ function toFormData(obj, formData, options) { const dots = options.dots; const indexes = options.indexes; const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob); + const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isSpecCompliantForm(formData); if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(visitor)) { @@ -11844,9 +13465,16 @@ function toFormData(obj, formData, options) { isVisitable, }); - function build(value, path) { + function build(value, path, depth = 0) { if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(value)) return; + if (depth > maxDepth) { + throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]( + 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, + _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_FORM_DATA_DEPTH_EXCEEDED + ); + } + if (stack.indexOf(value) !== -1) { throw Error('Circular reference detected in ' + path.join('.')); } @@ -11859,7 +13487,7 @@ function toFormData(obj, formData, options) { visitor.call(formData, el, _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(key) ? key.trim() : key, path, exposedHelpers); if (result === true) { - build(el, path ? path.concat(key) : [key]); + build(el, path ? path.concat(key) : [key], depth + 1); } }); @@ -11880,10 +13508,10 @@ function toFormData(obj, formData, options) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/toURLEncodedForm.js" -/*!************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/toURLEncodedForm.js ***! - \************************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toURLEncodedForm.js" +/*!********************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toURLEncodedForm.js ***! + \********************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11891,9 +13519,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ toURLEncodedForm) /* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js"); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); +/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js"); +/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toFormData.js"); +/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js"); @@ -11917,10 +13545,10 @@ function toURLEncodedForm(data, options) { /***/ }, -/***/ "./node_modules/axios/lib/helpers/trackStream.js" -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/trackStream.js ***! - \*******************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/trackStream.js" +/*!***************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/trackStream.js ***! + \***************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12023,10 +13651,10 @@ const trackStream = (stream, chunkSize, onProgress, onFinish) => { /***/ }, -/***/ "./node_modules/axios/lib/helpers/validator.js" -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/validator.js ***! - \*****************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/validator.js" +/*!*************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/validator.js ***! + \*************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12034,8 +13662,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../env/data.js */ "./node_modules/axios/lib/env/data.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); +/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../env/data.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/env/data.js"); +/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js"); @@ -12124,7 +13752,9 @@ function assertOptions(options, schema, allowUnknown) { let i = keys.length; while (i-- > 0) { const opt = keys[i]; - const validator = schema[opt]; + // Use hasOwnProperty so a polluted Object.prototype. cannot supply + // a non-function validator and cause a TypeError. + const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined; if (validator) { const value = options[opt]; const result = value === undefined || validator(value, opt, options); @@ -12150,10 +13780,10 @@ function assertOptions(options, schema, allowUnknown) { /***/ }, -/***/ "./node_modules/axios/lib/platform/browser/classes/Blob.js" -/*!*****************************************************************!*\ - !*** ./node_modules/axios/lib/platform/browser/classes/Blob.js ***! - \*****************************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/Blob.js" +/*!*************************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/Blob.js ***! + \*************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12168,10 +13798,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/platform/browser/classes/FormData.js" -/*!*********************************************************************!*\ - !*** ./node_modules/axios/lib/platform/browser/classes/FormData.js ***! - \*********************************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/FormData.js" +/*!*****************************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/FormData.js ***! + \*****************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12186,10 +13816,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js" -/*!****************************************************************************!*\ - !*** ./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ***! - \****************************************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js" +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ***! + \************************************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12197,7 +13827,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/AxiosURLSearchParams.js */ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js"); +/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/AxiosURLSearchParams.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js"); @@ -12206,10 +13836,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/platform/browser/index.js" -/*!**********************************************************!*\ - !*** ./node_modules/axios/lib/platform/browser/index.js ***! - \**********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/index.js" +/*!******************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/index.js ***! + \******************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12217,9 +13847,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes/URLSearchParams.js */ "./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js"); -/* harmony import */ var _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/FormData.js */ "./node_modules/axios/lib/platform/browser/classes/FormData.js"); -/* harmony import */ var _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/Blob.js */ "./node_modules/axios/lib/platform/browser/classes/Blob.js"); +/* harmony import */ var _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes/URLSearchParams.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js"); +/* harmony import */ var _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/FormData.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/FormData.js"); +/* harmony import */ var _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/Blob.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/Blob.js"); @@ -12237,10 +13867,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/platform/common/utils.js" -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/platform/common/utils.js ***! - \*********************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/common/utils.js" +/*!*****************************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/common/utils.js ***! + \*****************************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12302,10 +13932,10 @@ const origin = (hasBrowserEnv && window.location.href) || 'http://localhost'; /***/ }, -/***/ "./node_modules/axios/lib/platform/index.js" -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/platform/index.js ***! - \**************************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js" +/*!**********************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js ***! + \**********************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12313,8 +13943,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _node_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node/index.js */ "./node_modules/axios/lib/platform/browser/index.js"); -/* harmony import */ var _common_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/utils.js */ "./node_modules/axios/lib/platform/common/utils.js"); +/* harmony import */ var _node_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node/index.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/index.js"); +/* harmony import */ var _common_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/utils.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/common/utils.js"); @@ -12326,10 +13956,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }, -/***/ "./node_modules/axios/lib/utils.js" -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/utils.js ***! - \*****************************************/ +/***/ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js" +/*!*************************************************************************!*\ + !*** ./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js ***! + \*************************************************************************/ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12337,7 +13967,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/axios/lib/helpers/bind.js"); +/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/bind.js"); @@ -12532,21 +14162,21 @@ const isFile = kindOfTest('File'); * also have a `name` and `type` attribute to specify filename and content type * * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 - * + * * @param {*} value The value to test - * + * * @returns {boolean} True if value is a React Native Blob, otherwise false */ const isReactNativeBlob = (value) => { return !!(value && typeof value.uri !== 'undefined'); -} +}; /** * Determine if environment is React Native * ReactNative `FormData` has a non-standard `getParts()` method - * + * * @param {*} formData The formData to test - * + * * @returns {boolean} True if environment is React Native, otherwise false */ const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined'; @@ -12565,7 +14195,7 @@ const isBlob = kindOfTest('Blob'); * * @param {*} val The value to test * - * @returns {boolean} True if value is a File, otherwise false + * @returns {boolean} True if value is a FileList, otherwise false */ const isFileList = kindOfTest('FileList'); @@ -12597,15 +14227,17 @@ const G = getGlobal(); const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; const isFormData = (thing) => { - let kind; - return thing && ( - (FormDataCtor && thing instanceof FormDataCtor) || ( - isFunction(thing.append) && ( - (kind = kindOf(thing)) === 'formdata' || - // detect form-data instance - (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]') - ) - ) + if (!thing) return false; + if (FormDataCtor && thing instanceof FormDataCtor) return true; + // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData. + const proto = getPrototypeOf(thing); + if (!proto || proto === Object.prototype) return false; + if (!isFunction(thing.append)) return false; + const kind = kindOf(thing); + return ( + kind === 'formdata' || + // detect form-data instance + (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]') ); }; @@ -12741,7 +14373,7 @@ const isContextDefined = (context) => !isUndefined(context) && context !== _glob * * @returns {Object} Result of all merge properties */ -function merge(/* obj1, obj2, obj3, ... */) { +function merge(...objs) { const { caseless, skipUndefined } = (isContextDefined(this) && this) || {}; const result = {}; const assignValue = (val, key) => { @@ -12751,8 +14383,12 @@ function merge(/* obj1, obj2, obj3, ... */) { } const targetKey = (caseless && findKey(result, key)) || key; - if (isPlainObject(result[targetKey]) && isPlainObject(val)) { - result[targetKey] = merge(result[targetKey], val); + // Read via own-prop only — a bare `result[targetKey]` walks the prototype + // chain, so a polluted Object.prototype value could surface here and get + // copied into the merged result. + const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined; + if (isPlainObject(existing) && isPlainObject(val)) { + result[targetKey] = merge(existing, val); } else if (isPlainObject(val)) { result[targetKey] = merge({}, val); } else if (isArray(val)) { @@ -12762,8 +14398,8 @@ function merge(/* obj1, obj2, obj3, ... */) { } }; - for (let i = 0, l = arguments.length; i < l; i++) { - arguments[i] && forEach(arguments[i], assignValue); + for (let i = 0, l = objs.length; i < l; i++) { + objs[i] && forEach(objs[i], assignValue); } return result; } @@ -12785,6 +14421,9 @@ const extend = (a, b, thisArg, { allOwnKeys } = {}) => { (val, key) => { if (thisArg && isFunction(val)) { Object.defineProperty(a, key, { + // Null-proto descriptor so a polluted Object.prototype.get cannot + // hijack defineProperty's accessor-vs-data resolution. + __proto__: null, value: (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__["default"])(val, thisArg), writable: true, enumerable: true, @@ -12792,6 +14431,7 @@ const extend = (a, b, thisArg, { allOwnKeys } = {}) => { }); } else { Object.defineProperty(a, key, { + __proto__: null, value: val, writable: true, enumerable: true, @@ -12830,12 +14470,14 @@ const stripBOM = (content) => { const inherits = (constructor, superConstructor, props, descriptors) => { constructor.prototype = Object.create(superConstructor.prototype, descriptors); Object.defineProperty(constructor.prototype, 'constructor', { + __proto__: null, value: constructor, writable: true, enumerable: false, configurable: true, }); Object.defineProperty(constructor, 'super', { + __proto__: null, value: superConstructor.prototype, }); props && Object.assign(constructor.prototype, props); @@ -13017,7 +14659,7 @@ const reduceDescriptors = (obj, reducer) => { const freezeMethods = (obj) => { reduceDescriptors(obj, (descriptor, name) => { // skip restricted props in strict mode - if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) { return false; } diff --git a/dist/typesense.js.map b/dist/typesense.js.map index 32a6d455..dafd2bb5 100644 --- a/dist/typesense.js.map +++ b/dist/typesense.js.map @@ -1 +1 @@ -{"version":3,"file":"typesense.js","mappings":"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,YAAY,CAAC,CAAC;EACxC;AACF,C;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAA0C;AAClD,QAAQ,oCAAO,UAAU;AAAA;AAAA;AAAA;AAAA,kGAAC;AAC1B,MAAM,KAAK;AAAA,EAIN;AACL,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,qEAAqE;AACrE,YAAY;AACZ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,qDAAqD;AACrD,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;ACpWD,e;;;;;;;;;;ACAA,e;;;;;;;;;;ACAA,e;;;;;;;;;;ACAA;AACA;AACA;AACA,iCAAiC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACH5F,wBAAwB,mBAAO,CAAC,0FAAwB;AACxD;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,cAAc;AACd,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,+BAA+B,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACxF1F,0BAA0B,mBAAO,CAAC,8FAA0B;AAC5D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,oCAAoC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACP/F,kBAAkB,mBAAO,CAAC,8EAAkB;AAC5C,+BAA+B,mBAAO,CAAC,wGAA+B;AACtE;AACA;AACA;AACA,uCAAuC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACLlG,oBAAoB,mBAAO,CAAC,kFAAoB;AAChD,wBAAwB,mBAAO,CAAC,0FAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA,gCAAgC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;AChC3F;AACA;AACA;AACA,QAAQ,QAAQ;AAChB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,qCAAqC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACrBhG;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA,mCAAmC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACT9F,oBAAoB,mBAAO,CAAC,kFAAoB;AAChD,kBAAkB,mBAAO,CAAC,8EAAkB;AAC5C,uBAAuB,mBAAO,CAAC,wFAAuB;AACtD,0BAA0B,mBAAO,CAAC,8FAA0B;AAC5D,+BAA+B,mBAAO,CAAC,wGAA+B;AACtE,sBAAsB,mBAAO,CAAC,sFAAsB;AACpD,wBAAwB,mBAAO,CAAC,0FAAwB;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,sCAAsC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;AC5EjG,cAAc,sGAAiC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;AClBhG;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,0BAA0B,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACTrF;;AAEA,cAAc,mBAAO,CAAC,kGAA+B;AACrD;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;ACdA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;ACJA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;;;;;;;;;;;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AExB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE,qEAAa;;AAErB;;AAEA;;AAEA,yBAAyB,sEAAc;AACvC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA,sCAAsC,wFAAsB;AAC5D;AACA,YAAY,sFAAoB,CAAC,gFAAc;AAC/C;;AAEA,iBAAiB,oEAAW;AAC5B;AACA;;AAEA,WAAW,iDAAK;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET,sCAAsC,iDAAK;;AAE3C;AACA;AACA,YAAY,wFAAsB;AAClC;AACA,cAAc,sFAAoB,CAAC,gFAAc;AACjD;AACA;;AAEA;AACA,UAAU,oEAAW;AACrB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;;AAEA,yCAAyC,iDAAK;AAC9C;AACA;AACA;;AAEA;;AAEA;AACA,QAAQ,2DAAM;AACd;AACA,mBAAmB,6DAAY;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,MAAM;AACN;;AAEA;AACA;AACA,cAAc,2DAAU;AACxB;AACA,YAAY,2DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,2DAAU;AACtB;AACA;AACA;;AAEA;;AAEO;AACP;AACA,UAAU,2BAA2B;AACrC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACjVS;AACO;AACwB;AAChB;AACQ;AACC;AACZ;AACO;AACuB;AAClB;;AAExD;;AAEA,iEAAe;AACf;AACA;AACA,sBAAsB,qEAAa;AACnC;AACA,6BAA6B,6DAAY;AACzC,YAAY,qDAAqD;AACjE;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC,0CAA0C;;AAE1C;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,2DAAM;AACd;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,2DAAU,oBAAoB,2DAAU;;AAE3D;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,wBAAwB,2DAAU,MAAM,2DAAU;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iEAAoB;AACzE;AACA;AACA;AACA;AACA,cAAc,2DAAU;AACxB;AACA,+CAA+C,2DAAU,aAAa,2DAAU;AAChF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ,iDAAK;AACb;AACA,SAAS;AACT;;AAEA;AACA,WAAW,iDAAK;AAChB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,sFAAoB;AACjE;AACA;;AAEA;AACA;AACA,yCAAyC,sFAAoB;;AAE7D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gEAAa;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,qEAAa;;AAEpC,sBAAsB,0DAAQ;AAC9B;AACA,cAAc,2DAAU;AACxB;AACA,YAAY,2DAAU;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL,GAAG,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7NS;;AAEkB;AACM;AACD;AACY;AACL;AACc;AACH;AACJ;AACN;AACJ;AACS;AACH;AACL;AACY;AACH;AACJ;AACW;;AAEzD;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA,sBAAsB,sDAAK;AAC3B,mBAAmB,4DAAI,CAAC,sDAAK;;AAE7B;AACA,EAAE,iDAAK,kBAAkB,sDAAK,uBAAuB,kBAAkB;;AAEvE;AACA,EAAE,iDAAK,mCAAmC,kBAAkB;;AAE5D;AACA;AACA,0BAA0B,gEAAW;AACrC;;AAEA;AACA;;AAEA;AACA,6BAA6B,0DAAQ;;AAErC;AACA,cAAc,sDAAK;;AAEnB;AACA,sBAAsB,gEAAa;AACnC,oBAAoB,8DAAW;AAC/B,iBAAiB,2DAAQ;AACzB,gBAAgB,iDAAO;AACvB,mBAAmB,+DAAU;;AAE7B;AACA,mBAAmB,4DAAU;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,2DAAM;;AAErB;AACA,qBAAqB,iEAAY;;AAEjC;AACA,oBAAoB,4DAAW;;AAE/B,qBAAqB,8DAAY;;AAEjC,8BAA8B,sEAAc,CAAC,iDAAK;;AAElD,mBAAmB,8DAAQ;;AAE3B,uBAAuB,mEAAc;;AAErC;;AAEA;AACA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;ACxFR;;AAEkC;;AAE/C;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,yDAAa;AACtC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;ACtId;;AAEkC;;AAE/C,4BAA4B,2DAAU;AACtC;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA,eAAe,eAAe;AAC9B;AACA;AACA,kDAAkD,2DAAU;AAC5D;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;ACrBhB;;AAEE;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACJa;;AAEmB;AACc;AACW;AACN;AACR;AACI;AACC;AACH;AACkB;;AAE/D,mBAAmB,6DAAS;;AAE5B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAkB;AACrC,oBAAoB,8DAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,aAAa,2DAAW;;AAExB,YAAY,0CAA0C;;AAEtD;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,UAAU,iDAAK;AACf;AACA;AACA;AACA,QAAQ;AACR,QAAQ,6DAAS;AACjB;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA,IAAI,6DAAS;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,iDAAK;;AAEzC;AACA,MAAM,iDAAK;AACX;AACA,OAAO;;AAEP,qBAAqB,wDAAY;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kDAAkD,iEAAoB;AACtE;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,qBAAqB,2DAAe;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAe;AAC/B,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,2DAAW;AACxB,qBAAqB,6DAAa;AAClC,WAAW,gEAAQ;AACnB;AACA;;AAEA;AACA,iDAAK;AACL;AACA;AACA;AACA,MAAM,2DAAW,aAAa;AAC9B;AACA;AACA,2BAA2B;AAC3B,OAAO;AACP;AACA;AACA,CAAC;;AAED,iDAAK;AACL;AACA;AACA;AACA,QAAQ,2DAAW,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;ACpRR;;AAEmB;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAK;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACzFb;;AAEmB;AACsB;;AAEtD;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,MAAM,iDAAK;AACX;AACA;AACA;;AAEA;AACA,6DAA6D,OAAO;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,MAAM,iDAAK;AACX;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,iDAAK;;AAEZ,MAAM,iDAAK;AACX;AACA;;AAEA,MAAM,iDAAK;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uBAAuB,iDAAK;;AAE5B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,iDAAK;;AAEX,QAAQ,iDAAK;AACb;AACA,MAAM,SAAS,iDAAK;AACpB,iBAAiB,oEAAY;AAC7B,MAAM,SAAS,iDAAK,qBAAqB,iDAAK;AAC9C,kBAAkB;AAClB;AACA;AACA;AACA,aAAa,iDAAK;AAClB;AACA;;AAEA;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iDAAK;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,iDAAK;AACT,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,iDAAK;AACT;AACA;AACA,oCAAoC,iDAAK;AACzC,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,iDAAK;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAK,8CAA8C,OAAO;AAC1D,oDAAoD;AACpD;AACA;AACA;AACA;AACA,KAA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AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA,iDAAK;AACL;AACA,CAAC;;AAED,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;AC3KX;;AAEb,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACPK,yB;;;;;;;;;;;;;;;;ACAM;;AAE4B;;AAEzC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;;AAEA,YAAY,0DAAU;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;AC7DpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;AC5EjB;;AAEb;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACba;;AAEmB;AACsC;;AAEtE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AA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iDAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA,iEAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA,CAAC;AAAA,4LAAC;;;;;;;;;;;;;;;;ACpEW;;AAEE;AACf,0BAA0B,KAAK;AAC/B;AACA;;;;;;;;;;;;;;;;;;;;;ACL2C;AACN;AACL;;AAEzB;AACP;AACA,uBAAuB,2DAAW;;AAElC,SAAS,wDAAQ;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA,IAAI,iDAAK;;;;;;;;;;;;;;;;;;;;;;;;AClDmC;AACZ;AACmB;AAChB;AACkB;AACJ;AACE;AACd;;AAErC,iEAAe;AACf,oBAAoB,gEAAW,GAAG;;AAElC,QAAQ,qEAAqE;;AAE7E,gCAAgC,6DAAY;;AAE5C,kBAAkB,wDAAQ;AAC1B,IAAI,kEAAa;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,iDAAK;AACX,QAAQ,0DAAQ,0BAA0B,0DAAQ;AAClD,yCAAyC;AACzC,MAAM,SAAS,iDAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,0DAAQ;AACd,qBAAqB,iDAAK;;AAE1B,qDAAqD,+DAAe;AACpE;AACA,4DAA4D,mDAAO;;AAEnE;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AAAA,4LAAC;;;;;;;;;;;;;;;;ACrEW;;AAEb;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;ACtDd;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3BA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;AC3CX;;AAEmB;AACe;AAC/C;AACoE;;AAEpE;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA,SAAS,iDAAK,yBAAyB,iDAAK;AAC5C;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA,aAAa;AACb;AACA;AACA,SAAS,iDAAK;AACd;;AAEA,mBAAmB,iDAAK,cAAc,iDAAK,IAAI;AAC/C;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA,OAAO,iDAAK;AACZ;AACA;;AAEA;AACA,8BAA8B,0EAAgB;;AAE9C;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc,iDAAK;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAK;;AAEhC,OAAO,iDAAK;AACZ;AACA;;AAEA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;;AAEA,oBAAoB,iDAAK;AACzB,gBAAgB,2DAAU;AAC1B;;AAEA,QAAQ,iDAAK,yBAAyB,iDAAK;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,GAAG;AAChB,aAAa,eAAe;AAC5B,aAAa,sBAAsB;AACnC,YAAY;AACZ;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA,QAAQ,iDAAK,4BAA4B,iDAAK;AAC9C;AACA;AACA;;AAEA;AACA,UAAU,iDAAK,kBAAkB;AACjC;AACA;AACA;AACA;AACA,QAAQ;AACR,SAAS,iDAAK;AACd,UAAU,iDAAK,sBAAsB,iDAAK,gCAAgC,iDAAK;AAC/E;AACA;AACA;;AAEA;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,QAAQ,iDAAK;;AAEb;AACA;AACA;;AAEA;;AAEA,IAAI,iDAAK;AACT;AACA,UAAU,iDAAK;AACf,mCAAmC,iDAAK;;AAExC;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,OAAO,iDAAK;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;AChPb;;AAEmB;AACS;AACG;;AAE7B;AACf,SAAS,0DAAU,WAAW,0DAAQ;AACtC;AACA,UAAU,0DAAQ,WAAW,iDAAK;AAClC;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;AClBO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxFa;;AAE4B;AACM;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,MAAM,iDAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,2DAAU;AAC1B;AACA,QAAQ,2DAAU;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,KAAK,6BAA6B,gBAAgB;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA,cAAc,2DAAU,8BAA8B,2DAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAU;AAC5B;AACA,UAAU,2DAAU;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAAU,0BAA0B,2DAAU;AAC9D;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;AC7GW;;AAEb,iEAAe,yCAAyC,EAAC;;;;;;;;;;;;;;;;ACF5C;;AAEb,iEAAe,iDAAiD,EAAC;;;;;;;;;;;;;;;;;ACFpD;;AAE+D;AAC5E,iEAAe,2DAA2D,wEAAoB,EAAC;;;;;;;;;;;;;;;;;;;ACHpC;AACd;AACR;;AAErC,iEAAe;AACf;AACA;AACA,mBAAmB;AACnB,YAAY;AACZ,QAAQ;AACR,GAAG;AACH;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;ACZF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAQE;;;;;;;;;;;;;;;;;;ACnDqC;AACI;;AAE3C,iEAAe;AACf,KAAK,6CAAK;AACV,KAAK,sDAAQ;AACb,CAAC,EAAC;;;;;;;;;;;;;;;;;ACNW;;AAEwB;;AAErC;;AAEA,QAAQ,WAAW;AACnB,QAAQ,iBAAiB;AACzB,QAAQ,wBAAwB;;AAEhC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA,QAAQ,UAAU;;AAElB;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,aAAa,qBAAM,yBAAyB,qBAAM;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,UAAU;AACrB;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa;AACb;AACA,4BAA4B,qBAAqB,IAAI;AACrD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uFAAuF,qBAAM;AAC7F,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS,GAAG,SAAS;AAC9C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,UAAU,0BAA0B;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,kCAAkC;AAClC,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA,iCAAiC,aAAa,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAI;AACrB;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK,gBAAgB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,WAAW,cAAc;AAChC;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;UCt5BF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC,I;;;;;WCPD,wF;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;;;;;;;;;;;;;;;;;ACNwC;AACY;AACP;AAEL;AACxC,iEAAe;EAAE3Q,MAAM,EAANA,yDAAM;EAAE8N,YAAY,EAAZA,+DAAY;EAAE8C,MAAM,EAANA,8CAAMA;AAAC,CAAC,E","sources":["webpack://Typesense/./src/Typesense/Alias.ts","webpack://Typesense/./src/Typesense/Aliases.ts","webpack://Typesense/./src/Typesense/Analytics.ts","webpack://Typesense/./src/Typesense/AnalyticsEvents.ts","webpack://Typesense/./src/Typesense/AnalyticsRule.ts","webpack://Typesense/./src/Typesense/AnalyticsRuleV1.ts","webpack://Typesense/./src/Typesense/AnalyticsRules.ts","webpack://Typesense/./src/Typesense/AnalyticsRulesV1.ts","webpack://Typesense/./src/Typesense/AnalyticsV1.ts","webpack://Typesense/./src/Typesense/ApiCall.ts","webpack://Typesense/./src/Typesense/Client.ts","webpack://Typesense/./src/Typesense/Collection.ts","webpack://Typesense/./src/Typesense/Collections.ts","webpack://Typesense/./src/Typesense/Configuration.ts","webpack://Typesense/./src/Typesense/Conversation.ts","webpack://Typesense/./src/Typesense/ConversationModel.ts","webpack://Typesense/./src/Typesense/ConversationModels.ts","webpack://Typesense/./src/Typesense/Conversations.ts","webpack://Typesense/./src/Typesense/CurationSet.ts","webpack://Typesense/./src/Typesense/CurationSetItem.ts","webpack://Typesense/./src/Typesense/CurationSetItems.ts","webpack://Typesense/./src/Typesense/CurationSets.ts","webpack://Typesense/./src/Typesense/Debug.ts","webpack://Typesense/./src/Typesense/Document.ts","webpack://Typesense/./src/Typesense/Documents.ts","webpack://Typesense/./src/Typesense/Errors/HTTPError.ts","webpack://Typesense/./src/Typesense/Errors/ImportError.ts","webpack://Typesense/./src/Typesense/Errors/MissingConfigurationError.ts","webpack://Typesense/./src/Typesense/Errors/ObjectAlreadyExists.ts","webpack://Typesense/./src/Typesense/Errors/ObjectNotFound.ts","webpack://Typesense/./src/Typesense/Errors/ObjectUnprocessable.ts","webpack://Typesense/./src/Typesense/Errors/RequestMalformed.ts","webpack://Typesense/./src/Typesense/Errors/RequestUnauthorized.ts","webpack://Typesense/./src/Typesense/Errors/ServerError.ts","webpack://Typesense/./src/Typesense/Errors/TypesenseError.ts","webpack://Typesense/./src/Typesense/Errors/index.ts","webpack://Typesense/./src/Typesense/Health.ts","webpack://Typesense/./src/Typesense/Key.ts","webpack://Typesense/./src/Typesense/Keys.ts","webpack://Typesense/./src/Typesense/Metrics.ts","webpack://Typesense/./src/Typesense/MultiSearch.ts","webpack://Typesense/./src/Typesense/NLSearchModel.ts","webpack://Typesense/./src/Typesense/NLSearchModels.ts","webpack://Typesense/./src/Typesense/Operations.ts","webpack://Typesense/./src/Typesense/Override.ts","webpack://Typesense/./src/Typesense/Overrides.ts","webpack://Typesense/./src/Typesense/Preset.ts","webpack://Typesense/./src/Typesense/Presets.ts","webpack://Typesense/./src/Typesense/RequestWithCache.ts","webpack://Typesense/./src/Typesense/SearchClient.ts","webpack://Typesense/./src/Typesense/SearchOnlyCollection.ts","webpack://Typesense/./src/Typesense/SearchOnlyDocuments.ts","webpack://Typesense/./src/Typesense/Stats.ts","webpack://Typesense/./src/Typesense/Stemming.ts","webpack://Typesense/./src/Typesense/StemmingDictionaries.ts","webpack://Typesense/./src/Typesense/StemmingDictionary.ts","webpack://Typesense/./src/Typesense/Stopword.ts","webpack://Typesense/./src/Typesense/Stopwords.ts","webpack://Typesense/./src/Typesense/Synonym.ts","webpack://Typesense/./src/Typesense/SynonymSet.ts","webpack://Typesense/./src/Typesense/SynonymSetItem.ts","webpack://Typesense/./src/Typesense/SynonymSetItems.ts","webpack://Typesense/./src/Typesense/SynonymSets.ts","webpack://Typesense/./src/Typesense/Synonyms.ts","webpack://Typesense/./src/Typesense/Types.ts","webpack://Typesense/./src/Typesense/Utils.ts","webpack://Typesense/./node_modules/loglevel/lib/loglevel.js","webpack://Typesense/ignored|/Users/fanis/code/typesense/client-libs/js/src/Typesense|crypto","webpack://Typesense/ignored|/Users/fanis/code/typesense/client-libs/js/src/Typesense|http","webpack://Typesense/ignored|/Users/fanis/code/typesense/client-libs/js/src/Typesense|https","webpack://Typesense/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/typeof.js","webpack://Typesense/./node_modules/@babel/runtime/regenerator/index.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/readOnlyError.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Typesense/./node_modules/axios/lib/adapters/adapters.js","webpack://Typesense/./node_modules/axios/lib/adapters/fetch.js","webpack://Typesense/./node_modules/axios/lib/adapters/xhr.js","webpack://Typesense/./node_modules/axios/lib/axios.js","webpack://Typesense/./node_modules/axios/lib/cancel/CancelToken.js","webpack://Typesense/./node_modules/axios/lib/cancel/CanceledError.js","webpack://Typesense/./node_modules/axios/lib/cancel/isCancel.js","webpack://Typesense/./node_modules/axios/lib/core/Axios.js","webpack://Typesense/./node_modules/axios/lib/core/AxiosError.js","webpack://Typesense/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://Typesense/./node_modules/axios/lib/core/InterceptorManager.js","webpack://Typesense/./node_modules/axios/lib/core/buildFullPath.js","webpack://Typesense/./node_modules/axios/lib/core/dispatchRequest.js","webpack://Typesense/./node_modules/axios/lib/core/mergeConfig.js","webpack://Typesense/./node_modules/axios/lib/core/settle.js","webpack://Typesense/./node_modules/axios/lib/core/transformData.js","webpack://Typesense/./node_modules/axios/lib/defaults/index.js","webpack://Typesense/./node_modules/axios/lib/defaults/transitional.js","webpack://Typesense/./node_modules/axios/lib/env/data.js","webpack://Typesense/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://Typesense/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://Typesense/./node_modules/axios/lib/helpers/bind.js","webpack://Typesense/./node_modules/axios/lib/helpers/buildURL.js","webpack://Typesense/./node_modules/axios/lib/helpers/combineURLs.js","webpack://Typesense/./node_modules/axios/lib/helpers/composeSignals.js","webpack://Typesense/./node_modules/axios/lib/helpers/cookies.js","webpack://Typesense/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://Typesense/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://Typesense/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://Typesense/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://Typesense/./node_modules/axios/lib/helpers/null.js","webpack://Typesense/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://Typesense/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://Typesense/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://Typesense/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://Typesense/./node_modules/axios/lib/helpers/speedometer.js","webpack://Typesense/./node_modules/axios/lib/helpers/spread.js","webpack://Typesense/./node_modules/axios/lib/helpers/throttle.js","webpack://Typesense/./node_modules/axios/lib/helpers/toFormData.js","webpack://Typesense/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://Typesense/./node_modules/axios/lib/helpers/trackStream.js","webpack://Typesense/./node_modules/axios/lib/helpers/validator.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/index.js","webpack://Typesense/./node_modules/axios/lib/platform/common/utils.js","webpack://Typesense/./node_modules/axios/lib/platform/index.js","webpack://Typesense/./node_modules/axios/lib/utils.js","webpack://Typesense/webpack/bootstrap","webpack://Typesense/webpack/runtime/compat get default export","webpack://Typesense/webpack/runtime/define property getters","webpack://Typesense/webpack/runtime/global","webpack://Typesense/webpack/runtime/hasOwnProperty shorthand","webpack://Typesense/webpack/runtime/make namespace object","webpack://Typesense/./src/Typesense.ts"],"sourcesContent":["import Aliases, { CollectionAliasSchema } from \"./Aliases\";\nimport ApiCall from \"./ApiCall\";\n\nexport default class Alias {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/aliases\";\n\nexport interface CollectionAliasCreateSchema {\n collection_name: string;\n}\n\nexport interface CollectionAliasSchema extends CollectionAliasCreateSchema {\n name: string;\n}\n\nexport interface CollectionAliasesResponseSchema {\n aliases: CollectionAliasSchema[];\n}\n\nexport default class Aliases {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n name: string,\n mapping: CollectionAliasCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n mapping\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n private endpointPath(aliasName): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\nimport AnalyticsRule from \"./AnalyticsRule\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\nexport default class Analytics {\n private readonly _analyticsRules: AnalyticsRules;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n rules(): AnalyticsRules;\n rules(id: string): AnalyticsRule;\n rules(id?: string): AnalyticsRules | AnalyticsRule {\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { AnalyticsEventCreateSchema } from \"./AnalyticsEvent\";\n\nconst RESOURCEPATH = \"/analytics/events\";\n\nexport interface AnalyticsEventsRetrieveSchema {\n events: {\n name: string;\n event_type: string;\n collection: string;\n timestamp: number;\n user_id: string;\n doc_id?: string;\n doc_ids?: string[];\n query?: string;\n }[];\n}\n\nexport default class AnalyticsEvents {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: AnalyticsEventCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(params: {\n user_id: string;\n name: string;\n n: number;\n }): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n params,\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsEvents.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\n\nexport interface AnalyticsRuleCreateSchema {\n name: string;\n type: string;\n collection: string;\n event_type: string;\n rule_tag?: string;\n params?: {\n destination_collection?: string;\n limit?: number;\n capture_search_requests?: boolean;\n meta_fields?: string[];\n expand_query?: boolean;\n counter_field?: string;\n weight?: number;\n };\n}\n\nexport interface AnalyticsRuleUpsertSchema {\n name?: string;\n type?: string;\n collection?: string;\n event_type?: string;\n rule_tag?: string;\n params?: {\n destination_collection?: string;\n limit?: number;\n capture_search_requests?: boolean;\n meta_fields?: string[];\n expand_query?: boolean;\n counter_field?: string;\n weight?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchema {\n name: string;\n}\n\nexport interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema {\n name: string;\n}\n\nexport default class AnalyticsRule {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRulesV1 from \"./AnalyticsRulesV1\";\n\nexport interface AnalyticsRuleCreateSchemaV1 {\n type: \"popular_queries\" | \"nohits_queries\" | \"counter\" | \"log\";\n params: {\n enable_auto_aggregation?: boolean;\n source: {\n collections: string[];\n events?: {\n type: string;\n weight?: number;\n name: string;\n }[];\n };\n expand_query?: boolean;\n destination?: {\n collection: string;\n counter_field?: string;\n };\n limit?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchemaV1 {\n name: string;\n}\n\nexport interface AnalyticsRuleSchemaV1 extends AnalyticsRuleCreateSchemaV1 {\n name: string;\n}\n\nexport default class AnalyticsRuleV1 {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRulesV1.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchema,\n AnalyticsRuleSchema,\n AnalyticsRuleUpsertSchema,\n} from \"./AnalyticsRule\";\n\nexport interface AnalyticsRulesRetrieveSchema {\n rules: AnalyticsRuleSchema[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRules {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params:\n | AnalyticsRuleCreateSchema\n | AnalyticsRuleCreateSchema[],\n ): Promise<\n | AnalyticsRuleSchema\n | (\n | AnalyticsRuleSchema\n | {\n error?: string;\n }\n )[]\n > {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n {},\n {},\n );\n }\n\n async upsert(\n name: string,\n params: AnalyticsRuleUpsertSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n async retrieve(ruleTag?: string): Promise {\n const query: Record = {};\n if (ruleTag) {\n query[\"rule_tag\"] = ruleTag;\n }\n return this.apiCall.get(this.endpointPath(), query);\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRules.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchemaV1,\n AnalyticsRuleSchemaV1,\n} from \"./AnalyticsRuleV1\";\n\nexport interface AnalyticsRulesRetrieveSchemaV1 {\n rules: AnalyticsRuleSchemaV1[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRulesV1 {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n name: string,\n params: AnalyticsRuleCreateSchemaV1\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRulesV1.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRulesV1 from \"./AnalyticsRulesV1\";\nimport AnalyticsRuleV1 from \"./AnalyticsRuleV1\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.analytics` (new Analytics APIs).\n */\nexport default class AnalyticsV1 {\n private static hasWarnedDeprecation = false;\n private readonly _analyticsRules: AnalyticsRulesV1;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRulesV1(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n rules(): AnalyticsRulesV1;\n rules(id: string): AnalyticsRuleV1;\n rules(id?: string): AnalyticsRulesV1 | AnalyticsRuleV1 {\n if (!AnalyticsV1.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'analyticsV1' is deprecated starting with Typesense Server v30 and will be removed in a future release. Please use 'analytics' instead.\",\n );\n AnalyticsV1.hasWarnedDeprecation = true;\n }\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRuleV1(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n\n","import type {\n AxiosAdapter,\n AxiosRequestConfig,\n AxiosResponse,\n Method,\n} from \"axios\";\nimport axios from \"axios\";\nimport { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { Logger } from \"loglevel\";\nimport Configuration from \"./Configuration\";\nimport type { NodeConfiguration, StreamConfig } from \"./Configuration\";\nimport {\n HTTPError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n} from \"./Errors\";\nimport TypesenseError from \"./Errors/TypesenseError\";\nimport type { DocumentSchema, SearchResponse } from \"./Documents\";\nimport { toErrorWithMessage } from \"./Utils\";\nimport { MessageChunk } from \"./Types\";\n\nconst APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nconst HEALTHY = true;\nconst UNHEALTHY = false;\n\ninterface Node extends NodeConfiguration {\n isHealthy: boolean;\n index: string | number;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null &&\n typeof window === \"undefined\";\n\nexport interface HttpClient {\n get(\n endpoint: string,\n queryParameters: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n delete(\n endpoint: string,\n queryParameters: Record,\n ): Promise;\n post(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n additionalHeaders: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n put(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n patch(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n}\n\nexport default class ApiCall implements HttpClient {\n private readonly apiKey: string;\n private readonly nodes: Node[];\n private readonly nearestNode: Node;\n private readonly connectionTimeoutSeconds: number;\n private readonly healthcheckIntervalSeconds: number;\n private readonly retryIntervalSeconds: number;\n private readonly sendApiKeyAsQueryParam?: boolean;\n private readonly numRetriesPerRequest: number;\n private readonly additionalUserHeaders?: Record;\n\n readonly logger: Logger;\n private currentNodeIndex: number;\n\n constructor(private configuration: Configuration) {\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n\n this.logger = this.configuration.logger;\n\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n\n async get(\n endpoint: string,\n queryParameters: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"get\", endpoint, {\n queryParameters,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async delete(endpoint: string, queryParameters: any = {}): Promise {\n return this.performRequest(\"delete\", endpoint, {\n queryParameters,\n isStreamingRequest: false,\n });\n }\n\n async post(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n additionalHeaders: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"post\", endpoint, {\n queryParameters,\n bodyParameters,\n additionalHeaders,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async put(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"put\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n async patch(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"patch\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n private getAdapter(): AxiosAdapter | undefined {\n if (!this.configuration.axiosAdapter) return undefined;\n\n if (typeof this.configuration.axiosAdapter === \"function\")\n return this.configuration.axiosAdapter;\n\n const isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator.userAgent === \"Cloudflare-Workers\";\n\n return isCloudflareWorkers\n ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis)\n : axios.getAdapter(this.configuration.axiosAdapter);\n }\n\n async performRequest(\n requestType: Method,\n endpoint: string,\n {\n queryParameters = null,\n bodyParameters = null,\n additionalHeaders = {},\n abortSignal = null,\n responseType = undefined,\n skipConnectionTimeout = false,\n enableKeepAlive = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n queryParameters?: any;\n bodyParameters?: any;\n additionalHeaders?: any;\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n skipConnectionTimeout?: boolean;\n enableKeepAlive?: boolean | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n },\n ): Promise {\n this.configuration.validate();\n\n if (isStreamingRequest) {\n this.logger.debug(`Request: Performing streaming request to ${endpoint}`);\n\n // For browser streaming, always use responseType: \"stream\" and adapter: \"fetch\"\n if (!isNodeJSEnvironment && typeof fetch !== \"undefined\") {\n this.logger.debug(\"Using fetch adapter for browser streaming\");\n responseType = \"stream\";\n }\n }\n\n const requestNumber = Date.now();\n let lastException;\n let wasAborted = false;\n this.logger.debug(\n `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`,\n );\n for (\n let numTries = 1;\n numTries <= this.numRetriesPerRequest + 1;\n numTries++\n ) {\n const node = this.getNextNode(requestNumber);\n this.logger.debug(\n `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${\n node.index\n }`,\n );\n\n if (abortSignal && abortSignal.aborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n let abortListener: ((event: Event) => void) | undefined;\n\n try {\n const requestOptions: AxiosRequestConfig = {\n method: requestType,\n url: this.uriFor(endpoint, node),\n headers: Object.assign(\n {},\n this.defaultHeaders(),\n additionalHeaders,\n this.additionalUserHeaders,\n ),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n validateStatus: (status) => {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n (data, headers) => {\n let transformedData = data;\n if (\n headers !== undefined &&\n typeof data === \"string\" &&\n headers[\"content-type\"] &&\n headers[\"content-type\"].startsWith(\"application/json\")\n ) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n\n // Use fetch adapter only for streaming requests in browser environments\n requestOptions.adapter =\n isStreamingRequest && !isNodeJSEnvironment\n ? \"fetch\"\n : this.getAdapter();\n\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this.connectionTimeoutSeconds * 1000;\n }\n\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n\n if (this.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this.apiKey;\n }\n\n if (this.configuration.httpAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpAgent`,\n );\n requestOptions.httpAgent = this.configuration.httpAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`);\n requestOptions.httpAgent = new HTTPAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.httpsAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpsAgent`,\n );\n requestOptions.httpsAgent = this.configuration.httpsAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`);\n requestOptions.httpsAgent = new HTTPSAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.paramsSerializer) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom paramsSerializer`,\n );\n requestOptions.paramsSerializer = this.configuration.paramsSerializer;\n }\n\n if (\n bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))\n ) {\n requestOptions.data = bodyParameters;\n }\n\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n abortListener = () => {\n wasAborted = true;\n source.cancel();\n };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source.token;\n }\n\n if (isStreamingRequest) {\n requestOptions.responseType = \"stream\";\n if (!isNodeJSEnvironment) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Accept: \"text/event-stream\",\n };\n }\n } else if (responseType) {\n requestOptions.responseType = responseType;\n }\n\n const response = await axios(requestOptions);\n\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this.setNodeHealthcheck(node, HEALTHY);\n }\n\n this.logger.debug(\n `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (isStreamingRequest) {\n return this.handleStreamingResponse(response, streamConfig);\n }\n return Promise.resolve(response.data);\n } else if (response.status < 500) {\n // Next, if response is anything but 5xx, don't retry, return a custom error\n return Promise.reject(\n this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n ),\n );\n } else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n );\n }\n } catch (error: any) {\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n if (!wasAborted) {\n this.setNodeHealthcheck(node, UNHEALTHY);\n }\n lastException = error;\n this.logger.warn(\n `Request #${requestNumber}: Request to Node ${\n node.index\n } failed due to \"${error?.code ?? \"\"} ${error.message}${\n error.response == null\n ? \"\"\n : \" - \" + JSON.stringify(error.response?.data)\n }\"`,\n );\n\n if (wasAborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n if (isStreamingRequest) {\n this.invokeOnErrorCallback(error, streamConfig);\n }\n\n if (numTries < this.numRetriesPerRequest + 1) {\n this.logger.warn(\n `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`,\n );\n } else {\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n await this.timer(this.retryIntervalSeconds);\n } finally {\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n }\n }\n\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n\n private processStreamingLine(line: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!line.trim() || line === \"data: [DONE]\") {\n return null;\n }\n\n // Handle SSE format (data: {...})\n if (line.startsWith(\"data: \")) {\n return this.processDataLine(line.slice(6).trim());\n }\n\n // Try parsing as JSON if it starts with a brace\n if (line.trim().startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(line.trim());\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch {\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n }\n\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n\n private processDataLine(dataContent: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!dataContent) {\n return null;\n }\n\n if (dataContent.startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(dataContent);\n // Ensure the required fields exist\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch {\n // Not valid JSON, use as plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n }\n\n // For plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n\n private async handleStreamingResponse(\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\n `Handling streaming response. Environment: ${isNodeJSEnvironment ? \"Node.js\" : \"Browser\"}`,\n );\n\n if (isNodeJSEnvironment && response.data) {\n return this.handleNodeStreaming(response, streamConfig);\n }\n\n if (!isNodeJSEnvironment) {\n return this.handleBrowserStreaming(response, streamConfig);\n }\n\n this.logger.debug(\"Processing non-streaming response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return Promise.resolve(response.data as T);\n }\n\n private handleNodeStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing Node.js stream\");\n return new Promise((resolve, reject) => {\n const stream = response.data;\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n stream.on(\"data\", (chunk) => {\n try {\n const data = chunk.toString();\n buffer += data;\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n } catch (error) {\n reject(error);\n }\n });\n\n stream.on(\"end\", () => {\n if (buffer.trim().length > 0) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(\n allChunks,\n resolve,\n response,\n streamConfig,\n );\n });\n\n stream.on(\"error\", (error: unknown) => {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n });\n });\n }\n\n private handleBrowserStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing browser stream\");\n\n return new Promise(async (resolve, reject) => {\n try {\n if (response.data && typeof response.data.getReader === \"function\") {\n return this.handleBrowserReadableStream(\n response.data,\n resolve,\n reject,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"string\") {\n return this.handleBrowserStringResponse(\n response.data,\n resolve,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"object\" && response.data !== null) {\n this.logger.debug(\"No stream found, but data object is available\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return resolve(response.data as T);\n }\n\n this.logger.error(\"No usable data found in response\");\n return reject(new Error(\"No usable data found in response\"));\n } catch (error) {\n this.logger.error(`Error processing streaming response: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n });\n }\n\n private async handleBrowserReadableStream(\n stream: any,\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\"Found ReadableStream in response.data\");\n const reader = stream.getReader();\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n this.logger.debug(\"Stream reading complete\");\n if (buffer.trim()) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n break;\n }\n\n const chunk = new TextDecoder().decode(value);\n this.logger.debug(`Received chunk: ${chunk.length} bytes`);\n\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(allChunks, resolve, response, streamConfig);\n } catch (error) {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n }\n\n private handleBrowserStringResponse(\n data: string,\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): void {\n this.logger.debug(\"Processing text response as stream data\");\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n\n const lines = data.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n\n if (allChunks.length > 0) {\n const finalResult =\n this.combineStreamingChunks<\n T extends DocumentSchema ? T : DocumentSchema\n >(allChunks);\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n // If no chunks were processed, use the original response\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n private processStreamLines(\n lines: string[],\n allChunks: [...MessageChunk[], SearchResponse] | [],\n streamConfig: StreamConfig | undefined,\n ): void {\n for (const line of lines) {\n if (line.trim() && line !== \"data: [DONE]\") {\n const processed = this.processStreamingLine(line);\n if (processed !== null) {\n this.invokeOnChunkCallback(processed, streamConfig);\n (allChunks as MessageChunk[]).push(processed);\n }\n }\n }\n }\n\n private finalizeStreamResult(\n allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [],\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): void {\n if (allChunks.length > 0) {\n const finalResult = this.combineStreamingChunks(allChunks);\n this.logger.debug(\"Stream processing complete\");\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n /**\n * Combines multiple streaming chunks into a single coherent result\n * This is critical for ensuring we return the complete data rather than just the last chunk\n */\n private combineStreamingChunks(\n chunks: [...MessageChunk[], SearchResponse] | [],\n ): SearchResponse {\n if (chunks.length === 0) return {} as SearchResponse;\n if (chunks.length === 1) return chunks[0] as unknown as SearchResponse;\n\n // For conversation streams with message chunks\n const messagesChunks = this.getMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n );\n if (messagesChunks.length > 0) {\n return this.combineMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n messagesChunks,\n );\n }\n\n // For regular search responses\n const lastChunk = chunks[chunks.length - 1];\n if (!this.isCompleteSearchResponse(lastChunk)) {\n throw new Error(\"Last chunk is not a complete search response\");\n }\n\n return lastChunk;\n }\n\n private getMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n ): MessageChunk[] {\n return chunks.filter(this.isChunkMessage);\n }\n\n private isChunkMessage(chunk: unknown): chunk is MessageChunk {\n return (\n typeof chunk === \"object\" &&\n chunk !== null &&\n \"message\" in chunk &&\n \"conversation_id\" in chunk\n );\n }\n\n private combineMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n messagesChunks: MessageChunk[],\n ): SearchResponse {\n this.logger.debug(\n `Found ${messagesChunks.length} message chunks to combine`,\n );\n\n const lastChunk = chunks[chunks.length - 1];\n if (this.isCompleteSearchResponse(lastChunk)) {\n return lastChunk;\n }\n\n const metadataChunk = chunks.find(this.isCompleteSearchResponse);\n\n if (!metadataChunk) {\n throw new Error(\"No metadata chunk found\");\n }\n\n return metadataChunk;\n }\n\n private isCompleteSearchResponse(\n chunk: MessageChunk | SearchResponse,\n ): chunk is SearchResponse {\n if (\n typeof chunk === \"object\" &&\n chunk !== null &&\n Object.keys(chunk as object).length > 0\n ) {\n return (\n \"results\" in (chunk as object) ||\n \"found\" in (chunk as object) ||\n \"hits\" in (chunk as object) ||\n \"page\" in (chunk as object) ||\n \"search_time_ms\" in (chunk as object)\n );\n }\n return false;\n }\n\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n getNextNode(requestNumber = 0): Node {\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: Node ${\n this.nearestNode.index\n } is ${this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"}`,\n );\n if (\n this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`,\n );\n return this.nearestNode;\n }\n this.logger.debug(\n `Request #${requestNumber}: Falling back to individual nodes`,\n );\n }\n\n // Fallback to nodes as usual\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: ${this.nodes\n .map(\n (node) =>\n `Node ${node.index} is ${\n node.isHealthy === true ? \"Healthy\" : \"Unhealthy\"\n }`,\n )\n .join(\" || \")}`,\n );\n let candidateNode: Node = this.nodes[0];\n for (let i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (\n candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n }\n\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\n `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n\n nodeDueForHealthcheck(node, requestNumber = 0): boolean {\n const isDueForHealthcheck =\n Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\n `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`,\n );\n }\n return isDueForHealthcheck;\n }\n\n initializeMetadataForNodes(): void {\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n\n this.nodes.forEach((node, i) => {\n node.index = i;\n this.setNodeHealthcheck(node, HEALTHY);\n });\n }\n\n setNodeHealthcheck(node, isHealthy): void {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n }\n\n uriFor(endpoint: string, node): string {\n if (node.url != null) {\n return `${node.url}${endpoint}`;\n }\n return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`;\n }\n\n defaultHeaders(): any {\n const defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n }\n\n async timer(seconds): Promise {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n }\n\n customErrorForResponse(\n response: AxiosResponse,\n messageFromServer: string,\n httpBody?: string,\n ): TypesenseError {\n let errorMessage = `Request failed with HTTP code ${response.status}`;\n if (\n typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\"\n ) {\n errorMessage += ` | Server said: ${messageFromServer}`;\n }\n\n let error = new TypesenseError(errorMessage, httpBody, response.status);\n\n if (response.status === 400) {\n error = new RequestMalformed(errorMessage, httpBody, response.status);\n } else if (response.status === 401) {\n error = new RequestUnauthorized(errorMessage, httpBody, response.status);\n } else if (response.status === 404) {\n error = new ObjectNotFound(errorMessage, httpBody, response.status);\n } else if (response.status === 409) {\n error = new ObjectAlreadyExists(errorMessage, httpBody, response.status);\n } else if (response.status === 422) {\n error = new ObjectUnprocessable(errorMessage, httpBody, response.status);\n } else if (response.status >= 500 && response.status <= 599) {\n error = new ServerError(errorMessage, httpBody, response.status);\n } else {\n error = new HTTPError(errorMessage, httpBody, response.status);\n }\n\n return error;\n }\n\n private invokeOnChunkCallback(\n data: {\n conversation_id: string;\n message: string;\n },\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onChunk) {\n try {\n streamConfig.onChunk(data);\n } catch (error) {\n this.logger.warn(`Error in onChunk callback: ${error}`);\n }\n }\n }\n\n private invokeOnCompleteCallback(\n data: SearchResponse,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onComplete) {\n try {\n streamConfig.onComplete(data);\n } catch (error) {\n this.logger.warn(`Error in onComplete callback: ${error}`);\n }\n }\n }\n\n private invokeOnErrorCallback(\n error: unknown,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onError) {\n const errorObj = toErrorWithMessage(error);\n try {\n streamConfig.onError(errorObj);\n } catch (callbackError) {\n this.logger.warn(`Error in onError callback: ${callbackError}`);\n }\n }\n }\n}\n","/* eslint-disable no-dupe-class-members */\n\nimport Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Collection from \"./Collection\";\nimport Aliases from \"./Aliases\";\nimport Alias from \"./Alias\";\nimport Keys from \"./Keys\";\nimport Key from \"./Key\";\nimport Debug from \"./Debug\";\nimport Metrics from \"./Metrics\";\nimport Stats from \"./Stats\";\nimport Health from \"./Health\";\nimport Operations from \"./Operations\";\nimport MultiSearch from \"./MultiSearch\";\nimport Presets from \"./Presets\";\nimport Preset from \"./Preset\";\nimport AnalyticsV1 from \"./AnalyticsV1\";\nimport Analytics from \"./Analytics\";\nimport Stopwords from \"./Stopwords\";\nimport Stopword from \"./Stopword\";\nimport Conversations from \"./Conversations\";\nimport Conversation from \"./Conversation\";\nimport Stemming from \"./Stemming\";\nimport NLSearchModels from \"./NLSearchModels\";\nimport NLSearchModel from \"./NLSearchModel\";\nimport SynonymSets from \"./SynonymSets\";\nimport SynonymSet from \"./SynonymSet\";\nimport CurationSets from \"./CurationSets\";\nimport CurationSet from \"./CurationSet\";\nexport default class Client {\n configuration: Configuration;\n apiCall: ApiCall;\n debug: Debug;\n metrics: Metrics;\n stats: Stats;\n health: Health;\n operations: Operations;\n multiSearch: MultiSearch;\n analytics: Analytics;\n analyticsV1: AnalyticsV1;\n stemming: Stemming;\n private readonly _collections: Collections;\n private readonly individualCollections: Record;\n private readonly _aliases: Aliases;\n private readonly individualAliases: Record;\n private readonly _keys: Keys;\n private readonly individualKeys: Record;\n private readonly _presets: Presets;\n private readonly individualPresets: Record;\n private readonly _stopwords: Stopwords;\n private readonly individualStopwords: Record;\n private readonly _conversations: Conversations;\n private readonly individualConversations: Record;\n private readonly _nlSearchModels: NLSearchModels;\n private readonly individualNLSearchModels: Record;\n private readonly _synonymSets: SynonymSets;\n private readonly individualSynonymSets: Record;\n private readonly _curationSets: CurationSets;\n private readonly individualCurationSets: Record;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.debug = new Debug(this.apiCall);\n this.metrics = new Metrics(this.apiCall);\n this.stats = new Stats(this.apiCall);\n this.health = new Health(this.apiCall);\n this.operations = new Operations(this.apiCall);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration);\n this._collections = new Collections(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics(this.apiCall);\n this.analyticsV1 = new AnalyticsV1(this.apiCall);\n this.stemming = new Stemming(this.apiCall);\n this._conversations = new Conversations(this.apiCall);\n this.individualConversations = {};\n this._nlSearchModels = new NLSearchModels(this.apiCall);\n this.individualNLSearchModels = {};\n this._synonymSets = new SynonymSets(this.apiCall);\n this.individualSynonymSets = {};\n this._curationSets = new CurationSets(this.apiCall);\n this.individualCurationSets = {};\n }\n\n collections(): Collections;\n collections = object>(\n collectionName: string,\n ): Collection;\n collections(collectionName?: string): Collections | Collection {\n if (collectionName === undefined) {\n return this._collections;\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection(\n collectionName,\n this.apiCall,\n this.configuration,\n );\n }\n return this.individualCollections[collectionName];\n }\n }\n\n aliases(): Aliases;\n aliases(aliasName: string): Alias;\n aliases(aliasName?: string): Aliases | Alias {\n if (aliasName === undefined) {\n return this._aliases;\n } else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n }\n\n keys(): Keys;\n keys(id: number): Key;\n keys(id?: number): Keys | Key {\n if (id === undefined) {\n return this._keys;\n } else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n }\n\n presets(): Presets;\n presets(id: string): Preset;\n presets(id?: string): Presets | Preset {\n if (id === undefined) {\n return this._presets;\n } else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n }\n\n stopwords(): Stopwords;\n stopwords(id: string): Stopword;\n stopwords(id?: string): Stopwords | Stopword {\n if (id === undefined) {\n return this._stopwords;\n } else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n }\n\n conversations(): Conversations;\n conversations(id: string): Conversation;\n conversations(id?: string): Conversations | Conversation {\n if (id === undefined) {\n return this._conversations;\n } else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n }\n\n nlSearchModels(): NLSearchModels;\n nlSearchModels(id: string): NLSearchModel;\n nlSearchModels(id?: string): NLSearchModels | NLSearchModel {\n if (id === undefined) {\n return this._nlSearchModels;\n } else {\n if (this.individualNLSearchModels[id] === undefined) {\n this.individualNLSearchModels[id] = new NLSearchModel(id, this.apiCall);\n }\n return this.individualNLSearchModels[id];\n }\n }\n\n synonymSets(): SynonymSets;\n synonymSets(synonymSetName: string): SynonymSet;\n synonymSets(synonymSetName?: string): SynonymSets | SynonymSet {\n if (synonymSetName === undefined) {\n return this._synonymSets;\n } else {\n if (this.individualSynonymSets[synonymSetName] === undefined) {\n this.individualSynonymSets[synonymSetName] = new SynonymSet(\n synonymSetName,\n this.apiCall,\n );\n }\n return this.individualSynonymSets[synonymSetName];\n }\n }\n\n curationSets(): CurationSets;\n curationSets(name: string): CurationSet;\n curationSets(name?: string): CurationSets | CurationSet {\n if (name === undefined) {\n return this._curationSets;\n } else {\n if (this.individualCurationSets[name] === undefined) {\n this.individualCurationSets[name] = new CurationSet(\n name,\n this.apiCall,\n );\n }\n return this.individualCurationSets[name];\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport type {\n BaseCollectionCreateSchema,\n CollectionCreateSchema,\n} from \"./Collections\";\nimport Documents, { DocumentSchema } from \"./Documents\";\nimport { ObjectNotFound } from \"./Errors\";\nimport Overrides from \"./Overrides\";\nimport Override from \"./Override\";\nimport Synonyms from \"./Synonyms\";\nimport Synonym from \"./Synonym\";\nimport { Document } from \"./Document\";\n\nexport type FieldType =\n | \"string\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"bool\"\n | \"geopoint\"\n | \"geopolygon\"\n | \"geopoint[]\"\n | \"string[]\"\n | \"int32[]\"\n | \"int64[]\"\n | \"float[]\"\n | \"bool[]\"\n | \"object\"\n | \"object[]\"\n | \"auto\"\n | \"string*\"\n | \"image\";\n\nexport interface CollectionFieldSchema\n extends Partial<\n Pick\n > {\n name: string;\n type: FieldType;\n optional?: boolean;\n facet?: boolean;\n index?: boolean;\n sort?: boolean;\n locale?: string;\n infix?: boolean;\n stem?: boolean;\n num_dim?: number;\n store?: boolean;\n range_index?: boolean;\n [t: string]: unknown;\n}\n\nexport interface CollectionSchema extends Required {\n created_at: number;\n num_documents: number;\n num_memory_shards: number;\n}\n\nexport interface CollectionDropFieldSchema {\n name: string;\n drop: true;\n}\n\nexport interface CollectionUpdateSchema\n extends Partial> {\n fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];\n}\n\nexport interface CollectionDeleteOptions {\n compact_store?: boolean;\n}\n\nexport default class Collection {\n private readonly _documents: Documents;\n private individualDocuments: Record> = {};\n private readonly _overrides: Overrides;\n private individualOverrides: Record = {};\n private readonly _synonyms: Synonyms;\n private individualSynonyms: Record = {};\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any,\n ) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n\n this._documents = new Documents(\n this.name,\n this.apiCall,\n this.configuration,\n );\n this._overrides = new Overrides(this.name, this.apiCall);\n this._synonyms = new Synonyms(this.name, this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(schema: CollectionUpdateSchema): Promise {\n return this.apiCall.patch(this.endpointPath(), schema);\n }\n\n async delete(\n options: CollectionDeleteOptions = {},\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async exists(): Promise {\n try {\n await this.retrieve();\n return true;\n } catch (e) {\n if (e instanceof ObjectNotFound) return false;\n throw e;\n }\n }\n\n documents(): Documents;\n documents(documentId: string): Document;\n documents(documentId?: string): Document | Documents {\n if (!documentId) {\n return this._documents;\n } else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document(\n this.name,\n documentId,\n this.apiCall,\n );\n }\n return this.individualDocuments[documentId];\n }\n }\n\n overrides(): Overrides;\n overrides(overrideId: string): Override;\n overrides(overrideId?: string): Overrides | Override {\n if (overrideId === undefined) {\n return this._overrides;\n } else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override(\n this.name,\n overrideId,\n this.apiCall,\n );\n }\n return this.individualOverrides[overrideId];\n }\n }\n\n synonyms(): Synonyms;\n synonyms(synonymId: string): Synonym;\n synonyms(synonymId?: string): Synonyms | Synonym {\n if (synonymId === undefined) {\n return this._synonyms;\n } else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym(\n this.name,\n synonymId,\n this.apiCall,\n );\n }\n return this.individualSynonyms[synonymId];\n }\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { CollectionFieldSchema, CollectionSchema } from \"./Collection\";\n\nexport interface BaseCollectionCreateSchema {\n name: string;\n default_sorting_field?: string;\n symbols_to_index?: string[];\n token_separators?: string[];\n enable_nested_fields?: boolean;\n metadata?: object;\n voice_query_model?: {\n model_name?: string;\n };\n synonym_sets?: string[];\n curation_sets?: string[];\n}\n\ninterface CollectionCreateSchemaWithSrc\n extends Pick {\n fields?: CollectionFieldSchema[];\n}\n\ninterface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {\n fields: CollectionFieldSchema[];\n}\n\n/**\n * Defines the schema for creating a collection in Typesense.\n *\n * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.\n * Otherwise, `fields` will be required.\n */\nexport type CollectionCreateSchema<\n Options extends CollectionCreateOptions = CollectionCreateOptions,\n> = Options[\"src_name\"] extends string\n ? CollectionCreateSchemaWithSrc\n : CollectionCreateSchemaWithoutSrc;\n\nexport interface CollectionCreateOptions {\n src_name?: string;\n}\n\nexport interface CollectionsRetrieveOptions {\n exclude_fields?: string;\n}\n\nconst RESOURCEPATH = \"/collections\";\n\nexport default class Collections {\n constructor(private apiCall: ApiCall) {}\n\n async create(\n schema: CollectionCreateSchema,\n options?: Options,\n ): Promise {\n return this.apiCall.post(RESOURCEPATH, schema, options);\n }\n\n async retrieve(\n options: CollectionsRetrieveOptions = {},\n ): Promise {\n return this.apiCall.get(RESOURCEPATH, options);\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import * as logger from \"loglevel\";\nimport { Logger, LogLevelDesc } from \"loglevel\";\nimport { MissingConfigurationError } from \"./Errors\";\nimport type { Agent as HTTPAgent } from \"http\";\nimport type { Agent as HTTPSAgent } from \"https\";\nimport type { AxiosRequestConfig } from \"axios\";\nimport { DocumentSchema, SearchResponse } from \"./Documents\";\n\nexport interface NodeConfiguration {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n url?: string;\n}\n\nexport interface NodeConfigurationWithHostname {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n}\n\nexport interface NodeConfigurationWithUrl {\n url: string;\n}\n\nexport interface ConfigurationOptions {\n apiKey: string;\n nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n randomizeNodes?: boolean;\n /**\n * @deprecated\n * masterNode is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n masterNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n /**\n * @deprecated\n * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n readReplicaNodes?:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n connectionTimeoutSeconds?: number;\n timeoutSeconds?: number;\n healthcheckIntervalSeconds?: number;\n numRetries?: number;\n retryIntervalSeconds?: number;\n sendApiKeyAsQueryParam?: boolean | undefined;\n useServerSideSearchCache?: boolean;\n cacheSearchResultsForSeconds?: number;\n additionalHeaders?: Record;\n\n logLevel?: LogLevelDesc;\n logger?: Logger;\n\n /**\n * Set a custom HTTP Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPAgent } = require(\"http\");\n * ...\n * httpAgent: new HTTPAgent({ keepAlive: true }),\n * @type {HTTPAgent}\n */\n httpAgent?: HTTPAgent;\n\n /**\n * Set a custom HTTPS Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPSAgent } = require(\"https\");\n * ...\n * httpsAgent: new HTTPSAgent({ keepAlive: true }),\n * @type {HTTPSAgent}\n */\n httpsAgent?: HTTPSAgent;\n\n /**\n * Set a custom paramsSerializer\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397\n * @type {any}\n */\n paramsSerializer?: any;\n\n /**\n * Set a custom axios adapter\n *\n * Useful for customizing the underlying HTTP client library used by Typesense.\n *\n * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge.\n * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n */\n axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n}\n\n/**\n * Configuration options for streaming responses\n */\nexport interface BaseStreamConfig {\n /**\n * Callback function that will be called for each chunk of data received\n * during streaming\n */\n onChunk?: (data: { conversation_id: string; message: string }) => void;\n /**\n * Callback function that will be called if there is an error during streaming\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Stream configuration for standard search responses\n * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature\n */\nexport interface StreamConfig\n extends BaseStreamConfig {\n /**\n * Callback function that will be called when the streaming is complete\n */\n onComplete?: (data: SearchResponse) => void;\n}\n\nexport default class Configuration {\n readonly nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n readonly nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n readonly connectionTimeoutSeconds: number;\n readonly healthcheckIntervalSeconds: number;\n readonly numRetries: number;\n readonly retryIntervalSeconds: number;\n readonly apiKey: string;\n readonly sendApiKeyAsQueryParam?: boolean;\n readonly cacheSearchResultsForSeconds: number;\n readonly useServerSideSearchCache: boolean;\n readonly logger: Logger;\n readonly logLevel: LogLevelDesc;\n readonly additionalHeaders?: Record;\n readonly httpAgent?: HTTPAgent;\n readonly httpsAgent?: HTTPSAgent;\n readonly paramsSerializer?: any;\n readonly axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n\n constructor(options: ConfigurationOptions) {\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map((node) => this.setDefaultPathInNode(node))\n .map((node) => this.setDefaultPortInNode(node))\n .map((node) => ({ ...node })) as NodeConfiguration[]; // Make a deep copy\n\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n (options.numRetries !== undefined && options.numRetries >= 0\n ? options.numRetries\n : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n\n this.axiosAdapter = options.axiosAdapter;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n\n this.additionalHeaders = options.additionalHeaders;\n\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n\n this.paramsSerializer = options.paramsSerializer;\n\n this.showDeprecationWarnings(options);\n this.validate();\n }\n\n validate(): boolean {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new MissingConfigurationError(\n \"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\",\n );\n }\n\n if (\n this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)\n ) {\n throw new MissingConfigurationError(\n \"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\",\n );\n }\n\n if (this.apiKey == null) {\n throw new MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n\n return true;\n }\n\n private validateNodes(): boolean {\n return this.nodes.some((node) => {\n return this.isNodeMissingAnyParameters(node);\n });\n }\n\n private isNodeMissingAnyParameters(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl,\n ): boolean {\n return (\n ![\"protocol\", \"host\", \"port\", \"path\"].every((key) => {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null\n );\n }\n\n private setDefaultPathInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n }\n\n private setDefaultPortInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (\n node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")\n ) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n }\n\n private showDeprecationWarnings(options: ConfigurationOptions): void {\n if (options.timeoutSeconds) {\n this.logger.warn(\n \"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\",\n );\n }\n if (options.masterNode) {\n this.logger.warn(\n \"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\n \"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n }\n\n private shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Conversations from \"./Conversations\";\n\nexport interface ConversationDeleteSchema {\n id: number;\n}\n\nexport interface ConversationUpdateSchema {\n ttl: number;\n}\n\nexport interface ConversationSchema {\n id: number;\n conversation: object[];\n last_updated: number;\n ttl: number;\n}\n\nexport default class Conversation {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(\n params: ConversationUpdateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\n\nexport interface ConversationModelCreateSchema {\n id?: string;\n model_name: string;\n api_key?: string;\n system_prompt?: string;\n max_bytes: number;\n history_collection?: string;\n account_id?: string;\n url?: string;\n ttl?: number;\n vllm_url?: string;\n openai_url?: string;\n openai_path?: string;\n}\n\nexport interface ConversationModelDeleteSchema {\n id: string;\n}\n\nexport interface ConversationModelSchema extends ConversationModelCreateSchema {\n id: string;\n}\n\nexport default class ConversationModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async update(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n ConversationModelCreateSchema,\n ConversationModelSchema,\n} from \"./ConversationModel\";\n\nconst RESOURCEPATH = \"/conversations/models\";\n\nexport default class ConversationModels {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${ConversationModels.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\nimport ConversationModel from \"./ConversationModel\";\nimport { ConversationSchema } from \"./Conversation\";\n\nconst RESOURCEPATH = \"/conversations\";\n\nexport interface ConversationsRetrieveSchema {\n conversations: ConversationSchema[];\n}\n\nexport default class Conversations {\n private readonly _conversationsModels: ConversationModels;\n private readonly individualConversationModels: Record<\n string,\n ConversationModel\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels(this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n models(): ConversationModels;\n models(id: string): ConversationModel;\n models(id?: string): ConversationModels | ConversationModel {\n if (id === undefined) {\n return this._conversationsModels;\n } else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel(\n id,\n this.apiCall,\n );\n }\n return this.individualConversationModels[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets from \"./CurationSets\";\nimport type {\n CurationSetDeleteResponseSchema,\n CurationSetSchema,\n CurationSetUpsertSchema,\n} from \"./CurationSets\";\nimport CurationSetItems from \"./CurationSetItems\";\nimport CurationSetItem from \"./CurationSetItem\";\n\nexport default class CurationSet {\n private readonly _items: CurationSetItems;\n private individualItems: Record = {};\n\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {\n this._items = new CurationSetItems(this.name, apiCall);\n }\n\n async upsert(params: CurationSetUpsertSchema): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n items(): CurationSetItems;\n items(itemId: string): CurationSetItem;\n items(itemId?: string): CurationSetItems | CurationSetItem {\n if (itemId === undefined) {\n return this._items;\n } else {\n if (this.individualItems[itemId] === undefined) {\n this.individualItems[itemId] = new CurationSetItem(\n this.name,\n itemId,\n this.apiCall,\n );\n }\n return this.individualItems[itemId];\n }\n }\n\n private endpointPath(): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets from \"./CurationSets\";\nimport type { CurationObjectSchema } from \"./CurationSets\";\n\nexport type CurationItemUpsertSchema = Omit;\n\nexport interface CurationItemDeleteResponseSchema {\n id: string;\n}\n\nexport default class CurationSetItem {\n constructor(\n private name: string,\n private itemId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async upsert(\n params: CurationItemUpsertSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(\n this.name,\n )}/items/${encodeURIComponent(this.itemId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets, { CurationObjectSchema } from \"./CurationSets\";\n\nexport default class CurationSetItems {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}/items${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\n\nexport type CurationRuleSchema =\n | {\n query: string;\n match: \"exact\" | \"contains\";\n filter_by?: string;\n tags?: string[];\n }\n | {\n query?: never;\n match?: never;\n filter_by: string;\n tags?: string[];\n }\n | {\n query?: never;\n match?: never;\n filter_by?: string;\n tags: string[];\n };\n\nexport interface CurationObjectSchema {\n id: string;\n rule: CurationRuleSchema;\n includes?: {\n id: string;\n position: number;\n }[];\n excludes?: {\n id: string;\n }[];\n filter_by?: string;\n sort_by?: string;\n replace_query?: string;\n remove_matched_tokens?: boolean;\n filter_curated_hits?: boolean;\n stop_processing?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n metadata?: Record;\n}\n\nexport interface CurationSetUpsertSchema {\n items: CurationObjectSchema[];\n}\n\nexport interface CurationSetSchema extends CurationSetUpsertSchema {\n name?: string;\n}\n\nexport interface CurationSetsListEntrySchema {\n name: string;\n items: CurationObjectSchema[];\n}\n\nexport interface CurationSetDeleteResponseSchema {\n name: string;\n}\n\nexport default class CurationSets {\n constructor(private apiCall: ApiCall) {}\n static readonly RESOURCEPATH = \"/curation_sets\";\n\n async retrieve(): Promise {\n return this.apiCall.get(\n CurationSets.RESOURCEPATH,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/debug\";\n\nexport interface DebugResponseSchema {\n state: number;\n version: string;\n}\n\nexport default class Debug {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Documents, {\n DeleteQuery,\n DocumentSchema,\n DocumentWriteParameters,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nexport interface DocumentsRetrieveParameters {\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n}\n\nexport class Document {\n constructor(\n private collectionName: string,\n private documentId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(options?: DocumentsRetrieveParameters): Promise {\n const queryParams = normalizeArrayableParams(options ?? {})\n \n return this.apiCall.get(this.endpointPath(), queryParams);\n }\n\n async delete(options?: DeleteQuery): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async update(\n partialDocument: Partial,\n options: DocumentWriteParameters = {}\n ): Promise {\n return this.apiCall.patch(this.endpointPath(), partialDocument, options);\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`;\n }\n}\n","import type { ReadStream } from \"fs\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport { ImportError, RequestMalformed } from \"./Errors\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport {\n SearchParams,\n SearchResponseRequestParams,\n WriteableDocuments,\n} from \"./Types\";\n\n// Todo: use generic to extract filter_by values\nexport type DeleteQuery =\n | {\n truncate?: true;\n }\n | {\n truncate?: never;\n filter_by?: string;\n batch_size?: number;\n ignore_not_found?: boolean;\n return_doc?: boolean;\n return_id?: boolean;\n };\n\nexport interface DeleteResponse {\n num_deleted: number;\n documents?: T[];\n ids?: string[];\n}\n\ninterface ImportResponseSuccess {\n success: true;\n error?: never;\n document?: T;\n id?: string;\n code?: never;\n}\n\nexport interface ImportResponseFail {\n success: false;\n error: string;\n document?: T;\n id?: string;\n code: number;\n}\n\nexport type ImportResponse = ImportResponseSuccess | ImportResponseFail;\n\nexport type DocumentSchema = Record;\n\nexport interface SearchParamsWithPreset<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n preset: string;\n}\n\ntype SearchResponseHighlightObject = {\n matched_tokens?: string[];\n snippet?: string;\n value?: string;\n};\n\nexport type SearchResponseHighlight = T extends string | number\n ? SearchResponseHighlightObject\n : {\n [TAttribute in keyof T]?: SearchResponseHighlight;\n };\n\nexport interface SearchResponseHit {\n curated?: true;\n highlights?: [\n {\n field: keyof T;\n snippet?: string;\n value?: string;\n snippets?: string[];\n indices?: number[];\n matched_tokens: string[][] | string[];\n },\n ];\n highlight: SearchResponseHighlight;\n document: T;\n text_match: number;\n text_match_info?: {\n best_field_score: `${number}`; // To prevent scores from being truncated by JSON spec\n best_field_weight: number;\n fields_matched: number;\n score: `${number}`; // To prevent scores from being truncated by JSON spec\n tokens_matched: number;\n };\n geo_distance_meters?: {\n location: number\n };\n}\n\nexport interface SearchResponseFacetCountSchema {\n counts: {\n count: number;\n highlighted: string;\n value: string;\n parent?: Record;\n }[];\n field_name: keyof T;\n sampled: boolean;\n stats: {\n avg?: number;\n max?: number;\n min?: number;\n sum?: number;\n total_values?: number;\n };\n}\n\ninterface LLMResponse {\n content: string;\n extraction_method: string;\n model: string;\n}\n\n// Todo: we could infer whether this is a grouped response by adding the search params as a generic\nexport interface SearchResponse {\n facet_counts?: SearchResponseFacetCountSchema[];\n found: number;\n found_docs?: number;\n out_of: number;\n page: number;\n request_params: SearchResponseRequestParams;\n search_time_ms: number;\n search_cutoff?: boolean;\n hits?: SearchResponseHit[];\n grouped_hits?: {\n group_key: string[];\n hits: SearchResponseHit[];\n found?: number;\n }[];\n parsed_nl_query?: {\n parse_time_ms: number;\n generated_params: SearchParams;\n augmented_params: SearchParams;\n llm_response?: LLMResponse;\n };\n conversation?: {\n answer: string;\n conversation_history: {\n conversation: object[];\n id: string;\n last_updated: number;\n ttl: number;\n };\n conversation_id: string;\n query: string;\n };\n error?: string;\n code?: number;\n metadata?: JsonRecord;\n}\n\ntype JSONPrimitive = string | number | boolean | null;\n\ntype JsonRecord = {\n [key: string]: JSONPrimitive | JSONPrimitive[] | JsonRecord;\n};\n\nexport interface DocumentWriteParameters {\n dirty_values?: \"coerce_or_reject\" | \"coerce_or_drop\" | \"drop\" | \"reject\";\n action?: \"create\" | \"update\" | \"upsert\" | \"emplace\";\n}\n\nexport interface UpdateByFilterParameters {\n filter_by?: string;\n}\n\nexport interface UpdateByFilterResponse {\n num_updated: number;\n}\n\nexport interface DocumentImportParameters extends DocumentWriteParameters {\n batch_size?: number;\n remote_embedding_batch_size?: number;\n remote_embedding_timeout_ms?: number;\n remote_embedding_num_tries?: number;\n return_doc?: boolean;\n return_id?: boolean;\n throwOnFail?: boolean;\n}\n\nexport interface DocumentsExportParameters {\n filter_by?: string;\n include_fields?: string;\n exclude_fields?: string;\n}\n\nexport interface SearchOptions {\n cacheSearchResultsForSeconds?: number;\n abortSignal?: AbortSignal | null;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nexport default class Documents\n extends SearchOnlyDocuments\n implements WriteableDocuments\n{\n constructor(\n collectionName: string,\n apiCall: ApiCall,\n configuration: Configuration,\n ) {\n super(collectionName, apiCall, configuration);\n }\n\n async create(\n document: T,\n options: Omit = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(this.endpointPath(), document, options);\n }\n\n async upsert(document: T, options: Omit = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"upsert\" }),\n );\n }\n\n async update(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n async update(document: T, options: Omit): Promise;\n async update(\n document: T,\n options: Omit | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"update\" }),\n );\n }\n }\n\n async emplace(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n async emplace(\n document: T,\n options: Omit,\n ): Promise;\n async emplace(\n document: T,\n options: Omit | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"emplace\" }),\n );\n }\n }\n\n async delete(\n query: DeleteQuery = {} as DeleteQuery,\n ): Promise> {\n return this.apiCall.delete>(this.endpointPath(), query);\n }\n\n async createMany(documents: T[], options: DocumentImportParameters = {}) {\n this.configuration.logger.warn(\n \"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\",\n );\n return this.import(documents, options);\n }\n\n /**\n * Import a set of documents in a batch.\n * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects.\n * @param options\n * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results.\n */\n async import(\n documents: string,\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[],\n options?: DocumentImportParameters,\n ): Promise[]>;\n async import(\n documents: T[] | string,\n options: DocumentImportParameters = {},\n ): Promise[]> {\n // Set default value for throwOnFail if not provided\n const finalOptions = { throwOnFail: true, ...options };\n let documentsInJSONLFormat;\n if (Array.isArray(documents)) {\n if (documents.length === 0) {\n throw new RequestMalformed(\"No documents provided\");\n }\n try {\n documentsInJSONLFormat = documents\n .map((document) => JSON.stringify(document))\n .join(\"\\n\");\n } catch (error: any) {\n // if rangeerror, throw custom error message\n if (\n error instanceof RangeError &&\n error.message.includes(\"Too many properties to enumerate\")\n ) {\n throw new Error(`${error}\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n `);\n }\n\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n } else {\n documentsInJSONLFormat = documents;\n if (isEmptyString(documentsInJSONLFormat)) {\n throw new RequestMalformed(\"No documents provided\");\n }\n }\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: finalOptions,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n if (Array.isArray(documents)) {\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter(\n (r) => r.success === false,\n );\n if (failedItems.length > 0 && finalOptions.throwOnFail) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat,\n options: finalOptions,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n } else {\n return resultsInJSONLFormat as string;\n }\n }\n /**\n * Imports documents from a NodeJS readable stream of JSONL.\n */\n async importStream(\n readableStream: ReadStream,\n options: DocumentImportParameters = {},\n ): Promise[]> {\n const finalOptions = { throwOnFail: true, ...options };\n \n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: finalOptions,\n bodyParameters: readableStream,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter((r) => r.success === false);\n if (failedItems.length > 0 && finalOptions.throwOnFail) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat: readableStream,\n options: finalOptions,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n }\n\n /**\n * Returns a JSONL string for all the documents in this collection\n */\n async export(options: DocumentsExportParameters = {}): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options);\n }\n\n /**\n * Returns a NodeJS readable stream of JSONL for all the documents in this collection.\n */\n async exportStream(\n options: DocumentsExportParameters = {},\n ): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n });\n }\n}\n\nfunction isEmptyString(str: string | null | undefined): boolean {\n return str == null || str === \"\" || str.length === 0;\n}\n\n/**\n * @deprecated Import from './Types' instead\n */\nexport type {\n SearchParams,\n WriteableDocuments,\n SearchableDocuments,\n DropTokensMode,\n OperationMode,\n UnionArrayKeys,\n UnionArraySearchParams,\n ArraybleParams,\n ExtractBaseTypes,\n SearchResponseRequestParams,\n} from \"./Types\";\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class HTTPError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\nimport type { DocumentImportParameters, ImportResponse } from \"../Documents\";\nimport { ReadStream } from \"node:fs\";\n\ninterface ImportErrorPayload {\n documentsInJSONLFormat: string | ReadStream;\n options: DocumentImportParameters;\n failedItems: ImportResponse[];\n successCount: number;\n}\n\nexport default class ImportError extends TypesenseError {\n payload: ImportErrorPayload;\n importResults: ImportResponse[];\n constructor(\n message: string,\n importResults: ImportResponse[],\n payload: ImportErrorPayload,\n ) {\n super(message);\n this.importResults = importResults;\n this.payload = payload;\n }\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class MissingConfigurationError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectAlreadyExists extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectNotFound extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectUnprocessable extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestMalformed extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestUnauthorized extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ServerError extends TypesenseError {}\n","export default class TypesenseError extends Error {\n httpStatus?: number;\n httpBody?: string;\n\n // Source: https://stackoverflow.com/a/58417721/123545\n constructor(message?: string, httpBody?: string, httpStatus?: number) {\n super(message);\n this.name = new.target.name;\n this.httpBody = httpBody;\n this.httpStatus = httpStatus;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import HTTPError from \"./HTTPError\";\nimport MissingConfigurationError from \"./MissingConfigurationError\";\nimport ObjectAlreadyExists from \"./ObjectAlreadyExists\";\nimport ObjectNotFound from \"./ObjectNotFound\";\nimport ObjectUnprocessable from \"./ObjectUnprocessable\";\nimport RequestMalformed from \"./RequestMalformed\";\nimport RequestUnauthorized from \"./RequestUnauthorized\";\nimport ServerError from \"./ServerError\";\nimport ImportError from \"./ImportError\";\nimport TypesenseError from \"./TypesenseError\";\n\nexport {\n HTTPError,\n MissingConfigurationError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n TypesenseError,\n ImportError,\n};\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/health\";\n\nexport interface HealthResponse {\n ok: boolean;\n}\n\nexport default class Health {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Keys from \"./Keys\";\n\nexport interface KeyCreateSchema {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n actions: Actions[] | (string & {})[];\n collections: string[];\n description?: string;\n value?: string;\n value_prefix?: string;\n expires_at?: number;\n autodelete?: boolean;\n}\n\ntype CRUDActions = \"create\" | \"delete\" | \"get\" | \"list\" | \"*\";\ntype DocumentActionTypes =\n | \"search\"\n | \"get\"\n | \"create\"\n | \"upsert\"\n | \"update\"\n | \"delete\"\n | \"import\"\n | \"export\"\n | \"*\";\n\ntype CRUDFeatures =\n | \"collections\"\n | \"aliases\"\n | \"synonyms\"\n | \"overrides\"\n | \"stopwords\"\n | \"keys\"\n | \"analytics\"\n | \"analytics/rules\";\n\ntype FeatureActions = `${CRUDFeatures}:${CRUDActions}`;\ntype DocumentActions = `documents:${DocumentActionTypes}`;\ntype AnalyticsEventActions = \"analytics/events:create\";\ntype MiscActions = `${`metrics.json` | `stats.json` | `debug`}.list` | \"*\";\n\nexport type Actions =\n | FeatureActions\n | DocumentActions\n | AnalyticsEventActions\n | MiscActions;\n\nexport interface KeyDeleteSchema {\n id: number;\n}\n\nexport interface KeySchema extends KeyCreateSchema {\n id: number;\n}\n\nexport default class Key {\n constructor(\n private id: number,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import { createHmac } from \"crypto\";\nimport ApiCall from \"./ApiCall\";\nimport { KeyCreateSchema, KeySchema } from \"./Key\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/keys\";\n\nexport interface KeysRetrieveSchema {\n keys: KeySchema[];\n}\n\nexport interface GenerateScopedSearchKeyParams<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n expires_at?: number;\n cache_ttl?: number;\n limit_multi_searches?: number;\n}\n\nexport default class Keys {\n constructor(private apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(params: KeyCreateSchema): Promise {\n return this.apiCall.post(Keys.RESOURCEPATH, params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n generateScopedSearchKey(\n searchKey: string,\n parameters: GenerateScopedSearchKeyParams,\n ): string {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when used with the search endpoint.\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(parameters);\n const paramsJSON = JSON.stringify(normalizedParams);\n const digest = Buffer.from(\n createHmac(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"),\n );\n const keyPrefix = searchKey.substr(0, 4);\n const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`;\n\n return Buffer.from(rawScopedKey).toString(\"base64\");\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/metrics.json\";\n\nexport interface MetricsResponse {\n [key: `system_cpu${number}_active_percentage`]: string;\n system_cpu_active_percentage: string;\n system_disk_total_bytes: string;\n system_disk_used_bytes: string;\n system_memory_total_bytes: string;\n system_memory_total_swap_bytes?: string;\n system_memory_used_bytes: string;\n system_memory_used_swap_bytes?: string;\n system_network_received_bytes: string;\n system_network_sent_bytes: string;\n typesense_memory_active_bytes: string;\n typesense_memory_allocated_bytes: string;\n typesense_memory_fragmentation_ratio: string;\n typesense_memory_mapped_bytes: string;\n typesense_memory_metadata_bytes: string;\n typesense_memory_resident_bytes: string;\n typesense_memory_retained_bytes: string;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport type Configuration from \"./Configuration\";\nimport RequestWithCache from \"./RequestWithCache\";\nimport type {\n DocumentSchema,\n ExtractBaseTypes,\n SearchOptions,\n SearchParams,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\nimport { Logger } from \"loglevel\";\n\nconst RESOURCEPATH = \"/multi_search\";\n\nexport default class MultiSearch {\n private requestWithCache: RequestWithCache;\n readonly logger: Logger;\n\n constructor(\n private apiCall: ApiCall,\n private configuration: Configuration,\n private useTextContentType: boolean = false,\n ) {\n this.requestWithCache = new RequestWithCache();\n this.logger = this.apiCall.logger;\n }\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithUnionSchema,\n commonParams?: MultiSearchUnionParameters,\n options?: SearchOptions,\n ): Promise>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithoutUnionSchema,\n commonParams?: MultiSearchResultsParameters,\n options?: SearchOptions,\n ): Promise<{\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsSchema,\n commonParams?:\n | MultiSearchUnionParameters\n | MultiSearchResultsParameters,\n options?: SearchOptions,\n ): Promise> {\n const params = commonParams ? { ...commonParams } : {};\n const cacheSearchResultsForSeconds =\n options?.cacheSearchResultsForSeconds ??\n this.configuration.cacheSearchResultsForSeconds;\n\n if (this.configuration.useServerSideSearchCache === true) {\n params.use_cache = true;\n }\n\n if (searchRequests.union === true && this.hasAnySearchObjectPagination(searchRequests)) {\n this.logger.warn(\n \"Individual `searches` pagination parameters are ignored when `union: true` is set. Use a top-level pagination parameter instead. See https://typesense.org/docs/29.0/api/federated-multi-search.html#union-search\"\n );\n }\n\n const normalizedSearchRequests: Omit & {\n searches: ExtractBaseTypes>[];\n } = {\n union: searchRequests.union,\n searches: searchRequests.searches.map(\n normalizeArrayableParams<\n T[number],\n SearchParams,\n Infix\n >,\n ),\n };\n\n const { streamConfig, ...paramsWithoutStream } = params;\n const normalizedQueryParams = normalizeArrayableParams(\n paramsWithoutStream as SearchParams,\n );\n\n return this.requestWithCache.perform(\n this.apiCall,\n \"post\",\n {\n path: RESOURCEPATH,\n body: normalizedSearchRequests,\n queryParams: normalizedQueryParams,\n headers: this.useTextContentType\n ? { \"content-type\": \"text/plain\" }\n : {},\n streamConfig,\n abortSignal: options?.abortSignal,\n isStreamingRequest: this.isStreamingRequest(params),\n },\n cacheSearchResultsForSeconds !== undefined\n ? { cacheResponseForSeconds: cacheSearchResultsForSeconds }\n : undefined,\n );\n }\n\n private isStreamingRequest(commonParams: { streamConfig?: unknown }) {\n return commonParams.streamConfig !== undefined;\n }\n\n private hasAnySearchObjectPagination(searchRequests: MultiSearchRequestsSchema) {\n return searchRequests.searches.some(search => search.page !== undefined || search.per_page !== undefined || search.offset !== undefined || search.limit !== undefined || search.limit_hits !== undefined);\n }\n}\n\nexport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport NLSearchModels from \"./NLSearchModels\";\nimport type { NLSearchModelBase, NLSearchModelSchema } from \"./NLSearchModels\";\n\ntype NLSearchModelUpdateSchema = NLSearchModelBase;\n\nexport interface NLSearchModelDeleteSchema {\n id: string;\n}\n\nexport default class NLSearchModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(\n schema: NLSearchModelUpdateSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), schema);\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${NLSearchModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/nl_search_models\";\n\n// Base schema with all possible fields\nexport interface NLSearchModelBase {\n model_name: string;\n api_key?: string;\n api_url?: string;\n max_bytes?: number;\n temperature?: number;\n system_prompt?: string;\n // Google-specific parameters\n top_p?: number;\n top_k?: number;\n stop_sequences?: string[];\n api_version?: string;\n // GCP Vertex AI specific\n project_id?: string;\n access_token?: string;\n refresh_token?: string;\n client_id?: string;\n client_secret?: string;\n region?: string;\n max_output_tokens?: number;\n // Cloudflare specific\n account_id?: string;\n}\n\nexport interface NLSearchModelCreateSchema extends NLSearchModelBase {\n id?: string;\n}\n\nexport interface NLSearchModelSchema extends NLSearchModelBase {\n id: string;\n}\n\nexport type NLSearchModelsRetrieveSchema = NLSearchModelSchema[];\n\nexport default class NLSearchModels {\n constructor(private apiCall: ApiCall) {}\n\n async create(\n schema: NLSearchModelCreateSchema,\n ): Promise {\n return this.apiCall.post(this.endpointPath(), schema);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(): string {\n return NLSearchModels.RESOURCEPATH;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/operations\";\n\nexport interface SchemaChangeStatus {\n collection: string;\n validated_docs: number;\n altered_docs: number;\n}\n\nexport default class Operations {\n constructor(private apiCall: ApiCall) {}\n\n async perform(\n operationName:\n | \"vote\"\n | \"snapshot\"\n | \"cache/clear\"\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- Can't use `object` here, it needs to intersect with `{}`\n | (string & {}),\n queryParameters: Record = {},\n ): Promise {\n return this.apiCall.post(\n `${RESOURCEPATH}/${operationName}`,\n {},\n queryParameters,\n );\n }\n\n async getSchemaChanges(): Promise {\n return this.apiCall.get(\n `${RESOURCEPATH}/schema_changes`,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Overrides, { OverrideCreateSchema } from \"./Overrides\";\n\nexport interface OverrideSchema extends OverrideCreateSchema {\n id: string;\n}\n\nexport interface OverrideDeleteSchema {\n id: string;\n}\n\nexport default class Override {\n constructor(\n private collectionName: string,\n private overrideId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { OverrideSchema } from \"./Override\";\n\nconst RESOURCEPATH = \"/overrides\";\n\nexport interface OverrideRuleQuerySchema {\n query?: string;\n match?: \"exact\" | \"contains\";\n}\n\nexport interface OverrideRuleFilterSchema {\n filter_by?: string;\n}\n\nexport interface OverrideRuleTagsSchema {\n tags?: string[];\n}\n\nexport interface OverrideCreateSchema {\n rule: OverrideRuleQuerySchema &\n OverrideRuleFilterSchema &\n OverrideRuleTagsSchema;\n filter_by?: string;\n sort_by?: string;\n remove_matched_tokens?: boolean;\n replace_query?: string;\n includes?: Array<{\n id: string;\n position: number;\n }>;\n excludes?: Array<{ id: string }>;\n filter_curated_hits?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n stop_processing?: boolean;\n metadata?: object;\n}\n\nexport interface OverridesRetrieveSchema {\n overrides: OverrideSchema[];\n}\n\nexport default class Overrides {\n constructor(\n private collectionName: string,\n private apiCall: ApiCall,\n ) {}\n\n async upsert(\n overrideId: string,\n params: OverrideCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(overrideId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Collections.RESOURCEPATH}/${this.collectionName}${\n Overrides.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { DocumentSchema } from \"./Documents\";\nimport Presets, { PresetCreateSchema } from \"./Presets\";\n\nexport interface PresetSchema\n extends PresetCreateSchema {\n name: string;\n}\n\nexport interface PresetDeleteSchema {\n name: string;\n}\n\nexport default class Preset {\n constructor(\n private presetId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise> {\n return this.apiCall.get>(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { PresetSchema } from \"./Preset\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { MultiSearchRequestsSchema } from \"./MultiSearch\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/presets\";\n\nexport interface PresetCreateSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n value: SearchParams | MultiSearchRequestsSchema;\n}\n\nexport interface PresetsRetrieveSchema {\n presets: PresetSchema[];\n}\n\nexport default class Presets {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n presetId: string,\n params: PresetCreateSchema,\n ): Promise> {\n if (typeof params.value === \"object\" && \"searches\" in params.value) {\n const normalizedParams = params.value.searches.map((search) =>\n normalizeArrayableParams, Infix>(search),\n );\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: { searches: normalizedParams },\n });\n }\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(params.value);\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: normalizedParams,\n });\n }\n\n async retrieve(): Promise<\n PresetsRetrieveSchema\n > {\n return this.apiCall.get>(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Presets.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import { AxiosRequestConfig } from \"axios\";\nimport type { DocumentSchema } from \"./Documents\";\nimport { HttpClient } from \"./ApiCall\";\nimport type { RequestParams } from \"./Types\";\n\nconst defaultCacheResponseForSeconds = 2 * 60;\nconst defaultMaxSize = 100;\n\ninterface CacheEntry {\n requestTimestamp: number;\n response: T;\n}\n\ninterface PromiseCacheEntry {\n requestTimestamp: number;\n responsePromise: Promise;\n}\n\nexport default class RequestWithCache {\n private responseCache: Map> = new Map();\n private responsePromiseCache: Map> =\n new Map();\n\n clearCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n\n async perform<\n const TContext extends HttpClient,\n const TMethod extends keyof HttpClient,\n const TDoc extends DocumentSchema[],\n TResult,\n >(\n requestContext: TContext,\n methodName: TMethod,\n requestParams: RequestParams,\n cacheOptions: CacheOptions | undefined,\n ): Promise {\n const {\n cacheResponseForSeconds = defaultCacheResponseForSeconds,\n maxSize = defaultMaxSize,\n } = cacheOptions || {};\n const isCacheDisabled =\n cacheOptions === undefined ||\n cacheResponseForSeconds <= 0 ||\n maxSize <= 0;\n\n const {\n path,\n queryParams,\n body,\n headers,\n streamConfig,\n abortSignal,\n responseType,\n isStreamingRequest,\n } = requestParams;\n\n if (isCacheDisabled) {\n return this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n }\n\n const requestParamsJSON = JSON.stringify(requestParams);\n const cacheEntry = this.responseCache.get(requestParamsJSON);\n const now = Date.now();\n\n if (cacheEntry) {\n const isEntryValid =\n now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestParamsJSON);\n this.responseCache.set(requestParamsJSON, cacheEntry);\n return cacheEntry.response as TResult;\n } else {\n this.responseCache.delete(requestParamsJSON);\n }\n }\n\n const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON);\n\n if (cachePromiseEntry) {\n const isEntryValid =\n now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestParamsJSON);\n this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry);\n return cachePromiseEntry.responsePromise as Promise;\n } else {\n this.responsePromiseCache.delete(requestParamsJSON);\n }\n }\n\n const responsePromise = this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n\n this.responsePromiseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n responsePromise,\n });\n\n const response = await responsePromise;\n this.responseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n response: response,\n });\n\n const isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n const oldestEntry = this.responseCache.keys().next().value;\n if (oldestEntry) {\n this.responseCache.delete(oldestEntry);\n }\n }\n const isResponsePromiseCacheOverMaxSize =\n this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n const oldestEntry = this.responsePromiseCache.keys().next().value;\n if (oldestEntry) {\n this.responsePromiseCache.delete(oldestEntry);\n }\n }\n return response;\n }\n\n private executeRequest(\n context: HttpClient,\n methodName: keyof HttpClient,\n path: string,\n queryParams: Record = {},\n body?: unknown,\n headers?: Record,\n options?: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"];\n streamConfig?: any;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise {\n const method = context[methodName];\n\n switch (methodName) {\n case \"get\":\n return (method as HttpClient[\"get\"]).call(context, path, queryParams, {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n }) as Promise;\n\n case \"delete\":\n return (method as HttpClient[\"delete\"]).call(\n context,\n path,\n queryParams,\n ) as Promise;\n\n case \"post\":\n return (method as HttpClient[\"post\"]).call(\n context,\n path,\n body,\n queryParams,\n headers || {},\n {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n },\n ) as Promise;\n\n case \"put\":\n case \"patch\":\n return (method as HttpClient[typeof methodName]).call(\n context,\n path,\n body,\n queryParams,\n ) as Promise;\n\n default:\n throw new Error(`Unsupported method: ${String(methodName)}`);\n }\n }\n}\n\ninterface CacheOptions {\n cacheResponseForSeconds?: number;\n maxSize?: number;\n}\n\nexport type { RequestParams } from \"./Types\";\n","import Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport MultiSearch from \"./MultiSearch\";\nimport { DocumentSchema } from \"./Documents\";\nimport { SearchOnlyCollection } from \"./SearchOnlyCollection\";\n\nexport default class SearchClient {\n public readonly multiSearch: MultiSearch;\n private readonly configuration: Configuration;\n private readonly apiCall: ApiCall;\n private readonly individualCollections: Record<\n string,\n SearchOnlyCollection\n >;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true;\n if (\n options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000\n ) {\n console.warn(\n \"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\"\n );\n options.sendApiKeyAsQueryParam = false;\n }\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n\n clearCache() {\n this.multiSearch.clearCache();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(([_, collection]) => {\n collection.documents().clearCache();\n });\n }\n\n collections(\n collectionName: string,\n ): SearchOnlyCollection {\n if (!collectionName) {\n throw new Error(\n \"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\"\n );\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection(\n collectionName,\n this.apiCall,\n this.configuration\n );\n }\n return this.individualCollections[\n collectionName\n ] as SearchOnlyCollection;\n }\n }\n}\n","import type { DocumentSchema } from \"./Documents\";\nimport ApiCall from \"./ApiCall\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport type { SearchableDocuments } from \"./Types\";\n\nexport class SearchOnlyCollection {\n private readonly _documents: SearchableDocuments;\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any\n ) {\n this._documents = new SearchOnlyDocuments(\n this.name,\n this.apiCall,\n this.configuration\n );\n }\n\n documents(): SearchableDocuments {\n return this._documents;\n }\n}\n","import RequestWithCache from \"./RequestWithCache\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport Collections from \"./Collections\";\nimport type {\n DocumentSchema,\n SearchOptions,\n SearchParamsWithPreset,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport { SearchableDocuments, SearchParams } from \"./Types\";\n\nconst RESOURCEPATH = \"/documents\";\n\nexport class SearchOnlyDocuments\n implements SearchableDocuments\n{\n protected requestWithCache: RequestWithCache = new RequestWithCache();\n\n constructor(\n protected collectionName: string,\n protected apiCall: ApiCall,\n protected configuration: Configuration,\n ) {}\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n abortSignal = null,\n }: SearchOptions = {},\n ): Promise> {\n const additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n\n const { streamConfig, ...rest } = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(searchParameters);\n\n const queryParams = {\n ...additionalQueryParams,\n ...rest,\n };\n\n const isStreamingRequest = queryParams.conversation_stream === true;\n\n return this.requestWithCache.perform<\n ApiCall,\n \"get\",\n [T],\n SearchResponse\n >(\n this.apiCall,\n \"get\",\n {\n path: this.endpointPath(\"search\"),\n queryParams,\n streamConfig,\n abortSignal,\n isStreamingRequest,\n },\n {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n },\n );\n }\n\n protected endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + operation\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/stats.json\";\n\nexport interface EndpointStats {\n [endpoint: string]: number;\n}\n\nexport interface StatsResponse {\n delete_latency_ms?: number;\n delete_requests_per_second?: number;\n import_latency_ms?: number;\n import_requests_per_second?: number;\n latency_ms?: EndpointStats;\n overloaded_requests_per_second?: number;\n pending_write_batches?: number;\n requests_per_second?: EndpointStats;\n search_latency_ms?: number;\n search_requests_per_second?: number;\n total_requests_per_second?: number;\n write_latency_ms?: number;\n write_requests_per_second?: number;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\nimport StemmingDictionary from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming\";\n\nexport default class Stemming {\n private readonly _stemmingDictionaries: StemmingDictionaries;\n private readonly individualStemmingDictionaries: Record<\n string,\n StemmingDictionary\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._stemmingDictionaries = new StemmingDictionaries(this.apiCall);\n }\n\n dictionaries(): StemmingDictionaries;\n dictionaries(id: string): StemmingDictionary;\n dictionaries(id?: string): StemmingDictionaries | StemmingDictionary {\n if (id === undefined) {\n return this._stemmingDictionaries;\n } else {\n if (this.individualStemmingDictionaries[id] === undefined) {\n this.individualStemmingDictionaries[id] = new StemmingDictionary(\n id,\n this.apiCall,\n );\n }\n return this.individualStemmingDictionaries[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { StemmingDictionaryCreateSchema } from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming/dictionaries\";\n\nexport interface StemmingDictionariesRetrieveSchema {\n dictionaries: string[];\n}\n\nexport default class StemmingDictionaries {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n id: string,\n wordRootCombinations: StemmingDictionaryCreateSchema[] | string,\n ): Promise {\n const wordRootCombinationsInJSONLFormat = Array.isArray(\n wordRootCombinations,\n )\n ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join(\"\\n\")\n : wordRootCombinations;\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: {id},\n bodyParameters: wordRootCombinationsInJSONLFormat,\n additionalHeaders: {\"Content-Type\": \"text/plain\"},\n skipConnectionTimeout: true,\n }\n );\n\n return Array.isArray(wordRootCombinations)\n ? resultsInJSONLFormat\n .split(\"\\n\")\n .map((line) => JSON.parse(line) as StemmingDictionaryCreateSchema)\n : resultsInJSONLFormat;\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return operation === undefined\n ? `${StemmingDictionaries.RESOURCEPATH}`\n : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\n\nexport interface StemmingDictionaryCreateSchema {\n root: string;\n word: string;\n}\n\nexport interface StemmingDictionarySchema {\n id: string;\n words: StemmingDictionaryCreateSchema[];\n}\n\nexport interface StemmingDictionaryDeleteSchema {\n id: string;\n}\n\nexport default class StemmingDictionary {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Stopwords from \"./Stopwords\";\n\nexport interface StopwordSchema {\n id: string;\n stopwords: string[] | { id: string; stopwords: string[] };\n locale?: string;\n}\n\nexport interface StopwordDeleteSchema {\n id: string;\n}\n\nexport default class Stopword {\n constructor(\n private stopwordId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { StopwordSchema } from \"./Stopword\";\n\nconst RESOURCEPATH = \"/stopwords\";\n\nexport interface StopwordCreateSchema {\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordsRetrieveSchema {\n stopwords: StopwordSchema[];\n}\n\nexport default class Stopwords {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n stopwordId: string,\n params: StopwordCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(stopwordId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Stopwords.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Synonyms, { SynonymCreateSchema } from \"./Synonyms\";\n\nexport interface SynonymSchema extends SynonymCreateSchema {\n id: string;\n}\n\nexport interface SynonymDeleteSchema {\n id: string;\n}\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.synonymSets` (new Synonym Sets APIs).\n */\nexport default class Synonym {\n private static hasWarnedDeprecation = false;\n constructor(\n private collectionName: string,\n private synonymId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n if (!Synonym.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'synonym' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets 'synonym_sets'.\",\n );\n Synonym.hasWarnedDeprecation = true;\n }\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets from \"./SynonymSets\";\nimport type { SynonymSetCreateSchema, SynonymSetSchema } from \"./SynonymSets\";\nimport SynonymSetItems from \"./SynonymSetItems\";\nimport SynonymSetItem from \"./SynonymSetItem\";\n\nexport interface SynonymSetDeleteSchema {\n name: string;\n}\n\nexport type SynonymSetRetrieveSchema = SynonymSetCreateSchema;\n\nexport default class SynonymSet {\n private readonly _items: SynonymSetItems;\n private individualItems: Record = {};\n constructor(\n private synonymSetName: string,\n private apiCall: ApiCall,\n ) {\n this._items = new SynonymSetItems(this.synonymSetName, apiCall);\n }\n\n async upsert(\n params: SynonymSetCreateSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n items(): SynonymSetItems;\n items(itemId: string): SynonymSetItem;\n items(itemId?: string): SynonymSetItems | SynonymSetItem {\n if (itemId === undefined) {\n return this._items;\n } else {\n if (this.individualItems[itemId] === undefined) {\n this.individualItems[itemId] = new SynonymSetItem(\n this.synonymSetName,\n itemId,\n this.apiCall,\n );\n }\n return this.individualItems[itemId];\n }\n }\n\n private endpointPath(): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets, { SynonymItemSchema } from \"./SynonymSets\";\n\nexport interface SynonymSetItemDeleteSchema {\n id: string;\n}\n\nexport default class SynonymSetItem {\n constructor(\n private synonymSetName: string,\n private itemId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}/items/${encodeURIComponent(this.itemId)}`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets, { SynonymItemSchema } from \"./SynonymSets\";\n\nexport default class SynonymSetItems {\n constructor(\n private synonymSetName: string,\n private apiCall: ApiCall,\n ) {}\n\n async upsert(\n itemId: string,\n params: Omit,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(itemId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}/items${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\n\nexport interface SynonymItemSchema {\n id: string;\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymSetCreateSchema {\n items: SynonymItemSchema[];\n}\n\nexport interface SynonymSetSchema extends SynonymSetCreateSchema {\n name: string;\n}\n\nexport interface SynonymSetsRetrieveSchema {\n synonym_sets: SynonymSetSchema[];\n}\n\nexport default class SynonymSets {\n constructor(private apiCall: ApiCall) {}\n static readonly RESOURCEPATH = \"/synonym_sets\";\n\n async retrieve(): Promise {\n return this.apiCall.get(SynonymSets.RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { SynonymSchema } from \"./Synonym\";\n\nconst RESOURCEPATH = \"/synonyms\";\n\nexport interface SynonymCreateSchema {\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymsRetrieveSchema {\n synonyms: SynonymSchema[];\n}\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.synonymSets` (new Synonym Sets APIs).\n */\nexport default class Synonyms {\n private static hasWarnedDeprecation = false;\n constructor(private collectionName: string, private apiCall: ApiCall) {}\n\n async upsert(\n synonymId: string,\n params: SynonymCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(synonymId),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string) {\n if (!Synonyms.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'synonyms' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets ('synonym_sets').\",\n );\n Synonyms.hasWarnedDeprecation = true;\n }\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${\n Synonyms.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { BaseStreamConfig, StreamConfig } from \"./Configuration\";\nimport type {\n DocumentSchema,\n SearchParamsWithPreset,\n SearchOptions,\n SearchResponse,\n DocumentWriteParameters,\n DeleteQuery,\n DeleteResponse,\n ImportResponse,\n DocumentsExportParameters,\n} from \"./Documents\";\n\nexport type DropTokensMode = \"right_to_left\" | \"left_to_right\" | \"both_sides:3\";\n\nexport type OperationMode = \"off\" | \"always\" | \"fallback\";\n\nexport type CommaSeparated<\n T extends string,\n ToExtend,\n OriginalString extends string = T,\n Previous extends string[] = [],\n> = T extends `${infer Start},${infer Rest}`\n ? TrimString extends ToExtend\n ? CommaSeparated<\n Rest,\n ToExtend,\n OriginalString,\n [...Previous, TrimString]\n >\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n }\n : TrimString extends ToExtend\n ? OriginalString\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n };\n\nexport type MessageChunk = {\n message: string;\n conversation_id: string;\n};\n\nexport type UnionArrayKeys = {\n [K in keyof T]: T[K] extends undefined\n ? never\n : NonNullable extends infer R\n ? R extends R[]\n ? never\n : R extends (infer U)[] | infer U\n ? U[] extends R\n ? K\n : never\n : never\n : never;\n}[keyof T] &\n keyof T;\n\nexport type UnionArraySearchParams =\n UnionArrayKeys;\n\nexport type ArraybleParams = {\n readonly [K in UnionArraySearchParams]: string;\n};\n\nexport type ExtractBaseTypes = {\n [K in keyof T]: K extends UnionArrayKeys\n ? T[K] extends (infer U)[] | infer U\n ? U\n : T[K]\n : T[K];\n};\n\nexport const arrayableParams: ArraybleParams = {\n query_by: \"query_by\",\n query_by_weights: \"query_by_weights\",\n facet_by: \"facet_by\",\n group_by: \"group_by\",\n include_fields: \"include_fields\",\n exclude_fields: \"exclude_fields\",\n highlight_fields: \"highlight_fields\",\n highlight_full_fields: \"highlight_full_fields\",\n pinned_hits: \"pinned_hits\",\n hidden_hits: \"hidden_hits\",\n infix: \"infix\",\n override_tags: \"override_tags\",\n num_typos: \"num_typos\",\n prefix: \"prefix\",\n synonym_sets: \"synonym_sets\",\n sort_by: \"sort_by\",\n};\n\nexport interface SearchParams<\n TDoc extends DocumentSchema,\n Infix extends string = string,\n> {\n // From https://typesense.org/docs/latest/api/documents.html#arguments\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- Can't use `object` here, it needs to intersect with `{}`\n q?: \"*\" | (string & {});\n query_by?: string | string[];\n query_by_weights?: string | number[];\n prefix?: string | boolean | boolean[]; // default: true\n filter_by?: string;\n max_filter_by_candidates?: number; // default: 4\n enable_synonyms?: boolean; // default: true\n enable_analytics?: boolean; // default: true\n filter_curated_hits?: boolean; // default: false\n enable_lazy_filter?: boolean; // default: false\n sort_by?: string | string[]; // default: text match desc\n facet_by?: string | string[];\n max_facet_values?: number;\n facet_sample_threshold?: number;\n facet_sample_percent?: number;\n facet_query?: string;\n facet_query_num_typos?: number;\n facet_return_parent?: string;\n facet_strategy?: \"exhaustive\" | \"top_values\" | \"automatic\";\n page?: number; // default: 1\n per_page?: number; // default: 10, max 250\n group_by?: string | string[];\n group_limit?: number; // default:\n group_missing_values?: boolean;\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n highlight_fields?: string | string[]; // default: all queried fields\n highlight_full_fields?: string | string[]; // default: all fields\n highlight_affix_num_tokens?: number; // default: 4\n highlight_start_tag?: string; // default: \n highlight_end_tag?: string; // default: \n enable_highlight_v1?: boolean;\n snippet_threshold?: number; // default: 30\n nl_query?: boolean;\n nl_model_id?: string;\n nl_query_debug?: boolean;\n nl_query_prompt_cache_ttl?: number;\n num_typos?: string | number | number[]; // default: 2\n min_len_1typo?: number;\n min_len_2typo?: number;\n split_join_tokens?: OperationMode;\n exhaustive_search?: boolean;\n drop_tokens_threshold?: number; // default: 10\n drop_tokens_mode?: DropTokensMode;\n typo_tokens_threshold?: number; // default: 100\n pinned_hits?: string | string[];\n synonym_sets?: string[] | string;\n hidden_hits?: string | string[];\n limit_hits?: number; // default: no limit\n pre_segmented_query?: boolean;\n enable_overrides?: boolean;\n override_tags?: string | string[];\n prioritize_exact_match?: boolean; // default: true\n prioritize_token_position?: boolean;\n prioritize_num_matching_fields?: boolean;\n search_cutoff_ms?: number;\n use_cache?: boolean;\n max_candidates?: number;\n infix?:\n | CommaSeparated\n | OperationMode[]\n | OperationMode;\n preset?: string;\n text_match_type?: \"max_score\" | \"max_weight\" | \"sum_score\";\n vector_query?: string;\n \"x-typesense-api-key\"?: string;\n \"x-typesense-user-id\"?: string;\n offset?: number;\n limit?: number;\n stopwords?: string;\n conversation?: boolean;\n validate_field_names?: boolean;\n conversation_stream?: boolean;\n conversation_model_id?: string;\n conversation_id?: string;\n voice_query?: string;\n streamConfig?: StreamConfig;\n}\n\nexport interface SearchResponseRequestParams {\n collection_name?: string;\n q?: string;\n page?: number;\n per_page?: number;\n first_q?: string;\n voice_query?: {\n transcribed_query?: string;\n };\n}\n\nexport interface SearchableDocuments<\n T extends DocumentSchema = DocumentSchema,\n Infix extends string = string,\n> {\n search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n options: SearchOptions,\n ): Promise>;\n clearCache(): void;\n}\n\nexport interface WriteableDocuments {\n create(\n document: T,\n options: Omit,\n ): Promise;\n upsert(\n document: T,\n options: Omit,\n ): Promise;\n update(\n document: T,\n options: Omit,\n ): Promise;\n emplace(\n document: T,\n options: Omit,\n ): Promise;\n delete(query: DeleteQuery): Promise;\n import(\n documents: T[] | string,\n options: DocumentWriteParameters,\n ): Promise;\n export(options: DocumentsExportParameters): Promise;\n}\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\nexport interface RequestParams {\n path: string;\n queryParams?: Record;\n body?: unknown;\n headers?: Record;\n streamConfig?:\n | StreamConfig\n | MultiSearchResultsStreamConfig\n | MultiSearchUnionStreamConfig;\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n isStreamingRequest: boolean | undefined;\n}\n\nexport interface MultiSearchRequestsWithUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union: true;\n}\n\nexport interface MultiSearchRequestsWithoutUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union?: false | undefined;\n}\n\nexport type MultiSearchRequestsSchema<\n T extends DocumentSchema,\n Infix extends string,\n> =\n | MultiSearchRequestsWithUnionSchema\n | MultiSearchRequestsWithoutUnionSchema;\n\nexport interface UnionSearchResponse\n extends Omit, \"request_params\"> {\n union_request_params: UnionSearchResponseRequestParams[];\n}\n\ntype AllRequiredBut = Required> & Pick;\n\nexport interface UnionSearchResponseRequestParams\n extends AllRequiredBut {\n found: number;\n}\n\nexport type MultiSearchResponse<\n T extends DocumentSchema[],\n Infix extends string,\n R extends MultiSearchRequestsSchema<\n T[number],\n Infix\n > = MultiSearchRequestsSchema,\n> =\n R extends MultiSearchRequestsWithUnionSchema\n ? UnionSearchResponse\n : {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n };\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\n\ninterface SearchesMultiSearchesRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n searches: (\n | MultiSearchRequestSchema\n | MultiSearchRequestWithPresetSchema\n )[];\n}\n\ninterface BaseMultiSearchRequestSchema {\n collection?: string;\n rerank_hybrid_matches?: boolean;\n \"x-typesense-api-key\"?: string;\n}\n\ntype CommonMultiSearchParametersBase<\n T extends DocumentSchema,\n Infix extends string,\n> = Partial<\n BaseMultiSearchRequestSchema & Omit, \"streamConfig\">\n>;\n\nexport type MultiSearchRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema & Omit, \"streamConfig\">;\n\nexport type MultiSearchRequestWithPresetSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema &\n Omit, \"streamConfig\">;\n\nexport type MultiSearchUnionParameters<\n T extends DocumentSchema,\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchUnionStreamConfig;\n use_cache?: boolean;\n};\n\nexport type MultiSearchResultsParameters<\n T extends DocumentSchema[],\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchResultsStreamConfig;\n use_cache?: boolean;\n};\n\ntype Whitespace = \" \" | \"\\n\" | \"\\t\";\n\ntype TrimString = S extends `${Whitespace}${infer S}`\n ? TrimString\n : S extends `${infer S}${Whitespace}`\n ? TrimString\n : S;\n","import { DocumentSchema } from \"./Documents\";\nimport { arrayableParams } from \"./Types\";\nimport type { UnionArrayKeys, ExtractBaseTypes, SearchParams } from \"./Types\";\n\nfunction hasNoArrayValues<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T | ExtractBaseTypes): params is ExtractBaseTypes {\n return Object.keys(arrayableParams)\n .filter((key) => params[key] !== undefined)\n .every((key) => isNonArrayValue(params[key]));\n}\n\nexport function normalizeArrayableParams<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T): Prettify> {\n const result = { ...params };\n\n const transformedValues = Object.keys(arrayableParams)\n .filter((key) => Array.isArray(result[key]))\n .map((key) => {\n result[key] = result[key].join(\",\");\n return key;\n });\n\n if (!transformedValues.length && hasNoArrayValues(result)) {\n return result;\n }\n\n if (!hasNoArrayValues(result)) {\n throw new Error(\n `Failed to normalize arrayable params: ${JSON.stringify(result)}`,\n );\n }\n\n return result;\n}\n\nfunction isNonArrayValue<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n K extends UnionArrayKeys,\n>(value: T[K] | ExtractBaseTypes[K]): value is ExtractBaseTypes[K] {\n return !Array.isArray(value);\n}\n\ntype Prettify = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n} & {};\n\ninterface ErrorWithMessage extends Error {\n message: string;\n}\n\nfunction isErrorWithMessage(error: unknown): error is ErrorWithMessage {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof (error as Record).message === \"string\"\n );\n}\n\nexport function toErrorWithMessage(couldBeError: unknown): ErrorWithMessage {\n if (isErrorWithMessage(couldBeError)) return couldBeError;\n\n try {\n if (typeof couldBeError === \"string\") {\n return new Error(couldBeError);\n }\n return new Error(JSON.stringify(couldBeError));\n } catch {\n return new Error(String(couldBeError));\n }\n}\n","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(\n cookie.slice(location + cookieName.length + 1)\n )[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(\n defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n );\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name,\n defaultLogger.methodFactory\n );\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _readOnlyError(r) {\n throw new TypeError('\"' + r + '\" is read-only');\n}\nexport { _readOnlyError as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const body = new ReadableStream();\n\n const hasContentType = new Request(platform.origin, {\n body,\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n body.cancel();\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n \n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true\n });\n \n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst isValidHeaderValue = (value) => !/[\\r\\n]/.test(value);\n\nfunction assertValidHeaderValue(value, header) {\n if (value === false || value == null) {\n return;\n }\n\n if (utils.isArray(value)) {\n value.forEach((v) => assertValidHeaderValue(v, header));\n return;\n }\n\n if (!isValidHeaderValue(String(value))) {\n throw new Error(`Invalid character in header content [\"${header}\"]`);\n }\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction stripTrailingCRLF(str) {\n let end = str.length;\n\n while (end > 0) {\n const charCode = str.charCodeAt(end - 1);\n\n if (charCode !== 10 && charCode !== 13) {\n break;\n }\n\n end -= 1;\n }\n\n return end === str.length ? str : str.slice(0, end);\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : stripTrailingCRLF(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n assertValidHeaderValue(_value, _header);\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !this.responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","export const VERSION = \"1.15.0\";","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (FormDataCtor && thing instanceof FormDataCtor) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tif (!(moduleId in __webpack_modules__)) {\n\t\tdelete __webpack_module_cache__[moduleId];\n\t\tvar e = new Error(\"Cannot find module '\" + moduleId + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Client from \"./Typesense/Client\";\nimport SearchClient from \"./Typesense/SearchClient\";\nimport * as Errors from \"./Typesense/Errors\";\n\nexport { Client, SearchClient, Errors };\nexport default { Client, SearchClient, Errors };\n\nexport type * from \"./Typesense/Aliases\";\nexport type * from \"./Typesense/AnalyticsRulesV1\";\nexport type * from \"./Typesense/AnalyticsRuleV1\";\nexport type * from \"./Typesense/AnalyticsEvent\";\nexport type * from \"./Typesense/AnalyticsRule\";\nexport type * from \"./Typesense/AnalyticsRules\";\nexport type * from \"./Typesense/Collection\";\nexport type * from \"./Typesense/Collections\";\nexport type * from \"./Typesense/Configuration\";\nexport type * from \"./Typesense/Conversations\";\nexport type * from \"./Typesense/Conversation\";\nexport type * from \"./Typesense/ConversationModel\";\nexport type * from \"./Typesense/Debug\";\nexport type * from \"./Typesense/Documents\";\nexport type * from \"./Typesense/Health\";\nexport type * from \"./Typesense/Key\";\nexport type * from \"./Typesense/Keys\";\nexport type * from \"./Typesense/Metrics\";\nexport type * from \"./Typesense/MultiSearch\";\nexport type * from \"./Typesense/Override\";\nexport type * from \"./Typesense/Overrides\";\nexport type * from \"./Typesense/Preset\";\nexport type * from \"./Typesense/Presets\";\nexport type * from \"./Typesense/Stats\";\nexport type * from \"./Typesense/Stopword\";\nexport type * from \"./Typesense/Stopwords\";\nexport type * from \"./Typesense/Synonym\";\nexport type * from \"./Typesense/Synonyms\";\nexport type * from \"./Typesense/SynonymSet\";\nexport type * from \"./Typesense/SynonymSets\";\nexport type * from \"./Typesense/SynonymSetItem\";\nexport type * from \"./Typesense/SynonymSetItems\";\nexport type * from \"./Typesense/CurationSet\";\nexport type * from \"./Typesense/CurationSets\";\nexport type * from \"./Typesense/CurationSetItem\";\nexport type * from \"./Typesense/CurationSetItems\";\n"],"names":["Aliases","Alias","name","apiCall","_classCallCheck","_createClass","key","value","_retrieve","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","get","endpointPath","stop","retrieve","apply","arguments","_delete2","_callee2","_context2","delete","concat","RESOURCEPATH","encodeURIComponent","default","_upsert","mapping","put","upsert","_x","_x2","aliasName","AnalyticsRules","AnalyticsRule","AnalyticsEvents","Analytics","_defineProperty","_analyticsRules","_analyticsEvents","rules","id","undefined","individualAnalyticsRules","events","_create","params","post","create","operation","AnalyticsRulesV1","AnalyticsRuleV1","_x3","_callee3","ruleTag","query","_context3","_x4","AnalyticsV1","hasWarnedDeprecation","console","warn","axios","Agent","HTTPAgent","HTTPSAgent","HTTPError","ObjectAlreadyExists","ObjectNotFound","ObjectUnprocessable","RequestMalformed","RequestUnauthorized","ServerError","TypesenseError","toErrorWithMessage","APIKEYHEADERNAME","HEALTHY","UNHEALTHY","isNodeJSEnvironment","process","versions","node","window","ApiCall","configuration","apiKey","nodes","JSON","parse","stringify","nearestNode","connectionTimeoutSeconds","healthcheckIntervalSeconds","numRetriesPerRequest","numRetries","retryIntervalSeconds","sendApiKeyAsQueryParam","additionalUserHeaders","additionalHeaders","logger","initializeMetadataForNodes","currentNodeIndex","_get","endpoint","queryParameters","_ref","_ref$abortSignal","abortSignal","_ref$responseType","responseType","_ref$streamConfig","streamConfig","isStreamingRequest","_args","length","performRequest","_args2","_post","bodyParameters","_ref2","_ref2$abortSignal","_ref2$responseType","_ref2$streamConfig","_args3","_put","_callee4","_args4","_context4","_patch","_callee5","_args5","_context5","patch","_x5","getAdapter","axiosAdapter","isCloudflareWorkers","navigator","userAgent","bind","globalThis","_performRequest","_callee6","requestType","_ref3","_this","_ref3$queryParameters","_ref3$bodyParameters","_ref3$additionalHeade","_ref3$abortSignal","_ref3$responseType","_ref3$skipConnectionT","skipConnectionTimeout","_ref3$enableKeepAlive","enableKeepAlive","_ref3$streamConfig","requestNumber","lastException","wasAborted","_loop","_ret","numTries","_context7","validate","debug","fetch","Date","now","toUpperCase","abortListener","requestOptions","cancelToken","source","response","_response$data","_response$data2","_error$code","_error$response","_t","_context6","getNextNode","index","aborted","v","Promise","reject","Error","method","url","uriFor","headers","Object","assign","defaultHeaders","maxContentLength","Infinity","maxBodyLength","validateStatus","status","transformResponse","data","transformedData","startsWith","adapter","timeout","keys","httpAgent","keepAlive","httpsAgent","paramsSerializer","_typeof","CancelToken","cancel","addEventListener","token","_objectSpread","Accept","sent","setNodeHealthcheck","handleStreamingResponse","resolve","customErrorForResponse","message","code","invokeOnErrorCallback","timer","removeEventListener","finish","delegateYield","t0","_x6","_x7","_x8","processStreamingLine","line","trim","processDataLine","slice","jsonData","conversation_id","_unused","dataContent","_unused2","_handleStreamingResponse","_callee7","_context8","handleNodeStreaming","handleBrowserStreaming","invokeOnCompleteCallback","_x9","_x0","_this2","stream","allChunks","buffer","on","chunk","_lines$pop","toString","lines","split","pop","processStreamLines","error","finalizeStreamResult","_this3","_ref4","_callee8","_t2","_context9","getReader","handleBrowserReadableStream","handleBrowserStringResponse","_x1","_x10","_handleBrowserReadableStream","_callee9","reader","_yield$reader$read","done","_lines","_t3","_context0","read","TextDecoder","decode","_x11","_x12","_x13","_x14","_x15","finalResult","combineStreamingChunks","_iterator","_createForOfIteratorHelper","_step","s","n","processed","invokeOnChunkCallback","push","err","e","f","chunks","messagesChunks","getMessageChunks","combineMessageChunks","lastChunk","isCompleteSearchResponse","filter","isChunkMessage","metadataChunk","find","isHealthy","nodeDueForHealthcheck","map","join","candidateNode","i","isDueForHealthcheck","lastAccessTimestamp","_this4","forEach","protocol","host","port","path","_timer","_callee0","seconds","_context1","setTimeout","_x16","messageFromServer","httpBody","errorMessage","onChunk","onComplete","onError","errorObj","callbackError","Configuration","Collections","Collection","Keys","Key","Debug","Metrics","Stats","Health","Operations","MultiSearch","Presets","Preset","Stopwords","Stopword","Conversations","Conversation","Stemming","NLSearchModels","NLSearchModel","SynonymSets","SynonymSet","CurationSets","CurationSet","Client","options","_options$sendApiKeyAs","metrics","stats","health","operations","multiSearch","_collections","individualCollections","_aliases","individualAliases","_keys","individualKeys","_presets","individualPresets","_stopwords","individualStopwords","analytics","analyticsV1","stemming","_conversations","individualConversations","_nlSearchModels","individualNLSearchModels","_synonymSets","individualSynonymSets","_curationSets","individualCurationSets","collections","collectionName","aliases","presets","stopwords","conversations","nlSearchModels","synonymSets","synonymSetName","curationSets","Documents","Overrides","Override","Synonyms","Synonym","Document","_documents","_overrides","_synonyms","_update","schema","update","_exists","exists","documents","documentId","individualDocuments","overrides","overrideId","individualOverrides","synonyms","synonymId","individualSynonyms","MissingConfigurationError","setDefaultPathInNode","setDefaultPortInNode","randomizeNodes","shuffleArray","timeoutSeconds","cacheSearchResultsForSeconds","useServerSideSearchCache","logLevel","setLevel","showDeprecationWarnings","validateNodes","isNodeMissingAnyParameters","some","every","hasOwnProperty","masterNode","readReplicaNodes","array","j","Math","floor","random","ConversationModels","ConversationModel","_conversationsModels","models","individualConversationModels","CurationSetItems","CurationSetItem","_items","items","itemId","individualItems","normalizeArrayableParams","queryParams","partialDocument","ImportError","SearchOnlyDocuments","_SearchOnlyDocuments","_callSuper","_inherits","document","action","_emplace","emplace","_createMany","_args6","import","createMany","_import2","finalOptions","documentsInJSONLFormat","resultsInJSONLFormat","resultsInJSONFormat","failedItems","_args7","throwOnFail","Array","isArray","RangeError","includes","isEmptyString","r","success","successCount","_importStream","readableStream","_args8","importStream","_export2","_args9","export","_exportStream","_args0","exportStream","str","_TypesenseError","importResults","payload","_Error","httpStatus","constructor","setPrototypeOf","prototype","_wrapNativeSuper","createHmac","generateScopedSearchKey","searchKey","parameters","normalizedParams","paramsJSON","digest","Buffer","from","keyPrefix","substr","rawScopedKey","RequestWithCache","useTextContentType","requestWithCache","clearCache","_perform","searchRequests","commonParams","_options$cacheSearchR","normalizedSearchRequests","paramsWithoutStream","normalizedQueryParams","use_cache","union","hasAnySearchObjectPagination","searches","_objectWithoutProperties","_excluded","perform","body","cacheResponseForSeconds","search","page","per_page","offset","limit","limit_hits","operationName","_getSchemaChanges","getSchemaChanges","presetId","_normalizedParams","defaultCacheResponseForSeconds","defaultMaxSize","Map","responseCache","responsePromiseCache","requestContext","methodName","requestParams","cacheOptions","_ref$cacheResponseFor","_ref$maxSize","maxSize","isCacheDisabled","requestParamsJSON","cacheEntry","isEntryValid","cachePromiseEntry","_isEntryValid","responsePromise","isCacheOverMaxSize","oldestEntry","isResponsePromiseCacheOverMaxSize","_oldestEntry","executeRequest","requestTimestamp","set","size","context","call","String","SearchOnlyCollection","SearchClient","entries","_slicedToArray","_","collection","_search","searchParameters","_ref$cacheSearchResul","additionalQueryParams","_normalizeArrayablePa","rest","conversation_stream","StemmingDictionaries","StemmingDictionary","_stemmingDictionaries","dictionaries","individualStemmingDictionaries","wordRootCombinations","wordRootCombinationsInJSONLFormat","combo","stopwordId","SynonymSetItems","SynonymSetItem","arrayableParams","query_by","query_by_weights","facet_by","group_by","include_fields","exclude_fields","highlight_fields","highlight_full_fields","pinned_hits","hidden_hits","infix","override_tags","num_typos","prefix","synonym_sets","sort_by","hasNoArrayValues","isNonArrayValue","result","transformedValues","isErrorWithMessage","couldBeError","Errors"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"typesense.js","mappings":"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;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,qEAAqE;AACrE,YAAY;AACZ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,qDAAqD;AACrD,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;ACpWD,e;;;;;;;;;;ACAA,e;;;;;;;;;;ACAA,e;;;;;;;;;;ACAA;AACA;AACA;AACA,iCAAiC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACH5F,wBAAwB,mBAAO,CAAC,mIAAwB;AACxD;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,cAAc;AACd,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,+BAA+B,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACxF1F,0BAA0B,mBAAO,CAAC,uIAA0B;AAC5D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,oCAAoC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACP/F,kBAAkB,mBAAO,CAAC,uHAAkB;AAC5C,+BAA+B,mBAAO,CAAC,iJAA+B;AACtE;AACA;AACA;AACA,uCAAuC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACLlG,oBAAoB,mBAAO,CAAC,2HAAoB;AAChD,wBAAwB,mBAAO,CAAC,mIAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA,gCAAgC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;AChC3F;AACA;AACA;AACA,QAAQ,QAAQ;AAChB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,qCAAqC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACrBhG;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA,mCAAmC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACT9F,oBAAoB,mBAAO,CAAC,2HAAoB;AAChD,kBAAkB,mBAAO,CAAC,uHAAkB;AAC5C,uBAAuB,mBAAO,CAAC,iIAAuB;AACtD,0BAA0B,mBAAO,CAAC,uIAA0B;AAC5D,+BAA+B,mBAAO,CAAC,iJAA+B;AACtE,sBAAsB,mBAAO,CAAC,+HAAsB;AACpD,wBAAwB,mBAAO,CAAC,mIAAwB;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,sCAAsC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;AC5EjG,cAAc,+IAAiC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;AClBhG;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,0BAA0B,yBAAyB,SAAS,yBAAyB,kB;;;;;;;;;;ACTrF;;AAEA,cAAc,mBAAO,CAAC,2IAA+B;AACrD;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;ACdA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;ACJA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;;;;;;;;;;;;;;;;;;ACFqE;AACpB;AACjD;AACA,MAAM,wEAAwB;AAC9B;AACA;AACA;AACA,cAAc,8DAAc;AAC5B;;;;;;;;;;;;;;;;;ACR+C;AAC/C;AACA,kBAAkB,cAAc;AAChC;AACA,wHAAwH,6DAAa;AACrI;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACX+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACJiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG,QAAQ,8DAAc;AACzB;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA,yFAAyF;AACzF,IAAI;AACJ;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,kEAAkE;AACtF,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;;;;;;;;;;;;;;;;;ACF6E;AAC7E;AACA;AACA;AACA;AACA,QAAQ,4EAA4B;AACpC;AACA;AACA,gBAAgB,cAAc,wCAAwC;AACtE;AACA;AACA;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACRkC;AAC6B;AAC/D;AACA,wBAAwB,sDAAO;AAC/B;AACA,SAAS,qEAAqB;AAC9B;;;;;;;;;;;;;;;;ACNA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACJiD;AACY;AACY;AACtB;AACnD;AACA,SAAS,8DAAc,OAAO,oEAAoB,UAAU,0EAA0B,UAAU,+DAAe;AAC/G;;;;;;;;;;;;;;;;;ACNkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;;;;ACPiD;AACA;AACI;AACd;AACvC;AACA;AACA;AACA,uBAAuB,gEAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAS,eAAe,8DAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG,8DAAc;AACtB,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;ACzBgC;AACI;AACF;AACS;AACI;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ,gDAAW;AACnB,OAAO,+CAAU;AACjB;AACA,SAAS,+CAAqB;AAC9B,GAAG;AACH;;AAEA;AACA,iDAAK;AACL;AACA;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE,MAAM;AACN;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA,sCAAsC,OAAO;;AAE7C;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA,EAAE,iDAAK;;AAEP;AACA;AACA;AACA;AACA;AACA,WAAW,wCAAwC;AACnD,WAAW,QAAQ;AACnB,YAAY,YAAY;AACxB,aAAa,UAAU;AACvB;AACA;AACA,aAAa,iDAAK;;AAElB,UAAU,SAAS;AACnB;AACA;;AAEA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,kBAAkB,2DAAU,qBAAqB,GAAG;AACpD;AACA;;AAEA,oBAAoB,iDAAK;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,2DAAU;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnI0C;AACZ;AACe;AACW;AACF;AACL;AAKP;AACY;AACjB;AAC6C;AAC3C;;AAEzC;;AAEA,QAAQ,aAAa,EAAE,iDAAK;;AAE5B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,uBAAuB,iDAAK;AAC5B,UAAU,8BAA8B;;AAExC,QAAQ,iDAAK;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,UAAU,qCAAqC;AAC/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,0DAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,iDAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,2DAAU;AAChC,gCAAgC,KAAK;AACrC,cAAc,2DAAU;AACxB;AACA;AACA,WAAW;AACX,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;;AAEA,QAAQ,iDAAK;AACb,mCAAmC,0DAAQ;AAC3C;AACA;AACA,OAAO;AACP;AACA;;AAEA,QAAQ,iDAAK,4BAA4B,iDAAK;AAC9C;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;AACA;;AAEA;AACA,mBAAmB,iDAAK;;AAExB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE,qEAAa;;AAErB,gCAAgC,iDAAK;AACrC,6BAA6B,iDAAK;;AAElC;;AAEA;;AAEA,yBAAyB,sEAAc;AACvC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mFAA2B;AACrD;AACA,oBAAoB,2DAAU;AAC9B;AACA,YAAY,2DAAU;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2DAAU;AAC9B;AACA,YAAY,2DAAU;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA,sCAAsC,wFAAsB;AAC5D;AACA,YAAY,sFAAoB,CAAC,gFAAc;AAC/C;;AAEA,iBAAiB,oEAAW;AAC5B;AACA;;AAEA,WAAW,iDAAK;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,iDAAK;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,kDAAO;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iDAAK;AACpC;AACA,oBAAoB,2DAAU;AAC9B;AACA,YAAY,2DAAU;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET,sCAAsC,iDAAK;;AAE3C;AACA;AACA,YAAY,wFAAsB;AAClC;AACA,cAAc,sFAAoB,CAAC,gFAAc;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2DAAU;AAClC;AACA,gBAAgB,2DAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,oEAAW;AACrB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;;AAEA,yCAAyC,iDAAK;AAC9C;AACA;AACA;;AAEA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2DAAU;AAC9B;AACA,YAAY,2DAAU;AACtB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,QAAQ,2DAAM;AACd;AACA,mBAAmB,6DAAY;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,MAAM;AACN;;AAEA;AACA;AACA;AACA,uFAAuF,2DAAU;AACjG;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,2DAAU;AACxB;AACA,YAAY,2DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,2DAAU;AACtB;AACA;AACA;;AAEA;;AAEO;AACP;AACA,UAAU,2BAA2B;AACrC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACpdS;AACO;AACwB;AAChB;AACQ;AACC;AACZ;AACO;AACuB;AAClB;;AAExD;;AAEA,iEAAe;AACf;AACA;AACA,sBAAsB,qEAAa;AACnC;AACA,6BAA6B,6DAAY;AACzC,YAAY,qDAAqD;AACjE;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC,0CAA0C;;AAE1C;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,2DAAM;AACd;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,2DAAU,oBAAoB,2DAAU;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kC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AAEmB;AACc;AACW;AACN;AACR;AACI;AACC;AACH;AACkB;;AAE/D,mBAAmB,6DAAS;;AAE5B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAkB;AACrC,oBAAoB,8DAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,aAAa,2DAAW;;AAExB,YAAY,0CAA0C;;AAEtD;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,UAAU,iDAAK;AACf;AACA;AACA;AACA,QAAQ;AACR,QAAQ,6DAAS;AACjB;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA,IAAI,6DAAS;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,iDAAK;;AAEzC;AACA,MAAM,iDAAK;AACX;AACA,OAAO;;AAEP,qBAAqB,wDAAY;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kDAAkD,iEAAoB;AACtE;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,qBAAqB,2DAAe;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAe;AAC/B,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,2DAAW;AACxB,qBAAqB,6DAAa;AAClC,WAAW,gEAAQ;AACnB;AACA;;AAEA;AACA,iDAAK;AACL;AACA;AACA;AACA,MAAM,2DAAW,aAAa;AAC9B;AACA;AACA,2BAA2B;AAC3B,OAAO;AACP;AACA;AACA,CAAC;;AAED,iDAAK;AACL;AACA;AACA;AACA,QAAQ,2DAAW,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;ACxRR;;AAEmB;AACa;;AAE7C;;AAEA;AACA,MAAM,iDAAK;AACX;AACA;;AAEA;;AAEA;AACA,QAAQ,iDAAK;AACb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,iDAAK;AACb;;AAEA,0BAA0B,wDAAY;AACtC;AACA;;AAEA;;AAEA;AACA,QAAQ,iDAAK;AACb;AACA;AACA;AACA,aAAa,iDAAK;AAClB;AACA;AACA,OAAO;AACP,MAAM;AACN,WAAW,iDAAK;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,iDAAK;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iDAAK;AACtC;AACA,MAAM,iDAAK;AACX;AACA,UAAU,iDAAK;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;AC/Kb;;AAEmB;AACsB;;AAEtD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,MAAM,iDAAK;AACX;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,iDAAK;;AAEZ,MAAM,iDAAK;AACX;AACA;;AAEA,MAAM,iDAAK;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uBAAuB,iDAAK;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,iDAAK;;AAEX,QAAQ,iDAAK;AACb;AACA,MAAM,SAAS,iDAAK;AACpB,iBAAiB,oEAAY;AAC7B,MAAM,SAAS,iDAAK,qBAAqB,iDAAK;AAC9C,kBAAkB;AAClB;AACA;AACA;AACA,aAAa,iDAAK;AAClB;AACA;;AAEA;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iDAAK;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,iDAAK;AACT,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,iDAAK;AACT;AACA;AACA,oCAAoC,iDAAK;AACzC,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,iDAAK;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAK,8CAA8C,OAAO;AAC1D,oDAAoD;AACpD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED,iDAAK;;AAEL,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC3Xf;;AAEmB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA,eAAe;AACf;AACA;AACA,IAAI,iDAAK;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,kBAAkB,EAAC;;;;;;;;;;;;;;;;;;ACvErB;;AAE2C;AACJ;;AAEpD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACe;AACf,uBAAuB,qEAAa;AACpC;AACA,WAAW,mEAAW;AACtB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrBa;;AAEkC;AACF;AACD;AACW;AACJ;AACJ;;AAE/C;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,gEAAa;AAC3B;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACe;AACf;;AAEA,mBAAmB,6DAAY;;AAE/B;AACA,gBAAgB,yDAAa;;AAE7B;AACA;AACA;;AAEA,kBAAkB,6DAAQ,8BAA8B,0DAAQ;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAa;AACrC,QAAQ;AACR;AACA;;AAEA,yBAAyB,6DAAY;;AAErC;AACA,KAAK;AACL;AACA,WAAW,+DAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,yDAAa;AAChD;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,oCAAoC,6DAAY;AAChD;AACA;;AAEA;AACA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;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,0DAAQ;AACtB,UAAU,0DAAQ;AAClB,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA,iDAAK;AACL;AACA,CAAC;;AAED,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;AChLX;;AAEb,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACPK,yB;;;;;;;;;;;;;;;;ACAM;;AAE4B;;AAEzC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;;AAEA,YAAY,0DAAU;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;AC5DpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;AC5EjB;;AAEb;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACba;;AAEmB;AACsC;;AAEtE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B;AACA,aAAa,QAAQ;AACrB;AACe;AACf;AACA;AACA;;AAEA;;AAEA,mBAAmB,iDAAK;AACxB;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ,uBAAuB,iDAAK;AAC5B;AACA,YAAY,wEAAoB;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACjEa;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACduD;AACR;AACf;;AAEhC;AACA,UAAU,SAAS;;AAEnB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAU;AACnC;AACA,kBAAkB,gEAAa;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,2DAAU,eAAe,QAAQ,cAAc,2DAAU;AAC7E,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA,YAAY,SAAS;;AAErB,+BAA+B,iDAAK;;AAEpC;AACA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;ACvDE;AACY;;AAE5C,iEAAe,0DAAQ;AACvB;AACA;AACA;AACA;;AAEA,2BAA2B,KAAK,GAAG,0BAA0B;;AAE7D,YAAY,iDAAK;AACjB,iCAAiC,gCAAgC;AACjE;AACA,YAAY,iDAAK;AACjB,8BAA8B,KAAK;AACnC;AACA,YAAY,iDAAK;AACjB,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA,YAAY,iDAAK;AACjB,kCAAkC,SAAS;AAC3C;;AAEA,yCAAyC;AACzC,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF,cAAc;AACd,gDAAgD;AAChD,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,OAAO;AACP,iBAAiB;AACjB,KAAK,EAAC;;;;;;;;;;;;;;;;AC3DN;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACe;AACf;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,6BAA6B;;AAE7B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnGa;;AAEmB;;AAEhC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iDAAK;AACd;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,iDAAK;;AAEzB;AACA,UAAU,iDAAK;AACf,uBAAuB,iDAAK;AAC5B;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA,0BAA0B,iDAAK;AAC/B;AACA;;AAEA;;AAEA,kBAAkB,iDAAK;AACvB;AACA;;AAEA;AACA;;AAEA,MAAM,iDAAK,yBAAyB,iDAAK;AACzC;;AAEA,IAAI,iDAAK;AACT;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;AChGjB;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AClBa;;AAEmB;;AAEhC;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACe;AACf,SAAS,iDAAK;AACd;;;;;;;;;;;;;;;;;ACb4C;;AAE5C,iEAAe,0DAAQ;AACvB;AACA,yBAAyB,0DAAQ;;AAEjC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,cAAc,0DAAQ;AACtB,MAAM,0DAAQ,qCAAqC,0DAAQ;AAC3D;AACA,cAAc,EAAC;;;;;;;;;;;;;;;;ACff;AACA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;ACDP;;AAEmB;;AAEhC;AACA;AACA,0BAA0B,iDAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA,iEAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA,CAAC;AAAA,4LAAC;;;;;;;;;;;;;;;;ACpEW;;AAEE;AACf,0BAA0B,KAAK;AAC/B;AACA;;;;;;;;;;;;;;;;;;;;;ACL2C;AACN;AACL;;AAEzB;AACP;AACA,uBAAuB,2DAAW;;AAElC,SAAS,wDAAQ;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA,IAAI,iDAAK;;;;;;;;;;;;;;;;;;;;;;;;AClDmC;AACZ;AACmB;AAChB;AACkB;AACJ;AACE;AACd;;AAErC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,8CAA8C,EAAE;AAChD;AACA;;AAEA,iEAAe;AACf,oBAAoB,gEAAW,GAAG;;AAElC;AACA;AACA,wBAAwB,iDAAK;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,6DAAY;;AAE5C,kBAAkB,wDAAQ;AAC1B,IAAI,kEAAa;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,iDAAK;AACX,QAAQ,0DAAQ,0BAA0B,0DAAQ;AAClD,yCAAyC;AACzC,MAAM,SAAS,iDAAK;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,0DAAQ;AACd,QAAQ,iDAAK;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,0DAA0D,+DAAe;;AAEzE;AACA,4DAA4D,mDAAO;;AAEnE;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AAAA,4LAAC;;;;;;;;;;;;;;;;ACzGW;;AAEb;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;ACtDd;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3BA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;AC3CX;;AAEmB;AACe;AAC/C;AACoE;;AAEpE;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA,SAAS,iDAAK,yBAAyB,iDAAK;AAC5C;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA,aAAa;AACb;AACA;AACA,SAAS,iDAAK;AACd;;AAEA,mBAAmB,iDAAK,cAAc,iDAAK,IAAI;AAC/C;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA,OAAO,iDAAK;AACZ;AACA;;AAEA;AACA,8BAA8B,0EAAgB;;AAE9C;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc,iDAAK;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAK;;AAEhC,OAAO,iDAAK;AACZ;AACA;;AAEA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;;AAEA,oBAAoB,iDAAK;AACzB,gBAAgB,2DAAU;AAC1B;;AAEA,QAAQ,iDAAK,yBAAyB,iDAAK;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,GAAG;AAChB,aAAa,eAAe;AAC5B,aAAa,sBAAsB;AACnC,YAAY;AACZ;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA,QAAQ,iDAAK,4BAA4B,iDAAK;AAC9C;AACA;AACA;;AAEA;AACA,UAAU,iDAAK,kBAAkB;AACjC;AACA;AACA;AACA;AACA,QAAQ;AACR,SAAS,iDAAK;AACd,UAAU,iDAAK,sBAAsB,iDAAK,gCAAgC,iDAAK;AAC/E;AACA;AACA;;AAEA;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,QAAQ,iDAAK;;AAEb;AACA,gBAAgB,2DAAU;AAC1B;AACA,QAAQ,2DAAU;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,IAAI,iDAAK;AACT;AACA,UAAU,iDAAK;AACf,mCAAmC,iDAAK;;AAExC;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,OAAO,iDAAK;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;ACxPb;;AAEmB;AACS;AACG;;AAE7B;AACf,SAAS,0DAAU,WAAW,0DAAQ;AACtC;AACA,UAAU,0DAAQ,WAAW,iDAAK;AAClC;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;AClBO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxFa;;AAE4B;AACM;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,MAAM,iDAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,2DAAU;AAC1B;AACA,QAAQ,2DAAU;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,KAAK,6BAA6B,gBAAgB;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA,cAAc,2DAAU,8BAA8B,2DAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAU;AAC5B;AACA,UAAU,2DAAU;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAAU,0BAA0B,2DAAU;AAC9D;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;AC/GW;;AAEb,iEAAe,yCAAyC,EAAC;;;;;;;;;;;;;;;;ACF5C;;AAEb,iEAAe,iDAAiD,EAAC;;;;;;;;;;;;;;;;;ACFpD;;AAE+D;AAC5E,iEAAe,2DAA2D,wEAAoB,EAAC;;;;;;;;;;;;;;;;;;;ACHpC;AACd;AACR;;AAErC,iEAAe;AACf;AACA;AACA,mBAAmB;AACnB,YAAY;AACZ,QAAQ;AACR,GAAG;AACH;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;ACZF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAQE;;;;;;;;;;;;;;;;;;ACnDqC;AACI;;AAE3C,iEAAe;AACf,KAAK,6CAAK;AACV,KAAK,sDAAQ;AACb,CAAC,EAAC;;;;;;;;;;;;;;;;;ACNW;;AAEwB;;AAErC;;AAEA,QAAQ,WAAW;AACnB,QAAQ,iBAAiB;AACzB,QAAQ,wBAAwB;;AAEhC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA,QAAQ,UAAU;;AAElB;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,aAAa,qBAAM,yBAAyB,qBAAM;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,WAAW,UAAU;AACrB;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa;AACb;AACA,4BAA4B,qBAAqB,IAAI;AACrD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uFAAuF,qBAAM;AAC7F,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS,GAAG,SAAS;AAC9C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,UAAU,0BAA0B;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kCAAkC;AAClC,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA,iCAAiC,aAAa,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAI;AACrB;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,KAAK,gBAAgB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,WAAW,cAAc;AAChC;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;UCl6BF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC,I;;;;;WCPD,wF;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;;;;;;;;;;;;;;;;;ACNwC;AACY;AACP;AAEL;AACxC,iEAAe;EAAE3Q,MAAM,EAANA,yDAAM;EAAE8N,YAAY,EAAZA,+DAAY;EAAE8C,MAAM,EAANA,8CAAMA;AAAC,CAAC,E","sources":["webpack://Typesense/./src/Typesense/Alias.ts","webpack://Typesense/./src/Typesense/Aliases.ts","webpack://Typesense/./src/Typesense/Analytics.ts","webpack://Typesense/./src/Typesense/AnalyticsEvents.ts","webpack://Typesense/./src/Typesense/AnalyticsRule.ts","webpack://Typesense/./src/Typesense/AnalyticsRuleV1.ts","webpack://Typesense/./src/Typesense/AnalyticsRules.ts","webpack://Typesense/./src/Typesense/AnalyticsRulesV1.ts","webpack://Typesense/./src/Typesense/AnalyticsV1.ts","webpack://Typesense/./src/Typesense/ApiCall.ts","webpack://Typesense/./src/Typesense/Client.ts","webpack://Typesense/./src/Typesense/Collection.ts","webpack://Typesense/./src/Typesense/Collections.ts","webpack://Typesense/./src/Typesense/Configuration.ts","webpack://Typesense/./src/Typesense/Conversation.ts","webpack://Typesense/./src/Typesense/ConversationModel.ts","webpack://Typesense/./src/Typesense/ConversationModels.ts","webpack://Typesense/./src/Typesense/Conversations.ts","webpack://Typesense/./src/Typesense/CurationSet.ts","webpack://Typesense/./src/Typesense/CurationSetItem.ts","webpack://Typesense/./src/Typesense/CurationSetItems.ts","webpack://Typesense/./src/Typesense/CurationSets.ts","webpack://Typesense/./src/Typesense/Debug.ts","webpack://Typesense/./src/Typesense/Document.ts","webpack://Typesense/./src/Typesense/Documents.ts","webpack://Typesense/./src/Typesense/Errors/HTTPError.ts","webpack://Typesense/./src/Typesense/Errors/ImportError.ts","webpack://Typesense/./src/Typesense/Errors/MissingConfigurationError.ts","webpack://Typesense/./src/Typesense/Errors/ObjectAlreadyExists.ts","webpack://Typesense/./src/Typesense/Errors/ObjectNotFound.ts","webpack://Typesense/./src/Typesense/Errors/ObjectUnprocessable.ts","webpack://Typesense/./src/Typesense/Errors/RequestMalformed.ts","webpack://Typesense/./src/Typesense/Errors/RequestUnauthorized.ts","webpack://Typesense/./src/Typesense/Errors/ServerError.ts","webpack://Typesense/./src/Typesense/Errors/TypesenseError.ts","webpack://Typesense/./src/Typesense/Errors/index.ts","webpack://Typesense/./src/Typesense/Health.ts","webpack://Typesense/./src/Typesense/Key.ts","webpack://Typesense/./src/Typesense/Keys.ts","webpack://Typesense/./src/Typesense/Metrics.ts","webpack://Typesense/./src/Typesense/MultiSearch.ts","webpack://Typesense/./src/Typesense/NLSearchModel.ts","webpack://Typesense/./src/Typesense/NLSearchModels.ts","webpack://Typesense/./src/Typesense/Operations.ts","webpack://Typesense/./src/Typesense/Override.ts","webpack://Typesense/./src/Typesense/Overrides.ts","webpack://Typesense/./src/Typesense/Preset.ts","webpack://Typesense/./src/Typesense/Presets.ts","webpack://Typesense/./src/Typesense/RequestWithCache.ts","webpack://Typesense/./src/Typesense/SearchClient.ts","webpack://Typesense/./src/Typesense/SearchOnlyCollection.ts","webpack://Typesense/./src/Typesense/SearchOnlyDocuments.ts","webpack://Typesense/./src/Typesense/Stats.ts","webpack://Typesense/./src/Typesense/Stemming.ts","webpack://Typesense/./src/Typesense/StemmingDictionaries.ts","webpack://Typesense/./src/Typesense/StemmingDictionary.ts","webpack://Typesense/./src/Typesense/Stopword.ts","webpack://Typesense/./src/Typesense/Stopwords.ts","webpack://Typesense/./src/Typesense/Synonym.ts","webpack://Typesense/./src/Typesense/SynonymSet.ts","webpack://Typesense/./src/Typesense/SynonymSetItem.ts","webpack://Typesense/./src/Typesense/SynonymSetItems.ts","webpack://Typesense/./src/Typesense/SynonymSets.ts","webpack://Typesense/./src/Typesense/Synonyms.ts","webpack://Typesense/./src/Typesense/Types.ts","webpack://Typesense/./src/Typesense/Utils.ts","webpack://Typesense/./node_modules/.pnpm/loglevel@1.9.2/node_modules/loglevel/lib/loglevel.js","webpack://Typesense/ignored|/Users/fanis/code/typesense/client-libs/js/src/Typesense|crypto","webpack://Typesense/ignored|/Users/fanis/code/typesense/client-libs/js/src/Typesense|http","webpack://Typesense/ignored|/Users/fanis/code/typesense/client-libs/js/src/Typesense|https","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regenerator.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/typeof.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/readOnlyError.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/adapters.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/fetch.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/xhr.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/axios.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CancelToken.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/isCancel.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/Axios.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/InterceptorManager.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/buildFullPath.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/dispatchRequest.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/mergeConfig.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/settle.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/transformData.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/index.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/transitional.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/env/data.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/bind.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/buildURL.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/combineURLs.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/composeSignals.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/cookies.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/formDataToJSON.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAxiosError.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/null.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseHeaders.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseProtocol.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/progressEventReducer.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/resolveConfig.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/speedometer.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/spread.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/throttle.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toFormData.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/trackStream.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/validator.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/index.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/common/utils.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js","webpack://Typesense/webpack/bootstrap","webpack://Typesense/webpack/runtime/compat get default export","webpack://Typesense/webpack/runtime/define property getters","webpack://Typesense/webpack/runtime/global","webpack://Typesense/webpack/runtime/hasOwnProperty shorthand","webpack://Typesense/webpack/runtime/make namespace object","webpack://Typesense/./src/Typesense.ts"],"sourcesContent":["import Aliases, { CollectionAliasSchema } from \"./Aliases\";\nimport ApiCall from \"./ApiCall\";\n\nexport default class Alias {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n /**\n * Find out which collection an alias points to by fetching it\n *\n * @example\n * await client.aliases(\"my-alias\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html#retrieve-an-alias\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete an alias\n *\n * @example\n * await client.aliases(\"my-alias\").delete()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html#delete-an-alias\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/aliases\";\n\nexport interface CollectionAliasCreateSchema {\n collection_name: string;\n}\n\nexport interface CollectionAliasSchema extends CollectionAliasCreateSchema {\n name: string;\n}\n\nexport interface CollectionAliasesResponseSchema {\n aliases: CollectionAliasSchema[];\n}\n\nexport default class Aliases {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Create or update a collection alias.\n *\n * @example\n * await client.aliases().upsert(\"my-alias\", { collection_name: \"products\" })\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html#create-or-update-an-alias\n */\n async upsert(\n name: string,\n mapping: CollectionAliasCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n mapping\n );\n }\n\n /**\n * List all aliases and the corresponding collections that they map to.\n *\n * @example\n * await client.aliases().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html#list-all-aliases\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n private endpointPath(aliasName): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\nimport AnalyticsRule from \"./AnalyticsRule\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\nexport default class Analytics {\n private readonly _analyticsRules: AnalyticsRules;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n /**\n * Access the analytics rules resource. Call without arguments to list or create rules, or pass an ID to access a single rule.\n *\n * @example\n * await client.analytics.rules().retrieve()\n * @example\n * await client.analytics.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n rules(): AnalyticsRules;\n /**\n * Access an individual analytics rule by ID.\n *\n * @example\n * await client.analytics.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n rules(id: string): AnalyticsRule;\n rules(id?: string): AnalyticsRules | AnalyticsRule {\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n /**\n * Access the analytics events resource to send analytics events.\n *\n * @example\n * await client.analytics.events().create({ type: \"click\", name: \"products_click\", data: {} })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { AnalyticsEventCreateSchema } from \"./AnalyticsEvent\";\n\nconst RESOURCEPATH = \"/analytics/events\";\n\nexport interface AnalyticsEventsRetrieveSchema {\n events: {\n name: string;\n event_type: string;\n collection: string;\n timestamp: number;\n user_id: string;\n doc_id?: string;\n doc_ids?: string[];\n query?: string;\n }[];\n}\n\nexport default class AnalyticsEvents {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Submit a single analytics event. The event must correspond to an existing analytics rule by name.\n *\n * @example\n * await client.analytics.events().create({ type: \"click\", name: \"products_click\", data: {} })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async create(\n params: AnalyticsEventCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n /**\n * Retrieve the most recent events for a user and rule.\n *\n * @example\n * await client.analytics.events().retrieve({ user_id: \"u1\", name: \"products_click\", n: 10 })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async retrieve(params: {\n user_id: string;\n name: string;\n n: number;\n }): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n params,\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsEvents.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\n\nexport interface AnalyticsRuleCreateSchema {\n name: string;\n type: string;\n collection: string;\n event_type: string;\n rule_tag?: string;\n params?: {\n destination_collection?: string;\n limit?: number;\n capture_search_requests?: boolean;\n meta_fields?: string[];\n expand_query?: boolean;\n counter_field?: string;\n weight?: number;\n };\n}\n\nexport interface AnalyticsRuleUpsertSchema {\n name?: string;\n type?: string;\n collection?: string;\n event_type?: string;\n rule_tag?: string;\n params?: {\n destination_collection?: string;\n limit?: number;\n capture_search_requests?: boolean;\n meta_fields?: string[];\n expand_query?: boolean;\n counter_field?: string;\n weight?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchema {\n name: string;\n}\n\nexport interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema {\n name: string;\n}\n\nexport default class AnalyticsRule {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve the details of an analytics rule, given it's name\n *\n * @example\n * await client.analytics.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Permanently deletes an analytics rule, given it's name\n *\n * @example\n * await client.analytics.rules(\"rule-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRulesV1 from \"./AnalyticsRulesV1\";\n\nexport interface AnalyticsRuleCreateSchemaV1 {\n type: \"popular_queries\" | \"nohits_queries\" | \"counter\" | \"log\";\n params: {\n enable_auto_aggregation?: boolean;\n source: {\n collections: string[];\n events?: {\n type: string;\n weight?: number;\n name: string;\n }[];\n };\n expand_query?: boolean;\n destination?: {\n collection: string;\n counter_field?: string;\n };\n limit?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchemaV1 {\n name: string;\n}\n\nexport interface AnalyticsRuleSchemaV1 extends AnalyticsRuleCreateSchemaV1 {\n name: string;\n}\n\nexport default class AnalyticsRuleV1 {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) { }\n\n /**\n * Retrieve a legacy v1 analytics rule by name.\n *\n * @example\n * await client.analyticsV1.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a legacy v1 analytics rule by name.\n *\n * @example\n * await client.analyticsV1.rules(\"rule-1\").delete()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRulesV1.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchema,\n AnalyticsRuleSchema,\n AnalyticsRuleUpsertSchema,\n} from \"./AnalyticsRule\";\n\nexport interface AnalyticsRulesRetrieveSchema {\n rules: AnalyticsRuleSchema[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRules {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Create one or more analytics rules. You can send a single rule object or an array of rule objects.\n *\n * @example\n * await client.analytics.rules().create({ name: \"products_query_hits\", type: \"popular_queries\", params: {} })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async create(\n params:\n | AnalyticsRuleCreateSchema\n | AnalyticsRuleCreateSchema[],\n ): Promise<\n | AnalyticsRuleSchema\n | (\n | AnalyticsRuleSchema\n | {\n error?: string;\n }\n )[]\n > {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n {},\n {},\n );\n }\n\n /**\n * Upserts an analytics rule with the given name.\n *\n * @example\n * await client.analytics.rules().upsert(\"products_query_hits\", { type: \"popular_queries\", params: {} })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async upsert(\n name: string,\n params: AnalyticsRuleUpsertSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n /**\n * Retrieve all analytics rules. Use the optional rule_tag filter to narrow down results.\n *\n * @example\n * await client.analytics.rules().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async retrieve(ruleTag?: string): Promise {\n const query: Record = {};\n if (ruleTag) {\n query[\"rule_tag\"] = ruleTag;\n }\n return this.apiCall.get(this.endpointPath(), query);\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRules.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchemaV1,\n AnalyticsRuleSchemaV1,\n} from \"./AnalyticsRuleV1\";\n\nexport interface AnalyticsRulesRetrieveSchemaV1 {\n rules: AnalyticsRuleSchemaV1[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRulesV1 {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Upsert a legacy v1 analytics rule by name.\n *\n * @example\n * await client.analyticsV1.rules().upsert(\"products_query_hits\", { type: \"popular_queries\", params: {} })\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n async upsert(\n name: string,\n params: AnalyticsRuleCreateSchemaV1\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n /**\n * Retrieve all legacy v1 analytics rules.\n *\n * @example\n * await client.analyticsV1.rules().retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRulesV1.RESOURCEPATH}${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRulesV1 from \"./AnalyticsRulesV1\";\nimport AnalyticsRuleV1 from \"./AnalyticsRuleV1\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.analytics` (new Analytics APIs).\n */\nexport default class AnalyticsV1 {\n private static hasWarnedDeprecation = false;\n private readonly _analyticsRules: AnalyticsRulesV1;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRulesV1(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n /**\n * Access the legacy v1 analytics rules resource. Call without arguments to list or upsert rules, or pass an ID to access a single rule.\n *\n * @example\n * await client.analyticsV1.rules().retrieve()\n * @example\n * await client.analyticsV1.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n rules(): AnalyticsRulesV1;\n /**\n * Access an individual legacy v1 analytics rule by ID.\n *\n * @example\n * await client.analyticsV1.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n rules(id: string): AnalyticsRuleV1;\n rules(id?: string): AnalyticsRulesV1 | AnalyticsRuleV1 {\n if (!AnalyticsV1.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'analyticsV1' is deprecated starting with Typesense Server v30 and will be removed in a future release. Please use 'analytics' instead.\",\n );\n AnalyticsV1.hasWarnedDeprecation = true;\n }\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRuleV1(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n /**\n * Access the legacy v1 analytics events resource to send analytics events.\n *\n * @example\n * await client.analyticsV1.events().create({ type: \"click\", name: \"products_click\", data: {} })\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n\n","import type {\n AxiosAdapter,\n AxiosRequestConfig,\n AxiosResponse,\n Method,\n} from \"axios\";\nimport axios from \"axios\";\nimport { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { Logger } from \"loglevel\";\nimport Configuration from \"./Configuration\";\nimport type { NodeConfiguration, StreamConfig } from \"./Configuration\";\nimport {\n HTTPError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n} from \"./Errors\";\nimport TypesenseError from \"./Errors/TypesenseError\";\nimport type { DocumentSchema, SearchResponse } from \"./Documents\";\nimport { toErrorWithMessage } from \"./Utils\";\nimport { MessageChunk } from \"./Types\";\n\nconst APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nconst HEALTHY = true;\nconst UNHEALTHY = false;\n\ninterface Node extends NodeConfiguration {\n isHealthy: boolean;\n index: string | number;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null &&\n typeof window === \"undefined\";\n\nexport interface HttpClient {\n get(\n endpoint: string,\n queryParameters: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n delete(\n endpoint: string,\n queryParameters: Record,\n ): Promise;\n post(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n additionalHeaders: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n put(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n patch(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n}\n\nexport default class ApiCall implements HttpClient {\n private readonly apiKey: string;\n private readonly nodes: Node[];\n private readonly nearestNode: Node;\n private readonly connectionTimeoutSeconds: number;\n private readonly healthcheckIntervalSeconds: number;\n private readonly retryIntervalSeconds: number;\n private readonly sendApiKeyAsQueryParam?: boolean;\n private readonly numRetriesPerRequest: number;\n private readonly additionalUserHeaders?: Record;\n\n readonly logger: Logger;\n private currentNodeIndex: number;\n\n constructor(private configuration: Configuration) {\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n\n this.logger = this.configuration.logger;\n\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n\n async get(\n endpoint: string,\n queryParameters: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"get\", endpoint, {\n queryParameters,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async delete(endpoint: string, queryParameters: any = {}): Promise {\n return this.performRequest(\"delete\", endpoint, {\n queryParameters,\n isStreamingRequest: false,\n });\n }\n\n async post(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n additionalHeaders: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"post\", endpoint, {\n queryParameters,\n bodyParameters,\n additionalHeaders,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async put(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"put\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n async patch(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"patch\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n private getAdapter(): AxiosAdapter | undefined {\n if (!this.configuration.axiosAdapter) return undefined;\n\n if (typeof this.configuration.axiosAdapter === \"function\")\n return this.configuration.axiosAdapter;\n\n const isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator.userAgent === \"Cloudflare-Workers\";\n\n return isCloudflareWorkers\n ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis)\n : axios.getAdapter(this.configuration.axiosAdapter);\n }\n\n async performRequest(\n requestType: Method,\n endpoint: string,\n {\n queryParameters = null,\n bodyParameters = null,\n additionalHeaders = {},\n abortSignal = null,\n responseType = undefined,\n skipConnectionTimeout = false,\n enableKeepAlive = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n queryParameters?: any;\n bodyParameters?: any;\n additionalHeaders?: any;\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n skipConnectionTimeout?: boolean;\n enableKeepAlive?: boolean | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n },\n ): Promise {\n this.configuration.validate();\n\n if (isStreamingRequest) {\n this.logger.debug(`Request: Performing streaming request to ${endpoint}`);\n\n // For browser streaming, always use responseType: \"stream\" and adapter: \"fetch\"\n if (!isNodeJSEnvironment && typeof fetch !== \"undefined\") {\n this.logger.debug(\"Using fetch adapter for browser streaming\");\n responseType = \"stream\";\n }\n }\n\n const requestNumber = Date.now();\n let lastException;\n let wasAborted = false;\n this.logger.debug(\n `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`,\n );\n for (\n let numTries = 1;\n numTries <= this.numRetriesPerRequest + 1;\n numTries++\n ) {\n const node = this.getNextNode(requestNumber);\n this.logger.debug(\n `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${\n node.index\n }`,\n );\n\n if (abortSignal && abortSignal.aborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n let abortListener: ((event: Event) => void) | undefined;\n\n try {\n const requestOptions: AxiosRequestConfig = {\n method: requestType,\n url: this.uriFor(endpoint, node),\n headers: Object.assign(\n {},\n this.defaultHeaders(),\n additionalHeaders,\n this.additionalUserHeaders,\n ),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n validateStatus: (status) => {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n (data, headers) => {\n let transformedData = data;\n if (\n headers !== undefined &&\n typeof data === \"string\" &&\n typeof headers[\"content-type\"] === \"string\" &&\n headers[\"content-type\"].startsWith(\"application/json\")\n ) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n\n // Use fetch adapter only for streaming requests in browser environments\n requestOptions.adapter =\n isStreamingRequest && !isNodeJSEnvironment\n ? \"fetch\"\n : this.getAdapter();\n\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this.connectionTimeoutSeconds * 1000;\n }\n\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n\n if (this.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this.apiKey;\n }\n\n if (this.configuration.httpAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpAgent`,\n );\n requestOptions.httpAgent = this.configuration.httpAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`);\n requestOptions.httpAgent = new HTTPAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.httpsAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpsAgent`,\n );\n requestOptions.httpsAgent = this.configuration.httpsAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`);\n requestOptions.httpsAgent = new HTTPSAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.paramsSerializer) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom paramsSerializer`,\n );\n requestOptions.paramsSerializer = this.configuration.paramsSerializer;\n }\n\n if (\n bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))\n ) {\n requestOptions.data = bodyParameters;\n }\n\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n abortListener = () => {\n wasAborted = true;\n source.cancel();\n };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source.token;\n }\n\n if (isStreamingRequest) {\n requestOptions.responseType = \"stream\";\n if (!isNodeJSEnvironment) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Accept: \"text/event-stream\",\n };\n }\n } else if (responseType) {\n requestOptions.responseType = responseType;\n }\n\n const response = await axios(requestOptions);\n\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this.setNodeHealthcheck(node, HEALTHY);\n }\n\n this.logger.debug(\n `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (isStreamingRequest) {\n return this.handleStreamingResponse(response, streamConfig);\n }\n return Promise.resolve(response.data);\n } else if (response.status < 500) {\n // Next, if response is anything but 5xx, don't retry, return a custom error\n return Promise.reject(\n this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n ),\n );\n } else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n );\n }\n } catch (error: any) {\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n if (!wasAborted) {\n this.setNodeHealthcheck(node, UNHEALTHY);\n }\n lastException = error;\n this.logger.warn(\n `Request #${requestNumber}: Request to Node ${\n node.index\n } failed due to \"${error?.code ?? \"\"} ${error.message}${\n error.response == null\n ? \"\"\n : \" - \" + JSON.stringify(error.response?.data)\n }\"`,\n );\n\n if (wasAborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n if (isStreamingRequest) {\n this.invokeOnErrorCallback(error, streamConfig);\n }\n\n if (numTries < this.numRetriesPerRequest + 1) {\n this.logger.warn(\n `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`,\n );\n } else {\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n await this.timer(this.retryIntervalSeconds);\n } finally {\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n }\n }\n\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n\n private processStreamingLine(line: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!line.trim() || line === \"data: [DONE]\") {\n return null;\n }\n\n // Handle SSE format (data: {...})\n if (line.startsWith(\"data: \")) {\n return this.processDataLine(line.slice(6).trim());\n }\n\n // Try parsing as JSON if it starts with a brace\n if (line.trim().startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(line.trim());\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch {\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n }\n\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n\n private processDataLine(dataContent: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!dataContent) {\n return null;\n }\n\n if (dataContent.startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(dataContent);\n // Ensure the required fields exist\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch {\n // Not valid JSON, use as plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n }\n\n // For plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n\n private async handleStreamingResponse(\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\n `Handling streaming response. Environment: ${isNodeJSEnvironment ? \"Node.js\" : \"Browser\"}`,\n );\n\n if (isNodeJSEnvironment && response.data) {\n return this.handleNodeStreaming(response, streamConfig);\n }\n\n if (!isNodeJSEnvironment) {\n return this.handleBrowserStreaming(response, streamConfig);\n }\n\n this.logger.debug(\"Processing non-streaming response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return Promise.resolve(response.data as T);\n }\n\n private handleNodeStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing Node.js stream\");\n return new Promise((resolve, reject) => {\n const stream = response.data;\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n stream.on(\"data\", (chunk) => {\n try {\n const data = chunk.toString();\n buffer += data;\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n } catch (error) {\n reject(error);\n }\n });\n\n stream.on(\"end\", () => {\n if (buffer.trim().length > 0) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(\n allChunks,\n resolve,\n response,\n streamConfig,\n );\n });\n\n stream.on(\"error\", (error: unknown) => {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n });\n });\n }\n\n private handleBrowserStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing browser stream\");\n\n return new Promise(async (resolve, reject) => {\n try {\n if (response.data && typeof response.data.getReader === \"function\") {\n return this.handleBrowserReadableStream(\n response.data,\n resolve,\n reject,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"string\") {\n return this.handleBrowserStringResponse(\n response.data,\n resolve,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"object\" && response.data !== null) {\n this.logger.debug(\"No stream found, but data object is available\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return resolve(response.data as T);\n }\n\n this.logger.error(\"No usable data found in response\");\n return reject(new Error(\"No usable data found in response\"));\n } catch (error) {\n this.logger.error(`Error processing streaming response: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n });\n }\n\n private async handleBrowserReadableStream(\n stream: any,\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\"Found ReadableStream in response.data\");\n const reader = stream.getReader();\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n this.logger.debug(\"Stream reading complete\");\n if (buffer.trim()) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n break;\n }\n\n const chunk = new TextDecoder().decode(value);\n this.logger.debug(`Received chunk: ${chunk.length} bytes`);\n\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(allChunks, resolve, response, streamConfig);\n } catch (error) {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n }\n\n private handleBrowserStringResponse(\n data: string,\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): void {\n this.logger.debug(\"Processing text response as stream data\");\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n\n const lines = data.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n\n if (allChunks.length > 0) {\n const finalResult =\n this.combineStreamingChunks<\n T extends DocumentSchema ? T : DocumentSchema\n >(allChunks);\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n // If no chunks were processed, use the original response\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n private processStreamLines(\n lines: string[],\n allChunks: [...MessageChunk[], SearchResponse] | [],\n streamConfig: StreamConfig | undefined,\n ): void {\n for (const line of lines) {\n if (line.trim() && line !== \"data: [DONE]\") {\n const processed = this.processStreamingLine(line);\n if (processed !== null) {\n this.invokeOnChunkCallback(processed, streamConfig);\n (allChunks as MessageChunk[]).push(processed);\n }\n }\n }\n }\n\n private finalizeStreamResult(\n allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [],\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): void {\n if (allChunks.length > 0) {\n const finalResult = this.combineStreamingChunks(allChunks);\n this.logger.debug(\"Stream processing complete\");\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n /**\n * Combines multiple streaming chunks into a single coherent result\n * This is critical for ensuring we return the complete data rather than just the last chunk\n */\n private combineStreamingChunks(\n chunks: [...MessageChunk[], SearchResponse] | [],\n ): SearchResponse {\n if (chunks.length === 0) return {} as SearchResponse;\n if (chunks.length === 1) return chunks[0] as unknown as SearchResponse;\n\n // For conversation streams with message chunks\n const messagesChunks = this.getMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n );\n if (messagesChunks.length > 0) {\n return this.combineMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n messagesChunks,\n );\n }\n\n // For regular search responses\n const lastChunk = chunks[chunks.length - 1];\n if (!this.isCompleteSearchResponse(lastChunk)) {\n throw new Error(\"Last chunk is not a complete search response\");\n }\n\n return lastChunk;\n }\n\n private getMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n ): MessageChunk[] {\n return chunks.filter(this.isChunkMessage);\n }\n\n private isChunkMessage(chunk: unknown): chunk is MessageChunk {\n return (\n typeof chunk === \"object\" &&\n chunk !== null &&\n \"message\" in chunk &&\n \"conversation_id\" in chunk\n );\n }\n\n private combineMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n messagesChunks: MessageChunk[],\n ): SearchResponse {\n this.logger.debug(\n `Found ${messagesChunks.length} message chunks to combine`,\n );\n\n const lastChunk = chunks[chunks.length - 1];\n if (this.isCompleteSearchResponse(lastChunk)) {\n return lastChunk;\n }\n\n const metadataChunk = chunks.find(this.isCompleteSearchResponse);\n\n if (!metadataChunk) {\n throw new Error(\"No metadata chunk found\");\n }\n\n return metadataChunk;\n }\n\n private isCompleteSearchResponse(\n chunk: MessageChunk | SearchResponse,\n ): chunk is SearchResponse {\n if (\n typeof chunk === \"object\" &&\n chunk !== null &&\n Object.keys(chunk as object).length > 0\n ) {\n return (\n \"results\" in (chunk as object) ||\n \"found\" in (chunk as object) ||\n \"hits\" in (chunk as object) ||\n \"page\" in (chunk as object) ||\n \"search_time_ms\" in (chunk as object)\n );\n }\n return false;\n }\n\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n getNextNode(requestNumber = 0): Node {\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: Node ${\n this.nearestNode.index\n } is ${this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"}`,\n );\n if (\n this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`,\n );\n return this.nearestNode;\n }\n this.logger.debug(\n `Request #${requestNumber}: Falling back to individual nodes`,\n );\n }\n\n // Fallback to nodes as usual\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: ${this.nodes\n .map(\n (node) =>\n `Node ${node.index} is ${\n node.isHealthy === true ? \"Healthy\" : \"Unhealthy\"\n }`,\n )\n .join(\" || \")}`,\n );\n let candidateNode: Node = this.nodes[0];\n for (let i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (\n candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n }\n\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\n `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n\n nodeDueForHealthcheck(node, requestNumber = 0): boolean {\n const isDueForHealthcheck =\n Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\n `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`,\n );\n }\n return isDueForHealthcheck;\n }\n\n initializeMetadataForNodes(): void {\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n\n this.nodes.forEach((node, i) => {\n node.index = i;\n this.setNodeHealthcheck(node, HEALTHY);\n });\n }\n\n setNodeHealthcheck(node, isHealthy): void {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n }\n\n uriFor(endpoint: string, node): string {\n if (node.url != null) {\n return `${node.url}${endpoint}`;\n }\n return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`;\n }\n\n defaultHeaders(): any {\n const defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n }\n\n async timer(seconds): Promise {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n }\n\n customErrorForResponse(\n response: AxiosResponse,\n messageFromServer: string,\n httpBody?: string,\n ): TypesenseError {\n let errorMessage = `Request failed with HTTP code ${response.status}`;\n if (\n typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\"\n ) {\n errorMessage += ` | Server said: ${messageFromServer}`;\n }\n\n let error = new TypesenseError(errorMessage, httpBody, response.status);\n\n if (response.status === 400) {\n error = new RequestMalformed(errorMessage, httpBody, response.status);\n } else if (response.status === 401) {\n error = new RequestUnauthorized(errorMessage, httpBody, response.status);\n } else if (response.status === 404) {\n error = new ObjectNotFound(errorMessage, httpBody, response.status);\n } else if (response.status === 409) {\n error = new ObjectAlreadyExists(errorMessage, httpBody, response.status);\n } else if (response.status === 422) {\n error = new ObjectUnprocessable(errorMessage, httpBody, response.status);\n } else if (response.status >= 500 && response.status <= 599) {\n error = new ServerError(errorMessage, httpBody, response.status);\n } else {\n error = new HTTPError(errorMessage, httpBody, response.status);\n }\n\n return error;\n }\n\n private invokeOnChunkCallback(\n data: {\n conversation_id: string;\n message: string;\n },\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onChunk) {\n try {\n streamConfig.onChunk(data);\n } catch (error) {\n this.logger.warn(`Error in onChunk callback: ${error}`);\n }\n }\n }\n\n private invokeOnCompleteCallback(\n data: SearchResponse,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onComplete) {\n try {\n streamConfig.onComplete(data);\n } catch (error) {\n this.logger.warn(`Error in onComplete callback: ${error}`);\n }\n }\n }\n\n private invokeOnErrorCallback(\n error: unknown,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onError) {\n const errorObj = toErrorWithMessage(error);\n try {\n streamConfig.onError(errorObj);\n } catch (callbackError) {\n this.logger.warn(`Error in onError callback: ${callbackError}`);\n }\n }\n }\n}\n","/* eslint-disable no-dupe-class-members */\n\nimport Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Collection from \"./Collection\";\nimport Aliases from \"./Aliases\";\nimport Alias from \"./Alias\";\nimport Keys from \"./Keys\";\nimport Key from \"./Key\";\nimport Debug from \"./Debug\";\nimport Metrics from \"./Metrics\";\nimport Stats from \"./Stats\";\nimport Health from \"./Health\";\nimport Operations from \"./Operations\";\nimport MultiSearch from \"./MultiSearch\";\nimport Presets from \"./Presets\";\nimport Preset from \"./Preset\";\nimport AnalyticsV1 from \"./AnalyticsV1\";\nimport Analytics from \"./Analytics\";\nimport Stopwords from \"./Stopwords\";\nimport Stopword from \"./Stopword\";\nimport Conversations from \"./Conversations\";\nimport Conversation from \"./Conversation\";\nimport Stemming from \"./Stemming\";\nimport NLSearchModels from \"./NLSearchModels\";\nimport NLSearchModel from \"./NLSearchModel\";\nimport SynonymSets from \"./SynonymSets\";\nimport SynonymSet from \"./SynonymSet\";\nimport CurationSets from \"./CurationSets\";\nimport CurationSet from \"./CurationSet\";\n/**\n * Typesense client for indexing, searching, and managing collections.\n *\n * @see https://typesense.org/docs/latest/api/\n */\nexport default class Client {\n configuration: Configuration;\n apiCall: ApiCall;\n /**\n * Retrieve server version and state information.\n *\n * @example\n * await client.debug.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug\n */\n debug: Debug;\n /**\n * Get current RAM, CPU, Disk & Network usage metrics.\n *\n * @example\n * await client.metrics.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n metrics: Metrics;\n /**\n * Get stats about API endpoints.\n *\n * @example\n * await client.stats.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n stats: Stats;\n /**\n * Checks if Typesense server is ready to accept requests.\n *\n * @example\n * await client.health.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html#health\n */\n health: Health;\n /**\n * Cluster operations: snapshots, voting, cache, on-disk compaction, slow request log.\n *\n * @example\n * await client.operations.perform(\"snapshot\", { snapshot_path: \"/tmp/snap\" })\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n operations: Operations;\n /**\n * Send multiple search requests in a single HTTP request.\n *\n * @example\n * await client.multiSearch.perform({ searches: [{ collection: \"products\", q: \"*\" }] })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search\n */\n multiSearch: MultiSearch;\n /**\n * Manage analytics rules and events.\n *\n * @example\n * await client.analytics.rules().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n analytics: Analytics;\n /**\n * Legacy v1 analytics API for rules and events.\n *\n * @example\n * await client.analyticsV1.rules().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n analyticsV1: AnalyticsV1;\n /**\n * Manage stemming dictionaries.\n *\n * @example\n * await client.stemming.dictionaries().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n stemming: Stemming;\n private readonly _collections: Collections;\n private readonly individualCollections: Record;\n private readonly _aliases: Aliases;\n private readonly individualAliases: Record;\n private readonly _keys: Keys;\n private readonly individualKeys: Record;\n private readonly _presets: Presets;\n private readonly individualPresets: Record;\n private readonly _stopwords: Stopwords;\n private readonly individualStopwords: Record;\n private readonly _conversations: Conversations;\n private readonly individualConversations: Record;\n private readonly _nlSearchModels: NLSearchModels;\n private readonly individualNLSearchModels: Record;\n private readonly _synonymSets: SynonymSets;\n private readonly individualSynonymSets: Record;\n private readonly _curationSets: CurationSets;\n private readonly individualCurationSets: Record;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.debug = new Debug(this.apiCall);\n this.metrics = new Metrics(this.apiCall);\n this.stats = new Stats(this.apiCall);\n this.health = new Health(this.apiCall);\n this.operations = new Operations(this.apiCall);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration);\n this._collections = new Collections(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics(this.apiCall);\n this.analyticsV1 = new AnalyticsV1(this.apiCall);\n this.stemming = new Stemming(this.apiCall);\n this._conversations = new Conversations(this.apiCall);\n this.individualConversations = {};\n this._nlSearchModels = new NLSearchModels(this.apiCall);\n this.individualNLSearchModels = {};\n this._synonymSets = new SynonymSets(this.apiCall);\n this.individualSynonymSets = {};\n this._curationSets = new CurationSets(this.apiCall);\n this.individualCurationSets = {};\n }\n\n /**\n * Access the collections resource. Call without arguments to list or create collections, or pass a name to access a single collection.\n *\n * @example\n * await client.collections().create({ name: \"products\", fields: [{ name: \"title\", type: \"string\" }] })\n * @example\n * await client.collections(\"products\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collections.html\n */\n collections(): Collections;\n /**\n * Access an individual collection by name.\n *\n * @example\n * await client.collections(\"products\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collections.html\n */\n collections = object>(\n collectionName: string,\n ): Collection;\n collections(collectionName?: string): Collections | Collection {\n if (collectionName === undefined) {\n return this._collections;\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection(\n collectionName,\n this.apiCall,\n this.configuration,\n );\n }\n return this.individualCollections[collectionName];\n }\n }\n\n /**\n * Access the aliases resource. Call without arguments to list or upsert aliases, or pass a name to access a single alias.\n *\n * @example\n * await client.aliases().upsert(\"my-alias\", { collection_name: \"products\" })\n * @example\n * await client.aliases(\"my-alias\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html\n */\n aliases(): Aliases;\n /**\n * Access an individual collection alias by name.\n *\n * @example\n * await client.aliases(\"my-alias\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html\n */\n aliases(aliasName: string): Alias;\n aliases(aliasName?: string): Aliases | Alias {\n if (aliasName === undefined) {\n return this._aliases;\n } else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n }\n\n /**\n * Access the API keys resource. Call without arguments to list or create keys, or pass an ID to access a single key.\n *\n * @example\n * await client.keys().create({ description: \"Search-only key\", actions: [\"documents:search\"], collections: [\"*\"] })\n * @example\n * await client.keys(1).retrieve()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html\n */\n keys(): Keys;\n /**\n * Access an individual API key by ID.\n *\n * @example\n * await client.keys(1).retrieve()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html\n */\n keys(id: number): Key;\n keys(id?: number): Keys | Key {\n if (id === undefined) {\n return this._keys;\n } else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n }\n\n /**\n * Access the presets resource. Call without arguments to list or upsert presets, or pass an ID to access a single preset.\n *\n * @example\n * await client.presets().upsert(\"listing_view\", { value: { q: \"*\" } })\n * @example\n * await client.presets(\"listing_view\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n presets(): Presets;\n /**\n * Access an individual preset by ID.\n *\n * @example\n * await client.presets(\"listing_view\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n presets(id: string): Preset;\n presets(id?: string): Presets | Preset {\n if (id === undefined) {\n return this._presets;\n } else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n }\n\n /**\n * Access the stopwords resource. Call without arguments to list or upsert stopword sets, or pass an ID to access a single set.\n *\n * @example\n * await client.stopwords().upsert(\"en\", { stopwords: [\"a\", \"the\"] })\n * @example\n * await client.stopwords(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n stopwords(): Stopwords;\n /**\n * Access an individual stopwords set by ID.\n *\n * @example\n * await client.stopwords(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n stopwords(id: string): Stopword;\n stopwords(id?: string): Stopwords | Stopword {\n if (id === undefined) {\n return this._stopwords;\n } else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n }\n\n /**\n * Access the conversation models resource. Call without arguments to list models, or pass an ID to access a single model.\n *\n * @example\n * await client.conversations().retrieve()\n * @example\n * await client.conversations(\"conv-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n conversations(): Conversations;\n /**\n * Access an individual conversation model by ID.\n *\n * @example\n * await client.conversations(\"conv-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n conversations(id: string): Conversation;\n conversations(id?: string): Conversations | Conversation {\n if (id === undefined) {\n return this._conversations;\n } else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n }\n\n /**\n * Access the NL search models resource. Call without arguments to list or create models, or pass an ID to access a single model.\n *\n * @example\n * await client.nlSearchModels().create({ model_name: \"openai/gpt-4\" })\n * @example\n * await client.nlSearchModels(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n nlSearchModels(): NLSearchModels;\n /**\n * Access an individual NL search model by ID.\n *\n * @example\n * await client.nlSearchModels(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n nlSearchModels(id: string): NLSearchModel;\n nlSearchModels(id?: string): NLSearchModels | NLSearchModel {\n if (id === undefined) {\n return this._nlSearchModels;\n } else {\n if (this.individualNLSearchModels[id] === undefined) {\n this.individualNLSearchModels[id] = new NLSearchModel(id, this.apiCall);\n }\n return this.individualNLSearchModels[id];\n }\n }\n\n /**\n * Access the synonym sets resource. Call without arguments to list sets, or pass a name to access a single set.\n *\n * @example\n * await client.synonymSets().retrieve()\n * @example\n * await client.synonymSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n synonymSets(): SynonymSets;\n /**\n * Access an individual synonym set by name.\n *\n * @example\n * await client.synonymSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n synonymSets(synonymSetName: string): SynonymSet;\n synonymSets(synonymSetName?: string): SynonymSets | SynonymSet {\n if (synonymSetName === undefined) {\n return this._synonymSets;\n } else {\n if (this.individualSynonymSets[synonymSetName] === undefined) {\n this.individualSynonymSets[synonymSetName] = new SynonymSet(\n synonymSetName,\n this.apiCall,\n );\n }\n return this.individualSynonymSets[synonymSetName];\n }\n }\n\n /**\n * Access the curation sets resource. Call without arguments to list sets, or pass a name to access a single set.\n *\n * @example\n * await client.curationSets().retrieve()\n * @example\n * await client.curationSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n curationSets(): CurationSets;\n /**\n * Access an individual curation set by name.\n *\n * @example\n * await client.curationSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n curationSets(name: string): CurationSet;\n curationSets(name?: string): CurationSets | CurationSet {\n if (name === undefined) {\n return this._curationSets;\n } else {\n if (this.individualCurationSets[name] === undefined) {\n this.individualCurationSets[name] = new CurationSet(\n name,\n this.apiCall,\n );\n }\n return this.individualCurationSets[name];\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport type {\n BaseCollectionCreateSchema,\n CollectionCreateSchema,\n} from \"./Collections\";\nimport Documents, { DocumentSchema } from \"./Documents\";\nimport { ObjectNotFound } from \"./Errors\";\nimport Overrides from \"./Overrides\";\nimport Override from \"./Override\";\nimport Synonyms from \"./Synonyms\";\nimport Synonym from \"./Synonym\";\nimport { Document } from \"./Document\";\n\nexport type FieldType =\n | \"string\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"bool\"\n | \"geopoint\"\n | \"geopolygon\"\n | \"geopoint[]\"\n | \"string[]\"\n | \"int32[]\"\n | \"int64[]\"\n | \"float[]\"\n | \"bool[]\"\n | \"object\"\n | \"object[]\"\n | \"auto\"\n | \"string*\"\n | \"image\";\n\nexport interface CollectionFieldSchema\n extends Partial<\n Pick\n > {\n name: string;\n type: FieldType;\n optional?: boolean;\n facet?: boolean;\n index?: boolean;\n sort?: boolean;\n locale?: string;\n infix?: boolean;\n stem?: boolean;\n num_dim?: number;\n store?: boolean;\n range_index?: boolean;\n [t: string]: unknown;\n}\n\nexport interface CollectionSchema extends Required {\n created_at: number;\n num_documents: number;\n num_memory_shards: number;\n}\n\nexport interface CollectionDropFieldSchema {\n name: string;\n drop: true;\n}\n\nexport interface CollectionUpdateSchema\n extends Partial> {\n fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];\n}\n\nexport interface CollectionDeleteOptions {\n compact_store?: boolean;\n}\n\nexport default class Collection {\n private readonly _documents: Documents;\n private individualDocuments: Record> = {};\n private readonly _overrides: Overrides;\n private individualOverrides: Record = {};\n private readonly _synonyms: Synonyms;\n private individualSynonyms: Record = {};\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any,\n ) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n\n this._documents = new Documents(\n this.name,\n this.apiCall,\n this.configuration,\n );\n this._overrides = new Overrides(this.name, this.apiCall);\n this._synonyms = new Synonyms(this.name, this.apiCall);\n }\n\n /**\n * Retrieve the details of a collection, given its name.\n *\n * @example\n * await client.collections(\"products\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Update a collection's schema to modify the fields and their types.\n *\n * @example\n * await client.collections(\"products\").update({ fields: [{ name: \"tags\", type: \"string[]\" }] })\n *\n * @see https://typesense.org/docs/latest/api/collections.html#update-or-alter-a-collection\n */\n async update(schema: CollectionUpdateSchema): Promise {\n return this.apiCall.patch(this.endpointPath(), schema);\n }\n\n /**\n * Permanently drops a collection. This action cannot be undone. For large collections, this might have an impact on read latencies.\n *\n * @example\n * await client.collections(\"products\").delete()\n *\n * @see https://typesense.org/docs/latest/api/collections.html#drop-a-collection\n */\n async delete(\n options: CollectionDeleteOptions = {},\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n /**\n * Check whether the collection exists.\n *\n * @example\n * await client.collections(\"products\").exists()\n *\n * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection\n */\n async exists(): Promise {\n try {\n await this.retrieve();\n return true;\n } catch (e) {\n if (e instanceof ObjectNotFound) return false;\n throw e;\n }\n }\n\n /**\n * Access the documents resource for this collection. Call without arguments to list, index, search, import, or export documents, or pass a document ID to access a single document.\n *\n * @example\n * await client.collections(\"products\").documents().create({ id: \"1\", title: \"Hat\" })\n * @example\n * await client.collections(\"products\").documents(\"1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/documents.html\n */\n documents(): Documents;\n /**\n * Access an individual document by ID within this collection.\n *\n * @example\n * await client.collections(\"products\").documents(\"1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/documents.html\n */\n documents(documentId: string): Document;\n documents(documentId?: string): Document | Documents {\n if (!documentId) {\n return this._documents;\n } else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document(\n this.name,\n documentId,\n this.apiCall,\n );\n }\n return this.individualDocuments[documentId];\n }\n }\n\n /**\n * Access the legacy overrides (curation) resource for this collection. Call without arguments to list or upsert overrides, or pass an ID to access a single override.\n *\n * @example\n * await client.collections(\"products\").overrides().upsert(\"promote-hat\", { rule: { query: \"hat\", match: \"exact\" }, includes: [] })\n * @example\n * await client.collections(\"products\").overrides(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n overrides(): Overrides;\n /**\n * Access an individual override by ID within this collection.\n *\n * @example\n * await client.collections(\"products\").overrides(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n overrides(overrideId: string): Override;\n overrides(overrideId?: string): Overrides | Override {\n if (overrideId === undefined) {\n return this._overrides;\n } else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override(\n this.name,\n overrideId,\n this.apiCall,\n );\n }\n return this.individualOverrides[overrideId];\n }\n }\n\n /**\n * Access the legacy synonyms resource for this collection. Call without arguments to list or upsert synonyms, or pass an ID to access a single synonym.\n *\n * @example\n * await client.collections(\"products\").synonyms().upsert(\"syn-1\", { synonyms: [\"nyc\", \"new york\"] })\n * @example\n * await client.collections(\"products\").synonyms(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n synonyms(): Synonyms;\n /**\n * Access an individual synonym by ID within this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n synonyms(synonymId: string): Synonym;\n synonyms(synonymId?: string): Synonyms | Synonym {\n if (synonymId === undefined) {\n return this._synonyms;\n } else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym(\n this.name,\n synonymId,\n this.apiCall,\n );\n }\n return this.individualSynonyms[synonymId];\n }\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { CollectionFieldSchema, CollectionSchema } from \"./Collection\";\n\nexport interface BaseCollectionCreateSchema {\n name: string;\n default_sorting_field?: string;\n symbols_to_index?: string[];\n token_separators?: string[];\n enable_nested_fields?: boolean;\n metadata?: object;\n voice_query_model?: {\n model_name?: string;\n };\n synonym_sets?: string[];\n curation_sets?: string[];\n}\n\ninterface CollectionCreateSchemaWithSrc\n extends Pick {\n fields?: CollectionFieldSchema[];\n}\n\ninterface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {\n fields: CollectionFieldSchema[];\n}\n\n/**\n * Defines the schema for creating a collection in Typesense.\n *\n * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.\n * Otherwise, `fields` will be required.\n */\nexport type CollectionCreateSchema<\n Options extends CollectionCreateOptions = CollectionCreateOptions,\n> = Options[\"src_name\"] extends string\n ? CollectionCreateSchemaWithSrc\n : CollectionCreateSchemaWithoutSrc;\n\nexport interface CollectionCreateOptions {\n src_name?: string;\n}\n\nexport interface CollectionsRetrieveOptions {\n exclude_fields?: string;\n}\n\nconst RESOURCEPATH = \"/collections\";\n\nexport default class Collections {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * When a collection is created, we give it a name and describe the fields that will be indexed from the documents added to the collection.\n *\n * @example\n * await client.collections().create({ name: \"products\", fields: [{ name: \"title\", type: \"string\" }] })\n *\n * @see https://typesense.org/docs/latest/api/collections.html#create-a-collection\n */\n async create(\n schema: CollectionCreateSchema,\n options?: Options,\n ): Promise {\n return this.apiCall.post(RESOURCEPATH, schema, options);\n }\n\n /**\n * Returns a summary of all your collections. The collections are returned sorted by creation date, with the most recent collections appearing first.\n *\n * @example\n * await client.collections().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collections.html#list-all-collections\n */\n async retrieve(\n options: CollectionsRetrieveOptions = {},\n ): Promise {\n return this.apiCall.get(RESOURCEPATH, options);\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import * as logger from \"loglevel\";\nimport { Logger, LogLevelDesc } from \"loglevel\";\nimport { MissingConfigurationError } from \"./Errors\";\nimport type { Agent as HTTPAgent } from \"http\";\nimport type { Agent as HTTPSAgent } from \"https\";\nimport type { AxiosRequestConfig } from \"axios\";\nimport { DocumentSchema, SearchResponse } from \"./Documents\";\n\nexport interface NodeConfiguration {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n url?: string;\n}\n\nexport interface NodeConfigurationWithHostname {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n}\n\nexport interface NodeConfigurationWithUrl {\n url: string;\n}\n\nexport interface ConfigurationOptions {\n apiKey: string;\n nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n randomizeNodes?: boolean;\n /**\n * @deprecated\n * masterNode is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n masterNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n /**\n * @deprecated\n * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n readReplicaNodes?:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n connectionTimeoutSeconds?: number;\n timeoutSeconds?: number;\n healthcheckIntervalSeconds?: number;\n numRetries?: number;\n retryIntervalSeconds?: number;\n sendApiKeyAsQueryParam?: boolean | undefined;\n useServerSideSearchCache?: boolean;\n cacheSearchResultsForSeconds?: number;\n additionalHeaders?: Record;\n\n logLevel?: LogLevelDesc;\n logger?: Logger;\n\n /**\n * Set a custom HTTP Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPAgent } = require(\"http\");\n * ...\n * httpAgent: new HTTPAgent({ keepAlive: true }),\n * @type {HTTPAgent}\n */\n httpAgent?: HTTPAgent;\n\n /**\n * Set a custom HTTPS Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPSAgent } = require(\"https\");\n * ...\n * httpsAgent: new HTTPSAgent({ keepAlive: true }),\n * @type {HTTPSAgent}\n */\n httpsAgent?: HTTPSAgent;\n\n /**\n * Set a custom paramsSerializer\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397\n * @type {any}\n */\n paramsSerializer?: any;\n\n /**\n * Set a custom axios adapter\n *\n * Useful for customizing the underlying HTTP client library used by Typesense.\n *\n * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge.\n * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n */\n axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n}\n\n/**\n * Configuration options for streaming responses\n */\nexport interface BaseStreamConfig {\n /**\n * Callback function that will be called for each chunk of data received\n * during streaming\n */\n onChunk?: (data: { conversation_id: string; message: string }) => void;\n /**\n * Callback function that will be called if there is an error during streaming\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Stream configuration for standard search responses\n * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature\n */\nexport interface StreamConfig\n extends BaseStreamConfig {\n /**\n * Callback function that will be called when the streaming is complete\n */\n onComplete?: (data: SearchResponse) => void;\n}\n\nexport default class Configuration {\n readonly nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n readonly nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n readonly connectionTimeoutSeconds: number;\n readonly healthcheckIntervalSeconds: number;\n readonly numRetries: number;\n readonly retryIntervalSeconds: number;\n readonly apiKey: string;\n readonly sendApiKeyAsQueryParam?: boolean;\n readonly cacheSearchResultsForSeconds: number;\n readonly useServerSideSearchCache: boolean;\n readonly logger: Logger;\n readonly logLevel: LogLevelDesc;\n readonly additionalHeaders?: Record;\n readonly httpAgent?: HTTPAgent;\n readonly httpsAgent?: HTTPSAgent;\n readonly paramsSerializer?: any;\n readonly axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n\n constructor(options: ConfigurationOptions) {\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map((node) => this.setDefaultPathInNode(node))\n .map((node) => this.setDefaultPortInNode(node))\n .map((node) => ({ ...node })) as NodeConfiguration[]; // Make a deep copy\n\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n (options.numRetries !== undefined && options.numRetries >= 0\n ? options.numRetries\n : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n\n this.axiosAdapter = options.axiosAdapter;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n\n this.additionalHeaders = options.additionalHeaders;\n\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n\n this.paramsSerializer = options.paramsSerializer;\n\n this.showDeprecationWarnings(options);\n this.validate();\n }\n\n validate(): boolean {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new MissingConfigurationError(\n \"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\",\n );\n }\n\n if (\n this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)\n ) {\n throw new MissingConfigurationError(\n \"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\",\n );\n }\n\n if (this.apiKey == null) {\n throw new MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n\n return true;\n }\n\n private validateNodes(): boolean {\n return this.nodes.some((node) => {\n return this.isNodeMissingAnyParameters(node);\n });\n }\n\n private isNodeMissingAnyParameters(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl,\n ): boolean {\n return (\n ![\"protocol\", \"host\", \"port\", \"path\"].every((key) => {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null\n );\n }\n\n private setDefaultPathInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n }\n\n private setDefaultPortInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (\n node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")\n ) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n }\n\n private showDeprecationWarnings(options: ConfigurationOptions): void {\n if (options.timeoutSeconds) {\n this.logger.warn(\n \"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\",\n );\n }\n if (options.masterNode) {\n this.logger.warn(\n \"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\n \"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n }\n\n private shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Conversations from \"./Conversations\";\n\nexport interface ConversationDeleteSchema {\n id: number;\n}\n\nexport interface ConversationUpdateSchema {\n ttl: number;\n}\n\nexport interface ConversationSchema {\n id: number;\n conversation: object[];\n last_updated: number;\n ttl: number;\n}\n\nexport default class Conversation {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve a conversation by ID.\n *\n * @example\n * await client.conversations(\"conv-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Update a conversation's TTL.\n *\n * @example\n * await client.conversations(\"conv-1\").update({ ttl: 3600 })\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async update(\n params: ConversationUpdateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n /**\n * Delete a conversation by ID.\n *\n * @example\n * await client.conversations(\"conv-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\n\nexport interface ConversationModelCreateSchema {\n id?: string;\n model_name: string;\n api_key?: string;\n system_prompt?: string;\n max_bytes: number;\n history_collection?: string;\n account_id?: string;\n url?: string;\n ttl?: number;\n vllm_url?: string;\n openai_url?: string;\n openai_path?: string;\n}\n\nexport interface ConversationModelDeleteSchema {\n id: string;\n}\n\nexport interface ConversationModelSchema extends ConversationModelCreateSchema {\n id: string;\n}\n\nexport default class ConversationModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Update a conversation model\n *\n * @example\n * await client.conversations().models(\"model-1\").update({ model_name: \"openai/gpt-4\", max_bytes: 16384 })\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async update(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n /**\n * Retrieve a conversation model\n *\n * @example\n * await client.conversations().models(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a conversation model\n *\n * @example\n * await client.conversations().models(\"model-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n ConversationModelCreateSchema,\n ConversationModelSchema,\n} from \"./ConversationModel\";\n\nconst RESOURCEPATH = \"/conversations/models\";\n\nexport default class ConversationModels {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Create a Conversation Model\n *\n * @example\n * await client.conversations().models().create({ model_name: \"openai/gpt-4\", api_key: \"...\" })\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async create(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n /**\n * Retrieve all conversation models\n *\n * @example\n * await client.conversations().models().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${ConversationModels.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\nimport ConversationModel from \"./ConversationModel\";\nimport { ConversationSchema } from \"./Conversation\";\n\nconst RESOURCEPATH = \"/conversations\";\n\nexport interface ConversationsRetrieveSchema {\n conversations: ConversationSchema[];\n}\n\nexport default class Conversations {\n private readonly _conversationsModels: ConversationModels;\n private readonly individualConversationModels: Record<\n string,\n ConversationModel\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels(this.apiCall);\n }\n\n /**\n * Retrieve all conversations.\n *\n * @example\n * await client.conversations().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n /**\n * Access the conversation models resource. Call without arguments to list or create models, or pass an ID to access a single model.\n *\n * @example\n * await client.conversations().models().create({ model_name: \"openai/gpt-4\", api_key: \"...\" })\n * @example\n * await client.conversations().models(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n models(): ConversationModels;\n /**\n * Access an individual conversation model by ID.\n *\n * @example\n * await client.conversations().models(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n models(id: string): ConversationModel;\n models(id?: string): ConversationModels | ConversationModel {\n if (id === undefined) {\n return this._conversationsModels;\n } else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel(\n id,\n this.apiCall,\n );\n }\n return this.individualConversationModels[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets from \"./CurationSets\";\nimport type {\n CurationSetDeleteResponseSchema,\n CurationSetSchema,\n CurationSetUpsertSchema,\n} from \"./CurationSets\";\nimport CurationSetItems from \"./CurationSetItems\";\nimport CurationSetItem from \"./CurationSetItem\";\n\nexport default class CurationSet {\n private readonly _items: CurationSetItems;\n private individualItems: Record = {};\n\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {\n this._items = new CurationSetItems(this.name, apiCall);\n }\n\n /**\n * Create or update a curation set with the given name\n *\n * @example\n * await client.curationSets(\"my-set\").upsert({ items: [{ id: \"promote-hat\", rule: { query: \"hat\", match: \"exact\" } }] })\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async upsert(params: CurationSetUpsertSchema): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n /**\n * Retrieve a specific curation set by its name\n *\n * @example\n * await client.curationSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a specific curation set by its name\n *\n * @example\n * await client.curationSets(\"my-set\").delete()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n /**\n * Access the items in this curation set. Call without arguments to list items, or pass an item ID to access a single item.\n *\n * @example\n * await client.curationSets(\"my-set\").items().retrieve()\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n items(): CurationSetItems;\n /**\n * Access an individual curation item by ID within this curation set.\n *\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n items(itemId: string): CurationSetItem;\n items(itemId?: string): CurationSetItems | CurationSetItem {\n if (itemId === undefined) {\n return this._items;\n } else {\n if (this.individualItems[itemId] === undefined) {\n this.individualItems[itemId] = new CurationSetItem(\n this.name,\n itemId,\n this.apiCall,\n );\n }\n return this.individualItems[itemId];\n }\n }\n\n private endpointPath(): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets from \"./CurationSets\";\nimport type { CurationObjectSchema } from \"./CurationSets\";\n\nexport type CurationItemUpsertSchema = Omit;\n\nexport interface CurationItemDeleteResponseSchema {\n id: string;\n}\n\nexport default class CurationSetItem {\n constructor(\n private name: string,\n private itemId: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve a specific curation item by its id\n *\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Create or update a curation set item with the given id\n *\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").upsert({ rule: { query: \"hat\", match: \"exact\" }, includes: [] })\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async upsert(\n params: CurationItemUpsertSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n /**\n * Delete a specific curation item by its id\n *\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").delete()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(\n this.name,\n )}/items/${encodeURIComponent(this.itemId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets, { CurationObjectSchema } from \"./CurationSets\";\n\nexport default class CurationSetItems {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n /**\n * Retrieve all curation items in a set\n *\n * @example\n * await client.curationSets(\"my-set\").items().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}/items${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\n\nexport type CurationRuleSchema =\n | {\n query: string;\n match: \"exact\" | \"contains\";\n filter_by?: string;\n tags?: string[];\n }\n | {\n query?: never;\n match?: never;\n filter_by: string;\n tags?: string[];\n }\n | {\n query?: never;\n match?: never;\n filter_by?: string;\n tags: string[];\n };\n\nexport interface CurationObjectSchema {\n id: string;\n rule: CurationRuleSchema;\n includes?: {\n id: string;\n position: number;\n }[];\n excludes?: {\n id: string;\n }[];\n filter_by?: string;\n sort_by?: string;\n replace_query?: string;\n remove_matched_tokens?: boolean;\n filter_curated_hits?: boolean;\n stop_processing?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n metadata?: Record;\n}\n\nexport interface CurationSetUpsertSchema {\n items: CurationObjectSchema[];\n}\n\nexport interface CurationSetSchema extends CurationSetUpsertSchema {\n name?: string;\n}\n\nexport interface CurationSetsListEntrySchema {\n name: string;\n items: CurationObjectSchema[];\n}\n\nexport interface CurationSetDeleteResponseSchema {\n name: string;\n}\n\nexport default class CurationSets {\n constructor(private apiCall: ApiCall) {}\n static readonly RESOURCEPATH = \"/curation_sets\";\n\n /**\n * Retrieve all curation sets\n *\n * @example\n * await client.curationSets().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(\n CurationSets.RESOURCEPATH,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/debug\";\n\nexport interface DebugResponseSchema {\n state: number;\n version: string;\n}\n\nexport default class Debug {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Retrieve server version and state information.\n *\n * @example\n * await client.debug.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Documents, {\n DeleteQuery,\n DocumentSchema,\n DocumentWriteParameters,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nexport interface DocumentsRetrieveParameters {\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n}\n\nexport class Document {\n constructor(\n private collectionName: string,\n private documentId: string,\n private apiCall: ApiCall\n ) {}\n\n /**\n * Fetch an individual document from a collection by using its ID.\n *\n * @example\n * await client.collections(\"products\").documents(\"1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/documents.html#retrieve-a-document\n */\n async retrieve(options?: DocumentsRetrieveParameters): Promise {\n const queryParams = normalizeArrayableParams(options ?? {})\n\n return this.apiCall.get(this.endpointPath(), queryParams);\n }\n\n /**\n * Delete an individual document from a collection by using its ID.\n *\n * @example\n * await client.collections(\"products\").documents(\"1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/documents.html#delete-a-document\n */\n async delete(options?: DeleteQuery): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n /**\n * Update an individual document by ID by merging the provided fields.\n *\n * @example\n * await client.collections(\"products\").documents(\"1\").update({ in_stock: true })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#update-a-document\n */\n async update(\n partialDocument: Partial,\n options: DocumentWriteParameters = {}\n ): Promise {\n return this.apiCall.patch(this.endpointPath(), partialDocument, options);\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`;\n }\n}\n","import type { ReadStream } from \"fs\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport { ImportError, RequestMalformed } from \"./Errors\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport {\n SearchParams,\n SearchResponseRequestParams,\n WriteableDocuments,\n} from \"./Types\";\n\n// Todo: use generic to extract filter_by values\nexport type DeleteQuery =\n | {\n truncate?: true;\n }\n | {\n truncate?: never;\n filter_by?: string;\n batch_size?: number;\n ignore_not_found?: boolean;\n return_doc?: boolean;\n return_id?: boolean;\n };\n\nexport interface DeleteResponse {\n num_deleted: number;\n documents?: T[];\n ids?: string[];\n}\n\ninterface ImportResponseSuccess {\n success: true;\n error?: never;\n document?: T;\n id?: string;\n code?: never;\n}\n\nexport interface ImportResponseFail {\n success: false;\n error: string;\n document?: T;\n id?: string;\n code: number;\n}\n\nexport type ImportResponse = ImportResponseSuccess | ImportResponseFail;\n\nexport type DocumentSchema = Record;\n\nexport interface SearchParamsWithPreset<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n preset: string;\n}\n\ntype SearchResponseHighlightObject = {\n matched_tokens?: string[];\n snippet?: string;\n value?: string;\n};\n\nexport type SearchResponseHighlight = T extends string | number\n ? SearchResponseHighlightObject\n : {\n [TAttribute in keyof T]?: SearchResponseHighlight;\n };\n\nexport interface SearchResponseHit {\n curated?: true;\n highlights?: [\n {\n field: keyof T;\n snippet?: string;\n value?: string;\n snippets?: string[];\n indices?: number[];\n matched_tokens: string[][] | string[];\n },\n ];\n highlight: SearchResponseHighlight;\n document: T;\n text_match: number;\n text_match_info?: {\n best_field_score: `${number}`; // To prevent scores from being truncated by JSON spec\n best_field_weight: number;\n fields_matched: number;\n score: `${number}`; // To prevent scores from being truncated by JSON spec\n tokens_matched: number;\n };\n geo_distance_meters?: {\n location: number\n };\n}\n\nexport interface SearchResponseFacetCountSchema {\n counts: {\n count: number;\n highlighted: string;\n value: string;\n parent?: Record;\n }[];\n field_name: keyof T;\n sampled: boolean;\n stats: {\n avg?: number;\n max?: number;\n min?: number;\n sum?: number;\n total_values?: number;\n };\n}\n\ninterface LLMResponse {\n content: string;\n extraction_method: string;\n model: string;\n}\n\n// Todo: we could infer whether this is a grouped response by adding the search params as a generic\nexport interface SearchResponse {\n facet_counts?: SearchResponseFacetCountSchema[];\n found: number;\n found_docs?: number;\n out_of: number;\n page: number;\n request_params: SearchResponseRequestParams;\n search_time_ms: number;\n search_cutoff?: boolean;\n hits?: SearchResponseHit[];\n grouped_hits?: {\n group_key: string[];\n hits: SearchResponseHit[];\n found?: number;\n }[];\n parsed_nl_query?: {\n parse_time_ms: number;\n generated_params: SearchParams;\n augmented_params: SearchParams;\n llm_response?: LLMResponse;\n };\n conversation?: {\n answer: string;\n conversation_history: {\n conversation: object[];\n id: string;\n last_updated: number;\n ttl: number;\n };\n conversation_id: string;\n query: string;\n };\n error?: string;\n code?: number;\n metadata?: JsonRecord;\n}\n\ntype JSONPrimitive = string | number | boolean | null;\n\ntype JsonRecord = {\n [key: string]: JSONPrimitive | JSONPrimitive[] | JsonRecord;\n};\n\nexport interface DocumentWriteParameters {\n dirty_values?: \"coerce_or_reject\" | \"coerce_or_drop\" | \"drop\" | \"reject\";\n action?: \"create\" | \"update\" | \"upsert\" | \"emplace\";\n}\n\nexport interface UpdateByFilterParameters {\n filter_by?: string;\n}\n\nexport interface UpdateByFilterResponse {\n num_updated: number;\n}\n\nexport interface DocumentImportParameters extends DocumentWriteParameters {\n batch_size?: number;\n remote_embedding_batch_size?: number;\n remote_embedding_timeout_ms?: number;\n remote_embedding_num_tries?: number;\n return_doc?: boolean;\n return_id?: boolean;\n throwOnFail?: boolean;\n}\n\nexport interface DocumentsExportParameters {\n filter_by?: string;\n include_fields?: string;\n exclude_fields?: string;\n}\n\nexport interface SearchOptions {\n cacheSearchResultsForSeconds?: number;\n abortSignal?: AbortSignal | null;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nexport default class Documents\n extends SearchOnlyDocuments\n implements WriteableDocuments\n{\n constructor(\n collectionName: string,\n apiCall: ApiCall,\n configuration: Configuration,\n ) {\n super(collectionName, apiCall, configuration);\n }\n\n /**\n * Index a single document. The document must conform to the schema of the collection.\n *\n * @example\n * await client.collections(\"products\").documents().create({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-a-single-document\n */\n async create(\n document: T,\n options: Omit = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(this.endpointPath(), document, options);\n }\n\n /**\n * Upsert a single document. Creates the document if it does not exist, otherwise updates it.\n *\n * @example\n * await client.collections(\"products\").documents().upsert({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#upsert\n */\n async upsert(document: T, options: Omit = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"upsert\" }),\n );\n }\n\n /**\n * Update documents matching a `filter_by` condition, or update a single document with `action: \"update\"` semantics.\n *\n * @example\n * await client.collections(\"products\").documents().update({ in_stock: true }, { filter_by: \"category:=hats\" })\n * @example\n * await client.collections(\"products\").documents().update({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#update-documents-with-conditional-query\n */\n async update(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n /**\n * Update a single document by merging the provided fields.\n *\n * @example\n * await client.collections(\"products\").documents().update({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#update-a-document\n */\n async update(document: T, options: Omit): Promise;\n async update(\n document: T,\n options: Omit | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"update\" }),\n );\n }\n }\n\n /**\n * Emplace documents — insert new documents or update existing ones, optionally by `filter_by`.\n *\n * @example\n * await client.collections(\"products\").documents().emplace({ id: \"1\", title: \"Hat\" })\n * @example\n * await client.collections(\"products\").documents().emplace({ in_stock: true }, { filter_by: \"category:=hats\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async emplace(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n /**\n * Emplace a single document — inserts if it does not exist, otherwise merges the provided fields.\n *\n * @example\n * await client.collections(\"products\").documents().emplace({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async emplace(\n document: T,\n options: Omit,\n ): Promise;\n async emplace(\n document: T,\n options: Omit | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"emplace\" }),\n );\n }\n }\n\n /**\n * Delete a bunch of documents that match a specific filter condition, or truncate the collection.\n *\n * @example\n * await client.collections(\"products\").documents().delete({ filter_by: \"in_stock:=false\" })\n * @example\n * await client.collections(\"products\").documents().delete({ truncate: true })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#delete-by-query\n */\n async delete(\n query: DeleteQuery = {} as DeleteQuery,\n ): Promise> {\n return this.apiCall.delete>(this.endpointPath(), query);\n }\n\n /**\n * @deprecated Use `import` instead, which accepts both an array of documents or a JSONL string.\n */\n async createMany(documents: T[], options: DocumentImportParameters = {}) {\n this.configuration.logger.warn(\n \"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\",\n );\n return this.import(documents, options);\n }\n\n /**\n * Import documents into a collection. Accepts a JSONL string or an array of document objects.\n *\n * @example\n * await client.collections(\"products\").documents().import([{ id: \"1\", title: \"Hat\" }, { id: \"2\", title: \"Shirt\" }])\n * @example\n * await client.collections(\"products\").documents().import(jsonlString)\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async import(\n documents: string,\n options?: DocumentImportParameters,\n ): Promise;\n /**\n * Import documents into a collection from an array of objects. Returns one result per document.\n *\n * @example\n * await client.collections(\"products\").documents().import([{ id: \"1\", title: \"Hat\" }])\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async import(\n documents: T[],\n options?: DocumentImportParameters,\n ): Promise[]>;\n async import(\n documents: T[] | string,\n options: DocumentImportParameters = {},\n ): Promise[]> {\n // Set default value for throwOnFail if not provided\n const finalOptions = { throwOnFail: true, ...options };\n let documentsInJSONLFormat;\n if (Array.isArray(documents)) {\n if (documents.length === 0) {\n throw new RequestMalformed(\"No documents provided\");\n }\n try {\n documentsInJSONLFormat = documents\n .map((document) => JSON.stringify(document))\n .join(\"\\n\");\n } catch (error: any) {\n // if rangeerror, throw custom error message\n if (\n error instanceof RangeError &&\n error.message.includes(\"Too many properties to enumerate\")\n ) {\n throw new Error(`${error}\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n `);\n }\n\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n } else {\n documentsInJSONLFormat = documents;\n if (isEmptyString(documentsInJSONLFormat)) {\n throw new RequestMalformed(\"No documents provided\");\n }\n }\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: finalOptions,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n if (Array.isArray(documents)) {\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter(\n (r) => r.success === false,\n );\n if (failedItems.length > 0 && finalOptions.throwOnFail) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat,\n options: finalOptions,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n } else {\n return resultsInJSONLFormat as string;\n }\n }\n /**\n * Imports documents from a NodeJS readable stream of JSONL.\n *\n * @example\n * await client.collections(\"products\").documents().importStream(fs.createReadStream(\"products.jsonl\"))\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async importStream(\n readableStream: ReadStream,\n options: DocumentImportParameters = {},\n ): Promise[]> {\n const finalOptions = { throwOnFail: true, ...options };\n \n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: finalOptions,\n bodyParameters: readableStream,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter((r) => r.success === false);\n if (failedItems.length > 0 && finalOptions.throwOnFail) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat: readableStream,\n options: finalOptions,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n }\n\n /**\n * Export all documents in a collection as a JSONL string.\n *\n * @example\n * await client.collections(\"products\").documents().export()\n *\n * @see https://typesense.org/docs/latest/api/documents.html#export-documents\n */\n async export(options: DocumentsExportParameters = {}): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options);\n }\n\n /**\n * Export all documents in a collection as a NodeJS readable stream of JSONL.\n *\n * @example\n * await client.collections(\"products\").documents().exportStream()\n *\n * @see https://typesense.org/docs/latest/api/documents.html#export-documents\n */\n async exportStream(\n options: DocumentsExportParameters = {},\n ): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n });\n }\n}\n\nfunction isEmptyString(str: string | null | undefined): boolean {\n return str == null || str === \"\" || str.length === 0;\n}\n\n/**\n * @deprecated Import from './Types' instead\n */\nexport type {\n SearchParams,\n WriteableDocuments,\n SearchableDocuments,\n DropTokensMode,\n OperationMode,\n UnionArrayKeys,\n UnionArraySearchParams,\n ArraybleParams,\n ExtractBaseTypes,\n SearchResponseRequestParams,\n} from \"./Types\";\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class HTTPError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\nimport type { DocumentImportParameters, ImportResponse } from \"../Documents\";\nimport { ReadStream } from \"node:fs\";\n\ninterface ImportErrorPayload {\n documentsInJSONLFormat: string | ReadStream;\n options: DocumentImportParameters;\n failedItems: ImportResponse[];\n successCount: number;\n}\n\nexport default class ImportError extends TypesenseError {\n payload: ImportErrorPayload;\n importResults: ImportResponse[];\n constructor(\n message: string,\n importResults: ImportResponse[],\n payload: ImportErrorPayload,\n ) {\n super(message);\n this.importResults = importResults;\n this.payload = payload;\n }\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class MissingConfigurationError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectAlreadyExists extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectNotFound extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectUnprocessable extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestMalformed extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestUnauthorized extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ServerError extends TypesenseError {}\n","export default class TypesenseError extends Error {\n httpStatus?: number;\n httpBody?: string;\n\n // Source: https://stackoverflow.com/a/58417721/123545\n constructor(message?: string, httpBody?: string, httpStatus?: number) {\n super(message);\n this.name = new.target.name;\n this.httpBody = httpBody;\n this.httpStatus = httpStatus;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import HTTPError from \"./HTTPError\";\nimport MissingConfigurationError from \"./MissingConfigurationError\";\nimport ObjectAlreadyExists from \"./ObjectAlreadyExists\";\nimport ObjectNotFound from \"./ObjectNotFound\";\nimport ObjectUnprocessable from \"./ObjectUnprocessable\";\nimport RequestMalformed from \"./RequestMalformed\";\nimport RequestUnauthorized from \"./RequestUnauthorized\";\nimport ServerError from \"./ServerError\";\nimport ImportError from \"./ImportError\";\nimport TypesenseError from \"./TypesenseError\";\n\nexport {\n HTTPError,\n MissingConfigurationError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n TypesenseError,\n ImportError,\n};\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/health\";\n\nexport interface HealthResponse {\n ok: boolean;\n}\n\nexport default class Health {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Checks if Typesense server is ready to accept requests.\n *\n * @example\n * await client.health.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html#health\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Keys from \"./Keys\";\n\nexport interface KeyCreateSchema {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n actions: Actions[] | (string & {})[];\n collections: string[];\n description?: string;\n value?: string;\n value_prefix?: string;\n expires_at?: number;\n autodelete?: boolean;\n}\n\ntype CRUDActions = \"create\" | \"delete\" | \"get\" | \"list\" | \"*\";\ntype DocumentActionTypes =\n | \"search\"\n | \"get\"\n | \"create\"\n | \"upsert\"\n | \"update\"\n | \"delete\"\n | \"import\"\n | \"export\"\n | \"*\";\n\ntype CRUDFeatures =\n | \"collections\"\n | \"aliases\"\n | \"synonyms\"\n | \"overrides\"\n | \"stopwords\"\n | \"keys\"\n | \"analytics\"\n | \"analytics/rules\";\n\ntype FeatureActions = `${CRUDFeatures}:${CRUDActions}`;\ntype DocumentActions = `documents:${DocumentActionTypes}`;\ntype AnalyticsEventActions = \"analytics/events:create\";\ntype MiscActions = `${`metrics.json` | `stats.json` | `debug`}.list` | \"*\";\n\nexport type Actions =\n | FeatureActions\n | DocumentActions\n | AnalyticsEventActions\n | MiscActions;\n\nexport interface KeyDeleteSchema {\n id: number;\n}\n\nexport interface KeySchema extends KeyCreateSchema {\n id: number;\n}\n\nexport default class Key {\n constructor(\n private id: number,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve (metadata about) a key. Only the key prefix is returned when you retrieve a key. Due to security reasons, only the create endpoint returns the full API key.\n *\n * @example\n * await client.keys(1).retrieve()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#retrieve-an-api-key\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete an API key given its ID.\n *\n * @example\n * await client.keys(1).delete()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#delete-api-key\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import { createHmac } from \"crypto\";\nimport ApiCall from \"./ApiCall\";\nimport { KeyCreateSchema, KeySchema } from \"./Key\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/keys\";\n\nexport interface KeysRetrieveSchema {\n keys: KeySchema[];\n}\n\nexport interface GenerateScopedSearchKeyParams<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n expires_at?: number;\n cache_ttl?: number;\n limit_multi_searches?: number;\n}\n\nexport default class Keys {\n constructor(private apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Create an API Key with fine-grain access control. You can restrict access on both a per-collection and per-action level. The generated key is returned only during creation. You want to store this key carefully in a secure place.\n *\n * @example\n * await client.keys().create({ description: \"Search-only key\", actions: [\"documents:search\"], collections: [\"*\"] })\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#create-an-api-key\n */\n async create(params: KeyCreateSchema): Promise {\n return this.apiCall.post(Keys.RESOURCEPATH, params);\n }\n\n /**\n * Retrieve (metadata about) all keys.\n *\n * @example\n * await client.keys().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#list-all-keys\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n /**\n * Generate a scoped search-only API key with embedded parameters such as `filter_by` or `expires_at`.\n *\n * @example\n * client.keys().generateScopedSearchKey(\"search-only-key\", { filter_by: \"company_id:124\", expires_at: 1700000000 })\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#generate-scoped-search-key\n */\n generateScopedSearchKey(\n searchKey: string,\n parameters: GenerateScopedSearchKeyParams,\n ): string {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when used with the search endpoint.\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(parameters);\n const paramsJSON = JSON.stringify(normalizedParams);\n const digest = Buffer.from(\n createHmac(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"),\n );\n const keyPrefix = searchKey.substr(0, 4);\n const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`;\n\n return Buffer.from(rawScopedKey).toString(\"base64\");\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/metrics.json\";\n\nexport interface MetricsResponse {\n [key: `system_cpu${number}_active_percentage`]: string;\n system_cpu_active_percentage: string;\n system_disk_total_bytes: string;\n system_disk_used_bytes: string;\n system_memory_total_bytes: string;\n system_memory_total_swap_bytes?: string;\n system_memory_used_bytes: string;\n system_memory_used_swap_bytes?: string;\n system_network_received_bytes: string;\n system_network_sent_bytes: string;\n typesense_memory_active_bytes: string;\n typesense_memory_allocated_bytes: string;\n typesense_memory_fragmentation_ratio: string;\n typesense_memory_mapped_bytes: string;\n typesense_memory_metadata_bytes: string;\n typesense_memory_resident_bytes: string;\n typesense_memory_retained_bytes: string;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Get current RAM, CPU, Disk & Network usage metrics.\n *\n * @example\n * await client.metrics.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport type Configuration from \"./Configuration\";\nimport RequestWithCache from \"./RequestWithCache\";\nimport type {\n DocumentSchema,\n ExtractBaseTypes,\n SearchOptions,\n SearchParams,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\nimport { Logger } from \"loglevel\";\n\nconst RESOURCEPATH = \"/multi_search\";\n\nexport default class MultiSearch {\n private requestWithCache: RequestWithCache;\n readonly logger: Logger;\n\n constructor(\n private apiCall: ApiCall,\n private configuration: Configuration,\n private useTextContentType: boolean = false,\n ) {\n this.requestWithCache = new RequestWithCache();\n this.logger = this.apiCall.logger;\n }\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n /**\n * Send multiple search requests in a single HTTP request. Pass `union: true` to merge results, or omit it to receive a `results` array.\n *\n * @example\n * await client.multiSearch.perform({ searches: [{ collection: \"products\", q: \"*\" }] })\n * @example\n * await client.multiSearch.perform({ union: true, searches: [{ collection: \"products\", q: \"*\" }] })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search\n */\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithUnionSchema,\n commonParams?: MultiSearchUnionParameters,\n options?: SearchOptions,\n ): Promise>;\n\n /**\n * Send multiple search requests in a single HTTP request and receive a `results` array (one entry per search).\n *\n * @example\n * await client.multiSearch.perform({ searches: [{ collection: \"products\", q: \"*\" }] })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search\n */\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithoutUnionSchema,\n commonParams?: MultiSearchResultsParameters,\n options?: SearchOptions,\n ): Promise<{\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsSchema,\n commonParams?:\n | MultiSearchUnionParameters\n | MultiSearchResultsParameters,\n options?: SearchOptions,\n ): Promise> {\n const params = commonParams ? { ...commonParams } : {};\n const cacheSearchResultsForSeconds =\n options?.cacheSearchResultsForSeconds ??\n this.configuration.cacheSearchResultsForSeconds;\n\n if (this.configuration.useServerSideSearchCache === true) {\n params.use_cache = true;\n }\n\n if (searchRequests.union === true && this.hasAnySearchObjectPagination(searchRequests)) {\n this.logger.warn(\n \"Individual `searches` pagination parameters are ignored when `union: true` is set. Use a top-level pagination parameter instead. See https://typesense.org/docs/29.0/api/federated-multi-search.html#union-search\"\n );\n }\n\n const normalizedSearchRequests: Omit & {\n searches: ExtractBaseTypes>[];\n } = {\n union: searchRequests.union,\n searches: searchRequests.searches.map(\n normalizeArrayableParams<\n T[number],\n SearchParams,\n Infix\n >,\n ),\n };\n\n const { streamConfig, ...paramsWithoutStream } = params;\n const normalizedQueryParams = normalizeArrayableParams(\n paramsWithoutStream as SearchParams,\n );\n\n return this.requestWithCache.perform(\n this.apiCall,\n \"post\",\n {\n path: RESOURCEPATH,\n body: normalizedSearchRequests,\n queryParams: normalizedQueryParams,\n headers: this.useTextContentType\n ? { \"content-type\": \"text/plain\" }\n : {},\n streamConfig,\n abortSignal: options?.abortSignal,\n isStreamingRequest: this.isStreamingRequest(params),\n },\n cacheSearchResultsForSeconds !== undefined\n ? { cacheResponseForSeconds: cacheSearchResultsForSeconds }\n : undefined,\n );\n }\n\n private isStreamingRequest(commonParams: { streamConfig?: unknown }) {\n return commonParams.streamConfig !== undefined;\n }\n\n private hasAnySearchObjectPagination(searchRequests: MultiSearchRequestsSchema) {\n return searchRequests.searches.some(search => search.page !== undefined || search.per_page !== undefined || search.offset !== undefined || search.limit !== undefined || search.limit_hits !== undefined);\n }\n}\n\nexport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport NLSearchModels from \"./NLSearchModels\";\nimport type { NLSearchModelBase, NLSearchModelSchema } from \"./NLSearchModels\";\n\ntype NLSearchModelUpdateSchema = NLSearchModelBase;\n\nexport interface NLSearchModelDeleteSchema {\n id: string;\n}\n\nexport default class NLSearchModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve a specific NL search model by its ID.\n *\n * @example\n * await client.nlSearchModels(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Update an existing NL search model.\n *\n * @example\n * await client.nlSearchModels(\"model-1\").update({ model_name: \"openai/gpt-4\" })\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async update(\n schema: NLSearchModelUpdateSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), schema);\n }\n\n /**\n * Delete a specific NL search model by its ID.\n *\n * @example\n * await client.nlSearchModels(\"model-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${NLSearchModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/nl_search_models\";\n\n// Base schema with all possible fields\nexport interface NLSearchModelBase {\n model_name: string;\n api_key?: string;\n api_url?: string;\n max_bytes?: number;\n temperature?: number;\n system_prompt?: string;\n // Google-specific parameters\n top_p?: number;\n top_k?: number;\n stop_sequences?: string[];\n api_version?: string;\n // GCP Vertex AI specific\n project_id?: string;\n access_token?: string;\n refresh_token?: string;\n client_id?: string;\n client_secret?: string;\n region?: string;\n max_output_tokens?: number;\n // Cloudflare specific\n account_id?: string;\n}\n\nexport interface NLSearchModelCreateSchema extends NLSearchModelBase {\n id?: string;\n}\n\nexport interface NLSearchModelSchema extends NLSearchModelBase {\n id: string;\n}\n\nexport type NLSearchModelsRetrieveSchema = NLSearchModelSchema[];\n\nexport default class NLSearchModels {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Create a new NL search model.\n *\n * @example\n * await client.nlSearchModels().create({ model_name: \"openai/gpt-4\", api_key: \"...\" })\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async create(\n schema: NLSearchModelCreateSchema,\n ): Promise {\n return this.apiCall.post(this.endpointPath(), schema);\n }\n\n /**\n * Retrieve all NL search models.\n *\n * @example\n * await client.nlSearchModels().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(): string {\n return NLSearchModels.RESOURCEPATH;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/operations\";\n\nexport interface SchemaChangeStatus {\n collection: string;\n validated_docs: number;\n altered_docs: number;\n}\n\nexport default class Operations {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Perform a cluster operation: snapshot, vote, cache/clear, db/compact, or a custom path.\n *\n * @example\n * await client.operations.perform(\"snapshot\", { snapshot_path: \"/tmp/snap\" })\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n async perform(\n operationName:\n | \"vote\"\n | \"snapshot\"\n | \"cache/clear\"\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- Can't use `object` here, it needs to intersect with `{}`\n | (string & {}),\n queryParameters: Record = {},\n ): Promise {\n return this.apiCall.post(\n `${RESOURCEPATH}/${operationName}`,\n {},\n queryParameters,\n );\n }\n\n /**\n * Get the status of in-progress schema change operations\n *\n * @example\n * await client.operations.getSchemaChanges()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n async getSchemaChanges(): Promise {\n return this.apiCall.get(\n `${RESOURCEPATH}/schema_changes`,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Overrides, { OverrideCreateSchema } from \"./Overrides\";\n\nexport interface OverrideSchema extends OverrideCreateSchema {\n id: string;\n}\n\nexport interface OverrideDeleteSchema {\n id: string;\n}\n\nexport default class Override {\n constructor(\n private collectionName: string,\n private overrideId: string,\n private apiCall: ApiCall\n ) {}\n\n /**\n * Retrieve an override (curation rule) by ID on this collection.\n *\n * @example\n * await client.collections(\"products\").overrides(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete an override (curation rule) by ID on this collection.\n *\n * @example\n * await client.collections(\"products\").overrides(\"promote-hat\").delete()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { OverrideSchema } from \"./Override\";\n\nconst RESOURCEPATH = \"/overrides\";\n\nexport interface OverrideRuleQuerySchema {\n query?: string;\n match?: \"exact\" | \"contains\";\n}\n\nexport interface OverrideRuleFilterSchema {\n filter_by?: string;\n}\n\nexport interface OverrideRuleTagsSchema {\n tags?: string[];\n}\n\nexport interface OverrideCreateSchema {\n rule: OverrideRuleQuerySchema &\n OverrideRuleFilterSchema &\n OverrideRuleTagsSchema;\n filter_by?: string;\n sort_by?: string;\n remove_matched_tokens?: boolean;\n replace_query?: string;\n includes?: Array<{\n id: string;\n position: number;\n }>;\n excludes?: Array<{ id: string }>;\n filter_curated_hits?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n stop_processing?: boolean;\n metadata?: object;\n}\n\nexport interface OverridesRetrieveSchema {\n overrides: OverrideSchema[];\n}\n\nexport default class Overrides {\n constructor(\n private collectionName: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Create or update an override (curation rule) on this collection.\n *\n * @example\n * await client.collections(\"products\").overrides().upsert(\"promote-hat\", { rule: { query: \"hat\", match: \"exact\" }, includes: [] })\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async upsert(\n overrideId: string,\n params: OverrideCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(overrideId),\n params,\n );\n }\n\n /**\n * Retrieve all overrides (curation rules) on this collection.\n *\n * @example\n * await client.collections(\"products\").overrides().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Collections.RESOURCEPATH}/${this.collectionName}${\n Overrides.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { DocumentSchema } from \"./Documents\";\nimport Presets, { PresetCreateSchema } from \"./Presets\";\n\nexport interface PresetSchema\n extends PresetCreateSchema {\n name: string;\n}\n\nexport interface PresetDeleteSchema {\n name: string;\n}\n\nexport default class Preset {\n constructor(\n private presetId: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve the details of a preset, given it's name.\n *\n * @example\n * await client.presets(\"listing_view\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n async retrieve(): Promise> {\n return this.apiCall.get>(this.endpointPath());\n }\n\n /**\n * Permanently deletes a preset, given it's name.\n *\n * @example\n * await client.presets(\"listing_view\").delete()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { PresetSchema } from \"./Preset\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { MultiSearchRequestsSchema } from \"./MultiSearch\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/presets\";\n\nexport interface PresetCreateSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n value: SearchParams | MultiSearchRequestsSchema;\n}\n\nexport interface PresetsRetrieveSchema {\n presets: PresetSchema[];\n}\n\nexport default class Presets {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Create or update an existing preset.\n *\n * @example\n * await client.presets().upsert(\"listing_view\", { value: { q: \"*\" } })\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n async upsert(\n presetId: string,\n params: PresetCreateSchema,\n ): Promise> {\n if (typeof params.value === \"object\" && \"searches\" in params.value) {\n const normalizedParams = params.value.searches.map((search) =>\n normalizeArrayableParams, Infix>(search),\n );\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: { searches: normalizedParams },\n });\n }\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(params.value);\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: normalizedParams,\n });\n }\n\n /**\n * Retrieve the details of all presets\n *\n * @example\n * await client.presets().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n async retrieve(): Promise<\n PresetsRetrieveSchema\n > {\n return this.apiCall.get>(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Presets.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import { AxiosRequestConfig } from \"axios\";\nimport type { DocumentSchema } from \"./Documents\";\nimport { HttpClient } from \"./ApiCall\";\nimport type { RequestParams } from \"./Types\";\n\nconst defaultCacheResponseForSeconds = 2 * 60;\nconst defaultMaxSize = 100;\n\ninterface CacheEntry {\n requestTimestamp: number;\n response: T;\n}\n\ninterface PromiseCacheEntry {\n requestTimestamp: number;\n responsePromise: Promise;\n}\n\nexport default class RequestWithCache {\n private responseCache: Map> = new Map();\n private responsePromiseCache: Map> =\n new Map();\n\n clearCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n\n async perform<\n const TContext extends HttpClient,\n const TMethod extends keyof HttpClient,\n const TDoc extends DocumentSchema[],\n TResult,\n >(\n requestContext: TContext,\n methodName: TMethod,\n requestParams: RequestParams,\n cacheOptions: CacheOptions | undefined,\n ): Promise {\n const {\n cacheResponseForSeconds = defaultCacheResponseForSeconds,\n maxSize = defaultMaxSize,\n } = cacheOptions || {};\n const isCacheDisabled =\n cacheOptions === undefined ||\n cacheResponseForSeconds <= 0 ||\n maxSize <= 0;\n\n const {\n path,\n queryParams,\n body,\n headers,\n streamConfig,\n abortSignal,\n responseType,\n isStreamingRequest,\n } = requestParams;\n\n if (isCacheDisabled) {\n return this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n }\n\n const requestParamsJSON = JSON.stringify(requestParams);\n const cacheEntry = this.responseCache.get(requestParamsJSON);\n const now = Date.now();\n\n if (cacheEntry) {\n const isEntryValid =\n now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestParamsJSON);\n this.responseCache.set(requestParamsJSON, cacheEntry);\n return cacheEntry.response as TResult;\n } else {\n this.responseCache.delete(requestParamsJSON);\n }\n }\n\n const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON);\n\n if (cachePromiseEntry) {\n const isEntryValid =\n now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestParamsJSON);\n this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry);\n return cachePromiseEntry.responsePromise as Promise;\n } else {\n this.responsePromiseCache.delete(requestParamsJSON);\n }\n }\n\n const responsePromise = this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n\n this.responsePromiseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n responsePromise,\n });\n\n const response = await responsePromise;\n this.responseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n response: response,\n });\n\n const isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n const oldestEntry = this.responseCache.keys().next().value;\n if (oldestEntry) {\n this.responseCache.delete(oldestEntry);\n }\n }\n const isResponsePromiseCacheOverMaxSize =\n this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n const oldestEntry = this.responsePromiseCache.keys().next().value;\n if (oldestEntry) {\n this.responsePromiseCache.delete(oldestEntry);\n }\n }\n return response;\n }\n\n private executeRequest(\n context: HttpClient,\n methodName: keyof HttpClient,\n path: string,\n queryParams: Record = {},\n body?: unknown,\n headers?: Record,\n options?: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"];\n streamConfig?: any;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise {\n const method = context[methodName];\n\n switch (methodName) {\n case \"get\":\n return (method as HttpClient[\"get\"]).call(context, path, queryParams, {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n }) as Promise;\n\n case \"delete\":\n return (method as HttpClient[\"delete\"]).call(\n context,\n path,\n queryParams,\n ) as Promise;\n\n case \"post\":\n return (method as HttpClient[\"post\"]).call(\n context,\n path,\n body,\n queryParams,\n headers || {},\n {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n },\n ) as Promise;\n\n case \"put\":\n case \"patch\":\n return (method as HttpClient[typeof methodName]).call(\n context,\n path,\n body,\n queryParams,\n ) as Promise;\n\n default:\n throw new Error(`Unsupported method: ${String(methodName)}`);\n }\n }\n}\n\ninterface CacheOptions {\n cacheResponseForSeconds?: number;\n maxSize?: number;\n}\n\nexport type { RequestParams } from \"./Types\";\n","import Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport MultiSearch from \"./MultiSearch\";\nimport { DocumentSchema } from \"./Documents\";\nimport { SearchOnlyCollection } from \"./SearchOnlyCollection\";\n\n/**\n * Search-only Typesense client. Restricted to search operations and intended for use with search-only API keys in browser environments.\n *\n * @see https://typesense.org/docs/latest/api/\n */\nexport default class SearchClient {\n /**\n * Send multiple search requests in a single HTTP request.\n *\n * @example\n * await searchClient.multiSearch.perform({ searches: [{ collection: \"products\", q: \"*\" }] })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search\n */\n public readonly multiSearch: MultiSearch;\n private readonly configuration: Configuration;\n private readonly apiCall: ApiCall;\n private readonly individualCollections: Record<\n string,\n SearchOnlyCollection\n >;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true;\n if (\n options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000\n ) {\n console.warn(\n \"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\"\n );\n options.sendApiKeyAsQueryParam = false;\n }\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n\n clearCache() {\n this.multiSearch.clearCache();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(([_, collection]) => {\n collection.documents().clearCache();\n });\n }\n\n /**\n * Access a search-only collection by name.\n *\n * @example\n * await searchClient.collections(\"products\").documents().search({ q: \"*\", query_by: \"title\" })\n *\n * @see https://typesense.org/docs/latest/api/search.html\n */\n collections(\n collectionName: string,\n ): SearchOnlyCollection {\n if (!collectionName) {\n throw new Error(\n \"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\"\n );\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection(\n collectionName,\n this.apiCall,\n this.configuration\n );\n }\n return this.individualCollections[\n collectionName\n ] as SearchOnlyCollection;\n }\n }\n}\n","import type { DocumentSchema } from \"./Documents\";\nimport ApiCall from \"./ApiCall\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport type { SearchableDocuments } from \"./Types\";\n\nexport class SearchOnlyCollection {\n private readonly _documents: SearchableDocuments;\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any\n ) {\n this._documents = new SearchOnlyDocuments(\n this.name,\n this.apiCall,\n this.configuration\n );\n }\n\n /**\n * Access the search-only documents resource for this collection.\n *\n * @example\n * await searchClient.collections(\"products\").documents().search({ q: \"*\", query_by: \"title\" })\n *\n * @see https://typesense.org/docs/latest/api/search.html\n */\n documents(): SearchableDocuments {\n return this._documents;\n }\n}\n","import RequestWithCache from \"./RequestWithCache\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport Collections from \"./Collections\";\nimport type {\n DocumentSchema,\n SearchOptions,\n SearchParamsWithPreset,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport { SearchableDocuments, SearchParams } from \"./Types\";\n\nconst RESOURCEPATH = \"/documents\";\n\nexport class SearchOnlyDocuments\n implements SearchableDocuments\n{\n protected requestWithCache: RequestWithCache = new RequestWithCache();\n\n constructor(\n protected collectionName: string,\n protected apiCall: ApiCall,\n protected configuration: Configuration,\n ) {}\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n /**\n * Search for documents in a collection that match the search criteria.\n *\n * @example\n * await client.collections(\"products\").documents().search({ q: \"*\", query_by: \"title\" })\n *\n * @see https://typesense.org/docs/latest/api/search.html\n */\n async search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n abortSignal = null,\n }: SearchOptions = {},\n ): Promise> {\n const additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n\n const { streamConfig, ...rest } = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(searchParameters);\n\n const queryParams = {\n ...additionalQueryParams,\n ...rest,\n };\n\n const isStreamingRequest = queryParams.conversation_stream === true;\n\n return this.requestWithCache.perform<\n ApiCall,\n \"get\",\n [T],\n SearchResponse\n >(\n this.apiCall,\n \"get\",\n {\n path: this.endpointPath(\"search\"),\n queryParams,\n streamConfig,\n abortSignal,\n isStreamingRequest,\n },\n {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n },\n );\n }\n\n protected endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + operation\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/stats.json\";\n\nexport interface EndpointStats {\n [endpoint: string]: number;\n}\n\nexport interface StatsResponse {\n delete_latency_ms?: number;\n delete_requests_per_second?: number;\n import_latency_ms?: number;\n import_requests_per_second?: number;\n latency_ms?: EndpointStats;\n overloaded_requests_per_second?: number;\n pending_write_batches?: number;\n requests_per_second?: EndpointStats;\n search_latency_ms?: number;\n search_requests_per_second?: number;\n total_requests_per_second?: number;\n write_latency_ms?: number;\n write_requests_per_second?: number;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Get stats about API endpoints.\n *\n * @example\n * await client.stats.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\nimport StemmingDictionary from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming\";\n\nexport default class Stemming {\n private readonly _stemmingDictionaries: StemmingDictionaries;\n private readonly individualStemmingDictionaries: Record<\n string,\n StemmingDictionary\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._stemmingDictionaries = new StemmingDictionaries(this.apiCall);\n }\n\n /**\n * Access the stemming dictionaries resource. Call without arguments to list or import dictionaries, or pass an ID to access a single dictionary.\n *\n * @example\n * await client.stemming.dictionaries().retrieve()\n * @example\n * await client.stemming.dictionaries(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n dictionaries(): StemmingDictionaries;\n /**\n * Access an individual stemming dictionary by ID.\n *\n * @example\n * await client.stemming.dictionaries(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n dictionaries(id: string): StemmingDictionary;\n dictionaries(id?: string): StemmingDictionaries | StemmingDictionary {\n if (id === undefined) {\n return this._stemmingDictionaries;\n } else {\n if (this.individualStemmingDictionaries[id] === undefined) {\n this.individualStemmingDictionaries[id] = new StemmingDictionary(\n id,\n this.apiCall,\n );\n }\n return this.individualStemmingDictionaries[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { StemmingDictionaryCreateSchema } from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming/dictionaries\";\n\nexport interface StemmingDictionariesRetrieveSchema {\n dictionaries: string[];\n}\n\nexport default class StemmingDictionaries {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Upload a JSONL file containing word mappings to create or update a stemming dictionary.\n *\n * @example\n * await client.stemming.dictionaries().upsert(\"irregular-plurals\", [{ word: \"people\", root: \"person\" }])\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n async upsert(\n id: string,\n wordRootCombinations: StemmingDictionaryCreateSchema[] | string,\n ): Promise {\n const wordRootCombinationsInJSONLFormat = Array.isArray(\n wordRootCombinations,\n )\n ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join(\"\\n\")\n : wordRootCombinations;\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: {id},\n bodyParameters: wordRootCombinationsInJSONLFormat,\n additionalHeaders: {\"Content-Type\": \"text/plain\"},\n skipConnectionTimeout: true,\n }\n );\n\n return Array.isArray(wordRootCombinations)\n ? resultsInJSONLFormat\n .split(\"\\n\")\n .map((line) => JSON.parse(line) as StemmingDictionaryCreateSchema)\n : resultsInJSONLFormat;\n }\n\n /**\n * Retrieve a list of all available stemming dictionaries.\n *\n * @example\n * await client.stemming.dictionaries().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return operation === undefined\n ? `${StemmingDictionaries.RESOURCEPATH}`\n : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\n\nexport interface StemmingDictionaryCreateSchema {\n root: string;\n word: string;\n}\n\nexport interface StemmingDictionarySchema {\n id: string;\n words: StemmingDictionaryCreateSchema[];\n}\n\nexport interface StemmingDictionaryDeleteSchema {\n id: string;\n}\n\nexport default class StemmingDictionary {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Fetch details of a specific stemming dictionary.\n *\n * @example\n * await client.stemming.dictionaries(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a stemming dictionary by ID.\n *\n * @example\n * await client.stemming.dictionaries(\"en\").delete()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Stopwords from \"./Stopwords\";\n\nexport interface StopwordSchema {\n id: string;\n stopwords: string[] | { id: string; stopwords: string[] };\n locale?: string;\n}\n\nexport interface StopwordDeleteSchema {\n id: string;\n}\n\nexport default class Stopword {\n constructor(\n private stopwordId: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve the details of a stopwords set, given it's name.\n *\n * @example\n * await client.stopwords(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Permanently deletes a stopwords set, given it's name.\n *\n * @example\n * await client.stopwords(\"en\").delete()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { StopwordSchema } from \"./Stopword\";\n\nconst RESOURCEPATH = \"/stopwords\";\n\nexport interface StopwordCreateSchema {\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordsRetrieveSchema {\n stopwords: StopwordSchema[];\n}\n\nexport default class Stopwords {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Upserts a stopwords set.\n *\n * @example\n * await client.stopwords().upsert(\"en\", { stopwords: [\"a\", \"the\"] })\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n async upsert(\n stopwordId: string,\n params: StopwordCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(stopwordId),\n params,\n );\n }\n\n /**\n * Retrieve the details of all stopwords sets\n *\n * @example\n * await client.stopwords().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Stopwords.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Synonyms, { SynonymCreateSchema } from \"./Synonyms\";\n\nexport interface SynonymSchema extends SynonymCreateSchema {\n id: string;\n}\n\nexport interface SynonymDeleteSchema {\n id: string;\n}\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.synonymSets` (new Synonym Sets APIs).\n */\nexport default class Synonym {\n private static hasWarnedDeprecation = false;\n constructor(\n private collectionName: string,\n private synonymId: string,\n private apiCall: ApiCall\n ) {}\n\n /**\n * Retrieve a synonym (legacy v1) by ID on this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a synonym (legacy v1) by ID on this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms(\"syn-1\").delete()\n *\n * @see https://typesense.org/docs/29.0/api/synonyms.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n if (!Synonym.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'synonym' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets 'synonym_sets'.\",\n );\n Synonym.hasWarnedDeprecation = true;\n }\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets from \"./SynonymSets\";\nimport type { SynonymSetCreateSchema, SynonymSetSchema } from \"./SynonymSets\";\nimport SynonymSetItems from \"./SynonymSetItems\";\nimport SynonymSetItem from \"./SynonymSetItem\";\n\nexport interface SynonymSetDeleteSchema {\n name: string;\n}\n\nexport type SynonymSetRetrieveSchema = SynonymSetCreateSchema;\n\nexport default class SynonymSet {\n private readonly _items: SynonymSetItems;\n private individualItems: Record = {};\n constructor(\n private synonymSetName: string,\n private apiCall: ApiCall,\n ) {\n this._items = new SynonymSetItems(this.synonymSetName, apiCall);\n }\n\n /**\n * Create or update a synonym set with the given name\n *\n * @example\n * await client.synonymSets(\"my-set\").upsert({ items: [{ id: \"syn-1\", synonyms: [\"nyc\", \"new york\"] }] })\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async upsert(\n params: SynonymSetCreateSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n /**\n * Retrieve a specific synonym set by its name\n *\n * @example\n * await client.synonymSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a specific synonym set by its name\n *\n * @example\n * await client.synonymSets(\"my-set\").delete()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n /**\n * Access the items in this synonym set. Call without arguments to list or upsert items, or pass an item ID to access a single item.\n *\n * @example\n * await client.synonymSets(\"my-set\").items().retrieve()\n * @example\n * await client.synonymSets(\"my-set\").items(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n items(): SynonymSetItems;\n /**\n * Access an individual synonym item by ID within this synonym set.\n *\n * @example\n * await client.synonymSets(\"my-set\").items(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n items(itemId: string): SynonymSetItem;\n items(itemId?: string): SynonymSetItems | SynonymSetItem {\n if (itemId === undefined) {\n return this._items;\n } else {\n if (this.individualItems[itemId] === undefined) {\n this.individualItems[itemId] = new SynonymSetItem(\n this.synonymSetName,\n itemId,\n this.apiCall,\n );\n }\n return this.individualItems[itemId];\n }\n }\n\n private endpointPath(): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets, { SynonymItemSchema } from \"./SynonymSets\";\n\nexport interface SynonymSetItemDeleteSchema {\n id: string;\n}\n\nexport default class SynonymSetItem {\n constructor(\n private synonymSetName: string,\n private itemId: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve a specific synonym item by its id\n *\n * @example\n * await client.synonymSets(\"my-set\").items(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a specific synonym item by its id\n *\n * @example\n * await client.synonymSets(\"my-set\").items(\"syn-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}/items/${encodeURIComponent(this.itemId)}`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets, { SynonymItemSchema } from \"./SynonymSets\";\n\nexport default class SynonymSetItems {\n constructor(\n private synonymSetName: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Create or update a synonym set item with the given id\n *\n * @example\n * await client.synonymSets(\"my-set\").items().upsert(\"syn-1\", { synonyms: [\"nyc\", \"new york\"] })\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async upsert(\n itemId: string,\n params: Omit,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(itemId),\n params,\n );\n }\n\n /**\n * Retrieve all synonym items in a set\n *\n * @example\n * await client.synonymSets(\"my-set\").items().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}/items${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\n\nexport interface SynonymItemSchema {\n id: string;\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymSetCreateSchema {\n items: SynonymItemSchema[];\n}\n\nexport interface SynonymSetSchema extends SynonymSetCreateSchema {\n name: string;\n}\n\nexport interface SynonymSetsRetrieveSchema {\n synonym_sets: SynonymSetSchema[];\n}\n\nexport default class SynonymSets {\n constructor(private apiCall: ApiCall) {}\n static readonly RESOURCEPATH = \"/synonym_sets\";\n\n /**\n * Retrieve all synonym sets\n *\n * @example\n * await client.synonymSets().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(SynonymSets.RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { SynonymSchema } from \"./Synonym\";\n\nconst RESOURCEPATH = \"/synonyms\";\n\nexport interface SynonymCreateSchema {\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymsRetrieveSchema {\n synonyms: SynonymSchema[];\n}\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.synonymSets` (new Synonym Sets APIs).\n */\nexport default class Synonyms {\n private static hasWarnedDeprecation = false;\n constructor(private collectionName: string, private apiCall: ApiCall) {}\n\n /**\n * Create or update a synonym (legacy v1) on this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms().upsert(\"syn-1\", { synonyms: [\"nyc\", \"new york\"] })\n *\n * @see https://typesense.org/docs/29.0/api/synonyms.html\n */\n async upsert(\n synonymId: string,\n params: SynonymCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(synonymId),\n params\n );\n }\n\n /**\n * Retrieve all synonyms (legacy v1) on this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms().retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string) {\n if (!Synonyms.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'synonyms' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets ('synonym_sets').\",\n );\n Synonyms.hasWarnedDeprecation = true;\n }\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${\n Synonyms.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { BaseStreamConfig, StreamConfig } from \"./Configuration\";\nimport type {\n DocumentSchema,\n SearchParamsWithPreset,\n SearchOptions,\n SearchResponse,\n DocumentWriteParameters,\n DeleteQuery,\n DeleteResponse,\n ImportResponse,\n DocumentsExportParameters,\n} from \"./Documents\";\n\nexport type DropTokensMode = \"right_to_left\" | \"left_to_right\" | \"both_sides:3\";\n\nexport type OperationMode = \"off\" | \"always\" | \"fallback\";\n\nexport type CommaSeparated<\n T extends string,\n ToExtend,\n OriginalString extends string = T,\n Previous extends string[] = [],\n> = T extends `${infer Start},${infer Rest}`\n ? TrimString extends ToExtend\n ? CommaSeparated<\n Rest,\n ToExtend,\n OriginalString,\n [...Previous, TrimString]\n >\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n }\n : TrimString extends ToExtend\n ? OriginalString\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n };\n\nexport type MessageChunk = {\n message: string;\n conversation_id: string;\n};\n\nexport type UnionArrayKeys = {\n [K in keyof T]: T[K] extends undefined\n ? never\n : NonNullable extends infer R\n ? R extends R[]\n ? never\n : R extends (infer U)[] | infer U\n ? U[] extends R\n ? K\n : never\n : never\n : never;\n}[keyof T] &\n keyof T;\n\nexport type UnionArraySearchParams =\n UnionArrayKeys;\n\nexport type ArraybleParams = {\n readonly [K in UnionArraySearchParams]: string;\n};\n\nexport type ExtractBaseTypes = {\n [K in keyof T]: K extends UnionArrayKeys\n ? T[K] extends (infer U)[] | infer U\n ? U\n : T[K]\n : T[K];\n};\n\nexport const arrayableParams: ArraybleParams = {\n query_by: \"query_by\",\n query_by_weights: \"query_by_weights\",\n facet_by: \"facet_by\",\n group_by: \"group_by\",\n include_fields: \"include_fields\",\n exclude_fields: \"exclude_fields\",\n highlight_fields: \"highlight_fields\",\n highlight_full_fields: \"highlight_full_fields\",\n pinned_hits: \"pinned_hits\",\n hidden_hits: \"hidden_hits\",\n infix: \"infix\",\n override_tags: \"override_tags\",\n num_typos: \"num_typos\",\n prefix: \"prefix\",\n synonym_sets: \"synonym_sets\",\n sort_by: \"sort_by\",\n};\n\nexport interface SearchParams<\n TDoc extends DocumentSchema,\n Infix extends string = string,\n> {\n // From https://typesense.org/docs/latest/api/documents.html#arguments\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- Can't use `object` here, it needs to intersect with `{}`\n q?: \"*\" | (string & {});\n query_by?: string | string[];\n query_by_weights?: string | number[];\n prefix?: string | boolean | boolean[]; // default: true\n filter_by?: string;\n max_filter_by_candidates?: number; // default: 4\n enable_synonyms?: boolean; // default: true\n enable_analytics?: boolean; // default: true\n filter_curated_hits?: boolean; // default: false\n enable_lazy_filter?: boolean; // default: false\n sort_by?: string | string[]; // default: text match desc\n facet_by?: string | string[];\n max_facet_values?: number;\n facet_sample_threshold?: number;\n facet_sample_percent?: number;\n facet_query?: string;\n facet_query_num_typos?: number;\n facet_return_parent?: string;\n facet_strategy?: \"exhaustive\" | \"top_values\" | \"automatic\";\n page?: number; // default: 1\n per_page?: number; // default: 10, max 250\n group_by?: string | string[];\n group_limit?: number; // default:\n group_missing_values?: boolean;\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n highlight_fields?: string | string[]; // default: all queried fields\n highlight_full_fields?: string | string[]; // default: all fields\n highlight_affix_num_tokens?: number; // default: 4\n highlight_start_tag?: string; // default: \n highlight_end_tag?: string; // default: \n enable_highlight_v1?: boolean;\n snippet_threshold?: number; // default: 30\n nl_query?: boolean;\n nl_model_id?: string;\n nl_query_debug?: boolean;\n nl_query_prompt_cache_ttl?: number;\n num_typos?: string | number | number[]; // default: 2\n min_len_1typo?: number;\n min_len_2typo?: number;\n split_join_tokens?: OperationMode;\n exhaustive_search?: boolean;\n drop_tokens_threshold?: number; // default: 10\n drop_tokens_mode?: DropTokensMode;\n typo_tokens_threshold?: number; // default: 100\n pinned_hits?: string | string[];\n synonym_sets?: string[] | string;\n hidden_hits?: string | string[];\n limit_hits?: number; // default: no limit\n pre_segmented_query?: boolean;\n enable_overrides?: boolean;\n override_tags?: string | string[];\n prioritize_exact_match?: boolean; // default: true\n prioritize_token_position?: boolean;\n prioritize_num_matching_fields?: boolean;\n search_cutoff_ms?: number;\n use_cache?: boolean;\n max_candidates?: number;\n infix?:\n | CommaSeparated\n | OperationMode[]\n | OperationMode;\n preset?: string;\n text_match_type?: \"max_score\" | \"max_weight\" | \"sum_score\";\n vector_query?: string;\n \"x-typesense-api-key\"?: string;\n \"x-typesense-user-id\"?: string;\n offset?: number;\n limit?: number;\n stopwords?: string;\n conversation?: boolean;\n validate_field_names?: boolean;\n conversation_stream?: boolean;\n conversation_model_id?: string;\n conversation_id?: string;\n voice_query?: string;\n streamConfig?: StreamConfig;\n}\n\nexport interface SearchResponseRequestParams {\n collection_name?: string;\n q?: string;\n page?: number;\n per_page?: number;\n first_q?: string;\n voice_query?: {\n transcribed_query?: string;\n };\n}\n\nexport interface SearchableDocuments<\n T extends DocumentSchema = DocumentSchema,\n Infix extends string = string,\n> {\n search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n options: SearchOptions,\n ): Promise>;\n clearCache(): void;\n}\n\nexport interface WriteableDocuments {\n create(\n document: T,\n options: Omit,\n ): Promise;\n upsert(\n document: T,\n options: Omit,\n ): Promise;\n update(\n document: T,\n options: Omit,\n ): Promise;\n emplace(\n document: T,\n options: Omit,\n ): Promise;\n delete(query: DeleteQuery): Promise;\n import(\n documents: T[] | string,\n options: DocumentWriteParameters,\n ): Promise;\n export(options: DocumentsExportParameters): Promise;\n}\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\nexport interface RequestParams {\n path: string;\n queryParams?: Record;\n body?: unknown;\n headers?: Record;\n streamConfig?:\n | StreamConfig\n | MultiSearchResultsStreamConfig\n | MultiSearchUnionStreamConfig;\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n isStreamingRequest: boolean | undefined;\n}\n\nexport interface MultiSearchRequestsWithUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union: true;\n}\n\nexport interface MultiSearchRequestsWithoutUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union?: false | undefined;\n}\n\nexport type MultiSearchRequestsSchema<\n T extends DocumentSchema,\n Infix extends string,\n> =\n | MultiSearchRequestsWithUnionSchema\n | MultiSearchRequestsWithoutUnionSchema;\n\nexport interface UnionSearchResponse\n extends Omit, \"request_params\"> {\n union_request_params: UnionSearchResponseRequestParams[];\n}\n\ntype AllRequiredBut = Required> & Pick;\n\nexport interface UnionSearchResponseRequestParams\n extends AllRequiredBut {\n found: number;\n}\n\nexport type MultiSearchResponse<\n T extends DocumentSchema[],\n Infix extends string,\n R extends MultiSearchRequestsSchema<\n T[number],\n Infix\n > = MultiSearchRequestsSchema,\n> =\n R extends MultiSearchRequestsWithUnionSchema\n ? UnionSearchResponse\n : {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n };\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\n\ninterface SearchesMultiSearchesRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n searches: (\n | MultiSearchRequestSchema\n | MultiSearchRequestWithPresetSchema\n )[];\n}\n\ninterface BaseMultiSearchRequestSchema {\n collection?: string;\n rerank_hybrid_matches?: boolean;\n \"x-typesense-api-key\"?: string;\n}\n\ntype CommonMultiSearchParametersBase<\n T extends DocumentSchema,\n Infix extends string,\n> = Partial<\n BaseMultiSearchRequestSchema & Omit, \"streamConfig\">\n>;\n\nexport type MultiSearchRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema & Omit, \"streamConfig\">;\n\nexport type MultiSearchRequestWithPresetSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema &\n Omit, \"streamConfig\">;\n\nexport type MultiSearchUnionParameters<\n T extends DocumentSchema,\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchUnionStreamConfig;\n use_cache?: boolean;\n};\n\nexport type MultiSearchResultsParameters<\n T extends DocumentSchema[],\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchResultsStreamConfig;\n use_cache?: boolean;\n};\n\ntype Whitespace = \" \" | \"\\n\" | \"\\t\";\n\ntype TrimString = S extends `${Whitespace}${infer S}`\n ? TrimString\n : S extends `${infer S}${Whitespace}`\n ? TrimString\n : S;\n","import { DocumentSchema } from \"./Documents\";\nimport { arrayableParams } from \"./Types\";\nimport type { UnionArrayKeys, ExtractBaseTypes, SearchParams } from \"./Types\";\n\nfunction hasNoArrayValues<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T | ExtractBaseTypes): params is ExtractBaseTypes {\n return Object.keys(arrayableParams)\n .filter((key) => params[key] !== undefined)\n .every((key) => isNonArrayValue(params[key]));\n}\n\nexport function normalizeArrayableParams<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T): Prettify> {\n const result = { ...params };\n\n const transformedValues = Object.keys(arrayableParams)\n .filter((key) => Array.isArray(result[key]))\n .map((key) => {\n result[key] = result[key].join(\",\");\n return key;\n });\n\n if (!transformedValues.length && hasNoArrayValues(result)) {\n return result;\n }\n\n if (!hasNoArrayValues(result)) {\n throw new Error(\n `Failed to normalize arrayable params: ${JSON.stringify(result)}`,\n );\n }\n\n return result;\n}\n\nfunction isNonArrayValue<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n K extends UnionArrayKeys,\n>(value: T[K] | ExtractBaseTypes[K]): value is ExtractBaseTypes[K] {\n return !Array.isArray(value);\n}\n\ntype Prettify = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n} & {};\n\ninterface ErrorWithMessage extends Error {\n message: string;\n}\n\nfunction isErrorWithMessage(error: unknown): error is ErrorWithMessage {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof (error as Record).message === \"string\"\n );\n}\n\nexport function toErrorWithMessage(couldBeError: unknown): ErrorWithMessage {\n if (isErrorWithMessage(couldBeError)) return couldBeError;\n\n try {\n if (typeof couldBeError === \"string\") {\n return new Error(couldBeError);\n }\n return new Error(JSON.stringify(couldBeError));\n } catch {\n return new Error(String(couldBeError));\n }\n}\n","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(\n cookie.slice(location + cookieName.length + 1)\n )[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(\n defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n );\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name,\n defaultLogger.methodFactory\n );\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _readOnlyError(r) {\n throw new TypeError('\"' + r + '\" is read-only');\n}\nexport { _readOnlyError as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n const globalObject = utils.global ?? globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against the outbound request body before dispatch.\n // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than\n // maxBodyLength limit'). Skip when the body length cannot be determined\n // (e.g. a live ReadableStream supplied by the caller).\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await resolveBodyLength(headers, data);\n if (\n typeof outboundLength === 'number' &&\n isFinite(outboundLength) &&\n outboundLength > maxBodyLength\n ) {\n throw new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n }\n }\n\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n err !== canceledError && (canceledError.cause = err);\n throw canceledError;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst INVALID_HEADER_VALUE_CHARS_RE = /[^\\x09\\x20-\\x7E\\x80-\\xFF]/g;\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction sanitizeHeaderValue(str) {\n return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","export const VERSION = \"1.16.0\";","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n return decodeURIComponent(cookie.slice(eq + 1));\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {\n return Buffer.byteLength(body, 'utf8');\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit\n // but 3 UTF-8 bytes).\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n objs[i] && forEach(objs[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tif (!(moduleId in __webpack_modules__)) {\n\t\tdelete __webpack_module_cache__[moduleId];\n\t\tvar e = new Error(\"Cannot find module '\" + moduleId + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Client from \"./Typesense/Client\";\nimport SearchClient from \"./Typesense/SearchClient\";\nimport * as Errors from \"./Typesense/Errors\";\n\nexport { Client, SearchClient, Errors };\nexport default { Client, SearchClient, Errors };\n\nexport type * from \"./Typesense/Aliases\";\nexport type * from \"./Typesense/AnalyticsRulesV1\";\nexport type * from \"./Typesense/AnalyticsRuleV1\";\nexport type * from \"./Typesense/AnalyticsEvent\";\nexport type * from \"./Typesense/AnalyticsRule\";\nexport type * from \"./Typesense/AnalyticsRules\";\nexport type * from \"./Typesense/Collection\";\nexport type * from \"./Typesense/Collections\";\nexport type * from \"./Typesense/Configuration\";\nexport type * from \"./Typesense/Conversations\";\nexport type * from \"./Typesense/Conversation\";\nexport type * from \"./Typesense/ConversationModel\";\nexport type * from \"./Typesense/Debug\";\nexport type * from \"./Typesense/Documents\";\nexport type * from \"./Typesense/Health\";\nexport type * from \"./Typesense/Key\";\nexport type * from \"./Typesense/Keys\";\nexport type * from \"./Typesense/Metrics\";\nexport type * from \"./Typesense/MultiSearch\";\nexport type * from \"./Typesense/Override\";\nexport type * from \"./Typesense/Overrides\";\nexport type * from \"./Typesense/Preset\";\nexport type * from \"./Typesense/Presets\";\nexport type * from \"./Typesense/Stats\";\nexport type * from \"./Typesense/Stopword\";\nexport type * from \"./Typesense/Stopwords\";\nexport type * from \"./Typesense/Synonym\";\nexport type * from \"./Typesense/Synonyms\";\nexport type * from \"./Typesense/SynonymSet\";\nexport type * from \"./Typesense/SynonymSets\";\nexport type * from \"./Typesense/SynonymSetItem\";\nexport type * from \"./Typesense/SynonymSetItems\";\nexport type * from \"./Typesense/CurationSet\";\nexport type * from \"./Typesense/CurationSets\";\nexport type * from \"./Typesense/CurationSetItem\";\nexport type * from \"./Typesense/CurationSetItems\";\n"],"names":["Aliases","Alias","name","apiCall","_classCallCheck","_createClass","key","value","_retrieve","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","get","endpointPath","stop","retrieve","apply","arguments","_delete2","_callee2","_context2","delete","concat","RESOURCEPATH","encodeURIComponent","default","_upsert","mapping","put","upsert","_x","_x2","aliasName","AnalyticsRules","AnalyticsRule","AnalyticsEvents","Analytics","_defineProperty","_analyticsRules","_analyticsEvents","rules","id","undefined","individualAnalyticsRules","events","_create","params","post","create","operation","AnalyticsRulesV1","AnalyticsRuleV1","_x3","_callee3","ruleTag","query","_context3","_x4","AnalyticsV1","hasWarnedDeprecation","console","warn","axios","Agent","HTTPAgent","HTTPSAgent","HTTPError","ObjectAlreadyExists","ObjectNotFound","ObjectUnprocessable","RequestMalformed","RequestUnauthorized","ServerError","TypesenseError","toErrorWithMessage","APIKEYHEADERNAME","HEALTHY","UNHEALTHY","isNodeJSEnvironment","process","versions","node","window","ApiCall","configuration","apiKey","nodes","JSON","parse","stringify","nearestNode","connectionTimeoutSeconds","healthcheckIntervalSeconds","numRetriesPerRequest","numRetries","retryIntervalSeconds","sendApiKeyAsQueryParam","additionalUserHeaders","additionalHeaders","logger","initializeMetadataForNodes","currentNodeIndex","_get","endpoint","queryParameters","_ref","_ref$abortSignal","abortSignal","_ref$responseType","responseType","_ref$streamConfig","streamConfig","isStreamingRequest","_args","length","performRequest","_args2","_post","bodyParameters","_ref2","_ref2$abortSignal","_ref2$responseType","_ref2$streamConfig","_args3","_put","_callee4","_args4","_context4","_patch","_callee5","_args5","_context5","patch","_x5","getAdapter","axiosAdapter","isCloudflareWorkers","navigator","userAgent","bind","globalThis","_performRequest","_callee6","requestType","_ref3","_this","_ref3$queryParameters","_ref3$bodyParameters","_ref3$additionalHeade","_ref3$abortSignal","_ref3$responseType","_ref3$skipConnectionT","skipConnectionTimeout","_ref3$enableKeepAlive","enableKeepAlive","_ref3$streamConfig","requestNumber","lastException","wasAborted","_loop","_ret","numTries","_context7","validate","debug","fetch","Date","now","toUpperCase","abortListener","requestOptions","cancelToken","source","response","_response$data","_response$data2","_error$code","_error$response","_t","_context6","getNextNode","index","aborted","v","Promise","reject","Error","method","url","uriFor","headers","Object","assign","defaultHeaders","maxContentLength","Infinity","maxBodyLength","validateStatus","status","transformResponse","data","transformedData","startsWith","adapter","timeout","keys","httpAgent","keepAlive","httpsAgent","paramsSerializer","_typeof","CancelToken","cancel","addEventListener","token","_objectSpread","Accept","sent","setNodeHealthcheck","handleStreamingResponse","resolve","customErrorForResponse","message","code","invokeOnErrorCallback","timer","removeEventListener","finish","delegateYield","t0","_x6","_x7","_x8","processStreamingLine","line","trim","processDataLine","slice","jsonData","conversation_id","_unused","dataContent","_unused2","_handleStreamingResponse","_callee7","_context8","handleNodeStreaming","handleBrowserStreaming","invokeOnCompleteCallback","_x9","_x0","_this2","stream","allChunks","buffer","on","chunk","_lines$pop","toString","lines","split","pop","processStreamLines","error","finalizeStreamResult","_this3","_ref4","_callee8","_t2","_context9","getReader","handleBrowserReadableStream","handleBrowserStringResponse","_x1","_x10","_handleBrowserReadableStream","_callee9","reader","_yield$reader$read","done","_lines","_t3","_context0","read","TextDecoder","decode","_x11","_x12","_x13","_x14","_x15","finalResult","combineStreamingChunks","_iterator","_createForOfIteratorHelper","_step","s","n","processed","invokeOnChunkCallback","push","err","e","f","chunks","messagesChunks","getMessageChunks","combineMessageChunks","lastChunk","isCompleteSearchResponse","filter","isChunkMessage","metadataChunk","find","isHealthy","nodeDueForHealthcheck","map","join","candidateNode","i","isDueForHealthcheck","lastAccessTimestamp","_this4","forEach","protocol","host","port","path","_timer","_callee0","seconds","_context1","setTimeout","_x16","messageFromServer","httpBody","errorMessage","onChunk","onComplete","onError","errorObj","callbackError","Configuration","Collections","Collection","Keys","Key","Debug","Metrics","Stats","Health","Operations","MultiSearch","Presets","Preset","Stopwords","Stopword","Conversations","Conversation","Stemming","NLSearchModels","NLSearchModel","SynonymSets","SynonymSet","CurationSets","CurationSet","Client","options","_options$sendApiKeyAs","metrics","stats","health","operations","multiSearch","_collections","individualCollections","_aliases","individualAliases","_keys","individualKeys","_presets","individualPresets","_stopwords","individualStopwords","analytics","analyticsV1","stemming","_conversations","individualConversations","_nlSearchModels","individualNLSearchModels","_synonymSets","individualSynonymSets","_curationSets","individualCurationSets","collections","collectionName","aliases","presets","stopwords","conversations","nlSearchModels","synonymSets","synonymSetName","curationSets","Documents","Overrides","Override","Synonyms","Synonym","Document","_documents","_overrides","_synonyms","_update","schema","update","_exists","exists","documents","documentId","individualDocuments","overrides","overrideId","individualOverrides","synonyms","synonymId","individualSynonyms","MissingConfigurationError","setDefaultPathInNode","setDefaultPortInNode","randomizeNodes","shuffleArray","timeoutSeconds","cacheSearchResultsForSeconds","useServerSideSearchCache","logLevel","setLevel","showDeprecationWarnings","validateNodes","isNodeMissingAnyParameters","some","every","hasOwnProperty","masterNode","readReplicaNodes","array","j","Math","floor","random","ConversationModels","ConversationModel","_conversationsModels","models","individualConversationModels","CurationSetItems","CurationSetItem","_items","items","itemId","individualItems","normalizeArrayableParams","queryParams","partialDocument","ImportError","SearchOnlyDocuments","_SearchOnlyDocuments","_callSuper","_inherits","document","action","_emplace","emplace","_createMany","_args6","import","createMany","_import2","finalOptions","documentsInJSONLFormat","resultsInJSONLFormat","resultsInJSONFormat","failedItems","_args7","throwOnFail","Array","isArray","RangeError","includes","isEmptyString","r","success","successCount","_importStream","readableStream","_args8","importStream","_export2","_args9","export","_exportStream","_args0","exportStream","str","_TypesenseError","importResults","payload","_Error","httpStatus","constructor","setPrototypeOf","prototype","_wrapNativeSuper","createHmac","generateScopedSearchKey","searchKey","parameters","normalizedParams","paramsJSON","digest","Buffer","from","keyPrefix","substr","rawScopedKey","RequestWithCache","useTextContentType","requestWithCache","clearCache","_perform","searchRequests","commonParams","_options$cacheSearchR","normalizedSearchRequests","paramsWithoutStream","normalizedQueryParams","use_cache","union","hasAnySearchObjectPagination","searches","_objectWithoutProperties","_excluded","perform","body","cacheResponseForSeconds","search","page","per_page","offset","limit","limit_hits","operationName","_getSchemaChanges","getSchemaChanges","presetId","_normalizedParams","defaultCacheResponseForSeconds","defaultMaxSize","Map","responseCache","responsePromiseCache","requestContext","methodName","requestParams","cacheOptions","_ref$cacheResponseFor","_ref$maxSize","maxSize","isCacheDisabled","requestParamsJSON","cacheEntry","isEntryValid","cachePromiseEntry","_isEntryValid","responsePromise","isCacheOverMaxSize","oldestEntry","isResponsePromiseCacheOverMaxSize","_oldestEntry","executeRequest","requestTimestamp","set","size","context","call","String","SearchOnlyCollection","SearchClient","entries","_slicedToArray","_","collection","_search","searchParameters","_ref$cacheSearchResul","additionalQueryParams","_normalizeArrayablePa","rest","conversation_stream","StemmingDictionaries","StemmingDictionary","_stemmingDictionaries","dictionaries","individualStemmingDictionaries","wordRootCombinations","wordRootCombinationsInJSONLFormat","combo","stopwordId","SynonymSetItems","SynonymSetItem","arrayableParams","query_by","query_by_weights","facet_by","group_by","include_fields","exclude_fields","highlight_fields","highlight_full_fields","pinned_hits","hidden_hits","infix","override_tags","num_typos","prefix","synonym_sets","sort_by","hasNoArrayValues","isNonArrayValue","result","transformedValues","isErrorWithMessage","couldBeError","Errors"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/typesense.min.js b/dist/typesense.min.js index 2f671e8c..cbd7b4b3 100644 --- a/dist/typesense.min.js +++ b/dist/typesense.min.js @@ -1,3 +1,3 @@ /*! For license information please see typesense.min.js.LICENSE.txt */ -var Typesense;(()=>{var e={65(e,t,n){var r,i;!function(){"use strict";r=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],i={},o=null;function a(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function u(){for(var n=this.getLevel(),i=0;i=0&&t<=p.levels.SILENT)return t;throw new TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?h+=":"+e:"symbol"==typeof e&&(h=void 0),p.name=e,p.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},p.methodFactory=n||l,p.getLevel=function(){return null!=c?c:null!=s?s:a},p.setLevel=function(e,n){return c=d(e),!1!==n&&function(e){var n=(r[e]||"silent").toUpperCase();if(typeof window!==t&&h){try{return void(window.localStorage[h]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(e){}}}(c),u.call(p)},p.setDefaultLevel=function(e){s=d(e),f()||p.setLevel(e,!1)},p.resetLevel=function(){c=null,function(){if(typeof window!==t&&h){try{window.localStorage.removeItem(h)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}(),u.call(p)},p.enableAll=function(e){p.setLevel(p.levels.TRACE,e)},p.disableAll=function(e){p.setLevel(p.levels.SILENT,e)},p.rebuild=function(){if(o!==p&&(a=d(o.getLevel())),u.call(p),o===p)for(var e in i)i[e].rebuild()},a=d(o?o.getLevel():"WARN");var v=f();null!=v&&(c=d(v)),u.call(p)}(o=new p).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=i[e];return t||(t=i[e]=new p(e,o.methodFactory)),t};var h=typeof window!==t?window.log:void 0;return o.noConflict=function(){return typeof window!==t&&window.log===o&&(window.log=h),o},o.getLoggers=function(){return i},o.default=o,o},void 0===(i=r.call(t,n,t,e))||(e.exports=i)}()},612(){},939(){},82(){},172(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},993(e,t,n){var r=n(546);function i(){var t,n,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.toStringTag||"@@toStringTag";function u(e,i,o,a){var s=i&&i.prototype instanceof l?i:l,u=Object.create(s.prototype);return r(u,"_invoke",function(e,r,i){var o,a,s,u=0,l=i||[],p=!1,h={p:0,n:0,v:t,a:f,f:f.bind(t,4),d:function(e,n){return o=e,a=0,s=t,h.n=n,c}};function f(e,r){for(a=e,s=r,n=0;!p&&u&&!i&&n3?(i=d===r)&&(s=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=t):o[0]<=f&&((i=e<2&&fr||r>d)&&(o[4]=e,o[5]=r,h.n=d,a=0))}if(i||e>1)return c;throw p=!0,r}return function(i,l,d){if(u>1)throw TypeError("Generator is already running");for(p&&1===l&&f(l,d),a=l,s=d;(n=a<2?t:s)||!p;){o||(a?a<3?(a>1&&(h.n=-1),f(a,s)):h.n=s:h.v=s);try{if(u=2,o){if(a||(i="next"),n=o[i]){if(!(n=n.call(o,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,a<2&&(a=0)}else 1===a&&(n=o.return)&&n.call(o),a<2&&(s=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=t}else if((n=(p=h.n<0)?s:e.call(r,h))!==c)break}catch(e){o=t,a=1,s=e}finally{u=1}}return{value:n,done:p}}}(e,o,a),!0),u}var c={};function l(){}function p(){}function h(){}n=Object.getPrototypeOf;var f=[][a]?n(n([][a]())):(r(n={},a,function(){return this}),n),d=h.prototype=l.prototype=Object.create(f);function v(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,r(e,s,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=h,r(d,"constructor",h),r(h,"constructor",p),p.displayName="GeneratorFunction",r(h,s,"GeneratorFunction"),r(d),r(d,s,"Generator"),r(d,a,function(){return this}),r(d,"toString",function(){return"[object Generator]"}),(e.exports=i=function(){return{w:u,m:v}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},869(e,t,n){var r=n(887);e.exports=function(e,t,n,i,o){var a=r(e,t,n,i,o);return a.next().then(function(e){return e.done?e.value:a.next()})},e.exports.__esModule=!0,e.exports.default=e.exports},887(e,t,n){var r=n(993),i=n(791);e.exports=function(e,t,n,o,a){return new i(r().w(e,t,n,o),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},791(e,t,n){var r=n(172),i=n(546);e.exports=function e(t,n){function o(e,i,a,s){try{var u=t[e](i),c=u.value;return c instanceof r?n.resolve(c.v).then(function(e){o("next",e,a,s)},function(e){o("throw",e,a,s)}):n.resolve(c).then(function(e){u.value=e,a(u)},function(e){return o("throw",e,a,s)})}catch(e){s(e)}}var a;this.next||(i(e.prototype),i(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),i(this,"_invoke",function(e,t,r){function i(){return new n(function(t,n){o(e,r,t,n)})}return a=a?a.then(i,i):i()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports},546(e){function t(n,r,i,o){var a=Object.defineProperty;try{a({},"",{})}catch(n){a=0}e.exports=t=function(e,n,r,i){function o(n,r){t(e,n,function(e){return this._invoke(n,r,e)})}n?a?a(e,n,{value:r,enumerable:!i,configurable:!i,writable:!i}):e[n]=r:(o("next",0),o("throw",1),o("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,i,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},373(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},633(e,t,n){var r=n(172),i=n(993),o=n(869),a=n(887),s=n(791),u=n(373),c=n(579);function l(){"use strict";var t=i(),n=t.m(l),p=(Object.getPrototypeOf?Object.getPrototypeOf(n):n.__proto__).constructor;function h(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function d(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,f[e],t)},delegateYield:function(e,i,o){return t.resultName=i,n(r.d,c(e),o)},finish:function(e){return n(r.f,e)}},n=function(e,n,i){r.p=t.prev,r.n=t.next;try{return e(n,i)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=l=function(){return{wrap:function(e,n,r,i){return t.w(d(e),n,r,i&&i.reverse())},isGeneratorFunction:h,mark:t.m,awrap:function(e,t){return new r(e,t)},AsyncIterator:s,async:function(e,t,n,r,i){return(h(t)?a:o)(d(e),t,n,r,i)},keys:u,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=l,e.exports.__esModule=!0,e.exports.default=e.exports},579(e,t,n){var r=n(738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(r(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},738(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},756(e,t,n){var r=n(633)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{Client:()=>_r,Errors:()=>t,SearchClient:()=>Ir,default:()=>Dr});var e={};n.r(e),n.d(e,{hasBrowserEnv:()=>De,hasStandardBrowserEnv:()=>Fe,hasStandardBrowserWebWorkerEnv:()=>Le,navigator:()=>qe,origin:()=>He});var t={};function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function a(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}function s(e,t){for(var n=0;nan,ImportError:()=>wn,MissingConfigurationError:()=>w,ObjectAlreadyExists:()=>Zt,ObjectNotFound:()=>Xt,ObjectUnprocessable:()=>tn,RequestMalformed:()=>$t,RequestUnauthorized:()=>Qt,ServerError:()=>rn,TypesenseError:()=>g});var l=n(65);function p(e,t){if(t&&("object"==o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}function d(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}function v(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(v=function(){return!!e})()}function y(e){var t="function"==typeof Map?new Map:void 0;return y=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(v())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&f(i,n.prototype),i}(e,arguments,h(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,e)},y(e)}function m(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(m=function(){return!!e})()}var g=function(e){function t(e,n,r){var o,a,s,u;return i(this,t),a=this,u=[e],s=h(s=t),(o=p(a,m()?Reflect.construct(s,u||[],h(a).constructor):s.apply(a,u))).name=(this instanceof t?this.constructor:void 0).name,o.httpBody=n,o.httpStatus=r,Object.setPrototypeOf(o,(this instanceof t?this.constructor:void 0).prototype),o}return d(t,e),u(t)}(y(Error));function b(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(b=function(){return!!e})()}var w=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,b()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var k=function(){return u(function e(t){var n=this;i(this,e),this.nodes=t.nodes||[],this.nodes=this.nodes.map(function(e){return n.setDefaultPathInNode(e)}).map(function(e){return n.setDefaultPortInNode(e)}).map(function(e){return function(e){for(var t=1;t=0?t.numRetries:this.nodes.length+(null==this.nearestNode?0:1))||3,this.retryIntervalSeconds=t.retryIntervalSeconds||.1,this.apiKey=t.apiKey,this.sendApiKeyAsQueryParam=t.sendApiKeyAsQueryParam,this.cacheSearchResultsForSeconds=t.cacheSearchResultsForSeconds||0,this.useServerSideSearchCache=t.useServerSideSearchCache||!1,this.axiosAdapter=t.axiosAdapter,this.logger=t.logger||l,this.logLevel=t.logLevel||"warn",this.logger.setLevel(this.logLevel),this.additionalHeaders=t.additionalHeaders,this.httpAgent=t.httpAgent,this.httpsAgent=t.httpsAgent,this.paramsSerializer=t.paramsSerializer,this.showDeprecationWarnings(t),this.validate()},[{key:"validate",value:function(){if(null==this.nodes||0===this.nodes.length||this.validateNodes())throw new w("Ensure that nodes[].protocol, nodes[].host and nodes[].port are set");if(null!=this.nearestNode&&this.isNodeMissingAnyParameters(this.nearestNode))throw new w("Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set");if(null==this.apiKey)throw new w("Ensure that apiKey is set");return!0}},{key:"validateNodes",value:function(){var e=this;return this.nodes.some(function(t){return e.isNodeMissingAnyParameters(t)})}},{key:"isNodeMissingAnyParameters",value:function(e){return!["protocol","host","port","path"].every(function(t){return e.hasOwnProperty(t)})&&null==e.url}},{key:"setDefaultPathInNode",value:function(e){return null==e||e.hasOwnProperty("path")||(e.path=""),e}},{key:"setDefaultPortInNode",value:function(e){if(null!=e&&!e.hasOwnProperty("port")&&e.hasOwnProperty("protocol"))switch(e.protocol){case"https":e.port=443;break;case"http":e.port=80}return e}},{key:"showDeprecationWarnings",value:function(e){e.timeoutSeconds&&this.logger.warn("Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds"),e.masterNode&&this.logger.warn("Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12"),e.readReplicaNodes&&this.logger.warn("Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12")}},{key:"shuffleArray",value:function(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(Math.random()*(t+1)),r=[e[n],e[t]];e[t]=r[0],e[n]=r[1]}}}])}();function R(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function S(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function a(e){R(o,r,i,a,s,"next",e)}function s(e){R(o,r,i,a,s,"throw",e)}a(void 0)})}}var O=n(756),P=n.n(O);function E(e,t){return function(){return e.apply(t,arguments)}}const{toString:x}=Object.prototype,{getPrototypeOf:A}=Object,{iterator:T,toStringTag:N}=Symbol,_=(j=Object.create(null),e=>{const t=x.call(e);return j[t]||(j[t]=t.slice(8,-1).toLowerCase())});var j;const U=e=>(e=e.toLowerCase(),t=>_(t)===e),I=e=>t=>typeof t===e,{isArray:D}=Array,q=I("undefined");function F(e){return null!==e&&!q(e)&&null!==e.constructor&&!q(e.constructor)&&B(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const L=U("ArrayBuffer"),H=I("string"),B=I("function"),M=I("number"),K=e=>null!==e&&"object"==typeof e,z=e=>{if("object"!==_(e))return!1;const t=A(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||N in e||T in e)},W=U("Date"),J=U("File"),$=U("Blob"),V=U("FileList"),Q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{},G=void 0!==Q.FormData?Q.FormData:void 0,X=U("URLSearchParams"),[Y,Z,ee,te]=["ReadableStream","Request","Response","Headers"].map(U);function ne(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),D(e))for(r=0,i=e.length;r0;)if(r=n[i],t===r.toLowerCase())return r;return null}const ie="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,oe=e=>!q(e)&&e!==ie,ae=(se="undefined"!=typeof Uint8Array&&A(Uint8Array),e=>se&&e instanceof se);var se;const ue=U("HTMLFormElement"),ce=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),le=U("RegExp"),pe=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};ne(n,(n,i)=>{let o;!1!==(o=t(n,i,e))&&(r[i]=o||n)}),Object.defineProperties(e,r)},he=U("AsyncFunction"),fe=(de="function"==typeof setImmediate,ve=B(ie.postMessage),de?setImmediate:ve?(ye=`axios@${Math.random()}`,me=[],ie.addEventListener("message",({source:e,data:t})=>{e===ie&&t===ye&&me.length&&me.shift()()},!1),e=>{me.push(e),ie.postMessage(ye,"*")}):e=>setTimeout(e));var de,ve,ye,me;const ge="undefined"!=typeof queueMicrotask?queueMicrotask.bind(ie):"undefined"!=typeof process&&process.nextTick||fe,be={isArray:D,isArrayBuffer:L,isBuffer:F,isFormData:e=>{let t;return e&&(G&&e instanceof G||B(e.append)&&("formdata"===(t=_(e))||"object"===t&&B(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&L(e.buffer),t},isString:H,isNumber:M,isBoolean:e=>!0===e||!1===e,isObject:K,isPlainObject:z,isEmptyObject:e=>{if(!K(e)||F(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:Y,isRequest:Z,isResponse:ee,isHeaders:te,isUndefined:q,isDate:W,isFile:J,isReactNativeBlob:e=>!(!e||void 0===e.uri),isReactNative:e=>e&&void 0!==e.getParts,isBlob:$,isRegExp:le,isFunction:B,isStream:e=>K(e)&&B(e.pipe),isURLSearchParams:X,isTypedArray:ae,isFileList:V,forEach:ne,merge:function e(){const{caseless:t,skipUndefined:n}=oe(this)&&this||{},r={},i=(i,o)=>{if("__proto__"===o||"constructor"===o||"prototype"===o)return;const a=t&&re(r,o)||o;z(r[a])&&z(i)?r[a]=e(r[a],i):z(i)?r[a]=e({},i):D(i)?r[a]=i.slice():n&&q(i)||(r[a]=i)};for(let e=0,t=arguments.length;e(ne(t,(t,r)=>{n&&B(t)?Object.defineProperty(e,r,{value:E(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,o,a;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),o=i.length;o-- >0;)a=i[o],r&&!r(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==n&&A(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:_,kindOfTest:U,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(D(e))return e;let t=e.length;if(!M(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[T]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:ue,hasOwnProperty:ce,hasOwnProp:ce,reduceDescriptors:pe,freezeMethods:e=>{pe(e,(t,n)=>{if(B(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];B(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach(e=>{n[e]=!0})};return D(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:re,global:ie,isContextDefined:oe,isSpecCompliantForm:function(e){return!!(e&&B(e.append)&&"FormData"===e[N]&&e[T])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(K(e)){if(t.indexOf(e)>=0)return;if(F(e))return e;if(!("toJSON"in e)){t[r]=e;const i=D(e)?[]:{};return ne(e,(e,t)=>{const o=n(e,r+1);!q(o)&&(i[t]=o)}),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:he,isThenable:e=>e&&(K(e)||B(e))&&B(e.then)&&B(e.catch),setImmediate:fe,asap:ge,isIterable:e=>null!=e&&B(e[T])};class we extends Error{static from(e,t,n,r,i,o){const a=new we(e.message,t||e.code,n,r,i);return a.cause=e,a.name=e.name,null!=e.status&&null==a.status&&(a.status=e.status),o&&Object.assign(a,o),a}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:be.toJSONObject(this.config),code:this.code,status:this.status}}}we.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",we.ERR_BAD_OPTION="ERR_BAD_OPTION",we.ECONNABORTED="ECONNABORTED",we.ETIMEDOUT="ETIMEDOUT",we.ERR_NETWORK="ERR_NETWORK",we.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",we.ERR_DEPRECATED="ERR_DEPRECATED",we.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",we.ERR_BAD_REQUEST="ERR_BAD_REQUEST",we.ERR_CANCELED="ERR_CANCELED",we.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",we.ERR_INVALID_URL="ERR_INVALID_URL";const Ce=we;function ke(e){return be.isPlainObject(e)||be.isArray(e)}function Re(e){return be.endsWith(e,"[]")?e.slice(0,-2):e}function Se(e,t,n){return e?e.concat(t).map(function(e,t){return e=Re(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const Oe=be.toFlatObject(be,{},null,function(e){return/^is[A-Z]/.test(e)}),Pe=function(e,t,n){if(!be.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=be.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!be.isUndefined(t[e])})).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&be.isSpecCompliantForm(t);if(!be.isFunction(i))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(be.isDate(e))return e.toISOString();if(be.isBoolean(e))return e.toString();if(!s&&be.isBlob(e))throw new Ce("Blob is not supported. Use a Buffer instead.");return be.isArrayBuffer(e)||be.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,i){let s=e;if(be.isReactNative(t)&&be.isReactNativeBlob(e))return t.append(Se(i,n,o),u(e)),!1;if(e&&!i&&"object"==typeof e)if(be.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(be.isArray(e)&&function(e){return be.isArray(e)&&!e.some(ke)}(e)||(be.isFileList(e)||be.endsWith(n,"[]"))&&(s=be.toArray(e)))return n=Re(n),s.forEach(function(e,r){!be.isUndefined(e)&&null!==e&&t.append(!0===a?Se([n],r,o):null===a?n:n+"[]",u(e))}),!1;return!!ke(e)||(t.append(Se(i,n,o),u(e)),!1)}const l=[],p=Object.assign(Oe,{defaultVisitor:c,convertValue:u,isVisitable:ke});if(!be.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!be.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),be.forEach(n,function(n,o){!0===(!(be.isUndefined(n)||null===n)&&i.call(t,n,be.isString(o)?o.trim():o,r,p))&&e(n,r?r.concat(o):[o])}),l.pop()}}(e),t};function Ee(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(e){return t[e]})}function xe(e,t){this._pairs=[],e&&Pe(e,this,t)}const Ae=xe.prototype;Ae.append=function(e,t){this._pairs.push([e,t])},Ae.toString=function(e){const t=e?function(t){return e.call(this,t,Ee)}:Ee;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};const Te=xe;function Ne(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function _e(e,t,n){if(!t)return e;const r=n&&n.encode||Ne,i=be.isFunction(n)?{serialize:n}:n,o=i&&i.serialize;let a;if(a=o?o(t,i):be.isURLSearchParams(t)?t.toString():new Te(t,i).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}const je=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){be.forEach(this.handlers,function(t){null!==t&&e(t)})}},Ue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},Ie={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Te,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},De="undefined"!=typeof window&&"undefined"!=typeof document,qe="object"==typeof navigator&&navigator||void 0,Fe=De&&(!qe||["ReactNative","NativeScript","NS"].indexOf(qe.product)<0),Le="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,He=De&&window.location.href||"http://localhost",Be={...e,...Ie},Me=function(e){function t(e,n,r,i){let o=e[i++];if("__proto__"===o)return!0;const a=Number.isFinite(+o),s=i>=e.length;return o=!o&&be.isArray(r)?r.length:o,s?(be.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&be.isObject(r[o])||(r[o]=[]),t(e,n,r[o],i)&&be.isArray(r[o])&&(r[o]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let o;for(r=0;r{t(function(e){return be.matchAll(/\w+|\[(\w*)]/g,e).map(e=>"[]"===e[0]?"":e[1]||e[0])}(e),r,n,0)}),n}return null},Ke={transitional:Ue,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=be.isObject(e);if(i&&be.isHTMLForm(e)&&(e=new FormData(e)),be.isFormData(e))return r?JSON.stringify(Me(e)):e;if(be.isArrayBuffer(e)||be.isBuffer(e)||be.isStream(e)||be.isFile(e)||be.isBlob(e)||be.isReadableStream(e))return e;if(be.isArrayBufferView(e))return e.buffer;if(be.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Pe(e,new Be.classes.URLSearchParams,{visitor:function(e,t,n,r){return Be.isNode&&be.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}(e,this.formSerializer).toString();if((o=be.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Pe(o?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e){if(be.isString(e))try{return(0,JSON.parse)(e),be.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Ke.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(be.isResponse(e)||be.isReadableStream(e))return e;if(e&&be.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e,this.parseReviver)}catch(e){if(n){if("SyntaxError"===e.name)throw Ce.from(e,Ce.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Be.classes.FormData,Blob:Be.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};be.forEach(["delete","get","head","post","put","patch"],e=>{Ke.headers[e]={}});const ze=Ke,We=be.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Je=e=>{const t={};let n,r,i;return e&&e.split("\n").forEach(function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&We[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t};(Object.getOwnPropertyDescriptor(Je,"name")||{}).writable||Object.defineProperty(Je,"name",{value:"default",configurable:!0});const $e=Symbol("internals");function Ve(e,t){if(!1!==e&&null!=e)if(be.isArray(e))e.forEach(e=>Ve(e,t));else if(!(e=>!/[\r\n]/.test(e))(String(e)))throw new Error(`Invalid character in header content ["${t}"]`)}function Qe(e){return e&&String(e).trim().toLowerCase()}function Ge(e){return!1===e||null==e?e:be.isArray(e)?e.map(Ge):function(e){let t=e.length;for(;t>0;){const n=e.charCodeAt(t-1);if(10!==n&&13!==n)break;t-=1}return t===e.length?e:e.slice(0,t)}(String(e))}function Xe(e,t,n,r,i){return be.isFunction(r)?r.call(this,t,n):(i&&(t=n),be.isString(t)?be.isString(r)?-1!==t.indexOf(r):be.isRegExp(r)?r.test(t):void 0:void 0)}class Ye{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=Qe(t);if(!i)throw new Error("header name must be a non-empty string");const o=be.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(Ve(e,t),r[o||t]=Ge(e))}const o=(e,t)=>be.forEach(e,(e,n)=>i(e,n,t));if(be.isPlainObject(e)||e instanceof this.constructor)o(e,t);else if(be.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))o(Je(e),t);else if(be.isObject(e)&&be.isIterable(e)){let n,r,i={};for(const t of e){if(!be.isArray(t))throw TypeError("Object iterator must return a key-value pair");i[r=t[0]]=(n=i[r])?be.isArray(n)?[...n,t[1]]:[n,t[1]]:t[1]}o(i,t)}else null!=e&&i(t,e,n);return this}get(e,t){if(e=Qe(e)){const n=be.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(be.isFunction(t))return t.call(this,e,n);if(be.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Qe(e)){const n=be.findKey(this,e);return!(!n||void 0===this[n]||t&&!Xe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=Qe(e)){const i=be.findKey(n,e);!i||t&&!Xe(0,n[i],i,t)||(delete n[i],r=!0)}}return be.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!Xe(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return be.forEach(this,(r,i)=>{const o=be.findKey(n,i);if(o)return t[o]=Ge(r),void delete t[i];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(i):String(i).trim();a!==i&&delete t[i],t[a]=Ge(r),n[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return be.forEach(this,(n,r)=>{null!=n&&!1!==n&&(t[r]=e&&be.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[$e]=this[$e]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Qe(e);t[r]||(function(e,t){const n=be.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}(n,e),t[r]=!0)}return be.isArray(e)?e.forEach(r):r(e),this}}Ye.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),be.reduceDescriptors(Ye.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),be.freezeMethods(Ye);const Ze=Ye;function et(e,t){const n=this||ze,r=t||n,i=Ze.from(r.headers);let o=r.data;return be.forEach(e,function(e){o=e.call(n,o,i.normalize(),t?t.status:void 0)}),i.normalize(),o}function tt(e){return!(!e||!e.__CANCEL__)}const nt=class extends Ce{constructor(e,t,n){super(null==e?"canceled":e,Ce.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function rt(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new Ce("Request failed with status code "+n.status,[Ce.ERR_BAD_REQUEST,Ce.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}const it=(e,t,n=3)=>{let r=0;const i=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,o=0,a=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),c=r[a];i||(i=u),n[o]=s,r[o]=u;let l=a,p=0;for(;l!==o;)p+=n[l++],l%=e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),u-i{i=o,n=null,r&&(clearTimeout(r),r=null),e(...t)};return[(...e)=>{const t=Date.now(),s=t-i;s>=o?a(e,t):(n=e,r||(r=setTimeout(()=>{r=null,a(n)},o-s)))},()=>n&&a(n)]}(n=>{const o=n.loaded,a=n.lengthComputable?n.total:void 0,s=o-r,u=i(s);r=o,e({loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&o<=a?(a-o)/u:void 0,event:n,lengthComputable:null!=a,[t?"download":"upload"]:!0})},n)},ot=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},at=e=>(...t)=>be.asap(()=>e(...t)),st=Be.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Be.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Be.origin),Be.navigator&&/(msie|trident)/i.test(Be.navigator.userAgent)):()=>!0,ut=Be.hasStandardBrowserEnv?{write(e,t,n,r,i,o,a){if("undefined"==typeof document)return;const s=[`${e}=${encodeURIComponent(t)}`];be.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),be.isString(r)&&s.push(`path=${r}`),be.isString(i)&&s.push(`domain=${i}`),!0===o&&s.push("secure"),be.isString(a)&&s.push(`SameSite=${a}`),document.cookie=s.join("; ")},read(e){if("undefined"==typeof document)return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};function ct(e,t,n){let r=!("string"==typeof(i=t)&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(i));var i;return e&&(r||0==n)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const lt=e=>e instanceof Ze?{...e}:e;function pt(e,t){t=t||{};const n={};function r(e,t,n,r){return be.isPlainObject(e)&&be.isPlainObject(t)?be.merge.call({caseless:r},e,t):be.isPlainObject(t)?be.merge({},t):be.isArray(t)?t.slice():t}function i(e,t,n,i){return be.isUndefined(t)?be.isUndefined(e)?void 0:r(void 0,e,0,i):r(e,t,0,i)}function o(e,t){if(!be.isUndefined(t))return r(void 0,t)}function a(e,t){return be.isUndefined(t)?be.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,o){return o in t?r(n,i):o in e?r(void 0,n):void 0}const u={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t,n)=>i(lt(e),lt(t),0,!0)};return be.forEach(Object.keys({...e,...t}),function(r){if("__proto__"===r||"constructor"===r||"prototype"===r)return;const o=be.hasOwnProp(u,r)?u[r]:i,a=o(e[r],t[r],r);be.isUndefined(a)&&o!==s||(n[r]=a)}),n}const ht=e=>{const t=pt({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:a,auth:s}=t;if(t.headers=a=Ze.from(a),t.url=_e(ct(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),s&&a.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):""))),be.isFormData(n))if(Be.hasStandardBrowserEnv||Be.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(be.isFunction(n.getHeaders)){const e=n.getHeaders(),t=["content-type","content-length"];Object.entries(e).forEach(([e,n])=>{t.includes(e.toLowerCase())&&a.set(e,n)})}if(Be.hasStandardBrowserEnv&&(r&&be.isFunction(r)&&(r=r(t)),r||!1!==r&&st(t.url))){const e=i&&o&&ut.read(o);e&&a.set(i,e)}return t};(Object.getOwnPropertyDescriptor(ht,"name")||{}).writable||Object.defineProperty(ht,"name",{value:"default",configurable:!0});const ft="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const r=ht(e);let i=r.data;const o=Ze.from(r.headers).normalize();let a,s,u,c,l,{responseType:p,onUploadProgress:h,onDownloadProgress:f}=r;function d(){c&&c(),l&&l(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let v=new XMLHttpRequest;function y(){if(!v)return;const r=Ze.from("getAllResponseHeaders"in v&&v.getAllResponseHeaders());rt(function(e){t(e),d()},function(e){n(e),d()},{data:p&&"text"!==p&&"json"!==p?v.response:v.responseText,status:v.status,statusText:v.statusText,headers:r,config:e,request:v}),v=null}v.open(r.method.toUpperCase(),r.url,!0),v.timeout=r.timeout,"onloadend"in v?v.onloadend=y:v.onreadystatechange=function(){v&&4===v.readyState&&(0!==v.status||v.responseURL&&0===v.responseURL.indexOf("file:"))&&setTimeout(y)},v.onabort=function(){v&&(n(new Ce("Request aborted",Ce.ECONNABORTED,e,v)),v=null)},v.onerror=function(t){const r=t&&t.message?t.message:"Network Error",i=new Ce(r,Ce.ERR_NETWORK,e,v);i.event=t||null,n(i),v=null},v.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const i=r.transitional||Ue;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new Ce(t,i.clarifyTimeoutError?Ce.ETIMEDOUT:Ce.ECONNABORTED,e,v)),v=null},void 0===i&&o.setContentType(null),"setRequestHeader"in v&&be.forEach(o.toJSON(),function(e,t){v.setRequestHeader(t,e)}),be.isUndefined(r.withCredentials)||(v.withCredentials=!!r.withCredentials),p&&"json"!==p&&(v.responseType=r.responseType),f&&([u,l]=it(f,!0),v.addEventListener("progress",u)),h&&v.upload&&([s,c]=it(h),v.upload.addEventListener("progress",s),v.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{v&&(n(!t||t.type?new nt(null,e,v):t),v.abort(),v=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const m=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);m&&-1===Be.protocols.indexOf(m)?n(new Ce("Unsupported protocol "+m+":",Ce.ERR_BAD_REQUEST,e)):v.send(i||null)})},dt=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n,r=new AbortController;const i=function(e){if(!n){n=!0,a();const t=e instanceof Error?e:this.reason;r.abort(t instanceof Ce?t:new nt(t instanceof Error?t.message:t))}};let o=t&&setTimeout(()=>{o=null,i(new Ce(`timeout of ${t}ms exceeded`,Ce.ETIMEDOUT))},t);const a=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener("abort",i)}),e=null)};e.forEach(e=>e.addEventListener("abort",i));const{signal:s}=r;return s.unsubscribe=()=>be.asap(a),s}},vt=function*(e,t){let n=e.byteLength;if(!t||n{const i=async function*(e,t){for await(const n of async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}}(e))yield*vt(n,t)}(e,t);let o,a=0,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await i.next();if(t)return s(),void e.close();let o=r.byteLength;if(n){let e=a+=o;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel:e=>(s(e),i.return())},{highWaterMark:2})},{isFunction:mt}=be,gt=(({Request:e,Response:t})=>({Request:e,Response:t}))(be.global),{ReadableStream:bt,TextEncoder:wt}=be.global,Ct=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},kt=e=>{e=be.merge.call({skipUndefined:!0},gt,e);const{fetch:t,Request:n,Response:r}=e,i=t?mt(t):"function"==typeof fetch,o=mt(n),a=mt(r);if(!i)return!1;const s=i&&mt(bt),u=i&&("function"==typeof wt?(c=new wt,e=>c.encode(e)):async e=>new Uint8Array(await new n(e).arrayBuffer()));var c;const l=o&&s&&Ct(()=>{let e=!1;const t=new bt,r=new n(Be.origin,{body:t,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return t.cancel(),e&&!r}),p=a&&s&&Ct(()=>be.isReadableStream(new r("").body)),h={stream:p&&(e=>e.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!h[e]&&(h[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new Ce(`Response type '${e}' is not supported`,Ce.ERR_NOT_SUPPORT,n)})});return async e=>{let{url:i,method:a,data:s,signal:c,cancelToken:f,timeout:d,onDownloadProgress:v,onUploadProgress:y,responseType:m,headers:g,withCredentials:b="same-origin",fetchOptions:w}=ht(e),C=t||fetch;m=m?(m+"").toLowerCase():"text";let k=dt([c,f&&f.toAbortSignal()],d),R=null;const S=k&&k.unsubscribe&&(()=>{k.unsubscribe()});let O;try{if(y&&l&&"get"!==a&&"head"!==a&&0!==(O=await(async(e,t)=>{const r=be.toFiniteNumber(e.getContentLength());return null==r?(async e=>{if(null==e)return 0;if(be.isBlob(e))return e.size;if(be.isSpecCompliantForm(e)){const t=new n(Be.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return be.isArrayBufferView(e)||be.isArrayBuffer(e)?e.byteLength:(be.isURLSearchParams(e)&&(e+=""),be.isString(e)?(await u(e)).byteLength:void 0)})(t):r})(g,s))){let e,t=new n(i,{method:"POST",body:s,duplex:"half"});if(be.isFormData(s)&&(e=t.headers.get("content-type"))&&g.setContentType(e),t.body){const[e,n]=ot(O,it(at(y)));s=yt(t.body,65536,e,n)}}be.isString(b)||(b=b?"include":"omit");const t=o&&"credentials"in n.prototype,c={...w,signal:k,method:a.toUpperCase(),headers:g.normalize().toJSON(),body:s,duplex:"half",credentials:t?b:void 0};R=o&&new n(i,c);let f=await(o?C(R,w):C(i,c));const d=p&&("stream"===m||"response"===m);if(p&&(v||d&&S)){const e={};["status","statusText","headers"].forEach(t=>{e[t]=f[t]});const t=be.toFiniteNumber(f.headers.get("content-length")),[n,i]=v&&ot(t,it(at(v),!0))||[];f=new r(yt(f.body,65536,n,()=>{i&&i(),S&&S()}),e)}m=m||"text";let P=await h[be.findKey(h,m)||"text"](f,e);return!d&&S&&S(),await new Promise((t,n)=>{rt(t,n,{data:P,headers:Ze.from(f.headers),status:f.status,statusText:f.statusText,config:e,request:R})})}catch(t){if(S&&S(),t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new Ce("Network Error",Ce.ERR_NETWORK,e,R,t&&t.response),{cause:t.cause||t});throw Ce.from(t,t&&t.code,e,R,t&&t.response)}}},Rt=new Map,St=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:i}=t,o=[r,i,n];let a,s,u=o.length,c=Rt;for(;u--;)a=o[u],s=c.get(a),void 0===s&&c.set(a,s=u?new Map:kt(t)),c=s;return s},Ot=(St(),{http:null,xhr:ft,fetch:{get:St}});be.forEach(Ot,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}});const Pt=e=>`- ${e}`,Et=e=>be.isFunction(e)||null===e||!1===e,xt=function(e,t){e=be.isArray(e)?e:[e];const{length:n}=e;let r,i;const o={};for(let a=0;a`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));let t=n?e.length>1?"since :\n"+e.map(Pt).join("\n"):" "+Pt(e[0]):"as no adapter specified";throw new Ce("There is no suitable adapter to dispatch the request "+t,"ERR_NOT_SUPPORT")}return i};function At(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new nt(null,e)}function Tt(e){return At(e),e.headers=Ze.from(e.headers),e.data=et.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),xt(e.adapter||ze.adapter,e)(e).then(function(t){return At(e),t.data=et.call(e,e.transformResponse,t),t.headers=Ze.from(t.headers),t},function(t){return tt(t)||(At(e),t&&t.response&&(t.response.data=et.call(e,e.transformResponse,t.response),t.response.headers=Ze.from(t.response.headers))),Promise.reject(t)})}const Nt="1.15.0",_t={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{_t[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const jt={};_t.transitional=function(e,t,n){function r(e,t){return"[Axios v"+Nt+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,o)=>{if(!1===e)throw new Ce(r(i," has been removed"+(t?" in "+t:"")),Ce.ERR_DEPRECATED);return t&&!jt[i]&&(jt[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,o)}},_t.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};const Ut={assertOptions:function(e,t,n){if("object"!=typeof e)throw new Ce("options must be an object",Ce.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const o=r[i],a=t[o];if(a){const t=e[o],n=void 0===t||a(t,o,e);if(!0!==n)throw new Ce("option "+o+" must be "+n,Ce.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new Ce("Unknown option "+o,Ce.ERR_BAD_OPTION)}},validators:_t},It=Ut.validators;class Dt{constructor(e){this.defaults=e||{},this.interceptors={request:new je,response:new je}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=(()=>{if(!t.stack)return"";const e=t.stack.indexOf("\n");return-1===e?"":t.stack.slice(e+1)})();try{if(e.stack){if(n){const t=n.indexOf("\n"),r=-1===t?-1:n.indexOf("\n",t+1),i=-1===r?"":n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+="\n"+n)}}else e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=pt(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&Ut.assertOptions(n,{silentJSONParsing:It.transitional(It.boolean),forcedJSONParsing:It.transitional(It.boolean),clarifyTimeoutError:It.transitional(It.boolean),legacyInterceptorReqResOrdering:It.transitional(It.boolean)},!1),null!=r&&(be.isFunction(r)?t.paramsSerializer={serialize:r}:Ut.assertOptions(r,{encode:It.function,serialize:It.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),Ut.assertOptions(t,{baseUrl:It.spelling("baseURL"),withXsrfToken:It.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o=i&&be.merge(i.common,i[t.method]);i&&be.forEach(["delete","get","head","post","put","patch","common"],e=>{delete i[e]}),t.headers=Ze.concat(o,i);const a=[];let s=!0;this.interceptors.request.forEach(function(e){if("function"==typeof e.runWhen&&!1===e.runWhen(t))return;s=s&&e.synchronous;const n=t.transitional||Ue;n&&n.legacyInterceptorReqResOrdering?a.unshift(e.fulfilled,e.rejected):a.push(e.fulfilled,e.rejected)});const u=[];let c;this.interceptors.response.forEach(function(e){u.push(e.fulfilled,e.rejected)});let l,p=0;if(!s){const e=[Tt.bind(this),void 0];for(e.unshift(...a),e.push(...u),l=e.length,c=Promise.resolve(t);p{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new nt(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new Ft(function(t){e=t}),cancel:e}}}const Lt=Ft,Ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Ht).forEach(([e,t])=>{Ht[t]=e});const Bt=Ht,Mt=function e(t){const n=new qt(t),r=E(qt.prototype.request,n);return be.extend(r,qt.prototype,n,{allOwnKeys:!0}),be.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(pt(t,n))},r}(ze);Mt.Axios=qt,Mt.CanceledError=nt,Mt.CancelToken=Lt,Mt.isCancel=tt,Mt.VERSION=Nt,Mt.toFormData=Pe,Mt.AxiosError=Ce,Mt.Cancel=Mt.CanceledError,Mt.all=function(e){return Promise.all(e)},Mt.spread=function(e){return function(t){return e.apply(null,t)}},Mt.isAxiosError=function(e){return be.isObject(e)&&!0===e.isAxiosError},Mt.mergeConfig=pt,Mt.AxiosHeaders=Ze,Mt.formToJSON=e=>Me(be.isHTMLForm(e)?new FormData(e):e),Mt.getAdapter=xt,Mt.HttpStatusCode=Bt,Mt.default=Mt;const Kt=Mt;var zt=n(939),Wt=n(82);function Jt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Jt=function(){return!!e})()}var $t=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,Jt()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function Vt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Vt=function(){return!!e})()}var Qt=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,Vt()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function Gt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Gt=function(){return!!e})()}var Xt=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,Gt()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function Yt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Yt=function(){return!!e})()}var Zt=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,Yt()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function en(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(en=function(){return!!e})()}var tn=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,en()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function nn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(nn=function(){return!!e})()}var rn=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,nn()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function on(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(on=function(){return!!e})()}var an=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,on()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g),sn={query_by:"query_by",query_by_weights:"query_by_weights",facet_by:"facet_by",group_by:"group_by",include_fields:"include_fields",exclude_fields:"exclude_fields",highlight_fields:"highlight_fields",highlight_full_fields:"highlight_full_fields",pinned_hits:"pinned_hits",hidden_hits:"hidden_hits",infix:"infix",override_tags:"override_tags",num_typos:"num_typos",prefix:"prefix",synonym_sets:"synonym_sets",sort_by:"sort_by"};function un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cn(e){return Object.keys(sn).filter(function(t){return void 0!==e[t]}).every(function(t){return n=e[t],!Array.isArray(n);var n})}function ln(e){var t=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==p[1]?p[1]:{},i=(r=p.length>2&&void 0!==p[2]?p[2]:{}).abortSignal,o=void 0===i?null:i,a=r.responseType,s=void 0===a?void 0:a,u=r.streamConfig,c=void 0===u?void 0:u,l=r.isStreamingRequest,e.abrupt("return",this.performRequest("get",t,{queryParameters:n,abortSignal:o,responseType:s,streamConfig:c,isStreamingRequest:l}));case 1:case"end":return e.stop()}},e,this)})),function(e){return p.apply(this,arguments)})},{key:"delete",value:(l=S(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.performRequest("delete",t,{queryParameters:n,isStreamingRequest:!1}));case 1:case"end":return e.stop()}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"post",value:(c=S(P().mark(function e(t){var n,r,i,o,a,s,u,c,l,p,h,f=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=f.length>1&&void 0!==f[1]?f[1]:{},r=f.length>2&&void 0!==f[2]?f[2]:{},i=f.length>3&&void 0!==f[3]?f[3]:{},a=(o=f.length>4&&void 0!==f[4]?f[4]:{}).abortSignal,s=void 0===a?null:a,u=o.responseType,c=void 0===u?void 0:u,l=o.streamConfig,p=void 0===l?void 0:l,h=o.isStreamingRequest,e.abrupt("return",this.performRequest("post",t,{queryParameters:r,bodyParameters:n,additionalHeaders:i,abortSignal:s,responseType:c,streamConfig:p,isStreamingRequest:h}));case 1:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"put",value:(s=S(P().mark(function e(t){var n,r,i=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},r=i.length>2&&void 0!==i[2]?i[2]:{},e.abrupt("return",this.performRequest("put",t,{queryParameters:r,bodyParameters:n,isStreamingRequest:!1}));case 1:case"end":return e.stop()}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"patch",value:(a=S(P().mark(function e(t){var n,r,i=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},r=i.length>2&&void 0!==i[2]?i[2]:{},e.abrupt("return",this.performRequest("patch",t,{queryParameters:r,bodyParameters:n,isStreamingRequest:!1}));case 1:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getAdapter",value:function(){if(this.configuration.axiosAdapter)return"function"==typeof this.configuration.axiosAdapter?this.configuration.axiosAdapter:"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent?Kt.getAdapter(this.configuration.axiosAdapter).bind(globalThis):Kt.getAdapter(this.configuration.axiosAdapter)}},{key:"performRequest",value:(r=S(P().mark(function e(t,n,r){var i,a,s,u,c,l,p,h,f,d,v,y,m,g,b,w,C,k,R,S,O,E,x,A=this;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i=r.queryParameters,a=void 0===i?null:i,s=r.bodyParameters,u=void 0===s?null:s,c=r.additionalHeaders,l=void 0===c?{}:c,p=r.abortSignal,h=void 0===p?null:p,f=r.responseType,d=void 0===f?void 0:f,v=r.skipConnectionTimeout,y=void 0!==v&&v,m=r.enableKeepAlive,g=void 0===m?void 0:m,b=r.streamConfig,w=void 0===b?void 0:b,C=r.isStreamingRequest,this.configuration.validate(),C&&(this.logger.debug("Request: Performing streaming request to ".concat(n)),vn||"undefined"==typeof fetch||(this.logger.debug("Using fetch adapter for browser streaming"),d="stream")),k=Date.now(),S=!1,this.logger.debug("Request #".concat(k,": Performing ").concat(t.toUpperCase()," request: ").concat(n)),O=P().mark(function e(){var r,i,s,c,p,f,v,m,b,O,E;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=A.getNextNode(k),A.logger.debug("Request #".concat(k,": Attempting ").concat(t.toUpperCase()," request Try #").concat(x," to Node ").concat(r.index)),!h||!h.aborted){e.next=1;break}return e.abrupt("return",{v:Promise.reject(new Error("Request aborted by caller."))});case 1:return e.prev=1,(s={method:t,url:A.uriFor(n,r),headers:Object.assign({},A.defaultHeaders(),l,A.additionalUserHeaders),maxContentLength:1/0,maxBodyLength:1/0,validateStatus:function(e){return e>0},transformResponse:[function(e,t){var n=e;return void 0!==t&&"string"==typeof e&&t["content-type"]&&t["content-type"].startsWith("application/json")&&(n=JSON.parse(e)),n}]}).adapter=C&&!vn?"fetch":A.getAdapter(),!0!==y&&(s.timeout=1e3*A.connectionTimeoutSeconds),a&&0!==Object.keys(a).length&&(s.params=a),A.sendApiKeyAsQueryParam&&(s.params=s.params||{},s.params["x-typesense-api-key"]=A.apiKey),A.configuration.httpAgent?(A.logger.debug("Request #".concat(k,": Using custom httpAgent")),s.httpAgent=A.configuration.httpAgent):!0===g&&(vn?(A.logger.debug("Request #".concat(k,": Enabling KeepAlive")),s.httpAgent=new zt.Agent({keepAlive:!0})):A.logger.warn("Request #".concat(k,": Cannot use custom httpAgent in a browser environment to enable keepAlive"))),A.configuration.httpsAgent?(A.logger.debug("Request #".concat(k,": Using custom httpsAgent")),s.httpsAgent=A.configuration.httpsAgent):!0===g&&(vn?(A.logger.debug("Request #".concat(k,": Enabling keepAlive")),s.httpsAgent=new Wt.Agent({keepAlive:!0})):A.logger.warn("Request #".concat(k,": Cannot use custom httpAgent in a browser environment to enable keepAlive"))),A.configuration.paramsSerializer&&(A.logger.debug("Request #".concat(k,": Using custom paramsSerializer")),s.paramsSerializer=A.configuration.paramsSerializer),u&&("string"==typeof u&&0!==u.length||"object"===o(u)&&0!==Object.keys(u).length)&&(s.data=u),h&&(c=Kt.CancelToken,p=c.source(),i=function(){S=!0,p.cancel()},h.addEventListener("abort",i),s.cancelToken=p.token),C?(s.responseType="stream",vn||(s.headers=fn(fn({},s.headers),{},{Accept:"text/event-stream"}))):d&&(s.responseType=d),e.next=2,Kt(s);case 2:if((f=e.sent).status>=1&&f.status<=499&&A.setNodeHealthcheck(r,dn),A.logger.debug("Request #".concat(k,": Request to Node ").concat(r.index," was made. Response Code was ").concat(f.status,".")),!(f.status>=200&&f.status<300)){e.next=4;break}if(!C){e.next=3;break}return e.abrupt("return",{v:A.handleStreamingResponse(f,w)});case 3:return e.abrupt("return",{v:Promise.resolve(f.data)});case 4:if(!(f.status<500)){e.next=5;break}return e.abrupt("return",{v:Promise.reject(A.customErrorForResponse(f,null===(v=f.data)||void 0===v?void 0:v.message,s.data))});case 5:throw A.customErrorForResponse(f,null===(m=f.data)||void 0===m?void 0:m.message,s.data);case 6:e.next=11;break;case 7:if(e.prev=7,E=e.catch(1),S||A.setNodeHealthcheck(r,!1),R=E,A.logger.warn("Request #".concat(k,": Request to Node ").concat(r.index,' failed due to "').concat(null!==(b=null==E?void 0:E.code)&&void 0!==b?b:""," ").concat(E.message).concat(null==E.response?"":" - "+JSON.stringify(null===(O=E.response)||void 0===O?void 0:O.data),'"')),!S){e.next=8;break}return e.abrupt("return",{v:Promise.reject(new Error("Request aborted by caller."))});case 8:if(C&&A.invokeOnErrorCallback(E,w),!(x0){var i=s.split("\n");n.processStreamLines(i,a,t)}n.finalizeStreamResult(a,r,e,t)}),o.on("error",function(e){n.logger.error("Stream error: ".concat(e)),n.invokeOnErrorCallback(e,t),i(e)})})}},{key:"handleBrowserStreaming",value:function(e,t){var n=this;return this.logger.debug("Processing browser stream"),new Promise(function(){var r=S(P().mark(function r(i,a){var s;return P().wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(r.prev=0,!e.data||"function"!=typeof e.data.getReader){r.next=1;break}return r.abrupt("return",n.handleBrowserReadableStream(e.data,i,a,e,t));case 1:if("string"!=typeof e.data){r.next=2;break}return r.abrupt("return",n.handleBrowserStringResponse(e.data,i,e,t));case 2:if("object"!==o(e.data)||null===e.data){r.next=3;break}return n.logger.debug("No stream found, but data object is available"),n.invokeOnCompleteCallback(e.data,t),r.abrupt("return",i(e.data));case 3:return n.logger.error("No usable data found in response"),r.abrupt("return",a(new Error("No usable data found in response")));case 4:r.prev=4,s=r.catch(0),n.logger.error("Error processing streaming response: ".concat(s)),n.invokeOnErrorCallback(s,t),a(s);case 5:case"end":return r.stop()}},r,null,[[0,4]])}));return function(e,t){return r.apply(this,arguments)}}())}},{key:"handleBrowserReadableStream",value:(t=S(P().mark(function e(t,n,r,i,o){var a,s,u,c,l,p,h,f,d,v;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.logger.debug("Found ReadableStream in response.data"),a=t.getReader(),s=[],u="",e.prev=1;case 2:return e.next=3,a.read();case 3:if(c=e.sent,l=c.done,p=c.value,!l){e.next=4;break}return this.logger.debug("Stream reading complete"),u.trim()&&(h=u.split("\n"),this.processStreamLines(h,s,o)),e.abrupt("continue",5);case 4:f=(new TextDecoder).decode(p),this.logger.debug("Received chunk: ".concat(f.length," bytes")),d=(u+=f).split("\n"),u=d.pop()||"",this.processStreamLines(d,s,o),e.next=2;break;case 5:this.finalizeStreamResult(s,n,i,o),e.next=7;break;case 6:e.prev=6,v=e.catch(1),this.logger.error("Stream error: ".concat(v)),this.invokeOnErrorCallback(v,o),r(v);case 7:case"end":return e.stop()}},e,this,[[1,6]])})),function(e,n,r,i,o){return t.apply(this,arguments)})},{key:"handleBrowserStringResponse",value:function(e,t,n,r){this.logger.debug("Processing text response as stream data");var i=[],o=e.split("\n");if(this.processStreamLines(o,i,r),i.length>0){var a=this.combineStreamingChunks(i);this.invokeOnCompleteCallback(a,r),t(a)}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(n.data,r),t(n.data)}},{key:"processStreamLines",value:function(e,t,n){var r,i=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return pn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(o.trim()&&"data: [DONE]"!==o){var a=this.processStreamingLine(o);null!==a&&(this.invokeOnChunkCallback(a,n),t.push(a))}}}catch(e){i.e(e)}finally{i.f()}}},{key:"finalizeStreamResult",value:function(e,t,n,r){if(e.length>0){var i=this.combineStreamingChunks(e);this.logger.debug("Stream processing complete"),this.invokeOnCompleteCallback(i,r),t(i)}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(n.data,r),t(n.data)}},{key:"combineStreamingChunks",value:function(e){if(0===e.length)return{};if(1===e.length)return e[0];var t=this.getMessageChunks(e);if(t.length>0)return this.combineMessageChunks(e,t);var n=e[e.length-1];if(!this.isCompleteSearchResponse(n))throw new Error("Last chunk is not a complete search response");return n}},{key:"getMessageChunks",value:function(e){return e.filter(this.isChunkMessage)}},{key:"isChunkMessage",value:function(e){return"object"===o(e)&&null!==e&&"message"in e&&"conversation_id"in e}},{key:"combineMessageChunks",value:function(e,t){this.logger.debug("Found ".concat(t.length," message chunks to combine"));var n=e[e.length-1];if(this.isCompleteSearchResponse(n))return n;var r=e.find(this.isCompleteSearchResponse);if(!r)throw new Error("No metadata chunk found");return r}},{key:"isCompleteSearchResponse",value:function(e){return"object"===o(e)&&null!==e&&Object.keys(e).length>0&&("results"in e||"found"in e||"hits"in e||"page"in e||"search_time_ms"in e)}},{key:"getNextNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(null!=this.nearestNode){if(this.logger.debug("Request #".concat(e,": Nodes Health: Node ").concat(this.nearestNode.index," is ").concat(!0===this.nearestNode.isHealthy?"Healthy":"Unhealthy")),!0===this.nearestNode.isHealthy||this.nodeDueForHealthcheck(this.nearestNode,e))return this.logger.debug("Request #".concat(e,": Updated current node to Node ").concat(this.nearestNode.index)),this.nearestNode;this.logger.debug("Request #".concat(e,": Falling back to individual nodes"))}this.logger.debug("Request #".concat(e,": Nodes Health: ").concat(this.nodes.map(function(e){return"Node ".concat(e.index," is ").concat(!0===e.isHealthy?"Healthy":"Unhealthy")}).join(" || ")));for(var t=this.nodes[0],n=0;n<=this.nodes.length;n++)if(this.currentNodeIndex=(this.currentNodeIndex+1)%this.nodes.length,!0===(t=this.nodes[this.currentNodeIndex]).isHealthy||this.nodeDueForHealthcheck(t,e))return this.logger.debug("Request #".concat(e,": Updated current node to Node ").concat(t.index)),t;return this.logger.debug("Request #".concat(e,": No healthy nodes were found. Returning the next node, Node ").concat(t.index)),t}},{key:"nodeDueForHealthcheck",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=Date.now()-e.lastAccessTimestamp>1e3*this.healthcheckIntervalSeconds;return n&&this.logger.debug("Request #".concat(t,": Node ").concat(e.index," has exceeded healtcheckIntervalSeconds of ").concat(this.healthcheckIntervalSeconds,". Adding it back into rotation.")),n}},{key:"initializeMetadataForNodes",value:function(){var e=this;null!=this.nearestNode&&(this.nearestNode.index="nearestNode",this.setNodeHealthcheck(this.nearestNode,dn)),this.nodes.forEach(function(t,n){t.index=n,e.setNodeHealthcheck(t,dn)})}},{key:"setNodeHealthcheck",value:function(e,t){e.isHealthy=t,e.lastAccessTimestamp=Date.now()}},{key:"uriFor",value:function(e,t){return null!=t.url?"".concat(t.url).concat(e):"".concat(t.protocol,"://").concat(t.host,":").concat(t.port).concat(t.path).concat(e)}},{key:"defaultHeaders",value:function(){var e={};return this.sendApiKeyAsQueryParam||(e["X-TYPESENSE-API-KEY"]=this.apiKey),e["Content-Type"]="application/json",e}},{key:"timer",value:(e=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e){return setTimeout(e,1e3*t)}));case 1:case"end":return e.stop()}},e)})),function(t){return e.apply(this,arguments)})},{key:"customErrorForResponse",value:function(e,t,n){var r="Request failed with HTTP code ".concat(e.status);return"string"==typeof t&&""!==t.trim()&&(r+=" | Server said: ".concat(t)),new g(r,n,e.status),400===e.status?new $t(r,n,e.status):401===e.status?new Qt(r,n,e.status):404===e.status?new Xt(r,n,e.status):409===e.status?new Zt(r,n,e.status):422===e.status?new tn(r,n,e.status):e.status>=500&&e.status<=599?new rn(r,n,e.status):new an(r,n,e.status)}},{key:"invokeOnChunkCallback",value:function(e,t){if(null!=t&&t.onChunk)try{t.onChunk(e)}catch(e){this.logger.warn("Error in onChunk callback: ".concat(e))}}},{key:"invokeOnCompleteCallback",value:function(e,t){if(null!=t&&t.onComplete)try{t.onComplete(e)}catch(e){this.logger.warn("Error in onComplete callback: ".concat(e))}}},{key:"invokeOnErrorCallback",value:function(e,t){if(null!=t&&t.onError){var n=function(e){if("object"===o(t=e)&&null!==t&&"message"in t&&"string"==typeof t.message)return e;var t;try{return"string"==typeof e?new Error(e):new Error(JSON.stringify(e))}catch(t){return new Error(String(e))}}(e);try{t.onError(n)}catch(e){this.logger.warn("Error in onError callback: ".concat(e))}}}}]);var e,t,n,r,a,s,c,l,p}(),mn="/collections",gn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"create",value:(t=S(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(mn,t,n));case 1:case"end":return e.stop()}},e,this)})),function(e,n){return t.apply(this,arguments)})},{key:"retrieve",value:(e=S(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(mn,t));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}],[{key:"RESOURCEPATH",get:function(){return mn}}]);var e,t}();function bn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(bn=function(){return!!e})()}var wn=function(e){function t(e,n,r){var o,a,s,u;return i(this,t),a=this,u=[e],s=h(s=t),(o=p(a,bn()?Reflect.construct(s,u||[],h(a).constructor):s.apply(a,u))).importResults=n,o.payload=r,o}return d(t,e),u(t)}(g);function Cn(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;rc&&(O=this.responseCache.keys().next().value)&&this.responseCache.delete(O),this.responsePromiseCache.size>c&&(E=this.responsePromiseCache.keys().next().value)&&this.responsePromiseCache.delete(E),e.abrupt("return",S);case 7:case"end":return e.stop()}},e,this)})),function(t,n,r,i){return e.apply(this,arguments)})},{key:"executeRequest",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,a=arguments.length>6?arguments[6]:void 0,s=e[t];switch(t){case"get":return s.call(e,n,r,{abortSignal:null==a?void 0:a.abortSignal,responseType:null==a?void 0:a.responseType,streamConfig:null==a?void 0:a.streamConfig,isStreamingRequest:null==a?void 0:a.isStreamingRequest});case"delete":return s.call(e,n,r);case"post":return s.call(e,n,i,r,o||{},{abortSignal:null==a?void 0:a.abortSignal,responseType:null==a?void 0:a.responseType,streamConfig:null==a?void 0:a.streamConfig,isStreamingRequest:null==a?void 0:a.isStreamingRequest});case"put":case"patch":return s.call(e,n,i,r);default:throw new Error("Unsupported method: ".concat(String(t)))}}}]);var e}(),Rn=["streamConfig"];function Sn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function On(e){for(var t=1;t1&&void 0!==f[1]?f[1]:{}).cacheSearchResultsForSeconds,i=void 0===r?this.configuration.cacheSearchResultsForSeconds:r,o=n.abortSignal,a=void 0===o?null:o,s={},!0===this.configuration.useServerSideSearchCache&&(s.use_cache=!0),u=ln(t),c=u.streamConfig,l=Cn(u,Rn),p=On(On({},s),l),h=!0===p.conversation_stream,e.abrupt("return",this.requestWithCache.perform(this.apiCall,"get",{path:this.endpointPath("search"),queryParams:p,streamConfig:c,abortSignal:a,isStreamingRequest:h},{cacheResponseForSeconds:i}));case 1:case"end":return e.stop()}},e,this)})),function(t){return e.apply(this,arguments)})},{key:"endpointPath",value:function(e){return"".concat(gn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(Pn).concat(void 0===e?"":"/"+e)}}],[{key:"RESOURCEPATH",get:function(){return Pn}}]);var e}();function xn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function An(e){for(var t=1;t1&&void 0!==r[1]?r[1]:{},t){e.next=1;break}throw new Error("No document provided");case 1:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,n));case 2:case"end":return e.stop()}},e,this)})),function(e){return y.apply(this,arguments)})},{key:"upsert",value:(v=S(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=1;break}throw new Error("No document provided");case 1:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,Object.assign({},n,{action:"upsert"})));case 2:case"end":return e.stop()}},e,this)})),function(e){return v.apply(this,arguments)})},{key:"update",value:(f=S(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=1;break}throw new Error("No document provided");case 1:if(null==n.filter_by){e.next=2;break}return e.abrupt("return",this.apiCall.patch(this.endpointPath(),t,Object.assign({},n)));case 2:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,Object.assign({},n,{action:"update"})));case 3:case"end":return e.stop()}},e,this)})),function(e){return f.apply(this,arguments)})},{key:"emplace",value:(l=S(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=1;break}throw new Error("No document provided");case 1:if(null==n.filter_by){e.next=2;break}return e.abrupt("return",this.apiCall.patch(this.endpointPath(),t,Object.assign({},n)));case 2:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,Object.assign({},n,{action:"emplace"})));case 3:case"end":return e.stop()}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"delete",value:(c=S(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(){return c.apply(this,arguments)})},{key:"createMany",value:(s=S(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},this.configuration.logger.warn("createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents"),e.abrupt("return",this.import(t,n));case 1:case"end":return e.stop()}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"import",value:(a=S(P().mark(function e(t){var n,r,i,o,a,s,u=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=An({throwOnFail:!0},u.length>1&&void 0!==u[1]?u[1]:{}),!Array.isArray(t)){e.next=5;break}if(0!==t.length){e.next=1;break}throw new $t("No documents provided");case 1:e.prev=1,r=t.map(function(e){return JSON.stringify(e)}).join("\n"),e.next=4;break;case 2:if(e.prev=2,!((s=e.catch(1))instanceof RangeError&&s.message.includes("Too many properties to enumerate"))){e.next=3;break}throw new Error("".concat(s,"\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n "));case 3:throw new Error(s);case 4:e.next=6;break;case 5:if(!jn(r=t)){e.next=6;break}throw new $t("No documents provided");case 6:return e.next=7,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:n,bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0,enableKeepAlive:!!Nn});case 7:if(i=e.sent,!Array.isArray(t)){e.next=10;break}if(o=i.split("\n").map(function(e){return JSON.parse(e)}),!((a=o.filter(function(e){return!1===e.success})).length>0&&n.throwOnFail)){e.next=8;break}throw new wn("".concat(o.length-a.length," documents imported successfully, ").concat(a.length," documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."),o,{documentsInJSONLFormat:r,options:n,failedItems:a,successCount:o.length-a.length});case 8:return e.abrupt("return",o);case 9:e.next=11;break;case 10:return e.abrupt("return",i);case 11:case"end":return e.stop()}},e,this,[[1,2]])})),function(e){return a.apply(this,arguments)})},{key:"importStream",value:(o=S(P().mark(function e(t){var n,r,i,o,a=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=An({throwOnFail:!0},a.length>1&&void 0!==a[1]?a[1]:{}),e.next=1,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:n,bodyParameters:t,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0,enableKeepAlive:!!Nn});case 1:if(r=e.sent,i=r.split("\n").map(function(e){return JSON.parse(e)}),!((o=i.filter(function(e){return!1===e.success})).length>0&&n.throwOnFail)){e.next=2;break}throw new wn("".concat(i.length-o.length," documents imported successfully, ").concat(o.length," documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."),i,{documentsInJSONLFormat:t,options:n,failedItems:o,successCount:i.length-o.length});case 2:return e.abrupt("return",i);case 3:case"end":return e.stop()}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"export",value:(r=S(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(this.endpointPath("export"),t));case 1:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"exportStream",value:(n=S(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(this.endpointPath("export"),t,{responseType:"stream"}));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})}]);var n,r,o,a,s,c,l,f,v,y}(En);function jn(e){return null==e||""===e||0===e.length}var Un=function(){function e(t,n){i(this,e),this.collectionName=t,this.apiCall=n}return u(e,[{key:"upsert",value:(n=S(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(gn.RESOURCEPATH,"/").concat(this.collectionName).concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/overrides"}}]);var t,n}(),In=function(){return u(function e(t,n,r){i(this,e),this.collectionName=t,this.overrideId=n,this.apiCall=r},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(gn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(Un.RESOURCEPATH,"/").concat(encodeURIComponent(this.overrideId))}}]);var e,t}(),Dn=function(){function e(t,n){i(this,e),this.collectionName=t,this.apiCall=n}return u(e,[{key:"upsert",value:(n=S(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return e.hasWarnedDeprecation||(console.warn("[typesense] 'synonyms' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets ('synonym_sets')."),e.hasWarnedDeprecation=!0),"".concat(gn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/synonyms"}}]);var t,n}();c(Dn,"hasWarnedDeprecation",!1);var qn=function(){function e(t,n,r){i(this,e),this.collectionName=t,this.synonymId=n,this.apiCall=r}return u(e,[{key:"retrieve",value:(n=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return e.hasWarnedDeprecation||(console.warn("[typesense] 'synonym' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets 'synonym_sets'."),e.hasWarnedDeprecation=!0),"".concat(gn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(Dn.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymId))}}]);var t,n}();c(qn,"hasWarnedDeprecation",!1);var Fn=function(){return u(function e(t,n,r){i(this,e),this.collectionName=t,this.documentId=n,this.apiCall=r},[{key:"retrieve",value:(n=S(P().mark(function e(t){var n;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=ln(null!=t?t:{}),e.abrupt("return",this.apiCall.get(this.endpointPath(),n));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"delete",value:(t=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"update",value:(e=S(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.apiCall.patch(this.endpointPath(),t,n));case 1:case"end":return e.stop()}},e,this)})),function(t){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(gn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(_n.RESOURCEPATH,"/").concat(encodeURIComponent(this.documentId))}}]);var e,t,n}(),Ln=function(){return u(function e(t,n,r){i(this,e),c(this,"individualDocuments",{}),c(this,"individualOverrides",{}),c(this,"individualSynonyms",{}),this.name=t,this.apiCall=n,this.configuration=r,this.name=t,this.apiCall=n,this.configuration=r,this._documents=new _n(this.name,this.apiCall,this.configuration),this._overrides=new Un(this.name,this.apiCall),this._synonyms=new Dn(this.name,this.apiCall)},[{key:"retrieve",value:(r=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"update",value:(n=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.patch(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"delete",value:(t=S(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"exists",value:(e=S(P().mark(function e(){var t;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=1,this.retrieve();case 1:return e.abrupt("return",!0);case 2:if(e.prev=2,!((t=e.catch(0))instanceof Xt)){e.next=3;break}return e.abrupt("return",!1);case 3:throw t;case 4:case"end":return e.stop()}},e,this,[[0,2]])})),function(){return e.apply(this,arguments)})},{key:"documents",value:function(e){return e?(void 0===this.individualDocuments[e]&&(this.individualDocuments[e]=new Fn(this.name,e,this.apiCall)),this.individualDocuments[e]):this._documents}},{key:"overrides",value:function(e){return void 0===e?this._overrides:(void 0===this.individualOverrides[e]&&(this.individualOverrides[e]=new In(this.name,e,this.apiCall)),this.individualOverrides[e])}},{key:"synonyms",value:function(e){return void 0===e?this._synonyms:(void 0===this.individualSynonyms[e]&&(this.individualSynonyms[e]=new qn(this.name,e,this.apiCall)),this.individualSynonyms[e])}},{key:"endpointPath",value:function(){return"".concat(gn.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t,n,r}(),Hn="/aliases",Bn=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"upsert",value:(n=S(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(Hn));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH,"/").concat(encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return Hn}}]);var t,n}(),Mn=function(){return u(function e(t,n){i(this,e),this.name=t,this.apiCall=n},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Bn.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t}(),Kn=n(612),zn="/keys",Wn=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"create",value:(n=S(P().mark(function t(n){return P().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.apiCall.post(e.RESOURCEPATH,n));case 1:case"end":return t.stop()}},t,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(zn));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"generateScopedSearchKey",value:function(e,t){var n=ln(t),r=JSON.stringify(n),i=Buffer.from((0,Kn.createHmac)("sha256",e).update(r).digest("base64")),o=e.substr(0,4),a="".concat(i).concat(o).concat(r);return Buffer.from(a).toString("base64")}}],[{key:"RESOURCEPATH",get:function(){return zn}}]);var t,n}(),Jn=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Wn.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t}(),$n=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"retrieve",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/debug"));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e}(),Vn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"retrieve",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/metrics.json"));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e}(),Qn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"retrieve",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/stats.json"));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e}(),Gn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"retrieve",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/health"));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e}(),Xn="/operations",Yn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"perform",value:(t=S(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.apiCall.post("".concat(Xn,"/").concat(t),{},n));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"getSchemaChanges",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("".concat(Xn,"/schema_changes")));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e,t}(),Zn=["streamConfig"];function er(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tr(e){for(var t=1;t2&&void 0!==arguments[2]&&arguments[2];i(this,e),this.apiCall=t,this.configuration=n,this.useTextContentType=r,this.requestWithCache=new kn,this.logger=this.apiCall.logger},[{key:"clearCache",value:function(){this.requestWithCache.clearCache()}},{key:"perform",value:(e=S(P().mark(function e(t,n,r){var i,o,a,s,u,c,l;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=n?tr({},n):{},a=null!==(i=null==r?void 0:r.cacheSearchResultsForSeconds)&&void 0!==i?i:this.configuration.cacheSearchResultsForSeconds,!0===this.configuration.useServerSideSearchCache&&(o.use_cache=!0),!0===t.union&&this.hasAnySearchObjectPagination(t)&&this.logger.warn("Individual `searches` pagination parameters are ignored when `union: true` is set. Use a top-level pagination parameter instead. See https://typesense.org/docs/29.0/api/federated-multi-search.html#union-search"),s={union:t.union,searches:t.searches.map(ln)},u=o.streamConfig,c=Cn(o,Zn),l=ln(c),e.abrupt("return",this.requestWithCache.perform(this.apiCall,"post",{path:"/multi_search",body:s,queryParams:l,headers:this.useTextContentType?{"content-type":"text/plain"}:{},streamConfig:u,abortSignal:null==r?void 0:r.abortSignal,isStreamingRequest:this.isStreamingRequest(o)},void 0!==a?{cacheResponseForSeconds:a}:void 0));case 1:case"end":return e.stop()}},e,this)})),function(t,n,r){return e.apply(this,arguments)})},{key:"isStreamingRequest",value:function(e){return void 0!==e.streamConfig}},{key:"hasAnySearchObjectPagination",value:function(e){return e.searches.some(function(e){return void 0!==e.page||void 0!==e.per_page||void 0!==e.offset||void 0!==e.limit||void 0!==e.limit_hits})}}]);var e}(),rr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"upsert",value:(n=S(P().mark(function e(t,n){var r,i;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("object"!==o(n.value)||!("searches"in n.value)){e.next=1;break}return r=n.value.searches.map(function(e){return ln(e)}),e.abrupt("return",this.apiCall.put(this.endpointPath(t),{value:{searches:r}}));case 1:return i=ln(n.value),e.abrupt("return",this.apiCall.put(this.endpointPath(t),{value:i}));case 2:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/presets"}}]);var t,n}(),ir=function(){return u(function e(t,n){i(this,e),this.presetId=t,this.apiCall=n},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(rr.RESOURCEPATH,"/").concat(encodeURIComponent(this.presetId))}}]);var e,t}(),or=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"upsert",value:(n=S(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/analytics/rules"}}]);var t,n}(),ar=function(){return u(function e(t,n){i(this,e),this.name=t,this.apiCall=n},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(or.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t}(),sr=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"create",value:(n=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/analytics/events"}}]);var t,n}(),ur=function(){function e(t){i(this,e),c(this,"individualAnalyticsRules",{}),this.apiCall=t,this.apiCall=t,this._analyticsRules=new or(this.apiCall),this._analyticsEvents=new sr(this.apiCall)}return u(e,[{key:"rules",value:function(t){return e.hasWarnedDeprecation||(console.warn("[typesense] 'analyticsV1' is deprecated starting with Typesense Server v30 and will be removed in a future release. Please use 'analytics' instead."),e.hasWarnedDeprecation=!0),void 0===t?this._analyticsRules:(void 0===this.individualAnalyticsRules[t]&&(this.individualAnalyticsRules[t]=new ar(t,this.apiCall)),this.individualAnalyticsRules[t])}},{key:"events",value:function(){return this._analyticsEvents}}],[{key:"RESOURCEPATH",get:function(){return"/analytics"}}])}();c(ur,"hasWarnedDeprecation",!1);var cr=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"create",value:(r=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,{},{}));case 1:case"end":return e.stop()}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"upsert",value:(n=S(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(t){var n;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n={},t&&(n.rule_tag=t),e.abrupt("return",this.apiCall.get(this.endpointPath(),n));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/analytics/rules"}}]);var t,n,r}(),lr=function(){return u(function e(t,n){i(this,e),this.name=t,this.apiCall=n},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(cr.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t}(),pr=function(){return u(function e(t){i(this,e),c(this,"individualAnalyticsRules",{}),this.apiCall=t,this.apiCall=t,this._analyticsRules=new cr(this.apiCall),this._analyticsEvents=new sr(this.apiCall)},[{key:"rules",value:function(e){return void 0===e?this._analyticsRules:(void 0===this.individualAnalyticsRules[e]&&(this.individualAnalyticsRules[e]=new lr(e,this.apiCall)),this.individualAnalyticsRules[e])}},{key:"events",value:function(){return this._analyticsEvents}}],[{key:"RESOURCEPATH",get:function(){return"/analytics"}}])}(),hr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"upsert",value:(n=S(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/stopwords"}}]);var t,n}(),fr=function(){return u(function e(t,n){i(this,e),this.stopwordId=t,this.apiCall=n},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(hr.RESOURCEPATH,"/").concat(encodeURIComponent(this.stopwordId))}}]);var e,t}(),dr=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"create",value:(n=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/conversations/models"}}]);var t,n}(),vr=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"update",value:(n=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(dr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t,n}(),yr="/conversations",mr=function(){return u(function e(t){i(this,e),c(this,"individualConversationModels",{}),this.apiCall=t,this.apiCall=t,this._conversationsModels=new dr(this.apiCall)},[{key:"retrieve",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(yr));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"models",value:function(e){return void 0===e?this._conversationsModels:(void 0===this.individualConversationModels[e]&&(this.individualConversationModels[e]=new vr(e,this.apiCall)),this.individualConversationModels[e])}}],[{key:"RESOURCEPATH",get:function(){return yr}}]);var e}(),gr=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"retrieve",value:(n=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"update",value:(t=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(mr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t,n}(),br=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"upsert",value:(n=S(P().mark(function e(t,n){var r,i;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=Array.isArray(n)?n.map(function(e){return JSON.stringify(e)}).join("\n"):n,e.next=1,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:{id:t},bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0});case 1:return i=e.sent,e.abrupt("return",Array.isArray(n)?i.split("\n").map(function(e){return JSON.parse(e)}):i);case 2:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return void 0===t?"".concat(e.RESOURCEPATH):"".concat(e.RESOURCEPATH,"/").concat(encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/stemming/dictionaries"}}]);var t,n}(),wr=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(br.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t}(),Cr=function(){return u(function e(t){i(this,e),c(this,"individualStemmingDictionaries",{}),this.apiCall=t,this.apiCall=t,this._stemmingDictionaries=new br(this.apiCall)},[{key:"dictionaries",value:function(e){return void 0===e?this._stemmingDictionaries:(void 0===this.individualStemmingDictionaries[e]&&(this.individualStemmingDictionaries[e]=new wr(e,this.apiCall)),this.individualStemmingDictionaries[e])}}],[{key:"RESOURCEPATH",get:function(){return"/stemming"}}])}(),kr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"create",value:(n=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return e.RESOURCEPATH}}],[{key:"RESOURCEPATH",get:function(){return"/nl_search_models"}}]);var t,n}(),Rr=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"retrieve",value:(n=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"update",value:(t=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(kr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t,n}(),Sr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"retrieve",value:(t=S(P().mark(function t(){return P().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.apiCall.get(e.RESOURCEPATH));case 1:case"end":return t.stop()}},t,this)})),function(){return t.apply(this,arguments)})}]);var t}();c(Sr,"RESOURCEPATH","/synonym_sets");var Or=function(){return u(function e(t,n){i(this,e),this.synonymSetName=t,this.apiCall=n},[{key:"upsert",value:(t=S(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,n){return t.apply(this,arguments)})},{key:"retrieve",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(e){return"".concat(Sr.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymSetName),"/items").concat(void 0===e?"":"/"+encodeURIComponent(e))}}]);var e,t}(),Pr=function(){return u(function e(t,n,r){i(this,e),this.synonymSetName=t,this.itemId=n,this.apiCall=r},[{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Sr.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymSetName),"/items/").concat(encodeURIComponent(this.itemId))}}]);var e,t}(),Er=function(){return u(function e(t,n){i(this,e),c(this,"individualItems",{}),this.synonymSetName=t,this.apiCall=n,this._items=new Or(this.synonymSetName,n)},[{key:"upsert",value:(n=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"items",value:function(e){return void 0===e?this._items:(void 0===this.individualItems[e]&&(this.individualItems[e]=new Pr(this.synonymSetName,e,this.apiCall)),this.individualItems[e])}},{key:"endpointPath",value:function(){return"".concat(Sr.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymSetName))}}]);var e,t,n}(),xr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"retrieve",value:(t=S(P().mark(function t(){return P().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.apiCall.get(e.RESOURCEPATH));case 1:case"end":return t.stop()}},t,this)})),function(){return t.apply(this,arguments)})}]);var t}();c(xr,"RESOURCEPATH","/curation_sets");var Ar=function(){return u(function e(t,n){i(this,e),this.name=t,this.apiCall=n},[{key:"retrieve",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(e){return"".concat(xr.RESOURCEPATH,"/").concat(encodeURIComponent(this.name),"/items").concat(void 0===e?"":"/"+encodeURIComponent(e))}}]);var e}(),Tr=function(){return u(function e(t,n,r){i(this,e),this.name=t,this.itemId=n,this.apiCall=r},[{key:"retrieve",value:(n=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"upsert",value:(t=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(xr.RESOURCEPATH,"/").concat(encodeURIComponent(this.name),"/items/").concat(encodeURIComponent(this.itemId))}}]);var e,t,n}(),Nr=function(){return u(function e(t,n){i(this,e),c(this,"individualItems",{}),this.name=t,this.apiCall=n,this._items=new Ar(this.name,n)},[{key:"upsert",value:(n=S(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=S(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"items",value:function(e){return void 0===e?this._items:(void 0===this.individualItems[e]&&(this.individualItems[e]=new Tr(this.name,e,this.apiCall)),this.individualItems[e])}},{key:"endpointPath",value:function(){return"".concat(xr.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t,n}(),_r=function(){return u(function e(t){var n;i(this,e),t.sendApiKeyAsQueryParam=null!==(n=t.sendApiKeyAsQueryParam)&&void 0!==n&&n,this.configuration=new k(t),this.apiCall=new yn(this.configuration),this.debug=new $n(this.apiCall),this.metrics=new Vn(this.apiCall),this.stats=new Qn(this.apiCall),this.health=new Gn(this.apiCall),this.operations=new Yn(this.apiCall),this.multiSearch=new nr(this.apiCall,this.configuration),this._collections=new gn(this.apiCall),this.individualCollections={},this._aliases=new Bn(this.apiCall),this.individualAliases={},this._keys=new Wn(this.apiCall),this.individualKeys={},this._presets=new rr(this.apiCall),this.individualPresets={},this._stopwords=new hr(this.apiCall),this.individualStopwords={},this.analytics=new pr(this.apiCall),this.analyticsV1=new ur(this.apiCall),this.stemming=new Cr(this.apiCall),this._conversations=new mr(this.apiCall),this.individualConversations={},this._nlSearchModels=new kr(this.apiCall),this.individualNLSearchModels={},this._synonymSets=new Sr(this.apiCall),this.individualSynonymSets={},this._curationSets=new xr(this.apiCall),this.individualCurationSets={}},[{key:"collections",value:function(e){return void 0===e?this._collections:(void 0===this.individualCollections[e]&&(this.individualCollections[e]=new Ln(e,this.apiCall,this.configuration)),this.individualCollections[e])}},{key:"aliases",value:function(e){return void 0===e?this._aliases:(void 0===this.individualAliases[e]&&(this.individualAliases[e]=new Mn(e,this.apiCall)),this.individualAliases[e])}},{key:"keys",value:function(e){return void 0===e?this._keys:(void 0===this.individualKeys[e]&&(this.individualKeys[e]=new Jn(e,this.apiCall)),this.individualKeys[e])}},{key:"presets",value:function(e){return void 0===e?this._presets:(void 0===this.individualPresets[e]&&(this.individualPresets[e]=new ir(e,this.apiCall)),this.individualPresets[e])}},{key:"stopwords",value:function(e){return void 0===e?this._stopwords:(void 0===this.individualStopwords[e]&&(this.individualStopwords[e]=new fr(e,this.apiCall)),this.individualStopwords[e])}},{key:"conversations",value:function(e){return void 0===e?this._conversations:(void 0===this.individualConversations[e]&&(this.individualConversations[e]=new gr(e,this.apiCall)),this.individualConversations[e])}},{key:"nlSearchModels",value:function(e){return void 0===e?this._nlSearchModels:(void 0===this.individualNLSearchModels[e]&&(this.individualNLSearchModels[e]=new Rr(e,this.apiCall)),this.individualNLSearchModels[e])}},{key:"synonymSets",value:function(e){return void 0===e?this._synonymSets:(void 0===this.individualSynonymSets[e]&&(this.individualSynonymSets[e]=new Er(e,this.apiCall)),this.individualSynonymSets[e])}},{key:"curationSets",value:function(e){return void 0===e?this._curationSets:(void 0===this.individualCurationSets[e]&&(this.individualCurationSets[e]=new Nr(e,this.apiCall)),this.individualCurationSets[e])}}])}();function jr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n2e3&&(console.warn("[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter."),t.sendApiKeyAsQueryParam=!1),this.configuration=new k(t),this.apiCall=new yn(this.configuration),this.multiSearch=new nr(this.apiCall,this.configuration,!0),this.individualCollections={}},[{key:"clearCache",value:function(){this.multiSearch.clearCache(),Object.entries(this.individualCollections).forEach(function(e){var t,n,r=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);u=!0);}catch(e){c=!0,i=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,n)||function(e,t){if(e){if("string"==typeof e)return jr(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?jr(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());r[0],r[1].documents().clearCache()})}},{key:"collections",value:function(e){if(e)return void 0===this.individualCollections[e]&&(this.individualCollections[e]=new Ur(e,this.apiCall,this.configuration)),this.individualCollections[e];throw new Error("Typesense.SearchClient only supports search operations, so the collectionName that needs to be searched must be specified. Use Typesense.Client if you need to access the collection object.")}}])}();const Dr={Client:_r,SearchClient:Ir,Errors:t}})(),Typesense=r})(); +var Typesense;(()=>{var e={363(e,t,n){var r,i;!function(){"use strict";r=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],i={},o=null;function a(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function u(){for(var n=this.getLevel(),i=0;i=0&&t<=p.levels.SILENT)return t;throw new TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?h+=":"+e:"symbol"==typeof e&&(h=void 0),p.name=e,p.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},p.methodFactory=n||l,p.getLevel=function(){return null!=c?c:null!=s?s:a},p.setLevel=function(e,n){return c=d(e),!1!==n&&function(e){var n=(r[e]||"silent").toUpperCase();if(typeof window!==t&&h){try{return void(window.localStorage[h]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(e){}}}(c),u.call(p)},p.setDefaultLevel=function(e){s=d(e),f()||p.setLevel(e,!1)},p.resetLevel=function(){c=null,function(){if(typeof window!==t&&h){try{window.localStorage.removeItem(h)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}(),u.call(p)},p.enableAll=function(e){p.setLevel(p.levels.TRACE,e)},p.disableAll=function(e){p.setLevel(p.levels.SILENT,e)},p.rebuild=function(){if(o!==p&&(a=d(o.getLevel())),u.call(p),o===p)for(var e in i)i[e].rebuild()},a=d(o?o.getLevel():"WARN");var y=f();null!=y&&(c=d(y)),u.call(p)}(o=new p).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=i[e];return t||(t=i[e]=new p(e,o.methodFactory)),t};var h=typeof window!==t?window.log:void 0;return o.noConflict=function(){return typeof window!==t&&window.log===o&&(window.log=h),o},o.getLoggers=function(){return i},o.default=o,o},void 0===(i=r.call(t,n,t,e))||(e.exports=i)}()},612(){},939(){},82(){},125(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},544(e,t,n){var r=n(431);function i(){var t,n,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",s=o.toStringTag||"@@toStringTag";function u(e,i,o,a){var s=i&&i.prototype instanceof l?i:l,u=Object.create(s.prototype);return r(u,"_invoke",function(e,r,i){var o,a,s,u=0,l=i||[],p=!1,h={p:0,n:0,v:t,a:f,f:f.bind(t,4),d:function(e,n){return o=e,a=0,s=t,h.n=n,c}};function f(e,r){for(a=e,s=r,n=0;!p&&u&&!i&&n3?(i=d===r)&&(s=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=t):o[0]<=f&&((i=e<2&&fr||r>d)&&(o[4]=e,o[5]=r,h.n=d,a=0))}if(i||e>1)return c;throw p=!0,r}return function(i,l,d){if(u>1)throw TypeError("Generator is already running");for(p&&1===l&&f(l,d),a=l,s=d;(n=a<2?t:s)||!p;){o||(a?a<3?(a>1&&(h.n=-1),f(a,s)):h.n=s:h.v=s);try{if(u=2,o){if(a||(i="next"),n=o[i]){if(!(n=n.call(o,s)))throw TypeError("iterator result is not an object");if(!n.done)return n;s=n.value,a<2&&(a=0)}else 1===a&&(n=o.return)&&n.call(o),a<2&&(s=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=t}else if((n=(p=h.n<0)?s:e.call(r,h))!==c)break}catch(e){o=t,a=1,s=e}finally{u=1}}return{value:n,done:p}}}(e,o,a),!0),u}var c={};function l(){}function p(){}function h(){}n=Object.getPrototypeOf;var f=[][a]?n(n([][a]())):(r(n={},a,function(){return this}),n),d=h.prototype=l.prototype=Object.create(f);function y(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,r(e,s,"GeneratorFunction")),e.prototype=Object.create(d),e}return p.prototype=h,r(d,"constructor",h),r(h,"constructor",p),p.displayName="GeneratorFunction",r(h,s,"GeneratorFunction"),r(d),r(d,s,"Generator"),r(d,a,function(){return this}),r(d,"toString",function(){return"[object Generator]"}),(e.exports=i=function(){return{w:u,m:y}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},806(e,t,n){var r=n(158);e.exports=function(e,t,n,i,o){var a=r(e,t,n,i,o);return a.next().then(function(e){return e.done?e.value:a.next()})},e.exports.__esModule=!0,e.exports.default=e.exports},158(e,t,n){var r=n(544),i=n(892);e.exports=function(e,t,n,o,a){return new i(r().w(e,t,n,o),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},892(e,t,n){var r=n(125),i=n(431);e.exports=function e(t,n){function o(e,i,a,s){try{var u=t[e](i),c=u.value;return c instanceof r?n.resolve(c.v).then(function(e){o("next",e,a,s)},function(e){o("throw",e,a,s)}):n.resolve(c).then(function(e){u.value=e,a(u)},function(e){return o("throw",e,a,s)})}catch(e){s(e)}}var a;this.next||(i(e.prototype),i(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),i(this,"_invoke",function(e,t,r){function i(){return new n(function(t,n){o(e,r,t,n)})}return a=a?a.then(i,i):i()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports},431(e){function t(n,r,i,o){var a=Object.defineProperty;try{a({},"",{})}catch(n){a=0}e.exports=t=function(e,n,r,i){function o(n,r){t(e,n,function(e){return this._invoke(n,r,e)})}n?a?a(e,n,{value:r,enumerable:!i,configurable:!i,writable:!i}):e[n]=r:(o("next",0),o("throw",1),o("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,i,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},344(e){e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},902(e,t,n){var r=n(125),i=n(544),o=n(806),a=n(158),s=n(892),u=n(344),c=n(50);function l(){"use strict";var t=i(),n=t.m(l),p=(Object.getPrototypeOf?Object.getPrototypeOf(n):n.__proto__).constructor;function h(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function d(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,f[e],t)},delegateYield:function(e,i,o){return t.resultName=i,n(r.d,c(e),o)},finish:function(e){return n(r.f,e)}},n=function(e,n,i){r.p=t.prev,r.n=t.next;try{return e(n,i)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=l=function(){return{wrap:function(e,n,r,i){return t.w(d(e),n,r,i&&i.reverse())},isGeneratorFunction:h,mark:t.m,awrap:function(e,t){return new r(e,t)},AsyncIterator:s,async:function(e,t,n,r,i){return(h(t)?a:o)(d(e),t,n,r,i)},keys:u,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=l,e.exports.__esModule=!0,e.exports.default=e.exports},50(e,t,n){var r=n(285).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(r(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},285(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},853(e,t,n){var r=n(902)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{Client:()=>Tr,Errors:()=>t,SearchClient:()=>Ur,default:()=>Dr});var e={};n.r(e),n.d(e,{hasBrowserEnv:()=>We,hasStandardBrowserEnv:()=>$e,hasStandardBrowserWebWorkerEnv:()=>Ve,navigator:()=>Je,origin:()=>Qe});var t={};function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function a(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}function s(e,t){for(var n=0;non,ImportError:()=>bn,MissingConfigurationError:()=>w,ObjectAlreadyExists:()=>Yt,ObjectNotFound:()=>Gt,ObjectUnprocessable:()=>en,RequestMalformed:()=>Jt,RequestUnauthorized:()=>Vt,ServerError:()=>nn,TypesenseError:()=>g});var l=n(363);function p(e,t){if(t&&("object"==o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}function f(e,t){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},f(e,t)}function d(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(y=function(){return!!e})()}function v(e){var t="function"==typeof Map?new Map:void 0;return v=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(y())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&f(i,n.prototype),i}(e,arguments,h(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,e)},v(e)}function m(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(m=function(){return!!e})()}var g=function(e){function t(e,n,r){var o,a,s,u;return i(this,t),a=this,u=[e],s=h(s=t),(o=p(a,m()?Reflect.construct(s,u||[],h(a).constructor):s.apply(a,u))).name=(this instanceof t?this.constructor:void 0).name,o.httpBody=n,o.httpStatus=r,Object.setPrototypeOf(o,(this instanceof t?this.constructor:void 0).prototype),o}return d(t,e),u(t)}(v(Error));function b(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(b=function(){return!!e})()}var w=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,b()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var k=function(){return u(function e(t){var n=this;i(this,e),this.nodes=t.nodes||[],this.nodes=this.nodes.map(function(e){return n.setDefaultPathInNode(e)}).map(function(e){return n.setDefaultPortInNode(e)}).map(function(e){return function(e){for(var t=1;t=0?t.numRetries:this.nodes.length+(null==this.nearestNode?0:1))||3,this.retryIntervalSeconds=t.retryIntervalSeconds||.1,this.apiKey=t.apiKey,this.sendApiKeyAsQueryParam=t.sendApiKeyAsQueryParam,this.cacheSearchResultsForSeconds=t.cacheSearchResultsForSeconds||0,this.useServerSideSearchCache=t.useServerSideSearchCache||!1,this.axiosAdapter=t.axiosAdapter,this.logger=t.logger||l,this.logLevel=t.logLevel||"warn",this.logger.setLevel(this.logLevel),this.additionalHeaders=t.additionalHeaders,this.httpAgent=t.httpAgent,this.httpsAgent=t.httpsAgent,this.paramsSerializer=t.paramsSerializer,this.showDeprecationWarnings(t),this.validate()},[{key:"validate",value:function(){if(null==this.nodes||0===this.nodes.length||this.validateNodes())throw new w("Ensure that nodes[].protocol, nodes[].host and nodes[].port are set");if(null!=this.nearestNode&&this.isNodeMissingAnyParameters(this.nearestNode))throw new w("Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set");if(null==this.apiKey)throw new w("Ensure that apiKey is set");return!0}},{key:"validateNodes",value:function(){var e=this;return this.nodes.some(function(t){return e.isNodeMissingAnyParameters(t)})}},{key:"isNodeMissingAnyParameters",value:function(e){return!["protocol","host","port","path"].every(function(t){return e.hasOwnProperty(t)})&&null==e.url}},{key:"setDefaultPathInNode",value:function(e){return null==e||e.hasOwnProperty("path")||(e.path=""),e}},{key:"setDefaultPortInNode",value:function(e){if(null!=e&&!e.hasOwnProperty("port")&&e.hasOwnProperty("protocol"))switch(e.protocol){case"https":e.port=443;break;case"http":e.port=80}return e}},{key:"showDeprecationWarnings",value:function(e){e.timeoutSeconds&&this.logger.warn("Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds"),e.masterNode&&this.logger.warn("Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12"),e.readReplicaNodes&&this.logger.warn("Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12")}},{key:"shuffleArray",value:function(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(Math.random()*(t+1)),r=[e[n],e[t]];e[t]=r[0],e[n]=r[1]}}}])}();function R(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function O(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function a(e){R(o,r,i,a,s,"next",e)}function s(e){R(o,r,i,a,s,"throw",e)}a(void 0)})}}var S=n(853),P=n.n(S);function E(e,t){return function(){return e.apply(t,arguments)}}const{toString:x}=Object.prototype,{getPrototypeOf:A}=Object,{iterator:_,toStringTag:T}=Symbol,N=(j=Object.create(null),e=>{const t=x.call(e);return j[t]||(j[t]=t.slice(8,-1).toLowerCase())});var j;const U=e=>(e=e.toLowerCase(),t=>N(t)===e),D=e=>t=>typeof t===e,{isArray:I}=Array,q=D("undefined");function L(e){return null!==e&&!q(e)&&null!==e.constructor&&!q(e.constructor)&&H(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const F=U("ArrayBuffer"),B=D("string"),H=D("function"),M=D("number"),z=e=>null!==e&&"object"==typeof e,K=e=>{if("object"!==N(e))return!1;const t=A(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||T in e||_ in e)},W=U("Date"),J=U("File"),$=U("Blob"),V=U("FileList"),Q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{},G=void 0!==Q.FormData?Q.FormData:void 0,X=U("URLSearchParams"),[Y,Z,ee,te]=["ReadableStream","Request","Response","Headers"].map(U);function ne(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),I(e))for(r=0,i=e.length;r0;)if(r=n[i],t===r.toLowerCase())return r;return null}const ie="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:n.g,oe=e=>!q(e)&&e!==ie,ae=(se="undefined"!=typeof Uint8Array&&A(Uint8Array),e=>se&&e instanceof se);var se;const ue=U("HTMLFormElement"),ce=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),le=U("RegExp"),pe=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};ne(n,(n,i)=>{let o;!1!==(o=t(n,i,e))&&(r[i]=o||n)}),Object.defineProperties(e,r)},he=U("AsyncFunction"),fe=(de="function"==typeof setImmediate,ye=H(ie.postMessage),de?setImmediate:ye?(ve=`axios@${Math.random()}`,me=[],ie.addEventListener("message",({source:e,data:t})=>{e===ie&&t===ve&&me.length&&me.shift()()},!1),e=>{me.push(e),ie.postMessage(ve,"*")}):e=>setTimeout(e));var de,ye,ve,me;const ge="undefined"!=typeof queueMicrotask?queueMicrotask.bind(ie):"undefined"!=typeof process&&process.nextTick||fe,be={isArray:I,isArrayBuffer:F,isBuffer:L,isFormData:e=>{if(!e)return!1;if(G&&e instanceof G)return!0;const t=A(e);if(!t||t===Object.prototype)return!1;if(!H(e.append))return!1;const n=N(e);return"formdata"===n||"object"===n&&H(e.toString)&&"[object FormData]"===e.toString()},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&F(e.buffer),t},isString:B,isNumber:M,isBoolean:e=>!0===e||!1===e,isObject:z,isPlainObject:K,isEmptyObject:e=>{if(!z(e)||L(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:Y,isRequest:Z,isResponse:ee,isHeaders:te,isUndefined:q,isDate:W,isFile:J,isReactNativeBlob:e=>!(!e||void 0===e.uri),isReactNative:e=>e&&void 0!==e.getParts,isBlob:$,isRegExp:le,isFunction:H,isStream:e=>z(e)&&H(e.pipe),isURLSearchParams:X,isTypedArray:ae,isFileList:V,forEach:ne,merge:function e(...t){const{caseless:n,skipUndefined:r}=oe(this)&&this||{},i={},o=(t,o)=>{if("__proto__"===o||"constructor"===o||"prototype"===o)return;const a=n&&re(i,o)||o,s=ce(i,a)?i[a]:void 0;K(s)&&K(t)?i[a]=e(s,t):K(t)?i[a]=e({},t):I(t)?i[a]=t.slice():r&&q(t)||(i[a]=t)};for(let e=0,n=t.length;e(ne(t,(t,r)=>{n&&H(t)?Object.defineProperty(e,r,{__proto__:null,value:E(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,o,a;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),o=i.length;o-- >0;)a=i[o],r&&!r(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==n&&A(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:N,kindOfTest:U,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(I(e))return e;let t=e.length;if(!M(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[_]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:ue,hasOwnProperty:ce,hasOwnProp:ce,reduceDescriptors:pe,freezeMethods:e=>{pe(e,(t,n)=>{if(H(e)&&["arguments","caller","callee"].includes(n))return!1;const r=e[n];H(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach(e=>{n[e]=!0})};return I(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:re,global:ie,isContextDefined:oe,isSpecCompliantForm:function(e){return!!(e&&H(e.append)&&"FormData"===e[T]&&e[_])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(z(e)){if(t.indexOf(e)>=0)return;if(L(e))return e;if(!("toJSON"in e)){t[r]=e;const i=I(e)?[]:{};return ne(e,(e,t)=>{const o=n(e,r+1);!q(o)&&(i[t]=o)}),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:he,isThenable:e=>e&&(z(e)||H(e))&&H(e.then)&&H(e.catch),setImmediate:fe,asap:ge,isIterable:e=>null!=e&&H(e[_])},we=be.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ce=e=>{const t={};let n,r,i;return e&&e.split("\n").forEach(function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&we[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t};(Object.getOwnPropertyDescriptor(Ce,"name")||{}).writable||Object.defineProperty(Ce,"name",{value:"default",configurable:!0});const ke=Symbol("internals"),Re=/[^\x09\x20-\x7E\x80-\xFF]/g;function Oe(e){return e&&String(e).trim().toLowerCase()}function Se(e){return!1===e||null==e?e:be.isArray(e)?e.map(Se):function(e){let t=0,n=e.length;for(;tt;){const t=e.charCodeAt(n-1);if(9!==t&&32!==t)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}(String(e).replace(Re,""))}function Pe(e,t,n,r,i){return be.isFunction(r)?r.call(this,t,n):(i&&(t=n),be.isString(t)?be.isString(r)?-1!==t.indexOf(r):be.isRegExp(r)?r.test(t):void 0:void 0)}class Ee{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=Oe(t);if(!i)throw new Error("header name must be a non-empty string");const o=be.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||t]=Se(e))}const o=(e,t)=>be.forEach(e,(e,n)=>i(e,n,t));if(be.isPlainObject(e)||e instanceof this.constructor)o(e,t);else if(be.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))o(Ce(e),t);else if(be.isObject(e)&&be.isIterable(e)){let n,r,i={};for(const t of e){if(!be.isArray(t))throw TypeError("Object iterator must return a key-value pair");i[r=t[0]]=(n=i[r])?be.isArray(n)?[...n,t[1]]:[n,t[1]]:t[1]}o(i,t)}else null!=e&&i(t,e,n);return this}get(e,t){if(e=Oe(e)){const n=be.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(be.isFunction(t))return t.call(this,e,n);if(be.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Oe(e)){const n=be.findKey(this,e);return!(!n||void 0===this[n]||t&&!Pe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=Oe(e)){const i=be.findKey(n,e);!i||t&&!Pe(0,n[i],i,t)||(delete n[i],r=!0)}}return be.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!Pe(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return be.forEach(this,(r,i)=>{const o=be.findKey(n,i);if(o)return t[o]=Se(r),void delete t[i];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(i):String(i).trim();a!==i&&delete t[i],t[a]=Se(r),n[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return be.forEach(this,(n,r)=>{null!=n&&!1!==n&&(t[r]=e&&be.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[ke]=this[ke]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Oe(e);t[r]||(function(e,t){const n=be.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}(n,e),t[r]=!0)}return be.isArray(e)?e.forEach(r):r(e),this}}Ee.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),be.reduceDescriptors(Ee.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),be.freezeMethods(Ee);const xe=Ee;class Ae extends Error{static from(e,t,n,r,i,o){const a=new Ae(e.message,t||e.code,n,r,i);return a.cause=e,a.name=e.name,null!=e.status&&null==a.status&&(a.status=e.status),o&&Object.assign(a,o),a}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){const e=this.config,t=e&&be.hasOwnProp(e,"redact")?e.redact:void 0,n=be.isArray(t)&&t.length>0?function(e,t){const n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(null===e||"object"!=typeof e)return e;if(be.isBuffer(e))return e;if(-1!==r.indexOf(e))return;let t;if(e instanceof xe&&(e=e.toJSON()),r.push(e),be.isArray(e))t=[],e.forEach((e,n)=>{const r=i(e);be.isUndefined(r)||(t[n]=r)});else{if(!be.isPlainObject(e)&&function(e){if(be.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(be.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}(e))return r.pop(),e;t=Object.create(null);for(const[r,o]of Object.entries(e)){const e=n.has(r.toLowerCase())?"[REDACTED ****]":i(o);be.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}(e,t):be.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}}Ae.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",Ae.ERR_BAD_OPTION="ERR_BAD_OPTION",Ae.ECONNABORTED="ECONNABORTED",Ae.ETIMEDOUT="ETIMEDOUT",Ae.ECONNREFUSED="ECONNREFUSED",Ae.ERR_NETWORK="ERR_NETWORK",Ae.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",Ae.ERR_DEPRECATED="ERR_DEPRECATED",Ae.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",Ae.ERR_BAD_REQUEST="ERR_BAD_REQUEST",Ae.ERR_CANCELED="ERR_CANCELED",Ae.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",Ae.ERR_INVALID_URL="ERR_INVALID_URL",Ae.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const _e=Ae;function Te(e){return be.isPlainObject(e)||be.isArray(e)}function Ne(e){return be.endsWith(e,"[]")?e.slice(0,-2):e}function je(e,t,n){return e?e.concat(t).map(function(e,t){return e=Ne(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const Ue=be.toFlatObject(be,{},null,function(e){return/^is[A-Z]/.test(e)}),De=function(e,t,n){if(!be.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=be.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!be.isUndefined(t[e])})).metaTokens,i=n.visitor||p,o=n.dots,a=n.indexes,s=n.Blob||"undefined"!=typeof Blob&&Blob,u=void 0===n.maxDepth?100:n.maxDepth,c=s&&be.isSpecCompliantForm(t);if(!be.isFunction(i))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(be.isDate(e))return e.toISOString();if(be.isBoolean(e))return e.toString();if(!c&&be.isBlob(e))throw new _e("Blob is not supported. Use a Buffer instead.");return be.isArrayBuffer(e)||be.isTypedArray(e)?c&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function p(e,n,i){let s=e;if(be.isReactNative(t)&&be.isReactNativeBlob(e))return t.append(je(i,n,o),l(e)),!1;if(e&&!i&&"object"==typeof e)if(be.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(be.isArray(e)&&function(e){return be.isArray(e)&&!e.some(Te)}(e)||(be.isFileList(e)||be.endsWith(n,"[]"))&&(s=be.toArray(e)))return n=Ne(n),s.forEach(function(e,r){!be.isUndefined(e)&&null!==e&&t.append(!0===a?je([n],r,o):null===a?n:n+"[]",l(e))}),!1;return!!Te(e)||(t.append(je(i,n,o),l(e)),!1)}const h=[],f=Object.assign(Ue,{defaultVisitor:p,convertValue:l,isVisitable:Te});if(!be.isObject(e))throw new TypeError("data must be an object");return function e(n,r,o=0){if(!be.isUndefined(n)){if(o>u)throw new _e("Object is too deeply nested ("+o+" levels). Max depth: "+u,_e.ERR_FORM_DATA_DEPTH_EXCEEDED);if(-1!==h.indexOf(n))throw Error("Circular reference detected in "+r.join("."));h.push(n),be.forEach(n,function(n,a){!0===(!(be.isUndefined(n)||null===n)&&i.call(t,n,be.isString(a)?a.trim():a,r,f))&&e(n,r?r.concat(a):[a],o+1)}),h.pop()}}(e),t};function Ie(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function qe(e,t){this._pairs=[],e&&De(e,this,t)}const Le=qe.prototype;Le.append=function(e,t){this._pairs.push([e,t])},Le.toString=function(e){const t=e?function(t){return e.call(this,t,Ie)}:Ie;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};const Fe=qe;function Be(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function He(e,t,n){if(!t)return e;const r=n&&n.encode||Be,i=be.isFunction(n)?{serialize:n}:n,o=i&&i.serialize;let a;if(a=o?o(t,i):be.isURLSearchParams(t)?t.toString():new Fe(t,i).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}const Me=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){be.forEach(this.handlers,function(t){null!==t&&e(t)})}},ze={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},Ke={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Fe,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},We="undefined"!=typeof window&&"undefined"!=typeof document,Je="object"==typeof navigator&&navigator||void 0,$e=We&&(!Je||["ReactNative","NativeScript","NS"].indexOf(Je.product)<0),Ve="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Qe=We&&window.location.href||"http://localhost",Ge={...e,...Ke},Xe=function(e){function t(e,n,r,i){let o=e[i++];if("__proto__"===o)return!0;const a=Number.isFinite(+o),s=i>=e.length;return o=!o&&be.isArray(r)?r.length:o,s?(be.hasOwnProp(r,o)?r[o]=be.isArray(r[o])?r[o].concat(n):[r[o],n]:r[o]=n,!a):(r[o]&&be.isObject(r[o])||(r[o]=[]),t(e,n,r[o],i)&&be.isArray(r[o])&&(r[o]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let o;for(r=0;r{t(function(e){return be.matchAll(/\w+|\[(\w*)]/g,e).map(e=>"[]"===e[0]?"":e[1]||e[0])}(e),r,n,0)}),n}return null},Ye=(e,t)=>null!=e&&be.hasOwnProp(e,t)?e[t]:void 0,Ze={transitional:ze,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=be.isObject(e);if(i&&be.isHTMLForm(e)&&(e=new FormData(e)),be.isFormData(e))return r?JSON.stringify(Xe(e)):e;if(be.isArrayBuffer(e)||be.isBuffer(e)||be.isStream(e)||be.isFile(e)||be.isBlob(e)||be.isReadableStream(e))return e;if(be.isArrayBufferView(e))return e.buffer;if(be.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(i){const t=Ye(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return De(e,new Ge.classes.URLSearchParams,{visitor:function(e,t,n,r){return Ge.isNode&&be.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}(e,t).toString();if((o=be.isFileList(e))||n.indexOf("multipart/form-data")>-1){const n=Ye(this,"env"),r=n&&n.FormData;return De(o?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType("application/json",!1),function(e){if(be.isString(e))try{return(0,JSON.parse)(e),be.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=Ye(this,"transitional")||Ze.transitional,n=t&&t.forcedJSONParsing,r=Ye(this,"responseType"),i="json"===r;if(be.isResponse(e)||be.isReadableStream(e))return e;if(e&&be.isString(e)&&(n&&!r||i)){const n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,Ye(this,"parseReviver"))}catch(e){if(n){if("SyntaxError"===e.name)throw _e.from(e,_e.ERR_BAD_RESPONSE,this,null,Ye(this,"response"));throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ge.classes.FormData,Blob:Ge.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};be.forEach(["delete","get","head","post","put","patch","query"],e=>{Ze.headers[e]={}});const et=Ze;function tt(e,t){const n=this||et,r=t||n,i=xe.from(r.headers);let o=r.data;return be.forEach(e,function(e){o=e.call(n,o,i.normalize(),t?t.status:void 0)}),i.normalize(),o}function nt(e){return!(!e||!e.__CANCEL__)}const rt=class extends _e{constructor(e,t,n){super(null==e?"canceled":e,_e.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function it(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new _e("Request failed with status code "+n.status,n.status>=400&&n.status<500?_e.ERR_BAD_REQUEST:_e.ERR_BAD_RESPONSE,n.config,n.request,n)):e(n)}const ot=(e,t,n=3)=>{let r=0;const i=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,o=0,a=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),c=r[a];i||(i=u),n[o]=s,r[o]=u;let l=a,p=0;for(;l!==o;)p+=n[l++],l%=e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),u-i{i=o,n=null,r&&(clearTimeout(r),r=null),e(...t)};return[(...e)=>{const t=Date.now(),s=t-i;s>=o?a(e,t):(n=e,r||(r=setTimeout(()=>{r=null,a(n)},o-s)))},()=>n&&a(n)]}(n=>{const o=n.loaded,a=n.lengthComputable?n.total:void 0,s=null!=a?Math.min(o,a):o,u=Math.max(0,s-r),c=i(u);r=Math.max(r,s),e({loaded:s,total:a,progress:a?s/a:void 0,bytes:u,rate:c||void 0,estimated:c&&a?(a-s)/c:void 0,event:n,lengthComputable:null!=a,[t?"download":"upload"]:!0})},n)},at=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},st=e=>(...t)=>be.asap(()=>e(...t)),ut=Ge.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ge.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ge.origin),Ge.navigator&&/(msie|trident)/i.test(Ge.navigator.userAgent)):()=>!0,ct=Ge.hasStandardBrowserEnv?{write(e,t,n,r,i,o,a){if("undefined"==typeof document)return;const s=[`${e}=${encodeURIComponent(t)}`];be.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),be.isString(r)&&s.push(`path=${r}`),be.isString(i)&&s.push(`domain=${i}`),!0===o&&s.push("secure"),be.isString(a)&&s.push(`SameSite=${a}`),document.cookie=s.join("; ")},read(e){if("undefined"==typeof document)return null;const t=document.cookie.split(";");for(let n=0;nnull,remove(){}};function lt(e,t,n){let r=!("string"==typeof(i=t)&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(i));var i;return e&&(r||!1===n)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const pt=e=>e instanceof xe?{...e}:e;function ht(e,t){t=t||{};const n=Object.create(null);function r(e,t,n,r){return be.isPlainObject(e)&&be.isPlainObject(t)?be.merge.call({caseless:r},e,t):be.isPlainObject(t)?be.merge({},t):be.isArray(t)?t.slice():t}function i(e,t,n,i){return be.isUndefined(t)?be.isUndefined(e)?void 0:r(void 0,e,0,i):r(e,t,0,i)}function o(e,t){if(!be.isUndefined(t))return r(void 0,t)}function a(e,t){return be.isUndefined(t)?be.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,o){return be.hasOwnProp(t,o)?r(n,i):be.hasOwnProp(e,o)?r(void 0,n):void 0}Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});const u={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,allowedSocketPaths:a,responseEncoding:a,validateStatus:s,headers:(e,t,n)=>i(pt(e),pt(t),0,!0)};return be.forEach(Object.keys({...e,...t}),function(r){if("__proto__"===r||"constructor"===r||"prototype"===r)return;const o=be.hasOwnProp(u,r)?u[r]:i,a=o(be.hasOwnProp(e,r)?e[r]:void 0,be.hasOwnProp(t,r)?t[r]:void 0,r);be.isUndefined(a)&&o!==s||(n[r]=a)}),n}const ft=["content-type","content-length"],dt=e=>{const t=ht({},e),n=e=>be.hasOwnProp(t,e)?t[e]:void 0,r=n("data");let i=n("withXSRFToken");const o=n("xsrfHeaderName"),a=n("xsrfCookieName");let s=n("headers");const u=n("auth"),c=n("baseURL"),l=n("allowAbsoluteUrls"),p=n("url");var h;if(t.headers=s=xe.from(s),t.url=He(lt(c,p,l),e.params,e.paramsSerializer),u&&s.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?(h=u.password,encodeURIComponent(h).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))):""))),be.isFormData(r)&&(Ge.hasStandardBrowserEnv||Ge.hasStandardBrowserWebWorkerEnv?s.setContentType(void 0):be.isFunction(r.getHeaders)&&function(e,t,n){"content-only"===n?Object.entries(t).forEach(([t,n])=>{ft.includes(t.toLowerCase())&&e.set(t,n)}):e.set(t)}(s,r.getHeaders(),n("formDataHeaderPolicy"))),Ge.hasStandardBrowserEnv&&(be.isFunction(i)&&(i=i(t)),!0===i||null==i&&ut(t.url))){const e=o&&a&&ct.read(a);e&&s.set(o,e)}return t};(Object.getOwnPropertyDescriptor(dt,"name")||{}).writable||Object.defineProperty(dt,"name",{value:"default",configurable:!0});const yt="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const r=dt(e);let i=r.data;const o=xe.from(r.headers).normalize();let a,s,u,c,l,{responseType:p,onUploadProgress:h,onDownloadProgress:f}=r;function d(){c&&c(),l&&l(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let y=new XMLHttpRequest;function v(){if(!y)return;const r=xe.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders());it(function(e){t(e),d()},function(e){n(e),d()},{data:p&&"text"!==p&&"json"!==p?y.response:y.responseText,status:y.status,statusText:y.statusText,headers:r,config:e,request:y}),y=null}y.open(r.method.toUpperCase(),r.url,!0),y.timeout=r.timeout,"onloadend"in y?y.onloadend=v:y.onreadystatechange=function(){y&&4===y.readyState&&(0!==y.status||y.responseURL&&y.responseURL.startsWith("file:"))&&setTimeout(v)},y.onabort=function(){y&&(n(new _e("Request aborted",_e.ECONNABORTED,e,y)),d(),y=null)},y.onerror=function(t){const r=t&&t.message?t.message:"Network Error",i=new _e(r,_e.ERR_NETWORK,e,y);i.event=t||null,n(i),d(),y=null},y.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const i=r.transitional||ze;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new _e(t,i.clarifyTimeoutError?_e.ETIMEDOUT:_e.ECONNABORTED,e,y)),d(),y=null},void 0===i&&o.setContentType(null),"setRequestHeader"in y&&be.forEach(o.toJSON(),function(e,t){y.setRequestHeader(t,e)}),be.isUndefined(r.withCredentials)||(y.withCredentials=!!r.withCredentials),p&&"json"!==p&&(y.responseType=r.responseType),f&&([u,l]=ot(f,!0),y.addEventListener("progress",u)),h&&y.upload&&([s,c]=ot(h),y.upload.addEventListener("progress",s),y.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{y&&(n(!t||t.type?new rt(null,e,y):t),y.abort(),d(),y=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const m=function(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}(r.url);!m||Ge.protocols.includes(m)?y.send(i||null):n(new _e("Unsupported protocol "+m+":",_e.ERR_BAD_REQUEST,e))})},vt=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n,r=new AbortController;const i=function(e){if(!n){n=!0,a();const t=e instanceof Error?e:this.reason;r.abort(t instanceof _e?t:new rt(t instanceof Error?t.message:t))}};let o=t&&setTimeout(()=>{o=null,i(new _e(`timeout of ${t}ms exceeded`,_e.ETIMEDOUT))},t);const a=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener("abort",i)}),e=null)};e.forEach(e=>e.addEventListener("abort",i));const{signal:s}=r;return s.unsubscribe=()=>be.asap(a),s}},mt=function*(e,t){let n=e.byteLength;if(!t||n{const i=async function*(e,t){for await(const n of async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}}(e))yield*mt(n,t)}(e,t);let o,a=0,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await i.next();if(t)return s(),void e.close();let o=r.byteLength;if(n){let e=a+=o;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel:e=>(s(e),i.return())},{highWaterMark:2})},bt="1.16.0",{isFunction:wt}=be,Ct=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},kt=e=>{const t=be.global??globalThis,{ReadableStream:n,TextEncoder:r}=t;e=be.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:i,Request:o,Response:a}=e,s=i?wt(i):"function"==typeof fetch,u=wt(o),c=wt(a);if(!s)return!1;const l=s&&wt(n),p=s&&("function"==typeof r?(h=new r,e=>h.encode(e)):async e=>new Uint8Array(await new o(e).arrayBuffer()));var h;const f=u&&l&&Ct(()=>{let e=!1;const t=new o(Ge.origin,{body:new n,method:"POST",get duplex(){return e=!0,"half"}}),r=t.headers.has("Content-Type");return null!=t.body&&t.body.cancel(),e&&!r}),d=c&&l&&Ct(()=>be.isReadableStream(new a("").body)),y={stream:d&&(e=>e.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!y[e]&&(y[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new _e(`Response type '${e}' is not supported`,_e.ERR_NOT_SUPPORT,n)})});const v=async(e,t)=>{const n=be.toFiniteNumber(e.getContentLength());return null==n?(async e=>{if(null==e)return 0;if(be.isBlob(e))return e.size;if(be.isSpecCompliantForm(e)){const t=new o(Ge.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return be.isArrayBufferView(e)||be.isArrayBuffer(e)?e.byteLength:(be.isURLSearchParams(e)&&(e+=""),be.isString(e)?(await p(e)).byteLength:void 0)})(t):n};return async e=>{let{url:t,method:n,data:s,signal:c,cancelToken:l,timeout:p,onDownloadProgress:h,onUploadProgress:m,responseType:g,headers:b,withCredentials:w="same-origin",fetchOptions:C,maxContentLength:k,maxBodyLength:R}=dt(e);const O=be.isNumber(k)&&k>-1,S=be.isNumber(R)&&R>-1;let P=i||fetch;g=g?(g+"").toLowerCase():"text";let E=vt([c,l&&l.toAbortSignal()],p),x=null;const A=E&&E.unsubscribe&&(()=>{E.unsubscribe()});let _;try{if(O&&"string"==typeof t&&t.startsWith("data:")){const n=function(e){if(!e||"string"!=typeof e)return 0;if(!e.startsWith("data:"))return 0;const t=e.indexOf(",");if(t<0)return 0;const n=e.slice(5,t),r=e.slice(t+1);if(/;base64/i.test(n)){let e=r.length;const t=r.length;for(let n=0;n=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102)&&(i>=48&&i<=57||i>=65&&i<=70||i>=97&&i<=102)&&(e-=2,n+=2)}let n=0,i=t-1;const o=e=>e>=2&&37===r.charCodeAt(e-2)&&51===r.charCodeAt(e-1)&&(68===r.charCodeAt(e)||100===r.charCodeAt(e));i>=0&&(61===r.charCodeAt(i)?(n++,i--):o(i)&&(n++,i-=3)),1===n&&i>=0&&(61===r.charCodeAt(i)||o(i))&&n++;const a=3*Math.floor(e/4)-(n||0);return a>0?a:0}if("undefined"!=typeof Buffer&&"function"==typeof Buffer.byteLength)return Buffer.byteLength(r,"utf8");let i=0;for(let e=0,t=r.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}(t);if(n>k)throw new _e("maxContentLength size of "+k+" exceeded",_e.ERR_BAD_RESPONSE,e,x)}if(S&&"get"!==n&&"head"!==n){const t=await v(b,s);if("number"==typeof t&&isFinite(t)&&t>R)throw new _e("Request body larger than maxBodyLength limit",_e.ERR_BAD_REQUEST,e,x)}if(m&&f&&"get"!==n&&"head"!==n&&0!==(_=await v(b,s))){let e,n=new o(t,{method:"POST",body:s,duplex:"half"});if(be.isFormData(s)&&(e=n.headers.get("content-type"))&&b.setContentType(e),n.body){const[e,t]=at(_,ot(st(m)));s=gt(n.body,65536,e,t)}}be.isString(w)||(w=w?"include":"omit");const i=u&&"credentials"in o.prototype;if(be.isFormData(s)){const e=b.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&b.delete("content-type")}b.set("User-Agent","axios/"+bt,!1);const c={...C,signal:E,method:n.toUpperCase(),headers:b.normalize().toJSON(),body:s,duplex:"half",credentials:i?w:void 0};x=u&&new o(t,c);let l=await(u?P(x,C):P(t,c));if(O){const t=be.toFiniteNumber(l.headers.get("content-length"));if(null!=t&&t>k)throw new _e("maxContentLength size of "+k+" exceeded",_e.ERR_BAD_RESPONSE,e,x)}const p=d&&("stream"===g||"response"===g);if(d&&l.body&&(h||O||p&&A)){const t={};["status","statusText","headers"].forEach(e=>{t[e]=l[e]});const n=be.toFiniteNumber(l.headers.get("content-length")),[r,i]=h&&at(n,ot(st(h),!0))||[];let o=0;const s=t=>{if(O&&(o=t,o>k))throw new _e("maxContentLength size of "+k+" exceeded",_e.ERR_BAD_RESPONSE,e,x);r&&r(t)};l=new a(gt(l.body,65536,s,()=>{i&&i(),A&&A()}),t)}g=g||"text";let T=await y[be.findKey(y,g)||"text"](l,e);if(O&&!d&&!p){let t;if(null!=T&&("number"==typeof T.byteLength?t=T.byteLength:"number"==typeof T.size?t=T.size:"string"==typeof T&&(t="function"==typeof r?(new r).encode(T).byteLength:T.length)),"number"==typeof t&&t>k)throw new _e("maxContentLength size of "+k+" exceeded",_e.ERR_BAD_RESPONSE,e,x)}return!p&&A&&A(),await new Promise((t,n)=>{it(t,n,{data:T,headers:xe.from(l.headers),status:l.status,statusText:l.statusText,config:e,request:x})})}catch(t){if(A&&A(),E&&E.aborted&&E.reason instanceof _e){const n=E.reason;throw n.config=e,x&&(n.request=x),t!==n&&(n.cause=t),n}if(t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new _e("Network Error",_e.ERR_NETWORK,e,x,t&&t.response),{cause:t.cause||t});throw _e.from(t,t&&t.code,e,x,t&&t.response)}}},Rt=new Map,Ot=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:i}=t,o=[r,i,n];let a,s,u=o.length,c=Rt;for(;u--;)a=o[u],s=c.get(a),void 0===s&&c.set(a,s=u?new Map:kt(t)),c=s;return s},St=(Ot(),{http:null,xhr:yt,fetch:{get:Ot}});be.forEach(St,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch(e){}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Pt=e=>`- ${e}`,Et=e=>be.isFunction(e)||null===e||!1===e,xt=function(e,t){e=be.isArray(e)?e:[e];const{length:n}=e;let r,i;const o={};for(let a=0;a`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));let t=n?e.length>1?"since :\n"+e.map(Pt).join("\n"):" "+Pt(e[0]):"as no adapter specified";throw new _e("There is no suitable adapter to dispatch the request "+t,"ERR_NOT_SUPPORT")}return i};function At(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new rt(null,e)}function _t(e){return At(e),e.headers=xe.from(e.headers),e.data=tt.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),xt(e.adapter||et.adapter,e)(e).then(function(t){At(e),e.response=t;try{t.data=tt.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=xe.from(t.headers),t},function(t){if(!nt(t)&&(At(e),t&&t.response)){e.response=t.response;try{t.response.data=tt.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=xe.from(t.response.headers)}return Promise.reject(t)})}const Tt={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Tt[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Nt={};Tt.transitional=function(e,t,n){function r(e,t){return"[Axios v"+bt+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,o)=>{if(!1===e)throw new _e(r(i," has been removed"+(t?" in "+t:"")),_e.ERR_DEPRECATED);return t&&!Nt[i]&&(Nt[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,o)}},Tt.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};const jt={assertOptions:function(e,t,n){if("object"!=typeof e)throw new _e("options must be an object",_e.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const o=r[i],a=Object.prototype.hasOwnProperty.call(t,o)?t[o]:void 0;if(a){const t=e[o],n=void 0===t||a(t,o,e);if(!0!==n)throw new _e("option "+o+" must be "+n,_e.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new _e("Unknown option "+o,_e.ERR_BAD_OPTION)}},validators:Tt},Ut=jt.validators;class Dt{constructor(e){this.defaults=e||{},this.interceptors={request:new Me,response:new Me}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=(()=>{if(!t.stack)return"";const e=t.stack.indexOf("\n");return-1===e?"":t.stack.slice(e+1)})();try{if(e.stack){if(n){const t=n.indexOf("\n"),r=-1===t?-1:n.indexOf("\n",t+1),i=-1===r?"":n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+="\n"+n)}}else e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=ht(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&jt.assertOptions(n,{silentJSONParsing:Ut.transitional(Ut.boolean),forcedJSONParsing:Ut.transitional(Ut.boolean),clarifyTimeoutError:Ut.transitional(Ut.boolean),legacyInterceptorReqResOrdering:Ut.transitional(Ut.boolean)},!1),null!=r&&(be.isFunction(r)?t.paramsSerializer={serialize:r}:jt.assertOptions(r,{encode:Ut.function,serialize:Ut.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),jt.assertOptions(t,{baseUrl:Ut.spelling("baseURL"),withXsrfToken:Ut.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o=i&&be.merge(i.common,i[t.method]);i&&be.forEach(["delete","get","head","post","put","patch","query","common"],e=>{delete i[e]}),t.headers=xe.concat(o,i);const a=[];let s=!0;this.interceptors.request.forEach(function(e){if("function"==typeof e.runWhen&&!1===e.runWhen(t))return;s=s&&e.synchronous;const n=t.transitional||ze;n&&n.legacyInterceptorReqResOrdering?a.unshift(e.fulfilled,e.rejected):a.push(e.fulfilled,e.rejected)});const u=[];let c;this.interceptors.response.forEach(function(e){u.push(e.fulfilled,e.rejected)});let l,p=0;if(!s){const e=[_t.bind(this),void 0];for(e.unshift(...a),e.push(...u),l=e.length,c=Promise.resolve(t);p{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new rt(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new qt(function(t){e=t}),cancel:e}}}const Lt=qt,Ft={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Ft).forEach(([e,t])=>{Ft[t]=e});const Bt=Ft,Ht=function e(t){const n=new It(t),r=E(It.prototype.request,n);return be.extend(r,It.prototype,n,{allOwnKeys:!0}),be.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(ht(t,n))},r}(et);Ht.Axios=It,Ht.CanceledError=rt,Ht.CancelToken=Lt,Ht.isCancel=nt,Ht.VERSION=bt,Ht.toFormData=De,Ht.AxiosError=_e,Ht.Cancel=Ht.CanceledError,Ht.all=function(e){return Promise.all(e)},Ht.spread=function(e){return function(t){return e.apply(null,t)}},Ht.isAxiosError=function(e){return be.isObject(e)&&!0===e.isAxiosError},Ht.mergeConfig=ht,Ht.AxiosHeaders=xe,Ht.formToJSON=e=>Xe(be.isHTMLForm(e)?new FormData(e):e),Ht.getAdapter=xt,Ht.HttpStatusCode=Bt,Ht.default=Ht;const Mt=Ht;var zt=n(939),Kt=n(82);function Wt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Wt=function(){return!!e})()}var Jt=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,Wt()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function $t(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return($t=function(){return!!e})()}var Vt=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,$t()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function Qt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Qt=function(){return!!e})()}var Gt=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,Qt()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function Xt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Xt=function(){return!!e})()}var Yt=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,Xt()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function Zt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Zt=function(){return!!e})()}var en=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,Zt()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function tn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(tn=function(){return!!e})()}var nn=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,tn()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g);function rn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(rn=function(){return!!e})()}var on=function(e){function t(){return i(this,t),e=this,r=arguments,n=h(n=t),p(e,rn()?Reflect.construct(n,r||[],h(e).constructor):n.apply(e,r));var e,n,r}return d(t,e),u(t)}(g),an={query_by:"query_by",query_by_weights:"query_by_weights",facet_by:"facet_by",group_by:"group_by",include_fields:"include_fields",exclude_fields:"exclude_fields",highlight_fields:"highlight_fields",highlight_full_fields:"highlight_full_fields",pinned_hits:"pinned_hits",hidden_hits:"hidden_hits",infix:"infix",override_tags:"override_tags",num_typos:"num_typos",prefix:"prefix",synonym_sets:"synonym_sets",sort_by:"sort_by"};function sn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function un(e){return Object.keys(an).filter(function(t){return void 0!==e[t]}).every(function(t){return n=e[t],!Array.isArray(n);var n})}function cn(e){var t=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==p[1]?p[1]:{},i=(r=p.length>2&&void 0!==p[2]?p[2]:{}).abortSignal,o=void 0===i?null:i,a=r.responseType,s=void 0===a?void 0:a,u=r.streamConfig,c=void 0===u?void 0:u,l=r.isStreamingRequest,e.abrupt("return",this.performRequest("get",t,{queryParameters:n,abortSignal:o,responseType:s,streamConfig:c,isStreamingRequest:l}));case 1:case"end":return e.stop()}},e,this)})),function(e){return p.apply(this,arguments)})},{key:"delete",value:(l=O(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.performRequest("delete",t,{queryParameters:n,isStreamingRequest:!1}));case 1:case"end":return e.stop()}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"post",value:(c=O(P().mark(function e(t){var n,r,i,o,a,s,u,c,l,p,h,f=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=f.length>1&&void 0!==f[1]?f[1]:{},r=f.length>2&&void 0!==f[2]?f[2]:{},i=f.length>3&&void 0!==f[3]?f[3]:{},a=(o=f.length>4&&void 0!==f[4]?f[4]:{}).abortSignal,s=void 0===a?null:a,u=o.responseType,c=void 0===u?void 0:u,l=o.streamConfig,p=void 0===l?void 0:l,h=o.isStreamingRequest,e.abrupt("return",this.performRequest("post",t,{queryParameters:r,bodyParameters:n,additionalHeaders:i,abortSignal:s,responseType:c,streamConfig:p,isStreamingRequest:h}));case 1:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"put",value:(s=O(P().mark(function e(t){var n,r,i=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},r=i.length>2&&void 0!==i[2]?i[2]:{},e.abrupt("return",this.performRequest("put",t,{queryParameters:r,bodyParameters:n,isStreamingRequest:!1}));case 1:case"end":return e.stop()}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"patch",value:(a=O(P().mark(function e(t){var n,r,i=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},r=i.length>2&&void 0!==i[2]?i[2]:{},e.abrupt("return",this.performRequest("patch",t,{queryParameters:r,bodyParameters:n,isStreamingRequest:!1}));case 1:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getAdapter",value:function(){if(this.configuration.axiosAdapter)return"function"==typeof this.configuration.axiosAdapter?this.configuration.axiosAdapter:"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent?Mt.getAdapter(this.configuration.axiosAdapter).bind(globalThis):Mt.getAdapter(this.configuration.axiosAdapter)}},{key:"performRequest",value:(r=O(P().mark(function e(t,n,r){var i,a,s,u,c,l,p,h,f,d,y,v,m,g,b,w,C,k,R,O,S,E,x,A=this;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i=r.queryParameters,a=void 0===i?null:i,s=r.bodyParameters,u=void 0===s?null:s,c=r.additionalHeaders,l=void 0===c?{}:c,p=r.abortSignal,h=void 0===p?null:p,f=r.responseType,d=void 0===f?void 0:f,y=r.skipConnectionTimeout,v=void 0!==y&&y,m=r.enableKeepAlive,g=void 0===m?void 0:m,b=r.streamConfig,w=void 0===b?void 0:b,C=r.isStreamingRequest,this.configuration.validate(),C&&(this.logger.debug("Request: Performing streaming request to ".concat(n)),dn||"undefined"==typeof fetch||(this.logger.debug("Using fetch adapter for browser streaming"),d="stream")),k=Date.now(),O=!1,this.logger.debug("Request #".concat(k,": Performing ").concat(t.toUpperCase()," request: ").concat(n)),S=P().mark(function e(){var r,i,s,c,p,f,y,m,b,S,E;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=A.getNextNode(k),A.logger.debug("Request #".concat(k,": Attempting ").concat(t.toUpperCase()," request Try #").concat(x," to Node ").concat(r.index)),!h||!h.aborted){e.next=1;break}return e.abrupt("return",{v:Promise.reject(new Error("Request aborted by caller."))});case 1:return e.prev=1,(s={method:t,url:A.uriFor(n,r),headers:Object.assign({},A.defaultHeaders(),l,A.additionalUserHeaders),maxContentLength:1/0,maxBodyLength:1/0,validateStatus:function(e){return e>0},transformResponse:[function(e,t){var n=e;return void 0!==t&&"string"==typeof e&&"string"==typeof t["content-type"]&&t["content-type"].startsWith("application/json")&&(n=JSON.parse(e)),n}]}).adapter=C&&!dn?"fetch":A.getAdapter(),!0!==v&&(s.timeout=1e3*A.connectionTimeoutSeconds),a&&0!==Object.keys(a).length&&(s.params=a),A.sendApiKeyAsQueryParam&&(s.params=s.params||{},s.params["x-typesense-api-key"]=A.apiKey),A.configuration.httpAgent?(A.logger.debug("Request #".concat(k,": Using custom httpAgent")),s.httpAgent=A.configuration.httpAgent):!0===g&&(dn?(A.logger.debug("Request #".concat(k,": Enabling KeepAlive")),s.httpAgent=new zt.Agent({keepAlive:!0})):A.logger.warn("Request #".concat(k,": Cannot use custom httpAgent in a browser environment to enable keepAlive"))),A.configuration.httpsAgent?(A.logger.debug("Request #".concat(k,": Using custom httpsAgent")),s.httpsAgent=A.configuration.httpsAgent):!0===g&&(dn?(A.logger.debug("Request #".concat(k,": Enabling keepAlive")),s.httpsAgent=new Kt.Agent({keepAlive:!0})):A.logger.warn("Request #".concat(k,": Cannot use custom httpAgent in a browser environment to enable keepAlive"))),A.configuration.paramsSerializer&&(A.logger.debug("Request #".concat(k,": Using custom paramsSerializer")),s.paramsSerializer=A.configuration.paramsSerializer),u&&("string"==typeof u&&0!==u.length||"object"===o(u)&&0!==Object.keys(u).length)&&(s.data=u),h&&(c=Mt.CancelToken,p=c.source(),i=function(){O=!0,p.cancel()},h.addEventListener("abort",i),s.cancelToken=p.token),C?(s.responseType="stream",dn||(s.headers=hn(hn({},s.headers),{},{Accept:"text/event-stream"}))):d&&(s.responseType=d),e.next=2,Mt(s);case 2:if((f=e.sent).status>=1&&f.status<=499&&A.setNodeHealthcheck(r,fn),A.logger.debug("Request #".concat(k,": Request to Node ").concat(r.index," was made. Response Code was ").concat(f.status,".")),!(f.status>=200&&f.status<300)){e.next=4;break}if(!C){e.next=3;break}return e.abrupt("return",{v:A.handleStreamingResponse(f,w)});case 3:return e.abrupt("return",{v:Promise.resolve(f.data)});case 4:if(!(f.status<500)){e.next=5;break}return e.abrupt("return",{v:Promise.reject(A.customErrorForResponse(f,null===(y=f.data)||void 0===y?void 0:y.message,s.data))});case 5:throw A.customErrorForResponse(f,null===(m=f.data)||void 0===m?void 0:m.message,s.data);case 6:e.next=11;break;case 7:if(e.prev=7,E=e.catch(1),O||A.setNodeHealthcheck(r,!1),R=E,A.logger.warn("Request #".concat(k,": Request to Node ").concat(r.index,' failed due to "').concat(null!==(b=null==E?void 0:E.code)&&void 0!==b?b:""," ").concat(E.message).concat(null==E.response?"":" - "+JSON.stringify(null===(S=E.response)||void 0===S?void 0:S.data),'"')),!O){e.next=8;break}return e.abrupt("return",{v:Promise.reject(new Error("Request aborted by caller."))});case 8:if(C&&A.invokeOnErrorCallback(E,w),!(x0){var i=s.split("\n");n.processStreamLines(i,a,t)}n.finalizeStreamResult(a,r,e,t)}),o.on("error",function(e){n.logger.error("Stream error: ".concat(e)),n.invokeOnErrorCallback(e,t),i(e)})})}},{key:"handleBrowserStreaming",value:function(e,t){var n=this;return this.logger.debug("Processing browser stream"),new Promise(function(){var r=O(P().mark(function r(i,a){var s;return P().wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(r.prev=0,!e.data||"function"!=typeof e.data.getReader){r.next=1;break}return r.abrupt("return",n.handleBrowserReadableStream(e.data,i,a,e,t));case 1:if("string"!=typeof e.data){r.next=2;break}return r.abrupt("return",n.handleBrowserStringResponse(e.data,i,e,t));case 2:if("object"!==o(e.data)||null===e.data){r.next=3;break}return n.logger.debug("No stream found, but data object is available"),n.invokeOnCompleteCallback(e.data,t),r.abrupt("return",i(e.data));case 3:return n.logger.error("No usable data found in response"),r.abrupt("return",a(new Error("No usable data found in response")));case 4:r.prev=4,s=r.catch(0),n.logger.error("Error processing streaming response: ".concat(s)),n.invokeOnErrorCallback(s,t),a(s);case 5:case"end":return r.stop()}},r,null,[[0,4]])}));return function(e,t){return r.apply(this,arguments)}}())}},{key:"handleBrowserReadableStream",value:(t=O(P().mark(function e(t,n,r,i,o){var a,s,u,c,l,p,h,f,d,y;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.logger.debug("Found ReadableStream in response.data"),a=t.getReader(),s=[],u="",e.prev=1;case 2:return e.next=3,a.read();case 3:if(c=e.sent,l=c.done,p=c.value,!l){e.next=4;break}return this.logger.debug("Stream reading complete"),u.trim()&&(h=u.split("\n"),this.processStreamLines(h,s,o)),e.abrupt("continue",5);case 4:f=(new TextDecoder).decode(p),this.logger.debug("Received chunk: ".concat(f.length," bytes")),d=(u+=f).split("\n"),u=d.pop()||"",this.processStreamLines(d,s,o),e.next=2;break;case 5:this.finalizeStreamResult(s,n,i,o),e.next=7;break;case 6:e.prev=6,y=e.catch(1),this.logger.error("Stream error: ".concat(y)),this.invokeOnErrorCallback(y,o),r(y);case 7:case"end":return e.stop()}},e,this,[[1,6]])})),function(e,n,r,i,o){return t.apply(this,arguments)})},{key:"handleBrowserStringResponse",value:function(e,t,n,r){this.logger.debug("Processing text response as stream data");var i=[],o=e.split("\n");if(this.processStreamLines(o,i,r),i.length>0){var a=this.combineStreamingChunks(i);this.invokeOnCompleteCallback(a,r),t(a)}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(n.data,r),t(n.data)}},{key:"processStreamLines",value:function(e,t,n){var r,i=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ln(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ln(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(o.trim()&&"data: [DONE]"!==o){var a=this.processStreamingLine(o);null!==a&&(this.invokeOnChunkCallback(a,n),t.push(a))}}}catch(e){i.e(e)}finally{i.f()}}},{key:"finalizeStreamResult",value:function(e,t,n,r){if(e.length>0){var i=this.combineStreamingChunks(e);this.logger.debug("Stream processing complete"),this.invokeOnCompleteCallback(i,r),t(i)}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(n.data,r),t(n.data)}},{key:"combineStreamingChunks",value:function(e){if(0===e.length)return{};if(1===e.length)return e[0];var t=this.getMessageChunks(e);if(t.length>0)return this.combineMessageChunks(e,t);var n=e[e.length-1];if(!this.isCompleteSearchResponse(n))throw new Error("Last chunk is not a complete search response");return n}},{key:"getMessageChunks",value:function(e){return e.filter(this.isChunkMessage)}},{key:"isChunkMessage",value:function(e){return"object"===o(e)&&null!==e&&"message"in e&&"conversation_id"in e}},{key:"combineMessageChunks",value:function(e,t){this.logger.debug("Found ".concat(t.length," message chunks to combine"));var n=e[e.length-1];if(this.isCompleteSearchResponse(n))return n;var r=e.find(this.isCompleteSearchResponse);if(!r)throw new Error("No metadata chunk found");return r}},{key:"isCompleteSearchResponse",value:function(e){return"object"===o(e)&&null!==e&&Object.keys(e).length>0&&("results"in e||"found"in e||"hits"in e||"page"in e||"search_time_ms"in e)}},{key:"getNextNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(null!=this.nearestNode){if(this.logger.debug("Request #".concat(e,": Nodes Health: Node ").concat(this.nearestNode.index," is ").concat(!0===this.nearestNode.isHealthy?"Healthy":"Unhealthy")),!0===this.nearestNode.isHealthy||this.nodeDueForHealthcheck(this.nearestNode,e))return this.logger.debug("Request #".concat(e,": Updated current node to Node ").concat(this.nearestNode.index)),this.nearestNode;this.logger.debug("Request #".concat(e,": Falling back to individual nodes"))}this.logger.debug("Request #".concat(e,": Nodes Health: ").concat(this.nodes.map(function(e){return"Node ".concat(e.index," is ").concat(!0===e.isHealthy?"Healthy":"Unhealthy")}).join(" || ")));for(var t=this.nodes[0],n=0;n<=this.nodes.length;n++)if(this.currentNodeIndex=(this.currentNodeIndex+1)%this.nodes.length,!0===(t=this.nodes[this.currentNodeIndex]).isHealthy||this.nodeDueForHealthcheck(t,e))return this.logger.debug("Request #".concat(e,": Updated current node to Node ").concat(t.index)),t;return this.logger.debug("Request #".concat(e,": No healthy nodes were found. Returning the next node, Node ").concat(t.index)),t}},{key:"nodeDueForHealthcheck",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=Date.now()-e.lastAccessTimestamp>1e3*this.healthcheckIntervalSeconds;return n&&this.logger.debug("Request #".concat(t,": Node ").concat(e.index," has exceeded healtcheckIntervalSeconds of ").concat(this.healthcheckIntervalSeconds,". Adding it back into rotation.")),n}},{key:"initializeMetadataForNodes",value:function(){var e=this;null!=this.nearestNode&&(this.nearestNode.index="nearestNode",this.setNodeHealthcheck(this.nearestNode,fn)),this.nodes.forEach(function(t,n){t.index=n,e.setNodeHealthcheck(t,fn)})}},{key:"setNodeHealthcheck",value:function(e,t){e.isHealthy=t,e.lastAccessTimestamp=Date.now()}},{key:"uriFor",value:function(e,t){return null!=t.url?"".concat(t.url).concat(e):"".concat(t.protocol,"://").concat(t.host,":").concat(t.port).concat(t.path).concat(e)}},{key:"defaultHeaders",value:function(){var e={};return this.sendApiKeyAsQueryParam||(e["X-TYPESENSE-API-KEY"]=this.apiKey),e["Content-Type"]="application/json",e}},{key:"timer",value:(e=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e){return setTimeout(e,1e3*t)}));case 1:case"end":return e.stop()}},e)})),function(t){return e.apply(this,arguments)})},{key:"customErrorForResponse",value:function(e,t,n){var r="Request failed with HTTP code ".concat(e.status);return"string"==typeof t&&""!==t.trim()&&(r+=" | Server said: ".concat(t)),new g(r,n,e.status),400===e.status?new Jt(r,n,e.status):401===e.status?new Vt(r,n,e.status):404===e.status?new Gt(r,n,e.status):409===e.status?new Yt(r,n,e.status):422===e.status?new en(r,n,e.status):e.status>=500&&e.status<=599?new nn(r,n,e.status):new on(r,n,e.status)}},{key:"invokeOnChunkCallback",value:function(e,t){if(null!=t&&t.onChunk)try{t.onChunk(e)}catch(e){this.logger.warn("Error in onChunk callback: ".concat(e))}}},{key:"invokeOnCompleteCallback",value:function(e,t){if(null!=t&&t.onComplete)try{t.onComplete(e)}catch(e){this.logger.warn("Error in onComplete callback: ".concat(e))}}},{key:"invokeOnErrorCallback",value:function(e,t){if(null!=t&&t.onError){var n=function(e){if("object"===o(t=e)&&null!==t&&"message"in t&&"string"==typeof t.message)return e;var t;try{return"string"==typeof e?new Error(e):new Error(JSON.stringify(e))}catch(t){return new Error(String(e))}}(e);try{t.onError(n)}catch(e){this.logger.warn("Error in onError callback: ".concat(e))}}}}]);var e,t,n,r,a,s,c,l,p}(),vn="/collections",mn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"create",value:(t=O(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(vn,t,n));case 1:case"end":return e.stop()}},e,this)})),function(e,n){return t.apply(this,arguments)})},{key:"retrieve",value:(e=O(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(vn,t));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}],[{key:"RESOURCEPATH",get:function(){return vn}}]);var e,t}();function gn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(gn=function(){return!!e})()}var bn=function(e){function t(e,n,r){var o,a,s,u;return i(this,t),a=this,u=[e],s=h(s=t),(o=p(a,gn()?Reflect.construct(s,u||[],h(a).constructor):s.apply(a,u))).importResults=n,o.payload=r,o}return d(t,e),u(t)}(g);function wn(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;rc&&(S=this.responseCache.keys().next().value)&&this.responseCache.delete(S),this.responsePromiseCache.size>c&&(E=this.responsePromiseCache.keys().next().value)&&this.responsePromiseCache.delete(E),e.abrupt("return",O);case 7:case"end":return e.stop()}},e,this)})),function(t,n,r,i){return e.apply(this,arguments)})},{key:"executeRequest",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,a=arguments.length>6?arguments[6]:void 0,s=e[t];switch(t){case"get":return s.call(e,n,r,{abortSignal:null==a?void 0:a.abortSignal,responseType:null==a?void 0:a.responseType,streamConfig:null==a?void 0:a.streamConfig,isStreamingRequest:null==a?void 0:a.isStreamingRequest});case"delete":return s.call(e,n,r);case"post":return s.call(e,n,i,r,o||{},{abortSignal:null==a?void 0:a.abortSignal,responseType:null==a?void 0:a.responseType,streamConfig:null==a?void 0:a.streamConfig,isStreamingRequest:null==a?void 0:a.isStreamingRequest});case"put":case"patch":return s.call(e,n,i,r);default:throw new Error("Unsupported method: ".concat(String(t)))}}}]);var e}(),kn=["streamConfig"];function Rn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function On(e){for(var t=1;t1&&void 0!==f[1]?f[1]:{}).cacheSearchResultsForSeconds,i=void 0===r?this.configuration.cacheSearchResultsForSeconds:r,o=n.abortSignal,a=void 0===o?null:o,s={},!0===this.configuration.useServerSideSearchCache&&(s.use_cache=!0),u=cn(t),c=u.streamConfig,l=wn(u,kn),p=On(On({},s),l),h=!0===p.conversation_stream,e.abrupt("return",this.requestWithCache.perform(this.apiCall,"get",{path:this.endpointPath("search"),queryParams:p,streamConfig:c,abortSignal:a,isStreamingRequest:h},{cacheResponseForSeconds:i}));case 1:case"end":return e.stop()}},e,this)})),function(t){return e.apply(this,arguments)})},{key:"endpointPath",value:function(e){return"".concat(mn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(Sn).concat(void 0===e?"":"/"+e)}}],[{key:"RESOURCEPATH",get:function(){return Sn}}]);var e}();function En(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xn(e){for(var t=1;t1&&void 0!==r[1]?r[1]:{},t){e.next=1;break}throw new Error("No document provided");case 1:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,n));case 2:case"end":return e.stop()}},e,this)})),function(e){return v.apply(this,arguments)})},{key:"upsert",value:(y=O(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=1;break}throw new Error("No document provided");case 1:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,Object.assign({},n,{action:"upsert"})));case 2:case"end":return e.stop()}},e,this)})),function(e){return y.apply(this,arguments)})},{key:"update",value:(f=O(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=1;break}throw new Error("No document provided");case 1:if(null==n.filter_by){e.next=2;break}return e.abrupt("return",this.apiCall.patch(this.endpointPath(),t,Object.assign({},n)));case 2:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,Object.assign({},n,{action:"update"})));case 3:case"end":return e.stop()}},e,this)})),function(e){return f.apply(this,arguments)})},{key:"emplace",value:(l=O(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=1;break}throw new Error("No document provided");case 1:if(null==n.filter_by){e.next=2;break}return e.abrupt("return",this.apiCall.patch(this.endpointPath(),t,Object.assign({},n)));case 2:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,Object.assign({},n,{action:"emplace"})));case 3:case"end":return e.stop()}},e,this)})),function(e){return l.apply(this,arguments)})},{key:"delete",value:(c=O(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(){return c.apply(this,arguments)})},{key:"createMany",value:(s=O(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},this.configuration.logger.warn("createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents"),e.abrupt("return",this.import(t,n));case 1:case"end":return e.stop()}},e,this)})),function(e){return s.apply(this,arguments)})},{key:"import",value:(a=O(P().mark(function e(t){var n,r,i,o,a,s,u=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=xn({throwOnFail:!0},u.length>1&&void 0!==u[1]?u[1]:{}),!Array.isArray(t)){e.next=5;break}if(0!==t.length){e.next=1;break}throw new Jt("No documents provided");case 1:e.prev=1,r=t.map(function(e){return JSON.stringify(e)}).join("\n"),e.next=4;break;case 2:if(e.prev=2,!((s=e.catch(1))instanceof RangeError&&s.message.includes("Too many properties to enumerate"))){e.next=3;break}throw new Error("".concat(s,"\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n "));case 3:throw new Error(s);case 4:e.next=6;break;case 5:if(!Nn(r=t)){e.next=6;break}throw new Jt("No documents provided");case 6:return e.next=7,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:n,bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0,enableKeepAlive:!!_n});case 7:if(i=e.sent,!Array.isArray(t)){e.next=10;break}if(o=i.split("\n").map(function(e){return JSON.parse(e)}),!((a=o.filter(function(e){return!1===e.success})).length>0&&n.throwOnFail)){e.next=8;break}throw new bn("".concat(o.length-a.length," documents imported successfully, ").concat(a.length," documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."),o,{documentsInJSONLFormat:r,options:n,failedItems:a,successCount:o.length-a.length});case 8:return e.abrupt("return",o);case 9:e.next=11;break;case 10:return e.abrupt("return",i);case 11:case"end":return e.stop()}},e,this,[[1,2]])})),function(e){return a.apply(this,arguments)})},{key:"importStream",value:(o=O(P().mark(function e(t){var n,r,i,o,a=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=xn({throwOnFail:!0},a.length>1&&void 0!==a[1]?a[1]:{}),e.next=1,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:n,bodyParameters:t,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0,enableKeepAlive:!!_n});case 1:if(r=e.sent,i=r.split("\n").map(function(e){return JSON.parse(e)}),!((o=i.filter(function(e){return!1===e.success})).length>0&&n.throwOnFail)){e.next=2;break}throw new bn("".concat(i.length-o.length," documents imported successfully, ").concat(o.length," documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."),i,{documentsInJSONLFormat:t,options:n,failedItems:o,successCount:i.length-o.length});case 2:return e.abrupt("return",i);case 3:case"end":return e.stop()}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"export",value:(r=O(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(this.endpointPath("export"),t));case 1:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"exportStream",value:(n=O(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(this.endpointPath("export"),t,{responseType:"stream"}));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})}]);var n,r,o,a,s,c,l,f,y,v}(Pn);function Nn(e){return null==e||""===e||0===e.length}var jn=function(){function e(t,n){i(this,e),this.collectionName=t,this.apiCall=n}return u(e,[{key:"upsert",value:(n=O(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(mn.RESOURCEPATH,"/").concat(this.collectionName).concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/overrides"}}]);var t,n}(),Un=function(){return u(function e(t,n,r){i(this,e),this.collectionName=t,this.overrideId=n,this.apiCall=r},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(mn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(jn.RESOURCEPATH,"/").concat(encodeURIComponent(this.overrideId))}}]);var e,t}(),Dn=function(){function e(t,n){i(this,e),this.collectionName=t,this.apiCall=n}return u(e,[{key:"upsert",value:(n=O(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return e.hasWarnedDeprecation||(console.warn("[typesense] 'synonyms' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets ('synonym_sets')."),e.hasWarnedDeprecation=!0),"".concat(mn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/synonyms"}}]);var t,n}();c(Dn,"hasWarnedDeprecation",!1);var In=function(){function e(t,n,r){i(this,e),this.collectionName=t,this.synonymId=n,this.apiCall=r}return u(e,[{key:"retrieve",value:(n=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return e.hasWarnedDeprecation||(console.warn("[typesense] 'synonym' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets 'synonym_sets'."),e.hasWarnedDeprecation=!0),"".concat(mn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(Dn.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymId))}}]);var t,n}();c(In,"hasWarnedDeprecation",!1);var qn=function(){return u(function e(t,n,r){i(this,e),this.collectionName=t,this.documentId=n,this.apiCall=r},[{key:"retrieve",value:(n=O(P().mark(function e(t){var n;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=cn(null!=t?t:{}),e.abrupt("return",this.apiCall.get(this.endpointPath(),n));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"delete",value:(t=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"update",value:(e=O(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.apiCall.patch(this.endpointPath(),t,n));case 1:case"end":return e.stop()}},e,this)})),function(t){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(mn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(Tn.RESOURCEPATH,"/").concat(encodeURIComponent(this.documentId))}}]);var e,t,n}(),Ln=function(){return u(function e(t,n,r){i(this,e),c(this,"individualDocuments",{}),c(this,"individualOverrides",{}),c(this,"individualSynonyms",{}),this.name=t,this.apiCall=n,this.configuration=r,this.name=t,this.apiCall=n,this.configuration=r,this._documents=new Tn(this.name,this.apiCall,this.configuration),this._overrides=new jn(this.name,this.apiCall),this._synonyms=new Dn(this.name,this.apiCall)},[{key:"retrieve",value:(r=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"update",value:(n=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.patch(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"delete",value:(t=O(P().mark(function e(){var t,n=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"exists",value:(e=O(P().mark(function e(){var t;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=1,this.retrieve();case 1:return e.abrupt("return",!0);case 2:if(e.prev=2,!((t=e.catch(0))instanceof Gt)){e.next=3;break}return e.abrupt("return",!1);case 3:throw t;case 4:case"end":return e.stop()}},e,this,[[0,2]])})),function(){return e.apply(this,arguments)})},{key:"documents",value:function(e){return e?(void 0===this.individualDocuments[e]&&(this.individualDocuments[e]=new qn(this.name,e,this.apiCall)),this.individualDocuments[e]):this._documents}},{key:"overrides",value:function(e){return void 0===e?this._overrides:(void 0===this.individualOverrides[e]&&(this.individualOverrides[e]=new Un(this.name,e,this.apiCall)),this.individualOverrides[e])}},{key:"synonyms",value:function(e){return void 0===e?this._synonyms:(void 0===this.individualSynonyms[e]&&(this.individualSynonyms[e]=new In(this.name,e,this.apiCall)),this.individualSynonyms[e])}},{key:"endpointPath",value:function(){return"".concat(mn.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t,n,r}(),Fn="/aliases",Bn=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"upsert",value:(n=O(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(Fn));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH,"/").concat(encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return Fn}}]);var t,n}(),Hn=function(){return u(function e(t,n){i(this,e),this.name=t,this.apiCall=n},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Bn.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t}(),Mn=n(612),zn="/keys",Kn=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"create",value:(n=O(P().mark(function t(n){return P().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.apiCall.post(e.RESOURCEPATH,n));case 1:case"end":return t.stop()}},t,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(zn));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"generateScopedSearchKey",value:function(e,t){var n=cn(t),r=JSON.stringify(n),i=Buffer.from((0,Mn.createHmac)("sha256",e).update(r).digest("base64")),o=e.substr(0,4),a="".concat(i).concat(o).concat(r);return Buffer.from(a).toString("base64")}}],[{key:"RESOURCEPATH",get:function(){return zn}}]);var t,n}(),Wn=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Kn.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t}(),Jn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"retrieve",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/debug"));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e}(),$n=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"retrieve",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/metrics.json"));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e}(),Vn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"retrieve",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/stats.json"));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e}(),Qn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"retrieve",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/health"));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e}(),Gn="/operations",Xn=function(){return u(function e(t){i(this,e),this.apiCall=t},[{key:"perform",value:(t=O(P().mark(function e(t){var n,r=arguments;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.apiCall.post("".concat(Gn,"/").concat(t),{},n));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"getSchemaChanges",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("".concat(Gn,"/schema_changes")));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]);var e,t}(),Yn=["streamConfig"];function Zn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function er(e){for(var t=1;t2&&void 0!==arguments[2]&&arguments[2];i(this,e),this.apiCall=t,this.configuration=n,this.useTextContentType=r,this.requestWithCache=new Cn,this.logger=this.apiCall.logger},[{key:"clearCache",value:function(){this.requestWithCache.clearCache()}},{key:"perform",value:(e=O(P().mark(function e(t,n,r){var i,o,a,s,u,c,l;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=n?er({},n):{},a=null!==(i=null==r?void 0:r.cacheSearchResultsForSeconds)&&void 0!==i?i:this.configuration.cacheSearchResultsForSeconds,!0===this.configuration.useServerSideSearchCache&&(o.use_cache=!0),!0===t.union&&this.hasAnySearchObjectPagination(t)&&this.logger.warn("Individual `searches` pagination parameters are ignored when `union: true` is set. Use a top-level pagination parameter instead. See https://typesense.org/docs/29.0/api/federated-multi-search.html#union-search"),s={union:t.union,searches:t.searches.map(cn)},u=o.streamConfig,c=wn(o,Yn),l=cn(c),e.abrupt("return",this.requestWithCache.perform(this.apiCall,"post",{path:"/multi_search",body:s,queryParams:l,headers:this.useTextContentType?{"content-type":"text/plain"}:{},streamConfig:u,abortSignal:null==r?void 0:r.abortSignal,isStreamingRequest:this.isStreamingRequest(o)},void 0!==a?{cacheResponseForSeconds:a}:void 0));case 1:case"end":return e.stop()}},e,this)})),function(t,n,r){return e.apply(this,arguments)})},{key:"isStreamingRequest",value:function(e){return void 0!==e.streamConfig}},{key:"hasAnySearchObjectPagination",value:function(e){return e.searches.some(function(e){return void 0!==e.page||void 0!==e.per_page||void 0!==e.offset||void 0!==e.limit||void 0!==e.limit_hits})}}]);var e}(),nr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"upsert",value:(n=O(P().mark(function e(t,n){var r,i;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("object"!==o(n.value)||!("searches"in n.value)){e.next=1;break}return r=n.value.searches.map(function(e){return cn(e)}),e.abrupt("return",this.apiCall.put(this.endpointPath(t),{value:{searches:r}}));case 1:return i=cn(n.value),e.abrupt("return",this.apiCall.put(this.endpointPath(t),{value:i}));case 2:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/presets"}}]);var t,n}(),rr=function(){return u(function e(t,n){i(this,e),this.presetId=t,this.apiCall=n},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(nr.RESOURCEPATH,"/").concat(encodeURIComponent(this.presetId))}}]);var e,t}(),ir=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"upsert",value:(n=O(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/analytics/rules"}}]);var t,n}(),or=function(){return u(function e(t,n){i(this,e),this.name=t,this.apiCall=n},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(ir.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t}(),ar=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"create",value:(n=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/analytics/events"}}]);var t,n}(),sr=function(){function e(t){i(this,e),c(this,"individualAnalyticsRules",{}),this.apiCall=t,this.apiCall=t,this._analyticsRules=new ir(this.apiCall),this._analyticsEvents=new ar(this.apiCall)}return u(e,[{key:"rules",value:function(t){return e.hasWarnedDeprecation||(console.warn("[typesense] 'analyticsV1' is deprecated starting with Typesense Server v30 and will be removed in a future release. Please use 'analytics' instead."),e.hasWarnedDeprecation=!0),void 0===t?this._analyticsRules:(void 0===this.individualAnalyticsRules[t]&&(this.individualAnalyticsRules[t]=new or(t,this.apiCall)),this.individualAnalyticsRules[t])}},{key:"events",value:function(){return this._analyticsEvents}}],[{key:"RESOURCEPATH",get:function(){return"/analytics"}}])}();c(sr,"hasWarnedDeprecation",!1);var ur=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"create",value:(r=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,{},{}));case 1:case"end":return e.stop()}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"upsert",value:(n=O(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(t){var n;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n={},t&&(n.rule_tag=t),e.abrupt("return",this.apiCall.get(this.endpointPath(),n));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/analytics/rules"}}]);var t,n,r}(),cr=function(){return u(function e(t,n){i(this,e),this.name=t,this.apiCall=n},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(ur.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t}(),lr=function(){return u(function e(t){i(this,e),c(this,"individualAnalyticsRules",{}),this.apiCall=t,this.apiCall=t,this._analyticsRules=new ur(this.apiCall),this._analyticsEvents=new ar(this.apiCall)},[{key:"rules",value:function(e){return void 0===e?this._analyticsRules:(void 0===this.individualAnalyticsRules[e]&&(this.individualAnalyticsRules[e]=new cr(e,this.apiCall)),this.individualAnalyticsRules[e])}},{key:"events",value:function(){return this._analyticsEvents}}],[{key:"RESOURCEPATH",get:function(){return"/analytics"}}])}(),pr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"upsert",value:(n=O(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/stopwords"}}]);var t,n}(),hr=function(){return u(function e(t,n){i(this,e),this.stopwordId=t,this.apiCall=n},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(pr.RESOURCEPATH,"/").concat(encodeURIComponent(this.stopwordId))}}]);var e,t}(),fr=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"create",value:(n=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/conversations/models"}}]);var t,n}(),dr=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"update",value:(n=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(fr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t,n}(),yr="/conversations",vr=function(){return u(function e(t){i(this,e),c(this,"individualConversationModels",{}),this.apiCall=t,this.apiCall=t,this._conversationsModels=new fr(this.apiCall)},[{key:"retrieve",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(yr));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"models",value:function(e){return void 0===e?this._conversationsModels:(void 0===this.individualConversationModels[e]&&(this.individualConversationModels[e]=new dr(e,this.apiCall)),this.individualConversationModels[e])}}],[{key:"RESOURCEPATH",get:function(){return yr}}]);var e}(),mr=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"retrieve",value:(n=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"update",value:(t=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(vr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t,n}(),gr=function(){function e(t){i(this,e),this.apiCall=t,this.apiCall=t}return u(e,[{key:"upsert",value:(n=O(P().mark(function e(t,n){var r,i;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=Array.isArray(n)?n.map(function(e){return JSON.stringify(e)}).join("\n"):n,e.next=1,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:{id:t},bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0});case 1:return i=e.sent,e.abrupt("return",Array.isArray(n)?i.split("\n").map(function(e){return JSON.parse(e)}):i);case 2:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return void 0===t?"".concat(e.RESOURCEPATH):"".concat(e.RESOURCEPATH,"/").concat(encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/stemming/dictionaries"}}]);var t,n}(),br=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(gr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t}(),wr=function(){return u(function e(t){i(this,e),c(this,"individualStemmingDictionaries",{}),this.apiCall=t,this.apiCall=t,this._stemmingDictionaries=new gr(this.apiCall)},[{key:"dictionaries",value:function(e){return void 0===e?this._stemmingDictionaries:(void 0===this.individualStemmingDictionaries[e]&&(this.individualStemmingDictionaries[e]=new br(e,this.apiCall)),this.individualStemmingDictionaries[e])}}],[{key:"RESOURCEPATH",get:function(){return"/stemming"}}])}(),Cr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"create",value:(n=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return e.RESOURCEPATH}}],[{key:"RESOURCEPATH",get:function(){return"/nl_search_models"}}]);var t,n}(),kr=function(){return u(function e(t,n){i(this,e),this.id=t,this.apiCall=n},[{key:"retrieve",value:(n=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"update",value:(t=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Cr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]);var e,t,n}(),Rr=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"retrieve",value:(t=O(P().mark(function t(){return P().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.apiCall.get(e.RESOURCEPATH));case 1:case"end":return t.stop()}},t,this)})),function(){return t.apply(this,arguments)})}]);var t}();c(Rr,"RESOURCEPATH","/synonym_sets");var Or=function(){return u(function e(t,n){i(this,e),this.synonymSetName=t,this.apiCall=n},[{key:"upsert",value:(t=O(P().mark(function e(t,n){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}},e,this)})),function(e,n){return t.apply(this,arguments)})},{key:"retrieve",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(e){return"".concat(Rr.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymSetName),"/items").concat(void 0===e?"":"/"+encodeURIComponent(e))}}]);var e,t}(),Sr=function(){return u(function e(t,n,r){i(this,e),this.synonymSetName=t,this.itemId=n,this.apiCall=r},[{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Rr.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymSetName),"/items/").concat(encodeURIComponent(this.itemId))}}]);var e,t}(),Pr=function(){return u(function e(t,n){i(this,e),c(this,"individualItems",{}),this.synonymSetName=t,this.apiCall=n,this._items=new Or(this.synonymSetName,n)},[{key:"upsert",value:(n=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"items",value:function(e){return void 0===e?this._items:(void 0===this.individualItems[e]&&(this.individualItems[e]=new Sr(this.synonymSetName,e,this.apiCall)),this.individualItems[e])}},{key:"endpointPath",value:function(){return"".concat(Rr.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymSetName))}}]);var e,t,n}(),Er=function(){function e(t){i(this,e),this.apiCall=t}return u(e,[{key:"retrieve",value:(t=O(P().mark(function t(){return P().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.apiCall.get(e.RESOURCEPATH));case 1:case"end":return t.stop()}},t,this)})),function(){return t.apply(this,arguments)})}]);var t}();c(Er,"RESOURCEPATH","/curation_sets");var xr=function(){return u(function e(t,n){i(this,e),this.name=t,this.apiCall=n},[{key:"retrieve",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(e){return"".concat(Er.RESOURCEPATH,"/").concat(encodeURIComponent(this.name),"/items").concat(void 0===e?"":"/"+encodeURIComponent(e))}}]);var e}(),Ar=function(){return u(function e(t,n,r){i(this,e),this.name=t,this.itemId=n,this.apiCall=r},[{key:"retrieve",value:(n=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"upsert",value:(t=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Er.RESOURCEPATH,"/").concat(encodeURIComponent(this.name),"/items/").concat(encodeURIComponent(this.itemId))}}]);var e,t,n}(),_r=function(){return u(function e(t,n){i(this,e),c(this,"individualItems",{}),this.name=t,this.apiCall=n,this._items=new xr(this.name,n)},[{key:"upsert",value:(n=O(P().mark(function e(t){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"delete",value:(e=O(P().mark(function e(){return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"items",value:function(e){return void 0===e?this._items:(void 0===this.individualItems[e]&&(this.individualItems[e]=new Ar(this.name,e,this.apiCall)),this.individualItems[e])}},{key:"endpointPath",value:function(){return"".concat(Er.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]);var e,t,n}(),Tr=function(){return u(function e(t){var n;i(this,e),t.sendApiKeyAsQueryParam=null!==(n=t.sendApiKeyAsQueryParam)&&void 0!==n&&n,this.configuration=new k(t),this.apiCall=new yn(this.configuration),this.debug=new Jn(this.apiCall),this.metrics=new $n(this.apiCall),this.stats=new Vn(this.apiCall),this.health=new Qn(this.apiCall),this.operations=new Xn(this.apiCall),this.multiSearch=new tr(this.apiCall,this.configuration),this._collections=new mn(this.apiCall),this.individualCollections={},this._aliases=new Bn(this.apiCall),this.individualAliases={},this._keys=new Kn(this.apiCall),this.individualKeys={},this._presets=new nr(this.apiCall),this.individualPresets={},this._stopwords=new pr(this.apiCall),this.individualStopwords={},this.analytics=new lr(this.apiCall),this.analyticsV1=new sr(this.apiCall),this.stemming=new wr(this.apiCall),this._conversations=new vr(this.apiCall),this.individualConversations={},this._nlSearchModels=new Cr(this.apiCall),this.individualNLSearchModels={},this._synonymSets=new Rr(this.apiCall),this.individualSynonymSets={},this._curationSets=new Er(this.apiCall),this.individualCurationSets={}},[{key:"collections",value:function(e){return void 0===e?this._collections:(void 0===this.individualCollections[e]&&(this.individualCollections[e]=new Ln(e,this.apiCall,this.configuration)),this.individualCollections[e])}},{key:"aliases",value:function(e){return void 0===e?this._aliases:(void 0===this.individualAliases[e]&&(this.individualAliases[e]=new Hn(e,this.apiCall)),this.individualAliases[e])}},{key:"keys",value:function(e){return void 0===e?this._keys:(void 0===this.individualKeys[e]&&(this.individualKeys[e]=new Wn(e,this.apiCall)),this.individualKeys[e])}},{key:"presets",value:function(e){return void 0===e?this._presets:(void 0===this.individualPresets[e]&&(this.individualPresets[e]=new rr(e,this.apiCall)),this.individualPresets[e])}},{key:"stopwords",value:function(e){return void 0===e?this._stopwords:(void 0===this.individualStopwords[e]&&(this.individualStopwords[e]=new hr(e,this.apiCall)),this.individualStopwords[e])}},{key:"conversations",value:function(e){return void 0===e?this._conversations:(void 0===this.individualConversations[e]&&(this.individualConversations[e]=new mr(e,this.apiCall)),this.individualConversations[e])}},{key:"nlSearchModels",value:function(e){return void 0===e?this._nlSearchModels:(void 0===this.individualNLSearchModels[e]&&(this.individualNLSearchModels[e]=new kr(e,this.apiCall)),this.individualNLSearchModels[e])}},{key:"synonymSets",value:function(e){return void 0===e?this._synonymSets:(void 0===this.individualSynonymSets[e]&&(this.individualSynonymSets[e]=new Pr(e,this.apiCall)),this.individualSynonymSets[e])}},{key:"curationSets",value:function(e){return void 0===e?this._curationSets:(void 0===this.individualCurationSets[e]&&(this.individualCurationSets[e]=new _r(e,this.apiCall)),this.individualCurationSets[e])}}])}();function Nr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n2e3&&(console.warn("[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter."),t.sendApiKeyAsQueryParam=!1),this.configuration=new k(t),this.apiCall=new yn(this.configuration),this.multiSearch=new tr(this.apiCall,this.configuration,!0),this.individualCollections={}},[{key:"clearCache",value:function(){this.multiSearch.clearCache(),Object.entries(this.individualCollections).forEach(function(e){var t,n,r=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);u=!0);}catch(e){c=!0,i=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}(t,n)||function(e,t){if(e){if("string"==typeof e)return Nr(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Nr(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());r[0],r[1].documents().clearCache()})}},{key:"collections",value:function(e){if(e)return void 0===this.individualCollections[e]&&(this.individualCollections[e]=new jr(e,this.apiCall,this.configuration)),this.individualCollections[e];throw new Error("Typesense.SearchClient only supports search operations, so the collectionName that needs to be searched must be specified. Use Typesense.Client if you need to access the collection object.")}}])}();const Dr={Client:Tr,SearchClient:Ur,Errors:t}})(),Typesense=r})(); //# sourceMappingURL=typesense.min.js.map \ No newline at end of file diff --git a/dist/typesense.min.js.map b/dist/typesense.min.js.map index fe0e94a5..8292d34e 100644 --- a/dist/typesense.min.js.map +++ b/dist/typesense.min.js.map @@ -1 +1 @@ -{"version":3,"file":"typesense.min.js","mappings":"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","sources":["webpack://Typesense/./node_modules/loglevel/lib/loglevel.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/typeof.js","webpack://Typesense/./node_modules/@babel/runtime/regenerator/index.js","webpack://Typesense/webpack/bootstrap","webpack://Typesense/webpack/runtime/compat get default export","webpack://Typesense/webpack/runtime/define property getters","webpack://Typesense/webpack/runtime/global","webpack://Typesense/webpack/runtime/hasOwnProperty shorthand","webpack://Typesense/webpack/runtime/make namespace object","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Typesense/./src/Typesense/Errors/TypesenseError.ts","webpack://Typesense/./src/Typesense/Errors/MissingConfigurationError.ts","webpack://Typesense/./src/Typesense/Configuration.ts","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://Typesense/./node_modules/axios/lib/helpers/bind.js","webpack://Typesense/./node_modules/axios/lib/utils.js","webpack://Typesense/./node_modules/axios/lib/core/AxiosError.js","webpack://Typesense/./node_modules/axios/lib/helpers/toFormData.js","webpack://Typesense/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://Typesense/./node_modules/axios/lib/helpers/buildURL.js","webpack://Typesense/./node_modules/axios/lib/core/InterceptorManager.js","webpack://Typesense/./node_modules/axios/lib/defaults/transitional.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/index.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://Typesense/./node_modules/axios/lib/platform/common/utils.js","webpack://Typesense/./node_modules/axios/lib/platform/index.js","webpack://Typesense/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://Typesense/./node_modules/axios/lib/defaults/index.js","webpack://Typesense/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://Typesense/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://Typesense/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://Typesense/./node_modules/axios/lib/core/transformData.js","webpack://Typesense/./node_modules/axios/lib/cancel/isCancel.js","webpack://Typesense/./node_modules/axios/lib/cancel/CanceledError.js","webpack://Typesense/./node_modules/axios/lib/core/settle.js","webpack://Typesense/./node_modules/axios/lib/helpers/speedometer.js","webpack://Typesense/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://Typesense/./node_modules/axios/lib/helpers/throttle.js","webpack://Typesense/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://Typesense/./node_modules/axios/lib/helpers/cookies.js","webpack://Typesense/./node_modules/axios/lib/core/buildFullPath.js","webpack://Typesense/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://Typesense/./node_modules/axios/lib/helpers/combineURLs.js","webpack://Typesense/./node_modules/axios/lib/core/mergeConfig.js","webpack://Typesense/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://Typesense/./node_modules/axios/lib/adapters/xhr.js","webpack://Typesense/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://Typesense/./node_modules/axios/lib/helpers/composeSignals.js","webpack://Typesense/./node_modules/axios/lib/helpers/trackStream.js","webpack://Typesense/./node_modules/axios/lib/adapters/fetch.js","webpack://Typesense/./node_modules/axios/lib/adapters/adapters.js","webpack://Typesense/./node_modules/axios/lib/helpers/null.js","webpack://Typesense/./node_modules/axios/lib/core/dispatchRequest.js","webpack://Typesense/./node_modules/axios/lib/env/data.js","webpack://Typesense/./node_modules/axios/lib/helpers/validator.js","webpack://Typesense/./node_modules/axios/lib/core/Axios.js","webpack://Typesense/./node_modules/axios/lib/cancel/CancelToken.js","webpack://Typesense/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://Typesense/./node_modules/axios/lib/axios.js","webpack://Typesense/./node_modules/axios/lib/helpers/spread.js","webpack://Typesense/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://Typesense/./src/Typesense/Errors/RequestMalformed.ts","webpack://Typesense/./src/Typesense/Errors/RequestUnauthorized.ts","webpack://Typesense/./src/Typesense/Errors/ObjectNotFound.ts","webpack://Typesense/./src/Typesense/Errors/ObjectAlreadyExists.ts","webpack://Typesense/./src/Typesense/Errors/ObjectUnprocessable.ts","webpack://Typesense/./src/Typesense/Errors/ServerError.ts","webpack://Typesense/./src/Typesense/Errors/HTTPError.ts","webpack://Typesense/./src/Typesense/Types.ts","webpack://Typesense/./src/Typesense/Utils.ts","webpack://Typesense/./src/Typesense/ApiCall.ts","webpack://Typesense/./src/Typesense/Collections.ts","webpack://Typesense/./src/Typesense/Errors/ImportError.ts","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://Typesense/./src/Typesense/RequestWithCache.ts","webpack://Typesense/./src/Typesense/SearchOnlyDocuments.ts","webpack://Typesense/./src/Typesense/Documents.ts","webpack://Typesense/./src/Typesense/Overrides.ts","webpack://Typesense/./src/Typesense/Override.ts","webpack://Typesense/./src/Typesense/Synonyms.ts","webpack://Typesense/./src/Typesense/Synonym.ts","webpack://Typesense/./src/Typesense/Document.ts","webpack://Typesense/./src/Typesense/Collection.ts","webpack://Typesense/./src/Typesense/Aliases.ts","webpack://Typesense/./src/Typesense/Alias.ts","webpack://Typesense/./src/Typesense/Keys.ts","webpack://Typesense/./src/Typesense/Key.ts","webpack://Typesense/./src/Typesense/Debug.ts","webpack://Typesense/./src/Typesense/Metrics.ts","webpack://Typesense/./src/Typesense/Stats.ts","webpack://Typesense/./src/Typesense/Health.ts","webpack://Typesense/./src/Typesense/Operations.ts","webpack://Typesense/./src/Typesense/MultiSearch.ts","webpack://Typesense/./src/Typesense/Presets.ts","webpack://Typesense/./src/Typesense/Preset.ts","webpack://Typesense/./src/Typesense/AnalyticsRulesV1.ts","webpack://Typesense/./src/Typesense/AnalyticsRuleV1.ts","webpack://Typesense/./src/Typesense/AnalyticsEvents.ts","webpack://Typesense/./src/Typesense/AnalyticsV1.ts","webpack://Typesense/./src/Typesense/AnalyticsRules.ts","webpack://Typesense/./src/Typesense/AnalyticsRule.ts","webpack://Typesense/./src/Typesense/Analytics.ts","webpack://Typesense/./src/Typesense/Stopwords.ts","webpack://Typesense/./src/Typesense/Stopword.ts","webpack://Typesense/./src/Typesense/ConversationModels.ts","webpack://Typesense/./src/Typesense/ConversationModel.ts","webpack://Typesense/./src/Typesense/Conversations.ts","webpack://Typesense/./src/Typesense/Conversation.ts","webpack://Typesense/./src/Typesense/StemmingDictionaries.ts","webpack://Typesense/./src/Typesense/StemmingDictionary.ts","webpack://Typesense/./src/Typesense/Stemming.ts","webpack://Typesense/./src/Typesense/NLSearchModels.ts","webpack://Typesense/./src/Typesense/NLSearchModel.ts","webpack://Typesense/./src/Typesense/SynonymSets.ts","webpack://Typesense/./src/Typesense/SynonymSetItems.ts","webpack://Typesense/./src/Typesense/SynonymSetItem.ts","webpack://Typesense/./src/Typesense/SynonymSet.ts","webpack://Typesense/./src/Typesense/CurationSets.ts","webpack://Typesense/./src/Typesense/CurationSetItems.ts","webpack://Typesense/./src/Typesense/CurationSetItem.ts","webpack://Typesense/./src/Typesense/CurationSet.ts","webpack://Typesense/./src/Typesense/Client.ts","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Typesense/./src/Typesense/SearchOnlyCollection.ts","webpack://Typesense/./src/Typesense/SearchClient.ts","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://Typesense/./src/Typesense.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(\n cookie.slice(location + cookieName.length + 1)\n )[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(\n defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n );\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name,\n defaultLogger.methodFactory\n );\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","export default class TypesenseError extends Error {\n httpStatus?: number;\n httpBody?: string;\n\n // Source: https://stackoverflow.com/a/58417721/123545\n constructor(message?: string, httpBody?: string, httpStatus?: number) {\n super(message);\n this.name = new.target.name;\n this.httpBody = httpBody;\n this.httpStatus = httpStatus;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class MissingConfigurationError extends TypesenseError {}\n","import * as logger from \"loglevel\";\nimport { Logger, LogLevelDesc } from \"loglevel\";\nimport { MissingConfigurationError } from \"./Errors\";\nimport type { Agent as HTTPAgent } from \"http\";\nimport type { Agent as HTTPSAgent } from \"https\";\nimport type { AxiosRequestConfig } from \"axios\";\nimport { DocumentSchema, SearchResponse } from \"./Documents\";\n\nexport interface NodeConfiguration {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n url?: string;\n}\n\nexport interface NodeConfigurationWithHostname {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n}\n\nexport interface NodeConfigurationWithUrl {\n url: string;\n}\n\nexport interface ConfigurationOptions {\n apiKey: string;\n nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n randomizeNodes?: boolean;\n /**\n * @deprecated\n * masterNode is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n masterNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n /**\n * @deprecated\n * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n readReplicaNodes?:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n connectionTimeoutSeconds?: number;\n timeoutSeconds?: number;\n healthcheckIntervalSeconds?: number;\n numRetries?: number;\n retryIntervalSeconds?: number;\n sendApiKeyAsQueryParam?: boolean | undefined;\n useServerSideSearchCache?: boolean;\n cacheSearchResultsForSeconds?: number;\n additionalHeaders?: Record;\n\n logLevel?: LogLevelDesc;\n logger?: Logger;\n\n /**\n * Set a custom HTTP Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPAgent } = require(\"http\");\n * ...\n * httpAgent: new HTTPAgent({ keepAlive: true }),\n * @type {HTTPAgent}\n */\n httpAgent?: HTTPAgent;\n\n /**\n * Set a custom HTTPS Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPSAgent } = require(\"https\");\n * ...\n * httpsAgent: new HTTPSAgent({ keepAlive: true }),\n * @type {HTTPSAgent}\n */\n httpsAgent?: HTTPSAgent;\n\n /**\n * Set a custom paramsSerializer\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397\n * @type {any}\n */\n paramsSerializer?: any;\n\n /**\n * Set a custom axios adapter\n *\n * Useful for customizing the underlying HTTP client library used by Typesense.\n *\n * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge.\n * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n */\n axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n}\n\n/**\n * Configuration options for streaming responses\n */\nexport interface BaseStreamConfig {\n /**\n * Callback function that will be called for each chunk of data received\n * during streaming\n */\n onChunk?: (data: { conversation_id: string; message: string }) => void;\n /**\n * Callback function that will be called if there is an error during streaming\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Stream configuration for standard search responses\n * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature\n */\nexport interface StreamConfig\n extends BaseStreamConfig {\n /**\n * Callback function that will be called when the streaming is complete\n */\n onComplete?: (data: SearchResponse) => void;\n}\n\nexport default class Configuration {\n readonly nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n readonly nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n readonly connectionTimeoutSeconds: number;\n readonly healthcheckIntervalSeconds: number;\n readonly numRetries: number;\n readonly retryIntervalSeconds: number;\n readonly apiKey: string;\n readonly sendApiKeyAsQueryParam?: boolean;\n readonly cacheSearchResultsForSeconds: number;\n readonly useServerSideSearchCache: boolean;\n readonly logger: Logger;\n readonly logLevel: LogLevelDesc;\n readonly additionalHeaders?: Record;\n readonly httpAgent?: HTTPAgent;\n readonly httpsAgent?: HTTPSAgent;\n readonly paramsSerializer?: any;\n readonly axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n\n constructor(options: ConfigurationOptions) {\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map((node) => this.setDefaultPathInNode(node))\n .map((node) => this.setDefaultPortInNode(node))\n .map((node) => ({ ...node })) as NodeConfiguration[]; // Make a deep copy\n\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n (options.numRetries !== undefined && options.numRetries >= 0\n ? options.numRetries\n : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n\n this.axiosAdapter = options.axiosAdapter;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n\n this.additionalHeaders = options.additionalHeaders;\n\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n\n this.paramsSerializer = options.paramsSerializer;\n\n this.showDeprecationWarnings(options);\n this.validate();\n }\n\n validate(): boolean {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new MissingConfigurationError(\n \"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\",\n );\n }\n\n if (\n this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)\n ) {\n throw new MissingConfigurationError(\n \"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\",\n );\n }\n\n if (this.apiKey == null) {\n throw new MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n\n return true;\n }\n\n private validateNodes(): boolean {\n return this.nodes.some((node) => {\n return this.isNodeMissingAnyParameters(node);\n });\n }\n\n private isNodeMissingAnyParameters(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl,\n ): boolean {\n return (\n ![\"protocol\", \"host\", \"port\", \"path\"].every((key) => {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null\n );\n }\n\n private setDefaultPathInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n }\n\n private setDefaultPortInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (\n node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")\n ) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n }\n\n private showDeprecationWarnings(options: ConfigurationOptions): void {\n if (options.timeoutSeconds) {\n this.logger.warn(\n \"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\",\n );\n }\n if (options.masterNode) {\n this.logger.warn(\n \"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\n \"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n }\n\n private shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n}\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (FormDataCtor && thing instanceof FormDataCtor) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n \n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true\n });\n \n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !this.responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst isValidHeaderValue = (value) => !/[\\r\\n]/.test(value);\n\nfunction assertValidHeaderValue(value, header) {\n if (value === false || value == null) {\n return;\n }\n\n if (utils.isArray(value)) {\n value.forEach((v) => assertValidHeaderValue(v, header));\n return;\n }\n\n if (!isValidHeaderValue(String(value))) {\n throw new Error(`Invalid character in header content [\"${header}\"]`);\n }\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction stripTrailingCRLF(str) {\n let end = str.length;\n\n while (end > 0) {\n const charCode = str.charCodeAt(end - 1);\n\n if (charCode !== 10 && charCode !== 13) {\n break;\n }\n\n end -= 1;\n }\n\n return end === str.length ? str : str.slice(0, end);\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : stripTrailingCRLF(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n assertValidHeaderValue(_value, _header);\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const body = new ReadableStream();\n\n const hasContentType = new Request(platform.origin, {\n body,\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n body.cancel();\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","export const VERSION = \"1.15.0\";","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestMalformed extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestUnauthorized extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectNotFound extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectAlreadyExists extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectUnprocessable extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ServerError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class HTTPError extends TypesenseError {}\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { BaseStreamConfig, StreamConfig } from \"./Configuration\";\nimport type {\n DocumentSchema,\n SearchParamsWithPreset,\n SearchOptions,\n SearchResponse,\n DocumentWriteParameters,\n DeleteQuery,\n DeleteResponse,\n ImportResponse,\n DocumentsExportParameters,\n} from \"./Documents\";\n\nexport type DropTokensMode = \"right_to_left\" | \"left_to_right\" | \"both_sides:3\";\n\nexport type OperationMode = \"off\" | \"always\" | \"fallback\";\n\nexport type CommaSeparated<\n T extends string,\n ToExtend,\n OriginalString extends string = T,\n Previous extends string[] = [],\n> = T extends `${infer Start},${infer Rest}`\n ? TrimString extends ToExtend\n ? CommaSeparated<\n Rest,\n ToExtend,\n OriginalString,\n [...Previous, TrimString]\n >\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n }\n : TrimString extends ToExtend\n ? OriginalString\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n };\n\nexport type MessageChunk = {\n message: string;\n conversation_id: string;\n};\n\nexport type UnionArrayKeys = {\n [K in keyof T]: T[K] extends undefined\n ? never\n : NonNullable extends infer R\n ? R extends R[]\n ? never\n : R extends (infer U)[] | infer U\n ? U[] extends R\n ? K\n : never\n : never\n : never;\n}[keyof T] &\n keyof T;\n\nexport type UnionArraySearchParams =\n UnionArrayKeys;\n\nexport type ArraybleParams = {\n readonly [K in UnionArraySearchParams]: string;\n};\n\nexport type ExtractBaseTypes = {\n [K in keyof T]: K extends UnionArrayKeys\n ? T[K] extends (infer U)[] | infer U\n ? U\n : T[K]\n : T[K];\n};\n\nexport const arrayableParams: ArraybleParams = {\n query_by: \"query_by\",\n query_by_weights: \"query_by_weights\",\n facet_by: \"facet_by\",\n group_by: \"group_by\",\n include_fields: \"include_fields\",\n exclude_fields: \"exclude_fields\",\n highlight_fields: \"highlight_fields\",\n highlight_full_fields: \"highlight_full_fields\",\n pinned_hits: \"pinned_hits\",\n hidden_hits: \"hidden_hits\",\n infix: \"infix\",\n override_tags: \"override_tags\",\n num_typos: \"num_typos\",\n prefix: \"prefix\",\n synonym_sets: \"synonym_sets\",\n sort_by: \"sort_by\",\n};\n\nexport interface SearchParams<\n TDoc extends DocumentSchema,\n Infix extends string = string,\n> {\n // From https://typesense.org/docs/latest/api/documents.html#arguments\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- Can't use `object` here, it needs to intersect with `{}`\n q?: \"*\" | (string & {});\n query_by?: string | string[];\n query_by_weights?: string | number[];\n prefix?: string | boolean | boolean[]; // default: true\n filter_by?: string;\n max_filter_by_candidates?: number; // default: 4\n enable_synonyms?: boolean; // default: true\n enable_analytics?: boolean; // default: true\n filter_curated_hits?: boolean; // default: false\n enable_lazy_filter?: boolean; // default: false\n sort_by?: string | string[]; // default: text match desc\n facet_by?: string | string[];\n max_facet_values?: number;\n facet_sample_threshold?: number;\n facet_sample_percent?: number;\n facet_query?: string;\n facet_query_num_typos?: number;\n facet_return_parent?: string;\n facet_strategy?: \"exhaustive\" | \"top_values\" | \"automatic\";\n page?: number; // default: 1\n per_page?: number; // default: 10, max 250\n group_by?: string | string[];\n group_limit?: number; // default:\n group_missing_values?: boolean;\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n highlight_fields?: string | string[]; // default: all queried fields\n highlight_full_fields?: string | string[]; // default: all fields\n highlight_affix_num_tokens?: number; // default: 4\n highlight_start_tag?: string; // default: \n highlight_end_tag?: string; // default: \n enable_highlight_v1?: boolean;\n snippet_threshold?: number; // default: 30\n nl_query?: boolean;\n nl_model_id?: string;\n nl_query_debug?: boolean;\n nl_query_prompt_cache_ttl?: number;\n num_typos?: string | number | number[]; // default: 2\n min_len_1typo?: number;\n min_len_2typo?: number;\n split_join_tokens?: OperationMode;\n exhaustive_search?: boolean;\n drop_tokens_threshold?: number; // default: 10\n drop_tokens_mode?: DropTokensMode;\n typo_tokens_threshold?: number; // default: 100\n pinned_hits?: string | string[];\n synonym_sets?: string[] | string;\n hidden_hits?: string | string[];\n limit_hits?: number; // default: no limit\n pre_segmented_query?: boolean;\n enable_overrides?: boolean;\n override_tags?: string | string[];\n prioritize_exact_match?: boolean; // default: true\n prioritize_token_position?: boolean;\n prioritize_num_matching_fields?: boolean;\n search_cutoff_ms?: number;\n use_cache?: boolean;\n max_candidates?: number;\n infix?:\n | CommaSeparated\n | OperationMode[]\n | OperationMode;\n preset?: string;\n text_match_type?: \"max_score\" | \"max_weight\" | \"sum_score\";\n vector_query?: string;\n \"x-typesense-api-key\"?: string;\n \"x-typesense-user-id\"?: string;\n offset?: number;\n limit?: number;\n stopwords?: string;\n conversation?: boolean;\n validate_field_names?: boolean;\n conversation_stream?: boolean;\n conversation_model_id?: string;\n conversation_id?: string;\n voice_query?: string;\n streamConfig?: StreamConfig;\n}\n\nexport interface SearchResponseRequestParams {\n collection_name?: string;\n q?: string;\n page?: number;\n per_page?: number;\n first_q?: string;\n voice_query?: {\n transcribed_query?: string;\n };\n}\n\nexport interface SearchableDocuments<\n T extends DocumentSchema = DocumentSchema,\n Infix extends string = string,\n> {\n search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n options: SearchOptions,\n ): Promise>;\n clearCache(): void;\n}\n\nexport interface WriteableDocuments {\n create(\n document: T,\n options: Omit,\n ): Promise;\n upsert(\n document: T,\n options: Omit,\n ): Promise;\n update(\n document: T,\n options: Omit,\n ): Promise;\n emplace(\n document: T,\n options: Omit,\n ): Promise;\n delete(query: DeleteQuery): Promise;\n import(\n documents: T[] | string,\n options: DocumentWriteParameters,\n ): Promise;\n export(options: DocumentsExportParameters): Promise;\n}\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\nexport interface RequestParams {\n path: string;\n queryParams?: Record;\n body?: unknown;\n headers?: Record;\n streamConfig?:\n | StreamConfig\n | MultiSearchResultsStreamConfig\n | MultiSearchUnionStreamConfig;\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n isStreamingRequest: boolean | undefined;\n}\n\nexport interface MultiSearchRequestsWithUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union: true;\n}\n\nexport interface MultiSearchRequestsWithoutUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union?: false | undefined;\n}\n\nexport type MultiSearchRequestsSchema<\n T extends DocumentSchema,\n Infix extends string,\n> =\n | MultiSearchRequestsWithUnionSchema\n | MultiSearchRequestsWithoutUnionSchema;\n\nexport interface UnionSearchResponse\n extends Omit, \"request_params\"> {\n union_request_params: UnionSearchResponseRequestParams[];\n}\n\ntype AllRequiredBut = Required> & Pick;\n\nexport interface UnionSearchResponseRequestParams\n extends AllRequiredBut {\n found: number;\n}\n\nexport type MultiSearchResponse<\n T extends DocumentSchema[],\n Infix extends string,\n R extends MultiSearchRequestsSchema<\n T[number],\n Infix\n > = MultiSearchRequestsSchema,\n> =\n R extends MultiSearchRequestsWithUnionSchema\n ? UnionSearchResponse\n : {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n };\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\n\ninterface SearchesMultiSearchesRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n searches: (\n | MultiSearchRequestSchema\n | MultiSearchRequestWithPresetSchema\n )[];\n}\n\ninterface BaseMultiSearchRequestSchema {\n collection?: string;\n rerank_hybrid_matches?: boolean;\n \"x-typesense-api-key\"?: string;\n}\n\ntype CommonMultiSearchParametersBase<\n T extends DocumentSchema,\n Infix extends string,\n> = Partial<\n BaseMultiSearchRequestSchema & Omit, \"streamConfig\">\n>;\n\nexport type MultiSearchRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema & Omit, \"streamConfig\">;\n\nexport type MultiSearchRequestWithPresetSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema &\n Omit, \"streamConfig\">;\n\nexport type MultiSearchUnionParameters<\n T extends DocumentSchema,\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchUnionStreamConfig;\n use_cache?: boolean;\n};\n\nexport type MultiSearchResultsParameters<\n T extends DocumentSchema[],\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchResultsStreamConfig;\n use_cache?: boolean;\n};\n\ntype Whitespace = \" \" | \"\\n\" | \"\\t\";\n\ntype TrimString = S extends `${Whitespace}${infer S}`\n ? TrimString\n : S extends `${infer S}${Whitespace}`\n ? TrimString\n : S;\n","import { DocumentSchema } from \"./Documents\";\nimport { arrayableParams } from \"./Types\";\nimport type { UnionArrayKeys, ExtractBaseTypes, SearchParams } from \"./Types\";\n\nfunction hasNoArrayValues<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T | ExtractBaseTypes): params is ExtractBaseTypes {\n return Object.keys(arrayableParams)\n .filter((key) => params[key] !== undefined)\n .every((key) => isNonArrayValue(params[key]));\n}\n\nexport function normalizeArrayableParams<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T): Prettify> {\n const result = { ...params };\n\n const transformedValues = Object.keys(arrayableParams)\n .filter((key) => Array.isArray(result[key]))\n .map((key) => {\n result[key] = result[key].join(\",\");\n return key;\n });\n\n if (!transformedValues.length && hasNoArrayValues(result)) {\n return result;\n }\n\n if (!hasNoArrayValues(result)) {\n throw new Error(\n `Failed to normalize arrayable params: ${JSON.stringify(result)}`,\n );\n }\n\n return result;\n}\n\nfunction isNonArrayValue<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n K extends UnionArrayKeys,\n>(value: T[K] | ExtractBaseTypes[K]): value is ExtractBaseTypes[K] {\n return !Array.isArray(value);\n}\n\ntype Prettify = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n} & {};\n\ninterface ErrorWithMessage extends Error {\n message: string;\n}\n\nfunction isErrorWithMessage(error: unknown): error is ErrorWithMessage {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof (error as Record).message === \"string\"\n );\n}\n\nexport function toErrorWithMessage(couldBeError: unknown): ErrorWithMessage {\n if (isErrorWithMessage(couldBeError)) return couldBeError;\n\n try {\n if (typeof couldBeError === \"string\") {\n return new Error(couldBeError);\n }\n return new Error(JSON.stringify(couldBeError));\n } catch {\n return new Error(String(couldBeError));\n }\n}\n","import type {\n AxiosAdapter,\n AxiosRequestConfig,\n AxiosResponse,\n Method,\n} from \"axios\";\nimport axios from \"axios\";\nimport { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { Logger } from \"loglevel\";\nimport Configuration from \"./Configuration\";\nimport type { NodeConfiguration, StreamConfig } from \"./Configuration\";\nimport {\n HTTPError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n} from \"./Errors\";\nimport TypesenseError from \"./Errors/TypesenseError\";\nimport type { DocumentSchema, SearchResponse } from \"./Documents\";\nimport { toErrorWithMessage } from \"./Utils\";\nimport { MessageChunk } from \"./Types\";\n\nconst APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nconst HEALTHY = true;\nconst UNHEALTHY = false;\n\ninterface Node extends NodeConfiguration {\n isHealthy: boolean;\n index: string | number;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null &&\n typeof window === \"undefined\";\n\nexport interface HttpClient {\n get(\n endpoint: string,\n queryParameters: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n delete(\n endpoint: string,\n queryParameters: Record,\n ): Promise;\n post(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n additionalHeaders: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n put(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n patch(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n}\n\nexport default class ApiCall implements HttpClient {\n private readonly apiKey: string;\n private readonly nodes: Node[];\n private readonly nearestNode: Node;\n private readonly connectionTimeoutSeconds: number;\n private readonly healthcheckIntervalSeconds: number;\n private readonly retryIntervalSeconds: number;\n private readonly sendApiKeyAsQueryParam?: boolean;\n private readonly numRetriesPerRequest: number;\n private readonly additionalUserHeaders?: Record;\n\n readonly logger: Logger;\n private currentNodeIndex: number;\n\n constructor(private configuration: Configuration) {\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n\n this.logger = this.configuration.logger;\n\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n\n async get(\n endpoint: string,\n queryParameters: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"get\", endpoint, {\n queryParameters,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async delete(endpoint: string, queryParameters: any = {}): Promise {\n return this.performRequest(\"delete\", endpoint, {\n queryParameters,\n isStreamingRequest: false,\n });\n }\n\n async post(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n additionalHeaders: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"post\", endpoint, {\n queryParameters,\n bodyParameters,\n additionalHeaders,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async put(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"put\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n async patch(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"patch\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n private getAdapter(): AxiosAdapter | undefined {\n if (!this.configuration.axiosAdapter) return undefined;\n\n if (typeof this.configuration.axiosAdapter === \"function\")\n return this.configuration.axiosAdapter;\n\n const isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator.userAgent === \"Cloudflare-Workers\";\n\n return isCloudflareWorkers\n ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis)\n : axios.getAdapter(this.configuration.axiosAdapter);\n }\n\n async performRequest(\n requestType: Method,\n endpoint: string,\n {\n queryParameters = null,\n bodyParameters = null,\n additionalHeaders = {},\n abortSignal = null,\n responseType = undefined,\n skipConnectionTimeout = false,\n enableKeepAlive = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n queryParameters?: any;\n bodyParameters?: any;\n additionalHeaders?: any;\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n skipConnectionTimeout?: boolean;\n enableKeepAlive?: boolean | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n },\n ): Promise {\n this.configuration.validate();\n\n if (isStreamingRequest) {\n this.logger.debug(`Request: Performing streaming request to ${endpoint}`);\n\n // For browser streaming, always use responseType: \"stream\" and adapter: \"fetch\"\n if (!isNodeJSEnvironment && typeof fetch !== \"undefined\") {\n this.logger.debug(\"Using fetch adapter for browser streaming\");\n responseType = \"stream\";\n }\n }\n\n const requestNumber = Date.now();\n let lastException;\n let wasAborted = false;\n this.logger.debug(\n `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`,\n );\n for (\n let numTries = 1;\n numTries <= this.numRetriesPerRequest + 1;\n numTries++\n ) {\n const node = this.getNextNode(requestNumber);\n this.logger.debug(\n `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${\n node.index\n }`,\n );\n\n if (abortSignal && abortSignal.aborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n let abortListener: ((event: Event) => void) | undefined;\n\n try {\n const requestOptions: AxiosRequestConfig = {\n method: requestType,\n url: this.uriFor(endpoint, node),\n headers: Object.assign(\n {},\n this.defaultHeaders(),\n additionalHeaders,\n this.additionalUserHeaders,\n ),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n validateStatus: (status) => {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n (data, headers) => {\n let transformedData = data;\n if (\n headers !== undefined &&\n typeof data === \"string\" &&\n headers[\"content-type\"] &&\n headers[\"content-type\"].startsWith(\"application/json\")\n ) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n\n // Use fetch adapter only for streaming requests in browser environments\n requestOptions.adapter =\n isStreamingRequest && !isNodeJSEnvironment\n ? \"fetch\"\n : this.getAdapter();\n\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this.connectionTimeoutSeconds * 1000;\n }\n\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n\n if (this.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this.apiKey;\n }\n\n if (this.configuration.httpAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpAgent`,\n );\n requestOptions.httpAgent = this.configuration.httpAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`);\n requestOptions.httpAgent = new HTTPAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.httpsAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpsAgent`,\n );\n requestOptions.httpsAgent = this.configuration.httpsAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`);\n requestOptions.httpsAgent = new HTTPSAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.paramsSerializer) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom paramsSerializer`,\n );\n requestOptions.paramsSerializer = this.configuration.paramsSerializer;\n }\n\n if (\n bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))\n ) {\n requestOptions.data = bodyParameters;\n }\n\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n abortListener = () => {\n wasAborted = true;\n source.cancel();\n };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source.token;\n }\n\n if (isStreamingRequest) {\n requestOptions.responseType = \"stream\";\n if (!isNodeJSEnvironment) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Accept: \"text/event-stream\",\n };\n }\n } else if (responseType) {\n requestOptions.responseType = responseType;\n }\n\n const response = await axios(requestOptions);\n\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this.setNodeHealthcheck(node, HEALTHY);\n }\n\n this.logger.debug(\n `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (isStreamingRequest) {\n return this.handleStreamingResponse(response, streamConfig);\n }\n return Promise.resolve(response.data);\n } else if (response.status < 500) {\n // Next, if response is anything but 5xx, don't retry, return a custom error\n return Promise.reject(\n this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n ),\n );\n } else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n );\n }\n } catch (error: any) {\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n if (!wasAborted) {\n this.setNodeHealthcheck(node, UNHEALTHY);\n }\n lastException = error;\n this.logger.warn(\n `Request #${requestNumber}: Request to Node ${\n node.index\n } failed due to \"${error?.code ?? \"\"} ${error.message}${\n error.response == null\n ? \"\"\n : \" - \" + JSON.stringify(error.response?.data)\n }\"`,\n );\n\n if (wasAborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n if (isStreamingRequest) {\n this.invokeOnErrorCallback(error, streamConfig);\n }\n\n if (numTries < this.numRetriesPerRequest + 1) {\n this.logger.warn(\n `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`,\n );\n } else {\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n await this.timer(this.retryIntervalSeconds);\n } finally {\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n }\n }\n\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n\n private processStreamingLine(line: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!line.trim() || line === \"data: [DONE]\") {\n return null;\n }\n\n // Handle SSE format (data: {...})\n if (line.startsWith(\"data: \")) {\n return this.processDataLine(line.slice(6).trim());\n }\n\n // Try parsing as JSON if it starts with a brace\n if (line.trim().startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(line.trim());\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch {\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n }\n\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n\n private processDataLine(dataContent: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!dataContent) {\n return null;\n }\n\n if (dataContent.startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(dataContent);\n // Ensure the required fields exist\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch {\n // Not valid JSON, use as plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n }\n\n // For plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n\n private async handleStreamingResponse(\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\n `Handling streaming response. Environment: ${isNodeJSEnvironment ? \"Node.js\" : \"Browser\"}`,\n );\n\n if (isNodeJSEnvironment && response.data) {\n return this.handleNodeStreaming(response, streamConfig);\n }\n\n if (!isNodeJSEnvironment) {\n return this.handleBrowserStreaming(response, streamConfig);\n }\n\n this.logger.debug(\"Processing non-streaming response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return Promise.resolve(response.data as T);\n }\n\n private handleNodeStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing Node.js stream\");\n return new Promise((resolve, reject) => {\n const stream = response.data;\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n stream.on(\"data\", (chunk) => {\n try {\n const data = chunk.toString();\n buffer += data;\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n } catch (error) {\n reject(error);\n }\n });\n\n stream.on(\"end\", () => {\n if (buffer.trim().length > 0) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(\n allChunks,\n resolve,\n response,\n streamConfig,\n );\n });\n\n stream.on(\"error\", (error: unknown) => {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n });\n });\n }\n\n private handleBrowserStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing browser stream\");\n\n return new Promise(async (resolve, reject) => {\n try {\n if (response.data && typeof response.data.getReader === \"function\") {\n return this.handleBrowserReadableStream(\n response.data,\n resolve,\n reject,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"string\") {\n return this.handleBrowserStringResponse(\n response.data,\n resolve,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"object\" && response.data !== null) {\n this.logger.debug(\"No stream found, but data object is available\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return resolve(response.data as T);\n }\n\n this.logger.error(\"No usable data found in response\");\n return reject(new Error(\"No usable data found in response\"));\n } catch (error) {\n this.logger.error(`Error processing streaming response: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n });\n }\n\n private async handleBrowserReadableStream(\n stream: any,\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\"Found ReadableStream in response.data\");\n const reader = stream.getReader();\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n this.logger.debug(\"Stream reading complete\");\n if (buffer.trim()) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n break;\n }\n\n const chunk = new TextDecoder().decode(value);\n this.logger.debug(`Received chunk: ${chunk.length} bytes`);\n\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(allChunks, resolve, response, streamConfig);\n } catch (error) {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n }\n\n private handleBrowserStringResponse(\n data: string,\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): void {\n this.logger.debug(\"Processing text response as stream data\");\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n\n const lines = data.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n\n if (allChunks.length > 0) {\n const finalResult =\n this.combineStreamingChunks<\n T extends DocumentSchema ? T : DocumentSchema\n >(allChunks);\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n // If no chunks were processed, use the original response\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n private processStreamLines(\n lines: string[],\n allChunks: [...MessageChunk[], SearchResponse] | [],\n streamConfig: StreamConfig | undefined,\n ): void {\n for (const line of lines) {\n if (line.trim() && line !== \"data: [DONE]\") {\n const processed = this.processStreamingLine(line);\n if (processed !== null) {\n this.invokeOnChunkCallback(processed, streamConfig);\n (allChunks as MessageChunk[]).push(processed);\n }\n }\n }\n }\n\n private finalizeStreamResult(\n allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [],\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): void {\n if (allChunks.length > 0) {\n const finalResult = this.combineStreamingChunks(allChunks);\n this.logger.debug(\"Stream processing complete\");\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n /**\n * Combines multiple streaming chunks into a single coherent result\n * This is critical for ensuring we return the complete data rather than just the last chunk\n */\n private combineStreamingChunks(\n chunks: [...MessageChunk[], SearchResponse] | [],\n ): SearchResponse {\n if (chunks.length === 0) return {} as SearchResponse;\n if (chunks.length === 1) return chunks[0] as unknown as SearchResponse;\n\n // For conversation streams with message chunks\n const messagesChunks = this.getMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n );\n if (messagesChunks.length > 0) {\n return this.combineMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n messagesChunks,\n );\n }\n\n // For regular search responses\n const lastChunk = chunks[chunks.length - 1];\n if (!this.isCompleteSearchResponse(lastChunk)) {\n throw new Error(\"Last chunk is not a complete search response\");\n }\n\n return lastChunk;\n }\n\n private getMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n ): MessageChunk[] {\n return chunks.filter(this.isChunkMessage);\n }\n\n private isChunkMessage(chunk: unknown): chunk is MessageChunk {\n return (\n typeof chunk === \"object\" &&\n chunk !== null &&\n \"message\" in chunk &&\n \"conversation_id\" in chunk\n );\n }\n\n private combineMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n messagesChunks: MessageChunk[],\n ): SearchResponse {\n this.logger.debug(\n `Found ${messagesChunks.length} message chunks to combine`,\n );\n\n const lastChunk = chunks[chunks.length - 1];\n if (this.isCompleteSearchResponse(lastChunk)) {\n return lastChunk;\n }\n\n const metadataChunk = chunks.find(this.isCompleteSearchResponse);\n\n if (!metadataChunk) {\n throw new Error(\"No metadata chunk found\");\n }\n\n return metadataChunk;\n }\n\n private isCompleteSearchResponse(\n chunk: MessageChunk | SearchResponse,\n ): chunk is SearchResponse {\n if (\n typeof chunk === \"object\" &&\n chunk !== null &&\n Object.keys(chunk as object).length > 0\n ) {\n return (\n \"results\" in (chunk as object) ||\n \"found\" in (chunk as object) ||\n \"hits\" in (chunk as object) ||\n \"page\" in (chunk as object) ||\n \"search_time_ms\" in (chunk as object)\n );\n }\n return false;\n }\n\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n getNextNode(requestNumber = 0): Node {\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: Node ${\n this.nearestNode.index\n } is ${this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"}`,\n );\n if (\n this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`,\n );\n return this.nearestNode;\n }\n this.logger.debug(\n `Request #${requestNumber}: Falling back to individual nodes`,\n );\n }\n\n // Fallback to nodes as usual\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: ${this.nodes\n .map(\n (node) =>\n `Node ${node.index} is ${\n node.isHealthy === true ? \"Healthy\" : \"Unhealthy\"\n }`,\n )\n .join(\" || \")}`,\n );\n let candidateNode: Node = this.nodes[0];\n for (let i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (\n candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n }\n\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\n `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n\n nodeDueForHealthcheck(node, requestNumber = 0): boolean {\n const isDueForHealthcheck =\n Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\n `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`,\n );\n }\n return isDueForHealthcheck;\n }\n\n initializeMetadataForNodes(): void {\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n\n this.nodes.forEach((node, i) => {\n node.index = i;\n this.setNodeHealthcheck(node, HEALTHY);\n });\n }\n\n setNodeHealthcheck(node, isHealthy): void {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n }\n\n uriFor(endpoint: string, node): string {\n if (node.url != null) {\n return `${node.url}${endpoint}`;\n }\n return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`;\n }\n\n defaultHeaders(): any {\n const defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n }\n\n async timer(seconds): Promise {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n }\n\n customErrorForResponse(\n response: AxiosResponse,\n messageFromServer: string,\n httpBody?: string,\n ): TypesenseError {\n let errorMessage = `Request failed with HTTP code ${response.status}`;\n if (\n typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\"\n ) {\n errorMessage += ` | Server said: ${messageFromServer}`;\n }\n\n let error = new TypesenseError(errorMessage, httpBody, response.status);\n\n if (response.status === 400) {\n error = new RequestMalformed(errorMessage, httpBody, response.status);\n } else if (response.status === 401) {\n error = new RequestUnauthorized(errorMessage, httpBody, response.status);\n } else if (response.status === 404) {\n error = new ObjectNotFound(errorMessage, httpBody, response.status);\n } else if (response.status === 409) {\n error = new ObjectAlreadyExists(errorMessage, httpBody, response.status);\n } else if (response.status === 422) {\n error = new ObjectUnprocessable(errorMessage, httpBody, response.status);\n } else if (response.status >= 500 && response.status <= 599) {\n error = new ServerError(errorMessage, httpBody, response.status);\n } else {\n error = new HTTPError(errorMessage, httpBody, response.status);\n }\n\n return error;\n }\n\n private invokeOnChunkCallback(\n data: {\n conversation_id: string;\n message: string;\n },\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onChunk) {\n try {\n streamConfig.onChunk(data);\n } catch (error) {\n this.logger.warn(`Error in onChunk callback: ${error}`);\n }\n }\n }\n\n private invokeOnCompleteCallback(\n data: SearchResponse,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onComplete) {\n try {\n streamConfig.onComplete(data);\n } catch (error) {\n this.logger.warn(`Error in onComplete callback: ${error}`);\n }\n }\n }\n\n private invokeOnErrorCallback(\n error: unknown,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onError) {\n const errorObj = toErrorWithMessage(error);\n try {\n streamConfig.onError(errorObj);\n } catch (callbackError) {\n this.logger.warn(`Error in onError callback: ${callbackError}`);\n }\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { CollectionFieldSchema, CollectionSchema } from \"./Collection\";\n\nexport interface BaseCollectionCreateSchema {\n name: string;\n default_sorting_field?: string;\n symbols_to_index?: string[];\n token_separators?: string[];\n enable_nested_fields?: boolean;\n metadata?: object;\n voice_query_model?: {\n model_name?: string;\n };\n synonym_sets?: string[];\n curation_sets?: string[];\n}\n\ninterface CollectionCreateSchemaWithSrc\n extends Pick {\n fields?: CollectionFieldSchema[];\n}\n\ninterface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {\n fields: CollectionFieldSchema[];\n}\n\n/**\n * Defines the schema for creating a collection in Typesense.\n *\n * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.\n * Otherwise, `fields` will be required.\n */\nexport type CollectionCreateSchema<\n Options extends CollectionCreateOptions = CollectionCreateOptions,\n> = Options[\"src_name\"] extends string\n ? CollectionCreateSchemaWithSrc\n : CollectionCreateSchemaWithoutSrc;\n\nexport interface CollectionCreateOptions {\n src_name?: string;\n}\n\nexport interface CollectionsRetrieveOptions {\n exclude_fields?: string;\n}\n\nconst RESOURCEPATH = \"/collections\";\n\nexport default class Collections {\n constructor(private apiCall: ApiCall) {}\n\n async create(\n schema: CollectionCreateSchema,\n options?: Options,\n ): Promise {\n return this.apiCall.post(RESOURCEPATH, schema, options);\n }\n\n async retrieve(\n options: CollectionsRetrieveOptions = {},\n ): Promise {\n return this.apiCall.get(RESOURCEPATH, options);\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import TypesenseError from \"./TypesenseError\";\nimport type { DocumentImportParameters, ImportResponse } from \"../Documents\";\nimport { ReadStream } from \"node:fs\";\n\ninterface ImportErrorPayload {\n documentsInJSONLFormat: string | ReadStream;\n options: DocumentImportParameters;\n failedItems: ImportResponse[];\n successCount: number;\n}\n\nexport default class ImportError extends TypesenseError {\n payload: ImportErrorPayload;\n importResults: ImportResponse[];\n constructor(\n message: string,\n importResults: ImportResponse[],\n payload: ImportErrorPayload,\n ) {\n super(message);\n this.importResults = importResults;\n this.payload = payload;\n }\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import { AxiosRequestConfig } from \"axios\";\nimport type { DocumentSchema } from \"./Documents\";\nimport { HttpClient } from \"./ApiCall\";\nimport type { RequestParams } from \"./Types\";\n\nconst defaultCacheResponseForSeconds = 2 * 60;\nconst defaultMaxSize = 100;\n\ninterface CacheEntry {\n requestTimestamp: number;\n response: T;\n}\n\ninterface PromiseCacheEntry {\n requestTimestamp: number;\n responsePromise: Promise;\n}\n\nexport default class RequestWithCache {\n private responseCache: Map> = new Map();\n private responsePromiseCache: Map> =\n new Map();\n\n clearCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n\n async perform<\n const TContext extends HttpClient,\n const TMethod extends keyof HttpClient,\n const TDoc extends DocumentSchema[],\n TResult,\n >(\n requestContext: TContext,\n methodName: TMethod,\n requestParams: RequestParams,\n cacheOptions: CacheOptions | undefined,\n ): Promise {\n const {\n cacheResponseForSeconds = defaultCacheResponseForSeconds,\n maxSize = defaultMaxSize,\n } = cacheOptions || {};\n const isCacheDisabled =\n cacheOptions === undefined ||\n cacheResponseForSeconds <= 0 ||\n maxSize <= 0;\n\n const {\n path,\n queryParams,\n body,\n headers,\n streamConfig,\n abortSignal,\n responseType,\n isStreamingRequest,\n } = requestParams;\n\n if (isCacheDisabled) {\n return this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n }\n\n const requestParamsJSON = JSON.stringify(requestParams);\n const cacheEntry = this.responseCache.get(requestParamsJSON);\n const now = Date.now();\n\n if (cacheEntry) {\n const isEntryValid =\n now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestParamsJSON);\n this.responseCache.set(requestParamsJSON, cacheEntry);\n return cacheEntry.response as TResult;\n } else {\n this.responseCache.delete(requestParamsJSON);\n }\n }\n\n const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON);\n\n if (cachePromiseEntry) {\n const isEntryValid =\n now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestParamsJSON);\n this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry);\n return cachePromiseEntry.responsePromise as Promise;\n } else {\n this.responsePromiseCache.delete(requestParamsJSON);\n }\n }\n\n const responsePromise = this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n\n this.responsePromiseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n responsePromise,\n });\n\n const response = await responsePromise;\n this.responseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n response: response,\n });\n\n const isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n const oldestEntry = this.responseCache.keys().next().value;\n if (oldestEntry) {\n this.responseCache.delete(oldestEntry);\n }\n }\n const isResponsePromiseCacheOverMaxSize =\n this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n const oldestEntry = this.responsePromiseCache.keys().next().value;\n if (oldestEntry) {\n this.responsePromiseCache.delete(oldestEntry);\n }\n }\n return response;\n }\n\n private executeRequest(\n context: HttpClient,\n methodName: keyof HttpClient,\n path: string,\n queryParams: Record = {},\n body?: unknown,\n headers?: Record,\n options?: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"];\n streamConfig?: any;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise {\n const method = context[methodName];\n\n switch (methodName) {\n case \"get\":\n return (method as HttpClient[\"get\"]).call(context, path, queryParams, {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n }) as Promise;\n\n case \"delete\":\n return (method as HttpClient[\"delete\"]).call(\n context,\n path,\n queryParams,\n ) as Promise;\n\n case \"post\":\n return (method as HttpClient[\"post\"]).call(\n context,\n path,\n body,\n queryParams,\n headers || {},\n {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n },\n ) as Promise;\n\n case \"put\":\n case \"patch\":\n return (method as HttpClient[typeof methodName]).call(\n context,\n path,\n body,\n queryParams,\n ) as Promise;\n\n default:\n throw new Error(`Unsupported method: ${String(methodName)}`);\n }\n }\n}\n\ninterface CacheOptions {\n cacheResponseForSeconds?: number;\n maxSize?: number;\n}\n\nexport type { RequestParams } from \"./Types\";\n","import RequestWithCache from \"./RequestWithCache\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport Collections from \"./Collections\";\nimport type {\n DocumentSchema,\n SearchOptions,\n SearchParamsWithPreset,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport { SearchableDocuments, SearchParams } from \"./Types\";\n\nconst RESOURCEPATH = \"/documents\";\n\nexport class SearchOnlyDocuments\n implements SearchableDocuments\n{\n protected requestWithCache: RequestWithCache = new RequestWithCache();\n\n constructor(\n protected collectionName: string,\n protected apiCall: ApiCall,\n protected configuration: Configuration,\n ) {}\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n abortSignal = null,\n }: SearchOptions = {},\n ): Promise> {\n const additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n\n const { streamConfig, ...rest } = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(searchParameters);\n\n const queryParams = {\n ...additionalQueryParams,\n ...rest,\n };\n\n const isStreamingRequest = queryParams.conversation_stream === true;\n\n return this.requestWithCache.perform<\n ApiCall,\n \"get\",\n [T],\n SearchResponse\n >(\n this.apiCall,\n \"get\",\n {\n path: this.endpointPath(\"search\"),\n queryParams,\n streamConfig,\n abortSignal,\n isStreamingRequest,\n },\n {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n },\n );\n }\n\n protected endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + operation\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import type { ReadStream } from \"fs\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport { ImportError, RequestMalformed } from \"./Errors\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport {\n SearchParams,\n SearchResponseRequestParams,\n WriteableDocuments,\n} from \"./Types\";\n\n// Todo: use generic to extract filter_by values\nexport type DeleteQuery =\n | {\n truncate?: true;\n }\n | {\n truncate?: never;\n filter_by?: string;\n batch_size?: number;\n ignore_not_found?: boolean;\n return_doc?: boolean;\n return_id?: boolean;\n };\n\nexport interface DeleteResponse {\n num_deleted: number;\n documents?: T[];\n ids?: string[];\n}\n\ninterface ImportResponseSuccess {\n success: true;\n error?: never;\n document?: T;\n id?: string;\n code?: never;\n}\n\nexport interface ImportResponseFail {\n success: false;\n error: string;\n document?: T;\n id?: string;\n code: number;\n}\n\nexport type ImportResponse = ImportResponseSuccess | ImportResponseFail;\n\nexport type DocumentSchema = Record;\n\nexport interface SearchParamsWithPreset<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n preset: string;\n}\n\ntype SearchResponseHighlightObject = {\n matched_tokens?: string[];\n snippet?: string;\n value?: string;\n};\n\nexport type SearchResponseHighlight = T extends string | number\n ? SearchResponseHighlightObject\n : {\n [TAttribute in keyof T]?: SearchResponseHighlight;\n };\n\nexport interface SearchResponseHit {\n curated?: true;\n highlights?: [\n {\n field: keyof T;\n snippet?: string;\n value?: string;\n snippets?: string[];\n indices?: number[];\n matched_tokens: string[][] | string[];\n },\n ];\n highlight: SearchResponseHighlight;\n document: T;\n text_match: number;\n text_match_info?: {\n best_field_score: `${number}`; // To prevent scores from being truncated by JSON spec\n best_field_weight: number;\n fields_matched: number;\n score: `${number}`; // To prevent scores from being truncated by JSON spec\n tokens_matched: number;\n };\n geo_distance_meters?: {\n location: number\n };\n}\n\nexport interface SearchResponseFacetCountSchema {\n counts: {\n count: number;\n highlighted: string;\n value: string;\n parent?: Record;\n }[];\n field_name: keyof T;\n sampled: boolean;\n stats: {\n avg?: number;\n max?: number;\n min?: number;\n sum?: number;\n total_values?: number;\n };\n}\n\ninterface LLMResponse {\n content: string;\n extraction_method: string;\n model: string;\n}\n\n// Todo: we could infer whether this is a grouped response by adding the search params as a generic\nexport interface SearchResponse {\n facet_counts?: SearchResponseFacetCountSchema[];\n found: number;\n found_docs?: number;\n out_of: number;\n page: number;\n request_params: SearchResponseRequestParams;\n search_time_ms: number;\n search_cutoff?: boolean;\n hits?: SearchResponseHit[];\n grouped_hits?: {\n group_key: string[];\n hits: SearchResponseHit[];\n found?: number;\n }[];\n parsed_nl_query?: {\n parse_time_ms: number;\n generated_params: SearchParams;\n augmented_params: SearchParams;\n llm_response?: LLMResponse;\n };\n conversation?: {\n answer: string;\n conversation_history: {\n conversation: object[];\n id: string;\n last_updated: number;\n ttl: number;\n };\n conversation_id: string;\n query: string;\n };\n error?: string;\n code?: number;\n metadata?: JsonRecord;\n}\n\ntype JSONPrimitive = string | number | boolean | null;\n\ntype JsonRecord = {\n [key: string]: JSONPrimitive | JSONPrimitive[] | JsonRecord;\n};\n\nexport interface DocumentWriteParameters {\n dirty_values?: \"coerce_or_reject\" | \"coerce_or_drop\" | \"drop\" | \"reject\";\n action?: \"create\" | \"update\" | \"upsert\" | \"emplace\";\n}\n\nexport interface UpdateByFilterParameters {\n filter_by?: string;\n}\n\nexport interface UpdateByFilterResponse {\n num_updated: number;\n}\n\nexport interface DocumentImportParameters extends DocumentWriteParameters {\n batch_size?: number;\n remote_embedding_batch_size?: number;\n remote_embedding_timeout_ms?: number;\n remote_embedding_num_tries?: number;\n return_doc?: boolean;\n return_id?: boolean;\n throwOnFail?: boolean;\n}\n\nexport interface DocumentsExportParameters {\n filter_by?: string;\n include_fields?: string;\n exclude_fields?: string;\n}\n\nexport interface SearchOptions {\n cacheSearchResultsForSeconds?: number;\n abortSignal?: AbortSignal | null;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nexport default class Documents\n extends SearchOnlyDocuments\n implements WriteableDocuments\n{\n constructor(\n collectionName: string,\n apiCall: ApiCall,\n configuration: Configuration,\n ) {\n super(collectionName, apiCall, configuration);\n }\n\n async create(\n document: T,\n options: Omit = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(this.endpointPath(), document, options);\n }\n\n async upsert(document: T, options: Omit = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"upsert\" }),\n );\n }\n\n async update(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n async update(document: T, options: Omit): Promise;\n async update(\n document: T,\n options: Omit | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"update\" }),\n );\n }\n }\n\n async emplace(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n async emplace(\n document: T,\n options: Omit,\n ): Promise;\n async emplace(\n document: T,\n options: Omit | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"emplace\" }),\n );\n }\n }\n\n async delete(\n query: DeleteQuery = {} as DeleteQuery,\n ): Promise> {\n return this.apiCall.delete>(this.endpointPath(), query);\n }\n\n async createMany(documents: T[], options: DocumentImportParameters = {}) {\n this.configuration.logger.warn(\n \"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\",\n );\n return this.import(documents, options);\n }\n\n /**\n * Import a set of documents in a batch.\n * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects.\n * @param options\n * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results.\n */\n async import(\n documents: string,\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[],\n options?: DocumentImportParameters,\n ): Promise[]>;\n async import(\n documents: T[] | string,\n options: DocumentImportParameters = {},\n ): Promise[]> {\n // Set default value for throwOnFail if not provided\n const finalOptions = { throwOnFail: true, ...options };\n let documentsInJSONLFormat;\n if (Array.isArray(documents)) {\n if (documents.length === 0) {\n throw new RequestMalformed(\"No documents provided\");\n }\n try {\n documentsInJSONLFormat = documents\n .map((document) => JSON.stringify(document))\n .join(\"\\n\");\n } catch (error: any) {\n // if rangeerror, throw custom error message\n if (\n error instanceof RangeError &&\n error.message.includes(\"Too many properties to enumerate\")\n ) {\n throw new Error(`${error}\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n `);\n }\n\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n } else {\n documentsInJSONLFormat = documents;\n if (isEmptyString(documentsInJSONLFormat)) {\n throw new RequestMalformed(\"No documents provided\");\n }\n }\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: finalOptions,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n if (Array.isArray(documents)) {\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter(\n (r) => r.success === false,\n );\n if (failedItems.length > 0 && finalOptions.throwOnFail) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat,\n options: finalOptions,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n } else {\n return resultsInJSONLFormat as string;\n }\n }\n /**\n * Imports documents from a NodeJS readable stream of JSONL.\n */\n async importStream(\n readableStream: ReadStream,\n options: DocumentImportParameters = {},\n ): Promise[]> {\n const finalOptions = { throwOnFail: true, ...options };\n \n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: finalOptions,\n bodyParameters: readableStream,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter((r) => r.success === false);\n if (failedItems.length > 0 && finalOptions.throwOnFail) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat: readableStream,\n options: finalOptions,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n }\n\n /**\n * Returns a JSONL string for all the documents in this collection\n */\n async export(options: DocumentsExportParameters = {}): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options);\n }\n\n /**\n * Returns a NodeJS readable stream of JSONL for all the documents in this collection.\n */\n async exportStream(\n options: DocumentsExportParameters = {},\n ): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n });\n }\n}\n\nfunction isEmptyString(str: string | null | undefined): boolean {\n return str == null || str === \"\" || str.length === 0;\n}\n\n/**\n * @deprecated Import from './Types' instead\n */\nexport type {\n SearchParams,\n WriteableDocuments,\n SearchableDocuments,\n DropTokensMode,\n OperationMode,\n UnionArrayKeys,\n UnionArraySearchParams,\n ArraybleParams,\n ExtractBaseTypes,\n SearchResponseRequestParams,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { OverrideSchema } from \"./Override\";\n\nconst RESOURCEPATH = \"/overrides\";\n\nexport interface OverrideRuleQuerySchema {\n query?: string;\n match?: \"exact\" | \"contains\";\n}\n\nexport interface OverrideRuleFilterSchema {\n filter_by?: string;\n}\n\nexport interface OverrideRuleTagsSchema {\n tags?: string[];\n}\n\nexport interface OverrideCreateSchema {\n rule: OverrideRuleQuerySchema &\n OverrideRuleFilterSchema &\n OverrideRuleTagsSchema;\n filter_by?: string;\n sort_by?: string;\n remove_matched_tokens?: boolean;\n replace_query?: string;\n includes?: Array<{\n id: string;\n position: number;\n }>;\n excludes?: Array<{ id: string }>;\n filter_curated_hits?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n stop_processing?: boolean;\n metadata?: object;\n}\n\nexport interface OverridesRetrieveSchema {\n overrides: OverrideSchema[];\n}\n\nexport default class Overrides {\n constructor(\n private collectionName: string,\n private apiCall: ApiCall,\n ) {}\n\n async upsert(\n overrideId: string,\n params: OverrideCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(overrideId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Collections.RESOURCEPATH}/${this.collectionName}${\n Overrides.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Overrides, { OverrideCreateSchema } from \"./Overrides\";\n\nexport interface OverrideSchema extends OverrideCreateSchema {\n id: string;\n}\n\nexport interface OverrideDeleteSchema {\n id: string;\n}\n\nexport default class Override {\n constructor(\n private collectionName: string,\n private overrideId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { SynonymSchema } from \"./Synonym\";\n\nconst RESOURCEPATH = \"/synonyms\";\n\nexport interface SynonymCreateSchema {\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymsRetrieveSchema {\n synonyms: SynonymSchema[];\n}\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.synonymSets` (new Synonym Sets APIs).\n */\nexport default class Synonyms {\n private static hasWarnedDeprecation = false;\n constructor(private collectionName: string, private apiCall: ApiCall) {}\n\n async upsert(\n synonymId: string,\n params: SynonymCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(synonymId),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string) {\n if (!Synonyms.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'synonyms' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets ('synonym_sets').\",\n );\n Synonyms.hasWarnedDeprecation = true;\n }\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${\n Synonyms.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Synonyms, { SynonymCreateSchema } from \"./Synonyms\";\n\nexport interface SynonymSchema extends SynonymCreateSchema {\n id: string;\n}\n\nexport interface SynonymDeleteSchema {\n id: string;\n}\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.synonymSets` (new Synonym Sets APIs).\n */\nexport default class Synonym {\n private static hasWarnedDeprecation = false;\n constructor(\n private collectionName: string,\n private synonymId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n if (!Synonym.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'synonym' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets 'synonym_sets'.\",\n );\n Synonym.hasWarnedDeprecation = true;\n }\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Documents, {\n DeleteQuery,\n DocumentSchema,\n DocumentWriteParameters,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nexport interface DocumentsRetrieveParameters {\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n}\n\nexport class Document {\n constructor(\n private collectionName: string,\n private documentId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(options?: DocumentsRetrieveParameters): Promise {\n const queryParams = normalizeArrayableParams(options ?? {})\n \n return this.apiCall.get(this.endpointPath(), queryParams);\n }\n\n async delete(options?: DeleteQuery): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async update(\n partialDocument: Partial,\n options: DocumentWriteParameters = {}\n ): Promise {\n return this.apiCall.patch(this.endpointPath(), partialDocument, options);\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport type {\n BaseCollectionCreateSchema,\n CollectionCreateSchema,\n} from \"./Collections\";\nimport Documents, { DocumentSchema } from \"./Documents\";\nimport { ObjectNotFound } from \"./Errors\";\nimport Overrides from \"./Overrides\";\nimport Override from \"./Override\";\nimport Synonyms from \"./Synonyms\";\nimport Synonym from \"./Synonym\";\nimport { Document } from \"./Document\";\n\nexport type FieldType =\n | \"string\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"bool\"\n | \"geopoint\"\n | \"geopolygon\"\n | \"geopoint[]\"\n | \"string[]\"\n | \"int32[]\"\n | \"int64[]\"\n | \"float[]\"\n | \"bool[]\"\n | \"object\"\n | \"object[]\"\n | \"auto\"\n | \"string*\"\n | \"image\";\n\nexport interface CollectionFieldSchema\n extends Partial<\n Pick\n > {\n name: string;\n type: FieldType;\n optional?: boolean;\n facet?: boolean;\n index?: boolean;\n sort?: boolean;\n locale?: string;\n infix?: boolean;\n stem?: boolean;\n num_dim?: number;\n store?: boolean;\n range_index?: boolean;\n [t: string]: unknown;\n}\n\nexport interface CollectionSchema extends Required {\n created_at: number;\n num_documents: number;\n num_memory_shards: number;\n}\n\nexport interface CollectionDropFieldSchema {\n name: string;\n drop: true;\n}\n\nexport interface CollectionUpdateSchema\n extends Partial> {\n fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];\n}\n\nexport interface CollectionDeleteOptions {\n compact_store?: boolean;\n}\n\nexport default class Collection {\n private readonly _documents: Documents;\n private individualDocuments: Record> = {};\n private readonly _overrides: Overrides;\n private individualOverrides: Record = {};\n private readonly _synonyms: Synonyms;\n private individualSynonyms: Record = {};\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any,\n ) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n\n this._documents = new Documents(\n this.name,\n this.apiCall,\n this.configuration,\n );\n this._overrides = new Overrides(this.name, this.apiCall);\n this._synonyms = new Synonyms(this.name, this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(schema: CollectionUpdateSchema): Promise {\n return this.apiCall.patch(this.endpointPath(), schema);\n }\n\n async delete(\n options: CollectionDeleteOptions = {},\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async exists(): Promise {\n try {\n await this.retrieve();\n return true;\n } catch (e) {\n if (e instanceof ObjectNotFound) return false;\n throw e;\n }\n }\n\n documents(): Documents;\n documents(documentId: string): Document;\n documents(documentId?: string): Document | Documents {\n if (!documentId) {\n return this._documents;\n } else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document(\n this.name,\n documentId,\n this.apiCall,\n );\n }\n return this.individualDocuments[documentId];\n }\n }\n\n overrides(): Overrides;\n overrides(overrideId: string): Override;\n overrides(overrideId?: string): Overrides | Override {\n if (overrideId === undefined) {\n return this._overrides;\n } else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override(\n this.name,\n overrideId,\n this.apiCall,\n );\n }\n return this.individualOverrides[overrideId];\n }\n }\n\n synonyms(): Synonyms;\n synonyms(synonymId: string): Synonym;\n synonyms(synonymId?: string): Synonyms | Synonym {\n if (synonymId === undefined) {\n return this._synonyms;\n } else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym(\n this.name,\n synonymId,\n this.apiCall,\n );\n }\n return this.individualSynonyms[synonymId];\n }\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/aliases\";\n\nexport interface CollectionAliasCreateSchema {\n collection_name: string;\n}\n\nexport interface CollectionAliasSchema extends CollectionAliasCreateSchema {\n name: string;\n}\n\nexport interface CollectionAliasesResponseSchema {\n aliases: CollectionAliasSchema[];\n}\n\nexport default class Aliases {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n name: string,\n mapping: CollectionAliasCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n mapping\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n private endpointPath(aliasName): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import Aliases, { CollectionAliasSchema } from \"./Aliases\";\nimport ApiCall from \"./ApiCall\";\n\nexport default class Alias {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import { createHmac } from \"crypto\";\nimport ApiCall from \"./ApiCall\";\nimport { KeyCreateSchema, KeySchema } from \"./Key\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/keys\";\n\nexport interface KeysRetrieveSchema {\n keys: KeySchema[];\n}\n\nexport interface GenerateScopedSearchKeyParams<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n expires_at?: number;\n cache_ttl?: number;\n limit_multi_searches?: number;\n}\n\nexport default class Keys {\n constructor(private apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(params: KeyCreateSchema): Promise {\n return this.apiCall.post(Keys.RESOURCEPATH, params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n generateScopedSearchKey(\n searchKey: string,\n parameters: GenerateScopedSearchKeyParams,\n ): string {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when used with the search endpoint.\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(parameters);\n const paramsJSON = JSON.stringify(normalizedParams);\n const digest = Buffer.from(\n createHmac(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"),\n );\n const keyPrefix = searchKey.substr(0, 4);\n const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`;\n\n return Buffer.from(rawScopedKey).toString(\"base64\");\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Keys from \"./Keys\";\n\nexport interface KeyCreateSchema {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n actions: Actions[] | (string & {})[];\n collections: string[];\n description?: string;\n value?: string;\n value_prefix?: string;\n expires_at?: number;\n autodelete?: boolean;\n}\n\ntype CRUDActions = \"create\" | \"delete\" | \"get\" | \"list\" | \"*\";\ntype DocumentActionTypes =\n | \"search\"\n | \"get\"\n | \"create\"\n | \"upsert\"\n | \"update\"\n | \"delete\"\n | \"import\"\n | \"export\"\n | \"*\";\n\ntype CRUDFeatures =\n | \"collections\"\n | \"aliases\"\n | \"synonyms\"\n | \"overrides\"\n | \"stopwords\"\n | \"keys\"\n | \"analytics\"\n | \"analytics/rules\";\n\ntype FeatureActions = `${CRUDFeatures}:${CRUDActions}`;\ntype DocumentActions = `documents:${DocumentActionTypes}`;\ntype AnalyticsEventActions = \"analytics/events:create\";\ntype MiscActions = `${`metrics.json` | `stats.json` | `debug`}.list` | \"*\";\n\nexport type Actions =\n | FeatureActions\n | DocumentActions\n | AnalyticsEventActions\n | MiscActions;\n\nexport interface KeyDeleteSchema {\n id: number;\n}\n\nexport interface KeySchema extends KeyCreateSchema {\n id: number;\n}\n\nexport default class Key {\n constructor(\n private id: number,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/debug\";\n\nexport interface DebugResponseSchema {\n state: number;\n version: string;\n}\n\nexport default class Debug {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/metrics.json\";\n\nexport interface MetricsResponse {\n [key: `system_cpu${number}_active_percentage`]: string;\n system_cpu_active_percentage: string;\n system_disk_total_bytes: string;\n system_disk_used_bytes: string;\n system_memory_total_bytes: string;\n system_memory_total_swap_bytes?: string;\n system_memory_used_bytes: string;\n system_memory_used_swap_bytes?: string;\n system_network_received_bytes: string;\n system_network_sent_bytes: string;\n typesense_memory_active_bytes: string;\n typesense_memory_allocated_bytes: string;\n typesense_memory_fragmentation_ratio: string;\n typesense_memory_mapped_bytes: string;\n typesense_memory_metadata_bytes: string;\n typesense_memory_resident_bytes: string;\n typesense_memory_retained_bytes: string;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/stats.json\";\n\nexport interface EndpointStats {\n [endpoint: string]: number;\n}\n\nexport interface StatsResponse {\n delete_latency_ms?: number;\n delete_requests_per_second?: number;\n import_latency_ms?: number;\n import_requests_per_second?: number;\n latency_ms?: EndpointStats;\n overloaded_requests_per_second?: number;\n pending_write_batches?: number;\n requests_per_second?: EndpointStats;\n search_latency_ms?: number;\n search_requests_per_second?: number;\n total_requests_per_second?: number;\n write_latency_ms?: number;\n write_requests_per_second?: number;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/health\";\n\nexport interface HealthResponse {\n ok: boolean;\n}\n\nexport default class Health {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/operations\";\n\nexport interface SchemaChangeStatus {\n collection: string;\n validated_docs: number;\n altered_docs: number;\n}\n\nexport default class Operations {\n constructor(private apiCall: ApiCall) {}\n\n async perform(\n operationName:\n | \"vote\"\n | \"snapshot\"\n | \"cache/clear\"\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- Can't use `object` here, it needs to intersect with `{}`\n | (string & {}),\n queryParameters: Record = {},\n ): Promise {\n return this.apiCall.post(\n `${RESOURCEPATH}/${operationName}`,\n {},\n queryParameters,\n );\n }\n\n async getSchemaChanges(): Promise {\n return this.apiCall.get(\n `${RESOURCEPATH}/schema_changes`,\n );\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport type Configuration from \"./Configuration\";\nimport RequestWithCache from \"./RequestWithCache\";\nimport type {\n DocumentSchema,\n ExtractBaseTypes,\n SearchOptions,\n SearchParams,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\nimport { Logger } from \"loglevel\";\n\nconst RESOURCEPATH = \"/multi_search\";\n\nexport default class MultiSearch {\n private requestWithCache: RequestWithCache;\n readonly logger: Logger;\n\n constructor(\n private apiCall: ApiCall,\n private configuration: Configuration,\n private useTextContentType: boolean = false,\n ) {\n this.requestWithCache = new RequestWithCache();\n this.logger = this.apiCall.logger;\n }\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithUnionSchema,\n commonParams?: MultiSearchUnionParameters,\n options?: SearchOptions,\n ): Promise>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithoutUnionSchema,\n commonParams?: MultiSearchResultsParameters,\n options?: SearchOptions,\n ): Promise<{\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsSchema,\n commonParams?:\n | MultiSearchUnionParameters\n | MultiSearchResultsParameters,\n options?: SearchOptions,\n ): Promise> {\n const params = commonParams ? { ...commonParams } : {};\n const cacheSearchResultsForSeconds =\n options?.cacheSearchResultsForSeconds ??\n this.configuration.cacheSearchResultsForSeconds;\n\n if (this.configuration.useServerSideSearchCache === true) {\n params.use_cache = true;\n }\n\n if (searchRequests.union === true && this.hasAnySearchObjectPagination(searchRequests)) {\n this.logger.warn(\n \"Individual `searches` pagination parameters are ignored when `union: true` is set. Use a top-level pagination parameter instead. See https://typesense.org/docs/29.0/api/federated-multi-search.html#union-search\"\n );\n }\n\n const normalizedSearchRequests: Omit & {\n searches: ExtractBaseTypes>[];\n } = {\n union: searchRequests.union,\n searches: searchRequests.searches.map(\n normalizeArrayableParams<\n T[number],\n SearchParams,\n Infix\n >,\n ),\n };\n\n const { streamConfig, ...paramsWithoutStream } = params;\n const normalizedQueryParams = normalizeArrayableParams(\n paramsWithoutStream as SearchParams,\n );\n\n return this.requestWithCache.perform(\n this.apiCall,\n \"post\",\n {\n path: RESOURCEPATH,\n body: normalizedSearchRequests,\n queryParams: normalizedQueryParams,\n headers: this.useTextContentType\n ? { \"content-type\": \"text/plain\" }\n : {},\n streamConfig,\n abortSignal: options?.abortSignal,\n isStreamingRequest: this.isStreamingRequest(params),\n },\n cacheSearchResultsForSeconds !== undefined\n ? { cacheResponseForSeconds: cacheSearchResultsForSeconds }\n : undefined,\n );\n }\n\n private isStreamingRequest(commonParams: { streamConfig?: unknown }) {\n return commonParams.streamConfig !== undefined;\n }\n\n private hasAnySearchObjectPagination(searchRequests: MultiSearchRequestsSchema) {\n return searchRequests.searches.some(search => search.page !== undefined || search.per_page !== undefined || search.offset !== undefined || search.limit !== undefined || search.limit_hits !== undefined);\n }\n}\n\nexport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport { PresetSchema } from \"./Preset\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { MultiSearchRequestsSchema } from \"./MultiSearch\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/presets\";\n\nexport interface PresetCreateSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n value: SearchParams | MultiSearchRequestsSchema;\n}\n\nexport interface PresetsRetrieveSchema {\n presets: PresetSchema[];\n}\n\nexport default class Presets {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n presetId: string,\n params: PresetCreateSchema,\n ): Promise> {\n if (typeof params.value === \"object\" && \"searches\" in params.value) {\n const normalizedParams = params.value.searches.map((search) =>\n normalizeArrayableParams, Infix>(search),\n );\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: { searches: normalizedParams },\n });\n }\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(params.value);\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: normalizedParams,\n });\n }\n\n async retrieve(): Promise<\n PresetsRetrieveSchema\n > {\n return this.apiCall.get>(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Presets.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { DocumentSchema } from \"./Documents\";\nimport Presets, { PresetCreateSchema } from \"./Presets\";\n\nexport interface PresetSchema\n extends PresetCreateSchema {\n name: string;\n}\n\nexport interface PresetDeleteSchema {\n name: string;\n}\n\nexport default class Preset {\n constructor(\n private presetId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise> {\n return this.apiCall.get>(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchemaV1,\n AnalyticsRuleSchemaV1,\n} from \"./AnalyticsRuleV1\";\n\nexport interface AnalyticsRulesRetrieveSchemaV1 {\n rules: AnalyticsRuleSchemaV1[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRulesV1 {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n name: string,\n params: AnalyticsRuleCreateSchemaV1\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRulesV1.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRulesV1 from \"./AnalyticsRulesV1\";\n\nexport interface AnalyticsRuleCreateSchemaV1 {\n type: \"popular_queries\" | \"nohits_queries\" | \"counter\" | \"log\";\n params: {\n enable_auto_aggregation?: boolean;\n source: {\n collections: string[];\n events?: {\n type: string;\n weight?: number;\n name: string;\n }[];\n };\n expand_query?: boolean;\n destination?: {\n collection: string;\n counter_field?: string;\n };\n limit?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchemaV1 {\n name: string;\n}\n\nexport interface AnalyticsRuleSchemaV1 extends AnalyticsRuleCreateSchemaV1 {\n name: string;\n}\n\nexport default class AnalyticsRuleV1 {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRulesV1.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport { AnalyticsEventCreateSchema } from \"./AnalyticsEvent\";\n\nconst RESOURCEPATH = \"/analytics/events\";\n\nexport interface AnalyticsEventsRetrieveSchema {\n events: {\n name: string;\n event_type: string;\n collection: string;\n timestamp: number;\n user_id: string;\n doc_id?: string;\n doc_ids?: string[];\n query?: string;\n }[];\n}\n\nexport default class AnalyticsEvents {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: AnalyticsEventCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(params: {\n user_id: string;\n name: string;\n n: number;\n }): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n params,\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsEvents.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRulesV1 from \"./AnalyticsRulesV1\";\nimport AnalyticsRuleV1 from \"./AnalyticsRuleV1\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.analytics` (new Analytics APIs).\n */\nexport default class AnalyticsV1 {\n private static hasWarnedDeprecation = false;\n private readonly _analyticsRules: AnalyticsRulesV1;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRulesV1(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n rules(): AnalyticsRulesV1;\n rules(id: string): AnalyticsRuleV1;\n rules(id?: string): AnalyticsRulesV1 | AnalyticsRuleV1 {\n if (!AnalyticsV1.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'analyticsV1' is deprecated starting with Typesense Server v30 and will be removed in a future release. Please use 'analytics' instead.\",\n );\n AnalyticsV1.hasWarnedDeprecation = true;\n }\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRuleV1(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchema,\n AnalyticsRuleSchema,\n AnalyticsRuleUpsertSchema,\n} from \"./AnalyticsRule\";\n\nexport interface AnalyticsRulesRetrieveSchema {\n rules: AnalyticsRuleSchema[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRules {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params:\n | AnalyticsRuleCreateSchema\n | AnalyticsRuleCreateSchema[],\n ): Promise<\n | AnalyticsRuleSchema\n | (\n | AnalyticsRuleSchema\n | {\n error?: string;\n }\n )[]\n > {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n {},\n {},\n );\n }\n\n async upsert(\n name: string,\n params: AnalyticsRuleUpsertSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n async retrieve(ruleTag?: string): Promise {\n const query: Record = {};\n if (ruleTag) {\n query[\"rule_tag\"] = ruleTag;\n }\n return this.apiCall.get(this.endpointPath(), query);\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRules.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\n\nexport interface AnalyticsRuleCreateSchema {\n name: string;\n type: string;\n collection: string;\n event_type: string;\n rule_tag?: string;\n params?: {\n destination_collection?: string;\n limit?: number;\n capture_search_requests?: boolean;\n meta_fields?: string[];\n expand_query?: boolean;\n counter_field?: string;\n weight?: number;\n };\n}\n\nexport interface AnalyticsRuleUpsertSchema {\n name?: string;\n type?: string;\n collection?: string;\n event_type?: string;\n rule_tag?: string;\n params?: {\n destination_collection?: string;\n limit?: number;\n capture_search_requests?: boolean;\n meta_fields?: string[];\n expand_query?: boolean;\n counter_field?: string;\n weight?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchema {\n name: string;\n}\n\nexport interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema {\n name: string;\n}\n\nexport default class AnalyticsRule {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\nimport AnalyticsRule from \"./AnalyticsRule\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\nexport default class Analytics {\n private readonly _analyticsRules: AnalyticsRules;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n rules(): AnalyticsRules;\n rules(id: string): AnalyticsRule;\n rules(id?: string): AnalyticsRules | AnalyticsRule {\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { StopwordSchema } from \"./Stopword\";\n\nconst RESOURCEPATH = \"/stopwords\";\n\nexport interface StopwordCreateSchema {\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordsRetrieveSchema {\n stopwords: StopwordSchema[];\n}\n\nexport default class Stopwords {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n stopwordId: string,\n params: StopwordCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(stopwordId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Stopwords.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Stopwords from \"./Stopwords\";\n\nexport interface StopwordSchema {\n id: string;\n stopwords: string[] | { id: string; stopwords: string[] };\n locale?: string;\n}\n\nexport interface StopwordDeleteSchema {\n id: string;\n}\n\nexport default class Stopword {\n constructor(\n private stopwordId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n ConversationModelCreateSchema,\n ConversationModelSchema,\n} from \"./ConversationModel\";\n\nconst RESOURCEPATH = \"/conversations/models\";\n\nexport default class ConversationModels {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${ConversationModels.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\n\nexport interface ConversationModelCreateSchema {\n id?: string;\n model_name: string;\n api_key?: string;\n system_prompt?: string;\n max_bytes: number;\n history_collection?: string;\n account_id?: string;\n url?: string;\n ttl?: number;\n vllm_url?: string;\n openai_url?: string;\n openai_path?: string;\n}\n\nexport interface ConversationModelDeleteSchema {\n id: string;\n}\n\nexport interface ConversationModelSchema extends ConversationModelCreateSchema {\n id: string;\n}\n\nexport default class ConversationModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async update(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\nimport ConversationModel from \"./ConversationModel\";\nimport { ConversationSchema } from \"./Conversation\";\n\nconst RESOURCEPATH = \"/conversations\";\n\nexport interface ConversationsRetrieveSchema {\n conversations: ConversationSchema[];\n}\n\nexport default class Conversations {\n private readonly _conversationsModels: ConversationModels;\n private readonly individualConversationModels: Record<\n string,\n ConversationModel\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels(this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n models(): ConversationModels;\n models(id: string): ConversationModel;\n models(id?: string): ConversationModels | ConversationModel {\n if (id === undefined) {\n return this._conversationsModels;\n } else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel(\n id,\n this.apiCall,\n );\n }\n return this.individualConversationModels[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Conversations from \"./Conversations\";\n\nexport interface ConversationDeleteSchema {\n id: number;\n}\n\nexport interface ConversationUpdateSchema {\n ttl: number;\n}\n\nexport interface ConversationSchema {\n id: number;\n conversation: object[];\n last_updated: number;\n ttl: number;\n}\n\nexport default class Conversation {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(\n params: ConversationUpdateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { StemmingDictionaryCreateSchema } from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming/dictionaries\";\n\nexport interface StemmingDictionariesRetrieveSchema {\n dictionaries: string[];\n}\n\nexport default class StemmingDictionaries {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n id: string,\n wordRootCombinations: StemmingDictionaryCreateSchema[] | string,\n ): Promise {\n const wordRootCombinationsInJSONLFormat = Array.isArray(\n wordRootCombinations,\n )\n ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join(\"\\n\")\n : wordRootCombinations;\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: {id},\n bodyParameters: wordRootCombinationsInJSONLFormat,\n additionalHeaders: {\"Content-Type\": \"text/plain\"},\n skipConnectionTimeout: true,\n }\n );\n\n return Array.isArray(wordRootCombinations)\n ? resultsInJSONLFormat\n .split(\"\\n\")\n .map((line) => JSON.parse(line) as StemmingDictionaryCreateSchema)\n : resultsInJSONLFormat;\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return operation === undefined\n ? `${StemmingDictionaries.RESOURCEPATH}`\n : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\n\nexport interface StemmingDictionaryCreateSchema {\n root: string;\n word: string;\n}\n\nexport interface StemmingDictionarySchema {\n id: string;\n words: StemmingDictionaryCreateSchema[];\n}\n\nexport interface StemmingDictionaryDeleteSchema {\n id: string;\n}\n\nexport default class StemmingDictionary {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\nimport StemmingDictionary from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming\";\n\nexport default class Stemming {\n private readonly _stemmingDictionaries: StemmingDictionaries;\n private readonly individualStemmingDictionaries: Record<\n string,\n StemmingDictionary\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._stemmingDictionaries = new StemmingDictionaries(this.apiCall);\n }\n\n dictionaries(): StemmingDictionaries;\n dictionaries(id: string): StemmingDictionary;\n dictionaries(id?: string): StemmingDictionaries | StemmingDictionary {\n if (id === undefined) {\n return this._stemmingDictionaries;\n } else {\n if (this.individualStemmingDictionaries[id] === undefined) {\n this.individualStemmingDictionaries[id] = new StemmingDictionary(\n id,\n this.apiCall,\n );\n }\n return this.individualStemmingDictionaries[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/nl_search_models\";\n\n// Base schema with all possible fields\nexport interface NLSearchModelBase {\n model_name: string;\n api_key?: string;\n api_url?: string;\n max_bytes?: number;\n temperature?: number;\n system_prompt?: string;\n // Google-specific parameters\n top_p?: number;\n top_k?: number;\n stop_sequences?: string[];\n api_version?: string;\n // GCP Vertex AI specific\n project_id?: string;\n access_token?: string;\n refresh_token?: string;\n client_id?: string;\n client_secret?: string;\n region?: string;\n max_output_tokens?: number;\n // Cloudflare specific\n account_id?: string;\n}\n\nexport interface NLSearchModelCreateSchema extends NLSearchModelBase {\n id?: string;\n}\n\nexport interface NLSearchModelSchema extends NLSearchModelBase {\n id: string;\n}\n\nexport type NLSearchModelsRetrieveSchema = NLSearchModelSchema[];\n\nexport default class NLSearchModels {\n constructor(private apiCall: ApiCall) {}\n\n async create(\n schema: NLSearchModelCreateSchema,\n ): Promise {\n return this.apiCall.post(this.endpointPath(), schema);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(): string {\n return NLSearchModels.RESOURCEPATH;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n","import ApiCall from \"./ApiCall\";\nimport NLSearchModels from \"./NLSearchModels\";\nimport type { NLSearchModelBase, NLSearchModelSchema } from \"./NLSearchModels\";\n\ntype NLSearchModelUpdateSchema = NLSearchModelBase;\n\nexport interface NLSearchModelDeleteSchema {\n id: string;\n}\n\nexport default class NLSearchModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(\n schema: NLSearchModelUpdateSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), schema);\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${NLSearchModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n\n","import ApiCall from \"./ApiCall\";\n\nexport interface SynonymItemSchema {\n id: string;\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymSetCreateSchema {\n items: SynonymItemSchema[];\n}\n\nexport interface SynonymSetSchema extends SynonymSetCreateSchema {\n name: string;\n}\n\nexport interface SynonymSetsRetrieveSchema {\n synonym_sets: SynonymSetSchema[];\n}\n\nexport default class SynonymSets {\n constructor(private apiCall: ApiCall) {}\n static readonly RESOURCEPATH = \"/synonym_sets\";\n\n async retrieve(): Promise {\n return this.apiCall.get(SynonymSets.RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets, { SynonymItemSchema } from \"./SynonymSets\";\n\nexport default class SynonymSetItems {\n constructor(\n private synonymSetName: string,\n private apiCall: ApiCall,\n ) {}\n\n async upsert(\n itemId: string,\n params: Omit,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(itemId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}/items${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets, { SynonymItemSchema } from \"./SynonymSets\";\n\nexport interface SynonymSetItemDeleteSchema {\n id: string;\n}\n\nexport default class SynonymSetItem {\n constructor(\n private synonymSetName: string,\n private itemId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}/items/${encodeURIComponent(this.itemId)}`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets from \"./SynonymSets\";\nimport type { SynonymSetCreateSchema, SynonymSetSchema } from \"./SynonymSets\";\nimport SynonymSetItems from \"./SynonymSetItems\";\nimport SynonymSetItem from \"./SynonymSetItem\";\n\nexport interface SynonymSetDeleteSchema {\n name: string;\n}\n\nexport type SynonymSetRetrieveSchema = SynonymSetCreateSchema;\n\nexport default class SynonymSet {\n private readonly _items: SynonymSetItems;\n private individualItems: Record = {};\n constructor(\n private synonymSetName: string,\n private apiCall: ApiCall,\n ) {\n this._items = new SynonymSetItems(this.synonymSetName, apiCall);\n }\n\n async upsert(\n params: SynonymSetCreateSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n items(): SynonymSetItems;\n items(itemId: string): SynonymSetItem;\n items(itemId?: string): SynonymSetItems | SynonymSetItem {\n if (itemId === undefined) {\n return this._items;\n } else {\n if (this.individualItems[itemId] === undefined) {\n this.individualItems[itemId] = new SynonymSetItem(\n this.synonymSetName,\n itemId,\n this.apiCall,\n );\n }\n return this.individualItems[itemId];\n }\n }\n\n private endpointPath(): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nexport type CurationRuleSchema =\n | {\n query: string;\n match: \"exact\" | \"contains\";\n filter_by?: string;\n tags?: string[];\n }\n | {\n query?: never;\n match?: never;\n filter_by: string;\n tags?: string[];\n }\n | {\n query?: never;\n match?: never;\n filter_by?: string;\n tags: string[];\n };\n\nexport interface CurationObjectSchema {\n id: string;\n rule: CurationRuleSchema;\n includes?: {\n id: string;\n position: number;\n }[];\n excludes?: {\n id: string;\n }[];\n filter_by?: string;\n sort_by?: string;\n replace_query?: string;\n remove_matched_tokens?: boolean;\n filter_curated_hits?: boolean;\n stop_processing?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n metadata?: Record;\n}\n\nexport interface CurationSetUpsertSchema {\n items: CurationObjectSchema[];\n}\n\nexport interface CurationSetSchema extends CurationSetUpsertSchema {\n name?: string;\n}\n\nexport interface CurationSetsListEntrySchema {\n name: string;\n items: CurationObjectSchema[];\n}\n\nexport interface CurationSetDeleteResponseSchema {\n name: string;\n}\n\nexport default class CurationSets {\n constructor(private apiCall: ApiCall) {}\n static readonly RESOURCEPATH = \"/curation_sets\";\n\n async retrieve(): Promise {\n return this.apiCall.get(\n CurationSets.RESOURCEPATH,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets, { CurationObjectSchema } from \"./CurationSets\";\n\nexport default class CurationSetItems {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}/items${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport CurationSets from \"./CurationSets\";\nimport type { CurationObjectSchema } from \"./CurationSets\";\n\nexport type CurationItemUpsertSchema = Omit;\n\nexport interface CurationItemDeleteResponseSchema {\n id: string;\n}\n\nexport default class CurationSetItem {\n constructor(\n private name: string,\n private itemId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async upsert(\n params: CurationItemUpsertSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(\n this.name,\n )}/items/${encodeURIComponent(this.itemId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets from \"./CurationSets\";\nimport type {\n CurationSetDeleteResponseSchema,\n CurationSetSchema,\n CurationSetUpsertSchema,\n} from \"./CurationSets\";\nimport CurationSetItems from \"./CurationSetItems\";\nimport CurationSetItem from \"./CurationSetItem\";\n\nexport default class CurationSet {\n private readonly _items: CurationSetItems;\n private individualItems: Record = {};\n\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {\n this._items = new CurationSetItems(this.name, apiCall);\n }\n\n async upsert(params: CurationSetUpsertSchema): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n items(): CurationSetItems;\n items(itemId: string): CurationSetItem;\n items(itemId?: string): CurationSetItems | CurationSetItem {\n if (itemId === undefined) {\n return this._items;\n } else {\n if (this.individualItems[itemId] === undefined) {\n this.individualItems[itemId] = new CurationSetItem(\n this.name,\n itemId,\n this.apiCall,\n );\n }\n return this.individualItems[itemId];\n }\n }\n\n private endpointPath(): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","/* eslint-disable no-dupe-class-members */\n\nimport Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Collection from \"./Collection\";\nimport Aliases from \"./Aliases\";\nimport Alias from \"./Alias\";\nimport Keys from \"./Keys\";\nimport Key from \"./Key\";\nimport Debug from \"./Debug\";\nimport Metrics from \"./Metrics\";\nimport Stats from \"./Stats\";\nimport Health from \"./Health\";\nimport Operations from \"./Operations\";\nimport MultiSearch from \"./MultiSearch\";\nimport Presets from \"./Presets\";\nimport Preset from \"./Preset\";\nimport AnalyticsV1 from \"./AnalyticsV1\";\nimport Analytics from \"./Analytics\";\nimport Stopwords from \"./Stopwords\";\nimport Stopword from \"./Stopword\";\nimport Conversations from \"./Conversations\";\nimport Conversation from \"./Conversation\";\nimport Stemming from \"./Stemming\";\nimport NLSearchModels from \"./NLSearchModels\";\nimport NLSearchModel from \"./NLSearchModel\";\nimport SynonymSets from \"./SynonymSets\";\nimport SynonymSet from \"./SynonymSet\";\nimport CurationSets from \"./CurationSets\";\nimport CurationSet from \"./CurationSet\";\nexport default class Client {\n configuration: Configuration;\n apiCall: ApiCall;\n debug: Debug;\n metrics: Metrics;\n stats: Stats;\n health: Health;\n operations: Operations;\n multiSearch: MultiSearch;\n analytics: Analytics;\n analyticsV1: AnalyticsV1;\n stemming: Stemming;\n private readonly _collections: Collections;\n private readonly individualCollections: Record;\n private readonly _aliases: Aliases;\n private readonly individualAliases: Record;\n private readonly _keys: Keys;\n private readonly individualKeys: Record;\n private readonly _presets: Presets;\n private readonly individualPresets: Record;\n private readonly _stopwords: Stopwords;\n private readonly individualStopwords: Record;\n private readonly _conversations: Conversations;\n private readonly individualConversations: Record;\n private readonly _nlSearchModels: NLSearchModels;\n private readonly individualNLSearchModels: Record;\n private readonly _synonymSets: SynonymSets;\n private readonly individualSynonymSets: Record;\n private readonly _curationSets: CurationSets;\n private readonly individualCurationSets: Record;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.debug = new Debug(this.apiCall);\n this.metrics = new Metrics(this.apiCall);\n this.stats = new Stats(this.apiCall);\n this.health = new Health(this.apiCall);\n this.operations = new Operations(this.apiCall);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration);\n this._collections = new Collections(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics(this.apiCall);\n this.analyticsV1 = new AnalyticsV1(this.apiCall);\n this.stemming = new Stemming(this.apiCall);\n this._conversations = new Conversations(this.apiCall);\n this.individualConversations = {};\n this._nlSearchModels = new NLSearchModels(this.apiCall);\n this.individualNLSearchModels = {};\n this._synonymSets = new SynonymSets(this.apiCall);\n this.individualSynonymSets = {};\n this._curationSets = new CurationSets(this.apiCall);\n this.individualCurationSets = {};\n }\n\n collections(): Collections;\n collections = object>(\n collectionName: string,\n ): Collection;\n collections(collectionName?: string): Collections | Collection {\n if (collectionName === undefined) {\n return this._collections;\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection(\n collectionName,\n this.apiCall,\n this.configuration,\n );\n }\n return this.individualCollections[collectionName];\n }\n }\n\n aliases(): Aliases;\n aliases(aliasName: string): Alias;\n aliases(aliasName?: string): Aliases | Alias {\n if (aliasName === undefined) {\n return this._aliases;\n } else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n }\n\n keys(): Keys;\n keys(id: number): Key;\n keys(id?: number): Keys | Key {\n if (id === undefined) {\n return this._keys;\n } else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n }\n\n presets(): Presets;\n presets(id: string): Preset;\n presets(id?: string): Presets | Preset {\n if (id === undefined) {\n return this._presets;\n } else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n }\n\n stopwords(): Stopwords;\n stopwords(id: string): Stopword;\n stopwords(id?: string): Stopwords | Stopword {\n if (id === undefined) {\n return this._stopwords;\n } else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n }\n\n conversations(): Conversations;\n conversations(id: string): Conversation;\n conversations(id?: string): Conversations | Conversation {\n if (id === undefined) {\n return this._conversations;\n } else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n }\n\n nlSearchModels(): NLSearchModels;\n nlSearchModels(id: string): NLSearchModel;\n nlSearchModels(id?: string): NLSearchModels | NLSearchModel {\n if (id === undefined) {\n return this._nlSearchModels;\n } else {\n if (this.individualNLSearchModels[id] === undefined) {\n this.individualNLSearchModels[id] = new NLSearchModel(id, this.apiCall);\n }\n return this.individualNLSearchModels[id];\n }\n }\n\n synonymSets(): SynonymSets;\n synonymSets(synonymSetName: string): SynonymSet;\n synonymSets(synonymSetName?: string): SynonymSets | SynonymSet {\n if (synonymSetName === undefined) {\n return this._synonymSets;\n } else {\n if (this.individualSynonymSets[synonymSetName] === undefined) {\n this.individualSynonymSets[synonymSetName] = new SynonymSet(\n synonymSetName,\n this.apiCall,\n );\n }\n return this.individualSynonymSets[synonymSetName];\n }\n }\n\n curationSets(): CurationSets;\n curationSets(name: string): CurationSet;\n curationSets(name?: string): CurationSets | CurationSet {\n if (name === undefined) {\n return this._curationSets;\n } else {\n if (this.individualCurationSets[name] === undefined) {\n this.individualCurationSets[name] = new CurationSet(\n name,\n this.apiCall,\n );\n }\n return this.individualCurationSets[name];\n }\n }\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import type { DocumentSchema } from \"./Documents\";\nimport ApiCall from \"./ApiCall\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport type { SearchableDocuments } from \"./Types\";\n\nexport class SearchOnlyCollection {\n private readonly _documents: SearchableDocuments;\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any\n ) {\n this._documents = new SearchOnlyDocuments(\n this.name,\n this.apiCall,\n this.configuration\n );\n }\n\n documents(): SearchableDocuments {\n return this._documents;\n }\n}\n","import Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport MultiSearch from \"./MultiSearch\";\nimport { DocumentSchema } from \"./Documents\";\nimport { SearchOnlyCollection } from \"./SearchOnlyCollection\";\n\nexport default class SearchClient {\n public readonly multiSearch: MultiSearch;\n private readonly configuration: Configuration;\n private readonly apiCall: ApiCall;\n private readonly individualCollections: Record<\n string,\n SearchOnlyCollection\n >;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true;\n if (\n options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000\n ) {\n console.warn(\n \"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\"\n );\n options.sendApiKeyAsQueryParam = false;\n }\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n\n clearCache() {\n this.multiSearch.clearCache();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(([_, collection]) => {\n collection.documents().clearCache();\n });\n }\n\n collections(\n collectionName: string,\n ): SearchOnlyCollection {\n if (!collectionName) {\n throw new Error(\n \"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\"\n );\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection(\n collectionName,\n this.apiCall,\n this.configuration\n );\n }\n return this.individualCollections[\n collectionName\n ] as SearchOnlyCollection;\n }\n }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import Client from \"./Typesense/Client\";\nimport SearchClient from \"./Typesense/SearchClient\";\nimport * as Errors from \"./Typesense/Errors\";\n\nexport { Client, SearchClient, Errors };\nexport default { Client, SearchClient, Errors };\n\nexport type * from \"./Typesense/Aliases\";\nexport type * from \"./Typesense/AnalyticsRulesV1\";\nexport type * from \"./Typesense/AnalyticsRuleV1\";\nexport type * from \"./Typesense/AnalyticsEvent\";\nexport type * from \"./Typesense/AnalyticsRule\";\nexport type * from \"./Typesense/AnalyticsRules\";\nexport type * from \"./Typesense/Collection\";\nexport type * from \"./Typesense/Collections\";\nexport type * from \"./Typesense/Configuration\";\nexport type * from \"./Typesense/Conversations\";\nexport type * from \"./Typesense/Conversation\";\nexport type * from \"./Typesense/ConversationModel\";\nexport type * from \"./Typesense/Debug\";\nexport type * from \"./Typesense/Documents\";\nexport type * from \"./Typesense/Health\";\nexport type * from \"./Typesense/Key\";\nexport type * from \"./Typesense/Keys\";\nexport type * from \"./Typesense/Metrics\";\nexport type * from \"./Typesense/MultiSearch\";\nexport type * from \"./Typesense/Override\";\nexport type * from \"./Typesense/Overrides\";\nexport type * from \"./Typesense/Preset\";\nexport type * from \"./Typesense/Presets\";\nexport type * from \"./Typesense/Stats\";\nexport type * from \"./Typesense/Stopword\";\nexport type * from \"./Typesense/Stopwords\";\nexport type * from \"./Typesense/Synonym\";\nexport type * from \"./Typesense/Synonyms\";\nexport type * from \"./Typesense/SynonymSet\";\nexport type * from \"./Typesense/SynonymSets\";\nexport type * from \"./Typesense/SynonymSetItem\";\nexport type * from \"./Typesense/SynonymSetItems\";\nexport type * from \"./Typesense/CurationSet\";\nexport type * from \"./Typesense/CurationSets\";\nexport type * from \"./Typesense/CurationSetItem\";\nexport type * from \"./Typesense/CurationSetItems\";\n"],"names":["noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","_loggersByName","defaultLogger","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","log","trace","replaceLoggingMethods","level","this","getLevel","i","length","methodFactory","name","debug","levels","SILENT","enableLoggingWhenConsoleArrives","defaultMethodFactory","_level","_loggerName","undefined","realMethod","Logger","factory","inheritedLevel","defaultLevel","userLevel","self","storageKey","getPersistedLevel","storedLevel","localStorage","ignore","cookie","document","cookieName","encodeURIComponent","location","indexOf","exec","slice","normalizeLevel","input","toUpperCase","TypeError","setLevel","persist","levelNum","levelName","persistLevelIfPossible","setDefaultLevel","resetLevel","removeItem","clearPersistedLevel","enableAll","TRACE","disableAll","rebuild","childName","initialLevel","getLogger","logger","_log","noConflict","getLoggers","module","exports","d","v","k","__esModule","regeneratorDefine","_regenerator","t","r","Symbol","n","iterator","o","toStringTag","c","Generator","u","Object","create","f","p","y","G","a","l","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","regeneratorAsyncGen","next","then","regenerator","regeneratorAsyncIterator","Promise","OverloadYield","AsyncIterator","resolve","asyncIterator","_regeneratorDefine","defineProperty","_invoke","enumerable","configurable","writable","unshift","pop","regeneratorAsync","regeneratorKeys","regeneratorValues","_regeneratorRuntime","constructor","stop","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","keys","values","_typeof","isNaN","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","key","get","g","prop","hasOwnProperty","_classCallCheck","toPropertyKey","toPrimitive","String","_defineProperties","_createClass","_defineProperty","_possibleConstructorReturn","ReferenceError","_getPrototypeOf","_setPrototypeOf","_inherits","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Map","toString","has","set","Wrapper","push","TypesenseError","_Error","message","httpBody","httpStatus","_this","Error","MissingConfigurationError","_TypesenseError","Configuration","options","nodes","map","node","setDefaultPathInNode","setDefaultPortInNode","_objectSpread","randomizeNodes","shuffleArray","nearestNode","connectionTimeoutSeconds","timeoutSeconds","healthcheckIntervalSeconds","numRetries","retryIntervalSeconds","apiKey","sendApiKeyAsQueryParam","cacheSearchResultsForSeconds","useServerSideSearchCache","axiosAdapter","logLevel","additionalHeaders","httpAgent","httpsAgent","paramsSerializer","showDeprecationWarnings","validate","validateNodes","isNodeMissingAnyParameters","_this2","some","every","warn","masterNode","readReplicaNodes","array","j","Math","floor","random","_ref","asyncGeneratorStep","_asyncToGenerator","_next","_throw","fn","thisArg","kindOf","cache","thing","str","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","FormDataCtor","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","forEach","allOwnKeys","getOwnPropertyNames","len","findKey","_key","_global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","callbacks","addEventListener","source","data","shift","cb","setTimeout","asap","queueMicrotask","process","nextTick","isFormData","kind","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","isReactNativeBlob","uri","isReactNative","formData","getParts","isStream","pipe","merge","caseless","skipUndefined","assignValue","targetKey","extend","b","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","arr","forEachEntry","_iterator","pair","matchAll","regExp","matches","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","toFiniteNumber","defaultValue","Number","isFinite","global","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","catch","isIterable","AxiosError","from","error","code","config","request","response","customProps","axiosError","cause","status","super","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","utils","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","isVisitable","removeBrackets","renderKey","path","dots","concat","join","predicates","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","isFlatArray","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","_options","serialize","serializeFn","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","href","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","platform","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","parseReviver","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","ignoreDuplicateOf","rawHeaders","parsed","line","substring","$internals","assertValidHeaderValue","header","isValidHeaderValue","normalizeHeader","normalizeValue","end","charCode","stripTrailingCRLF","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","dest","entry","parser","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalize","format","normalized","char","formatHeader","targets","asStrings","getSetCookie","first","computed","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","settle","reject","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isMSIE","URL","protocol","host","port","write","expires","domain","secure","sameSite","toUTCString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","username","password","unescape","getHeaders","formHeaders","allowedHeaders","includes","isURLSameOrigin","xsrfValue","cookies","XMLHttpRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","onerror","msg","ontimeout","timeoutErrorMessage","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","send","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","pos","trackStream","stream","onProgress","onFinish","iterable","reader","getReader","readStream","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","globalFetchAPI","Request","Response","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","body","hasContentType","duplex","supportsResponseStream","resolvers","res","fetchOptions","_fetch","composedSignal","toAbortSignal","requestContentLength","getContentLength","size","_request","getBodyLength","resolveBodyLength","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","credentials","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","seeds","seed","knownAdapters","http","xhr","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","instance","CanceledError","toFormData","Cancel","all","promises","spread","callback","payload","formToJSON","getAdapter","default","RequestMalformed","RequestUnauthorized","ObjectNotFound","ObjectAlreadyExists","ObjectUnprocessable","ServerError","HTTPError","arrayableParams","query_by","query_by_weights","facet_by","group_by","include_fields","exclude_fields","highlight_fields","highlight_full_fields","pinned_hits","hidden_hits","infix","override_tags","num_typos","prefix","synonym_sets","sort_by","hasNoArrayValues","normalizeArrayableParams","HEALTHY","isNodeJSEnvironment","versions","ApiCall","configuration","numRetriesPerRequest","additionalUserHeaders","initializeMetadataForNodes","currentNodeIndex","_get","_callee","endpoint","queryParameters","_ref$abortSignal","abortSignal","_ref$responseType","_ref$streamConfig","streamConfig","isStreamingRequest","_args","_context","performRequest","_x","_delete2","_callee2","_args2","_context2","_x2","_post","_callee3","bodyParameters","_ref2","_ref2$abortSignal","_ref2$responseType","_ref2$streamConfig","_args3","_context3","_x3","_put","_callee4","_args4","_context4","_x4","_patch","_callee5","_args5","_context5","_x5","_performRequest","_callee6","requestType","_ref3","_ref3$queryParameters","_ref3$bodyParameters","_ref3$additionalHeade","_ref3$abortSignal","_ref3$responseType","_ref3$skipConnectionT","skipConnectionTimeout","_ref3$enableKeepAlive","enableKeepAlive","_ref3$streamConfig","requestNumber","lastException","wasAborted","_loop","_ret","numTries","_context7","abortListener","requestOptions","_response$data","_response$data2","_error$code","_error$response","_context6","getNextNode","uriFor","defaultHeaders","Infinity","transformedData","startsWith","HTTPAgent","keepAlive","HTTPSAgent","setNodeHealthcheck","handleStreamingResponse","customErrorForResponse","invokeOnErrorCallback","t0","_x6","_x7","_x8","processDataLine","jsonData","conversation_id","_unused","dataContent","_unused2","_handleStreamingResponse","_callee7","_context8","handleNodeStreaming","handleBrowserStreaming","invokeOnCompleteCallback","_x9","_x0","allChunks","on","_lines$pop","lines","processStreamLines","finalizeStreamResult","_this3","_ref4","_callee8","_t2","_context9","handleBrowserReadableStream","handleBrowserStringResponse","_x1","_x10","_handleBrowserReadableStream","_callee9","_yield$reader$read","_lines","_t3","_context0","TextDecoder","decode","_x11","_x12","_x13","_x14","_x15","finalResult","combineStreamingChunks","_step","_createForOfIteratorHelper","processed","processStreamingLine","invokeOnChunkCallback","chunks","messagesChunks","getMessageChunks","combineMessageChunks","lastChunk","isCompleteSearchResponse","isChunkMessage","metadataChunk","find","isHealthy","nodeDueForHealthcheck","candidateNode","isDueForHealthcheck","lastAccessTimestamp","_this4","_timer","_callee0","seconds","_context1","_x16","messageFromServer","errorMessage","onChunk","onComplete","onError","errorObj","couldBeError","toErrorWithMessage","callbackError","RESOURCEPATH","Collections","apiCall","_create","post","_retrieve","ImportError","importResults","_objectWithoutProperties","getOwnPropertySymbols","propertyIsEnumerable","RequestWithCache","responseCache","responsePromiseCache","_perform","requestContext","requestParams","cacheOptions","_ref$cacheResponseFor","cacheResponseForSeconds","_ref$maxSize","maxSize","isCacheDisabled","queryParams","requestParamsJSON","cacheEntry","cachePromiseEntry","responsePromise","oldestEntry","_oldestEntry","executeRequest","requestTimestamp","delete","SearchOnlyDocuments","collectionName","requestWithCache","clearCache","_search","searchParameters","_ref$cacheSearchResul","additionalQueryParams","_normalizeArrayablePa","rest","_excluded","conversation_stream","perform","endpointPath","operation","Documents","_SearchOnlyDocuments","_upsert","action","_update","patch","_emplace","query","_createMany","documents","_args6","import","_import2","finalOptions","documentsInJSONLFormat","resultsInJSONLFormat","resultsInJSONFormat","failedItems","_args7","throwOnFail","RangeError","isEmptyString","success","successCount","_importStream","readableStream","_args8","_export2","_args9","_exportStream","_args0","Overrides","overrideId","put","Override","Synonyms","synonymId","hasWarnedDeprecation","Synonym","Document","documentId","partialDocument","Collection","_documents","_overrides","_synonyms","_exists","retrieve","individualDocuments","individualOverrides","individualSynonyms","Aliases","mapping","aliasName","Alias","Keys","searchKey","parameters","normalizedParams","paramsJSON","digest","createHmac","update","keyPrefix","substr","rawScopedKey","Key","Debug","Metrics","Health","Operations","operationName","_getSchemaChanges","MultiSearch","useTextContentType","searchRequests","commonParams","_options$cacheSearchR","normalizedSearchRequests","paramsWithoutStream","normalizedQueryParams","use_cache","union","hasAnySearchObjectPagination","searches","search","page","per_page","offset","limit","limit_hits","Presets","presetId","_normalizedParams","Preset","AnalyticsRulesV1","AnalyticsRuleV1","AnalyticsEvents","AnalyticsV1","_analyticsRules","_analyticsEvents","individualAnalyticsRules","AnalyticsRules","ruleTag","AnalyticsRule","Analytics","Stopwords","stopwordId","Stopword","ConversationModels","ConversationModel","Conversations","_conversationsModels","individualConversationModels","Conversation","StemmingDictionaries","wordRootCombinations","wordRootCombinationsInJSONLFormat","combo","StemmingDictionary","Stemming","_stemmingDictionaries","individualStemmingDictionaries","NLSearchModels","NLSearchModel","SynonymSets","SynonymSetItems","synonymSetName","itemId","SynonymSetItem","SynonymSet","_items","individualItems","CurationSets","CurationSetItems","CurationSetItem","CurationSet","Client","_options$sendApiKeyAs","metrics","stats","Stats","health","operations","multiSearch","_collections","individualCollections","_aliases","individualAliases","_keys","individualKeys","_presets","individualPresets","_stopwords","individualStopwords","analytics","analyticsV1","stemming","_conversations","individualConversations","_nlSearchModels","individualNLSearchModels","_synonymSets","individualSynonymSets","_curationSets","individualCurationSets","SearchOnlyCollection","SearchClient","Errors"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"typesense.min.js","mappings":"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","sources":["webpack://Typesense/./node_modules/.pnpm/loglevel@1.9.2/node_modules/loglevel/lib/loglevel.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regenerator.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/typeof.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/regenerator/index.js","webpack://Typesense/webpack/bootstrap","webpack://Typesense/webpack/runtime/compat get default export","webpack://Typesense/webpack/runtime/define property getters","webpack://Typesense/webpack/runtime/global","webpack://Typesense/webpack/runtime/hasOwnProperty shorthand","webpack://Typesense/webpack/runtime/make namespace object","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Typesense/./src/Typesense/Errors/TypesenseError.ts","webpack://Typesense/./src/Typesense/Errors/MissingConfigurationError.ts","webpack://Typesense/./src/Typesense/Configuration.ts","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/bind.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/utils.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseHeaders.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosHeaders.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/AxiosError.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toFormData.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/buildURL.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/InterceptorManager.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/transitional.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/index.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/common/utils.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/platform/index.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/formDataToJSON.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/defaults/index.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/transformData.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/isCancel.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CanceledError.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/settle.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/speedometer.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/progressEventReducer.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/throttle.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/cookies.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/buildFullPath.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/combineURLs.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/mergeConfig.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/resolveConfig.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/xhr.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/parseProtocol.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/composeSignals.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/trackStream.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/env/data.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/fetch.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/adapters/adapters.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/null.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/dispatchRequest.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/validator.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/core/Axios.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/cancel/CancelToken.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/axios.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/spread.js","webpack://Typesense/./node_modules/.pnpm/axios@1.16.0/node_modules/axios/lib/helpers/isAxiosError.js","webpack://Typesense/./src/Typesense/Errors/RequestMalformed.ts","webpack://Typesense/./src/Typesense/Errors/RequestUnauthorized.ts","webpack://Typesense/./src/Typesense/Errors/ObjectNotFound.ts","webpack://Typesense/./src/Typesense/Errors/ObjectAlreadyExists.ts","webpack://Typesense/./src/Typesense/Errors/ObjectUnprocessable.ts","webpack://Typesense/./src/Typesense/Errors/ServerError.ts","webpack://Typesense/./src/Typesense/Errors/HTTPError.ts","webpack://Typesense/./src/Typesense/Types.ts","webpack://Typesense/./src/Typesense/Utils.ts","webpack://Typesense/./src/Typesense/ApiCall.ts","webpack://Typesense/./src/Typesense/Collections.ts","webpack://Typesense/./src/Typesense/Errors/ImportError.ts","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://Typesense/./src/Typesense/RequestWithCache.ts","webpack://Typesense/./src/Typesense/SearchOnlyDocuments.ts","webpack://Typesense/./src/Typesense/Documents.ts","webpack://Typesense/./src/Typesense/Overrides.ts","webpack://Typesense/./src/Typesense/Override.ts","webpack://Typesense/./src/Typesense/Synonyms.ts","webpack://Typesense/./src/Typesense/Synonym.ts","webpack://Typesense/./src/Typesense/Document.ts","webpack://Typesense/./src/Typesense/Collection.ts","webpack://Typesense/./src/Typesense/Aliases.ts","webpack://Typesense/./src/Typesense/Alias.ts","webpack://Typesense/./src/Typesense/Keys.ts","webpack://Typesense/./src/Typesense/Key.ts","webpack://Typesense/./src/Typesense/Debug.ts","webpack://Typesense/./src/Typesense/Metrics.ts","webpack://Typesense/./src/Typesense/Stats.ts","webpack://Typesense/./src/Typesense/Health.ts","webpack://Typesense/./src/Typesense/Operations.ts","webpack://Typesense/./src/Typesense/MultiSearch.ts","webpack://Typesense/./src/Typesense/Presets.ts","webpack://Typesense/./src/Typesense/Preset.ts","webpack://Typesense/./src/Typesense/AnalyticsRulesV1.ts","webpack://Typesense/./src/Typesense/AnalyticsRuleV1.ts","webpack://Typesense/./src/Typesense/AnalyticsEvents.ts","webpack://Typesense/./src/Typesense/AnalyticsV1.ts","webpack://Typesense/./src/Typesense/AnalyticsRules.ts","webpack://Typesense/./src/Typesense/AnalyticsRule.ts","webpack://Typesense/./src/Typesense/Analytics.ts","webpack://Typesense/./src/Typesense/Stopwords.ts","webpack://Typesense/./src/Typesense/Stopword.ts","webpack://Typesense/./src/Typesense/ConversationModels.ts","webpack://Typesense/./src/Typesense/ConversationModel.ts","webpack://Typesense/./src/Typesense/Conversations.ts","webpack://Typesense/./src/Typesense/Conversation.ts","webpack://Typesense/./src/Typesense/StemmingDictionaries.ts","webpack://Typesense/./src/Typesense/StemmingDictionary.ts","webpack://Typesense/./src/Typesense/Stemming.ts","webpack://Typesense/./src/Typesense/NLSearchModels.ts","webpack://Typesense/./src/Typesense/NLSearchModel.ts","webpack://Typesense/./src/Typesense/SynonymSets.ts","webpack://Typesense/./src/Typesense/SynonymSetItems.ts","webpack://Typesense/./src/Typesense/SynonymSetItem.ts","webpack://Typesense/./src/Typesense/SynonymSet.ts","webpack://Typesense/./src/Typesense/CurationSets.ts","webpack://Typesense/./src/Typesense/CurationSetItems.ts","webpack://Typesense/./src/Typesense/CurationSetItem.ts","webpack://Typesense/./src/Typesense/CurationSet.ts","webpack://Typesense/./src/Typesense/Client.ts","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Typesense/./src/Typesense/SearchOnlyCollection.ts","webpack://Typesense/./src/Typesense/SearchClient.ts","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Typesense/./node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://Typesense/./src/Typesense.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(\n cookie.slice(location + cookieName.length + 1)\n )[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(\n defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n );\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name,\n defaultLogger.methodFactory\n );\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","export default class TypesenseError extends Error {\n httpStatus?: number;\n httpBody?: string;\n\n // Source: https://stackoverflow.com/a/58417721/123545\n constructor(message?: string, httpBody?: string, httpStatus?: number) {\n super(message);\n this.name = new.target.name;\n this.httpBody = httpBody;\n this.httpStatus = httpStatus;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class MissingConfigurationError extends TypesenseError {}\n","import * as logger from \"loglevel\";\nimport { Logger, LogLevelDesc } from \"loglevel\";\nimport { MissingConfigurationError } from \"./Errors\";\nimport type { Agent as HTTPAgent } from \"http\";\nimport type { Agent as HTTPSAgent } from \"https\";\nimport type { AxiosRequestConfig } from \"axios\";\nimport { DocumentSchema, SearchResponse } from \"./Documents\";\n\nexport interface NodeConfiguration {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n url?: string;\n}\n\nexport interface NodeConfigurationWithHostname {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n}\n\nexport interface NodeConfigurationWithUrl {\n url: string;\n}\n\nexport interface ConfigurationOptions {\n apiKey: string;\n nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n randomizeNodes?: boolean;\n /**\n * @deprecated\n * masterNode is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n masterNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n /**\n * @deprecated\n * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n readReplicaNodes?:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n connectionTimeoutSeconds?: number;\n timeoutSeconds?: number;\n healthcheckIntervalSeconds?: number;\n numRetries?: number;\n retryIntervalSeconds?: number;\n sendApiKeyAsQueryParam?: boolean | undefined;\n useServerSideSearchCache?: boolean;\n cacheSearchResultsForSeconds?: number;\n additionalHeaders?: Record;\n\n logLevel?: LogLevelDesc;\n logger?: Logger;\n\n /**\n * Set a custom HTTP Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPAgent } = require(\"http\");\n * ...\n * httpAgent: new HTTPAgent({ keepAlive: true }),\n * @type {HTTPAgent}\n */\n httpAgent?: HTTPAgent;\n\n /**\n * Set a custom HTTPS Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPSAgent } = require(\"https\");\n * ...\n * httpsAgent: new HTTPSAgent({ keepAlive: true }),\n * @type {HTTPSAgent}\n */\n httpsAgent?: HTTPSAgent;\n\n /**\n * Set a custom paramsSerializer\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397\n * @type {any}\n */\n paramsSerializer?: any;\n\n /**\n * Set a custom axios adapter\n *\n * Useful for customizing the underlying HTTP client library used by Typesense.\n *\n * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge.\n * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n */\n axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n}\n\n/**\n * Configuration options for streaming responses\n */\nexport interface BaseStreamConfig {\n /**\n * Callback function that will be called for each chunk of data received\n * during streaming\n */\n onChunk?: (data: { conversation_id: string; message: string }) => void;\n /**\n * Callback function that will be called if there is an error during streaming\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Stream configuration for standard search responses\n * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature\n */\nexport interface StreamConfig\n extends BaseStreamConfig {\n /**\n * Callback function that will be called when the streaming is complete\n */\n onComplete?: (data: SearchResponse) => void;\n}\n\nexport default class Configuration {\n readonly nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n readonly nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n readonly connectionTimeoutSeconds: number;\n readonly healthcheckIntervalSeconds: number;\n readonly numRetries: number;\n readonly retryIntervalSeconds: number;\n readonly apiKey: string;\n readonly sendApiKeyAsQueryParam?: boolean;\n readonly cacheSearchResultsForSeconds: number;\n readonly useServerSideSearchCache: boolean;\n readonly logger: Logger;\n readonly logLevel: LogLevelDesc;\n readonly additionalHeaders?: Record;\n readonly httpAgent?: HTTPAgent;\n readonly httpsAgent?: HTTPSAgent;\n readonly paramsSerializer?: any;\n readonly axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n\n constructor(options: ConfigurationOptions) {\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map((node) => this.setDefaultPathInNode(node))\n .map((node) => this.setDefaultPortInNode(node))\n .map((node) => ({ ...node })) as NodeConfiguration[]; // Make a deep copy\n\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n (options.numRetries !== undefined && options.numRetries >= 0\n ? options.numRetries\n : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n\n this.axiosAdapter = options.axiosAdapter;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n\n this.additionalHeaders = options.additionalHeaders;\n\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n\n this.paramsSerializer = options.paramsSerializer;\n\n this.showDeprecationWarnings(options);\n this.validate();\n }\n\n validate(): boolean {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new MissingConfigurationError(\n \"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\",\n );\n }\n\n if (\n this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)\n ) {\n throw new MissingConfigurationError(\n \"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\",\n );\n }\n\n if (this.apiKey == null) {\n throw new MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n\n return true;\n }\n\n private validateNodes(): boolean {\n return this.nodes.some((node) => {\n return this.isNodeMissingAnyParameters(node);\n });\n }\n\n private isNodeMissingAnyParameters(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl,\n ): boolean {\n return (\n ![\"protocol\", \"host\", \"port\", \"path\"].every((key) => {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null\n );\n }\n\n private setDefaultPathInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n }\n\n private setDefaultPortInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (\n node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")\n ) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n }\n\n private showDeprecationWarnings(options: ConfigurationOptions): void {\n if (options.timeoutSeconds) {\n this.logger.warn(\n \"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\",\n );\n }\n if (options.masterNode) {\n this.logger.warn(\n \"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\n \"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n }\n\n private shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n}\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n objs[i] && forEach(objs[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nconst INVALID_HEADER_VALUE_CHARS_RE = /[^\\x09\\x20-\\x7E\\x80-\\xFF]/g;\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction sanitizeHeaderValue(str) {\n return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ''));\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n return decodeURIComponent(cookie.slice(eq + 1));\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","export const VERSION = \"1.16.0\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n const globalObject = utils.global ?? globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against the outbound request body before dispatch.\n // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than\n // maxBodyLength limit'). Skip when the body length cannot be determined\n // (e.g. a live ReadableStream supplied by the caller).\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await resolveBodyLength(headers, data);\n if (\n typeof outboundLength === 'number' &&\n isFinite(outboundLength) &&\n outboundLength > maxBodyLength\n ) {\n throw new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n }\n }\n\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n err !== canceledError && (canceledError.cause = err);\n throw canceledError;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {\n return Buffer.byteLength(body, 'utf8');\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit\n // but 3 UTF-8 bytes).\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestMalformed extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestUnauthorized extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectNotFound extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectAlreadyExists extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectUnprocessable extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ServerError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class HTTPError extends TypesenseError {}\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { BaseStreamConfig, StreamConfig } from \"./Configuration\";\nimport type {\n DocumentSchema,\n SearchParamsWithPreset,\n SearchOptions,\n SearchResponse,\n DocumentWriteParameters,\n DeleteQuery,\n DeleteResponse,\n ImportResponse,\n DocumentsExportParameters,\n} from \"./Documents\";\n\nexport type DropTokensMode = \"right_to_left\" | \"left_to_right\" | \"both_sides:3\";\n\nexport type OperationMode = \"off\" | \"always\" | \"fallback\";\n\nexport type CommaSeparated<\n T extends string,\n ToExtend,\n OriginalString extends string = T,\n Previous extends string[] = [],\n> = T extends `${infer Start},${infer Rest}`\n ? TrimString extends ToExtend\n ? CommaSeparated<\n Rest,\n ToExtend,\n OriginalString,\n [...Previous, TrimString]\n >\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n }\n : TrimString extends ToExtend\n ? OriginalString\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n };\n\nexport type MessageChunk = {\n message: string;\n conversation_id: string;\n};\n\nexport type UnionArrayKeys = {\n [K in keyof T]: T[K] extends undefined\n ? never\n : NonNullable extends infer R\n ? R extends R[]\n ? never\n : R extends (infer U)[] | infer U\n ? U[] extends R\n ? K\n : never\n : never\n : never;\n}[keyof T] &\n keyof T;\n\nexport type UnionArraySearchParams =\n UnionArrayKeys;\n\nexport type ArraybleParams = {\n readonly [K in UnionArraySearchParams]: string;\n};\n\nexport type ExtractBaseTypes = {\n [K in keyof T]: K extends UnionArrayKeys\n ? T[K] extends (infer U)[] | infer U\n ? U\n : T[K]\n : T[K];\n};\n\nexport const arrayableParams: ArraybleParams = {\n query_by: \"query_by\",\n query_by_weights: \"query_by_weights\",\n facet_by: \"facet_by\",\n group_by: \"group_by\",\n include_fields: \"include_fields\",\n exclude_fields: \"exclude_fields\",\n highlight_fields: \"highlight_fields\",\n highlight_full_fields: \"highlight_full_fields\",\n pinned_hits: \"pinned_hits\",\n hidden_hits: \"hidden_hits\",\n infix: \"infix\",\n override_tags: \"override_tags\",\n num_typos: \"num_typos\",\n prefix: \"prefix\",\n synonym_sets: \"synonym_sets\",\n sort_by: \"sort_by\",\n};\n\nexport interface SearchParams<\n TDoc extends DocumentSchema,\n Infix extends string = string,\n> {\n // From https://typesense.org/docs/latest/api/documents.html#arguments\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- Can't use `object` here, it needs to intersect with `{}`\n q?: \"*\" | (string & {});\n query_by?: string | string[];\n query_by_weights?: string | number[];\n prefix?: string | boolean | boolean[]; // default: true\n filter_by?: string;\n max_filter_by_candidates?: number; // default: 4\n enable_synonyms?: boolean; // default: true\n enable_analytics?: boolean; // default: true\n filter_curated_hits?: boolean; // default: false\n enable_lazy_filter?: boolean; // default: false\n sort_by?: string | string[]; // default: text match desc\n facet_by?: string | string[];\n max_facet_values?: number;\n facet_sample_threshold?: number;\n facet_sample_percent?: number;\n facet_query?: string;\n facet_query_num_typos?: number;\n facet_return_parent?: string;\n facet_strategy?: \"exhaustive\" | \"top_values\" | \"automatic\";\n page?: number; // default: 1\n per_page?: number; // default: 10, max 250\n group_by?: string | string[];\n group_limit?: number; // default:\n group_missing_values?: boolean;\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n highlight_fields?: string | string[]; // default: all queried fields\n highlight_full_fields?: string | string[]; // default: all fields\n highlight_affix_num_tokens?: number; // default: 4\n highlight_start_tag?: string; // default: \n highlight_end_tag?: string; // default: \n enable_highlight_v1?: boolean;\n snippet_threshold?: number; // default: 30\n nl_query?: boolean;\n nl_model_id?: string;\n nl_query_debug?: boolean;\n nl_query_prompt_cache_ttl?: number;\n num_typos?: string | number | number[]; // default: 2\n min_len_1typo?: number;\n min_len_2typo?: number;\n split_join_tokens?: OperationMode;\n exhaustive_search?: boolean;\n drop_tokens_threshold?: number; // default: 10\n drop_tokens_mode?: DropTokensMode;\n typo_tokens_threshold?: number; // default: 100\n pinned_hits?: string | string[];\n synonym_sets?: string[] | string;\n hidden_hits?: string | string[];\n limit_hits?: number; // default: no limit\n pre_segmented_query?: boolean;\n enable_overrides?: boolean;\n override_tags?: string | string[];\n prioritize_exact_match?: boolean; // default: true\n prioritize_token_position?: boolean;\n prioritize_num_matching_fields?: boolean;\n search_cutoff_ms?: number;\n use_cache?: boolean;\n max_candidates?: number;\n infix?:\n | CommaSeparated\n | OperationMode[]\n | OperationMode;\n preset?: string;\n text_match_type?: \"max_score\" | \"max_weight\" | \"sum_score\";\n vector_query?: string;\n \"x-typesense-api-key\"?: string;\n \"x-typesense-user-id\"?: string;\n offset?: number;\n limit?: number;\n stopwords?: string;\n conversation?: boolean;\n validate_field_names?: boolean;\n conversation_stream?: boolean;\n conversation_model_id?: string;\n conversation_id?: string;\n voice_query?: string;\n streamConfig?: StreamConfig;\n}\n\nexport interface SearchResponseRequestParams {\n collection_name?: string;\n q?: string;\n page?: number;\n per_page?: number;\n first_q?: string;\n voice_query?: {\n transcribed_query?: string;\n };\n}\n\nexport interface SearchableDocuments<\n T extends DocumentSchema = DocumentSchema,\n Infix extends string = string,\n> {\n search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n options: SearchOptions,\n ): Promise>;\n clearCache(): void;\n}\n\nexport interface WriteableDocuments {\n create(\n document: T,\n options: Omit,\n ): Promise;\n upsert(\n document: T,\n options: Omit,\n ): Promise;\n update(\n document: T,\n options: Omit,\n ): Promise;\n emplace(\n document: T,\n options: Omit,\n ): Promise;\n delete(query: DeleteQuery): Promise;\n import(\n documents: T[] | string,\n options: DocumentWriteParameters,\n ): Promise;\n export(options: DocumentsExportParameters): Promise;\n}\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\nexport interface RequestParams {\n path: string;\n queryParams?: Record;\n body?: unknown;\n headers?: Record;\n streamConfig?:\n | StreamConfig\n | MultiSearchResultsStreamConfig\n | MultiSearchUnionStreamConfig;\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n isStreamingRequest: boolean | undefined;\n}\n\nexport interface MultiSearchRequestsWithUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union: true;\n}\n\nexport interface MultiSearchRequestsWithoutUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union?: false | undefined;\n}\n\nexport type MultiSearchRequestsSchema<\n T extends DocumentSchema,\n Infix extends string,\n> =\n | MultiSearchRequestsWithUnionSchema\n | MultiSearchRequestsWithoutUnionSchema;\n\nexport interface UnionSearchResponse\n extends Omit, \"request_params\"> {\n union_request_params: UnionSearchResponseRequestParams[];\n}\n\ntype AllRequiredBut = Required> & Pick;\n\nexport interface UnionSearchResponseRequestParams\n extends AllRequiredBut {\n found: number;\n}\n\nexport type MultiSearchResponse<\n T extends DocumentSchema[],\n Infix extends string,\n R extends MultiSearchRequestsSchema<\n T[number],\n Infix\n > = MultiSearchRequestsSchema,\n> =\n R extends MultiSearchRequestsWithUnionSchema\n ? UnionSearchResponse\n : {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n };\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\n\ninterface SearchesMultiSearchesRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n searches: (\n | MultiSearchRequestSchema\n | MultiSearchRequestWithPresetSchema\n )[];\n}\n\ninterface BaseMultiSearchRequestSchema {\n collection?: string;\n rerank_hybrid_matches?: boolean;\n \"x-typesense-api-key\"?: string;\n}\n\ntype CommonMultiSearchParametersBase<\n T extends DocumentSchema,\n Infix extends string,\n> = Partial<\n BaseMultiSearchRequestSchema & Omit, \"streamConfig\">\n>;\n\nexport type MultiSearchRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema & Omit, \"streamConfig\">;\n\nexport type MultiSearchRequestWithPresetSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema &\n Omit, \"streamConfig\">;\n\nexport type MultiSearchUnionParameters<\n T extends DocumentSchema,\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchUnionStreamConfig;\n use_cache?: boolean;\n};\n\nexport type MultiSearchResultsParameters<\n T extends DocumentSchema[],\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchResultsStreamConfig;\n use_cache?: boolean;\n};\n\ntype Whitespace = \" \" | \"\\n\" | \"\\t\";\n\ntype TrimString = S extends `${Whitespace}${infer S}`\n ? TrimString\n : S extends `${infer S}${Whitespace}`\n ? TrimString\n : S;\n","import { DocumentSchema } from \"./Documents\";\nimport { arrayableParams } from \"./Types\";\nimport type { UnionArrayKeys, ExtractBaseTypes, SearchParams } from \"./Types\";\n\nfunction hasNoArrayValues<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T | ExtractBaseTypes): params is ExtractBaseTypes {\n return Object.keys(arrayableParams)\n .filter((key) => params[key] !== undefined)\n .every((key) => isNonArrayValue(params[key]));\n}\n\nexport function normalizeArrayableParams<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T): Prettify> {\n const result = { ...params };\n\n const transformedValues = Object.keys(arrayableParams)\n .filter((key) => Array.isArray(result[key]))\n .map((key) => {\n result[key] = result[key].join(\",\");\n return key;\n });\n\n if (!transformedValues.length && hasNoArrayValues(result)) {\n return result;\n }\n\n if (!hasNoArrayValues(result)) {\n throw new Error(\n `Failed to normalize arrayable params: ${JSON.stringify(result)}`,\n );\n }\n\n return result;\n}\n\nfunction isNonArrayValue<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n K extends UnionArrayKeys,\n>(value: T[K] | ExtractBaseTypes[K]): value is ExtractBaseTypes[K] {\n return !Array.isArray(value);\n}\n\ntype Prettify = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n} & {};\n\ninterface ErrorWithMessage extends Error {\n message: string;\n}\n\nfunction isErrorWithMessage(error: unknown): error is ErrorWithMessage {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof (error as Record).message === \"string\"\n );\n}\n\nexport function toErrorWithMessage(couldBeError: unknown): ErrorWithMessage {\n if (isErrorWithMessage(couldBeError)) return couldBeError;\n\n try {\n if (typeof couldBeError === \"string\") {\n return new Error(couldBeError);\n }\n return new Error(JSON.stringify(couldBeError));\n } catch {\n return new Error(String(couldBeError));\n }\n}\n","import type {\n AxiosAdapter,\n AxiosRequestConfig,\n AxiosResponse,\n Method,\n} from \"axios\";\nimport axios from \"axios\";\nimport { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { Logger } from \"loglevel\";\nimport Configuration from \"./Configuration\";\nimport type { NodeConfiguration, StreamConfig } from \"./Configuration\";\nimport {\n HTTPError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n} from \"./Errors\";\nimport TypesenseError from \"./Errors/TypesenseError\";\nimport type { DocumentSchema, SearchResponse } from \"./Documents\";\nimport { toErrorWithMessage } from \"./Utils\";\nimport { MessageChunk } from \"./Types\";\n\nconst APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nconst HEALTHY = true;\nconst UNHEALTHY = false;\n\ninterface Node extends NodeConfiguration {\n isHealthy: boolean;\n index: string | number;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null &&\n typeof window === \"undefined\";\n\nexport interface HttpClient {\n get(\n endpoint: string,\n queryParameters: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n delete(\n endpoint: string,\n queryParameters: Record,\n ): Promise;\n post(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n additionalHeaders: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n put(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n patch(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n}\n\nexport default class ApiCall implements HttpClient {\n private readonly apiKey: string;\n private readonly nodes: Node[];\n private readonly nearestNode: Node;\n private readonly connectionTimeoutSeconds: number;\n private readonly healthcheckIntervalSeconds: number;\n private readonly retryIntervalSeconds: number;\n private readonly sendApiKeyAsQueryParam?: boolean;\n private readonly numRetriesPerRequest: number;\n private readonly additionalUserHeaders?: Record;\n\n readonly logger: Logger;\n private currentNodeIndex: number;\n\n constructor(private configuration: Configuration) {\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n\n this.logger = this.configuration.logger;\n\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n\n async get(\n endpoint: string,\n queryParameters: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"get\", endpoint, {\n queryParameters,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async delete(endpoint: string, queryParameters: any = {}): Promise {\n return this.performRequest(\"delete\", endpoint, {\n queryParameters,\n isStreamingRequest: false,\n });\n }\n\n async post(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n additionalHeaders: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"post\", endpoint, {\n queryParameters,\n bodyParameters,\n additionalHeaders,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async put(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"put\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n async patch(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"patch\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n private getAdapter(): AxiosAdapter | undefined {\n if (!this.configuration.axiosAdapter) return undefined;\n\n if (typeof this.configuration.axiosAdapter === \"function\")\n return this.configuration.axiosAdapter;\n\n const isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator.userAgent === \"Cloudflare-Workers\";\n\n return isCloudflareWorkers\n ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis)\n : axios.getAdapter(this.configuration.axiosAdapter);\n }\n\n async performRequest(\n requestType: Method,\n endpoint: string,\n {\n queryParameters = null,\n bodyParameters = null,\n additionalHeaders = {},\n abortSignal = null,\n responseType = undefined,\n skipConnectionTimeout = false,\n enableKeepAlive = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n queryParameters?: any;\n bodyParameters?: any;\n additionalHeaders?: any;\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n skipConnectionTimeout?: boolean;\n enableKeepAlive?: boolean | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n },\n ): Promise {\n this.configuration.validate();\n\n if (isStreamingRequest) {\n this.logger.debug(`Request: Performing streaming request to ${endpoint}`);\n\n // For browser streaming, always use responseType: \"stream\" and adapter: \"fetch\"\n if (!isNodeJSEnvironment && typeof fetch !== \"undefined\") {\n this.logger.debug(\"Using fetch adapter for browser streaming\");\n responseType = \"stream\";\n }\n }\n\n const requestNumber = Date.now();\n let lastException;\n let wasAborted = false;\n this.logger.debug(\n `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`,\n );\n for (\n let numTries = 1;\n numTries <= this.numRetriesPerRequest + 1;\n numTries++\n ) {\n const node = this.getNextNode(requestNumber);\n this.logger.debug(\n `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${\n node.index\n }`,\n );\n\n if (abortSignal && abortSignal.aborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n let abortListener: ((event: Event) => void) | undefined;\n\n try {\n const requestOptions: AxiosRequestConfig = {\n method: requestType,\n url: this.uriFor(endpoint, node),\n headers: Object.assign(\n {},\n this.defaultHeaders(),\n additionalHeaders,\n this.additionalUserHeaders,\n ),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n validateStatus: (status) => {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n (data, headers) => {\n let transformedData = data;\n if (\n headers !== undefined &&\n typeof data === \"string\" &&\n typeof headers[\"content-type\"] === \"string\" &&\n headers[\"content-type\"].startsWith(\"application/json\")\n ) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n\n // Use fetch adapter only for streaming requests in browser environments\n requestOptions.adapter =\n isStreamingRequest && !isNodeJSEnvironment\n ? \"fetch\"\n : this.getAdapter();\n\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this.connectionTimeoutSeconds * 1000;\n }\n\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n\n if (this.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this.apiKey;\n }\n\n if (this.configuration.httpAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpAgent`,\n );\n requestOptions.httpAgent = this.configuration.httpAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`);\n requestOptions.httpAgent = new HTTPAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.httpsAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpsAgent`,\n );\n requestOptions.httpsAgent = this.configuration.httpsAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`);\n requestOptions.httpsAgent = new HTTPSAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.paramsSerializer) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom paramsSerializer`,\n );\n requestOptions.paramsSerializer = this.configuration.paramsSerializer;\n }\n\n if (\n bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))\n ) {\n requestOptions.data = bodyParameters;\n }\n\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n abortListener = () => {\n wasAborted = true;\n source.cancel();\n };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source.token;\n }\n\n if (isStreamingRequest) {\n requestOptions.responseType = \"stream\";\n if (!isNodeJSEnvironment) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Accept: \"text/event-stream\",\n };\n }\n } else if (responseType) {\n requestOptions.responseType = responseType;\n }\n\n const response = await axios(requestOptions);\n\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this.setNodeHealthcheck(node, HEALTHY);\n }\n\n this.logger.debug(\n `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (isStreamingRequest) {\n return this.handleStreamingResponse(response, streamConfig);\n }\n return Promise.resolve(response.data);\n } else if (response.status < 500) {\n // Next, if response is anything but 5xx, don't retry, return a custom error\n return Promise.reject(\n this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n ),\n );\n } else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n );\n }\n } catch (error: any) {\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n if (!wasAborted) {\n this.setNodeHealthcheck(node, UNHEALTHY);\n }\n lastException = error;\n this.logger.warn(\n `Request #${requestNumber}: Request to Node ${\n node.index\n } failed due to \"${error?.code ?? \"\"} ${error.message}${\n error.response == null\n ? \"\"\n : \" - \" + JSON.stringify(error.response?.data)\n }\"`,\n );\n\n if (wasAborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n if (isStreamingRequest) {\n this.invokeOnErrorCallback(error, streamConfig);\n }\n\n if (numTries < this.numRetriesPerRequest + 1) {\n this.logger.warn(\n `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`,\n );\n } else {\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n await this.timer(this.retryIntervalSeconds);\n } finally {\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n }\n }\n\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n\n private processStreamingLine(line: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!line.trim() || line === \"data: [DONE]\") {\n return null;\n }\n\n // Handle SSE format (data: {...})\n if (line.startsWith(\"data: \")) {\n return this.processDataLine(line.slice(6).trim());\n }\n\n // Try parsing as JSON if it starts with a brace\n if (line.trim().startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(line.trim());\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch {\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n }\n\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n\n private processDataLine(dataContent: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!dataContent) {\n return null;\n }\n\n if (dataContent.startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(dataContent);\n // Ensure the required fields exist\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch {\n // Not valid JSON, use as plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n }\n\n // For plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n\n private async handleStreamingResponse(\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\n `Handling streaming response. Environment: ${isNodeJSEnvironment ? \"Node.js\" : \"Browser\"}`,\n );\n\n if (isNodeJSEnvironment && response.data) {\n return this.handleNodeStreaming(response, streamConfig);\n }\n\n if (!isNodeJSEnvironment) {\n return this.handleBrowserStreaming(response, streamConfig);\n }\n\n this.logger.debug(\"Processing non-streaming response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return Promise.resolve(response.data as T);\n }\n\n private handleNodeStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing Node.js stream\");\n return new Promise((resolve, reject) => {\n const stream = response.data;\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n stream.on(\"data\", (chunk) => {\n try {\n const data = chunk.toString();\n buffer += data;\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n } catch (error) {\n reject(error);\n }\n });\n\n stream.on(\"end\", () => {\n if (buffer.trim().length > 0) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(\n allChunks,\n resolve,\n response,\n streamConfig,\n );\n });\n\n stream.on(\"error\", (error: unknown) => {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n });\n });\n }\n\n private handleBrowserStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing browser stream\");\n\n return new Promise(async (resolve, reject) => {\n try {\n if (response.data && typeof response.data.getReader === \"function\") {\n return this.handleBrowserReadableStream(\n response.data,\n resolve,\n reject,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"string\") {\n return this.handleBrowserStringResponse(\n response.data,\n resolve,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"object\" && response.data !== null) {\n this.logger.debug(\"No stream found, but data object is available\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return resolve(response.data as T);\n }\n\n this.logger.error(\"No usable data found in response\");\n return reject(new Error(\"No usable data found in response\"));\n } catch (error) {\n this.logger.error(`Error processing streaming response: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n });\n }\n\n private async handleBrowserReadableStream(\n stream: any,\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\"Found ReadableStream in response.data\");\n const reader = stream.getReader();\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n this.logger.debug(\"Stream reading complete\");\n if (buffer.trim()) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n break;\n }\n\n const chunk = new TextDecoder().decode(value);\n this.logger.debug(`Received chunk: ${chunk.length} bytes`);\n\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(allChunks, resolve, response, streamConfig);\n } catch (error) {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n }\n\n private handleBrowserStringResponse(\n data: string,\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): void {\n this.logger.debug(\"Processing text response as stream data\");\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n\n const lines = data.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n\n if (allChunks.length > 0) {\n const finalResult =\n this.combineStreamingChunks<\n T extends DocumentSchema ? T : DocumentSchema\n >(allChunks);\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n // If no chunks were processed, use the original response\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n private processStreamLines(\n lines: string[],\n allChunks: [...MessageChunk[], SearchResponse] | [],\n streamConfig: StreamConfig | undefined,\n ): void {\n for (const line of lines) {\n if (line.trim() && line !== \"data: [DONE]\") {\n const processed = this.processStreamingLine(line);\n if (processed !== null) {\n this.invokeOnChunkCallback(processed, streamConfig);\n (allChunks as MessageChunk[]).push(processed);\n }\n }\n }\n }\n\n private finalizeStreamResult(\n allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [],\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): void {\n if (allChunks.length > 0) {\n const finalResult = this.combineStreamingChunks(allChunks);\n this.logger.debug(\"Stream processing complete\");\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n /**\n * Combines multiple streaming chunks into a single coherent result\n * This is critical for ensuring we return the complete data rather than just the last chunk\n */\n private combineStreamingChunks(\n chunks: [...MessageChunk[], SearchResponse] | [],\n ): SearchResponse {\n if (chunks.length === 0) return {} as SearchResponse;\n if (chunks.length === 1) return chunks[0] as unknown as SearchResponse;\n\n // For conversation streams with message chunks\n const messagesChunks = this.getMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n );\n if (messagesChunks.length > 0) {\n return this.combineMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n messagesChunks,\n );\n }\n\n // For regular search responses\n const lastChunk = chunks[chunks.length - 1];\n if (!this.isCompleteSearchResponse(lastChunk)) {\n throw new Error(\"Last chunk is not a complete search response\");\n }\n\n return lastChunk;\n }\n\n private getMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n ): MessageChunk[] {\n return chunks.filter(this.isChunkMessage);\n }\n\n private isChunkMessage(chunk: unknown): chunk is MessageChunk {\n return (\n typeof chunk === \"object\" &&\n chunk !== null &&\n \"message\" in chunk &&\n \"conversation_id\" in chunk\n );\n }\n\n private combineMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n messagesChunks: MessageChunk[],\n ): SearchResponse {\n this.logger.debug(\n `Found ${messagesChunks.length} message chunks to combine`,\n );\n\n const lastChunk = chunks[chunks.length - 1];\n if (this.isCompleteSearchResponse(lastChunk)) {\n return lastChunk;\n }\n\n const metadataChunk = chunks.find(this.isCompleteSearchResponse);\n\n if (!metadataChunk) {\n throw new Error(\"No metadata chunk found\");\n }\n\n return metadataChunk;\n }\n\n private isCompleteSearchResponse(\n chunk: MessageChunk | SearchResponse,\n ): chunk is SearchResponse {\n if (\n typeof chunk === \"object\" &&\n chunk !== null &&\n Object.keys(chunk as object).length > 0\n ) {\n return (\n \"results\" in (chunk as object) ||\n \"found\" in (chunk as object) ||\n \"hits\" in (chunk as object) ||\n \"page\" in (chunk as object) ||\n \"search_time_ms\" in (chunk as object)\n );\n }\n return false;\n }\n\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n getNextNode(requestNumber = 0): Node {\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: Node ${\n this.nearestNode.index\n } is ${this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"}`,\n );\n if (\n this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`,\n );\n return this.nearestNode;\n }\n this.logger.debug(\n `Request #${requestNumber}: Falling back to individual nodes`,\n );\n }\n\n // Fallback to nodes as usual\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: ${this.nodes\n .map(\n (node) =>\n `Node ${node.index} is ${\n node.isHealthy === true ? \"Healthy\" : \"Unhealthy\"\n }`,\n )\n .join(\" || \")}`,\n );\n let candidateNode: Node = this.nodes[0];\n for (let i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (\n candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n }\n\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\n `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n\n nodeDueForHealthcheck(node, requestNumber = 0): boolean {\n const isDueForHealthcheck =\n Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\n `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`,\n );\n }\n return isDueForHealthcheck;\n }\n\n initializeMetadataForNodes(): void {\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n\n this.nodes.forEach((node, i) => {\n node.index = i;\n this.setNodeHealthcheck(node, HEALTHY);\n });\n }\n\n setNodeHealthcheck(node, isHealthy): void {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n }\n\n uriFor(endpoint: string, node): string {\n if (node.url != null) {\n return `${node.url}${endpoint}`;\n }\n return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`;\n }\n\n defaultHeaders(): any {\n const defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n }\n\n async timer(seconds): Promise {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n }\n\n customErrorForResponse(\n response: AxiosResponse,\n messageFromServer: string,\n httpBody?: string,\n ): TypesenseError {\n let errorMessage = `Request failed with HTTP code ${response.status}`;\n if (\n typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\"\n ) {\n errorMessage += ` | Server said: ${messageFromServer}`;\n }\n\n let error = new TypesenseError(errorMessage, httpBody, response.status);\n\n if (response.status === 400) {\n error = new RequestMalformed(errorMessage, httpBody, response.status);\n } else if (response.status === 401) {\n error = new RequestUnauthorized(errorMessage, httpBody, response.status);\n } else if (response.status === 404) {\n error = new ObjectNotFound(errorMessage, httpBody, response.status);\n } else if (response.status === 409) {\n error = new ObjectAlreadyExists(errorMessage, httpBody, response.status);\n } else if (response.status === 422) {\n error = new ObjectUnprocessable(errorMessage, httpBody, response.status);\n } else if (response.status >= 500 && response.status <= 599) {\n error = new ServerError(errorMessage, httpBody, response.status);\n } else {\n error = new HTTPError(errorMessage, httpBody, response.status);\n }\n\n return error;\n }\n\n private invokeOnChunkCallback(\n data: {\n conversation_id: string;\n message: string;\n },\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onChunk) {\n try {\n streamConfig.onChunk(data);\n } catch (error) {\n this.logger.warn(`Error in onChunk callback: ${error}`);\n }\n }\n }\n\n private invokeOnCompleteCallback(\n data: SearchResponse,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onComplete) {\n try {\n streamConfig.onComplete(data);\n } catch (error) {\n this.logger.warn(`Error in onComplete callback: ${error}`);\n }\n }\n }\n\n private invokeOnErrorCallback(\n error: unknown,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onError) {\n const errorObj = toErrorWithMessage(error);\n try {\n streamConfig.onError(errorObj);\n } catch (callbackError) {\n this.logger.warn(`Error in onError callback: ${callbackError}`);\n }\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { CollectionFieldSchema, CollectionSchema } from \"./Collection\";\n\nexport interface BaseCollectionCreateSchema {\n name: string;\n default_sorting_field?: string;\n symbols_to_index?: string[];\n token_separators?: string[];\n enable_nested_fields?: boolean;\n metadata?: object;\n voice_query_model?: {\n model_name?: string;\n };\n synonym_sets?: string[];\n curation_sets?: string[];\n}\n\ninterface CollectionCreateSchemaWithSrc\n extends Pick {\n fields?: CollectionFieldSchema[];\n}\n\ninterface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {\n fields: CollectionFieldSchema[];\n}\n\n/**\n * Defines the schema for creating a collection in Typesense.\n *\n * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.\n * Otherwise, `fields` will be required.\n */\nexport type CollectionCreateSchema<\n Options extends CollectionCreateOptions = CollectionCreateOptions,\n> = Options[\"src_name\"] extends string\n ? CollectionCreateSchemaWithSrc\n : CollectionCreateSchemaWithoutSrc;\n\nexport interface CollectionCreateOptions {\n src_name?: string;\n}\n\nexport interface CollectionsRetrieveOptions {\n exclude_fields?: string;\n}\n\nconst RESOURCEPATH = \"/collections\";\n\nexport default class Collections {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * When a collection is created, we give it a name and describe the fields that will be indexed from the documents added to the collection.\n *\n * @example\n * await client.collections().create({ name: \"products\", fields: [{ name: \"title\", type: \"string\" }] })\n *\n * @see https://typesense.org/docs/latest/api/collections.html#create-a-collection\n */\n async create(\n schema: CollectionCreateSchema,\n options?: Options,\n ): Promise {\n return this.apiCall.post(RESOURCEPATH, schema, options);\n }\n\n /**\n * Returns a summary of all your collections. The collections are returned sorted by creation date, with the most recent collections appearing first.\n *\n * @example\n * await client.collections().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collections.html#list-all-collections\n */\n async retrieve(\n options: CollectionsRetrieveOptions = {},\n ): Promise {\n return this.apiCall.get(RESOURCEPATH, options);\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import TypesenseError from \"./TypesenseError\";\nimport type { DocumentImportParameters, ImportResponse } from \"../Documents\";\nimport { ReadStream } from \"node:fs\";\n\ninterface ImportErrorPayload {\n documentsInJSONLFormat: string | ReadStream;\n options: DocumentImportParameters;\n failedItems: ImportResponse[];\n successCount: number;\n}\n\nexport default class ImportError extends TypesenseError {\n payload: ImportErrorPayload;\n importResults: ImportResponse[];\n constructor(\n message: string,\n importResults: ImportResponse[],\n payload: ImportErrorPayload,\n ) {\n super(message);\n this.importResults = importResults;\n this.payload = payload;\n }\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import { AxiosRequestConfig } from \"axios\";\nimport type { DocumentSchema } from \"./Documents\";\nimport { HttpClient } from \"./ApiCall\";\nimport type { RequestParams } from \"./Types\";\n\nconst defaultCacheResponseForSeconds = 2 * 60;\nconst defaultMaxSize = 100;\n\ninterface CacheEntry {\n requestTimestamp: number;\n response: T;\n}\n\ninterface PromiseCacheEntry {\n requestTimestamp: number;\n responsePromise: Promise;\n}\n\nexport default class RequestWithCache {\n private responseCache: Map> = new Map();\n private responsePromiseCache: Map> =\n new Map();\n\n clearCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n\n async perform<\n const TContext extends HttpClient,\n const TMethod extends keyof HttpClient,\n const TDoc extends DocumentSchema[],\n TResult,\n >(\n requestContext: TContext,\n methodName: TMethod,\n requestParams: RequestParams,\n cacheOptions: CacheOptions | undefined,\n ): Promise {\n const {\n cacheResponseForSeconds = defaultCacheResponseForSeconds,\n maxSize = defaultMaxSize,\n } = cacheOptions || {};\n const isCacheDisabled =\n cacheOptions === undefined ||\n cacheResponseForSeconds <= 0 ||\n maxSize <= 0;\n\n const {\n path,\n queryParams,\n body,\n headers,\n streamConfig,\n abortSignal,\n responseType,\n isStreamingRequest,\n } = requestParams;\n\n if (isCacheDisabled) {\n return this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n }\n\n const requestParamsJSON = JSON.stringify(requestParams);\n const cacheEntry = this.responseCache.get(requestParamsJSON);\n const now = Date.now();\n\n if (cacheEntry) {\n const isEntryValid =\n now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestParamsJSON);\n this.responseCache.set(requestParamsJSON, cacheEntry);\n return cacheEntry.response as TResult;\n } else {\n this.responseCache.delete(requestParamsJSON);\n }\n }\n\n const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON);\n\n if (cachePromiseEntry) {\n const isEntryValid =\n now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestParamsJSON);\n this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry);\n return cachePromiseEntry.responsePromise as Promise;\n } else {\n this.responsePromiseCache.delete(requestParamsJSON);\n }\n }\n\n const responsePromise = this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n\n this.responsePromiseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n responsePromise,\n });\n\n const response = await responsePromise;\n this.responseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n response: response,\n });\n\n const isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n const oldestEntry = this.responseCache.keys().next().value;\n if (oldestEntry) {\n this.responseCache.delete(oldestEntry);\n }\n }\n const isResponsePromiseCacheOverMaxSize =\n this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n const oldestEntry = this.responsePromiseCache.keys().next().value;\n if (oldestEntry) {\n this.responsePromiseCache.delete(oldestEntry);\n }\n }\n return response;\n }\n\n private executeRequest(\n context: HttpClient,\n methodName: keyof HttpClient,\n path: string,\n queryParams: Record = {},\n body?: unknown,\n headers?: Record,\n options?: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"];\n streamConfig?: any;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise {\n const method = context[methodName];\n\n switch (methodName) {\n case \"get\":\n return (method as HttpClient[\"get\"]).call(context, path, queryParams, {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n }) as Promise;\n\n case \"delete\":\n return (method as HttpClient[\"delete\"]).call(\n context,\n path,\n queryParams,\n ) as Promise;\n\n case \"post\":\n return (method as HttpClient[\"post\"]).call(\n context,\n path,\n body,\n queryParams,\n headers || {},\n {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n },\n ) as Promise;\n\n case \"put\":\n case \"patch\":\n return (method as HttpClient[typeof methodName]).call(\n context,\n path,\n body,\n queryParams,\n ) as Promise;\n\n default:\n throw new Error(`Unsupported method: ${String(methodName)}`);\n }\n }\n}\n\ninterface CacheOptions {\n cacheResponseForSeconds?: number;\n maxSize?: number;\n}\n\nexport type { RequestParams } from \"./Types\";\n","import RequestWithCache from \"./RequestWithCache\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport Collections from \"./Collections\";\nimport type {\n DocumentSchema,\n SearchOptions,\n SearchParamsWithPreset,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport { SearchableDocuments, SearchParams } from \"./Types\";\n\nconst RESOURCEPATH = \"/documents\";\n\nexport class SearchOnlyDocuments\n implements SearchableDocuments\n{\n protected requestWithCache: RequestWithCache = new RequestWithCache();\n\n constructor(\n protected collectionName: string,\n protected apiCall: ApiCall,\n protected configuration: Configuration,\n ) {}\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n /**\n * Search for documents in a collection that match the search criteria.\n *\n * @example\n * await client.collections(\"products\").documents().search({ q: \"*\", query_by: \"title\" })\n *\n * @see https://typesense.org/docs/latest/api/search.html\n */\n async search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n abortSignal = null,\n }: SearchOptions = {},\n ): Promise> {\n const additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n\n const { streamConfig, ...rest } = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(searchParameters);\n\n const queryParams = {\n ...additionalQueryParams,\n ...rest,\n };\n\n const isStreamingRequest = queryParams.conversation_stream === true;\n\n return this.requestWithCache.perform<\n ApiCall,\n \"get\",\n [T],\n SearchResponse\n >(\n this.apiCall,\n \"get\",\n {\n path: this.endpointPath(\"search\"),\n queryParams,\n streamConfig,\n abortSignal,\n isStreamingRequest,\n },\n {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n },\n );\n }\n\n protected endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + operation\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import type { ReadStream } from \"fs\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport { ImportError, RequestMalformed } from \"./Errors\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport {\n SearchParams,\n SearchResponseRequestParams,\n WriteableDocuments,\n} from \"./Types\";\n\n// Todo: use generic to extract filter_by values\nexport type DeleteQuery =\n | {\n truncate?: true;\n }\n | {\n truncate?: never;\n filter_by?: string;\n batch_size?: number;\n ignore_not_found?: boolean;\n return_doc?: boolean;\n return_id?: boolean;\n };\n\nexport interface DeleteResponse {\n num_deleted: number;\n documents?: T[];\n ids?: string[];\n}\n\ninterface ImportResponseSuccess {\n success: true;\n error?: never;\n document?: T;\n id?: string;\n code?: never;\n}\n\nexport interface ImportResponseFail {\n success: false;\n error: string;\n document?: T;\n id?: string;\n code: number;\n}\n\nexport type ImportResponse = ImportResponseSuccess | ImportResponseFail;\n\nexport type DocumentSchema = Record;\n\nexport interface SearchParamsWithPreset<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n preset: string;\n}\n\ntype SearchResponseHighlightObject = {\n matched_tokens?: string[];\n snippet?: string;\n value?: string;\n};\n\nexport type SearchResponseHighlight = T extends string | number\n ? SearchResponseHighlightObject\n : {\n [TAttribute in keyof T]?: SearchResponseHighlight;\n };\n\nexport interface SearchResponseHit {\n curated?: true;\n highlights?: [\n {\n field: keyof T;\n snippet?: string;\n value?: string;\n snippets?: string[];\n indices?: number[];\n matched_tokens: string[][] | string[];\n },\n ];\n highlight: SearchResponseHighlight;\n document: T;\n text_match: number;\n text_match_info?: {\n best_field_score: `${number}`; // To prevent scores from being truncated by JSON spec\n best_field_weight: number;\n fields_matched: number;\n score: `${number}`; // To prevent scores from being truncated by JSON spec\n tokens_matched: number;\n };\n geo_distance_meters?: {\n location: number\n };\n}\n\nexport interface SearchResponseFacetCountSchema {\n counts: {\n count: number;\n highlighted: string;\n value: string;\n parent?: Record;\n }[];\n field_name: keyof T;\n sampled: boolean;\n stats: {\n avg?: number;\n max?: number;\n min?: number;\n sum?: number;\n total_values?: number;\n };\n}\n\ninterface LLMResponse {\n content: string;\n extraction_method: string;\n model: string;\n}\n\n// Todo: we could infer whether this is a grouped response by adding the search params as a generic\nexport interface SearchResponse {\n facet_counts?: SearchResponseFacetCountSchema[];\n found: number;\n found_docs?: number;\n out_of: number;\n page: number;\n request_params: SearchResponseRequestParams;\n search_time_ms: number;\n search_cutoff?: boolean;\n hits?: SearchResponseHit[];\n grouped_hits?: {\n group_key: string[];\n hits: SearchResponseHit[];\n found?: number;\n }[];\n parsed_nl_query?: {\n parse_time_ms: number;\n generated_params: SearchParams;\n augmented_params: SearchParams;\n llm_response?: LLMResponse;\n };\n conversation?: {\n answer: string;\n conversation_history: {\n conversation: object[];\n id: string;\n last_updated: number;\n ttl: number;\n };\n conversation_id: string;\n query: string;\n };\n error?: string;\n code?: number;\n metadata?: JsonRecord;\n}\n\ntype JSONPrimitive = string | number | boolean | null;\n\ntype JsonRecord = {\n [key: string]: JSONPrimitive | JSONPrimitive[] | JsonRecord;\n};\n\nexport interface DocumentWriteParameters {\n dirty_values?: \"coerce_or_reject\" | \"coerce_or_drop\" | \"drop\" | \"reject\";\n action?: \"create\" | \"update\" | \"upsert\" | \"emplace\";\n}\n\nexport interface UpdateByFilterParameters {\n filter_by?: string;\n}\n\nexport interface UpdateByFilterResponse {\n num_updated: number;\n}\n\nexport interface DocumentImportParameters extends DocumentWriteParameters {\n batch_size?: number;\n remote_embedding_batch_size?: number;\n remote_embedding_timeout_ms?: number;\n remote_embedding_num_tries?: number;\n return_doc?: boolean;\n return_id?: boolean;\n throwOnFail?: boolean;\n}\n\nexport interface DocumentsExportParameters {\n filter_by?: string;\n include_fields?: string;\n exclude_fields?: string;\n}\n\nexport interface SearchOptions {\n cacheSearchResultsForSeconds?: number;\n abortSignal?: AbortSignal | null;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nexport default class Documents\n extends SearchOnlyDocuments\n implements WriteableDocuments\n{\n constructor(\n collectionName: string,\n apiCall: ApiCall,\n configuration: Configuration,\n ) {\n super(collectionName, apiCall, configuration);\n }\n\n /**\n * Index a single document. The document must conform to the schema of the collection.\n *\n * @example\n * await client.collections(\"products\").documents().create({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-a-single-document\n */\n async create(\n document: T,\n options: Omit = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(this.endpointPath(), document, options);\n }\n\n /**\n * Upsert a single document. Creates the document if it does not exist, otherwise updates it.\n *\n * @example\n * await client.collections(\"products\").documents().upsert({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#upsert\n */\n async upsert(document: T, options: Omit = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"upsert\" }),\n );\n }\n\n /**\n * Update documents matching a `filter_by` condition, or update a single document with `action: \"update\"` semantics.\n *\n * @example\n * await client.collections(\"products\").documents().update({ in_stock: true }, { filter_by: \"category:=hats\" })\n * @example\n * await client.collections(\"products\").documents().update({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#update-documents-with-conditional-query\n */\n async update(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n /**\n * Update a single document by merging the provided fields.\n *\n * @example\n * await client.collections(\"products\").documents().update({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#update-a-document\n */\n async update(document: T, options: Omit): Promise;\n async update(\n document: T,\n options: Omit | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"update\" }),\n );\n }\n }\n\n /**\n * Emplace documents — insert new documents or update existing ones, optionally by `filter_by`.\n *\n * @example\n * await client.collections(\"products\").documents().emplace({ id: \"1\", title: \"Hat\" })\n * @example\n * await client.collections(\"products\").documents().emplace({ in_stock: true }, { filter_by: \"category:=hats\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async emplace(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n /**\n * Emplace a single document — inserts if it does not exist, otherwise merges the provided fields.\n *\n * @example\n * await client.collections(\"products\").documents().emplace({ id: \"1\", title: \"Hat\" })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async emplace(\n document: T,\n options: Omit,\n ): Promise;\n async emplace(\n document: T,\n options: Omit | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"emplace\" }),\n );\n }\n }\n\n /**\n * Delete a bunch of documents that match a specific filter condition, or truncate the collection.\n *\n * @example\n * await client.collections(\"products\").documents().delete({ filter_by: \"in_stock:=false\" })\n * @example\n * await client.collections(\"products\").documents().delete({ truncate: true })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#delete-by-query\n */\n async delete(\n query: DeleteQuery = {} as DeleteQuery,\n ): Promise> {\n return this.apiCall.delete>(this.endpointPath(), query);\n }\n\n /**\n * @deprecated Use `import` instead, which accepts both an array of documents or a JSONL string.\n */\n async createMany(documents: T[], options: DocumentImportParameters = {}) {\n this.configuration.logger.warn(\n \"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\",\n );\n return this.import(documents, options);\n }\n\n /**\n * Import documents into a collection. Accepts a JSONL string or an array of document objects.\n *\n * @example\n * await client.collections(\"products\").documents().import([{ id: \"1\", title: \"Hat\" }, { id: \"2\", title: \"Shirt\" }])\n * @example\n * await client.collections(\"products\").documents().import(jsonlString)\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async import(\n documents: string,\n options?: DocumentImportParameters,\n ): Promise;\n /**\n * Import documents into a collection from an array of objects. Returns one result per document.\n *\n * @example\n * await client.collections(\"products\").documents().import([{ id: \"1\", title: \"Hat\" }])\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async import(\n documents: T[],\n options?: DocumentImportParameters,\n ): Promise[]>;\n async import(\n documents: T[] | string,\n options: DocumentImportParameters = {},\n ): Promise[]> {\n // Set default value for throwOnFail if not provided\n const finalOptions = { throwOnFail: true, ...options };\n let documentsInJSONLFormat;\n if (Array.isArray(documents)) {\n if (documents.length === 0) {\n throw new RequestMalformed(\"No documents provided\");\n }\n try {\n documentsInJSONLFormat = documents\n .map((document) => JSON.stringify(document))\n .join(\"\\n\");\n } catch (error: any) {\n // if rangeerror, throw custom error message\n if (\n error instanceof RangeError &&\n error.message.includes(\"Too many properties to enumerate\")\n ) {\n throw new Error(`${error}\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n `);\n }\n\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n } else {\n documentsInJSONLFormat = documents;\n if (isEmptyString(documentsInJSONLFormat)) {\n throw new RequestMalformed(\"No documents provided\");\n }\n }\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: finalOptions,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n if (Array.isArray(documents)) {\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter(\n (r) => r.success === false,\n );\n if (failedItems.length > 0 && finalOptions.throwOnFail) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat,\n options: finalOptions,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n } else {\n return resultsInJSONLFormat as string;\n }\n }\n /**\n * Imports documents from a NodeJS readable stream of JSONL.\n *\n * @example\n * await client.collections(\"products\").documents().importStream(fs.createReadStream(\"products.jsonl\"))\n *\n * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents\n */\n async importStream(\n readableStream: ReadStream,\n options: DocumentImportParameters = {},\n ): Promise[]> {\n const finalOptions = { throwOnFail: true, ...options };\n \n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: finalOptions,\n bodyParameters: readableStream,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter((r) => r.success === false);\n if (failedItems.length > 0 && finalOptions.throwOnFail) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat: readableStream,\n options: finalOptions,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n }\n\n /**\n * Export all documents in a collection as a JSONL string.\n *\n * @example\n * await client.collections(\"products\").documents().export()\n *\n * @see https://typesense.org/docs/latest/api/documents.html#export-documents\n */\n async export(options: DocumentsExportParameters = {}): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options);\n }\n\n /**\n * Export all documents in a collection as a NodeJS readable stream of JSONL.\n *\n * @example\n * await client.collections(\"products\").documents().exportStream()\n *\n * @see https://typesense.org/docs/latest/api/documents.html#export-documents\n */\n async exportStream(\n options: DocumentsExportParameters = {},\n ): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n });\n }\n}\n\nfunction isEmptyString(str: string | null | undefined): boolean {\n return str == null || str === \"\" || str.length === 0;\n}\n\n/**\n * @deprecated Import from './Types' instead\n */\nexport type {\n SearchParams,\n WriteableDocuments,\n SearchableDocuments,\n DropTokensMode,\n OperationMode,\n UnionArrayKeys,\n UnionArraySearchParams,\n ArraybleParams,\n ExtractBaseTypes,\n SearchResponseRequestParams,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { OverrideSchema } from \"./Override\";\n\nconst RESOURCEPATH = \"/overrides\";\n\nexport interface OverrideRuleQuerySchema {\n query?: string;\n match?: \"exact\" | \"contains\";\n}\n\nexport interface OverrideRuleFilterSchema {\n filter_by?: string;\n}\n\nexport interface OverrideRuleTagsSchema {\n tags?: string[];\n}\n\nexport interface OverrideCreateSchema {\n rule: OverrideRuleQuerySchema &\n OverrideRuleFilterSchema &\n OverrideRuleTagsSchema;\n filter_by?: string;\n sort_by?: string;\n remove_matched_tokens?: boolean;\n replace_query?: string;\n includes?: Array<{\n id: string;\n position: number;\n }>;\n excludes?: Array<{ id: string }>;\n filter_curated_hits?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n stop_processing?: boolean;\n metadata?: object;\n}\n\nexport interface OverridesRetrieveSchema {\n overrides: OverrideSchema[];\n}\n\nexport default class Overrides {\n constructor(\n private collectionName: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Create or update an override (curation rule) on this collection.\n *\n * @example\n * await client.collections(\"products\").overrides().upsert(\"promote-hat\", { rule: { query: \"hat\", match: \"exact\" }, includes: [] })\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async upsert(\n overrideId: string,\n params: OverrideCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(overrideId),\n params,\n );\n }\n\n /**\n * Retrieve all overrides (curation rules) on this collection.\n *\n * @example\n * await client.collections(\"products\").overrides().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Collections.RESOURCEPATH}/${this.collectionName}${\n Overrides.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Overrides, { OverrideCreateSchema } from \"./Overrides\";\n\nexport interface OverrideSchema extends OverrideCreateSchema {\n id: string;\n}\n\nexport interface OverrideDeleteSchema {\n id: string;\n}\n\nexport default class Override {\n constructor(\n private collectionName: string,\n private overrideId: string,\n private apiCall: ApiCall\n ) {}\n\n /**\n * Retrieve an override (curation rule) by ID on this collection.\n *\n * @example\n * await client.collections(\"products\").overrides(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete an override (curation rule) by ID on this collection.\n *\n * @example\n * await client.collections(\"products\").overrides(\"promote-hat\").delete()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { SynonymSchema } from \"./Synonym\";\n\nconst RESOURCEPATH = \"/synonyms\";\n\nexport interface SynonymCreateSchema {\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymsRetrieveSchema {\n synonyms: SynonymSchema[];\n}\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.synonymSets` (new Synonym Sets APIs).\n */\nexport default class Synonyms {\n private static hasWarnedDeprecation = false;\n constructor(private collectionName: string, private apiCall: ApiCall) {}\n\n /**\n * Create or update a synonym (legacy v1) on this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms().upsert(\"syn-1\", { synonyms: [\"nyc\", \"new york\"] })\n *\n * @see https://typesense.org/docs/29.0/api/synonyms.html\n */\n async upsert(\n synonymId: string,\n params: SynonymCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(synonymId),\n params\n );\n }\n\n /**\n * Retrieve all synonyms (legacy v1) on this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms().retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string) {\n if (!Synonyms.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'synonyms' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets ('synonym_sets').\",\n );\n Synonyms.hasWarnedDeprecation = true;\n }\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${\n Synonyms.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Synonyms, { SynonymCreateSchema } from \"./Synonyms\";\n\nexport interface SynonymSchema extends SynonymCreateSchema {\n id: string;\n}\n\nexport interface SynonymDeleteSchema {\n id: string;\n}\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.synonymSets` (new Synonym Sets APIs).\n */\nexport default class Synonym {\n private static hasWarnedDeprecation = false;\n constructor(\n private collectionName: string,\n private synonymId: string,\n private apiCall: ApiCall\n ) {}\n\n /**\n * Retrieve a synonym (legacy v1) by ID on this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a synonym (legacy v1) by ID on this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms(\"syn-1\").delete()\n *\n * @see https://typesense.org/docs/29.0/api/synonyms.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n if (!Synonym.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'synonym' APIs are deprecated starting with Typesense Server v30. Please migrate to synonym sets 'synonym_sets'.\",\n );\n Synonym.hasWarnedDeprecation = true;\n }\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Documents, {\n DeleteQuery,\n DocumentSchema,\n DocumentWriteParameters,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nexport interface DocumentsRetrieveParameters {\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n}\n\nexport class Document {\n constructor(\n private collectionName: string,\n private documentId: string,\n private apiCall: ApiCall\n ) {}\n\n /**\n * Fetch an individual document from a collection by using its ID.\n *\n * @example\n * await client.collections(\"products\").documents(\"1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/documents.html#retrieve-a-document\n */\n async retrieve(options?: DocumentsRetrieveParameters): Promise {\n const queryParams = normalizeArrayableParams(options ?? {})\n\n return this.apiCall.get(this.endpointPath(), queryParams);\n }\n\n /**\n * Delete an individual document from a collection by using its ID.\n *\n * @example\n * await client.collections(\"products\").documents(\"1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/documents.html#delete-a-document\n */\n async delete(options?: DeleteQuery): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n /**\n * Update an individual document by ID by merging the provided fields.\n *\n * @example\n * await client.collections(\"products\").documents(\"1\").update({ in_stock: true })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#update-a-document\n */\n async update(\n partialDocument: Partial,\n options: DocumentWriteParameters = {}\n ): Promise {\n return this.apiCall.patch(this.endpointPath(), partialDocument, options);\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport type {\n BaseCollectionCreateSchema,\n CollectionCreateSchema,\n} from \"./Collections\";\nimport Documents, { DocumentSchema } from \"./Documents\";\nimport { ObjectNotFound } from \"./Errors\";\nimport Overrides from \"./Overrides\";\nimport Override from \"./Override\";\nimport Synonyms from \"./Synonyms\";\nimport Synonym from \"./Synonym\";\nimport { Document } from \"./Document\";\n\nexport type FieldType =\n | \"string\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"bool\"\n | \"geopoint\"\n | \"geopolygon\"\n | \"geopoint[]\"\n | \"string[]\"\n | \"int32[]\"\n | \"int64[]\"\n | \"float[]\"\n | \"bool[]\"\n | \"object\"\n | \"object[]\"\n | \"auto\"\n | \"string*\"\n | \"image\";\n\nexport interface CollectionFieldSchema\n extends Partial<\n Pick\n > {\n name: string;\n type: FieldType;\n optional?: boolean;\n facet?: boolean;\n index?: boolean;\n sort?: boolean;\n locale?: string;\n infix?: boolean;\n stem?: boolean;\n num_dim?: number;\n store?: boolean;\n range_index?: boolean;\n [t: string]: unknown;\n}\n\nexport interface CollectionSchema extends Required {\n created_at: number;\n num_documents: number;\n num_memory_shards: number;\n}\n\nexport interface CollectionDropFieldSchema {\n name: string;\n drop: true;\n}\n\nexport interface CollectionUpdateSchema\n extends Partial> {\n fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];\n}\n\nexport interface CollectionDeleteOptions {\n compact_store?: boolean;\n}\n\nexport default class Collection {\n private readonly _documents: Documents;\n private individualDocuments: Record> = {};\n private readonly _overrides: Overrides;\n private individualOverrides: Record = {};\n private readonly _synonyms: Synonyms;\n private individualSynonyms: Record = {};\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any,\n ) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n\n this._documents = new Documents(\n this.name,\n this.apiCall,\n this.configuration,\n );\n this._overrides = new Overrides(this.name, this.apiCall);\n this._synonyms = new Synonyms(this.name, this.apiCall);\n }\n\n /**\n * Retrieve the details of a collection, given its name.\n *\n * @example\n * await client.collections(\"products\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Update a collection's schema to modify the fields and their types.\n *\n * @example\n * await client.collections(\"products\").update({ fields: [{ name: \"tags\", type: \"string[]\" }] })\n *\n * @see https://typesense.org/docs/latest/api/collections.html#update-or-alter-a-collection\n */\n async update(schema: CollectionUpdateSchema): Promise {\n return this.apiCall.patch(this.endpointPath(), schema);\n }\n\n /**\n * Permanently drops a collection. This action cannot be undone. For large collections, this might have an impact on read latencies.\n *\n * @example\n * await client.collections(\"products\").delete()\n *\n * @see https://typesense.org/docs/latest/api/collections.html#drop-a-collection\n */\n async delete(\n options: CollectionDeleteOptions = {},\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n /**\n * Check whether the collection exists.\n *\n * @example\n * await client.collections(\"products\").exists()\n *\n * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection\n */\n async exists(): Promise {\n try {\n await this.retrieve();\n return true;\n } catch (e) {\n if (e instanceof ObjectNotFound) return false;\n throw e;\n }\n }\n\n /**\n * Access the documents resource for this collection. Call without arguments to list, index, search, import, or export documents, or pass a document ID to access a single document.\n *\n * @example\n * await client.collections(\"products\").documents().create({ id: \"1\", title: \"Hat\" })\n * @example\n * await client.collections(\"products\").documents(\"1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/documents.html\n */\n documents(): Documents;\n /**\n * Access an individual document by ID within this collection.\n *\n * @example\n * await client.collections(\"products\").documents(\"1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/documents.html\n */\n documents(documentId: string): Document;\n documents(documentId?: string): Document | Documents {\n if (!documentId) {\n return this._documents;\n } else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document(\n this.name,\n documentId,\n this.apiCall,\n );\n }\n return this.individualDocuments[documentId];\n }\n }\n\n /**\n * Access the legacy overrides (curation) resource for this collection. Call without arguments to list or upsert overrides, or pass an ID to access a single override.\n *\n * @example\n * await client.collections(\"products\").overrides().upsert(\"promote-hat\", { rule: { query: \"hat\", match: \"exact\" }, includes: [] })\n * @example\n * await client.collections(\"products\").overrides(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n overrides(): Overrides;\n /**\n * Access an individual override by ID within this collection.\n *\n * @example\n * await client.collections(\"products\").overrides(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n overrides(overrideId: string): Override;\n overrides(overrideId?: string): Overrides | Override {\n if (overrideId === undefined) {\n return this._overrides;\n } else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override(\n this.name,\n overrideId,\n this.apiCall,\n );\n }\n return this.individualOverrides[overrideId];\n }\n }\n\n /**\n * Access the legacy synonyms resource for this collection. Call without arguments to list or upsert synonyms, or pass an ID to access a single synonym.\n *\n * @example\n * await client.collections(\"products\").synonyms().upsert(\"syn-1\", { synonyms: [\"nyc\", \"new york\"] })\n * @example\n * await client.collections(\"products\").synonyms(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n synonyms(): Synonyms;\n /**\n * Access an individual synonym by ID within this collection.\n *\n * @example\n * await client.collections(\"products\").synonyms(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n synonyms(synonymId: string): Synonym;\n synonyms(synonymId?: string): Synonyms | Synonym {\n if (synonymId === undefined) {\n return this._synonyms;\n } else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym(\n this.name,\n synonymId,\n this.apiCall,\n );\n }\n return this.individualSynonyms[synonymId];\n }\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/aliases\";\n\nexport interface CollectionAliasCreateSchema {\n collection_name: string;\n}\n\nexport interface CollectionAliasSchema extends CollectionAliasCreateSchema {\n name: string;\n}\n\nexport interface CollectionAliasesResponseSchema {\n aliases: CollectionAliasSchema[];\n}\n\nexport default class Aliases {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Create or update a collection alias.\n *\n * @example\n * await client.aliases().upsert(\"my-alias\", { collection_name: \"products\" })\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html#create-or-update-an-alias\n */\n async upsert(\n name: string,\n mapping: CollectionAliasCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n mapping\n );\n }\n\n /**\n * List all aliases and the corresponding collections that they map to.\n *\n * @example\n * await client.aliases().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html#list-all-aliases\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n private endpointPath(aliasName): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import Aliases, { CollectionAliasSchema } from \"./Aliases\";\nimport ApiCall from \"./ApiCall\";\n\nexport default class Alias {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n /**\n * Find out which collection an alias points to by fetching it\n *\n * @example\n * await client.aliases(\"my-alias\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html#retrieve-an-alias\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete an alias\n *\n * @example\n * await client.aliases(\"my-alias\").delete()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html#delete-an-alias\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import { createHmac } from \"crypto\";\nimport ApiCall from \"./ApiCall\";\nimport { KeyCreateSchema, KeySchema } from \"./Key\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/keys\";\n\nexport interface KeysRetrieveSchema {\n keys: KeySchema[];\n}\n\nexport interface GenerateScopedSearchKeyParams<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n expires_at?: number;\n cache_ttl?: number;\n limit_multi_searches?: number;\n}\n\nexport default class Keys {\n constructor(private apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Create an API Key with fine-grain access control. You can restrict access on both a per-collection and per-action level. The generated key is returned only during creation. You want to store this key carefully in a secure place.\n *\n * @example\n * await client.keys().create({ description: \"Search-only key\", actions: [\"documents:search\"], collections: [\"*\"] })\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#create-an-api-key\n */\n async create(params: KeyCreateSchema): Promise {\n return this.apiCall.post(Keys.RESOURCEPATH, params);\n }\n\n /**\n * Retrieve (metadata about) all keys.\n *\n * @example\n * await client.keys().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#list-all-keys\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n /**\n * Generate a scoped search-only API key with embedded parameters such as `filter_by` or `expires_at`.\n *\n * @example\n * client.keys().generateScopedSearchKey(\"search-only-key\", { filter_by: \"company_id:124\", expires_at: 1700000000 })\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#generate-scoped-search-key\n */\n generateScopedSearchKey(\n searchKey: string,\n parameters: GenerateScopedSearchKeyParams,\n ): string {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when used with the search endpoint.\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(parameters);\n const paramsJSON = JSON.stringify(normalizedParams);\n const digest = Buffer.from(\n createHmac(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"),\n );\n const keyPrefix = searchKey.substr(0, 4);\n const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`;\n\n return Buffer.from(rawScopedKey).toString(\"base64\");\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Keys from \"./Keys\";\n\nexport interface KeyCreateSchema {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n actions: Actions[] | (string & {})[];\n collections: string[];\n description?: string;\n value?: string;\n value_prefix?: string;\n expires_at?: number;\n autodelete?: boolean;\n}\n\ntype CRUDActions = \"create\" | \"delete\" | \"get\" | \"list\" | \"*\";\ntype DocumentActionTypes =\n | \"search\"\n | \"get\"\n | \"create\"\n | \"upsert\"\n | \"update\"\n | \"delete\"\n | \"import\"\n | \"export\"\n | \"*\";\n\ntype CRUDFeatures =\n | \"collections\"\n | \"aliases\"\n | \"synonyms\"\n | \"overrides\"\n | \"stopwords\"\n | \"keys\"\n | \"analytics\"\n | \"analytics/rules\";\n\ntype FeatureActions = `${CRUDFeatures}:${CRUDActions}`;\ntype DocumentActions = `documents:${DocumentActionTypes}`;\ntype AnalyticsEventActions = \"analytics/events:create\";\ntype MiscActions = `${`metrics.json` | `stats.json` | `debug`}.list` | \"*\";\n\nexport type Actions =\n | FeatureActions\n | DocumentActions\n | AnalyticsEventActions\n | MiscActions;\n\nexport interface KeyDeleteSchema {\n id: number;\n}\n\nexport interface KeySchema extends KeyCreateSchema {\n id: number;\n}\n\nexport default class Key {\n constructor(\n private id: number,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve (metadata about) a key. Only the key prefix is returned when you retrieve a key. Due to security reasons, only the create endpoint returns the full API key.\n *\n * @example\n * await client.keys(1).retrieve()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#retrieve-an-api-key\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete an API key given its ID.\n *\n * @example\n * await client.keys(1).delete()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html#delete-api-key\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/debug\";\n\nexport interface DebugResponseSchema {\n state: number;\n version: string;\n}\n\nexport default class Debug {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Retrieve server version and state information.\n *\n * @example\n * await client.debug.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/metrics.json\";\n\nexport interface MetricsResponse {\n [key: `system_cpu${number}_active_percentage`]: string;\n system_cpu_active_percentage: string;\n system_disk_total_bytes: string;\n system_disk_used_bytes: string;\n system_memory_total_bytes: string;\n system_memory_total_swap_bytes?: string;\n system_memory_used_bytes: string;\n system_memory_used_swap_bytes?: string;\n system_network_received_bytes: string;\n system_network_sent_bytes: string;\n typesense_memory_active_bytes: string;\n typesense_memory_allocated_bytes: string;\n typesense_memory_fragmentation_ratio: string;\n typesense_memory_mapped_bytes: string;\n typesense_memory_metadata_bytes: string;\n typesense_memory_resident_bytes: string;\n typesense_memory_retained_bytes: string;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Get current RAM, CPU, Disk & Network usage metrics.\n *\n * @example\n * await client.metrics.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/stats.json\";\n\nexport interface EndpointStats {\n [endpoint: string]: number;\n}\n\nexport interface StatsResponse {\n delete_latency_ms?: number;\n delete_requests_per_second?: number;\n import_latency_ms?: number;\n import_requests_per_second?: number;\n latency_ms?: EndpointStats;\n overloaded_requests_per_second?: number;\n pending_write_batches?: number;\n requests_per_second?: EndpointStats;\n search_latency_ms?: number;\n search_requests_per_second?: number;\n total_requests_per_second?: number;\n write_latency_ms?: number;\n write_requests_per_second?: number;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Get stats about API endpoints.\n *\n * @example\n * await client.stats.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/health\";\n\nexport interface HealthResponse {\n ok: boolean;\n}\n\nexport default class Health {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Checks if Typesense server is ready to accept requests.\n *\n * @example\n * await client.health.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html#health\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/operations\";\n\nexport interface SchemaChangeStatus {\n collection: string;\n validated_docs: number;\n altered_docs: number;\n}\n\nexport default class Operations {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Perform a cluster operation: snapshot, vote, cache/clear, db/compact, or a custom path.\n *\n * @example\n * await client.operations.perform(\"snapshot\", { snapshot_path: \"/tmp/snap\" })\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n async perform(\n operationName:\n | \"vote\"\n | \"snapshot\"\n | \"cache/clear\"\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- Can't use `object` here, it needs to intersect with `{}`\n | (string & {}),\n queryParameters: Record = {},\n ): Promise {\n return this.apiCall.post(\n `${RESOURCEPATH}/${operationName}`,\n {},\n queryParameters,\n );\n }\n\n /**\n * Get the status of in-progress schema change operations\n *\n * @example\n * await client.operations.getSchemaChanges()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n async getSchemaChanges(): Promise {\n return this.apiCall.get(\n `${RESOURCEPATH}/schema_changes`,\n );\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport type Configuration from \"./Configuration\";\nimport RequestWithCache from \"./RequestWithCache\";\nimport type {\n DocumentSchema,\n ExtractBaseTypes,\n SearchOptions,\n SearchParams,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\nimport { Logger } from \"loglevel\";\n\nconst RESOURCEPATH = \"/multi_search\";\n\nexport default class MultiSearch {\n private requestWithCache: RequestWithCache;\n readonly logger: Logger;\n\n constructor(\n private apiCall: ApiCall,\n private configuration: Configuration,\n private useTextContentType: boolean = false,\n ) {\n this.requestWithCache = new RequestWithCache();\n this.logger = this.apiCall.logger;\n }\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n /**\n * Send multiple search requests in a single HTTP request. Pass `union: true` to merge results, or omit it to receive a `results` array.\n *\n * @example\n * await client.multiSearch.perform({ searches: [{ collection: \"products\", q: \"*\" }] })\n * @example\n * await client.multiSearch.perform({ union: true, searches: [{ collection: \"products\", q: \"*\" }] })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search\n */\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithUnionSchema,\n commonParams?: MultiSearchUnionParameters,\n options?: SearchOptions,\n ): Promise>;\n\n /**\n * Send multiple search requests in a single HTTP request and receive a `results` array (one entry per search).\n *\n * @example\n * await client.multiSearch.perform({ searches: [{ collection: \"products\", q: \"*\" }] })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search\n */\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithoutUnionSchema,\n commonParams?: MultiSearchResultsParameters,\n options?: SearchOptions,\n ): Promise<{\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsSchema,\n commonParams?:\n | MultiSearchUnionParameters\n | MultiSearchResultsParameters,\n options?: SearchOptions,\n ): Promise> {\n const params = commonParams ? { ...commonParams } : {};\n const cacheSearchResultsForSeconds =\n options?.cacheSearchResultsForSeconds ??\n this.configuration.cacheSearchResultsForSeconds;\n\n if (this.configuration.useServerSideSearchCache === true) {\n params.use_cache = true;\n }\n\n if (searchRequests.union === true && this.hasAnySearchObjectPagination(searchRequests)) {\n this.logger.warn(\n \"Individual `searches` pagination parameters are ignored when `union: true` is set. Use a top-level pagination parameter instead. See https://typesense.org/docs/29.0/api/federated-multi-search.html#union-search\"\n );\n }\n\n const normalizedSearchRequests: Omit & {\n searches: ExtractBaseTypes>[];\n } = {\n union: searchRequests.union,\n searches: searchRequests.searches.map(\n normalizeArrayableParams<\n T[number],\n SearchParams,\n Infix\n >,\n ),\n };\n\n const { streamConfig, ...paramsWithoutStream } = params;\n const normalizedQueryParams = normalizeArrayableParams(\n paramsWithoutStream as SearchParams,\n );\n\n return this.requestWithCache.perform(\n this.apiCall,\n \"post\",\n {\n path: RESOURCEPATH,\n body: normalizedSearchRequests,\n queryParams: normalizedQueryParams,\n headers: this.useTextContentType\n ? { \"content-type\": \"text/plain\" }\n : {},\n streamConfig,\n abortSignal: options?.abortSignal,\n isStreamingRequest: this.isStreamingRequest(params),\n },\n cacheSearchResultsForSeconds !== undefined\n ? { cacheResponseForSeconds: cacheSearchResultsForSeconds }\n : undefined,\n );\n }\n\n private isStreamingRequest(commonParams: { streamConfig?: unknown }) {\n return commonParams.streamConfig !== undefined;\n }\n\n private hasAnySearchObjectPagination(searchRequests: MultiSearchRequestsSchema) {\n return searchRequests.searches.some(search => search.page !== undefined || search.per_page !== undefined || search.offset !== undefined || search.limit !== undefined || search.limit_hits !== undefined);\n }\n}\n\nexport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport { PresetSchema } from \"./Preset\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { MultiSearchRequestsSchema } from \"./MultiSearch\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/presets\";\n\nexport interface PresetCreateSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n value: SearchParams | MultiSearchRequestsSchema;\n}\n\nexport interface PresetsRetrieveSchema {\n presets: PresetSchema[];\n}\n\nexport default class Presets {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Create or update an existing preset.\n *\n * @example\n * await client.presets().upsert(\"listing_view\", { value: { q: \"*\" } })\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n async upsert(\n presetId: string,\n params: PresetCreateSchema,\n ): Promise> {\n if (typeof params.value === \"object\" && \"searches\" in params.value) {\n const normalizedParams = params.value.searches.map((search) =>\n normalizeArrayableParams, Infix>(search),\n );\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: { searches: normalizedParams },\n });\n }\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(params.value);\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: normalizedParams,\n });\n }\n\n /**\n * Retrieve the details of all presets\n *\n * @example\n * await client.presets().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n async retrieve(): Promise<\n PresetsRetrieveSchema\n > {\n return this.apiCall.get>(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Presets.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { DocumentSchema } from \"./Documents\";\nimport Presets, { PresetCreateSchema } from \"./Presets\";\n\nexport interface PresetSchema\n extends PresetCreateSchema {\n name: string;\n}\n\nexport interface PresetDeleteSchema {\n name: string;\n}\n\nexport default class Preset {\n constructor(\n private presetId: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve the details of a preset, given it's name.\n *\n * @example\n * await client.presets(\"listing_view\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n async retrieve(): Promise> {\n return this.apiCall.get>(this.endpointPath());\n }\n\n /**\n * Permanently deletes a preset, given it's name.\n *\n * @example\n * await client.presets(\"listing_view\").delete()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchemaV1,\n AnalyticsRuleSchemaV1,\n} from \"./AnalyticsRuleV1\";\n\nexport interface AnalyticsRulesRetrieveSchemaV1 {\n rules: AnalyticsRuleSchemaV1[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRulesV1 {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Upsert a legacy v1 analytics rule by name.\n *\n * @example\n * await client.analyticsV1.rules().upsert(\"products_query_hits\", { type: \"popular_queries\", params: {} })\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n async upsert(\n name: string,\n params: AnalyticsRuleCreateSchemaV1\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n /**\n * Retrieve all legacy v1 analytics rules.\n *\n * @example\n * await client.analyticsV1.rules().retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRulesV1.RESOURCEPATH}${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRulesV1 from \"./AnalyticsRulesV1\";\n\nexport interface AnalyticsRuleCreateSchemaV1 {\n type: \"popular_queries\" | \"nohits_queries\" | \"counter\" | \"log\";\n params: {\n enable_auto_aggregation?: boolean;\n source: {\n collections: string[];\n events?: {\n type: string;\n weight?: number;\n name: string;\n }[];\n };\n expand_query?: boolean;\n destination?: {\n collection: string;\n counter_field?: string;\n };\n limit?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchemaV1 {\n name: string;\n}\n\nexport interface AnalyticsRuleSchemaV1 extends AnalyticsRuleCreateSchemaV1 {\n name: string;\n}\n\nexport default class AnalyticsRuleV1 {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) { }\n\n /**\n * Retrieve a legacy v1 analytics rule by name.\n *\n * @example\n * await client.analyticsV1.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a legacy v1 analytics rule by name.\n *\n * @example\n * await client.analyticsV1.rules(\"rule-1\").delete()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRulesV1.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport { AnalyticsEventCreateSchema } from \"./AnalyticsEvent\";\n\nconst RESOURCEPATH = \"/analytics/events\";\n\nexport interface AnalyticsEventsRetrieveSchema {\n events: {\n name: string;\n event_type: string;\n collection: string;\n timestamp: number;\n user_id: string;\n doc_id?: string;\n doc_ids?: string[];\n query?: string;\n }[];\n}\n\nexport default class AnalyticsEvents {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Submit a single analytics event. The event must correspond to an existing analytics rule by name.\n *\n * @example\n * await client.analytics.events().create({ type: \"click\", name: \"products_click\", data: {} })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async create(\n params: AnalyticsEventCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n /**\n * Retrieve the most recent events for a user and rule.\n *\n * @example\n * await client.analytics.events().retrieve({ user_id: \"u1\", name: \"products_click\", n: 10 })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async retrieve(params: {\n user_id: string;\n name: string;\n n: number;\n }): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n params,\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsEvents.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRulesV1 from \"./AnalyticsRulesV1\";\nimport AnalyticsRuleV1 from \"./AnalyticsRuleV1\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\n/**\n * @deprecated Deprecated starting with Typesense Server v30. Please migrate to `client.analytics` (new Analytics APIs).\n */\nexport default class AnalyticsV1 {\n private static hasWarnedDeprecation = false;\n private readonly _analyticsRules: AnalyticsRulesV1;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRulesV1(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n /**\n * Access the legacy v1 analytics rules resource. Call without arguments to list or upsert rules, or pass an ID to access a single rule.\n *\n * @example\n * await client.analyticsV1.rules().retrieve()\n * @example\n * await client.analyticsV1.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n rules(): AnalyticsRulesV1;\n /**\n * Access an individual legacy v1 analytics rule by ID.\n *\n * @example\n * await client.analyticsV1.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n rules(id: string): AnalyticsRuleV1;\n rules(id?: string): AnalyticsRulesV1 | AnalyticsRuleV1 {\n if (!AnalyticsV1.hasWarnedDeprecation) {\n // eslint-disable-next-line no-console\n console.warn(\n \"[typesense] 'analyticsV1' is deprecated starting with Typesense Server v30 and will be removed in a future release. Please use 'analytics' instead.\",\n );\n AnalyticsV1.hasWarnedDeprecation = true;\n }\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRuleV1(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n /**\n * Access the legacy v1 analytics events resource to send analytics events.\n *\n * @example\n * await client.analyticsV1.events().create({ type: \"click\", name: \"products_click\", data: {} })\n *\n * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html\n */\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchema,\n AnalyticsRuleSchema,\n AnalyticsRuleUpsertSchema,\n} from \"./AnalyticsRule\";\n\nexport interface AnalyticsRulesRetrieveSchema {\n rules: AnalyticsRuleSchema[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRules {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Create one or more analytics rules. You can send a single rule object or an array of rule objects.\n *\n * @example\n * await client.analytics.rules().create({ name: \"products_query_hits\", type: \"popular_queries\", params: {} })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async create(\n params:\n | AnalyticsRuleCreateSchema\n | AnalyticsRuleCreateSchema[],\n ): Promise<\n | AnalyticsRuleSchema\n | (\n | AnalyticsRuleSchema\n | {\n error?: string;\n }\n )[]\n > {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n {},\n {},\n );\n }\n\n /**\n * Upserts an analytics rule with the given name.\n *\n * @example\n * await client.analytics.rules().upsert(\"products_query_hits\", { type: \"popular_queries\", params: {} })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async upsert(\n name: string,\n params: AnalyticsRuleUpsertSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n /**\n * Retrieve all analytics rules. Use the optional rule_tag filter to narrow down results.\n *\n * @example\n * await client.analytics.rules().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async retrieve(ruleTag?: string): Promise {\n const query: Record = {};\n if (ruleTag) {\n query[\"rule_tag\"] = ruleTag;\n }\n return this.apiCall.get(this.endpointPath(), query);\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRules.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\n\nexport interface AnalyticsRuleCreateSchema {\n name: string;\n type: string;\n collection: string;\n event_type: string;\n rule_tag?: string;\n params?: {\n destination_collection?: string;\n limit?: number;\n capture_search_requests?: boolean;\n meta_fields?: string[];\n expand_query?: boolean;\n counter_field?: string;\n weight?: number;\n };\n}\n\nexport interface AnalyticsRuleUpsertSchema {\n name?: string;\n type?: string;\n collection?: string;\n event_type?: string;\n rule_tag?: string;\n params?: {\n destination_collection?: string;\n limit?: number;\n capture_search_requests?: boolean;\n meta_fields?: string[];\n expand_query?: boolean;\n counter_field?: string;\n weight?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchema {\n name: string;\n}\n\nexport interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema {\n name: string;\n}\n\nexport default class AnalyticsRule {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve the details of an analytics rule, given it's name\n *\n * @example\n * await client.analytics.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Permanently deletes an analytics rule, given it's name\n *\n * @example\n * await client.analytics.rules(\"rule-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\nimport AnalyticsRule from \"./AnalyticsRule\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\nexport default class Analytics {\n private readonly _analyticsRules: AnalyticsRules;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n /**\n * Access the analytics rules resource. Call without arguments to list or create rules, or pass an ID to access a single rule.\n *\n * @example\n * await client.analytics.rules().retrieve()\n * @example\n * await client.analytics.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n rules(): AnalyticsRules;\n /**\n * Access an individual analytics rule by ID.\n *\n * @example\n * await client.analytics.rules(\"rule-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n rules(id: string): AnalyticsRule;\n rules(id?: string): AnalyticsRules | AnalyticsRule {\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n /**\n * Access the analytics events resource to send analytics events.\n *\n * @example\n * await client.analytics.events().create({ type: \"click\", name: \"products_click\", data: {} })\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { StopwordSchema } from \"./Stopword\";\n\nconst RESOURCEPATH = \"/stopwords\";\n\nexport interface StopwordCreateSchema {\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordsRetrieveSchema {\n stopwords: StopwordSchema[];\n}\n\nexport default class Stopwords {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Upserts a stopwords set.\n *\n * @example\n * await client.stopwords().upsert(\"en\", { stopwords: [\"a\", \"the\"] })\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n async upsert(\n stopwordId: string,\n params: StopwordCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(stopwordId),\n params,\n );\n }\n\n /**\n * Retrieve the details of all stopwords sets\n *\n * @example\n * await client.stopwords().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Stopwords.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Stopwords from \"./Stopwords\";\n\nexport interface StopwordSchema {\n id: string;\n stopwords: string[] | { id: string; stopwords: string[] };\n locale?: string;\n}\n\nexport interface StopwordDeleteSchema {\n id: string;\n}\n\nexport default class Stopword {\n constructor(\n private stopwordId: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve the details of a stopwords set, given it's name.\n *\n * @example\n * await client.stopwords(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Permanently deletes a stopwords set, given it's name.\n *\n * @example\n * await client.stopwords(\"en\").delete()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n ConversationModelCreateSchema,\n ConversationModelSchema,\n} from \"./ConversationModel\";\n\nconst RESOURCEPATH = \"/conversations/models\";\n\nexport default class ConversationModels {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Create a Conversation Model\n *\n * @example\n * await client.conversations().models().create({ model_name: \"openai/gpt-4\", api_key: \"...\" })\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async create(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n /**\n * Retrieve all conversation models\n *\n * @example\n * await client.conversations().models().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${ConversationModels.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\n\nexport interface ConversationModelCreateSchema {\n id?: string;\n model_name: string;\n api_key?: string;\n system_prompt?: string;\n max_bytes: number;\n history_collection?: string;\n account_id?: string;\n url?: string;\n ttl?: number;\n vllm_url?: string;\n openai_url?: string;\n openai_path?: string;\n}\n\nexport interface ConversationModelDeleteSchema {\n id: string;\n}\n\nexport interface ConversationModelSchema extends ConversationModelCreateSchema {\n id: string;\n}\n\nexport default class ConversationModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Update a conversation model\n *\n * @example\n * await client.conversations().models(\"model-1\").update({ model_name: \"openai/gpt-4\", max_bytes: 16384 })\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async update(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n /**\n * Retrieve a conversation model\n *\n * @example\n * await client.conversations().models(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a conversation model\n *\n * @example\n * await client.conversations().models(\"model-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\nimport ConversationModel from \"./ConversationModel\";\nimport { ConversationSchema } from \"./Conversation\";\n\nconst RESOURCEPATH = \"/conversations\";\n\nexport interface ConversationsRetrieveSchema {\n conversations: ConversationSchema[];\n}\n\nexport default class Conversations {\n private readonly _conversationsModels: ConversationModels;\n private readonly individualConversationModels: Record<\n string,\n ConversationModel\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels(this.apiCall);\n }\n\n /**\n * Retrieve all conversations.\n *\n * @example\n * await client.conversations().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n /**\n * Access the conversation models resource. Call without arguments to list or create models, or pass an ID to access a single model.\n *\n * @example\n * await client.conversations().models().create({ model_name: \"openai/gpt-4\", api_key: \"...\" })\n * @example\n * await client.conversations().models(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n models(): ConversationModels;\n /**\n * Access an individual conversation model by ID.\n *\n * @example\n * await client.conversations().models(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n models(id: string): ConversationModel;\n models(id?: string): ConversationModels | ConversationModel {\n if (id === undefined) {\n return this._conversationsModels;\n } else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel(\n id,\n this.apiCall,\n );\n }\n return this.individualConversationModels[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Conversations from \"./Conversations\";\n\nexport interface ConversationDeleteSchema {\n id: number;\n}\n\nexport interface ConversationUpdateSchema {\n ttl: number;\n}\n\nexport interface ConversationSchema {\n id: number;\n conversation: object[];\n last_updated: number;\n ttl: number;\n}\n\nexport default class Conversation {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve a conversation by ID.\n *\n * @example\n * await client.conversations(\"conv-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Update a conversation's TTL.\n *\n * @example\n * await client.conversations(\"conv-1\").update({ ttl: 3600 })\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async update(\n params: ConversationUpdateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n /**\n * Delete a conversation by ID.\n *\n * @example\n * await client.conversations(\"conv-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { StemmingDictionaryCreateSchema } from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming/dictionaries\";\n\nexport interface StemmingDictionariesRetrieveSchema {\n dictionaries: string[];\n}\n\nexport default class StemmingDictionaries {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n /**\n * Upload a JSONL file containing word mappings to create or update a stemming dictionary.\n *\n * @example\n * await client.stemming.dictionaries().upsert(\"irregular-plurals\", [{ word: \"people\", root: \"person\" }])\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n async upsert(\n id: string,\n wordRootCombinations: StemmingDictionaryCreateSchema[] | string,\n ): Promise {\n const wordRootCombinationsInJSONLFormat = Array.isArray(\n wordRootCombinations,\n )\n ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join(\"\\n\")\n : wordRootCombinations;\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: {id},\n bodyParameters: wordRootCombinationsInJSONLFormat,\n additionalHeaders: {\"Content-Type\": \"text/plain\"},\n skipConnectionTimeout: true,\n }\n );\n\n return Array.isArray(wordRootCombinations)\n ? resultsInJSONLFormat\n .split(\"\\n\")\n .map((line) => JSON.parse(line) as StemmingDictionaryCreateSchema)\n : resultsInJSONLFormat;\n }\n\n /**\n * Retrieve a list of all available stemming dictionaries.\n *\n * @example\n * await client.stemming.dictionaries().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return operation === undefined\n ? `${StemmingDictionaries.RESOURCEPATH}`\n : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\n\nexport interface StemmingDictionaryCreateSchema {\n root: string;\n word: string;\n}\n\nexport interface StemmingDictionarySchema {\n id: string;\n words: StemmingDictionaryCreateSchema[];\n}\n\nexport interface StemmingDictionaryDeleteSchema {\n id: string;\n}\n\nexport default class StemmingDictionary {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Fetch details of a specific stemming dictionary.\n *\n * @example\n * await client.stemming.dictionaries(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a stemming dictionary by ID.\n *\n * @example\n * await client.stemming.dictionaries(\"en\").delete()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\nimport StemmingDictionary from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming\";\n\nexport default class Stemming {\n private readonly _stemmingDictionaries: StemmingDictionaries;\n private readonly individualStemmingDictionaries: Record<\n string,\n StemmingDictionary\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._stemmingDictionaries = new StemmingDictionaries(this.apiCall);\n }\n\n /**\n * Access the stemming dictionaries resource. Call without arguments to list or import dictionaries, or pass an ID to access a single dictionary.\n *\n * @example\n * await client.stemming.dictionaries().retrieve()\n * @example\n * await client.stemming.dictionaries(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n dictionaries(): StemmingDictionaries;\n /**\n * Access an individual stemming dictionary by ID.\n *\n * @example\n * await client.stemming.dictionaries(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n dictionaries(id: string): StemmingDictionary;\n dictionaries(id?: string): StemmingDictionaries | StemmingDictionary {\n if (id === undefined) {\n return this._stemmingDictionaries;\n } else {\n if (this.individualStemmingDictionaries[id] === undefined) {\n this.individualStemmingDictionaries[id] = new StemmingDictionary(\n id,\n this.apiCall,\n );\n }\n return this.individualStemmingDictionaries[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/nl_search_models\";\n\n// Base schema with all possible fields\nexport interface NLSearchModelBase {\n model_name: string;\n api_key?: string;\n api_url?: string;\n max_bytes?: number;\n temperature?: number;\n system_prompt?: string;\n // Google-specific parameters\n top_p?: number;\n top_k?: number;\n stop_sequences?: string[];\n api_version?: string;\n // GCP Vertex AI specific\n project_id?: string;\n access_token?: string;\n refresh_token?: string;\n client_id?: string;\n client_secret?: string;\n region?: string;\n max_output_tokens?: number;\n // Cloudflare specific\n account_id?: string;\n}\n\nexport interface NLSearchModelCreateSchema extends NLSearchModelBase {\n id?: string;\n}\n\nexport interface NLSearchModelSchema extends NLSearchModelBase {\n id: string;\n}\n\nexport type NLSearchModelsRetrieveSchema = NLSearchModelSchema[];\n\nexport default class NLSearchModels {\n constructor(private apiCall: ApiCall) {}\n\n /**\n * Create a new NL search model.\n *\n * @example\n * await client.nlSearchModels().create({ model_name: \"openai/gpt-4\", api_key: \"...\" })\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async create(\n schema: NLSearchModelCreateSchema,\n ): Promise {\n return this.apiCall.post(this.endpointPath(), schema);\n }\n\n /**\n * Retrieve all NL search models.\n *\n * @example\n * await client.nlSearchModels().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(): string {\n return NLSearchModels.RESOURCEPATH;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n\n","import ApiCall from \"./ApiCall\";\nimport NLSearchModels from \"./NLSearchModels\";\nimport type { NLSearchModelBase, NLSearchModelSchema } from \"./NLSearchModels\";\n\ntype NLSearchModelUpdateSchema = NLSearchModelBase;\n\nexport interface NLSearchModelDeleteSchema {\n id: string;\n}\n\nexport default class NLSearchModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve a specific NL search model by its ID.\n *\n * @example\n * await client.nlSearchModels(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Update an existing NL search model.\n *\n * @example\n * await client.nlSearchModels(\"model-1\").update({ model_name: \"openai/gpt-4\" })\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async update(\n schema: NLSearchModelUpdateSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), schema);\n }\n\n /**\n * Delete a specific NL search model by its ID.\n *\n * @example\n * await client.nlSearchModels(\"model-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${NLSearchModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n\n","import ApiCall from \"./ApiCall\";\n\nexport interface SynonymItemSchema {\n id: string;\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymSetCreateSchema {\n items: SynonymItemSchema[];\n}\n\nexport interface SynonymSetSchema extends SynonymSetCreateSchema {\n name: string;\n}\n\nexport interface SynonymSetsRetrieveSchema {\n synonym_sets: SynonymSetSchema[];\n}\n\nexport default class SynonymSets {\n constructor(private apiCall: ApiCall) {}\n static readonly RESOURCEPATH = \"/synonym_sets\";\n\n /**\n * Retrieve all synonym sets\n *\n * @example\n * await client.synonymSets().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(SynonymSets.RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets, { SynonymItemSchema } from \"./SynonymSets\";\n\nexport default class SynonymSetItems {\n constructor(\n private synonymSetName: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Create or update a synonym set item with the given id\n *\n * @example\n * await client.synonymSets(\"my-set\").items().upsert(\"syn-1\", { synonyms: [\"nyc\", \"new york\"] })\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async upsert(\n itemId: string,\n params: Omit,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(itemId),\n params,\n );\n }\n\n /**\n * Retrieve all synonym items in a set\n *\n * @example\n * await client.synonymSets(\"my-set\").items().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}/items${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets, { SynonymItemSchema } from \"./SynonymSets\";\n\nexport interface SynonymSetItemDeleteSchema {\n id: string;\n}\n\nexport default class SynonymSetItem {\n constructor(\n private synonymSetName: string,\n private itemId: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve a specific synonym item by its id\n *\n * @example\n * await client.synonymSets(\"my-set\").items(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a specific synonym item by its id\n *\n * @example\n * await client.synonymSets(\"my-set\").items(\"syn-1\").delete()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}/items/${encodeURIComponent(this.itemId)}`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport SynonymSets from \"./SynonymSets\";\nimport type { SynonymSetCreateSchema, SynonymSetSchema } from \"./SynonymSets\";\nimport SynonymSetItems from \"./SynonymSetItems\";\nimport SynonymSetItem from \"./SynonymSetItem\";\n\nexport interface SynonymSetDeleteSchema {\n name: string;\n}\n\nexport type SynonymSetRetrieveSchema = SynonymSetCreateSchema;\n\nexport default class SynonymSet {\n private readonly _items: SynonymSetItems;\n private individualItems: Record = {};\n constructor(\n private synonymSetName: string,\n private apiCall: ApiCall,\n ) {\n this._items = new SynonymSetItems(this.synonymSetName, apiCall);\n }\n\n /**\n * Create or update a synonym set with the given name\n *\n * @example\n * await client.synonymSets(\"my-set\").upsert({ items: [{ id: \"syn-1\", synonyms: [\"nyc\", \"new york\"] }] })\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async upsert(\n params: SynonymSetCreateSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n /**\n * Retrieve a specific synonym set by its name\n *\n * @example\n * await client.synonymSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a specific synonym set by its name\n *\n * @example\n * await client.synonymSets(\"my-set\").delete()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n /**\n * Access the items in this synonym set. Call without arguments to list or upsert items, or pass an item ID to access a single item.\n *\n * @example\n * await client.synonymSets(\"my-set\").items().retrieve()\n * @example\n * await client.synonymSets(\"my-set\").items(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n items(): SynonymSetItems;\n /**\n * Access an individual synonym item by ID within this synonym set.\n *\n * @example\n * await client.synonymSets(\"my-set\").items(\"syn-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n items(itemId: string): SynonymSetItem;\n items(itemId?: string): SynonymSetItems | SynonymSetItem {\n if (itemId === undefined) {\n return this._items;\n } else {\n if (this.individualItems[itemId] === undefined) {\n this.individualItems[itemId] = new SynonymSetItem(\n this.synonymSetName,\n itemId,\n this.apiCall,\n );\n }\n return this.individualItems[itemId];\n }\n }\n\n private endpointPath(): string {\n return `${SynonymSets.RESOURCEPATH}/${encodeURIComponent(this.synonymSetName)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nexport type CurationRuleSchema =\n | {\n query: string;\n match: \"exact\" | \"contains\";\n filter_by?: string;\n tags?: string[];\n }\n | {\n query?: never;\n match?: never;\n filter_by: string;\n tags?: string[];\n }\n | {\n query?: never;\n match?: never;\n filter_by?: string;\n tags: string[];\n };\n\nexport interface CurationObjectSchema {\n id: string;\n rule: CurationRuleSchema;\n includes?: {\n id: string;\n position: number;\n }[];\n excludes?: {\n id: string;\n }[];\n filter_by?: string;\n sort_by?: string;\n replace_query?: string;\n remove_matched_tokens?: boolean;\n filter_curated_hits?: boolean;\n stop_processing?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n metadata?: Record;\n}\n\nexport interface CurationSetUpsertSchema {\n items: CurationObjectSchema[];\n}\n\nexport interface CurationSetSchema extends CurationSetUpsertSchema {\n name?: string;\n}\n\nexport interface CurationSetsListEntrySchema {\n name: string;\n items: CurationObjectSchema[];\n}\n\nexport interface CurationSetDeleteResponseSchema {\n name: string;\n}\n\nexport default class CurationSets {\n constructor(private apiCall: ApiCall) {}\n static readonly RESOURCEPATH = \"/curation_sets\";\n\n /**\n * Retrieve all curation sets\n *\n * @example\n * await client.curationSets().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(\n CurationSets.RESOURCEPATH,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets, { CurationObjectSchema } from \"./CurationSets\";\n\nexport default class CurationSetItems {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n /**\n * Retrieve all curation items in a set\n *\n * @example\n * await client.curationSets(\"my-set\").items().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}/items${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n}\n\n\n","import ApiCall from \"./ApiCall\";\nimport CurationSets from \"./CurationSets\";\nimport type { CurationObjectSchema } from \"./CurationSets\";\n\nexport type CurationItemUpsertSchema = Omit;\n\nexport interface CurationItemDeleteResponseSchema {\n id: string;\n}\n\nexport default class CurationSetItem {\n constructor(\n private name: string,\n private itemId: string,\n private apiCall: ApiCall,\n ) {}\n\n /**\n * Retrieve a specific curation item by its id\n *\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Create or update a curation set item with the given id\n *\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").upsert({ rule: { query: \"hat\", match: \"exact\" }, includes: [] })\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async upsert(\n params: CurationItemUpsertSchema,\n ): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n /**\n * Delete a specific curation item by its id\n *\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").delete()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(\n this.name,\n )}/items/${encodeURIComponent(this.itemId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport CurationSets from \"./CurationSets\";\nimport type {\n CurationSetDeleteResponseSchema,\n CurationSetSchema,\n CurationSetUpsertSchema,\n} from \"./CurationSets\";\nimport CurationSetItems from \"./CurationSetItems\";\nimport CurationSetItem from \"./CurationSetItem\";\n\nexport default class CurationSet {\n private readonly _items: CurationSetItems;\n private individualItems: Record = {};\n\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {\n this._items = new CurationSetItems(this.name, apiCall);\n }\n\n /**\n * Create or update a curation set with the given name\n *\n * @example\n * await client.curationSets(\"my-set\").upsert({ items: [{ id: \"promote-hat\", rule: { query: \"hat\", match: \"exact\" } }] })\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async upsert(params: CurationSetUpsertSchema): Promise {\n return this.apiCall.put(this.endpointPath(), params);\n }\n\n /**\n * Retrieve a specific curation set by its name\n *\n * @example\n * await client.curationSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n /**\n * Delete a specific curation set by its name\n *\n * @example\n * await client.curationSets(\"my-set\").delete()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n /**\n * Access the items in this curation set. Call without arguments to list items, or pass an item ID to access a single item.\n *\n * @example\n * await client.curationSets(\"my-set\").items().retrieve()\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n items(): CurationSetItems;\n /**\n * Access an individual curation item by ID within this curation set.\n *\n * @example\n * await client.curationSets(\"my-set\").items(\"promote-hat\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n items(itemId: string): CurationSetItem;\n items(itemId?: string): CurationSetItems | CurationSetItem {\n if (itemId === undefined) {\n return this._items;\n } else {\n if (this.individualItems[itemId] === undefined) {\n this.individualItems[itemId] = new CurationSetItem(\n this.name,\n itemId,\n this.apiCall,\n );\n }\n return this.individualItems[itemId];\n }\n }\n\n private endpointPath(): string {\n return `${CurationSets.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","/* eslint-disable no-dupe-class-members */\n\nimport Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Collection from \"./Collection\";\nimport Aliases from \"./Aliases\";\nimport Alias from \"./Alias\";\nimport Keys from \"./Keys\";\nimport Key from \"./Key\";\nimport Debug from \"./Debug\";\nimport Metrics from \"./Metrics\";\nimport Stats from \"./Stats\";\nimport Health from \"./Health\";\nimport Operations from \"./Operations\";\nimport MultiSearch from \"./MultiSearch\";\nimport Presets from \"./Presets\";\nimport Preset from \"./Preset\";\nimport AnalyticsV1 from \"./AnalyticsV1\";\nimport Analytics from \"./Analytics\";\nimport Stopwords from \"./Stopwords\";\nimport Stopword from \"./Stopword\";\nimport Conversations from \"./Conversations\";\nimport Conversation from \"./Conversation\";\nimport Stemming from \"./Stemming\";\nimport NLSearchModels from \"./NLSearchModels\";\nimport NLSearchModel from \"./NLSearchModel\";\nimport SynonymSets from \"./SynonymSets\";\nimport SynonymSet from \"./SynonymSet\";\nimport CurationSets from \"./CurationSets\";\nimport CurationSet from \"./CurationSet\";\n/**\n * Typesense client for indexing, searching, and managing collections.\n *\n * @see https://typesense.org/docs/latest/api/\n */\nexport default class Client {\n configuration: Configuration;\n apiCall: ApiCall;\n /**\n * Retrieve server version and state information.\n *\n * @example\n * await client.debug.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug\n */\n debug: Debug;\n /**\n * Get current RAM, CPU, Disk & Network usage metrics.\n *\n * @example\n * await client.metrics.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n metrics: Metrics;\n /**\n * Get stats about API endpoints.\n *\n * @example\n * await client.stats.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n stats: Stats;\n /**\n * Checks if Typesense server is ready to accept requests.\n *\n * @example\n * await client.health.retrieve()\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html#health\n */\n health: Health;\n /**\n * Cluster operations: snapshots, voting, cache, on-disk compaction, slow request log.\n *\n * @example\n * await client.operations.perform(\"snapshot\", { snapshot_path: \"/tmp/snap\" })\n *\n * @see https://typesense.org/docs/latest/api/cluster-operations.html\n */\n operations: Operations;\n /**\n * Send multiple search requests in a single HTTP request.\n *\n * @example\n * await client.multiSearch.perform({ searches: [{ collection: \"products\", q: \"*\" }] })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search\n */\n multiSearch: MultiSearch;\n /**\n * Manage analytics rules and events.\n *\n * @example\n * await client.analytics.rules().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n analytics: Analytics;\n /**\n * Legacy v1 analytics API for rules and events.\n *\n * @example\n * await client.analyticsV1.rules().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html\n */\n analyticsV1: AnalyticsV1;\n /**\n * Manage stemming dictionaries.\n *\n * @example\n * await client.stemming.dictionaries().retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stemming.html\n */\n stemming: Stemming;\n private readonly _collections: Collections;\n private readonly individualCollections: Record;\n private readonly _aliases: Aliases;\n private readonly individualAliases: Record;\n private readonly _keys: Keys;\n private readonly individualKeys: Record;\n private readonly _presets: Presets;\n private readonly individualPresets: Record;\n private readonly _stopwords: Stopwords;\n private readonly individualStopwords: Record;\n private readonly _conversations: Conversations;\n private readonly individualConversations: Record;\n private readonly _nlSearchModels: NLSearchModels;\n private readonly individualNLSearchModels: Record;\n private readonly _synonymSets: SynonymSets;\n private readonly individualSynonymSets: Record;\n private readonly _curationSets: CurationSets;\n private readonly individualCurationSets: Record;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.debug = new Debug(this.apiCall);\n this.metrics = new Metrics(this.apiCall);\n this.stats = new Stats(this.apiCall);\n this.health = new Health(this.apiCall);\n this.operations = new Operations(this.apiCall);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration);\n this._collections = new Collections(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics(this.apiCall);\n this.analyticsV1 = new AnalyticsV1(this.apiCall);\n this.stemming = new Stemming(this.apiCall);\n this._conversations = new Conversations(this.apiCall);\n this.individualConversations = {};\n this._nlSearchModels = new NLSearchModels(this.apiCall);\n this.individualNLSearchModels = {};\n this._synonymSets = new SynonymSets(this.apiCall);\n this.individualSynonymSets = {};\n this._curationSets = new CurationSets(this.apiCall);\n this.individualCurationSets = {};\n }\n\n /**\n * Access the collections resource. Call without arguments to list or create collections, or pass a name to access a single collection.\n *\n * @example\n * await client.collections().create({ name: \"products\", fields: [{ name: \"title\", type: \"string\" }] })\n * @example\n * await client.collections(\"products\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collections.html\n */\n collections(): Collections;\n /**\n * Access an individual collection by name.\n *\n * @example\n * await client.collections(\"products\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collections.html\n */\n collections = object>(\n collectionName: string,\n ): Collection;\n collections(collectionName?: string): Collections | Collection {\n if (collectionName === undefined) {\n return this._collections;\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection(\n collectionName,\n this.apiCall,\n this.configuration,\n );\n }\n return this.individualCollections[collectionName];\n }\n }\n\n /**\n * Access the aliases resource. Call without arguments to list or upsert aliases, or pass a name to access a single alias.\n *\n * @example\n * await client.aliases().upsert(\"my-alias\", { collection_name: \"products\" })\n * @example\n * await client.aliases(\"my-alias\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html\n */\n aliases(): Aliases;\n /**\n * Access an individual collection alias by name.\n *\n * @example\n * await client.aliases(\"my-alias\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/collection-alias.html\n */\n aliases(aliasName: string): Alias;\n aliases(aliasName?: string): Aliases | Alias {\n if (aliasName === undefined) {\n return this._aliases;\n } else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n }\n\n /**\n * Access the API keys resource. Call without arguments to list or create keys, or pass an ID to access a single key.\n *\n * @example\n * await client.keys().create({ description: \"Search-only key\", actions: [\"documents:search\"], collections: [\"*\"] })\n * @example\n * await client.keys(1).retrieve()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html\n */\n keys(): Keys;\n /**\n * Access an individual API key by ID.\n *\n * @example\n * await client.keys(1).retrieve()\n *\n * @see https://typesense.org/docs/latest/api/api-keys.html\n */\n keys(id: number): Key;\n keys(id?: number): Keys | Key {\n if (id === undefined) {\n return this._keys;\n } else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n }\n\n /**\n * Access the presets resource. Call without arguments to list or upsert presets, or pass an ID to access a single preset.\n *\n * @example\n * await client.presets().upsert(\"listing_view\", { value: { q: \"*\" } })\n * @example\n * await client.presets(\"listing_view\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n presets(): Presets;\n /**\n * Access an individual preset by ID.\n *\n * @example\n * await client.presets(\"listing_view\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/search.html#presets\n */\n presets(id: string): Preset;\n presets(id?: string): Presets | Preset {\n if (id === undefined) {\n return this._presets;\n } else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n }\n\n /**\n * Access the stopwords resource. Call without arguments to list or upsert stopword sets, or pass an ID to access a single set.\n *\n * @example\n * await client.stopwords().upsert(\"en\", { stopwords: [\"a\", \"the\"] })\n * @example\n * await client.stopwords(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n stopwords(): Stopwords;\n /**\n * Access an individual stopwords set by ID.\n *\n * @example\n * await client.stopwords(\"en\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/stopwords.html\n */\n stopwords(id: string): Stopword;\n stopwords(id?: string): Stopwords | Stopword {\n if (id === undefined) {\n return this._stopwords;\n } else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n }\n\n /**\n * Access the conversation models resource. Call without arguments to list models, or pass an ID to access a single model.\n *\n * @example\n * await client.conversations().retrieve()\n * @example\n * await client.conversations(\"conv-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n conversations(): Conversations;\n /**\n * Access an individual conversation model by ID.\n *\n * @example\n * await client.conversations(\"conv-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/conversational-search-rag.html\n */\n conversations(id: string): Conversation;\n conversations(id?: string): Conversations | Conversation {\n if (id === undefined) {\n return this._conversations;\n } else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n }\n\n /**\n * Access the NL search models resource. Call without arguments to list or create models, or pass an ID to access a single model.\n *\n * @example\n * await client.nlSearchModels().create({ model_name: \"openai/gpt-4\" })\n * @example\n * await client.nlSearchModels(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n nlSearchModels(): NLSearchModels;\n /**\n * Access an individual NL search model by ID.\n *\n * @example\n * await client.nlSearchModels(\"model-1\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/natural-language-search.html\n */\n nlSearchModels(id: string): NLSearchModel;\n nlSearchModels(id?: string): NLSearchModels | NLSearchModel {\n if (id === undefined) {\n return this._nlSearchModels;\n } else {\n if (this.individualNLSearchModels[id] === undefined) {\n this.individualNLSearchModels[id] = new NLSearchModel(id, this.apiCall);\n }\n return this.individualNLSearchModels[id];\n }\n }\n\n /**\n * Access the synonym sets resource. Call without arguments to list sets, or pass a name to access a single set.\n *\n * @example\n * await client.synonymSets().retrieve()\n * @example\n * await client.synonymSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n synonymSets(): SynonymSets;\n /**\n * Access an individual synonym set by name.\n *\n * @example\n * await client.synonymSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/synonyms.html\n */\n synonymSets(synonymSetName: string): SynonymSet;\n synonymSets(synonymSetName?: string): SynonymSets | SynonymSet {\n if (synonymSetName === undefined) {\n return this._synonymSets;\n } else {\n if (this.individualSynonymSets[synonymSetName] === undefined) {\n this.individualSynonymSets[synonymSetName] = new SynonymSet(\n synonymSetName,\n this.apiCall,\n );\n }\n return this.individualSynonymSets[synonymSetName];\n }\n }\n\n /**\n * Access the curation sets resource. Call without arguments to list sets, or pass a name to access a single set.\n *\n * @example\n * await client.curationSets().retrieve()\n * @example\n * await client.curationSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n curationSets(): CurationSets;\n /**\n * Access an individual curation set by name.\n *\n * @example\n * await client.curationSets(\"my-set\").retrieve()\n *\n * @see https://typesense.org/docs/latest/api/curation.html\n */\n curationSets(name: string): CurationSet;\n curationSets(name?: string): CurationSets | CurationSet {\n if (name === undefined) {\n return this._curationSets;\n } else {\n if (this.individualCurationSets[name] === undefined) {\n this.individualCurationSets[name] = new CurationSet(\n name,\n this.apiCall,\n );\n }\n return this.individualCurationSets[name];\n }\n }\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import type { DocumentSchema } from \"./Documents\";\nimport ApiCall from \"./ApiCall\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport type { SearchableDocuments } from \"./Types\";\n\nexport class SearchOnlyCollection {\n private readonly _documents: SearchableDocuments;\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any\n ) {\n this._documents = new SearchOnlyDocuments(\n this.name,\n this.apiCall,\n this.configuration\n );\n }\n\n /**\n * Access the search-only documents resource for this collection.\n *\n * @example\n * await searchClient.collections(\"products\").documents().search({ q: \"*\", query_by: \"title\" })\n *\n * @see https://typesense.org/docs/latest/api/search.html\n */\n documents(): SearchableDocuments {\n return this._documents;\n }\n}\n","import Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport MultiSearch from \"./MultiSearch\";\nimport { DocumentSchema } from \"./Documents\";\nimport { SearchOnlyCollection } from \"./SearchOnlyCollection\";\n\n/**\n * Search-only Typesense client. Restricted to search operations and intended for use with search-only API keys in browser environments.\n *\n * @see https://typesense.org/docs/latest/api/\n */\nexport default class SearchClient {\n /**\n * Send multiple search requests in a single HTTP request.\n *\n * @example\n * await searchClient.multiSearch.perform({ searches: [{ collection: \"products\", q: \"*\" }] })\n *\n * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search\n */\n public readonly multiSearch: MultiSearch;\n private readonly configuration: Configuration;\n private readonly apiCall: ApiCall;\n private readonly individualCollections: Record<\n string,\n SearchOnlyCollection\n >;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true;\n if (\n options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000\n ) {\n console.warn(\n \"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\"\n );\n options.sendApiKeyAsQueryParam = false;\n }\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n\n clearCache() {\n this.multiSearch.clearCache();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(([_, collection]) => {\n collection.documents().clearCache();\n });\n }\n\n /**\n * Access a search-only collection by name.\n *\n * @example\n * await searchClient.collections(\"products\").documents().search({ q: \"*\", query_by: \"title\" })\n *\n * @see https://typesense.org/docs/latest/api/search.html\n */\n collections(\n collectionName: string,\n ): SearchOnlyCollection {\n if (!collectionName) {\n throw new Error(\n \"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\"\n );\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection(\n collectionName,\n this.apiCall,\n this.configuration\n );\n }\n return this.individualCollections[\n collectionName\n ] as SearchOnlyCollection;\n }\n }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import Client from \"./Typesense/Client\";\nimport SearchClient from \"./Typesense/SearchClient\";\nimport * as Errors from \"./Typesense/Errors\";\n\nexport { Client, SearchClient, Errors };\nexport default { Client, SearchClient, Errors };\n\nexport type * from \"./Typesense/Aliases\";\nexport type * from \"./Typesense/AnalyticsRulesV1\";\nexport type * from \"./Typesense/AnalyticsRuleV1\";\nexport type * from \"./Typesense/AnalyticsEvent\";\nexport type * from \"./Typesense/AnalyticsRule\";\nexport type * from \"./Typesense/AnalyticsRules\";\nexport type * from \"./Typesense/Collection\";\nexport type * from \"./Typesense/Collections\";\nexport type * from \"./Typesense/Configuration\";\nexport type * from \"./Typesense/Conversations\";\nexport type * from \"./Typesense/Conversation\";\nexport type * from \"./Typesense/ConversationModel\";\nexport type * from \"./Typesense/Debug\";\nexport type * from \"./Typesense/Documents\";\nexport type * from \"./Typesense/Health\";\nexport type * from \"./Typesense/Key\";\nexport type * from \"./Typesense/Keys\";\nexport type * from \"./Typesense/Metrics\";\nexport type * from \"./Typesense/MultiSearch\";\nexport type * from \"./Typesense/Override\";\nexport type * from \"./Typesense/Overrides\";\nexport type * from \"./Typesense/Preset\";\nexport type * from \"./Typesense/Presets\";\nexport type * from \"./Typesense/Stats\";\nexport type * from \"./Typesense/Stopword\";\nexport type * from \"./Typesense/Stopwords\";\nexport type * from \"./Typesense/Synonym\";\nexport type * from \"./Typesense/Synonyms\";\nexport type * from \"./Typesense/SynonymSet\";\nexport type * from \"./Typesense/SynonymSets\";\nexport type * from \"./Typesense/SynonymSetItem\";\nexport type * from \"./Typesense/SynonymSetItems\";\nexport type * from \"./Typesense/CurationSet\";\nexport type * from \"./Typesense/CurationSets\";\nexport type * from \"./Typesense/CurationSetItem\";\nexport type * from \"./Typesense/CurationSetItems\";\n"],"names":["noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","_loggersByName","defaultLogger","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","log","trace","replaceLoggingMethods","level","this","getLevel","i","length","methodFactory","name","debug","levels","SILENT","enableLoggingWhenConsoleArrives","defaultMethodFactory","_level","_loggerName","undefined","realMethod","Logger","factory","inheritedLevel","defaultLevel","userLevel","self","storageKey","getPersistedLevel","storedLevel","localStorage","ignore","cookie","document","cookieName","encodeURIComponent","location","indexOf","exec","slice","normalizeLevel","input","toUpperCase","TypeError","setLevel","persist","levelNum","levelName","persistLevelIfPossible","setDefaultLevel","resetLevel","removeItem","clearPersistedLevel","enableAll","TRACE","disableAll","rebuild","childName","initialLevel","getLogger","logger","_log","noConflict","getLoggers","module","exports","d","v","k","__esModule","regeneratorDefine","_regenerator","t","r","Symbol","n","iterator","o","toStringTag","c","Generator","u","Object","create","f","p","y","G","a","l","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","regeneratorAsyncGen","next","then","regenerator","regeneratorAsyncIterator","Promise","OverloadYield","AsyncIterator","resolve","asyncIterator","_regeneratorDefine","defineProperty","_invoke","enumerable","configurable","writable","unshift","pop","regeneratorAsync","regeneratorKeys","regeneratorValues","_regeneratorRuntime","constructor","stop","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","keys","values","_typeof","isNaN","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","key","get","g","prop","hasOwnProperty","_classCallCheck","toPropertyKey","toPrimitive","String","_defineProperties","_createClass","_defineProperty","_possibleConstructorReturn","ReferenceError","_getPrototypeOf","_setPrototypeOf","_inherits","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Map","toString","has","set","Wrapper","push","TypesenseError","_Error","message","httpBody","httpStatus","_this","Error","MissingConfigurationError","_TypesenseError","Configuration","options","nodes","map","node","setDefaultPathInNode","setDefaultPortInNode","_objectSpread","randomizeNodes","shuffleArray","nearestNode","connectionTimeoutSeconds","timeoutSeconds","healthcheckIntervalSeconds","numRetries","retryIntervalSeconds","apiKey","sendApiKeyAsQueryParam","cacheSearchResultsForSeconds","useServerSideSearchCache","axiosAdapter","logLevel","additionalHeaders","httpAgent","httpsAgent","paramsSerializer","showDeprecationWarnings","validate","validateNodes","isNodeMissingAnyParameters","_this2","some","every","warn","masterNode","readReplicaNodes","array","j","Math","floor","random","_ref","asyncGeneratorStep","_asyncToGenerator","_next","_throw","fn","thisArg","kindOf","cache","thing","str","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","FormDataCtor","FormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","forEach","allOwnKeys","getOwnPropertyNames","len","findKey","_key","_global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","callbacks","addEventListener","source","data","shift","cb","setTimeout","asap","queueMicrotask","process","nextTick","isFormData","proto","append","kind","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","isReactNativeBlob","uri","isReactNative","formData","getParts","isStream","pipe","merge","objs","caseless","skipUndefined","assignValue","targetKey","existing","extend","b","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","arr","forEachEntry","_iterator","pair","matchAll","regExp","matches","hasOwnProp","freezeMethods","includes","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","toFiniteNumber","defaultValue","Number","isFinite","global","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","catch","isIterable","ignoreDuplicateOf","utils","rawHeaders","parsed","line","substring","$internals","INVALID_HEADER_VALUE_CHARS_RE","normalizeHeader","header","normalizeValue","start","end","code","trimSPorHTAB","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","headers","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","dest","entry","parser","tokens","tokensRE","match","parseTokens","matcher","deleted","deleteHeader","clear","normalize","format","normalized","char","formatHeader","concat","targets","toJSON","asStrings","join","entries","getSetCookie","from","first","computed","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","AxiosError","error","config","request","response","customProps","axiosError","cause","status","super","isAxiosError","redactKeys","redact","serializedConfig","lowerKeys","Set","seen","hasOwnOrPrototypeToJSON","redactConfig","description","number","fileName","lineNumber","columnNumber","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","predicates","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","JSON","stringify","isFlatArray","el","index","exposedHelpers","build","depth","encode","charMap","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","_options","serialize","serializeFn","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","href","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","own","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","platform","helpers","isNode","toURLEncodedForm","env","_FormData","rawValue","parse","stringifySafely","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","transformData","fns","isCancel","__CANCEL__","settle","reject","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","rawLoaded","loaded","total","lengthComputable","progressBytes","max","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isMSIE","URL","protocol","host","port","write","expires","domain","secure","sameSite","toUTCString","read","cookies","eq","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","cancelToken","socketPath","allowedSocketPaths","responseEncoding","configValue","FORM_DATA_CONTENT_HEADERS","newConfig","auth","btoa","username","password","_","hex","fromCharCode","parseInt","getHeaders","formHeaders","policy","setFormDataHeaders","isURLSameOrigin","xsrfValue","XMLHttpRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","open","onreadystatechange","readyState","responseURL","startsWith","onabort","onerror","msg","ontimeout","timeoutErrorMessage","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","send","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","pos","trackStream","stream","onProgress","onFinish","iterable","reader","getReader","readStream","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","VERSION","globalObject","TextEncoder","Request","Response","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","body","duplex","hasContentType","supportsResponseStream","resolvers","res","resolveBodyLength","getContentLength","size","_request","getBodyLength","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","toAbortSignal","requestContentLength","comma","meta","effectiveLen","pad","idx","tailIsPct3D","estimateDataURLDecodedBytes","outboundLength","contentTypeHeader","flush","isCredentialsSupported","delete","resolvedOptions","credentials","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","seedCache","getFetch","seeds","seed","knownAdapters","http","xhr","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","instance","CanceledError","toFormData","Cancel","all","promises","spread","callback","payload","formToJSON","getAdapter","default","RequestMalformed","RequestUnauthorized","ObjectNotFound","ObjectAlreadyExists","ObjectUnprocessable","ServerError","HTTPError","arrayableParams","query_by","query_by_weights","facet_by","group_by","include_fields","exclude_fields","highlight_fields","highlight_full_fields","pinned_hits","hidden_hits","infix","override_tags","num_typos","prefix","synonym_sets","sort_by","hasNoArrayValues","normalizeArrayableParams","HEALTHY","isNodeJSEnvironment","versions","ApiCall","configuration","numRetriesPerRequest","additionalUserHeaders","initializeMetadataForNodes","currentNodeIndex","_get","_callee","endpoint","queryParameters","_ref$abortSignal","abortSignal","_ref$responseType","_ref$streamConfig","streamConfig","isStreamingRequest","_args","_context","performRequest","_x","_delete2","_callee2","_args2","_context2","_x2","_post","_callee3","bodyParameters","_ref2","_ref2$abortSignal","_ref2$responseType","_ref2$streamConfig","_args3","_context3","_x3","_put","_callee4","_args4","_context4","_x4","_patch","_callee5","_args5","_context5","_x5","_performRequest","_callee6","requestType","_ref3","_ref3$queryParameters","_ref3$bodyParameters","_ref3$additionalHeade","_ref3$abortSignal","_ref3$responseType","_ref3$skipConnectionT","skipConnectionTimeout","_ref3$enableKeepAlive","enableKeepAlive","_ref3$streamConfig","requestNumber","lastException","wasAborted","_loop","_ret","numTries","_context7","abortListener","requestOptions","_response$data","_response$data2","_error$code","_error$response","_context6","getNextNode","uriFor","defaultHeaders","Infinity","transformedData","HTTPAgent","keepAlive","HTTPSAgent","setNodeHealthcheck","handleStreamingResponse","customErrorForResponse","invokeOnErrorCallback","t0","_x6","_x7","_x8","processDataLine","jsonData","conversation_id","_unused","dataContent","_unused2","_handleStreamingResponse","_callee7","_context8","handleNodeStreaming","handleBrowserStreaming","invokeOnCompleteCallback","_x9","_x0","allChunks","on","_lines$pop","lines","processStreamLines","finalizeStreamResult","_this3","_ref4","_callee8","_t2","_context9","handleBrowserReadableStream","handleBrowserStringResponse","_x1","_x10","_handleBrowserReadableStream","_callee9","_yield$reader$read","_lines","_t3","_context0","TextDecoder","decode","_x11","_x12","_x13","_x14","_x15","finalResult","combineStreamingChunks","_step","_createForOfIteratorHelper","processed","processStreamingLine","invokeOnChunkCallback","chunks","messagesChunks","getMessageChunks","combineMessageChunks","lastChunk","isCompleteSearchResponse","isChunkMessage","metadataChunk","find","isHealthy","nodeDueForHealthcheck","candidateNode","isDueForHealthcheck","lastAccessTimestamp","_this4","_timer","_callee0","seconds","_context1","_x16","messageFromServer","errorMessage","onChunk","onComplete","onError","errorObj","couldBeError","toErrorWithMessage","callbackError","RESOURCEPATH","Collections","apiCall","_create","post","_retrieve","ImportError","importResults","_objectWithoutProperties","getOwnPropertySymbols","propertyIsEnumerable","RequestWithCache","responseCache","responsePromiseCache","_perform","requestContext","requestParams","cacheOptions","_ref$cacheResponseFor","cacheResponseForSeconds","_ref$maxSize","maxSize","isCacheDisabled","queryParams","requestParamsJSON","cacheEntry","cachePromiseEntry","responsePromise","oldestEntry","_oldestEntry","executeRequest","requestTimestamp","SearchOnlyDocuments","collectionName","requestWithCache","clearCache","_search","searchParameters","_ref$cacheSearchResul","additionalQueryParams","_normalizeArrayablePa","rest","_excluded","conversation_stream","perform","endpointPath","operation","Documents","_SearchOnlyDocuments","_upsert","action","_update","patch","_emplace","query","_createMany","documents","_args6","import","_import2","finalOptions","documentsInJSONLFormat","resultsInJSONLFormat","resultsInJSONFormat","failedItems","_args7","throwOnFail","RangeError","isEmptyString","success","successCount","_importStream","readableStream","_args8","_export2","_args9","_exportStream","_args0","Overrides","overrideId","put","Override","Synonyms","synonymId","hasWarnedDeprecation","Synonym","Document","documentId","partialDocument","Collection","_documents","_overrides","_synonyms","_exists","retrieve","individualDocuments","individualOverrides","individualSynonyms","Aliases","mapping","aliasName","Alias","Keys","searchKey","parameters","normalizedParams","paramsJSON","digest","createHmac","update","keyPrefix","substr","rawScopedKey","Key","Debug","Metrics","Health","Operations","operationName","_getSchemaChanges","MultiSearch","useTextContentType","searchRequests","commonParams","_options$cacheSearchR","normalizedSearchRequests","paramsWithoutStream","normalizedQueryParams","use_cache","union","hasAnySearchObjectPagination","searches","search","page","per_page","offset","limit","limit_hits","Presets","presetId","_normalizedParams","Preset","AnalyticsRulesV1","AnalyticsRuleV1","AnalyticsEvents","AnalyticsV1","_analyticsRules","_analyticsEvents","individualAnalyticsRules","AnalyticsRules","ruleTag","AnalyticsRule","Analytics","Stopwords","stopwordId","Stopword","ConversationModels","ConversationModel","Conversations","_conversationsModels","individualConversationModels","Conversation","StemmingDictionaries","wordRootCombinations","wordRootCombinationsInJSONLFormat","combo","StemmingDictionary","Stemming","_stemmingDictionaries","individualStemmingDictionaries","NLSearchModels","NLSearchModel","SynonymSets","SynonymSetItems","synonymSetName","itemId","SynonymSetItem","SynonymSet","_items","individualItems","CurationSets","CurationSetItems","CurationSetItem","CurationSet","Client","_options$sendApiKeyAs","metrics","stats","Stats","health","operations","multiSearch","_collections","individualCollections","_aliases","individualAliases","_keys","individualKeys","_presets","individualPresets","_stopwords","individualStopwords","analytics","analyticsV1","stemming","_conversations","individualConversations","_nlSearchModels","individualNLSearchModels","_synonymSets","individualSynonymSets","_curationSets","individualCurationSets","SearchOnlyCollection","SearchClient","Errors"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/Typesense/Alias.d.ts b/lib/Typesense/Alias.d.ts index 6e36a7d3..95744471 100644 --- a/lib/Typesense/Alias.d.ts +++ b/lib/Typesense/Alias.d.ts @@ -4,7 +4,23 @@ export default class Alias { private name; private apiCall; constructor(name: string, apiCall: ApiCall); + /** + * Find out which collection an alias points to by fetching it + * + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#retrieve-an-alias + */ retrieve(): Promise; + /** + * Delete an alias + * + * @example + * await client.aliases("my-alias").delete() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#delete-an-alias + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/Alias.js b/lib/Typesense/Alias.js index 08cb130a..fa32dac8 100644 --- a/lib/Typesense/Alias.js +++ b/lib/Typesense/Alias.js @@ -7,6 +7,14 @@ var Alias = /** @class */ (function () { this.name = name; this.apiCall = apiCall; } + /** + * Find out which collection an alias points to by fetching it + * + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#retrieve-an-alias + */ Alias.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var Alias = /** @class */ (function () { }); }); }; + /** + * Delete an alias + * + * @example + * await client.aliases("my-alias").delete() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#delete-an-alias + */ Alias.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Alias.js.map b/lib/Typesense/Alias.js.map index 03fa9442..131b0547 100644 --- a/lib/Typesense/Alias.js.map +++ b/lib/Typesense/Alias.js.map @@ -1 +1 @@ -{"version":3,"file":"Alias.js","sourceRoot":"","sources":["../../src/Typesense/Alias.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAG3D;IACE,eAAoB,IAAY,EAAU,OAAgB;QAAtC,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExD,wBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACrE;IAEK,sBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEO,4BAAY,GAApB;QACE,OAAO,UAAG,iBAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IACpE,CAAC;IACH,YAAC;AAAD,CAAC,AAdD,IAcC"} \ No newline at end of file +{"version":3,"file":"Alias.js","sourceRoot":"","sources":["../../src/Typesense/Alias.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAG3D;IACE,eAAoB,IAAY,EAAU,OAAgB;QAAtC,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAE9D;;;;;;;OAOG;IACG,wBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACrE;IAED;;;;;;;OAOG;IACG,sBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEO,4BAAY,GAApB;QACE,OAAO,UAAG,iBAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IACpE,CAAC;IACH,YAAC;AAAD,CAAC,AA9BD,IA8BC"} \ No newline at end of file diff --git a/lib/Typesense/Aliases.d.ts b/lib/Typesense/Aliases.d.ts index aad02136..f6d02de8 100644 --- a/lib/Typesense/Aliases.d.ts +++ b/lib/Typesense/Aliases.d.ts @@ -11,7 +11,23 @@ export interface CollectionAliasesResponseSchema { export default class Aliases { private apiCall; constructor(apiCall: ApiCall); + /** + * Create or update a collection alias. + * + * @example + * await client.aliases().upsert("my-alias", { collection_name: "products" }) + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#create-or-update-an-alias + */ upsert(name: string, mapping: CollectionAliasCreateSchema): Promise; + /** + * List all aliases and the corresponding collections that they map to. + * + * @example + * await client.aliases().retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#list-all-aliases + */ retrieve(): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/Aliases.js b/lib/Typesense/Aliases.js index ac647bc9..73421582 100644 --- a/lib/Typesense/Aliases.js +++ b/lib/Typesense/Aliases.js @@ -6,6 +6,14 @@ var Aliases = /** @class */ (function () { function Aliases(apiCall) { this.apiCall = apiCall; } + /** + * Create or update a collection alias. + * + * @example + * await client.aliases().upsert("my-alias", { collection_name: "products" }) + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#create-or-update-an-alias + */ Aliases.prototype.upsert = function (name, mapping) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -13,6 +21,14 @@ var Aliases = /** @class */ (function () { }); }); }; + /** + * List all aliases and the corresponding collections that they map to. + * + * @example + * await client.aliases().retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html#list-all-aliases + */ Aliases.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Aliases.js.map b/lib/Typesense/Aliases.js.map index 9b3a301a..88bac3b3 100644 --- a/lib/Typesense/Aliases.js.map +++ b/lib/Typesense/Aliases.js.map @@ -1 +1 @@ -{"version":3,"file":"Aliases.js","sourceRoot":"","sources":["../../src/Typesense/Aliases.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,UAAU,CAAC;AAchC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,wBAAM,GAAZ,UACE,IAAY,EACZ,OAAoC;;;gBAEpC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,OAAO,CACR,EAAC;;;KACH;IAEK,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkC,YAAY,CAAC,EAAC;;;KACxE;IAEO,8BAAY,GAApB,UAAqB,SAAS;QAC5B,OAAO,UAAG,OAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IACpE,CAAC;IAED,sBAAW,uBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,cAAC;AAAD,CAAC,AAxBD,IAwBC"} \ No newline at end of file +{"version":3,"file":"Aliases.js","sourceRoot":"","sources":["../../src/Typesense/Aliases.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,UAAU,CAAC;AAchC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,wBAAM,GAAZ,UACE,IAAY,EACZ,OAAoC;;;gBAEpC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,OAAO,CACR,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkC,YAAY,CAAC,EAAC;;;KACxE;IAEO,8BAAY,GAApB,UAAqB,SAAS;QAC5B,OAAO,UAAG,OAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IACpE,CAAC;IAED,sBAAW,uBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,cAAC;AAAD,CAAC,AAxCD,IAwCC"} \ No newline at end of file diff --git a/lib/Typesense/Analytics.d.ts b/lib/Typesense/Analytics.d.ts index 14c1fc56..58b61313 100644 --- a/lib/Typesense/Analytics.d.ts +++ b/lib/Typesense/Analytics.d.ts @@ -8,8 +8,34 @@ export default class Analytics { private readonly individualAnalyticsRules; private readonly _analyticsEvents; constructor(apiCall: ApiCall); + /** + * Access the analytics rules resource. Call without arguments to list or create rules, or pass an ID to access a single rule. + * + * @example + * await client.analytics.rules().retrieve() + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ rules(): AnalyticsRules; + /** + * Access an individual analytics rule by ID. + * + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ rules(id: string): AnalyticsRule; + /** + * Access the analytics events resource to send analytics events. + * + * @example + * await client.analytics.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ events(): AnalyticsEvents; static get RESOURCEPATH(): string; } diff --git a/lib/Typesense/Analytics.js b/lib/Typesense/Analytics.js index 620f3bfb..00ede085 100644 --- a/lib/Typesense/Analytics.js +++ b/lib/Typesense/Analytics.js @@ -24,6 +24,14 @@ var Analytics = /** @class */ (function () { return this.individualAnalyticsRules[id]; } }; + /** + * Access the analytics events resource to send analytics events. + * + * @example + * await client.analytics.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ Analytics.prototype.events = function () { return this._analyticsEvents; }; diff --git a/lib/Typesense/Analytics.js.map b/lib/Typesense/Analytics.js.map index dd57042d..75a1aab9 100644 --- a/lib/Typesense/Analytics.js.map +++ b/lib/Typesense/Analytics.js.map @@ -1 +1 @@ -{"version":3,"file":"Analytics.js","sourceRoot":"","sources":["../../src/Typesense/Analytics.ts"],"names":[],"mappings":";;;AACA,4EAA8C;AAC9C,0EAA4C;AAC5C,8EAAgD;AAEhD,IAAM,YAAY,GAAG,YAAY,CAAC;AAElC;IAKE,mBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAH5B,6BAAwB,GAAkC,EAAE,CAAC;QAI5E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAID,yBAAK,GAAL,UAAM,EAAW;QACf,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpD,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,GAAG,IAAI,uBAAa,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,0BAAM,GAAN;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AA/BD,IA+BC"} \ No newline at end of file +{"version":3,"file":"Analytics.js","sourceRoot":"","sources":["../../src/Typesense/Analytics.ts"],"names":[],"mappings":";;;AACA,4EAA8C;AAC9C,0EAA4C;AAC5C,8EAAgD;AAEhD,IAAM,YAAY,GAAG,YAAY,CAAC;AAElC;IAKE,mBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAH5B,6BAAwB,GAAkC,EAAE,CAAC;QAI5E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAsBD,yBAAK,GAAL,UAAM,EAAW;QACf,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpD,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,GAAG,IAAI,uBAAa,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,0BAAM,GAAN;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AAzDD,IAyDC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsEvents.d.ts b/lib/Typesense/AnalyticsEvents.d.ts index cccd8dae..a5552fd3 100644 --- a/lib/Typesense/AnalyticsEvents.d.ts +++ b/lib/Typesense/AnalyticsEvents.d.ts @@ -15,7 +15,23 @@ export interface AnalyticsEventsRetrieveSchema { export default class AnalyticsEvents { private readonly apiCall; constructor(apiCall: ApiCall); + /** + * Submit a single analytics event. The event must correspond to an existing analytics rule by name. + * + * @example + * await client.analytics.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ create(params: AnalyticsEventCreateSchema): Promise; + /** + * Retrieve the most recent events for a user and rule. + * + * @example + * await client.analytics.events().retrieve({ user_id: "u1", name: "products_click", n: 10 }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ retrieve(params: { user_id: string; name: string; diff --git a/lib/Typesense/AnalyticsEvents.js b/lib/Typesense/AnalyticsEvents.js index 57c4cc81..9f3a2cbd 100644 --- a/lib/Typesense/AnalyticsEvents.js +++ b/lib/Typesense/AnalyticsEvents.js @@ -7,6 +7,14 @@ var AnalyticsEvents = /** @class */ (function () { this.apiCall = apiCall; this.apiCall = apiCall; } + /** + * Submit a single analytics event. The event must correspond to an existing analytics rule by name. + * + * @example + * await client.analytics.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ AnalyticsEvents.prototype.create = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var AnalyticsEvents = /** @class */ (function () { }); }); }; + /** + * Retrieve the most recent events for a user and rule. + * + * @example + * await client.analytics.events().retrieve({ user_id: "u1", name: "products_click", n: 10 }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ AnalyticsEvents.prototype.retrieve = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/AnalyticsEvents.js.map b/lib/Typesense/AnalyticsEvents.js.map index 9f8452bf..0d6d9883 100644 --- a/lib/Typesense/AnalyticsEvents.js.map +++ b/lib/Typesense/AnalyticsEvents.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsEvents.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsEvents.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,mBAAmB,CAAC;AAezC;IACE,yBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,gCAAM,GAAZ,UACE,MAAkC;;;gBAElC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEK,kCAAQ,GAAd,UAAe,MAId;;;gBACC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEO,sCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,eAAe,CAAC,YAAY,SACpC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,+BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,sBAAC;AAAD,CAAC,AAlCD,IAkCC"} \ No newline at end of file +{"version":3,"file":"AnalyticsEvents.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsEvents.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,mBAAmB,CAAC;AAezC;IACE,yBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACG,gCAAM,GAAZ,UACE,MAAkC;;;gBAElC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,kCAAQ,GAAd,UAAe,MAId;;;gBACC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEO,sCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,eAAe,CAAC,YAAY,SACpC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,+BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,sBAAC;AAAD,CAAC,AAlDD,IAkDC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsRule.d.ts b/lib/Typesense/AnalyticsRule.d.ts index 622fbfe3..15067908 100644 --- a/lib/Typesense/AnalyticsRule.d.ts +++ b/lib/Typesense/AnalyticsRule.d.ts @@ -41,7 +41,23 @@ export default class AnalyticsRule { private name; private apiCall; constructor(name: string, apiCall: ApiCall); + /** + * Retrieve the details of an analytics rule, given it's name + * + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ retrieve(): Promise; + /** + * Permanently deletes an analytics rule, given it's name + * + * @example + * await client.analytics.rules("rule-1").delete() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/AnalyticsRule.js b/lib/Typesense/AnalyticsRule.js index 7155fe00..0c408711 100644 --- a/lib/Typesense/AnalyticsRule.js +++ b/lib/Typesense/AnalyticsRule.js @@ -7,6 +7,14 @@ var AnalyticsRule = /** @class */ (function () { this.name = name; this.apiCall = apiCall; } + /** + * Retrieve the details of an analytics rule, given it's name + * + * @example + * await client.analytics.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ AnalyticsRule.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var AnalyticsRule = /** @class */ (function () { }); }); }; + /** + * Permanently deletes an analytics rule, given it's name + * + * @example + * await client.analytics.rules("rule-1").delete() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ AnalyticsRule.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/AnalyticsRule.js.map b/lib/Typesense/AnalyticsRule.js.map index 3331457e..a540379b 100644 --- a/lib/Typesense/AnalyticsRule.js.map +++ b/lib/Typesense/AnalyticsRule.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsRule.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRule.ts"],"names":[],"mappings":";;;AACA,4EAA8C;AA4C9C;IACE,uBACU,IAAY,EACZ,OAAgB;QADhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,gCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACnE;IAEK,8BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC5E;IAEO,oCAAY,GAApB;QACE,OAAO,UAAG,wBAAc,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IAC3E,CAAC;IACH,oBAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"AnalyticsRule.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRule.ts"],"names":[],"mappings":";;;AACA,4EAA8C;AA4C9C;IACE,uBACU,IAAY,EACZ,OAAgB;QADhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,gCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACnE;IAED;;;;;;;OAOG;IACG,8BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC5E;IAEO,oCAAY,GAApB;QACE,OAAO,UAAG,wBAAc,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IAC3E,CAAC;IACH,oBAAC;AAAD,CAAC,AAjCD,IAiCC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsRuleV1.d.ts b/lib/Typesense/AnalyticsRuleV1.d.ts index 21e4ce12..d82cb1ee 100644 --- a/lib/Typesense/AnalyticsRuleV1.d.ts +++ b/lib/Typesense/AnalyticsRuleV1.d.ts @@ -29,7 +29,23 @@ export default class AnalyticsRuleV1 { private name; private apiCall; constructor(name: string, apiCall: ApiCall); + /** + * Retrieve a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ retrieve(): Promise; + /** + * Delete a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules("rule-1").delete() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/AnalyticsRuleV1.js b/lib/Typesense/AnalyticsRuleV1.js index 12338dbc..8c220fcf 100644 --- a/lib/Typesense/AnalyticsRuleV1.js +++ b/lib/Typesense/AnalyticsRuleV1.js @@ -7,6 +7,14 @@ var AnalyticsRuleV1 = /** @class */ (function () { this.name = name; this.apiCall = apiCall; } + /** + * Retrieve a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ AnalyticsRuleV1.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var AnalyticsRuleV1 = /** @class */ (function () { }); }); }; + /** + * Delete a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules("rule-1").delete() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ AnalyticsRuleV1.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/AnalyticsRuleV1.js.map b/lib/Typesense/AnalyticsRuleV1.js.map index 9d62f3c2..57e0a8eb 100644 --- a/lib/Typesense/AnalyticsRuleV1.js.map +++ b/lib/Typesense/AnalyticsRuleV1.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsRuleV1.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRuleV1.ts"],"names":[],"mappings":";;;AACA,gFAAkD;AA+BlD;IACE,yBACU,IAAY,EACZ,OAAgB;QADhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,kCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACrE;IAEK,gCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA8B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9E;IAEO,sCAAY,GAApB;QACE,OAAO,UAAG,0BAAgB,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IAC7E,CAAC;IACH,sBAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"AnalyticsRuleV1.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRuleV1.ts"],"names":[],"mappings":";;;AACA,gFAAkD;AA+BlD;IACE,yBACU,IAAY,EACZ,OAAgB;QADhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IACtB,CAAC;IAEL;;;;;;;OAOG;IACG,kCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACrE;IAED;;;;;;;OAOG;IACG,gCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA8B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9E;IAEO,sCAAY,GAApB;QACE,OAAO,UAAG,0BAAgB,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IAC7E,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,IAiCC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsRules.d.ts b/lib/Typesense/AnalyticsRules.d.ts index 8f19f78a..883b983f 100644 --- a/lib/Typesense/AnalyticsRules.d.ts +++ b/lib/Typesense/AnalyticsRules.d.ts @@ -6,10 +6,34 @@ export interface AnalyticsRulesRetrieveSchema { export default class AnalyticsRules { private readonly apiCall; constructor(apiCall: ApiCall); + /** + * Create one or more analytics rules. You can send a single rule object or an array of rule objects. + * + * @example + * await client.analytics.rules().create({ name: "products_query_hits", type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ create(params: AnalyticsRuleCreateSchema | AnalyticsRuleCreateSchema[]): Promise; + /** + * Upserts an analytics rule with the given name. + * + * @example + * await client.analytics.rules().upsert("products_query_hits", { type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ upsert(name: string, params: AnalyticsRuleUpsertSchema): Promise; + /** + * Retrieve all analytics rules. Use the optional rule_tag filter to narrow down results. + * + * @example + * await client.analytics.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ retrieve(ruleTag?: string): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/AnalyticsRules.js b/lib/Typesense/AnalyticsRules.js index 2c718e7b..93d3e3f9 100644 --- a/lib/Typesense/AnalyticsRules.js +++ b/lib/Typesense/AnalyticsRules.js @@ -7,6 +7,14 @@ var AnalyticsRules = /** @class */ (function () { this.apiCall = apiCall; this.apiCall = apiCall; } + /** + * Create one or more analytics rules. You can send a single rule object or an array of rule objects. + * + * @example + * await client.analytics.rules().create({ name: "products_query_hits", type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ AnalyticsRules.prototype.create = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var AnalyticsRules = /** @class */ (function () { }); }); }; + /** + * Upserts an analytics rule with the given name. + * + * @example + * await client.analytics.rules().upsert("products_query_hits", { type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ AnalyticsRules.prototype.upsert = function (name, params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -21,6 +37,14 @@ var AnalyticsRules = /** @class */ (function () { }); }); }; + /** + * Retrieve all analytics rules. Use the optional rule_tag filter to narrow down results. + * + * @example + * await client.analytics.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ AnalyticsRules.prototype.retrieve = function (ruleTag) { return tslib_1.__awaiter(this, void 0, void 0, function () { var query; diff --git a/lib/Typesense/AnalyticsRules.js.map b/lib/Typesense/AnalyticsRules.js.map index dbc9a3f1..6a747a7d 100644 --- a/lib/Typesense/AnalyticsRules.js.map +++ b/lib/Typesense/AnalyticsRules.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsRules.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRules.ts"],"names":[],"mappings":";;;AAWA,IAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC;IACE,wBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,+BAAM,GAAZ,UACE,MAE+B;;;gBAU/B,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,EACN,EAAE,EACF,EAAE,CACH,EAAC;;;KACH;IAEK,+BAAM,GAAZ,UACE,IAAY,EACZ,MAAiC;;;gBAEjC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,MAAM,CACP,EAAC;;;KACH;IAEK,iCAAQ,GAAd,UAAe,OAAgB;;;;gBACvB,KAAK,GAA2B,EAAE,CAAC;gBACzC,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;gBAC9B,CAAC;gBACD,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,EAAC;;;KAC5E;IAEO,qCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,cAAc,CAAC,YAAY,SACnC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,8BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,qBAAC;AAAD,CAAC,AArDD,IAqDC"} \ No newline at end of file +{"version":3,"file":"AnalyticsRules.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRules.ts"],"names":[],"mappings":";;;AAWA,IAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC;IACE,wBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACG,+BAAM,GAAZ,UACE,MAE+B;;;gBAU/B,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,EACN,EAAE,EACF,EAAE,CACH,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,+BAAM,GAAZ,UACE,IAAY,EACZ,MAAiC;;;gBAEjC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,iCAAQ,GAAd,UAAe,OAAgB;;;;gBACvB,KAAK,GAA2B,EAAE,CAAC;gBACzC,IAAI,OAAO,EAAE,CAAC;oBACZ,KAAK,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;gBAC9B,CAAC;gBACD,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,EAAC;;;KAC5E;IAEO,qCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,cAAc,CAAC,YAAY,SACnC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,8BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,qBAAC;AAAD,CAAC,AA7ED,IA6EC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsRulesV1.d.ts b/lib/Typesense/AnalyticsRulesV1.d.ts index 79ec4c55..4addbfb4 100644 --- a/lib/Typesense/AnalyticsRulesV1.d.ts +++ b/lib/Typesense/AnalyticsRulesV1.d.ts @@ -6,7 +6,23 @@ export interface AnalyticsRulesRetrieveSchemaV1 { export default class AnalyticsRulesV1 { private readonly apiCall; constructor(apiCall: ApiCall); + /** + * Upsert a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules().upsert("products_query_hits", { type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ upsert(name: string, params: AnalyticsRuleCreateSchemaV1): Promise; + /** + * Retrieve all legacy v1 analytics rules. + * + * @example + * await client.analyticsV1.rules().retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ retrieve(): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/AnalyticsRulesV1.js b/lib/Typesense/AnalyticsRulesV1.js index 01a5a95d..5738a99b 100644 --- a/lib/Typesense/AnalyticsRulesV1.js +++ b/lib/Typesense/AnalyticsRulesV1.js @@ -7,6 +7,14 @@ var AnalyticsRulesV1 = /** @class */ (function () { this.apiCall = apiCall; this.apiCall = apiCall; } + /** + * Upsert a legacy v1 analytics rule by name. + * + * @example + * await client.analyticsV1.rules().upsert("products_query_hits", { type: "popular_queries", params: {} }) + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ AnalyticsRulesV1.prototype.upsert = function (name, params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var AnalyticsRulesV1 = /** @class */ (function () { }); }); }; + /** + * Retrieve all legacy v1 analytics rules. + * + * @example + * await client.analyticsV1.rules().retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ AnalyticsRulesV1.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/AnalyticsRulesV1.js.map b/lib/Typesense/AnalyticsRulesV1.js.map index bf114c99..4abc2801 100644 --- a/lib/Typesense/AnalyticsRulesV1.js.map +++ b/lib/Typesense/AnalyticsRulesV1.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsRulesV1.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRulesV1.ts"],"names":[],"mappings":";;;AAUA,IAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC;IACE,0BAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,iCAAM,GAAZ,UACE,IAAY,EACZ,MAAmC;;;gBAEnC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,MAAM,CACP,EAAC;;;KACH;IAEK,mCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9E;IAEO,uCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,gBAAgB,CAAC,YAAY,SACrC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,gCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,uBAAC;AAAD,CAAC,AA5BD,IA4BC"} \ No newline at end of file +{"version":3,"file":"AnalyticsRulesV1.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRulesV1.ts"],"names":[],"mappings":";;;AAUA,IAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC;IACE,0BAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACG,iCAAM,GAAZ,UACE,IAAY,EACZ,MAAmC;;;gBAEnC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,mCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9E;IAEO,uCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,gBAAgB,CAAC,YAAY,SAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CACxG,CAAC;IACP,CAAC;IAED,sBAAW,gCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,uBAAC;AAAD,CAAC,AA3CD,IA2CC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsV1.d.ts b/lib/Typesense/AnalyticsV1.d.ts index bfb750f8..313135ea 100644 --- a/lib/Typesense/AnalyticsV1.d.ts +++ b/lib/Typesense/AnalyticsV1.d.ts @@ -12,8 +12,34 @@ export default class AnalyticsV1 { private readonly individualAnalyticsRules; private readonly _analyticsEvents; constructor(apiCall: ApiCall); + /** + * Access the legacy v1 analytics rules resource. Call without arguments to list or upsert rules, or pass an ID to access a single rule. + * + * @example + * await client.analyticsV1.rules().retrieve() + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ rules(): AnalyticsRulesV1; + /** + * Access an individual legacy v1 analytics rule by ID. + * + * @example + * await client.analyticsV1.rules("rule-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ rules(id: string): AnalyticsRuleV1; + /** + * Access the legacy v1 analytics events resource to send analytics events. + * + * @example + * await client.analyticsV1.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ events(): AnalyticsEvents; static get RESOURCEPATH(): string; } diff --git a/lib/Typesense/AnalyticsV1.js b/lib/Typesense/AnalyticsV1.js index c7724311..bceb780e 100644 --- a/lib/Typesense/AnalyticsV1.js +++ b/lib/Typesense/AnalyticsV1.js @@ -32,6 +32,14 @@ var AnalyticsV1 = /** @class */ (function () { return this.individualAnalyticsRules[id]; } }; + /** + * Access the legacy v1 analytics events resource to send analytics events. + * + * @example + * await client.analyticsV1.events().create({ type: "click", name: "products_click", data: {} }) + * + * @see https://typesense.org/docs/29.0/api/analytics-query-suggestions.html + */ AnalyticsV1.prototype.events = function () { return this._analyticsEvents; }; diff --git a/lib/Typesense/AnalyticsV1.js.map b/lib/Typesense/AnalyticsV1.js.map index 8548c94e..b9d5b163 100644 --- a/lib/Typesense/AnalyticsV1.js.map +++ b/lib/Typesense/AnalyticsV1.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsV1.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsV1.ts"],"names":[],"mappings":";;;AACA,gFAAkD;AAClD,8EAAgD;AAChD,8EAAgD;AAEhD,IAAM,YAAY,GAAG,YAAY,CAAC;AAElC;;GAEG;AACH;IAME,qBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAH5B,6BAAwB,GAAoC,EAAE,CAAC;QAI9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,0BAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAID,2BAAK,GAAL,UAAM,EAAW;QACf,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACtC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,qJAAqJ,CACtJ,CAAC;YACF,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAC1C,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpD,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,GAAG,IAAI,yBAAe,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,4BAAM,GAAN;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,sBAAW,2BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IArCc,gCAAoB,GAAG,KAAK,AAAR,CAAS;IAsC9C,kBAAC;CAAA,AAvCD,IAuCC;kBAvCoB,WAAW"} \ No newline at end of file +{"version":3,"file":"AnalyticsV1.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsV1.ts"],"names":[],"mappings":";;;AACA,gFAAkD;AAClD,8EAAgD;AAChD,8EAAgD;AAEhD,IAAM,YAAY,GAAG,YAAY,CAAC;AAElC;;GAEG;AACH;IAME,qBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAH5B,6BAAwB,GAAoC,EAAE,CAAC;QAI9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,0BAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAsBD,2BAAK,GAAL,UAAM,EAAW;QACf,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACtC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,qJAAqJ,CACtJ,CAAC;YACF,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAC1C,CAAC;QACD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpD,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,GAAG,IAAI,yBAAe,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,4BAAM,GAAN;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,sBAAW,2BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IA/Dc,gCAAoB,GAAG,KAAK,AAAR,CAAS;IAgE9C,kBAAC;CAAA,AAjED,IAiEC;kBAjEoB,WAAW"} \ No newline at end of file diff --git a/lib/Typesense/Client.d.ts b/lib/Typesense/Client.d.ts index e993039d..b90e9957 100644 --- a/lib/Typesense/Client.d.ts +++ b/lib/Typesense/Client.d.ts @@ -27,17 +27,94 @@ import SynonymSets from "./SynonymSets"; import SynonymSet from "./SynonymSet"; import CurationSets from "./CurationSets"; import CurationSet from "./CurationSet"; +/** + * Typesense client for indexing, searching, and managing collections. + * + * @see https://typesense.org/docs/latest/api/ + */ export default class Client { configuration: Configuration; apiCall: ApiCall; + /** + * Retrieve server version and state information. + * + * @example + * await client.debug.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug + */ debug: Debug; + /** + * Get current RAM, CPU, Disk & Network usage metrics. + * + * @example + * await client.metrics.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ metrics: Metrics; + /** + * Get stats about API endpoints. + * + * @example + * await client.stats.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ stats: Stats; + /** + * Checks if Typesense server is ready to accept requests. + * + * @example + * await client.health.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#health + */ health: Health; + /** + * Cluster operations: snapshots, voting, cache, on-disk compaction, slow request log. + * + * @example + * await client.operations.perform("snapshot", { snapshot_path: "/tmp/snap" }) + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ operations: Operations; + /** + * Send multiple search requests in a single HTTP request. + * + * @example + * await client.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ multiSearch: MultiSearch; + /** + * Manage analytics rules and events. + * + * @example + * await client.analytics.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ analytics: Analytics; + /** + * Legacy v1 analytics API for rules and events. + * + * @example + * await client.analyticsV1.rules().retrieve() + * + * @see https://typesense.org/docs/latest/api/analytics-query-suggestions.html + */ analyticsV1: AnalyticsV1; + /** + * Manage stemming dictionaries. + * + * @example + * await client.stemming.dictionaries().retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ stemming: Stemming; private readonly _collections; private readonly individualCollections; @@ -58,22 +135,184 @@ export default class Client { private readonly _curationSets; private readonly individualCurationSets; constructor(options: ConfigurationOptions); + /** + * Access the collections resource. Call without arguments to list or create collections, or pass a name to access a single collection. + * + * @example + * await client.collections().create({ name: "products", fields: [{ name: "title", type: "string" }] }) + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html + */ collections(): Collections; + /** + * Access an individual collection by name. + * + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html + */ collections = object>(collectionName: string): Collection; + /** + * Access the aliases resource. Call without arguments to list or upsert aliases, or pass a name to access a single alias. + * + * @example + * await client.aliases().upsert("my-alias", { collection_name: "products" }) + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html + */ aliases(): Aliases; + /** + * Access an individual collection alias by name. + * + * @example + * await client.aliases("my-alias").retrieve() + * + * @see https://typesense.org/docs/latest/api/collection-alias.html + */ aliases(aliasName: string): Alias; + /** + * Access the API keys resource. Call without arguments to list or create keys, or pass an ID to access a single key. + * + * @example + * await client.keys().create({ description: "Search-only key", actions: ["documents:search"], collections: ["*"] }) + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html + */ keys(): Keys; + /** + * Access an individual API key by ID. + * + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html + */ keys(id: number): Key; + /** + * Access the presets resource. Call without arguments to list or upsert presets, or pass an ID to access a single preset. + * + * @example + * await client.presets().upsert("listing_view", { value: { q: "*" } }) + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ presets(): Presets; + /** + * Access an individual preset by ID. + * + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ presets(id: string): Preset; + /** + * Access the stopwords resource. Call without arguments to list or upsert stopword sets, or pass an ID to access a single set. + * + * @example + * await client.stopwords().upsert("en", { stopwords: ["a", "the"] }) + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ stopwords(): Stopwords; + /** + * Access an individual stopwords set by ID. + * + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ stopwords(id: string): Stopword; + /** + * Access the conversation models resource. Call without arguments to list models, or pass an ID to access a single model. + * + * @example + * await client.conversations().retrieve() + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ conversations(): Conversations; + /** + * Access an individual conversation model by ID. + * + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ conversations(id: string): Conversation; + /** + * Access the NL search models resource. Call without arguments to list or create models, or pass an ID to access a single model. + * + * @example + * await client.nlSearchModels().create({ model_name: "openai/gpt-4" }) + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ nlSearchModels(): NLSearchModels; + /** + * Access an individual NL search model by ID. + * + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ nlSearchModels(id: string): NLSearchModel; + /** + * Access the synonym sets resource. Call without arguments to list sets, or pass a name to access a single set. + * + * @example + * await client.synonymSets().retrieve() + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ synonymSets(): SynonymSets; + /** + * Access an individual synonym set by name. + * + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ synonymSets(synonymSetName: string): SynonymSet; + /** + * Access the curation sets resource. Call without arguments to list sets, or pass a name to access a single set. + * + * @example + * await client.curationSets().retrieve() + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ curationSets(): CurationSets; + /** + * Access an individual curation set by name. + * + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ curationSets(name: string): CurationSet; } diff --git a/lib/Typesense/Client.js b/lib/Typesense/Client.js index fc3561eb..fe3eedde 100644 --- a/lib/Typesense/Client.js +++ b/lib/Typesense/Client.js @@ -31,6 +31,11 @@ var SynonymSets_1 = tslib_1.__importDefault(require("./SynonymSets")); var SynonymSet_1 = tslib_1.__importDefault(require("./SynonymSet")); var CurationSets_1 = tslib_1.__importDefault(require("./CurationSets")); var CurationSet_1 = tslib_1.__importDefault(require("./CurationSet")); +/** + * Typesense client for indexing, searching, and managing collections. + * + * @see https://typesense.org/docs/latest/api/ + */ var Client = /** @class */ (function () { function Client(options) { var _a; diff --git a/lib/Typesense/Client.js.map b/lib/Typesense/Client.js.map index f3a13572..0b579332 100644 --- a/lib/Typesense/Client.js.map +++ b/lib/Typesense/Client.js.map @@ -1 +1 @@ -{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/Typesense/Client.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/Typesense/Client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/Collection.d.ts b/lib/Typesense/Collection.d.ts index 38e393cf..7fbb1bb7 100644 --- a/lib/Typesense/Collection.d.ts +++ b/lib/Typesense/Collection.d.ts @@ -48,15 +48,101 @@ export default class Collection { private readonly _synonyms; private individualSynonyms; constructor(name: string, apiCall: ApiCall, configuration: any); + /** + * Retrieve the details of a collection, given its name. + * + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection + */ retrieve(): Promise; + /** + * Update a collection's schema to modify the fields and their types. + * + * @example + * await client.collections("products").update({ fields: [{ name: "tags", type: "string[]" }] }) + * + * @see https://typesense.org/docs/latest/api/collections.html#update-or-alter-a-collection + */ update(schema: CollectionUpdateSchema): Promise; + /** + * Permanently drops a collection. This action cannot be undone. For large collections, this might have an impact on read latencies. + * + * @example + * await client.collections("products").delete() + * + * @see https://typesense.org/docs/latest/api/collections.html#drop-a-collection + */ delete(options?: CollectionDeleteOptions): Promise; + /** + * Check whether the collection exists. + * + * @example + * await client.collections("products").exists() + * + * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection + */ exists(): Promise; + /** + * Access the documents resource for this collection. Call without arguments to list, index, search, import, or export documents, or pass a document ID to access a single document. + * + * @example + * await client.collections("products").documents().create({ id: "1", title: "Hat" }) + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html + */ documents(): Documents; + /** + * Access an individual document by ID within this collection. + * + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html + */ documents(documentId: string): Document; + /** + * Access the legacy overrides (curation) resource for this collection. Call without arguments to list or upsert overrides, or pass an ID to access a single override. + * + * @example + * await client.collections("products").overrides().upsert("promote-hat", { rule: { query: "hat", match: "exact" }, includes: [] }) + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ overrides(): Overrides; + /** + * Access an individual override by ID within this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ overrides(overrideId: string): Override; + /** + * Access the legacy synonyms resource for this collection. Call without arguments to list or upsert synonyms, or pass an ID to access a single synonym. + * + * @example + * await client.collections("products").synonyms().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ synonyms(): Synonyms; + /** + * Access an individual synonym by ID within this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ synonyms(synonymId: string): Synonym; private endpointPath; } diff --git a/lib/Typesense/Collection.js b/lib/Typesense/Collection.js index 92c6b063..496d30c5 100644 --- a/lib/Typesense/Collection.js +++ b/lib/Typesense/Collection.js @@ -24,6 +24,14 @@ var Collection = /** @class */ (function () { this._overrides = new Overrides_1.default(this.name, this.apiCall); this._synonyms = new Synonyms_1.default(this.name, this.apiCall); } + /** + * Retrieve the details of a collection, given its name. + * + * @example + * await client.collections("products").retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection + */ Collection.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -31,6 +39,14 @@ var Collection = /** @class */ (function () { }); }); }; + /** + * Update a collection's schema to modify the fields and their types. + * + * @example + * await client.collections("products").update({ fields: [{ name: "tags", type: "string[]" }] }) + * + * @see https://typesense.org/docs/latest/api/collections.html#update-or-alter-a-collection + */ Collection.prototype.update = function (schema) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -38,6 +54,14 @@ var Collection = /** @class */ (function () { }); }); }; + /** + * Permanently drops a collection. This action cannot be undone. For large collections, this might have an impact on read latencies. + * + * @example + * await client.collections("products").delete() + * + * @see https://typesense.org/docs/latest/api/collections.html#drop-a-collection + */ Collection.prototype.delete = function () { return tslib_1.__awaiter(this, arguments, void 0, function (options) { if (options === void 0) { options = {}; } @@ -46,6 +70,14 @@ var Collection = /** @class */ (function () { }); }); }; + /** + * Check whether the collection exists. + * + * @example + * await client.collections("products").exists() + * + * @see https://typesense.org/docs/latest/api/collections.html#retrieve-a-collection + */ Collection.prototype.exists = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var e_1; diff --git a/lib/Typesense/Collection.js.map b/lib/Typesense/Collection.js.map index b959070c..046cd5d9 100644 --- a/lib/Typesense/Collection.js.map +++ b/lib/Typesense/Collection.js.map @@ -1 +1 @@ -{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/Typesense/Collection.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/Typesense/Collection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/Collections.d.ts b/lib/Typesense/Collections.d.ts index d46798b0..849f9155 100644 --- a/lib/Typesense/Collections.d.ts +++ b/lib/Typesense/Collections.d.ts @@ -35,7 +35,23 @@ export interface CollectionsRetrieveOptions { export default class Collections { private apiCall; constructor(apiCall: ApiCall); + /** + * When a collection is created, we give it a name and describe the fields that will be indexed from the documents added to the collection. + * + * @example + * await client.collections().create({ name: "products", fields: [{ name: "title", type: "string" }] }) + * + * @see https://typesense.org/docs/latest/api/collections.html#create-a-collection + */ create(schema: CollectionCreateSchema, options?: Options): Promise; + /** + * Returns a summary of all your collections. The collections are returned sorted by creation date, with the most recent collections appearing first. + * + * @example + * await client.collections().retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html#list-all-collections + */ retrieve(options?: CollectionsRetrieveOptions): Promise; static get RESOURCEPATH(): string; } diff --git a/lib/Typesense/Collections.js b/lib/Typesense/Collections.js index 673c813c..7e17ee6e 100644 --- a/lib/Typesense/Collections.js +++ b/lib/Typesense/Collections.js @@ -6,6 +6,14 @@ var Collections = /** @class */ (function () { function Collections(apiCall) { this.apiCall = apiCall; } + /** + * When a collection is created, we give it a name and describe the fields that will be indexed from the documents added to the collection. + * + * @example + * await client.collections().create({ name: "products", fields: [{ name: "title", type: "string" }] }) + * + * @see https://typesense.org/docs/latest/api/collections.html#create-a-collection + */ Collections.prototype.create = function (schema, options) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -13,6 +21,14 @@ var Collections = /** @class */ (function () { }); }); }; + /** + * Returns a summary of all your collections. The collections are returned sorted by creation date, with the most recent collections appearing first. + * + * @example + * await client.collections().retrieve() + * + * @see https://typesense.org/docs/latest/api/collections.html#list-all-collections + */ Collections.prototype.retrieve = function () { return tslib_1.__awaiter(this, arguments, void 0, function (options) { if (options === void 0) { options = {}; } diff --git a/lib/Typesense/Collections.js.map b/lib/Typesense/Collections.js.map index d1dc0dfd..30fe8a31 100644 --- a/lib/Typesense/Collections.js.map +++ b/lib/Typesense/Collections.js.map @@ -1 +1 @@ -{"version":3,"file":"Collections.js","sourceRoot":"","sources":["../../src/Typesense/Collections.ts"],"names":[],"mappings":";;;AA8CA,IAAM,YAAY,GAAG,cAAc,CAAC;AAEpC;IACE,qBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,4BAAM,GAAZ,UACE,MAAuC,EACvC,OAAiB;;;gBAEjB,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAmB,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAC;;;KAC3E;IAEK,8BAAQ,GAAd;oEACE,OAAwC;YAAxC,wBAAA,EAAA,YAAwC;;gBAExC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,YAAY,EAAE,OAAO,CAAC,EAAC;;;KACpE;IAED,sBAAW,2BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,kBAAC;AAAD,CAAC,AAnBD,IAmBC"} \ No newline at end of file +{"version":3,"file":"Collections.js","sourceRoot":"","sources":["../../src/Typesense/Collections.ts"],"names":[],"mappings":";;;AA8CA,IAAM,YAAY,GAAG,cAAc,CAAC;AAEpC;IACE,qBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,4BAAM,GAAZ,UACE,MAAuC,EACvC,OAAiB;;;gBAEjB,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAmB,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAC;;;KAC3E;IAED;;;;;;;OAOG;IACG,8BAAQ,GAAd;oEACE,OAAwC;YAAxC,wBAAA,EAAA,YAAwC;;gBAExC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,YAAY,EAAE,OAAO,CAAC,EAAC;;;KACpE;IAED,sBAAW,2BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,kBAAC;AAAD,CAAC,AAnCD,IAmCC"} \ No newline at end of file diff --git a/lib/Typesense/Conversation.d.ts b/lib/Typesense/Conversation.d.ts index 4e067cb9..77adfad4 100644 --- a/lib/Typesense/Conversation.d.ts +++ b/lib/Typesense/Conversation.d.ts @@ -15,8 +15,32 @@ export default class Conversation { private id; private apiCall; constructor(id: string, apiCall: ApiCall); + /** + * Retrieve a conversation by ID. + * + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ retrieve(): Promise; + /** + * Update a conversation's TTL. + * + * @example + * await client.conversations("conv-1").update({ ttl: 3600 }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ update(params: ConversationUpdateSchema): Promise; + /** + * Delete a conversation by ID. + * + * @example + * await client.conversations("conv-1").delete() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/Conversation.js b/lib/Typesense/Conversation.js index b0891aed..216a072c 100644 --- a/lib/Typesense/Conversation.js +++ b/lib/Typesense/Conversation.js @@ -7,6 +7,14 @@ var Conversation = /** @class */ (function () { this.id = id; this.apiCall = apiCall; } + /** + * Retrieve a conversation by ID. + * + * @example + * await client.conversations("conv-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ Conversation.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var Conversation = /** @class */ (function () { }); }); }; + /** + * Update a conversation's TTL. + * + * @example + * await client.conversations("conv-1").update({ ttl: 3600 }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ Conversation.prototype.update = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -21,6 +37,14 @@ var Conversation = /** @class */ (function () { }); }); }; + /** + * Delete a conversation by ID. + * + * @example + * await client.conversations("conv-1").delete() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ Conversation.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Conversation.js.map b/lib/Typesense/Conversation.js.map index 0a9646b7..61421735 100644 --- a/lib/Typesense/Conversation.js.map +++ b/lib/Typesense/Conversation.js.map @@ -1 +1 @@ -{"version":3,"file":"Conversation.js","sourceRoot":"","sources":["../../src/Typesense/Conversation.ts"],"names":[],"mappings":";;;AACA,0EAA4C;AAiB5C;IACE,sBACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,+BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACpE;IAEK,6BAAM,GAAZ,UACE,MAAgC;;;gBAEhC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEK,6BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC3E;IAEO,mCAAY,GAApB;QACE,OAAO,UAAG,uBAAa,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IACxE,CAAC;IACH,mBAAC;AAAD,CAAC,AA1BD,IA0BC"} \ No newline at end of file +{"version":3,"file":"Conversation.js","sourceRoot":"","sources":["../../src/Typesense/Conversation.ts"],"names":[],"mappings":";;;AACA,0EAA4C;AAiB5C;IACE,sBACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,+BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACpE;IAED;;;;;;;OAOG;IACG,6BAAM,GAAZ,UACE,MAAgC;;;gBAEhC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,6BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC3E;IAEO,mCAAY,GAApB;QACE,OAAO,UAAG,uBAAa,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IACxE,CAAC;IACH,mBAAC;AAAD,CAAC,AAlDD,IAkDC"} \ No newline at end of file diff --git a/lib/Typesense/ConversationModel.d.ts b/lib/Typesense/ConversationModel.d.ts index 26a8162a..f60be827 100644 --- a/lib/Typesense/ConversationModel.d.ts +++ b/lib/Typesense/ConversationModel.d.ts @@ -23,8 +23,32 @@ export default class ConversationModel { private id; private apiCall; constructor(id: string, apiCall: ApiCall); + /** + * Update a conversation model + * + * @example + * await client.conversations().models("model-1").update({ model_name: "openai/gpt-4", max_bytes: 16384 }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ update(params: ConversationModelCreateSchema): Promise; + /** + * Retrieve a conversation model + * + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ retrieve(): Promise; + /** + * Delete a conversation model + * + * @example + * await client.conversations().models("model-1").delete() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/ConversationModel.js b/lib/Typesense/ConversationModel.js index 2da74c2d..51557ed9 100644 --- a/lib/Typesense/ConversationModel.js +++ b/lib/Typesense/ConversationModel.js @@ -7,6 +7,14 @@ var ConversationModel = /** @class */ (function () { this.id = id; this.apiCall = apiCall; } + /** + * Update a conversation model + * + * @example + * await client.conversations().models("model-1").update({ model_name: "openai/gpt-4", max_bytes: 16384 }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ ConversationModel.prototype.update = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var ConversationModel = /** @class */ (function () { }); }); }; + /** + * Retrieve a conversation model + * + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ ConversationModel.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -21,6 +37,14 @@ var ConversationModel = /** @class */ (function () { }); }); }; + /** + * Delete a conversation model + * + * @example + * await client.conversations().models("model-1").delete() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ ConversationModel.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/ConversationModel.js.map b/lib/Typesense/ConversationModel.js.map index faaded94..ca32d501 100644 --- a/lib/Typesense/ConversationModel.js.map +++ b/lib/Typesense/ConversationModel.js.map @@ -1 +1 @@ -{"version":3,"file":"ConversationModel.js","sourceRoot":"","sources":["../../src/Typesense/ConversationModel.ts"],"names":[],"mappings":";;;AACA,oFAAsD;AAyBtD;IACE,2BACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,kCAAM,GAAZ,UACE,MAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEK,oCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEK,kCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,wCAAY,GAApB;QACE,OAAO,UAAG,4BAAkB,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC7E,CAAC;IACH,wBAAC;AAAD,CAAC,AA5BD,IA4BC"} \ No newline at end of file +{"version":3,"file":"ConversationModel.js","sourceRoot":"","sources":["../../src/Typesense/ConversationModel.ts"],"names":[],"mappings":";;;AACA,oFAAsD;AAyBtD;IACE,2BACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,kCAAM,GAAZ,UACE,MAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,oCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAED;;;;;;;OAOG;IACG,kCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,wCAAY,GAApB;QACE,OAAO,UAAG,4BAAkB,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC7E,CAAC;IACH,wBAAC;AAAD,CAAC,AApDD,IAoDC"} \ No newline at end of file diff --git a/lib/Typesense/ConversationModels.d.ts b/lib/Typesense/ConversationModels.d.ts index 8a6ef4c4..675dd4fa 100644 --- a/lib/Typesense/ConversationModels.d.ts +++ b/lib/Typesense/ConversationModels.d.ts @@ -3,7 +3,23 @@ import { ConversationModelCreateSchema, ConversationModelSchema } from "./Conver export default class ConversationModels { private readonly apiCall; constructor(apiCall: ApiCall); + /** + * Create a Conversation Model + * + * @example + * await client.conversations().models().create({ model_name: "openai/gpt-4", api_key: "..." }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ create(params: ConversationModelCreateSchema): Promise; + /** + * Retrieve all conversation models + * + * @example + * await client.conversations().models().retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ retrieve(): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/ConversationModels.js b/lib/Typesense/ConversationModels.js index 29563fc5..d1ce84cb 100644 --- a/lib/Typesense/ConversationModels.js +++ b/lib/Typesense/ConversationModels.js @@ -7,6 +7,14 @@ var ConversationModels = /** @class */ (function () { this.apiCall = apiCall; this.apiCall = apiCall; } + /** + * Create a Conversation Model + * + * @example + * await client.conversations().models().create({ model_name: "openai/gpt-4", api_key: "..." }) + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ ConversationModels.prototype.create = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var ConversationModels = /** @class */ (function () { }); }); }; + /** + * Retrieve all conversation models + * + * @example + * await client.conversations().models().retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ ConversationModels.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/ConversationModels.js.map b/lib/Typesense/ConversationModels.js.map index 3c3b1bc0..b19ceb47 100644 --- a/lib/Typesense/ConversationModels.js.map +++ b/lib/Typesense/ConversationModels.js.map @@ -1 +1 @@ -{"version":3,"file":"ConversationModels.js","sourceRoot":"","sources":["../../src/Typesense/ConversationModels.ts"],"names":[],"mappings":";;;AAMA,IAAM,YAAY,GAAG,uBAAuB,CAAC;AAE7C;IACE,4BAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,mCAAM,GAAZ,UACE,MAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEK,qCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,yCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,kBAAkB,CAAC,YAAY,SACvC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,kCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,yBAAC;AAAD,CAAC,AA7BD,IA6BC"} \ No newline at end of file +{"version":3,"file":"ConversationModels.js","sourceRoot":"","sources":["../../src/Typesense/ConversationModels.ts"],"names":[],"mappings":";;;AAMA,IAAM,YAAY,GAAG,uBAAuB,CAAC;AAE7C;IACE,4BAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACG,mCAAM,GAAZ,UACE,MAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,qCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,yCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,kBAAkB,CAAC,YAAY,SACvC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,kCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,yBAAC;AAAD,CAAC,AA7CD,IA6CC"} \ No newline at end of file diff --git a/lib/Typesense/Conversations.d.ts b/lib/Typesense/Conversations.d.ts index 5a4b8dc9..c369b093 100644 --- a/lib/Typesense/Conversations.d.ts +++ b/lib/Typesense/Conversations.d.ts @@ -10,8 +10,34 @@ export default class Conversations { private readonly _conversationsModels; private readonly individualConversationModels; constructor(apiCall: ApiCall); + /** + * Retrieve all conversations. + * + * @example + * await client.conversations().retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ retrieve(): Promise; + /** + * Access the conversation models resource. Call without arguments to list or create models, or pass an ID to access a single model. + * + * @example + * await client.conversations().models().create({ model_name: "openai/gpt-4", api_key: "..." }) + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ models(): ConversationModels; + /** + * Access an individual conversation model by ID. + * + * @example + * await client.conversations().models("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ models(id: string): ConversationModel; static get RESOURCEPATH(): string; } diff --git a/lib/Typesense/Conversations.js b/lib/Typesense/Conversations.js index 69e67c4d..945d7498 100644 --- a/lib/Typesense/Conversations.js +++ b/lib/Typesense/Conversations.js @@ -11,6 +11,14 @@ var Conversations = /** @class */ (function () { this.apiCall = apiCall; this._conversationsModels = new ConversationModels_1.default(this.apiCall); } + /** + * Retrieve all conversations. + * + * @example + * await client.conversations().retrieve() + * + * @see https://typesense.org/docs/latest/api/conversational-search-rag.html + */ Conversations.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Conversations.js.map b/lib/Typesense/Conversations.js.map index 899cd545..0bae6f4c 100644 --- a/lib/Typesense/Conversations.js.map +++ b/lib/Typesense/Conversations.js.map @@ -1 +1 @@ -{"version":3,"file":"Conversations.js","sourceRoot":"","sources":["../../src/Typesense/Conversations.ts"],"names":[],"mappings":";;;AACA,oFAAsD;AACtD,kFAAoD;AAGpD,IAAM,YAAY,GAAG,gBAAgB,CAAC;AAMtC;IAOE,uBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAL5B,iCAA4B,GAGzC,EAAE,CAAC;QAGL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,4BAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAEK,gCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA8B,YAAY,CAAC,EAAC;;;KACpE;IAID,8BAAM,GAAN,UAAO,EAAW;QAChB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,GAAG,IAAI,2BAAiB,CAC3D,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,sBAAW,6BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,oBAAC;AAAD,CAAC,AAnCD,IAmCC"} \ No newline at end of file +{"version":3,"file":"Conversations.js","sourceRoot":"","sources":["../../src/Typesense/Conversations.ts"],"names":[],"mappings":";;;AACA,oFAAsD;AACtD,kFAAoD;AAGpD,IAAM,YAAY,GAAG,gBAAgB,CAAC;AAMtC;IAOE,uBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAL5B,iCAA4B,GAGzC,EAAE,CAAC;QAGL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,4BAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;OAOG;IACG,gCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA8B,YAAY,CAAC,EAAC;;;KACpE;IAsBD,8BAAM,GAAN,UAAO,EAAW;QAChB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,GAAG,IAAI,2BAAiB,CAC3D,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,sBAAW,6BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,oBAAC;AAAD,CAAC,AA7DD,IA6DC"} \ No newline at end of file diff --git a/lib/Typesense/CurationSet.d.ts b/lib/Typesense/CurationSet.d.ts index e07a8db5..5b81318e 100644 --- a/lib/Typesense/CurationSet.d.ts +++ b/lib/Typesense/CurationSet.d.ts @@ -8,10 +8,52 @@ export default class CurationSet { private readonly _items; private individualItems; constructor(name: string, apiCall: ApiCall); + /** + * Create or update a curation set with the given name + * + * @example + * await client.curationSets("my-set").upsert({ items: [{ id: "promote-hat", rule: { query: "hat", match: "exact" } }] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ upsert(params: CurationSetUpsertSchema): Promise; + /** + * Retrieve a specific curation set by its name + * + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ retrieve(): Promise; + /** + * Delete a specific curation set by its name + * + * @example + * await client.curationSets("my-set").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ delete(): Promise; + /** + * Access the items in this curation set. Call without arguments to list items, or pass an item ID to access a single item. + * + * @example + * await client.curationSets("my-set").items().retrieve() + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ items(): CurationSetItems; + /** + * Access an individual curation item by ID within this curation set. + * + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ items(itemId: string): CurationSetItem; private endpointPath; } diff --git a/lib/Typesense/CurationSet.js b/lib/Typesense/CurationSet.js index 80c2d2f1..2a09c934 100644 --- a/lib/Typesense/CurationSet.js +++ b/lib/Typesense/CurationSet.js @@ -11,6 +11,14 @@ var CurationSet = /** @class */ (function () { this.individualItems = {}; this._items = new CurationSetItems_1.default(this.name, apiCall); } + /** + * Create or update a curation set with the given name + * + * @example + * await client.curationSets("my-set").upsert({ items: [{ id: "promote-hat", rule: { query: "hat", match: "exact" } }] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ CurationSet.prototype.upsert = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -18,6 +26,14 @@ var CurationSet = /** @class */ (function () { }); }); }; + /** + * Retrieve a specific curation set by its name + * + * @example + * await client.curationSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ CurationSet.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -25,6 +41,14 @@ var CurationSet = /** @class */ (function () { }); }); }; + /** + * Delete a specific curation set by its name + * + * @example + * await client.curationSets("my-set").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ CurationSet.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/CurationSet.js.map b/lib/Typesense/CurationSet.js.map index 9cab9cae..eee6c981 100644 --- a/lib/Typesense/CurationSet.js.map +++ b/lib/Typesense/CurationSet.js.map @@ -1 +1 @@ -{"version":3,"file":"CurationSet.js","sourceRoot":"","sources":["../../src/Typesense/CurationSet.ts"],"names":[],"mappings":";;;AACA,wEAA0C;AAM1C,gFAAkD;AAClD,8EAAgD;AAEhD;IAIE,qBACU,IAAY,EACZ,OAAgB;QADhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAJlB,oBAAe,GAAoC,EAAE,CAAC;QAM5D,IAAI,CAAC,MAAM,GAAG,IAAI,0BAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEK,4BAAM,GAAZ,UAAa,MAA+B;;;gBAC1C,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAoB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KACzE;IAEK,8BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAoB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACjE;IAEK,4BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAID,2BAAK,GAAL,UAAM,MAAe;QACnB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,yBAAe,CAChD,IAAI,CAAC,IAAI,EACT,MAAM,EACN,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,kCAAY,GAApB;QACE,OAAO,UAAG,sBAAY,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IACzE,CAAC;IACH,kBAAC;AAAD,CAAC,AA7CD,IA6CC"} \ No newline at end of file +{"version":3,"file":"CurationSet.js","sourceRoot":"","sources":["../../src/Typesense/CurationSet.ts"],"names":[],"mappings":";;;AACA,wEAA0C;AAM1C,gFAAkD;AAClD,8EAAgD;AAEhD;IAIE,qBACU,IAAY,EACZ,OAAgB;QADhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAJlB,oBAAe,GAAoC,EAAE,CAAC;QAM5D,IAAI,CAAC,MAAM,GAAG,IAAI,0BAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;OAOG;IACG,4BAAM,GAAZ,UAAa,MAA+B;;;gBAC1C,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAoB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KACzE;IAED;;;;;;;OAOG;IACG,8BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAoB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACjE;IAED;;;;;;;OAOG;IACG,4BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAsBD,2BAAK,GAAL,UAAM,MAAe;QACnB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,yBAAe,CAChD,IAAI,CAAC,IAAI,EACT,MAAM,EACN,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,kCAAY,GAApB;QACE,OAAO,UAAG,sBAAY,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IACzE,CAAC;IACH,kBAAC;AAAD,CAAC,AAvFD,IAuFC"} \ No newline at end of file diff --git a/lib/Typesense/CurationSetItem.d.ts b/lib/Typesense/CurationSetItem.d.ts index e4b6f156..9eeb4163 100644 --- a/lib/Typesense/CurationSetItem.d.ts +++ b/lib/Typesense/CurationSetItem.d.ts @@ -9,8 +9,32 @@ export default class CurationSetItem { private itemId; private apiCall; constructor(name: string, itemId: string, apiCall: ApiCall); + /** + * Retrieve a specific curation item by its id + * + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ retrieve(): Promise; + /** + * Create or update a curation set item with the given id + * + * @example + * await client.curationSets("my-set").items("promote-hat").upsert({ rule: { query: "hat", match: "exact" }, includes: [] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ upsert(params: CurationItemUpsertSchema): Promise; + /** + * Delete a specific curation item by its id + * + * @example + * await client.curationSets("my-set").items("promote-hat").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/CurationSetItem.js b/lib/Typesense/CurationSetItem.js index 2a6ff924..57ddcc52 100644 --- a/lib/Typesense/CurationSetItem.js +++ b/lib/Typesense/CurationSetItem.js @@ -8,6 +8,14 @@ var CurationSetItem = /** @class */ (function () { this.itemId = itemId; this.apiCall = apiCall; } + /** + * Retrieve a specific curation item by its id + * + * @example + * await client.curationSets("my-set").items("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ CurationSetItem.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -15,6 +23,14 @@ var CurationSetItem = /** @class */ (function () { }); }); }; + /** + * Create or update a curation set item with the given id + * + * @example + * await client.curationSets("my-set").items("promote-hat").upsert({ rule: { query: "hat", match: "exact" }, includes: [] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ CurationSetItem.prototype.upsert = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -22,6 +38,14 @@ var CurationSetItem = /** @class */ (function () { }); }); }; + /** + * Delete a specific curation item by its id + * + * @example + * await client.curationSets("my-set").items("promote-hat").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ CurationSetItem.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/CurationSetItem.js.map b/lib/Typesense/CurationSetItem.js.map index 350a28de..616ae3b5 100644 --- a/lib/Typesense/CurationSetItem.js.map +++ b/lib/Typesense/CurationSetItem.js.map @@ -1 +1 @@ -{"version":3,"file":"CurationSetItem.js","sourceRoot":"","sources":["../../src/Typesense/CurationSetItem.ts"],"names":[],"mappings":";;;AACA,wEAA0C;AAS1C;IACE,yBACU,IAAY,EACZ,MAAc,EACd,OAAgB;QAFhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,kCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACpE;IAEK,gCAAM,GAAZ,UACE,MAAgC;;;gBAEhC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAuB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KAC5E;IAEK,gCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,sCAAY,GAApB;QACE,OAAO,UAAG,sBAAY,CAAC,YAAY,cAAI,kBAAkB,CACvD,IAAI,CAAC,IAAI,CACV,oBAAU,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC;IAC/C,CAAC;IACH,sBAAC;AAAD,CAAC,AA5BD,IA4BC"} \ No newline at end of file +{"version":3,"file":"CurationSetItem.js","sourceRoot":"","sources":["../../src/Typesense/CurationSetItem.ts"],"names":[],"mappings":";;;AACA,wEAA0C;AAS1C;IACE,yBACU,IAAY,EACZ,MAAc,EACd,OAAgB;QAFhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,kCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACpE;IAED;;;;;;;OAOG;IACG,gCAAM,GAAZ,UACE,MAAgC;;;gBAEhC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAuB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KAC5E;IAED;;;;;;;OAOG;IACG,gCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,sCAAY,GAApB;QACE,OAAO,UAAG,sBAAY,CAAC,YAAY,cAAI,kBAAkB,CACvD,IAAI,CAAC,IAAI,CACV,oBAAU,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC;IAC/C,CAAC;IACH,sBAAC;AAAD,CAAC,AApDD,IAoDC"} \ No newline at end of file diff --git a/lib/Typesense/CurationSetItems.d.ts b/lib/Typesense/CurationSetItems.d.ts index 465e49cb..875851f4 100644 --- a/lib/Typesense/CurationSetItems.d.ts +++ b/lib/Typesense/CurationSetItems.d.ts @@ -4,6 +4,14 @@ export default class CurationSetItems { private name; private apiCall; constructor(name: string, apiCall: ApiCall); + /** + * Retrieve all curation items in a set + * + * @example + * await client.curationSets("my-set").items().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ retrieve(): Promise; private endpointPath; } diff --git a/lib/Typesense/CurationSetItems.js b/lib/Typesense/CurationSetItems.js index b71cfcad..8e1a9dea 100644 --- a/lib/Typesense/CurationSetItems.js +++ b/lib/Typesense/CurationSetItems.js @@ -7,6 +7,14 @@ var CurationSetItems = /** @class */ (function () { this.name = name; this.apiCall = apiCall; } + /** + * Retrieve all curation items in a set + * + * @example + * await client.curationSets("my-set").items().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ CurationSetItems.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/CurationSetItems.js.map b/lib/Typesense/CurationSetItems.js.map index 174f3a46..b954f350 100644 --- a/lib/Typesense/CurationSetItems.js.map +++ b/lib/Typesense/CurationSetItems.js.map @@ -1 +1 @@ -{"version":3,"file":"CurationSetItems.js","sourceRoot":"","sources":["../../src/Typesense/CurationSetItems.ts"],"names":[],"mappings":";;;AACA,wEAAoE;AAEpE;IACE,0BAAoB,IAAY,EAAU,OAAgB;QAAtC,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExD,mCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACtE;IAEO,uCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,sBAAY,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAClE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IACH,uBAAC;AAAD,CAAC,AAZD,IAYC"} \ No newline at end of file +{"version":3,"file":"CurationSetItems.js","sourceRoot":"","sources":["../../src/Typesense/CurationSetItems.ts"],"names":[],"mappings":";;;AACA,wEAAoE;AAEpE;IACE,0BAAoB,IAAY,EAAU,OAAgB;QAAtC,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAE9D;;;;;;;OAOG;IACG,mCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACtE;IAEO,uCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,sBAAY,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAClE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IACH,uBAAC;AAAD,CAAC,AApBD,IAoBC"} \ No newline at end of file diff --git a/lib/Typesense/CurationSets.d.ts b/lib/Typesense/CurationSets.d.ts index 2994ebd3..89d5e0f3 100644 --- a/lib/Typesense/CurationSets.d.ts +++ b/lib/Typesense/CurationSets.d.ts @@ -52,5 +52,13 @@ export default class CurationSets { private apiCall; constructor(apiCall: ApiCall); static readonly RESOURCEPATH = "/curation_sets"; + /** + * Retrieve all curation sets + * + * @example + * await client.curationSets().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ retrieve(): Promise; } diff --git a/lib/Typesense/CurationSets.js b/lib/Typesense/CurationSets.js index 4cbd1b16..2c4fcefb 100644 --- a/lib/Typesense/CurationSets.js +++ b/lib/Typesense/CurationSets.js @@ -5,6 +5,14 @@ var CurationSets = /** @class */ (function () { function CurationSets(apiCall) { this.apiCall = apiCall; } + /** + * Retrieve all curation sets + * + * @example + * await client.curationSets().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ CurationSets.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/CurationSets.js.map b/lib/Typesense/CurationSets.js.map index 2fafa3a1..631a55b8 100644 --- a/lib/Typesense/CurationSets.js.map +++ b/lib/Typesense/CurationSets.js.map @@ -1 +1 @@ -{"version":3,"file":"CurationSets.js","sourceRoot":"","sources":["../../src/Typesense/CurationSets.ts"],"names":[],"mappings":";;;AA4DA;IACE,sBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAGlC,+BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,YAAY,CAAC,YAAY,CAC1B,EAAC;;;KACH;IANe,yBAAY,GAAG,gBAAgB,CAAC;IAOlD,mBAAC;CAAA,AATD,IASC;kBAToB,YAAY"} \ No newline at end of file +{"version":3,"file":"CurationSets.js","sourceRoot":"","sources":["../../src/Typesense/CurationSets.ts"],"names":[],"mappings":";;;AA4DA;IACE,sBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAGxC;;;;;;;OAOG;IACG,+BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,YAAY,CAAC,YAAY,CAC1B,EAAC;;;KACH;IAde,yBAAY,GAAG,gBAAgB,CAAC;IAelD,mBAAC;CAAA,AAjBD,IAiBC;kBAjBoB,YAAY"} \ No newline at end of file diff --git a/lib/Typesense/Debug.d.ts b/lib/Typesense/Debug.d.ts index ac0f44d4..a6c44c50 100644 --- a/lib/Typesense/Debug.d.ts +++ b/lib/Typesense/Debug.d.ts @@ -6,5 +6,13 @@ export interface DebugResponseSchema { export default class Debug { private apiCall; constructor(apiCall: ApiCall); + /** + * Retrieve server version and state information. + * + * @example + * await client.debug.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug + */ retrieve(): Promise; } diff --git a/lib/Typesense/Debug.js b/lib/Typesense/Debug.js index fa525663..c3268326 100644 --- a/lib/Typesense/Debug.js +++ b/lib/Typesense/Debug.js @@ -6,6 +6,14 @@ var Debug = /** @class */ (function () { function Debug(apiCall) { this.apiCall = apiCall; } + /** + * Retrieve server version and state information. + * + * @example + * await client.debug.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#debug + */ Debug.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Debug.js.map b/lib/Typesense/Debug.js.map index 30283311..6af5559f 100644 --- a/lib/Typesense/Debug.js.map +++ b/lib/Typesense/Debug.js.map @@ -1 +1 @@ -{"version":3,"file":"Debug.js","sourceRoot":"","sources":["../../src/Typesense/Debug.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,QAAQ,CAAC;AAO9B;IACE,eAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,wBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,YAAY,CAAC,EAAC;;;KAC5D;IACH,YAAC;AAAD,CAAC,AAND,IAMC"} \ No newline at end of file +{"version":3,"file":"Debug.js","sourceRoot":"","sources":["../../src/Typesense/Debug.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,QAAQ,CAAC;AAO9B;IACE,eAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,wBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,YAAY,CAAC,EAAC;;;KAC5D;IACH,YAAC;AAAD,CAAC,AAdD,IAcC"} \ No newline at end of file diff --git a/lib/Typesense/Document.d.ts b/lib/Typesense/Document.d.ts index a36631aa..eede029a 100644 --- a/lib/Typesense/Document.d.ts +++ b/lib/Typesense/Document.d.ts @@ -9,8 +9,32 @@ export declare class Document { private documentId; private apiCall; constructor(collectionName: string, documentId: string, apiCall: ApiCall); + /** + * Fetch an individual document from a collection by using its ID. + * + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html#retrieve-a-document + */ retrieve(options?: DocumentsRetrieveParameters): Promise; + /** + * Delete an individual document from a collection by using its ID. + * + * @example + * await client.collections("products").documents("1").delete() + * + * @see https://typesense.org/docs/latest/api/documents.html#delete-a-document + */ delete(options?: DeleteQuery): Promise; + /** + * Update an individual document by ID by merging the provided fields. + * + * @example + * await client.collections("products").documents("1").update({ in_stock: true }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-a-document + */ update(partialDocument: Partial, options?: DocumentWriteParameters): Promise; private endpointPath; } diff --git a/lib/Typesense/Document.js b/lib/Typesense/Document.js index fc982279..93277e2f 100644 --- a/lib/Typesense/Document.js +++ b/lib/Typesense/Document.js @@ -11,6 +11,14 @@ var Document = /** @class */ (function () { this.documentId = documentId; this.apiCall = apiCall; } + /** + * Fetch an individual document from a collection by using its ID. + * + * @example + * await client.collections("products").documents("1").retrieve() + * + * @see https://typesense.org/docs/latest/api/documents.html#retrieve-a-document + */ Document.prototype.retrieve = function (options) { return tslib_1.__awaiter(this, void 0, void 0, function () { var queryParams; @@ -20,6 +28,14 @@ var Document = /** @class */ (function () { }); }); }; + /** + * Delete an individual document from a collection by using its ID. + * + * @example + * await client.collections("products").documents("1").delete() + * + * @see https://typesense.org/docs/latest/api/documents.html#delete-a-document + */ Document.prototype.delete = function (options) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -27,6 +43,14 @@ var Document = /** @class */ (function () { }); }); }; + /** + * Update an individual document by ID by merging the provided fields. + * + * @example + * await client.collections("products").documents("1").update({ in_stock: true }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-a-document + */ Document.prototype.update = function (partialDocument_1) { return tslib_1.__awaiter(this, arguments, void 0, function (partialDocument, options) { if (options === void 0) { options = {}; } diff --git a/lib/Typesense/Document.js.map b/lib/Typesense/Document.js.map index faf37624..47cb3e2c 100644 --- a/lib/Typesense/Document.js.map +++ b/lib/Typesense/Document.js.map @@ -1 +1 @@ -{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../src/Typesense/Document.ts"],"names":[],"mappings":";;;;AACA,sEAAwC;AACxC,kEAIqB;AACrB,iCAAmD;AAOnD;IACE,kBACU,cAAsB,EACtB,UAAkB,EAClB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,2BAAQ,GAAd,UAAe,OAAqC;;;;gBAC5C,WAAW,GAAG,IAAA,gCAAwB,EAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAA;gBAE3D,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,EAAC;;;KAC9D;IAEK,yBAAM,GAAZ,UAAa,OAAqB;;;gBAChC,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,EAAC;;;KAC7D;IAEK,yBAAM,GAAZ;oEACE,eAA2B,EAC3B,OAAqC;YAArC,wBAAA,EAAA,YAAqC;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,EAAC;;;KAC7E;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAClJ,CAAC;IACH,eAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,4BAAQ"} \ No newline at end of file +{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../src/Typesense/Document.ts"],"names":[],"mappings":";;;;AACA,sEAAwC;AACxC,kEAIqB;AACrB,iCAAmD;AAOnD;IACE,kBACU,cAAsB,EACtB,UAAkB,EAClB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,2BAAQ,GAAd,UAAe,OAAqC;;;;gBAC5C,WAAW,GAAG,IAAA,gCAAwB,EAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CAAA;gBAE3D,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,EAAC;;;KAC9D;IAED;;;;;;;OAOG;IACG,yBAAM,GAAZ,UAAa,OAAqB;;;gBAChC,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,EAAC;;;KAC7D;IAED;;;;;;;OAOG;IACG,yBAAM,GAAZ;oEACE,eAA2B,EAC3B,OAAqC;YAArC,wBAAA,EAAA,YAAqC;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,EAAC;;;KAC7E;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAClJ,CAAC;IACH,eAAC;AAAD,CAAC,AAnDD,IAmDC;AAnDY,4BAAQ"} \ No newline at end of file diff --git a/lib/Typesense/Documents.d.ts b/lib/Typesense/Documents.d.ts index c7721ac6..e72a6a5e 100644 --- a/lib/Typesense/Documents.d.ts +++ b/lib/Typesense/Documents.d.ts @@ -163,32 +163,124 @@ export interface SearchOptions { } export default class Documents extends SearchOnlyDocuments implements WriteableDocuments { constructor(collectionName: string, apiCall: ApiCall, configuration: Configuration); + /** + * Index a single document. The document must conform to the schema of the collection. + * + * @example + * await client.collections("products").documents().create({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-a-single-document + */ create(document: T, options?: Omit): Promise; + /** + * Upsert a single document. Creates the document if it does not exist, otherwise updates it. + * + * @example + * await client.collections("products").documents().upsert({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#upsert + */ upsert(document: T, options?: Omit): Promise; + /** + * Update documents matching a `filter_by` condition, or update a single document with `action: "update"` semantics. + * + * @example + * await client.collections("products").documents().update({ in_stock: true }, { filter_by: "category:=hats" }) + * @example + * await client.collections("products").documents().update({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-documents-with-conditional-query + */ update(document: T, options: UpdateByFilterParameters): Promise; + /** + * Update a single document by merging the provided fields. + * + * @example + * await client.collections("products").documents().update({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#update-a-document + */ update(document: T, options: Omit): Promise; + /** + * Emplace documents — insert new documents or update existing ones, optionally by `filter_by`. + * + * @example + * await client.collections("products").documents().emplace({ id: "1", title: "Hat" }) + * @example + * await client.collections("products").documents().emplace({ in_stock: true }, { filter_by: "category:=hats" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents + */ emplace(document: T, options: UpdateByFilterParameters): Promise; + /** + * Emplace a single document — inserts if it does not exist, otherwise merges the provided fields. + * + * @example + * await client.collections("products").documents().emplace({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents + */ emplace(document: T, options: Omit): Promise; + /** + * Delete a bunch of documents that match a specific filter condition, or truncate the collection. + * + * @example + * await client.collections("products").documents().delete({ filter_by: "in_stock:=false" }) + * @example + * await client.collections("products").documents().delete({ truncate: true }) + * + * @see https://typesense.org/docs/latest/api/documents.html#delete-by-query + */ delete(query?: DeleteQuery): Promise>; + /** + * @deprecated Use `import` instead, which accepts both an array of documents or a JSONL string. + */ createMany(documents: T[], options?: DocumentImportParameters): Promise[]>; /** - * Import a set of documents in a batch. - * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects. - * @param options - * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results. + * Import documents into a collection. Accepts a JSONL string or an array of document objects. + * + * @example + * await client.collections("products").documents().import([{ id: "1", title: "Hat" }, { id: "2", title: "Shirt" }]) + * @example + * await client.collections("products").documents().import(jsonlString) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents */ import(documents: string, options?: DocumentImportParameters): Promise; + /** + * Import documents into a collection from an array of objects. Returns one result per document. + * + * @example + * await client.collections("products").documents().import([{ id: "1", title: "Hat" }]) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents + */ import(documents: T[], options?: DocumentImportParameters): Promise[]>; /** * Imports documents from a NodeJS readable stream of JSONL. + * + * @example + * await client.collections("products").documents().importStream(fs.createReadStream("products.jsonl")) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents */ importStream(readableStream: ReadStream, options?: DocumentImportParameters): Promise[]>; /** - * Returns a JSONL string for all the documents in this collection + * Export all documents in a collection as a JSONL string. + * + * @example + * await client.collections("products").documents().export() + * + * @see https://typesense.org/docs/latest/api/documents.html#export-documents */ export(options?: DocumentsExportParameters): Promise; /** - * Returns a NodeJS readable stream of JSONL for all the documents in this collection. + * Export all documents in a collection as a NodeJS readable stream of JSONL. + * + * @example + * await client.collections("products").documents().exportStream() + * + * @see https://typesense.org/docs/latest/api/documents.html#export-documents */ exportStream(options?: DocumentsExportParameters): Promise; } diff --git a/lib/Typesense/Documents.js b/lib/Typesense/Documents.js index cb6b15de..2bb3f6dd 100644 --- a/lib/Typesense/Documents.js +++ b/lib/Typesense/Documents.js @@ -11,6 +11,14 @@ var Documents = /** @class */ (function (_super) { function Documents(collectionName, apiCall, configuration) { return _super.call(this, collectionName, apiCall, configuration) || this; } + /** + * Index a single document. The document must conform to the schema of the collection. + * + * @example + * await client.collections("products").documents().create({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-a-single-document + */ Documents.prototype.create = function (document_1) { return tslib_1.__awaiter(this, arguments, void 0, function (document, options) { if (options === void 0) { options = {}; } @@ -21,6 +29,14 @@ var Documents = /** @class */ (function (_super) { }); }); }; + /** + * Upsert a single document. Creates the document if it does not exist, otherwise updates it. + * + * @example + * await client.collections("products").documents().upsert({ id: "1", title: "Hat" }) + * + * @see https://typesense.org/docs/latest/api/documents.html#upsert + */ Documents.prototype.upsert = function (document_1) { return tslib_1.__awaiter(this, arguments, void 0, function (document, options) { if (options === void 0) { options = {}; } @@ -63,6 +79,16 @@ var Documents = /** @class */ (function (_super) { }); }); }; + /** + * Delete a bunch of documents that match a specific filter condition, or truncate the collection. + * + * @example + * await client.collections("products").documents().delete({ filter_by: "in_stock:=false" }) + * @example + * await client.collections("products").documents().delete({ truncate: true }) + * + * @see https://typesense.org/docs/latest/api/documents.html#delete-by-query + */ Documents.prototype.delete = function () { return tslib_1.__awaiter(this, arguments, void 0, function (query) { if (query === void 0) { query = {}; } @@ -71,6 +97,9 @@ var Documents = /** @class */ (function (_super) { }); }); }; + /** + * @deprecated Use `import` instead, which accepts both an array of documents or a JSONL string. + */ Documents.prototype.createMany = function (documents_1) { return tslib_1.__awaiter(this, arguments, void 0, function (documents, options) { if (options === void 0) { options = {}; } @@ -149,6 +178,11 @@ var Documents = /** @class */ (function (_super) { }; /** * Imports documents from a NodeJS readable stream of JSONL. + * + * @example + * await client.collections("products").documents().importStream(fs.createReadStream("products.jsonl")) + * + * @see https://typesense.org/docs/latest/api/documents.html#index-multiple-documents */ Documents.prototype.importStream = function (readableStream_1) { return tslib_1.__awaiter(this, arguments, void 0, function (readableStream, options) { @@ -188,7 +222,12 @@ var Documents = /** @class */ (function (_super) { }); }; /** - * Returns a JSONL string for all the documents in this collection + * Export all documents in a collection as a JSONL string. + * + * @example + * await client.collections("products").documents().export() + * + * @see https://typesense.org/docs/latest/api/documents.html#export-documents */ Documents.prototype.export = function () { return tslib_1.__awaiter(this, arguments, void 0, function (options) { @@ -199,7 +238,12 @@ var Documents = /** @class */ (function (_super) { }); }; /** - * Returns a NodeJS readable stream of JSONL for all the documents in this collection. + * Export all documents in a collection as a NodeJS readable stream of JSONL. + * + * @example + * await client.collections("products").documents().exportStream() + * + * @see https://typesense.org/docs/latest/api/documents.html#export-documents */ Documents.prototype.exportStream = function () { return tslib_1.__awaiter(this, arguments, void 0, function (options) { diff --git a/lib/Typesense/Documents.js.map b/lib/Typesense/Documents.js.map index 9a6c491a..693e3ce3 100644 --- a/lib/Typesense/Documents.js.map +++ b/lib/Typesense/Documents.js.map @@ -1 +1 @@ -{"version":3,"file":"Documents.js","sourceRoot":"","sources":["../../src/Typesense/Documents.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Documents.js","sourceRoot":"","sources":["../../src/Typesense/Documents.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/Health.d.ts b/lib/Typesense/Health.d.ts index 8bf91aa8..1786e00d 100644 --- a/lib/Typesense/Health.d.ts +++ b/lib/Typesense/Health.d.ts @@ -5,5 +5,13 @@ export interface HealthResponse { export default class Health { private apiCall; constructor(apiCall: ApiCall); + /** + * Checks if Typesense server is ready to accept requests. + * + * @example + * await client.health.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#health + */ retrieve(): Promise; } diff --git a/lib/Typesense/Health.js b/lib/Typesense/Health.js index 0c28608a..3da8b1ec 100644 --- a/lib/Typesense/Health.js +++ b/lib/Typesense/Health.js @@ -6,6 +6,14 @@ var Health = /** @class */ (function () { function Health(apiCall) { this.apiCall = apiCall; } + /** + * Checks if Typesense server is ready to accept requests. + * + * @example + * await client.health.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html#health + */ Health.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Health.js.map b/lib/Typesense/Health.js.map index a424ca10..809296f2 100644 --- a/lib/Typesense/Health.js.map +++ b/lib/Typesense/Health.js.map @@ -1 +1 @@ -{"version":3,"file":"Health.js","sourceRoot":"","sources":["../../src/Typesense/Health.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,SAAS,CAAC;AAM/B;IACE,gBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,yBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,YAAY,CAAC,EAAC;;;KACvD;IACH,aAAC;AAAD,CAAC,AAND,IAMC"} \ No newline at end of file +{"version":3,"file":"Health.js","sourceRoot":"","sources":["../../src/Typesense/Health.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,SAAS,CAAC;AAM/B;IACE,gBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,yBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,YAAY,CAAC,EAAC;;;KACvD;IACH,aAAC;AAAD,CAAC,AAdD,IAcC"} \ No newline at end of file diff --git a/lib/Typesense/Key.d.ts b/lib/Typesense/Key.d.ts index c6b3acf2..72d26344 100644 --- a/lib/Typesense/Key.d.ts +++ b/lib/Typesense/Key.d.ts @@ -26,7 +26,23 @@ export default class Key { private id; private apiCall; constructor(id: number, apiCall: ApiCall); + /** + * Retrieve (metadata about) a key. Only the key prefix is returned when you retrieve a key. Due to security reasons, only the create endpoint returns the full API key. + * + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#retrieve-an-api-key + */ retrieve(): Promise; + /** + * Delete an API key given its ID. + * + * @example + * await client.keys(1).delete() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#delete-api-key + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/Key.js b/lib/Typesense/Key.js index 27538455..9463f61b 100644 --- a/lib/Typesense/Key.js +++ b/lib/Typesense/Key.js @@ -7,6 +7,14 @@ var Key = /** @class */ (function () { this.id = id; this.apiCall = apiCall; } + /** + * Retrieve (metadata about) a key. Only the key prefix is returned when you retrieve a key. Due to security reasons, only the create endpoint returns the full API key. + * + * @example + * await client.keys(1).retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#retrieve-an-api-key + */ Key.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var Key = /** @class */ (function () { }); }); }; + /** + * Delete an API key given its ID. + * + * @example + * await client.keys(1).delete() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#delete-api-key + */ Key.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Key.js.map b/lib/Typesense/Key.js.map index 775dbc09..3aa03024 100644 --- a/lib/Typesense/Key.js.map +++ b/lib/Typesense/Key.js.map @@ -1 +1 @@ -{"version":3,"file":"Key.js","sourceRoot":"","sources":["../../src/Typesense/Key.ts"],"names":[],"mappings":";;;AACA,wDAA0B;AAsD1B;IACE,aACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,sBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAY,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACzD;IAEK,oBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAClE;IAEO,0BAAY,GAApB;QACE,OAAO,UAAG,cAAI,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC/D,CAAC;IACH,UAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"Key.js","sourceRoot":"","sources":["../../src/Typesense/Key.ts"],"names":[],"mappings":";;;AACA,wDAA0B;AAsD1B;IACE,aACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,sBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAY,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACzD;IAED;;;;;;;OAOG;IACG,oBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAClE;IAEO,0BAAY,GAApB;QACE,OAAO,UAAG,cAAI,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC/D,CAAC;IACH,UAAC;AAAD,CAAC,AAjCD,IAiCC"} \ No newline at end of file diff --git a/lib/Typesense/Keys.d.ts b/lib/Typesense/Keys.d.ts index 4b24a490..dca9d17c 100644 --- a/lib/Typesense/Keys.d.ts +++ b/lib/Typesense/Keys.d.ts @@ -12,8 +12,32 @@ export interface GenerateScopedSearchKeyParams; + /** + * Retrieve (metadata about) all keys. + * + * @example + * await client.keys().retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#list-all-keys + */ retrieve(): Promise; + /** + * Generate a scoped search-only API key with embedded parameters such as `filter_by` or `expires_at`. + * + * @example + * client.keys().generateScopedSearchKey("search-only-key", { filter_by: "company_id:124", expires_at: 1700000000 }) + * + * @see https://typesense.org/docs/latest/api/api-keys.html#generate-scoped-search-key + */ generateScopedSearchKey(searchKey: string, parameters: GenerateScopedSearchKeyParams): string; static get RESOURCEPATH(): string; } diff --git a/lib/Typesense/Keys.js b/lib/Typesense/Keys.js index 42f05737..dd70793e 100644 --- a/lib/Typesense/Keys.js +++ b/lib/Typesense/Keys.js @@ -9,6 +9,14 @@ var Keys = /** @class */ (function () { this.apiCall = apiCall; this.apiCall = apiCall; } + /** + * Create an API Key with fine-grain access control. You can restrict access on both a per-collection and per-action level. The generated key is returned only during creation. You want to store this key carefully in a secure place. + * + * @example + * await client.keys().create({ description: "Search-only key", actions: ["documents:search"], collections: ["*"] }) + * + * @see https://typesense.org/docs/latest/api/api-keys.html#create-an-api-key + */ Keys.prototype.create = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -16,6 +24,14 @@ var Keys = /** @class */ (function () { }); }); }; + /** + * Retrieve (metadata about) all keys. + * + * @example + * await client.keys().retrieve() + * + * @see https://typesense.org/docs/latest/api/api-keys.html#list-all-keys + */ Keys.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -23,6 +39,14 @@ var Keys = /** @class */ (function () { }); }); }; + /** + * Generate a scoped search-only API key with embedded parameters such as `filter_by` or `expires_at`. + * + * @example + * client.keys().generateScopedSearchKey("search-only-key", { filter_by: "company_id:124", expires_at: 1700000000 }) + * + * @see https://typesense.org/docs/latest/api/api-keys.html#generate-scoped-search-key + */ Keys.prototype.generateScopedSearchKey = function (searchKey, parameters) { // Note: only a key generated with the `documents:search` action will be // accepted by the server, when used with the search endpoint. diff --git a/lib/Typesense/Keys.js.map b/lib/Typesense/Keys.js.map index 39438bf6..7d9843f9 100644 --- a/lib/Typesense/Keys.js.map +++ b/lib/Typesense/Keys.js.map @@ -1 +1 @@ -{"version":3,"file":"Keys.js","sourceRoot":"","sources":["../../src/Typesense/Keys.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAIpC,iCAAmD;AAEnD,IAAM,YAAY,GAAG,OAAO,CAAC;AAe7B;IACE,cAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,qBAAM,GAAZ,UAAa,MAAuB;;;gBAClC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAY,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAC;;;KAChE;IAEK,uBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,YAAY,CAAC,EAAC;;;KAC3D;IAED,sCAAuB,GAAvB,UACE,SAAiB,EACjB,UAAmD;QAEnD,wEAAwE;QACxE,8DAA8D;QAC9D,IAAM,gBAAgB,GAAG,IAAA,gCAAwB,EAI/C,UAAU,CAAC,CAAC;QACd,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,IAAA,mBAAU,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpE,CAAC;QACF,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,IAAM,YAAY,GAAG,UAAG,MAAM,SAAG,SAAS,SAAG,UAAU,CAAE,CAAC;QAE1D,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,sBAAW,oBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,WAAC;AAAD,CAAC,AArCD,IAqCC"} \ No newline at end of file +{"version":3,"file":"Keys.js","sourceRoot":"","sources":["../../src/Typesense/Keys.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAIpC,iCAAmD;AAEnD,IAAM,YAAY,GAAG,OAAO,CAAC;AAe7B;IACE,cAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACG,qBAAM,GAAZ,UAAa,MAAuB;;;gBAClC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAY,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAC;;;KAChE;IAED;;;;;;;OAOG;IACG,uBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,YAAY,CAAC,EAAC;;;KAC3D;IAED;;;;;;;OAOG;IACH,sCAAuB,GAAvB,UACE,SAAiB,EACjB,UAAmD;QAEnD,wEAAwE;QACxE,8DAA8D;QAC9D,IAAM,gBAAgB,GAAG,IAAA,gCAAwB,EAI/C,UAAU,CAAC,CAAC;QACd,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,IAAA,mBAAU,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpE,CAAC;QACF,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,IAAM,YAAY,GAAG,UAAG,MAAM,SAAG,SAAS,SAAG,UAAU,CAAE,CAAC;QAE1D,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,sBAAW,oBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,WAAC;AAAD,CAAC,AA7DD,IA6DC"} \ No newline at end of file diff --git a/lib/Typesense/Metrics.d.ts b/lib/Typesense/Metrics.d.ts index e2aa4210..edf61c5b 100644 --- a/lib/Typesense/Metrics.d.ts +++ b/lib/Typesense/Metrics.d.ts @@ -21,5 +21,13 @@ export interface MetricsResponse { export default class Metrics { private apiCall; constructor(apiCall: ApiCall); + /** + * Get current RAM, CPU, Disk & Network usage metrics. + * + * @example + * await client.metrics.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ retrieve(): Promise; } diff --git a/lib/Typesense/Metrics.js b/lib/Typesense/Metrics.js index 9c564425..e735bce0 100644 --- a/lib/Typesense/Metrics.js +++ b/lib/Typesense/Metrics.js @@ -6,6 +6,14 @@ var Metrics = /** @class */ (function () { function Metrics(apiCall) { this.apiCall = apiCall; } + /** + * Get current RAM, CPU, Disk & Network usage metrics. + * + * @example + * await client.metrics.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ Metrics.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Metrics.js.map b/lib/Typesense/Metrics.js.map index 55e1f29e..8a8a92ad 100644 --- a/lib/Typesense/Metrics.js.map +++ b/lib/Typesense/Metrics.js.map @@ -1 +1 @@ -{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/Typesense/Metrics.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,eAAe,CAAC;AAsBrC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;;;KACvC;IACH,cAAC;AAAD,CAAC,AAND,IAMC"} \ No newline at end of file +{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/Typesense/Metrics.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,eAAe,CAAC;AAsBrC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;;;KACvC;IACH,cAAC;AAAD,CAAC,AAdD,IAcC"} \ No newline at end of file diff --git a/lib/Typesense/MultiSearch.d.ts b/lib/Typesense/MultiSearch.d.ts index 215203f4..0fbb0b33 100644 --- a/lib/Typesense/MultiSearch.d.ts +++ b/lib/Typesense/MultiSearch.d.ts @@ -11,7 +11,25 @@ export default class MultiSearch { readonly logger: Logger; constructor(apiCall: ApiCall, configuration: Configuration, useTextContentType?: boolean); clearCache(): void; + /** + * Send multiple search requests in a single HTTP request. Pass `union: true` to merge results, or omit it to receive a `results` array. + * + * @example + * await client.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * @example + * await client.multiSearch.perform({ union: true, searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ perform(searchRequests: MultiSearchRequestsWithUnionSchema, commonParams?: MultiSearchUnionParameters, options?: SearchOptions): Promise>; + /** + * Send multiple search requests in a single HTTP request and receive a `results` array (one entry per search). + * + * @example + * await client.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ perform(searchRequests: MultiSearchRequestsWithoutUnionSchema, commonParams?: MultiSearchResultsParameters, options?: SearchOptions): Promise<{ results: { [Index in keyof T]: SearchResponse; diff --git a/lib/Typesense/MultiSearch.js.map b/lib/Typesense/MultiSearch.js.map index 6b80bd35..23c1d7c9 100644 --- a/lib/Typesense/MultiSearch.js.map +++ b/lib/Typesense/MultiSearch.js.map @@ -1 +1 @@ -{"version":3,"file":"MultiSearch.js","sourceRoot":"","sources":["../../src/Typesense/MultiSearch.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MultiSearch.js","sourceRoot":"","sources":["../../src/Typesense/MultiSearch.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/NLSearchModel.d.ts b/lib/Typesense/NLSearchModel.d.ts index aed902db..05d2399d 100644 --- a/lib/Typesense/NLSearchModel.d.ts +++ b/lib/Typesense/NLSearchModel.d.ts @@ -8,8 +8,32 @@ export default class NLSearchModel { private id; private apiCall; constructor(id: string, apiCall: ApiCall); + /** + * Retrieve a specific NL search model by its ID. + * + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ retrieve(): Promise; + /** + * Update an existing NL search model. + * + * @example + * await client.nlSearchModels("model-1").update({ model_name: "openai/gpt-4" }) + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ update(schema: NLSearchModelUpdateSchema): Promise; + /** + * Delete a specific NL search model by its ID. + * + * @example + * await client.nlSearchModels("model-1").delete() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/NLSearchModel.js b/lib/Typesense/NLSearchModel.js index 9d8f0b77..2a6aa18d 100644 --- a/lib/Typesense/NLSearchModel.js +++ b/lib/Typesense/NLSearchModel.js @@ -7,6 +7,14 @@ var NLSearchModel = /** @class */ (function () { this.id = id; this.apiCall = apiCall; } + /** + * Retrieve a specific NL search model by its ID. + * + * @example + * await client.nlSearchModels("model-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ NLSearchModel.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var NLSearchModel = /** @class */ (function () { }); }); }; + /** + * Update an existing NL search model. + * + * @example + * await client.nlSearchModels("model-1").update({ model_name: "openai/gpt-4" }) + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ NLSearchModel.prototype.update = function (schema) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -21,6 +37,14 @@ var NLSearchModel = /** @class */ (function () { }); }); }; + /** + * Delete a specific NL search model by its ID. + * + * @example + * await client.nlSearchModels("model-1").delete() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ NLSearchModel.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/NLSearchModel.js.map b/lib/Typesense/NLSearchModel.js.map index 21968190..12d905c2 100644 --- a/lib/Typesense/NLSearchModel.js.map +++ b/lib/Typesense/NLSearchModel.js.map @@ -1 +1 @@ -{"version":3,"file":"NLSearchModel.js","sourceRoot":"","sources":["../../src/Typesense/NLSearchModel.ts"],"names":[],"mappings":";;;AACA,4EAA8C;AAS9C;IACE,uBACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,gCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACnE;IAEK,8BAAM,GAAZ,UACE,MAAiC;;;gBAEjC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KAC3E;IAEK,8BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC5E;IAEO,oCAAY,GAApB;QACE,OAAO,UAAG,wBAAc,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IACzE,CAAC;IACH,oBAAC;AAAD,CAAC,AAvBD,IAuBC"} \ No newline at end of file +{"version":3,"file":"NLSearchModel.js","sourceRoot":"","sources":["../../src/Typesense/NLSearchModel.ts"],"names":[],"mappings":";;;AACA,4EAA8C;AAS9C;IACE,uBACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,gCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACnE;IAED;;;;;;;OAOG;IACG,8BAAM,GAAZ,UACE,MAAiC;;;gBAEjC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KAC3E;IAED;;;;;;;OAOG;IACG,8BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC5E;IAEO,oCAAY,GAApB;QACE,OAAO,UAAG,wBAAc,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IACzE,CAAC;IACH,oBAAC;AAAD,CAAC,AA/CD,IA+CC"} \ No newline at end of file diff --git a/lib/Typesense/NLSearchModels.d.ts b/lib/Typesense/NLSearchModels.d.ts index 7c59ffff..be73d3fd 100644 --- a/lib/Typesense/NLSearchModels.d.ts +++ b/lib/Typesense/NLSearchModels.d.ts @@ -29,7 +29,23 @@ export type NLSearchModelsRetrieveSchema = NLSearchModelSchema[]; export default class NLSearchModels { private apiCall; constructor(apiCall: ApiCall); + /** + * Create a new NL search model. + * + * @example + * await client.nlSearchModels().create({ model_name: "openai/gpt-4", api_key: "..." }) + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ create(schema: NLSearchModelCreateSchema): Promise; + /** + * Retrieve all NL search models. + * + * @example + * await client.nlSearchModels().retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ retrieve(): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/NLSearchModels.js b/lib/Typesense/NLSearchModels.js index 0c337f43..28f77c15 100644 --- a/lib/Typesense/NLSearchModels.js +++ b/lib/Typesense/NLSearchModels.js @@ -6,6 +6,14 @@ var NLSearchModels = /** @class */ (function () { function NLSearchModels(apiCall) { this.apiCall = apiCall; } + /** + * Create a new NL search model. + * + * @example + * await client.nlSearchModels().create({ model_name: "openai/gpt-4", api_key: "..." }) + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ NLSearchModels.prototype.create = function (schema) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -13,6 +21,14 @@ var NLSearchModels = /** @class */ (function () { }); }); }; + /** + * Retrieve all NL search models. + * + * @example + * await client.nlSearchModels().retrieve() + * + * @see https://typesense.org/docs/latest/api/natural-language-search.html + */ NLSearchModels.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/NLSearchModels.js.map b/lib/Typesense/NLSearchModels.js.map index cbe051cc..4678af45 100644 --- a/lib/Typesense/NLSearchModels.js.map +++ b/lib/Typesense/NLSearchModels.js.map @@ -1 +1 @@ -{"version":3,"file":"NLSearchModels.js","sourceRoot":"","sources":["../../src/Typesense/NLSearchModels.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,mBAAmB,CAAC;AAqCzC;IACE,wBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,+BAAM,GAAZ,UACE,MAAiC;;;gBAEjC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAsB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KAC5E;IAEK,iCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA+B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC5E;IAEO,qCAAY,GAApB;QACE,OAAO,cAAc,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,sBAAW,8BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,qBAAC;AAAD,CAAC,AApBD,IAoBC"} \ No newline at end of file +{"version":3,"file":"NLSearchModels.js","sourceRoot":"","sources":["../../src/Typesense/NLSearchModels.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,mBAAmB,CAAC;AAqCzC;IACE,wBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,+BAAM,GAAZ,UACE,MAAiC;;;gBAEjC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAsB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KAC5E;IAED;;;;;;;OAOG;IACG,iCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA+B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC5E;IAEO,qCAAY,GAApB;QACE,OAAO,cAAc,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,sBAAW,8BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,qBAAC;AAAD,CAAC,AApCD,IAoCC"} \ No newline at end of file diff --git a/lib/Typesense/Operations.d.ts b/lib/Typesense/Operations.d.ts index 24ba2cfb..de7818ec 100644 --- a/lib/Typesense/Operations.d.ts +++ b/lib/Typesense/Operations.d.ts @@ -7,6 +7,22 @@ export interface SchemaChangeStatus { export default class Operations { private apiCall; constructor(apiCall: ApiCall); + /** + * Perform a cluster operation: snapshot, vote, cache/clear, db/compact, or a custom path. + * + * @example + * await client.operations.perform("snapshot", { snapshot_path: "/tmp/snap" }) + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ perform(operationName: "vote" | "snapshot" | "cache/clear" | (string & {}), queryParameters?: Record): Promise; + /** + * Get the status of in-progress schema change operations + * + * @example + * await client.operations.getSchemaChanges() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ getSchemaChanges(): Promise; } diff --git a/lib/Typesense/Operations.js b/lib/Typesense/Operations.js index b39d32cd..001b1a18 100644 --- a/lib/Typesense/Operations.js +++ b/lib/Typesense/Operations.js @@ -6,6 +6,14 @@ var Operations = /** @class */ (function () { function Operations(apiCall) { this.apiCall = apiCall; } + /** + * Perform a cluster operation: snapshot, vote, cache/clear, db/compact, or a custom path. + * + * @example + * await client.operations.perform("snapshot", { snapshot_path: "/tmp/snap" }) + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ Operations.prototype.perform = function (operationName_1) { return tslib_1.__awaiter(this, arguments, void 0, function (operationName, queryParameters) { if (queryParameters === void 0) { queryParameters = {}; } @@ -14,6 +22,14 @@ var Operations = /** @class */ (function () { }); }); }; + /** + * Get the status of in-progress schema change operations + * + * @example + * await client.operations.getSchemaChanges() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ Operations.prototype.getSchemaChanges = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Operations.js.map b/lib/Typesense/Operations.js.map index cda4781c..4109a95a 100644 --- a/lib/Typesense/Operations.js.map +++ b/lib/Typesense/Operations.js.map @@ -1 +1 @@ -{"version":3,"file":"Operations.js","sourceRoot":"","sources":["../../src/Typesense/Operations.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,aAAa,CAAC;AAQnC;IACE,oBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,4BAAO,GAAb;oEACE,aAKiB,EACjB,eAAyC;YAAzC,gCAAA,EAAA,oBAAyC;;gBAEzC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,UAAG,YAAY,cAAI,aAAa,CAAE,EAClC,EAAE,EACF,eAAe,CAChB,EAAC;;;KACH;IAEK,qCAAgB,GAAtB;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,UAAG,YAAY,oBAAiB,CACjC,EAAC;;;KACH;IACH,iBAAC;AAAD,CAAC,AAxBD,IAwBC"} \ No newline at end of file +{"version":3,"file":"Operations.js","sourceRoot":"","sources":["../../src/Typesense/Operations.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,aAAa,CAAC;AAQnC;IACE,oBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,4BAAO,GAAb;oEACE,aAKiB,EACjB,eAAyC;YAAzC,gCAAA,EAAA,oBAAyC;;gBAEzC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,UAAG,YAAY,cAAI,aAAa,CAAE,EAClC,EAAE,EACF,eAAe,CAChB,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,qCAAgB,GAAtB;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,UAAG,YAAY,oBAAiB,CACjC,EAAC;;;KACH;IACH,iBAAC;AAAD,CAAC,AAxCD,IAwCC"} \ No newline at end of file diff --git a/lib/Typesense/Override.d.ts b/lib/Typesense/Override.d.ts index ee1d99c7..bf0ca780 100644 --- a/lib/Typesense/Override.d.ts +++ b/lib/Typesense/Override.d.ts @@ -11,7 +11,23 @@ export default class Override { private overrideId; private apiCall; constructor(collectionName: string, overrideId: string, apiCall: ApiCall); + /** + * Retrieve an override (curation rule) by ID on this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ retrieve(): Promise; + /** + * Delete an override (curation rule) by ID on this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/Override.js b/lib/Typesense/Override.js index a2e07e2f..fcfc155b 100644 --- a/lib/Typesense/Override.js +++ b/lib/Typesense/Override.js @@ -9,6 +9,14 @@ var Override = /** @class */ (function () { this.overrideId = overrideId; this.apiCall = apiCall; } + /** + * Retrieve an override (curation rule) by ID on this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ Override.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -16,6 +24,14 @@ var Override = /** @class */ (function () { }); }); }; + /** + * Delete an override (curation rule) by ID on this collection. + * + * @example + * await client.collections("products").overrides("promote-hat").delete() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ Override.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Override.js.map b/lib/Typesense/Override.js.map index 43ae48f8..0406734f 100644 --- a/lib/Typesense/Override.js.map +++ b/lib/Typesense/Override.js.map @@ -1 +1 @@ -{"version":3,"file":"Override.js","sourceRoot":"","sources":["../../src/Typesense/Override.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AACxC,kEAA8D;AAU9D;IACE,kBACU,cAAsB,EACtB,UAAkB,EAClB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9D;IAEK,yBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAClJ,CAAC;IACH,eAAC;AAAD,CAAC,AAlBD,IAkBC"} \ No newline at end of file +{"version":3,"file":"Override.js","sourceRoot":"","sources":["../../src/Typesense/Override.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AACxC,kEAA8D;AAU9D;IACE,kBACU,cAAsB,EACtB,UAAkB,EAClB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9D;IAED;;;;;;;OAOG;IACG,yBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAClJ,CAAC;IACH,eAAC;AAAD,CAAC,AAlCD,IAkCC"} \ No newline at end of file diff --git a/lib/Typesense/Overrides.d.ts b/lib/Typesense/Overrides.d.ts index 1c36b336..c39d0092 100644 --- a/lib/Typesense/Overrides.d.ts +++ b/lib/Typesense/Overrides.d.ts @@ -36,7 +36,23 @@ export default class Overrides { private collectionName; private apiCall; constructor(collectionName: string, apiCall: ApiCall); + /** + * Create or update an override (curation rule) on this collection. + * + * @example + * await client.collections("products").overrides().upsert("promote-hat", { rule: { query: "hat", match: "exact" }, includes: [] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ upsert(overrideId: string, params: OverrideCreateSchema): Promise; + /** + * Retrieve all overrides (curation rules) on this collection. + * + * @example + * await client.collections("products").overrides().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ retrieve(): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/Overrides.js b/lib/Typesense/Overrides.js index 503c47c1..89cf2b32 100644 --- a/lib/Typesense/Overrides.js +++ b/lib/Typesense/Overrides.js @@ -8,6 +8,14 @@ var Overrides = /** @class */ (function () { this.collectionName = collectionName; this.apiCall = apiCall; } + /** + * Create or update an override (curation rule) on this collection. + * + * @example + * await client.collections("products").overrides().upsert("promote-hat", { rule: { query: "hat", match: "exact" }, includes: [] }) + * + * @see https://typesense.org/docs/latest/api/curation.html + */ Overrides.prototype.upsert = function (overrideId, params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -15,6 +23,14 @@ var Overrides = /** @class */ (function () { }); }); }; + /** + * Retrieve all overrides (curation rules) on this collection. + * + * @example + * await client.collections("products").overrides().retrieve() + * + * @see https://typesense.org/docs/latest/api/curation.html + */ Overrides.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Overrides.js.map b/lib/Typesense/Overrides.js.map index a7ac0700..a5c0ee29 100644 --- a/lib/Typesense/Overrides.js.map +++ b/lib/Typesense/Overrides.js.map @@ -1 +1 @@ -{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../src/Typesense/Overrides.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAGxC,IAAM,YAAY,GAAG,YAAY,CAAC;AAuClC;IACE,mBACU,cAAsB,EACtB,OAAgB;QADhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,0BAAM,GAAZ,UACE,UAAkB,EAClB,MAA4B;;;gBAE5B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAC7B,MAAM,CACP,EAAC;;;KACH;IAEK,4BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,gCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,IAAI,CAAC,cAAc,SACvD,SAAS,CAAC,YAAY,SACrB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC1E,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AA7BD,IA6BC"} \ No newline at end of file +{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../src/Typesense/Overrides.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAGxC,IAAM,YAAY,GAAG,YAAY,CAAC;AAuClC;IACE,mBACU,cAAsB,EACtB,OAAgB;QADhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,0BAAM,GAAZ,UACE,UAAkB,EAClB,MAA4B;;;gBAE5B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAC7B,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,4BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,gCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,IAAI,CAAC,cAAc,SACvD,SAAS,CAAC,YAAY,SACrB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC1E,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AA7CD,IA6CC"} \ No newline at end of file diff --git a/lib/Typesense/Preset.d.ts b/lib/Typesense/Preset.d.ts index 5f401952..3d88184a 100644 --- a/lib/Typesense/Preset.d.ts +++ b/lib/Typesense/Preset.d.ts @@ -11,7 +11,23 @@ export default class Preset { private presetId; private apiCall; constructor(presetId: string, apiCall: ApiCall); + /** + * Retrieve the details of a preset, given it's name. + * + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ retrieve(): Promise>; + /** + * Permanently deletes a preset, given it's name. + * + * @example + * await client.presets("listing_view").delete() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/Preset.js b/lib/Typesense/Preset.js index 1f9f7d84..86f7de67 100644 --- a/lib/Typesense/Preset.js +++ b/lib/Typesense/Preset.js @@ -7,6 +7,14 @@ var Preset = /** @class */ (function () { this.presetId = presetId; this.apiCall = apiCall; } + /** + * Retrieve the details of a preset, given it's name. + * + * @example + * await client.presets("listing_view").retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ Preset.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var Preset = /** @class */ (function () { }); }); }; + /** + * Permanently deletes a preset, given it's name. + * + * @example + * await client.presets("listing_view").delete() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ Preset.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Preset.js.map b/lib/Typesense/Preset.js.map index 6491234d..b283a325 100644 --- a/lib/Typesense/Preset.js.map +++ b/lib/Typesense/Preset.js.map @@ -1 +1 @@ -{"version":3,"file":"Preset.js","sourceRoot":"","sources":["../../src/Typesense/Preset.ts"],"names":[],"mappings":";;;AAEA,8DAAwD;AAWxD;IACE,gBACU,QAAgB,EAChB,OAAgB;QADhB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,yBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC/D;IAEK,uBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACrE;IAEO,6BAAY,GAApB;QACE,OAAO,UAAG,iBAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAE,CAAC;IACxE,CAAC;IACH,aAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"Preset.js","sourceRoot":"","sources":["../../src/Typesense/Preset.ts"],"names":[],"mappings":";;;AAEA,8DAAwD;AAWxD;IACE,gBACU,QAAgB,EAChB,OAAgB;QADhB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,yBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC/D;IAED;;;;;;;OAOG;IACG,uBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACrE;IAEO,6BAAY,GAApB;QACE,OAAO,UAAG,iBAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAE,CAAC;IACxE,CAAC;IACH,aAAC;AAAD,CAAC,AAjCD,IAiCC"} \ No newline at end of file diff --git a/lib/Typesense/Presets.d.ts b/lib/Typesense/Presets.d.ts index c32622d4..8a2bef62 100644 --- a/lib/Typesense/Presets.d.ts +++ b/lib/Typesense/Presets.d.ts @@ -11,7 +11,23 @@ export interface PresetsRetrieveSchema { export default class Presets { private apiCall; constructor(apiCall: ApiCall); + /** + * Create or update an existing preset. + * + * @example + * await client.presets().upsert("listing_view", { value: { q: "*" } }) + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ upsert(presetId: string, params: PresetCreateSchema): Promise>; + /** + * Retrieve the details of all presets + * + * @example + * await client.presets().retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ retrieve(): Promise>; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/Presets.js b/lib/Typesense/Presets.js index c780d6e0..99c3e93d 100644 --- a/lib/Typesense/Presets.js +++ b/lib/Typesense/Presets.js @@ -7,6 +7,14 @@ var Presets = /** @class */ (function () { function Presets(apiCall) { this.apiCall = apiCall; } + /** + * Create or update an existing preset. + * + * @example + * await client.presets().upsert("listing_view", { value: { q: "*" } }) + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ Presets.prototype.upsert = function (presetId, params) { return tslib_1.__awaiter(this, void 0, void 0, function () { var normalizedParams_1, normalizedParams; @@ -26,6 +34,14 @@ var Presets = /** @class */ (function () { }); }); }; + /** + * Retrieve the details of all presets + * + * @example + * await client.presets().retrieve() + * + * @see https://typesense.org/docs/latest/api/search.html#presets + */ Presets.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Presets.js.map b/lib/Typesense/Presets.js.map index 72fd9349..0ff81303 100644 --- a/lib/Typesense/Presets.js.map +++ b/lib/Typesense/Presets.js.map @@ -1 +1 @@ -{"version":3,"file":"Presets.js","sourceRoot":"","sources":["../../src/Typesense/Presets.ts"],"names":[],"mappings":";;;AAIA,iCAAmD;AAEnD,IAAM,YAAY,GAAG,UAAU,CAAC;AAahC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,wBAAM,GAAZ,UACE,QAAgB,EAChB,MAAoC;;;;gBAEpC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7D,qBAAmB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,MAAM;wBACxD,OAAA,IAAA,gCAAwB,EAAmC,MAAM,CAAC;oBAAlE,CAAkE,CACnE,CAAC;oBAEF,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;4BACpE,KAAK,EAAE,EAAE,QAAQ,EAAE,kBAAgB,EAAE;yBACtC,CAAC,EAAC;gBACL,CAAC;gBACK,gBAAgB,GAAG,IAAA,gCAAwB,EAI/C,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEhB,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;wBACpE,KAAK,EAAE,gBAAgB;qBACxB,CAAC,EAAC;;;KACJ;IAEK,0BAAQ,GAAd;;;gBAGE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEO,8BAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,OAAO,CAAC,YAAY,SAC5B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,uBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,cAAC;AAAD,CAAC,AA1CD,IA0CC"} \ No newline at end of file +{"version":3,"file":"Presets.js","sourceRoot":"","sources":["../../src/Typesense/Presets.ts"],"names":[],"mappings":";;;AAIA,iCAAmD;AAEnD,IAAM,YAAY,GAAG,UAAU,CAAC;AAahC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,wBAAM,GAAZ,UACE,QAAgB,EAChB,MAAoC;;;;gBAEpC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7D,qBAAmB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,MAAM;wBACxD,OAAA,IAAA,gCAAwB,EAAmC,MAAM,CAAC;oBAAlE,CAAkE,CACnE,CAAC;oBAEF,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;4BACpE,KAAK,EAAE,EAAE,QAAQ,EAAE,kBAAgB,EAAE;yBACtC,CAAC,EAAC;gBACL,CAAC;gBACK,gBAAgB,GAAG,IAAA,gCAAwB,EAI/C,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEhB,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;wBACpE,KAAK,EAAE,gBAAgB;qBACxB,CAAC,EAAC;;;KACJ;IAED;;;;;;;OAOG;IACG,0BAAQ,GAAd;;;gBAGE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEO,8BAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,OAAO,CAAC,YAAY,SAC5B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,uBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,cAAC;AAAD,CAAC,AA1DD,IA0DC"} \ No newline at end of file diff --git a/lib/Typesense/SearchClient.d.ts b/lib/Typesense/SearchClient.d.ts index 88a1e4c7..38971640 100644 --- a/lib/Typesense/SearchClient.d.ts +++ b/lib/Typesense/SearchClient.d.ts @@ -2,12 +2,33 @@ import { ConfigurationOptions } from "./Configuration"; import MultiSearch from "./MultiSearch"; import { DocumentSchema } from "./Documents"; import { SearchOnlyCollection } from "./SearchOnlyCollection"; +/** + * Search-only Typesense client. Restricted to search operations and intended for use with search-only API keys in browser environments. + * + * @see https://typesense.org/docs/latest/api/ + */ export default class SearchClient { + /** + * Send multiple search requests in a single HTTP request. + * + * @example + * await searchClient.multiSearch.perform({ searches: [{ collection: "products", q: "*" }] }) + * + * @see https://typesense.org/docs/latest/api/documents.html#federated-multi-search + */ readonly multiSearch: MultiSearch; private readonly configuration; private readonly apiCall; private readonly individualCollections; constructor(options: ConfigurationOptions); clearCache(): void; + /** + * Access a search-only collection by name. + * + * @example + * await searchClient.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ collections(collectionName: string): SearchOnlyCollection; } diff --git a/lib/Typesense/SearchClient.js b/lib/Typesense/SearchClient.js index d8de0e03..8cd1636a 100644 --- a/lib/Typesense/SearchClient.js +++ b/lib/Typesense/SearchClient.js @@ -5,6 +5,11 @@ var Configuration_1 = tslib_1.__importDefault(require("./Configuration")); var ApiCall_1 = tslib_1.__importDefault(require("./ApiCall")); var MultiSearch_1 = tslib_1.__importDefault(require("./MultiSearch")); var SearchOnlyCollection_1 = require("./SearchOnlyCollection"); +/** + * Search-only Typesense client. Restricted to search operations and intended for use with search-only API keys in browser environments. + * + * @see https://typesense.org/docs/latest/api/ + */ var SearchClient = /** @class */ (function () { function SearchClient(options) { var _a; @@ -27,6 +32,14 @@ var SearchClient = /** @class */ (function () { collection.documents().clearCache(); }); }; + /** + * Access a search-only collection by name. + * + * @example + * await searchClient.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ SearchClient.prototype.collections = function (collectionName) { if (!collectionName) { throw new Error("Typesense.SearchClient only supports search operations, so the collectionName that needs to " + diff --git a/lib/Typesense/SearchClient.js.map b/lib/Typesense/SearchClient.js.map index 4bf73457..ec6951ab 100644 --- a/lib/Typesense/SearchClient.js.map +++ b/lib/Typesense/SearchClient.js.map @@ -1 +1 @@ -{"version":3,"file":"SearchClient.js","sourceRoot":"","sources":["../../src/Typesense/SearchClient.ts"],"names":[],"mappings":";;;AAAA,0EAAsE;AACtE,8DAAgC;AAChC,sEAAwC;AAExC,+DAA8D;AAE9D;IASE,sBAAY,OAA6B;;QACvC,OAAO,CAAC,sBAAsB,GAAG,MAAA,OAAO,CAAC,sBAAsB,mCAAI,IAAI,CAAC;QACxE,IACE,OAAO,CAAC,sBAAsB,KAAK,IAAI;YACvC,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,EACpC,CAAC;YACD,OAAO,CAAC,IAAI,CACV,mIAAmI,CACpI,CAAC;YACF,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAa,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,iCAAU,GAAV;QACE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAE9B,6DAA6D;QAC7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAe;gBAAd,CAAC,QAAA,EAAE,UAAU,QAAA;YAChE,UAAU,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAW,GAAX,UACE,cAAsB;QAEtB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,8FAA8F;gBAC5F,kGAAkG,CACrG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7D,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAI,2CAAoB,CACnE,cAAc,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,cAAc,CAC0B,CAAC;QAC7C,CAAC;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,AAzDD,IAyDC"} \ No newline at end of file +{"version":3,"file":"SearchClient.js","sourceRoot":"","sources":["../../src/Typesense/SearchClient.ts"],"names":[],"mappings":";;;AAAA,0EAAsE;AACtE,8DAAgC;AAChC,sEAAwC;AAExC,+DAA8D;AAE9D;;;;GAIG;AACH;IAiBE,sBAAY,OAA6B;;QACvC,OAAO,CAAC,sBAAsB,GAAG,MAAA,OAAO,CAAC,sBAAsB,mCAAI,IAAI,CAAC;QACxE,IACE,OAAO,CAAC,sBAAsB,KAAK,IAAI;YACvC,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,EACpC,CAAC;YACD,OAAO,CAAC,IAAI,CACV,mIAAmI,CACpI,CAAC;YACF,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAa,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,iCAAU,GAAV;QACE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAE9B,6DAA6D;QAC7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAe;gBAAd,CAAC,QAAA,EAAE,UAAU,QAAA;YAChE,UAAU,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,kCAAW,GAAX,UACE,cAAsB;QAEtB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,8FAA8F;gBAC5F,kGAAkG,CACrG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7D,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAI,2CAAoB,CACnE,cAAc,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,cAAc,CAC0B,CAAC;QAC7C,CAAC;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,AAzED,IAyEC"} \ No newline at end of file diff --git a/lib/Typesense/SearchOnlyCollection.d.ts b/lib/Typesense/SearchOnlyCollection.d.ts index c548d421..e0309042 100644 --- a/lib/Typesense/SearchOnlyCollection.d.ts +++ b/lib/Typesense/SearchOnlyCollection.d.ts @@ -7,5 +7,13 @@ export declare class SearchOnlyCollection { private readonly configuration; private readonly _documents; constructor(name: string, apiCall: ApiCall, configuration: any); + /** + * Access the search-only documents resource for this collection. + * + * @example + * await searchClient.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ documents(): SearchableDocuments; } diff --git a/lib/Typesense/SearchOnlyCollection.js b/lib/Typesense/SearchOnlyCollection.js index 3c41aca0..d3989cd5 100644 --- a/lib/Typesense/SearchOnlyCollection.js +++ b/lib/Typesense/SearchOnlyCollection.js @@ -9,6 +9,14 @@ var SearchOnlyCollection = /** @class */ (function () { this.configuration = configuration; this._documents = new SearchOnlyDocuments_1.SearchOnlyDocuments(this.name, this.apiCall, this.configuration); } + /** + * Access the search-only documents resource for this collection. + * + * @example + * await searchClient.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ SearchOnlyCollection.prototype.documents = function () { return this._documents; }; diff --git a/lib/Typesense/SearchOnlyCollection.js.map b/lib/Typesense/SearchOnlyCollection.js.map index 459ab12b..b592ff15 100644 --- a/lib/Typesense/SearchOnlyCollection.js.map +++ b/lib/Typesense/SearchOnlyCollection.js.map @@ -1 +1 @@ -{"version":3,"file":"SearchOnlyCollection.js","sourceRoot":"","sources":["../../src/Typesense/SearchOnlyCollection.ts"],"names":[],"mappings":";;;AAEA,6DAA4D;AAG5D;IAGE,8BACmB,IAAY,EACZ,OAAgB,EAChB,aAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAK;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,yCAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAED,wCAAS,GAAT;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACH,2BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,oDAAoB"} \ No newline at end of file +{"version":3,"file":"SearchOnlyCollection.js","sourceRoot":"","sources":["../../src/Typesense/SearchOnlyCollection.ts"],"names":[],"mappings":";;;AAEA,6DAA4D;AAG5D;IAGE,8BACmB,IAAY,EACZ,OAAgB,EAChB,aAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAK;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,yCAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,wCAAS,GAAT;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACH,2BAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,oDAAoB"} \ No newline at end of file diff --git a/lib/Typesense/SearchOnlyDocuments.d.ts b/lib/Typesense/SearchOnlyDocuments.d.ts index 2ff0970f..f74d3ebf 100644 --- a/lib/Typesense/SearchOnlyDocuments.d.ts +++ b/lib/Typesense/SearchOnlyDocuments.d.ts @@ -10,6 +10,14 @@ export declare class SearchOnlyDocuments implements Se protected requestWithCache: RequestWithCache; constructor(collectionName: string, apiCall: ApiCall, configuration: Configuration); clearCache(): void; + /** + * Search for documents in a collection that match the search criteria. + * + * @example + * await client.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ search(searchParameters: SearchParams | SearchParamsWithPreset, { cacheSearchResultsForSeconds, abortSignal, }?: SearchOptions): Promise>; protected endpointPath(operation?: string): string; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/SearchOnlyDocuments.js b/lib/Typesense/SearchOnlyDocuments.js index 8bf4fd8d..d299d148 100644 --- a/lib/Typesense/SearchOnlyDocuments.js +++ b/lib/Typesense/SearchOnlyDocuments.js @@ -16,6 +16,14 @@ var SearchOnlyDocuments = /** @class */ (function () { SearchOnlyDocuments.prototype.clearCache = function () { this.requestWithCache.clearCache(); }; + /** + * Search for documents in a collection that match the search criteria. + * + * @example + * await client.collections("products").documents().search({ q: "*", query_by: "title" }) + * + * @see https://typesense.org/docs/latest/api/search.html + */ SearchOnlyDocuments.prototype.search = function (searchParameters_1) { return tslib_1.__awaiter(this, arguments, void 0, function (searchParameters, _a) { var additionalQueryParams, _b, streamConfig, rest, queryParams, isStreamingRequest; diff --git a/lib/Typesense/SearchOnlyDocuments.js.map b/lib/Typesense/SearchOnlyDocuments.js.map index 0eefc997..822857a8 100644 --- a/lib/Typesense/SearchOnlyDocuments.js.map +++ b/lib/Typesense/SearchOnlyDocuments.js.map @@ -1 +1 @@ -{"version":3,"file":"SearchOnlyDocuments.js","sourceRoot":"","sources":["../../src/Typesense/SearchOnlyDocuments.ts"],"names":[],"mappings":";;;;AAAA,gFAAkD;AAGlD,sEAAwC;AAOxC,iCAAmD;AAGnD,IAAM,YAAY,GAAG,YAAY,CAAC;AAElC;IAKE,6BACY,cAAsB,EACtB,OAAgB,EAChB,aAA4B;QAF5B,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAe;QAL9B,qBAAgB,GAAqB,IAAI,0BAAgB,EAAE,CAAC;IAMnE,CAAC;IAEJ,wCAAU,GAAV;QACE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAEK,oCAAM,GAAZ;oEACE,gBAA2E,EAC3E,EAIqB;;gBAJrB,qBAImB,EAAE,KAAA,EAHnB,oCAC+B,EAD/B,4BAA4B,mBAAG,IAAI,CAAC,aAAa;iBAC9C,4BAA4B,KAAA,EAC/B,mBAAkB,EAAlB,WAAW,mBAAG,IAAI,KAAA;;gBAGd,qBAAqB,GAAG,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,wBAAwB,KAAK,IAAI,EAAE,CAAC;oBACzD,qBAAqB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;gBAC5C,CAAC;gBAEK,KAA4B,IAAA,gCAAwB,EAIxD,gBAAgB,CAAC,EAJX,YAAY,kBAAA,EAAK,IAAI,sBAAvB,gBAAyB,CAAF,CAIT;gBAEd,WAAW,yCACZ,qBAAqB,GACrB,IAAI,CACR,CAAC;gBAEI,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,KAAK,IAAI,CAAC;gBAEpE,sBAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAMlC,IAAI,CAAC,OAAO,EACZ,KAAK,EACL;wBACE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;wBACjC,WAAW,aAAA;wBACX,YAAY,cAAA;wBACZ,WAAW,aAAA;wBACX,kBAAkB,oBAAA;qBACnB,EACD;wBACE,uBAAuB,EAAE,4BAA4B;qBACtD,CACF,EAAC;;;KACH;IAES,0CAAY,GAAtB,UAAuB,SAAkB;QACvC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,YAAY,SAC1F,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAC9C,CAAC;IACL,CAAC;IAED,sBAAW,mCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,0BAAC;AAAD,CAAC,AAvED,IAuEC;AAvEY,kDAAmB"} \ No newline at end of file +{"version":3,"file":"SearchOnlyDocuments.js","sourceRoot":"","sources":["../../src/Typesense/SearchOnlyDocuments.ts"],"names":[],"mappings":";;;;AAAA,gFAAkD;AAGlD,sEAAwC;AAOxC,iCAAmD;AAGnD,IAAM,YAAY,GAAG,YAAY,CAAC;AAElC;IAKE,6BACY,cAAsB,EACtB,OAAgB,EAChB,aAA4B;QAF5B,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAe;QAL9B,qBAAgB,GAAqB,IAAI,0BAAgB,EAAE,CAAC;IAMnE,CAAC;IAEJ,wCAAU,GAAV;QACE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACG,oCAAM,GAAZ;oEACE,gBAA2E,EAC3E,EAIqB;;gBAJrB,qBAImB,EAAE,KAAA,EAHnB,oCAC+B,EAD/B,4BAA4B,mBAAG,IAAI,CAAC,aAAa;iBAC9C,4BAA4B,KAAA,EAC/B,mBAAkB,EAAlB,WAAW,mBAAG,IAAI,KAAA;;gBAGd,qBAAqB,GAAG,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,wBAAwB,KAAK,IAAI,EAAE,CAAC;oBACzD,qBAAqB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;gBAC5C,CAAC;gBAEK,KAA4B,IAAA,gCAAwB,EAIxD,gBAAgB,CAAC,EAJX,YAAY,kBAAA,EAAK,IAAI,sBAAvB,gBAAyB,CAAF,CAIT;gBAEd,WAAW,yCACZ,qBAAqB,GACrB,IAAI,CACR,CAAC;gBAEI,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,KAAK,IAAI,CAAC;gBAEpE,sBAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAMlC,IAAI,CAAC,OAAO,EACZ,KAAK,EACL;wBACE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;wBACjC,WAAW,aAAA;wBACX,YAAY,cAAA;wBACZ,WAAW,aAAA;wBACX,kBAAkB,oBAAA;qBACnB,EACD;wBACE,uBAAuB,EAAE,4BAA4B;qBACtD,CACF,EAAC;;;KACH;IAES,0CAAY,GAAtB,UAAuB,SAAkB;QACvC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,YAAY,SAC1F,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAC9C,CAAC;IACL,CAAC;IAED,sBAAW,mCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,0BAAC;AAAD,CAAC,AA/ED,IA+EC;AA/EY,kDAAmB"} \ No newline at end of file diff --git a/lib/Typesense/Stats.d.ts b/lib/Typesense/Stats.d.ts index a3a0ad2f..ff7d9b34 100644 --- a/lib/Typesense/Stats.d.ts +++ b/lib/Typesense/Stats.d.ts @@ -20,5 +20,13 @@ export interface StatsResponse { export default class Metrics { private apiCall; constructor(apiCall: ApiCall); + /** + * Get stats about API endpoints. + * + * @example + * await client.stats.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ retrieve(): Promise; } diff --git a/lib/Typesense/Stats.js b/lib/Typesense/Stats.js index f00c45d8..3a4a642b 100644 --- a/lib/Typesense/Stats.js +++ b/lib/Typesense/Stats.js @@ -6,6 +6,14 @@ var Metrics = /** @class */ (function () { function Metrics(apiCall) { this.apiCall = apiCall; } + /** + * Get stats about API endpoints. + * + * @example + * await client.stats.retrieve() + * + * @see https://typesense.org/docs/latest/api/cluster-operations.html + */ Metrics.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Stats.js.map b/lib/Typesense/Stats.js.map index d45c873b..bdc6cf06 100644 --- a/lib/Typesense/Stats.js.map +++ b/lib/Typesense/Stats.js.map @@ -1 +1 @@ -{"version":3,"file":"Stats.js","sourceRoot":"","sources":["../../src/Typesense/Stats.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,aAAa,CAAC;AAsBnC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;;;KACvC;IACH,cAAC;AAAD,CAAC,AAND,IAMC"} \ No newline at end of file +{"version":3,"file":"Stats.js","sourceRoot":"","sources":["../../src/Typesense/Stats.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,aAAa,CAAC;AAsBnC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;;;KACvC;IACH,cAAC;AAAD,CAAC,AAdD,IAcC"} \ No newline at end of file diff --git a/lib/Typesense/Stemming.d.ts b/lib/Typesense/Stemming.d.ts index e0e102c5..be0894e2 100644 --- a/lib/Typesense/Stemming.d.ts +++ b/lib/Typesense/Stemming.d.ts @@ -6,7 +6,25 @@ export default class Stemming { private readonly _stemmingDictionaries; private readonly individualStemmingDictionaries; constructor(apiCall: ApiCall); + /** + * Access the stemming dictionaries resource. Call without arguments to list or import dictionaries, or pass an ID to access a single dictionary. + * + * @example + * await client.stemming.dictionaries().retrieve() + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ dictionaries(): StemmingDictionaries; + /** + * Access an individual stemming dictionary by ID. + * + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ dictionaries(id: string): StemmingDictionary; static get RESOURCEPATH(): string; } diff --git a/lib/Typesense/Stemming.js.map b/lib/Typesense/Stemming.js.map index ef37ddff..e0c4549c 100644 --- a/lib/Typesense/Stemming.js.map +++ b/lib/Typesense/Stemming.js.map @@ -1 +1 @@ -{"version":3,"file":"Stemming.js","sourceRoot":"","sources":["../../src/Typesense/Stemming.ts"],"names":[],"mappings":";;;AACA,wFAA0D;AAC1D,oFAAsD;AAEtD,IAAM,YAAY,GAAG,WAAW,CAAC;AAEjC;IAOE,kBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAL5B,mCAA8B,GAG3C,EAAE,CAAC;QAGL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,8BAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAID,+BAAY,GAAZ,UAAa,EAAW;QACtB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,GAAG,IAAI,4BAAkB,CAC9D,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,sBAAW,wBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,eAAC;AAAD,CAAC,AA/BD,IA+BC"} \ No newline at end of file +{"version":3,"file":"Stemming.js","sourceRoot":"","sources":["../../src/Typesense/Stemming.ts"],"names":[],"mappings":";;;AACA,wFAA0D;AAC1D,oFAAsD;AAEtD,IAAM,YAAY,GAAG,WAAW,CAAC;AAEjC;IAOE,kBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAL5B,mCAA8B,GAG3C,EAAE,CAAC;QAGL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,8BAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAsBD,+BAAY,GAAZ,UAAa,EAAW;QACtB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,GAAG,IAAI,4BAAkB,CAC9D,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,sBAAW,wBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,eAAC;AAAD,CAAC,AAjDD,IAiDC"} \ No newline at end of file diff --git a/lib/Typesense/StemmingDictionaries.d.ts b/lib/Typesense/StemmingDictionaries.d.ts index 82bf2cd7..c0f3ec91 100644 --- a/lib/Typesense/StemmingDictionaries.d.ts +++ b/lib/Typesense/StemmingDictionaries.d.ts @@ -6,7 +6,23 @@ export interface StemmingDictionariesRetrieveSchema { export default class StemmingDictionaries { private readonly apiCall; constructor(apiCall: ApiCall); + /** + * Upload a JSONL file containing word mappings to create or update a stemming dictionary. + * + * @example + * await client.stemming.dictionaries().upsert("irregular-plurals", [{ word: "people", root: "person" }]) + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ upsert(id: string, wordRootCombinations: StemmingDictionaryCreateSchema[] | string): Promise; + /** + * Retrieve a list of all available stemming dictionaries. + * + * @example + * await client.stemming.dictionaries().retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ retrieve(): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/StemmingDictionaries.js b/lib/Typesense/StemmingDictionaries.js index 0add460b..e4b5a2c8 100644 --- a/lib/Typesense/StemmingDictionaries.js +++ b/lib/Typesense/StemmingDictionaries.js @@ -7,6 +7,14 @@ var StemmingDictionaries = /** @class */ (function () { this.apiCall = apiCall; this.apiCall = apiCall; } + /** + * Upload a JSONL file containing word mappings to create or update a stemming dictionary. + * + * @example + * await client.stemming.dictionaries().upsert("irregular-plurals", [{ word: "people", root: "person" }]) + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ StemmingDictionaries.prototype.upsert = function (id, wordRootCombinations) { return tslib_1.__awaiter(this, void 0, void 0, function () { var wordRootCombinationsInJSONLFormat, resultsInJSONLFormat; @@ -33,6 +41,14 @@ var StemmingDictionaries = /** @class */ (function () { }); }); }; + /** + * Retrieve a list of all available stemming dictionaries. + * + * @example + * await client.stemming.dictionaries().retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ StemmingDictionaries.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/StemmingDictionaries.js.map b/lib/Typesense/StemmingDictionaries.js.map index f38ae9ae..3575b5ec 100644 --- a/lib/Typesense/StemmingDictionaries.js.map +++ b/lib/Typesense/StemmingDictionaries.js.map @@ -1 +1 @@ -{"version":3,"file":"StemmingDictionaries.js","sourceRoot":"","sources":["../../src/Typesense/StemmingDictionaries.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,wBAAwB,CAAC;AAM9C;IACE,8BAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,qCAAM,GAAZ,UACE,EAAU,EACV,oBAA+D;;;;;;wBAEzD,iCAAiC,GAAG,KAAK,CAAC,OAAO,CACrD,oBAAoB,CACrB;4BACC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BACvE,CAAC,CAAC,oBAAoB,CAAC;wBAEI,qBAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAE5D,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC3B;gCACE,eAAe,EAAE,EAAC,EAAE,IAAA,EAAC;gCACrB,cAAc,EAAE,iCAAiC;gCACjD,iBAAiB,EAAE,EAAC,cAAc,EAAE,YAAY,EAAC;gCACjD,qBAAqB,EAAE,IAAI;6BAC5B,CACF,EAAA;;wBAVK,oBAAoB,GAAG,SAU5B;wBAED,sBAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;gCACxC,CAAC,CAAC,oBAAoB;qCACjB,KAAK,CAAC,IAAI,CAAC;qCACX,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmC,EAAlD,CAAkD,CAAC;gCACtE,CAAC,CAAC,oBAAoB,EAAC;;;;KAC1B;IAEK,uCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,2CAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,SAAS,KAAK,SAAS;YAC5B,CAAC,CAAC,UAAG,oBAAoB,CAAC,YAAY,CAAE;YACxC,CAAC,CAAC,UAAG,oBAAoB,CAAC,YAAY,cAAI,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC9E,CAAC;IAED,sBAAW,oCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,2BAAC;AAAD,CAAC,AAjDD,IAiDC"} \ No newline at end of file +{"version":3,"file":"StemmingDictionaries.js","sourceRoot":"","sources":["../../src/Typesense/StemmingDictionaries.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,wBAAwB,CAAC;AAM9C;IACE,8BAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACG,qCAAM,GAAZ,UACE,EAAU,EACV,oBAA+D;;;;;;wBAEzD,iCAAiC,GAAG,KAAK,CAAC,OAAO,CACrD,oBAAoB,CACrB;4BACC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BACvE,CAAC,CAAC,oBAAoB,CAAC;wBAEI,qBAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAE5D,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC3B;gCACE,eAAe,EAAE,EAAC,EAAE,IAAA,EAAC;gCACrB,cAAc,EAAE,iCAAiC;gCACjD,iBAAiB,EAAE,EAAC,cAAc,EAAE,YAAY,EAAC;gCACjD,qBAAqB,EAAE,IAAI;6BAC5B,CACF,EAAA;;wBAVK,oBAAoB,GAAG,SAU5B;wBAED,sBAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;gCACxC,CAAC,CAAC,oBAAoB;qCACjB,KAAK,CAAC,IAAI,CAAC;qCACX,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmC,EAAlD,CAAkD,CAAC;gCACtE,CAAC,CAAC,oBAAoB,EAAC;;;;KAC1B;IAED;;;;;;;OAOG;IACG,uCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,2CAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,SAAS,KAAK,SAAS;YAC5B,CAAC,CAAC,UAAG,oBAAoB,CAAC,YAAY,CAAE;YACxC,CAAC,CAAC,UAAG,oBAAoB,CAAC,YAAY,cAAI,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC9E,CAAC;IAED,sBAAW,oCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,2BAAC;AAAD,CAAC,AAjED,IAiEC"} \ No newline at end of file diff --git a/lib/Typesense/StemmingDictionary.d.ts b/lib/Typesense/StemmingDictionary.d.ts index 0098936d..6b2eff4c 100644 --- a/lib/Typesense/StemmingDictionary.d.ts +++ b/lib/Typesense/StemmingDictionary.d.ts @@ -14,7 +14,23 @@ export default class StemmingDictionary { private id; private apiCall; constructor(id: string, apiCall: ApiCall); + /** + * Fetch details of a specific stemming dictionary. + * + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ retrieve(): Promise; + /** + * Delete a stemming dictionary by ID. + * + * @example + * await client.stemming.dictionaries("en").delete() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/StemmingDictionary.js b/lib/Typesense/StemmingDictionary.js index ec1618bb..de467867 100644 --- a/lib/Typesense/StemmingDictionary.js +++ b/lib/Typesense/StemmingDictionary.js @@ -7,6 +7,14 @@ var StemmingDictionary = /** @class */ (function () { this.id = id; this.apiCall = apiCall; } + /** + * Fetch details of a specific stemming dictionary. + * + * @example + * await client.stemming.dictionaries("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ StemmingDictionary.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var StemmingDictionary = /** @class */ (function () { }); }); }; + /** + * Delete a stemming dictionary by ID. + * + * @example + * await client.stemming.dictionaries("en").delete() + * + * @see https://typesense.org/docs/latest/api/stemming.html + */ StemmingDictionary.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/StemmingDictionary.js.map b/lib/Typesense/StemmingDictionary.js.map index 37669f30..7a520ec0 100644 --- a/lib/Typesense/StemmingDictionary.js.map +++ b/lib/Typesense/StemmingDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"StemmingDictionary.js","sourceRoot":"","sources":["../../src/Typesense/StemmingDictionary.ts"],"names":[],"mappings":";;;AACA,wFAA0D;AAgB1D;IACE,4BACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,qCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEK,mCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,yCAAY,GAApB;QACE,OAAO,UAAG,8BAAoB,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC/E,CAAC;IACH,yBAAC;AAAD,CAAC,AAnBD,IAmBC"} \ No newline at end of file +{"version":3,"file":"StemmingDictionary.js","sourceRoot":"","sources":["../../src/Typesense/StemmingDictionary.ts"],"names":[],"mappings":";;;AACA,wFAA0D;AAgB1D;IACE,4BACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,qCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAED;;;;;;;OAOG;IACG,mCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,yCAAY,GAApB;QACE,OAAO,UAAG,8BAAoB,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC/E,CAAC;IACH,yBAAC;AAAD,CAAC,AAnCD,IAmCC"} \ No newline at end of file diff --git a/lib/Typesense/Stopword.d.ts b/lib/Typesense/Stopword.d.ts index 59a20416..62b02a35 100644 --- a/lib/Typesense/Stopword.d.ts +++ b/lib/Typesense/Stopword.d.ts @@ -14,7 +14,23 @@ export default class Stopword { private stopwordId; private apiCall; constructor(stopwordId: string, apiCall: ApiCall); + /** + * Retrieve the details of a stopwords set, given it's name. + * + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ retrieve(): Promise; + /** + * Permanently deletes a stopwords set, given it's name. + * + * @example + * await client.stopwords("en").delete() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/Stopword.js b/lib/Typesense/Stopword.js index 83547225..88da1a19 100644 --- a/lib/Typesense/Stopword.js +++ b/lib/Typesense/Stopword.js @@ -7,6 +7,14 @@ var Stopword = /** @class */ (function () { this.stopwordId = stopwordId; this.apiCall = apiCall; } + /** + * Retrieve the details of a stopwords set, given it's name. + * + * @example + * await client.stopwords("en").retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ Stopword.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var Stopword = /** @class */ (function () { }); }); }; + /** + * Permanently deletes a stopwords set, given it's name. + * + * @example + * await client.stopwords("en").delete() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ Stopword.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Stopword.js.map b/lib/Typesense/Stopword.js.map index 2ea65f03..103b572a 100644 --- a/lib/Typesense/Stopword.js.map +++ b/lib/Typesense/Stopword.js.map @@ -1 +1 @@ -{"version":3,"file":"Stopword.js","sourceRoot":"","sources":["../../src/Typesense/Stopword.ts"],"names":[],"mappings":";;;AACA,kEAAoC;AAYpC;IACE,kBACU,UAAkB,EAClB,OAAgB;QADhB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9D;IAEK,yBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAC5E,CAAC;IACH,eAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"Stopword.js","sourceRoot":"","sources":["../../src/Typesense/Stopword.ts"],"names":[],"mappings":";;;AACA,kEAAoC;AAYpC;IACE,kBACU,UAAkB,EAClB,OAAgB;QADhB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9D;IAED;;;;;;;OAOG;IACG,yBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAC5E,CAAC;IACH,eAAC;AAAD,CAAC,AAjCD,IAiCC"} \ No newline at end of file diff --git a/lib/Typesense/Stopwords.d.ts b/lib/Typesense/Stopwords.d.ts index 3d119c1f..9162ed99 100644 --- a/lib/Typesense/Stopwords.d.ts +++ b/lib/Typesense/Stopwords.d.ts @@ -10,7 +10,23 @@ export interface StopwordsRetrieveSchema { export default class Stopwords { private apiCall; constructor(apiCall: ApiCall); + /** + * Upserts a stopwords set. + * + * @example + * await client.stopwords().upsert("en", { stopwords: ["a", "the"] }) + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ upsert(stopwordId: string, params: StopwordCreateSchema): Promise; + /** + * Retrieve the details of all stopwords sets + * + * @example + * await client.stopwords().retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ retrieve(): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/Stopwords.js b/lib/Typesense/Stopwords.js index 6caff949..740038e5 100644 --- a/lib/Typesense/Stopwords.js +++ b/lib/Typesense/Stopwords.js @@ -6,6 +6,14 @@ var Stopwords = /** @class */ (function () { function Stopwords(apiCall) { this.apiCall = apiCall; } + /** + * Upserts a stopwords set. + * + * @example + * await client.stopwords().upsert("en", { stopwords: ["a", "the"] }) + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ Stopwords.prototype.upsert = function (stopwordId, params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -13,6 +21,14 @@ var Stopwords = /** @class */ (function () { }); }); }; + /** + * Retrieve the details of all stopwords sets + * + * @example + * await client.stopwords().retrieve() + * + * @see https://typesense.org/docs/latest/api/stopwords.html + */ Stopwords.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Stopwords.js.map b/lib/Typesense/Stopwords.js.map index f02de760..4e5e44bf 100644 --- a/lib/Typesense/Stopwords.js.map +++ b/lib/Typesense/Stopwords.js.map @@ -1 +1 @@ -{"version":3,"file":"Stopwords.js","sourceRoot":"","sources":["../../src/Typesense/Stopwords.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,YAAY,CAAC;AAWlC;IACE,mBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,0BAAM,GAAZ,UACE,UAAkB,EAClB,MAA4B;;;gBAE5B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAC7B,MAAM,CACP,EAAC;;;KACH;IAEK,4BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,gCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,SAAS,CAAC,YAAY,SAC9B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AA1BD,IA0BC"} \ No newline at end of file +{"version":3,"file":"Stopwords.js","sourceRoot":"","sources":["../../src/Typesense/Stopwords.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,YAAY,CAAC;AAWlC;IACE,mBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;OAOG;IACG,0BAAM,GAAZ,UACE,UAAkB,EAClB,MAA4B;;;gBAE5B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAC7B,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,4BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,gCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,SAAS,CAAC,YAAY,SAC9B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AA1CD,IA0CC"} \ No newline at end of file diff --git a/lib/Typesense/Synonym.d.ts b/lib/Typesense/Synonym.d.ts index d4f81b56..768520de 100644 --- a/lib/Typesense/Synonym.d.ts +++ b/lib/Typesense/Synonym.d.ts @@ -15,7 +15,23 @@ export default class Synonym { private apiCall; private static hasWarnedDeprecation; constructor(collectionName: string, synonymId: string, apiCall: ApiCall); + /** + * Retrieve a synonym (legacy v1) by ID on this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ retrieve(): Promise; + /** + * Delete a synonym (legacy v1) by ID on this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").delete() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/Synonym.js b/lib/Typesense/Synonym.js index f2e09d0b..f30f3496 100644 --- a/lib/Typesense/Synonym.js +++ b/lib/Typesense/Synonym.js @@ -12,6 +12,14 @@ var Synonym = /** @class */ (function () { this.synonymId = synonymId; this.apiCall = apiCall; } + /** + * Retrieve a synonym (legacy v1) by ID on this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").retrieve() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ Synonym.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -19,6 +27,14 @@ var Synonym = /** @class */ (function () { }); }); }; + /** + * Delete a synonym (legacy v1) by ID on this collection. + * + * @example + * await client.collections("products").synonyms("syn-1").delete() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ Synonym.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Synonym.js.map b/lib/Typesense/Synonym.js.map index fa6e70ab..c6603c07 100644 --- a/lib/Typesense/Synonym.js.map +++ b/lib/Typesense/Synonym.js.map @@ -1 +1 @@ -{"version":3,"file":"Synonym.js","sourceRoot":"","sources":["../../src/Typesense/Synonym.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AACxC,gEAA2D;AAU3D;;GAEG;AACH;IAEE,iBACU,cAAsB,EACtB,SAAiB,EACjB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAgB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC7D;IAEK,wBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACtE;IAEO,8BAAY,GAApB;QACE,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAClC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,8HAA8H,CAC/H,CAAC;YACF,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACtC,CAAC;QACD,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,kBAAQ,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE,CAAC;IAChJ,CAAC;IAxBc,4BAAoB,GAAG,KAAK,CAAC;IAyB9C,cAAC;CAAA,AA1BD,IA0BC;kBA1BoB,OAAO"} \ No newline at end of file +{"version":3,"file":"Synonym.js","sourceRoot":"","sources":["../../src/Typesense/Synonym.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AACxC,gEAA2D;AAU3D;;GAEG;AACH;IAEE,iBACU,cAAsB,EACtB,SAAiB,EACjB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAgB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC7D;IAED;;;;;;;OAOG;IACG,wBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACtE;IAEO,8BAAY,GAApB;QACE,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAClC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,8HAA8H,CAC/H,CAAC;YACF,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACtC,CAAC;QACD,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,kBAAQ,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE,CAAC;IAChJ,CAAC;IAxCc,4BAAoB,GAAG,KAAK,CAAC;IAyC9C,cAAC;CAAA,AA1CD,IA0CC;kBA1CoB,OAAO"} \ No newline at end of file diff --git a/lib/Typesense/SynonymSet.d.ts b/lib/Typesense/SynonymSet.d.ts index 7f7a3414..7895171a 100644 --- a/lib/Typesense/SynonymSet.d.ts +++ b/lib/Typesense/SynonymSet.d.ts @@ -12,10 +12,52 @@ export default class SynonymSet { private readonly _items; private individualItems; constructor(synonymSetName: string, apiCall: ApiCall); + /** + * Create or update a synonym set with the given name + * + * @example + * await client.synonymSets("my-set").upsert({ items: [{ id: "syn-1", synonyms: ["nyc", "new york"] }] }) + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ upsert(params: SynonymSetCreateSchema): Promise; + /** + * Retrieve a specific synonym set by its name + * + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ retrieve(): Promise; + /** + * Delete a specific synonym set by its name + * + * @example + * await client.synonymSets("my-set").delete() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ delete(): Promise; + /** + * Access the items in this synonym set. Call without arguments to list or upsert items, or pass an item ID to access a single item. + * + * @example + * await client.synonymSets("my-set").items().retrieve() + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ items(): SynonymSetItems; + /** + * Access an individual synonym item by ID within this synonym set. + * + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ items(itemId: string): SynonymSetItem; private endpointPath; } diff --git a/lib/Typesense/SynonymSet.js b/lib/Typesense/SynonymSet.js index aef67dc4..f06e1b1c 100644 --- a/lib/Typesense/SynonymSet.js +++ b/lib/Typesense/SynonymSet.js @@ -11,6 +11,14 @@ var SynonymSet = /** @class */ (function () { this.individualItems = {}; this._items = new SynonymSetItems_1.default(this.synonymSetName, apiCall); } + /** + * Create or update a synonym set with the given name + * + * @example + * await client.synonymSets("my-set").upsert({ items: [{ id: "syn-1", synonyms: ["nyc", "new york"] }] }) + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ SynonymSet.prototype.upsert = function (params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -18,6 +26,14 @@ var SynonymSet = /** @class */ (function () { }); }); }; + /** + * Retrieve a specific synonym set by its name + * + * @example + * await client.synonymSets("my-set").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ SynonymSet.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -25,6 +41,14 @@ var SynonymSet = /** @class */ (function () { }); }); }; + /** + * Delete a specific synonym set by its name + * + * @example + * await client.synonymSets("my-set").delete() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ SynonymSet.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/SynonymSet.js.map b/lib/Typesense/SynonymSet.js.map index 253d487b..f047ac20 100644 --- a/lib/Typesense/SynonymSet.js.map +++ b/lib/Typesense/SynonymSet.js.map @@ -1 +1 @@ -{"version":3,"file":"SynonymSet.js","sourceRoot":"","sources":["../../src/Typesense/SynonymSet.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAExC,8EAAgD;AAChD,4EAA8C;AAQ9C;IAGE,oBACU,cAAsB,EACtB,OAAgB;QADhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;QAHlB,oBAAe,GAAmC,EAAE,CAAC;QAK3D,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAEK,2BAAM,GAAZ,UACE,MAA8B;;;gBAE9B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAmB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KACxE;IAEK,6BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEK,2BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACzE;IAID,0BAAK,GAAL,UAAM,MAAe;QACnB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,wBAAc,CAC/C,IAAI,CAAC,cAAc,EACnB,MAAM,EACN,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,iCAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAE,CAAC;IAClF,CAAC;IACH,iBAAC;AAAD,CAAC,AA5CD,IA4CC"} \ No newline at end of file +{"version":3,"file":"SynonymSet.js","sourceRoot":"","sources":["../../src/Typesense/SynonymSet.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAExC,8EAAgD;AAChD,4EAA8C;AAQ9C;IAGE,oBACU,cAAsB,EACtB,OAAgB;QADhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;QAHlB,oBAAe,GAAmC,EAAE,CAAC;QAK3D,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;OAOG;IACG,2BAAM,GAAZ,UACE,MAA8B;;;gBAE9B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAmB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KACxE;IAED;;;;;;;OAOG;IACG,6BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAED;;;;;;;OAOG;IACG,2BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACzE;IAsBD,0BAAK,GAAL,UAAM,MAAe;QACnB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,wBAAc,CAC/C,IAAI,CAAC,cAAc,EACnB,MAAM,EACN,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,iCAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAE,CAAC;IAClF,CAAC;IACH,iBAAC;AAAD,CAAC,AAtFD,IAsFC"} \ No newline at end of file diff --git a/lib/Typesense/SynonymSetItem.d.ts b/lib/Typesense/SynonymSetItem.d.ts index 77946ea2..abf13596 100644 --- a/lib/Typesense/SynonymSetItem.d.ts +++ b/lib/Typesense/SynonymSetItem.d.ts @@ -8,7 +8,23 @@ export default class SynonymSetItem { private itemId; private apiCall; constructor(synonymSetName: string, itemId: string, apiCall: ApiCall); + /** + * Retrieve a specific synonym item by its id + * + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ retrieve(): Promise; + /** + * Delete a specific synonym item by its id + * + * @example + * await client.synonymSets("my-set").items("syn-1").delete() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ delete(): Promise; private endpointPath; } diff --git a/lib/Typesense/SynonymSetItem.js b/lib/Typesense/SynonymSetItem.js index 9ae2665c..795799b2 100644 --- a/lib/Typesense/SynonymSetItem.js +++ b/lib/Typesense/SynonymSetItem.js @@ -8,6 +8,14 @@ var SynonymSetItem = /** @class */ (function () { this.itemId = itemId; this.apiCall = apiCall; } + /** + * Retrieve a specific synonym item by its id + * + * @example + * await client.synonymSets("my-set").items("syn-1").retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ SynonymSetItem.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -15,6 +23,14 @@ var SynonymSetItem = /** @class */ (function () { }); }); }; + /** + * Delete a specific synonym item by its id + * + * @example + * await client.synonymSets("my-set").items("syn-1").delete() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ SynonymSetItem.prototype.delete = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/SynonymSetItem.js.map b/lib/Typesense/SynonymSetItem.js.map index 4238ecbd..f57bcaf0 100644 --- a/lib/Typesense/SynonymSetItem.js.map +++ b/lib/Typesense/SynonymSetItem.js.map @@ -1 +1 @@ -{"version":3,"file":"SynonymSetItem.js","sourceRoot":"","sources":["../../src/Typesense/SynonymSetItem.ts"],"names":[],"mappings":";;;AACA,sEAA+D;AAM/D;IACE,wBACU,cAAsB,EACtB,MAAc,EACd,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,iCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAoB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACjE;IAEK,+BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA6B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC7E;IAEO,qCAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAU,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC;IAC3H,CAAC;IACH,qBAAC;AAAD,CAAC,AAlBD,IAkBC"} \ No newline at end of file +{"version":3,"file":"SynonymSetItem.js","sourceRoot":"","sources":["../../src/Typesense/SynonymSetItem.ts"],"names":[],"mappings":";;;AACA,sEAA+D;AAM/D;IACE,wBACU,cAAsB,EACtB,MAAc,EACd,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,iCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAoB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACjE;IAED;;;;;;;OAOG;IACG,+BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA6B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC7E;IAEO,qCAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAU,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC;IAC3H,CAAC;IACH,qBAAC;AAAD,CAAC,AAlCD,IAkCC"} \ No newline at end of file diff --git a/lib/Typesense/SynonymSetItems.d.ts b/lib/Typesense/SynonymSetItems.d.ts index a7c52d56..4fa18f5e 100644 --- a/lib/Typesense/SynonymSetItems.d.ts +++ b/lib/Typesense/SynonymSetItems.d.ts @@ -4,7 +4,23 @@ export default class SynonymSetItems { private synonymSetName; private apiCall; constructor(synonymSetName: string, apiCall: ApiCall); + /** + * Create or update a synonym set item with the given id + * + * @example + * await client.synonymSets("my-set").items().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ upsert(itemId: string, params: Omit): Promise; + /** + * Retrieve all synonym items in a set + * + * @example + * await client.synonymSets("my-set").items().retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ retrieve(): Promise; private endpointPath; } diff --git a/lib/Typesense/SynonymSetItems.js b/lib/Typesense/SynonymSetItems.js index e8a94235..bc4c240a 100644 --- a/lib/Typesense/SynonymSetItems.js +++ b/lib/Typesense/SynonymSetItems.js @@ -7,6 +7,14 @@ var SynonymSetItems = /** @class */ (function () { this.synonymSetName = synonymSetName; this.apiCall = apiCall; } + /** + * Create or update a synonym set item with the given id + * + * @example + * await client.synonymSets("my-set").items().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ SynonymSetItems.prototype.upsert = function (itemId, params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -14,6 +22,14 @@ var SynonymSetItems = /** @class */ (function () { }); }); }; + /** + * Retrieve all synonym items in a set + * + * @example + * await client.synonymSets("my-set").items().retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ SynonymSetItems.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/SynonymSetItems.js.map b/lib/Typesense/SynonymSetItems.js.map index ad2a592b..1474fd3d 100644 --- a/lib/Typesense/SynonymSetItems.js.map +++ b/lib/Typesense/SynonymSetItems.js.map @@ -1 +1 @@ -{"version":3,"file":"SynonymSetItems.js","sourceRoot":"","sources":["../../src/Typesense/SynonymSetItems.ts"],"names":[],"mappings":";;;AACA,sEAA+D;AAE/D;IACE,yBACU,cAAsB,EACtB,OAAgB;QADhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,gCAAM,GAAZ,UACE,MAAc,EACd,MAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EACzB,MAAM,CACP,EAAC;;;KACH;IAEK,kCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACnE;IAEO,sCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,mBAC3E,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IACH,sBAAC;AAAD,CAAC,AAzBD,IAyBC"} \ No newline at end of file +{"version":3,"file":"SynonymSetItems.js","sourceRoot":"","sources":["../../src/Typesense/SynonymSetItems.ts"],"names":[],"mappings":";;;AACA,sEAA+D;AAE/D;IACE,yBACU,cAAsB,EACtB,OAAgB;QADhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ;;;;;;;OAOG;IACG,gCAAM,GAAZ,UACE,MAAc,EACd,MAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EACzB,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,kCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACnE;IAEO,sCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,mBAC3E,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IACH,sBAAC;AAAD,CAAC,AAzCD,IAyCC"} \ No newline at end of file diff --git a/lib/Typesense/SynonymSets.d.ts b/lib/Typesense/SynonymSets.d.ts index 0cdf0844..cb4611e1 100644 --- a/lib/Typesense/SynonymSets.d.ts +++ b/lib/Typesense/SynonymSets.d.ts @@ -19,5 +19,13 @@ export default class SynonymSets { private apiCall; constructor(apiCall: ApiCall); static readonly RESOURCEPATH = "/synonym_sets"; + /** + * Retrieve all synonym sets + * + * @example + * await client.synonymSets().retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ retrieve(): Promise; } diff --git a/lib/Typesense/SynonymSets.js b/lib/Typesense/SynonymSets.js index 45106088..35796756 100644 --- a/lib/Typesense/SynonymSets.js +++ b/lib/Typesense/SynonymSets.js @@ -5,6 +5,14 @@ var SynonymSets = /** @class */ (function () { function SynonymSets(apiCall) { this.apiCall = apiCall; } + /** + * Retrieve all synonym sets + * + * @example + * await client.synonymSets().retrieve() + * + * @see https://typesense.org/docs/latest/api/synonyms.html + */ SynonymSets.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/SynonymSets.js.map b/lib/Typesense/SynonymSets.js.map index 69fab8c0..46a1fa50 100644 --- a/lib/Typesense/SynonymSets.js.map +++ b/lib/Typesense/SynonymSets.js.map @@ -1 +1 @@ -{"version":3,"file":"SynonymSets.js","sourceRoot":"","sources":["../../src/Typesense/SynonymSets.ts"],"names":[],"mappings":";;;AAsBA;IACE,qBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAGlC,8BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,WAAW,CAAC,YAAY,CAAC,EAAC;;;KACvE;IAJe,wBAAY,GAAG,eAAe,CAAC;IAKjD,kBAAC;CAAA,AAPD,IAOC;kBAPoB,WAAW"} \ No newline at end of file +{"version":3,"file":"SynonymSets.js","sourceRoot":"","sources":["../../src/Typesense/SynonymSets.ts"],"names":[],"mappings":";;;AAsBA;IACE,qBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAGxC;;;;;;;OAOG;IACG,8BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,WAAW,CAAC,YAAY,CAAC,EAAC;;;KACvE;IAZe,wBAAY,GAAG,eAAe,CAAC;IAajD,kBAAC;CAAA,AAfD,IAeC;kBAfoB,WAAW"} \ No newline at end of file diff --git a/lib/Typesense/Synonyms.d.ts b/lib/Typesense/Synonyms.d.ts index c378e383..ac00843f 100644 --- a/lib/Typesense/Synonyms.d.ts +++ b/lib/Typesense/Synonyms.d.ts @@ -17,7 +17,23 @@ export default class Synonyms { private apiCall; private static hasWarnedDeprecation; constructor(collectionName: string, apiCall: ApiCall); + /** + * Create or update a synonym (legacy v1) on this collection. + * + * @example + * await client.collections("products").synonyms().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ upsert(synonymId: string, params: SynonymCreateSchema): Promise; + /** + * Retrieve all synonyms (legacy v1) on this collection. + * + * @example + * await client.collections("products").synonyms().retrieve() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ retrieve(): Promise; private endpointPath; static get RESOURCEPATH(): string; diff --git a/lib/Typesense/Synonyms.js b/lib/Typesense/Synonyms.js index 5d558a15..321953bb 100644 --- a/lib/Typesense/Synonyms.js +++ b/lib/Typesense/Synonyms.js @@ -11,6 +11,14 @@ var Synonyms = /** @class */ (function () { this.collectionName = collectionName; this.apiCall = apiCall; } + /** + * Create or update a synonym (legacy v1) on this collection. + * + * @example + * await client.collections("products").synonyms().upsert("syn-1", { synonyms: ["nyc", "new york"] }) + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ Synonyms.prototype.upsert = function (synonymId, params) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { @@ -18,6 +26,14 @@ var Synonyms = /** @class */ (function () { }); }); }; + /** + * Retrieve all synonyms (legacy v1) on this collection. + * + * @example + * await client.collections("products").synonyms().retrieve() + * + * @see https://typesense.org/docs/29.0/api/synonyms.html + */ Synonyms.prototype.retrieve = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { diff --git a/lib/Typesense/Synonyms.js.map b/lib/Typesense/Synonyms.js.map index 8fcb92ee..fde91db0 100644 --- a/lib/Typesense/Synonyms.js.map +++ b/lib/Typesense/Synonyms.js.map @@ -1 +1 @@ -{"version":3,"file":"Synonyms.js","sourceRoot":"","sources":["../../src/Typesense/Synonyms.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAGxC,IAAM,YAAY,GAAG,WAAW,CAAC;AAajC;;GAEG;AACH;IAEE,kBAAoB,cAAsB,EAAU,OAAgB;QAAhD,mBAAc,GAAd,cAAc,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElE,yBAAM,GAAZ,UACE,SAAiB,EACjB,MAA2B;;;gBAE3B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAC5B,MAAM,CACP,EAAC;;;KACH;IAEK,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACtE;IAEO,+BAAY,GAApB,UAAqB,SAAkB;QACrC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YACnC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,iIAAiI,CAClI,CAAC;YACF,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACvC,CAAC;QACD,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAC3E,QAAQ,CAAC,YAAY,SACpB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC1E,CAAC;IAED,sBAAW,wBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IAhCc,6BAAoB,GAAG,KAAK,CAAC;IAiC9C,eAAC;CAAA,AAlCD,IAkCC;kBAlCoB,QAAQ"} \ No newline at end of file +{"version":3,"file":"Synonyms.js","sourceRoot":"","sources":["../../src/Typesense/Synonyms.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAGxC,IAAM,YAAY,GAAG,WAAW,CAAC;AAajC;;GAEG;AACH;IAEE,kBAAoB,cAAsB,EAAU,OAAgB;QAAhD,mBAAc,GAAd,cAAc,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExE;;;;;;;OAOG;IACG,yBAAM,GAAZ,UACE,SAAiB,EACjB,MAA2B;;;gBAE3B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAC5B,MAAM,CACP,EAAC;;;KACH;IAED;;;;;;;OAOG;IACG,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACtE;IAEO,+BAAY,GAApB,UAAqB,SAAkB;QACrC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YACnC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,iIAAiI,CAClI,CAAC;YACF,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACvC,CAAC;QACD,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAC3E,QAAQ,CAAC,YAAY,SACpB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC1E,CAAC;IAED,sBAAW,wBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IAhDc,6BAAoB,GAAG,KAAK,CAAC;IAiD9C,eAAC;CAAA,AAlDD,IAkDC;kBAlDoB,QAAQ"} \ No newline at end of file