algoliasearch 5.56.0 → 5.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fetch.d.ts CHANGED
@@ -86,6 +86,8 @@ type Algoliasearch = SearchClient & {
86
86
  /**
87
87
  * Helper: Similar to the `replaceAllObjects` method but requires a Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) to be created first, in order to transform records before indexing them to Algolia. The `region` must have been passed to the client instantiation method.
88
88
  *
89
+ * Warning: calling this method with an empty `objects` list replaces the index with an empty one, deleting all existing records.
90
+ *
89
91
  * @summary Helper: Replaces all objects (records) in the given `index_name` by leveraging the Transformation pipeline setup in the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) with the given `objects`. A temporary index is created during this process in order to backup your data.
90
92
  * @param replaceAllObjects - The `replaceAllObjects` object.
91
93
  * @param replaceAllObjects.indexName - The `indexName` to replace `objects` in.
package/dist/fetch.js CHANGED
@@ -22,7 +22,7 @@ __export(fetch_exports, {
22
22
  algoliasearch: () => algoliasearch,
23
23
  apiClientVersion: () => apiClientVersion
24
24
  });
25
- import { DEFAULT_REPLACE_ALL_OBJECTS_MAX_RETRIES } from "@algolia/client-common";
25
+ import { DEFAULT_REPLACE_ALL_OBJECTS_MAX_RETRIES, logWarning, withRequestId } from "@algolia/client-common";
26
26
  import { abtestingV3Client } from "@algolia/abtesting";
27
27
  import { abtestingClient } from "@algolia/client-abtesting";
28
28
  import { analyticsClient } from "@algolia/client-analytics";
@@ -130,6 +130,13 @@ function algoliasearch(appId, apiKey, options) {
130
130
  "`transformationOptions` must be set in the client config before calling this method. It defaults to the Ingestion API defaults. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/"
131
131
  );
132
132
  }
133
+ const searchRequestOptions = withRequestId(client.transporter, requestOptions);
134
+ if (objects.length === 0) {
135
+ logWarning(
136
+ client.transporter.logger,
137
+ `replaceAllObjectsWithTransformation was called with an empty list of objects, which will delete all records currently in the "${indexName}" index.`
138
+ );
139
+ }
133
140
  const randomSuffix = Math.floor(Math.random() * 1e6) + 1e5;
134
141
  const tmpIndexName = `${indexName}_tmp_${randomSuffix}`;
135
142
  if (scopes === void 0) {
@@ -145,7 +152,7 @@ function algoliasearch(appId, apiKey, options) {
145
152
  scope: scopes
146
153
  }
147
154
  },
148
- requestOptions
155
+ searchRequestOptions
149
156
  );
150
157
  const watchResponses = await ingestionTransporter.chunkedPush(
151
158
  {
@@ -158,11 +165,14 @@ function algoliasearch(appId, apiKey, options) {
158
165
  },
159
166
  requestOptions
160
167
  );
161
- await this.waitForTask({
162
- indexName: tmpIndexName,
163
- taskID: copyOperationResponse.taskID,
164
- maxRetries
165
- });
168
+ await this.waitForTask(
169
+ {
170
+ indexName: tmpIndexName,
171
+ taskID: copyOperationResponse.taskID,
172
+ maxRetries
173
+ },
174
+ searchRequestOptions
175
+ );
166
176
  copyOperationResponse = await this.operationIndex(
167
177
  {
168
178
  indexName,
@@ -172,28 +182,34 @@ function algoliasearch(appId, apiKey, options) {
172
182
  scope: scopes
173
183
  }
174
184
  },
175
- requestOptions
185
+ searchRequestOptions
186
+ );
187
+ await this.waitForTask(
188
+ {
189
+ indexName: tmpIndexName,
190
+ taskID: copyOperationResponse.taskID,
191
+ maxRetries
192
+ },
193
+ searchRequestOptions
176
194
  );
177
- await this.waitForTask({
178
- indexName: tmpIndexName,
179
- taskID: copyOperationResponse.taskID,
180
- maxRetries
181
- });
182
195
  const moveOperationResponse = await this.operationIndex(
183
196
  {
184
197
  indexName: tmpIndexName,
185
198
  operationIndexParams: { operation: "move", destination: indexName }
186
199
  },
187
- requestOptions
200
+ searchRequestOptions
201
+ );
202
+ await this.waitForTask(
203
+ {
204
+ indexName: tmpIndexName,
205
+ taskID: moveOperationResponse.taskID,
206
+ maxRetries
207
+ },
208
+ searchRequestOptions
188
209
  );
189
- await this.waitForTask({
190
- indexName: tmpIndexName,
191
- taskID: moveOperationResponse.taskID,
192
- maxRetries
193
- });
194
210
  return { copyOperationResponse, watchResponses, moveOperationResponse };
195
211
  } catch (error) {
196
- await this.deleteIndex({ indexName: tmpIndexName });
212
+ await this.deleteIndex({ indexName: tmpIndexName }, searchRequestOptions);
197
213
  throw error;
198
214
  }
199
215
  },
package/dist/fetch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../builds/fetch.ts","../builds/models.ts"],"sourcesContent":["// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport type { ClientOptions, RequestOptions } from '@algolia/client-common';\nimport { DEFAULT_REPLACE_ALL_OBJECTS_MAX_RETRIES } from '@algolia/client-common';\n\nimport type { AbtestingV3Client } from '@algolia/abtesting';\nimport { abtestingV3Client } from '@algolia/abtesting';\nimport type { AbtestingClient } from '@algolia/client-abtesting';\nimport { abtestingClient } from '@algolia/client-abtesting';\nimport type { AnalyticsClient } from '@algolia/client-analytics';\nimport { analyticsClient } from '@algolia/client-analytics';\nimport type { InsightsClient } from '@algolia/client-insights';\nimport { insightsClient } from '@algolia/client-insights';\nimport type { PersonalizationClient } from '@algolia/client-personalization';\nimport { personalizationClient } from '@algolia/client-personalization';\nimport type { QuerySuggestionsClient } from '@algolia/client-query-suggestions';\nimport { querySuggestionsClient } from '@algolia/client-query-suggestions';\nimport type { SearchClient } from '@algolia/client-search';\nimport { searchClient } from '@algolia/client-search';\nimport type { IngestionClient } from '@algolia/ingestion';\nimport { ingestionClient } from '@algolia/ingestion';\nimport type { MonitoringClient } from '@algolia/monitoring';\nimport { monitoringClient } from '@algolia/monitoring';\nimport type { RecommendClient } from '@algolia/recommend';\nimport { recommendClient } from '@algolia/recommend';\n\nimport type {\n PartialUpdateObjectsOptions,\n ReplaceAllObjectsOptions,\n ReplaceAllObjectsWithTransformationResponse,\n SaveObjectsOptions,\n} from '@algolia/client-search';\nimport type { WatchResponse } from '@algolia/ingestion';\n\nimport type {\n AbtestingRegionOptions,\n AbtestingV3RegionOptions,\n AnalyticsRegionOptions,\n IngestionRegion,\n IngestionRegionOptions,\n InitClientOptions,\n InsightsRegionOptions,\n PersonalizationRegionOptions,\n QuerySuggestionsRegionOptions,\n} from './models';\n\nexport * from './models';\n\nexport type Algoliasearch = SearchClient & {\n initAbtesting: (initOptions: InitClientOptions & AbtestingRegionOptions) => AbtestingClient;\n initAbtestingV3: (initOptions: InitClientOptions & AbtestingV3RegionOptions) => AbtestingV3Client;\n initAnalytics: (initOptions: InitClientOptions & AnalyticsRegionOptions) => AnalyticsClient;\n initIngestion: (initOptions: InitClientOptions & IngestionRegionOptions) => IngestionClient;\n initInsights: (initOptions: InitClientOptions & InsightsRegionOptions) => InsightsClient;\n initMonitoring: (initOptions?: InitClientOptions) => MonitoringClient;\n initPersonalization: (initOptions: InitClientOptions & PersonalizationRegionOptions) => PersonalizationClient;\n initQuerySuggestions: (initOptions: InitClientOptions & QuerySuggestionsRegionOptions) => QuerySuggestionsClient;\n initRecommend: (initOptions?: InitClientOptions) => RecommendClient;\n\n // Bridge helpers to expose along with the search endpoints at the root of the API client\n\n /**\n * Helper: Similar to the `saveObjects` method but requires a Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) to be created first, in order to transform records before indexing them to Algolia. The `region` must have been passed to the client instantiation method.\n *\n * @summary Save objects to an Algolia index by leveraging the Transformation pipeline setup using the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/).\n * @param saveObjects - The `saveObjects` object.\n * @param saveObjects.indexName - The `indexName` to save `objects` in.\n * @param saveObjects.objects - The array of `objects` to store in the given Algolia `indexName`.\n * @param saveObjects.batchSize - The size of the chunk of `objects`. The number of `batch` calls will be equal to `length(objects) / batchSize`. Defaults to 1000.\n * @param saveObjects.waitForTasks - Whether or not we should wait until every `batch` tasks has been processed, this operation may slow the total execution time of this method but is more reliable.\n * @param saveObjects.maxRetries - The maximum number of retries when polling for task completion. 100 by default.\n * @param requestOptions - The requestOptions to send along with the query, they will be forwarded to the `push` method and merged with the transporter requestOptions.\n */\n saveObjectsWithTransformation: (\n options: SaveObjectsOptions,\n requestOptions?: RequestOptions | undefined,\n ) => Promise<Array<WatchResponse>>;\n\n /**\n * Helper: Similar to the `partialUpdateObjects` method but requires a Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) to be created first, in order to transform records before indexing them to Algolia. The `region` must have been passed to the client instantiation method.\n *\n * @summary Save objects to an Algolia index by leveraging the Transformation pipeline setup in the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/).\n * @param partialUpdateObjects - The `partialUpdateObjects` object.\n * @param partialUpdateObjects.indexName - The `indexName` to update `objects` in.\n * @param partialUpdateObjects.objects - The array of `objects` to update in the given Algolia `indexName`.\n * @param partialUpdateObjects.createIfNotExists - To be provided if non-existing objects are passed, otherwise, the call will fail.\n * @param partialUpdateObjects.batchSize - The size of the chunk of `objects`. The number of `batch` calls will be equal to `length(objects) / batchSize`. Defaults to 1000.\n * @param partialUpdateObjects.waitForTasks - Whether or not we should wait until every `batch` tasks has been processed, this operation may slow the total execution time of this method but is more reliable.\n * @param partialUpdateObjects.maxRetries - The maximum number of retries when polling for task completion. 100 by default.\n * @param requestOptions - The requestOptions to send along with the query, they will be forwarded to the `push` method and merged with the transporter requestOptions.\n */\n partialUpdateObjectsWithTransformation: (\n options: PartialUpdateObjectsOptions,\n requestOptions?: RequestOptions | undefined,\n ) => Promise<Array<WatchResponse>>;\n\n /**\n * Helper: Similar to the `replaceAllObjects` method but requires a Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) to be created first, in order to transform records before indexing them to Algolia. The `region` must have been passed to the client instantiation method.\n *\n * @summary Helper: Replaces all objects (records) in the given `index_name` by leveraging the Transformation pipeline setup in the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) with the given `objects`. A temporary index is created during this process in order to backup your data.\n * @param replaceAllObjects - The `replaceAllObjects` object.\n * @param replaceAllObjects.indexName - The `indexName` to replace `objects` in.\n * @param replaceAllObjects.objects - The array of `objects` to store in the given Algolia `indexName`.\n * @param replaceAllObjects.batchSize - The size of the chunk of `objects`. The number of `batch` calls will be equal to `objects.length / batchSize`. Defaults to 1000.\n * @param replaceAllObjects.scopes - The `scopes` to keep from the index. Defaults to ['settings', 'rules', 'synonyms'].\n * @param replaceAllObjects.maxRetries - The maximum number of retries when polling for task completion. 800 by default.\n * @param requestOptions - The requestOptions to send along with the query, they will be forwarded to the `push`, `operationIndex` and `getEvent` method and merged with the transporter requestOptions.\n */\n replaceAllObjectsWithTransformation: (\n options: ReplaceAllObjectsOptions,\n requestOptions?: RequestOptions | undefined,\n ) => Promise<ReplaceAllObjectsWithTransformationResponse>;\n};\n\nexport type TransformationOptions = {\n // When provided, a second transporter will be created in order to leverage the `*WithTransformation` methods exposed by the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/).\n transformationOptions?: {\n region: IngestionRegion;\n } & ClientOptions;\n\n /** @deprecated Use `transformationOptions` instead. */\n transformation?:\n | {\n // The region of your Algolia application ID, used to target the correct hosts of the transformation service.\n region: IngestionRegion;\n }\n | undefined;\n};\n\nexport function algoliasearch(\n appId: string,\n apiKey: string,\n options?: (ClientOptions & TransformationOptions) | undefined,\n): Algoliasearch {\n if (!appId || typeof appId !== 'string') {\n throw new Error('`appId` is missing.');\n }\n\n if (!apiKey || typeof apiKey !== 'string') {\n throw new Error('`apiKey` is missing.');\n }\n\n const client = searchClient(appId, apiKey, options);\n\n let transformationConfig: ({ region: IngestionRegion } & ClientOptions) | undefined;\n\n if (options?.transformationOptions) {\n transformationConfig = options.transformationOptions;\n } else if (options?.transformation) {\n transformationConfig = { region: options.transformation.region };\n }\n\n let ingestionTransporter: IngestionClient | undefined;\n if (transformationConfig) {\n if (!transformationConfig.region) {\n throw new Error(\n '`region` is required in `transformationOptions`. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/',\n );\n }\n\n const { region, ...ingestionOptions } = transformationConfig;\n ingestionTransporter = ingestionClient(appId, apiKey, region, ingestionOptions);\n }\n\n return {\n ...client,\n\n async saveObjectsWithTransformation(\n { indexName, objects, batchSize, waitForTasks, maxRetries },\n requestOptions,\n ): Promise<Array<WatchResponse>> {\n if (!ingestionTransporter) {\n throw new Error(\n '`transformationOptions` must be set in the client config before calling this method. It defaults to the Ingestion API defaults. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/',\n );\n }\n\n return ingestionTransporter.chunkedPush(\n { indexName, objects, action: 'addObject', batchSize, waitForTasks, maxRetries },\n requestOptions,\n );\n },\n\n async partialUpdateObjectsWithTransformation(\n { indexName, objects, createIfNotExists, batchSize, waitForTasks, maxRetries },\n requestOptions,\n ): Promise<Array<WatchResponse>> {\n if (!ingestionTransporter) {\n throw new Error(\n '`transformationOptions` must be set in the client config before calling this method. It defaults to the Ingestion API defaults. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/',\n );\n }\n\n return ingestionTransporter.chunkedPush(\n {\n indexName,\n objects,\n action: createIfNotExists ? 'partialUpdateObject' : 'partialUpdateObjectNoCreate',\n batchSize,\n waitForTasks,\n maxRetries,\n },\n requestOptions,\n );\n },\n\n async replaceAllObjectsWithTransformation(\n {\n indexName,\n objects,\n batchSize,\n scopes,\n maxRetries = DEFAULT_REPLACE_ALL_OBJECTS_MAX_RETRIES,\n }: ReplaceAllObjectsOptions,\n requestOptions?: RequestOptions | undefined,\n ): Promise<ReplaceAllObjectsWithTransformationResponse> {\n if (!ingestionTransporter) {\n throw new Error(\n '`transformationOptions` must be set in the client config before calling this method. It defaults to the Ingestion API defaults. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/',\n );\n }\n\n const randomSuffix = Math.floor(Math.random() * 1000000) + 100000;\n const tmpIndexName = `${indexName}_tmp_${randomSuffix}`;\n\n if (scopes === undefined) {\n scopes = ['settings', 'rules', 'synonyms'];\n }\n\n try {\n let copyOperationResponse = await this.operationIndex(\n {\n indexName,\n operationIndexParams: {\n operation: 'copy',\n destination: tmpIndexName,\n scope: scopes,\n },\n },\n requestOptions,\n );\n\n const watchResponses = await ingestionTransporter.chunkedPush(\n {\n indexName: tmpIndexName,\n objects,\n waitForTasks: true,\n batchSize,\n referenceIndexName: indexName,\n maxRetries,\n },\n requestOptions,\n );\n\n await this.waitForTask({\n indexName: tmpIndexName,\n taskID: copyOperationResponse.taskID,\n maxRetries,\n });\n\n copyOperationResponse = await this.operationIndex(\n {\n indexName,\n operationIndexParams: {\n operation: 'copy',\n destination: tmpIndexName,\n scope: scopes,\n },\n },\n requestOptions,\n );\n await this.waitForTask({\n indexName: tmpIndexName,\n taskID: copyOperationResponse.taskID,\n maxRetries,\n });\n\n const moveOperationResponse = await this.operationIndex(\n {\n indexName: tmpIndexName,\n operationIndexParams: { operation: 'move', destination: indexName },\n },\n requestOptions,\n );\n await this.waitForTask({\n indexName: tmpIndexName,\n taskID: moveOperationResponse.taskID,\n maxRetries,\n });\n\n return { copyOperationResponse, watchResponses, moveOperationResponse };\n } catch (error) {\n await this.deleteIndex({ indexName: tmpIndexName });\n\n throw error;\n }\n },\n\n /**\n * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.\n */\n get _ua(): string {\n return client.transporter.algoliaAgent.value;\n },\n\n initAbtesting: (initOptions: InitClientOptions & AbtestingRegionOptions): AbtestingClient => {\n return abtestingClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initAbtestingV3: (initOptions: InitClientOptions & AbtestingV3RegionOptions): AbtestingV3Client => {\n return abtestingV3Client(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initAnalytics: (initOptions: InitClientOptions & AnalyticsRegionOptions): AnalyticsClient => {\n return analyticsClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initIngestion: (initOptions: InitClientOptions & IngestionRegionOptions): IngestionClient => {\n return ingestionClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initInsights: (initOptions: InitClientOptions & InsightsRegionOptions): InsightsClient => {\n return insightsClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initMonitoring: (initOptions: InitClientOptions = {}): MonitoringClient => {\n return monitoringClient(initOptions.appId || appId, initOptions.apiKey || apiKey, initOptions.options);\n },\n\n initPersonalization: (initOptions: InitClientOptions & PersonalizationRegionOptions): PersonalizationClient => {\n return personalizationClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initQuerySuggestions: (initOptions: InitClientOptions & QuerySuggestionsRegionOptions): QuerySuggestionsClient => {\n return querySuggestionsClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initRecommend: (initOptions: InitClientOptions = {}): RecommendClient => {\n return recommendClient(initOptions.appId || appId, initOptions.apiKey || apiKey, initOptions.options);\n },\n };\n}\n","// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport type { Region as AbtestingV3Region, RegionOptions as AbtestingV3RegionOptions } from '@algolia/abtesting';\nimport type { Region as AbtestingRegion, RegionOptions as AbtestingRegionOptions } from '@algolia/client-abtesting';\nimport type { Region as AnalyticsRegion, RegionOptions as AnalyticsRegionOptions } from '@algolia/client-analytics';\nimport type { Region as InsightsRegion, RegionOptions as InsightsRegionOptions } from '@algolia/client-insights';\nimport type {\n Region as PersonalizationRegion,\n RegionOptions as PersonalizationRegionOptions,\n} from '@algolia/client-personalization';\nimport type {\n Region as QuerySuggestionsRegion,\n RegionOptions as QuerySuggestionsRegionOptions,\n} from '@algolia/client-query-suggestions';\nimport type { Region as IngestionRegion, RegionOptions as IngestionRegionOptions } from '@algolia/ingestion';\n\nimport type { Direction } from '@algolia/client-analytics';\nimport type { ClientOptions } from '@algolia/client-common';\nimport type { EventType } from '@algolia/client-personalization';\nimport type {\n Action,\n AdvancedSyntaxFeatures,\n AlternativesAsExact,\n Anchoring,\n AroundPrecision,\n AroundRadius,\n AroundRadiusAll,\n AutomaticFacetFilter,\n AutomaticFacetFilters,\n Banner,\n BannerImage,\n BannerImageUrl,\n BannerLink,\n BaseIndexSettings,\n BaseSearchParams,\n BaseSearchParamsWithoutQuery,\n BaseSearchResponse,\n BooleanString,\n Condition,\n Consequence,\n ConsequenceHide,\n ConsequenceParams,\n ConsequenceQuery,\n ConsequenceQueryObject,\n CustomDeleteProps,\n CustomGetProps,\n CustomPostProps,\n CustomPutProps,\n DeleteSourceProps,\n DeletedAtResponse,\n Distinct,\n Edit,\n EditType,\n ErrorBase,\n ExactOnSingleWordQuery,\n Exhaustive,\n FacetFilters,\n FacetHits,\n FacetOrdering,\n FacetStats,\n Facets,\n GetTaskProps,\n HighlightResult,\n HighlightResultOption,\n Hit,\n IgnorePlurals,\n IndexSettingsAsSearchParams,\n InsideBoundingBox,\n Languages,\n MatchLevel,\n MatchedGeoLocation,\n Mode,\n NumericFilters,\n OptionalFilters,\n OptionalWords,\n Params,\n Personalization,\n Promote,\n PromoteObjectID,\n PromoteObjectIDs,\n QueryType,\n Range,\n RankingInfo,\n ReRankingApplyFilter,\n Redirect,\n RedirectRuleIndexData,\n RedirectRuleIndexMetadata,\n RedirectURL,\n RemoveStopWords,\n RemoveWordsIfNoResults,\n RenderingContent,\n SearchForFacetValuesProps,\n SearchForFacetValuesRequest,\n SearchForFacetValuesResponse,\n SearchHits,\n SearchPagination,\n SearchParams,\n SearchParamsObject,\n SearchParamsQuery,\n SearchResponse,\n SemanticSearch,\n SnippetResult,\n SnippetResultOption,\n SortRemainingBy,\n Source,\n SupportedLanguage,\n TagFilters,\n TaskStatus,\n TimeRange,\n TypoTolerance,\n TypoToleranceEnum,\n Value,\n Widgets,\n} from '@algolia/client-search';\nimport { apiClientVersion } from '@algolia/client-search';\nimport type { Event, EventStatus, WatchResponse } from '@algolia/ingestion';\n\nimport type {\n ABTest,\n ABTestConfiguration,\n ABTestResponse,\n AbTestsVariant,\n AbTestsVariantSearchParams,\n AddABTestsRequest,\n AddABTestsVariant,\n CustomSearchParams,\n DeleteABTestProps,\n EffectMetric,\n EmptySearchFilter,\n EstimateABTestRequest,\n EstimateABTestResponse,\n EstimateConfiguration,\n FilterEffects,\n GetABTestProps,\n ListABTestsProps,\n ListABTestsResponse,\n MinimumDetectableEffect,\n OutliersFilter,\n Status,\n StopABTestProps,\n Variant,\n} from '@algolia/client-abtesting';\n\nexport * from '@algolia/abtesting';\nexport * from '@algolia/client-abtesting';\nexport * from '@algolia/client-analytics';\nexport * from '@algolia/client-insights';\nexport * from '@algolia/client-personalization';\nexport * from '@algolia/client-query-suggestions';\nexport * from '@algolia/client-search';\nexport * from '@algolia/ingestion';\nexport * from '@algolia/monitoring';\nexport * from '@algolia/recommend';\n\nexport type Region =\n | AbtestingRegion\n | AbtestingV3Region\n | AnalyticsRegion\n | IngestionRegion\n | InsightsRegion\n | PersonalizationRegion\n | QuerySuggestionsRegion;\nexport type RegionOptions =\n | AbtestingRegionOptions\n | AbtestingV3RegionOptions\n | AnalyticsRegionOptions\n | IngestionRegionOptions\n | InsightsRegionOptions\n | PersonalizationRegionOptions\n | QuerySuggestionsRegionOptions;\n\nexport type {\n AbtestingRegion,\n AbtestingRegionOptions,\n AbtestingV3Region,\n AbtestingV3RegionOptions,\n AnalyticsRegion,\n AnalyticsRegionOptions,\n EventType,\n IngestionRegion,\n IngestionRegionOptions,\n InsightsRegion,\n InsightsRegionOptions,\n PersonalizationRegion,\n PersonalizationRegionOptions,\n QuerySuggestionsRegion,\n QuerySuggestionsRegionOptions,\n Status,\n};\n\nexport type {\n ABTest,\n ABTestConfiguration,\n ABTestResponse,\n AbTestsVariant,\n AbTestsVariantSearchParams,\n Action,\n AddABTestsRequest,\n AddABTestsVariant,\n AdvancedSyntaxFeatures,\n AlternativesAsExact,\n Anchoring,\n AroundPrecision,\n AroundRadius,\n AroundRadiusAll,\n AutomaticFacetFilter,\n AutomaticFacetFilters,\n Banner,\n BannerImage,\n BannerImageUrl,\n BannerLink,\n BaseIndexSettings,\n BaseSearchParams,\n BaseSearchParamsWithoutQuery,\n BaseSearchResponse,\n BooleanString,\n Condition,\n Consequence,\n ConsequenceHide,\n ConsequenceParams,\n ConsequenceQuery,\n ConsequenceQueryObject,\n CustomDeleteProps,\n CustomGetProps,\n CustomPostProps,\n CustomPutProps,\n CustomSearchParams,\n DeleteABTestProps,\n DeleteSourceProps,\n DeletedAtResponse,\n Direction,\n Distinct,\n Edit,\n EditType,\n EffectMetric,\n EmptySearchFilter,\n ErrorBase,\n EstimateABTestRequest,\n EstimateABTestResponse,\n EstimateConfiguration,\n Event,\n EventStatus,\n ExactOnSingleWordQuery,\n Exhaustive,\n FacetFilters,\n FacetHits,\n FacetOrdering,\n FacetStats,\n Facets,\n FilterEffects,\n GetABTestProps,\n GetTaskProps,\n HighlightResult,\n HighlightResultOption,\n Hit,\n IgnorePlurals,\n IndexSettingsAsSearchParams,\n InsideBoundingBox,\n Languages,\n ListABTestsProps,\n ListABTestsResponse,\n MatchLevel,\n MatchedGeoLocation,\n MinimumDetectableEffect,\n Mode,\n NumericFilters,\n OptionalFilters,\n OptionalWords,\n OutliersFilter,\n Params,\n Personalization,\n Promote,\n PromoteObjectID,\n PromoteObjectIDs,\n QueryType,\n Range,\n RankingInfo,\n ReRankingApplyFilter,\n Redirect,\n RedirectRuleIndexData,\n RedirectRuleIndexMetadata,\n RedirectURL,\n RemoveStopWords,\n RemoveWordsIfNoResults,\n RenderingContent,\n SearchForFacetValuesProps,\n SearchForFacetValuesRequest,\n SearchForFacetValuesResponse,\n SearchHits,\n SearchPagination,\n SearchParams,\n SearchParamsObject,\n SearchParamsQuery,\n SearchResponse,\n SemanticSearch,\n SnippetResult,\n SnippetResultOption,\n SortRemainingBy,\n Source,\n StopABTestProps,\n SupportedLanguage,\n TagFilters,\n TaskStatus,\n TimeRange,\n TypoTolerance,\n TypoToleranceEnum,\n Value,\n Variant,\n WatchResponse,\n Widgets,\n};\n\nexport { apiClientVersion };\n\n/**\n * Options forwarded to the client initialized via the `init` method.\n */\nexport type InitClientOptions = Partial<{\n /**\n * App to target with the initialized client, defaults to the `algoliasearch` appId.\n */\n appId: string;\n /**\n * API key of the targeted app ID, defaults to the `algoliasearch` apiKey.\n */\n apiKey: string;\n options: ClientOptions;\n}>;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../builds/fetch.ts","../builds/models.ts"],"sourcesContent":["// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport type { ClientOptions, RequestOptions } from '@algolia/client-common';\nimport { DEFAULT_REPLACE_ALL_OBJECTS_MAX_RETRIES, logWarning, withRequestId } from '@algolia/client-common';\n\nimport type { AbtestingV3Client } from '@algolia/abtesting';\nimport { abtestingV3Client } from '@algolia/abtesting';\nimport type { AbtestingClient } from '@algolia/client-abtesting';\nimport { abtestingClient } from '@algolia/client-abtesting';\nimport type { AnalyticsClient } from '@algolia/client-analytics';\nimport { analyticsClient } from '@algolia/client-analytics';\nimport type { InsightsClient } from '@algolia/client-insights';\nimport { insightsClient } from '@algolia/client-insights';\nimport type { PersonalizationClient } from '@algolia/client-personalization';\nimport { personalizationClient } from '@algolia/client-personalization';\nimport type { QuerySuggestionsClient } from '@algolia/client-query-suggestions';\nimport { querySuggestionsClient } from '@algolia/client-query-suggestions';\nimport type { SearchClient } from '@algolia/client-search';\nimport { searchClient } from '@algolia/client-search';\nimport type { IngestionClient } from '@algolia/ingestion';\nimport { ingestionClient } from '@algolia/ingestion';\nimport type { MonitoringClient } from '@algolia/monitoring';\nimport { monitoringClient } from '@algolia/monitoring';\nimport type { RecommendClient } from '@algolia/recommend';\nimport { recommendClient } from '@algolia/recommend';\n\nimport type {\n PartialUpdateObjectsOptions,\n ReplaceAllObjectsOptions,\n ReplaceAllObjectsWithTransformationResponse,\n SaveObjectsOptions,\n} from '@algolia/client-search';\nimport type { WatchResponse } from '@algolia/ingestion';\n\nimport type {\n AbtestingRegionOptions,\n AbtestingV3RegionOptions,\n AnalyticsRegionOptions,\n IngestionRegion,\n IngestionRegionOptions,\n InitClientOptions,\n InsightsRegionOptions,\n PersonalizationRegionOptions,\n QuerySuggestionsRegionOptions,\n} from './models';\n\nexport * from './models';\n\nexport type Algoliasearch = SearchClient & {\n initAbtesting: (initOptions: InitClientOptions & AbtestingRegionOptions) => AbtestingClient;\n initAbtestingV3: (initOptions: InitClientOptions & AbtestingV3RegionOptions) => AbtestingV3Client;\n initAnalytics: (initOptions: InitClientOptions & AnalyticsRegionOptions) => AnalyticsClient;\n initIngestion: (initOptions: InitClientOptions & IngestionRegionOptions) => IngestionClient;\n initInsights: (initOptions: InitClientOptions & InsightsRegionOptions) => InsightsClient;\n initMonitoring: (initOptions?: InitClientOptions) => MonitoringClient;\n initPersonalization: (initOptions: InitClientOptions & PersonalizationRegionOptions) => PersonalizationClient;\n initQuerySuggestions: (initOptions: InitClientOptions & QuerySuggestionsRegionOptions) => QuerySuggestionsClient;\n initRecommend: (initOptions?: InitClientOptions) => RecommendClient;\n\n // Bridge helpers to expose along with the search endpoints at the root of the API client\n\n /**\n * Helper: Similar to the `saveObjects` method but requires a Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) to be created first, in order to transform records before indexing them to Algolia. The `region` must have been passed to the client instantiation method.\n *\n * @summary Save objects to an Algolia index by leveraging the Transformation pipeline setup using the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/).\n * @param saveObjects - The `saveObjects` object.\n * @param saveObjects.indexName - The `indexName` to save `objects` in.\n * @param saveObjects.objects - The array of `objects` to store in the given Algolia `indexName`.\n * @param saveObjects.batchSize - The size of the chunk of `objects`. The number of `batch` calls will be equal to `length(objects) / batchSize`. Defaults to 1000.\n * @param saveObjects.waitForTasks - Whether or not we should wait until every `batch` tasks has been processed, this operation may slow the total execution time of this method but is more reliable.\n * @param saveObjects.maxRetries - The maximum number of retries when polling for task completion. 100 by default.\n * @param requestOptions - The requestOptions to send along with the query, they will be forwarded to the `push` method and merged with the transporter requestOptions.\n */\n saveObjectsWithTransformation: (\n options: SaveObjectsOptions,\n requestOptions?: RequestOptions | undefined,\n ) => Promise<Array<WatchResponse>>;\n\n /**\n * Helper: Similar to the `partialUpdateObjects` method but requires a Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) to be created first, in order to transform records before indexing them to Algolia. The `region` must have been passed to the client instantiation method.\n *\n * @summary Save objects to an Algolia index by leveraging the Transformation pipeline setup in the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/).\n * @param partialUpdateObjects - The `partialUpdateObjects` object.\n * @param partialUpdateObjects.indexName - The `indexName` to update `objects` in.\n * @param partialUpdateObjects.objects - The array of `objects` to update in the given Algolia `indexName`.\n * @param partialUpdateObjects.createIfNotExists - To be provided if non-existing objects are passed, otherwise, the call will fail.\n * @param partialUpdateObjects.batchSize - The size of the chunk of `objects`. The number of `batch` calls will be equal to `length(objects) / batchSize`. Defaults to 1000.\n * @param partialUpdateObjects.waitForTasks - Whether or not we should wait until every `batch` tasks has been processed, this operation may slow the total execution time of this method but is more reliable.\n * @param partialUpdateObjects.maxRetries - The maximum number of retries when polling for task completion. 100 by default.\n * @param requestOptions - The requestOptions to send along with the query, they will be forwarded to the `push` method and merged with the transporter requestOptions.\n */\n partialUpdateObjectsWithTransformation: (\n options: PartialUpdateObjectsOptions,\n requestOptions?: RequestOptions | undefined,\n ) => Promise<Array<WatchResponse>>;\n\n /**\n * Helper: Similar to the `replaceAllObjects` method but requires a Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) to be created first, in order to transform records before indexing them to Algolia. The `region` must have been passed to the client instantiation method.\n *\n * Warning: calling this method with an empty `objects` list replaces the index with an empty one, deleting all existing records.\n *\n * @summary Helper: Replaces all objects (records) in the given `index_name` by leveraging the Transformation pipeline setup in the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/) with the given `objects`. A temporary index is created during this process in order to backup your data.\n * @param replaceAllObjects - The `replaceAllObjects` object.\n * @param replaceAllObjects.indexName - The `indexName` to replace `objects` in.\n * @param replaceAllObjects.objects - The array of `objects` to store in the given Algolia `indexName`.\n * @param replaceAllObjects.batchSize - The size of the chunk of `objects`. The number of `batch` calls will be equal to `objects.length / batchSize`. Defaults to 1000.\n * @param replaceAllObjects.scopes - The `scopes` to keep from the index. Defaults to ['settings', 'rules', 'synonyms'].\n * @param replaceAllObjects.maxRetries - The maximum number of retries when polling for task completion. 800 by default.\n * @param requestOptions - The requestOptions to send along with the query, they will be forwarded to the `push`, `operationIndex` and `getEvent` method and merged with the transporter requestOptions.\n */\n replaceAllObjectsWithTransformation: (\n options: ReplaceAllObjectsOptions,\n requestOptions?: RequestOptions | undefined,\n ) => Promise<ReplaceAllObjectsWithTransformationResponse>;\n};\n\nexport type TransformationOptions = {\n // When provided, a second transporter will be created in order to leverage the `*WithTransformation` methods exposed by the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push/).\n transformationOptions?: {\n region: IngestionRegion;\n } & ClientOptions;\n\n /** @deprecated Use `transformationOptions` instead. */\n transformation?:\n | {\n // The region of your Algolia application ID, used to target the correct hosts of the transformation service.\n region: IngestionRegion;\n }\n | undefined;\n};\n\nexport function algoliasearch(\n appId: string,\n apiKey: string,\n options?: (ClientOptions & TransformationOptions) | undefined,\n): Algoliasearch {\n if (!appId || typeof appId !== 'string') {\n throw new Error('`appId` is missing.');\n }\n\n if (!apiKey || typeof apiKey !== 'string') {\n throw new Error('`apiKey` is missing.');\n }\n\n const client = searchClient(appId, apiKey, options);\n\n let transformationConfig: ({ region: IngestionRegion } & ClientOptions) | undefined;\n\n if (options?.transformationOptions) {\n transformationConfig = options.transformationOptions;\n } else if (options?.transformation) {\n transformationConfig = { region: options.transformation.region };\n }\n\n let ingestionTransporter: IngestionClient | undefined;\n if (transformationConfig) {\n if (!transformationConfig.region) {\n throw new Error(\n '`region` is required in `transformationOptions`. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/',\n );\n }\n\n const { region, ...ingestionOptions } = transformationConfig;\n ingestionTransporter = ingestionClient(appId, apiKey, region, ingestionOptions);\n }\n\n return {\n ...client,\n\n async saveObjectsWithTransformation(\n { indexName, objects, batchSize, waitForTasks, maxRetries },\n requestOptions,\n ): Promise<Array<WatchResponse>> {\n if (!ingestionTransporter) {\n throw new Error(\n '`transformationOptions` must be set in the client config before calling this method. It defaults to the Ingestion API defaults. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/',\n );\n }\n\n return ingestionTransporter.chunkedPush(\n { indexName, objects, action: 'addObject', batchSize, waitForTasks, maxRetries },\n requestOptions,\n );\n },\n\n async partialUpdateObjectsWithTransformation(\n { indexName, objects, createIfNotExists, batchSize, waitForTasks, maxRetries },\n requestOptions,\n ): Promise<Array<WatchResponse>> {\n if (!ingestionTransporter) {\n throw new Error(\n '`transformationOptions` must be set in the client config before calling this method. It defaults to the Ingestion API defaults. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/',\n );\n }\n\n return ingestionTransporter.chunkedPush(\n {\n indexName,\n objects,\n action: createIfNotExists ? 'partialUpdateObject' : 'partialUpdateObjectNoCreate',\n batchSize,\n waitForTasks,\n maxRetries,\n },\n requestOptions,\n );\n },\n\n async replaceAllObjectsWithTransformation(\n {\n indexName,\n objects,\n batchSize,\n scopes,\n maxRetries = DEFAULT_REPLACE_ALL_OBJECTS_MAX_RETRIES,\n }: ReplaceAllObjectsOptions,\n requestOptions?: RequestOptions | undefined,\n ): Promise<ReplaceAllObjectsWithTransformationResponse> {\n if (!ingestionTransporter) {\n throw new Error(\n '`transformationOptions` must be set in the client config before calling this method. It defaults to the Ingestion API defaults. See https://www.algolia.com/doc/libraries/sdk/methods/ingestion/',\n );\n }\n\n const searchRequestOptions = withRequestId(client.transporter, requestOptions);\n\n if (objects.length === 0) {\n logWarning(\n client.transporter.logger,\n `replaceAllObjectsWithTransformation was called with an empty list of objects, which will delete all records currently in the \"${indexName}\" index.`,\n );\n }\n\n const randomSuffix = Math.floor(Math.random() * 1000000) + 100000;\n const tmpIndexName = `${indexName}_tmp_${randomSuffix}`;\n\n if (scopes === undefined) {\n scopes = ['settings', 'rules', 'synonyms'];\n }\n\n try {\n let copyOperationResponse = await this.operationIndex(\n {\n indexName,\n operationIndexParams: {\n operation: 'copy',\n destination: tmpIndexName,\n scope: scopes,\n },\n },\n searchRequestOptions,\n );\n\n const watchResponses = await ingestionTransporter.chunkedPush(\n {\n indexName: tmpIndexName,\n objects,\n waitForTasks: true,\n batchSize,\n referenceIndexName: indexName,\n maxRetries,\n },\n requestOptions,\n );\n\n await this.waitForTask(\n {\n indexName: tmpIndexName,\n taskID: copyOperationResponse.taskID,\n maxRetries,\n },\n searchRequestOptions,\n );\n\n copyOperationResponse = await this.operationIndex(\n {\n indexName,\n operationIndexParams: {\n operation: 'copy',\n destination: tmpIndexName,\n scope: scopes,\n },\n },\n searchRequestOptions,\n );\n await this.waitForTask(\n {\n indexName: tmpIndexName,\n taskID: copyOperationResponse.taskID,\n maxRetries,\n },\n searchRequestOptions,\n );\n\n const moveOperationResponse = await this.operationIndex(\n {\n indexName: tmpIndexName,\n operationIndexParams: { operation: 'move', destination: indexName },\n },\n searchRequestOptions,\n );\n await this.waitForTask(\n {\n indexName: tmpIndexName,\n taskID: moveOperationResponse.taskID,\n maxRetries,\n },\n searchRequestOptions,\n );\n\n return { copyOperationResponse, watchResponses, moveOperationResponse };\n } catch (error) {\n await this.deleteIndex({ indexName: tmpIndexName }, searchRequestOptions);\n\n throw error;\n }\n },\n\n /**\n * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.\n */\n get _ua(): string {\n return client.transporter.algoliaAgent.value;\n },\n\n initAbtesting: (initOptions: InitClientOptions & AbtestingRegionOptions): AbtestingClient => {\n return abtestingClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initAbtestingV3: (initOptions: InitClientOptions & AbtestingV3RegionOptions): AbtestingV3Client => {\n return abtestingV3Client(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initAnalytics: (initOptions: InitClientOptions & AnalyticsRegionOptions): AnalyticsClient => {\n return analyticsClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initIngestion: (initOptions: InitClientOptions & IngestionRegionOptions): IngestionClient => {\n return ingestionClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initInsights: (initOptions: InitClientOptions & InsightsRegionOptions): InsightsClient => {\n return insightsClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initMonitoring: (initOptions: InitClientOptions = {}): MonitoringClient => {\n return monitoringClient(initOptions.appId || appId, initOptions.apiKey || apiKey, initOptions.options);\n },\n\n initPersonalization: (initOptions: InitClientOptions & PersonalizationRegionOptions): PersonalizationClient => {\n return personalizationClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initQuerySuggestions: (initOptions: InitClientOptions & QuerySuggestionsRegionOptions): QuerySuggestionsClient => {\n return querySuggestionsClient(\n initOptions.appId || appId,\n initOptions.apiKey || apiKey,\n initOptions.region,\n initOptions.options,\n );\n },\n\n initRecommend: (initOptions: InitClientOptions = {}): RecommendClient => {\n return recommendClient(initOptions.appId || appId, initOptions.apiKey || apiKey, initOptions.options);\n },\n };\n}\n","// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport type { Region as AbtestingV3Region, RegionOptions as AbtestingV3RegionOptions } from '@algolia/abtesting';\nimport type { Region as AbtestingRegion, RegionOptions as AbtestingRegionOptions } from '@algolia/client-abtesting';\nimport type { Region as AnalyticsRegion, RegionOptions as AnalyticsRegionOptions } from '@algolia/client-analytics';\nimport type { Region as InsightsRegion, RegionOptions as InsightsRegionOptions } from '@algolia/client-insights';\nimport type {\n Region as PersonalizationRegion,\n RegionOptions as PersonalizationRegionOptions,\n} from '@algolia/client-personalization';\nimport type {\n Region as QuerySuggestionsRegion,\n RegionOptions as QuerySuggestionsRegionOptions,\n} from '@algolia/client-query-suggestions';\nimport type { Region as IngestionRegion, RegionOptions as IngestionRegionOptions } from '@algolia/ingestion';\n\nimport type { Direction } from '@algolia/client-analytics';\nimport type { ClientOptions } from '@algolia/client-common';\nimport type { EventType } from '@algolia/client-personalization';\nimport type {\n Action,\n AdvancedSyntaxFeatures,\n AlternativesAsExact,\n Anchoring,\n AroundPrecision,\n AroundRadius,\n AroundRadiusAll,\n AutomaticFacetFilter,\n AutomaticFacetFilters,\n Banner,\n BannerImage,\n BannerImageUrl,\n BannerLink,\n BaseIndexSettings,\n BaseSearchParams,\n BaseSearchParamsWithoutQuery,\n BaseSearchResponse,\n BooleanString,\n Condition,\n Consequence,\n ConsequenceHide,\n ConsequenceParams,\n ConsequenceQuery,\n ConsequenceQueryObject,\n CustomDeleteProps,\n CustomGetProps,\n CustomPostProps,\n CustomPutProps,\n DeleteSourceProps,\n DeletedAtResponse,\n Distinct,\n Edit,\n EditType,\n ErrorBase,\n ExactOnSingleWordQuery,\n Exhaustive,\n FacetFilters,\n FacetHits,\n FacetOrdering,\n FacetStats,\n Facets,\n GetTaskProps,\n HighlightResult,\n HighlightResultOption,\n Hit,\n IgnorePlurals,\n IndexSettingsAsSearchParams,\n InsideBoundingBox,\n Languages,\n MatchLevel,\n MatchedGeoLocation,\n Mode,\n NumericFilters,\n OptionalFilters,\n OptionalWords,\n Params,\n Personalization,\n Promote,\n PromoteObjectID,\n PromoteObjectIDs,\n QueryType,\n Range,\n RankingInfo,\n ReRankingApplyFilter,\n Redirect,\n RedirectRuleIndexData,\n RedirectRuleIndexMetadata,\n RedirectURL,\n RemoveStopWords,\n RemoveWordsIfNoResults,\n RenderingContent,\n SearchForFacetValuesProps,\n SearchForFacetValuesRequest,\n SearchForFacetValuesResponse,\n SearchHits,\n SearchPagination,\n SearchParams,\n SearchParamsObject,\n SearchParamsQuery,\n SearchResponse,\n SemanticSearch,\n SnippetResult,\n SnippetResultOption,\n SortRemainingBy,\n Source,\n SupportedLanguage,\n TagFilters,\n TaskStatus,\n TimeRange,\n TypoTolerance,\n TypoToleranceEnum,\n Value,\n Widgets,\n} from '@algolia/client-search';\nimport { apiClientVersion } from '@algolia/client-search';\nimport type { Event, EventStatus, WatchResponse } from '@algolia/ingestion';\n\nimport type {\n ABTest,\n ABTestConfiguration,\n ABTestResponse,\n AbTestsVariant,\n AbTestsVariantSearchParams,\n AddABTestsRequest,\n AddABTestsVariant,\n CustomSearchParams,\n DeleteABTestProps,\n EffectMetric,\n EmptySearchFilter,\n EstimateABTestRequest,\n EstimateABTestResponse,\n EstimateConfiguration,\n FilterEffects,\n GetABTestProps,\n ListABTestsProps,\n ListABTestsResponse,\n MinimumDetectableEffect,\n OutliersFilter,\n Status,\n StopABTestProps,\n Variant,\n} from '@algolia/client-abtesting';\n\nexport * from '@algolia/abtesting';\nexport * from '@algolia/client-abtesting';\nexport * from '@algolia/client-analytics';\nexport * from '@algolia/client-insights';\nexport * from '@algolia/client-personalization';\nexport * from '@algolia/client-query-suggestions';\nexport * from '@algolia/client-search';\nexport * from '@algolia/ingestion';\nexport * from '@algolia/monitoring';\nexport * from '@algolia/recommend';\n\nexport type Region =\n | AbtestingRegion\n | AbtestingV3Region\n | AnalyticsRegion\n | IngestionRegion\n | InsightsRegion\n | PersonalizationRegion\n | QuerySuggestionsRegion;\nexport type RegionOptions =\n | AbtestingRegionOptions\n | AbtestingV3RegionOptions\n | AnalyticsRegionOptions\n | IngestionRegionOptions\n | InsightsRegionOptions\n | PersonalizationRegionOptions\n | QuerySuggestionsRegionOptions;\n\nexport type {\n AbtestingRegion,\n AbtestingRegionOptions,\n AbtestingV3Region,\n AbtestingV3RegionOptions,\n AnalyticsRegion,\n AnalyticsRegionOptions,\n EventType,\n IngestionRegion,\n IngestionRegionOptions,\n InsightsRegion,\n InsightsRegionOptions,\n PersonalizationRegion,\n PersonalizationRegionOptions,\n QuerySuggestionsRegion,\n QuerySuggestionsRegionOptions,\n Status,\n};\n\nexport type {\n ABTest,\n ABTestConfiguration,\n ABTestResponse,\n AbTestsVariant,\n AbTestsVariantSearchParams,\n Action,\n AddABTestsRequest,\n AddABTestsVariant,\n AdvancedSyntaxFeatures,\n AlternativesAsExact,\n Anchoring,\n AroundPrecision,\n AroundRadius,\n AroundRadiusAll,\n AutomaticFacetFilter,\n AutomaticFacetFilters,\n Banner,\n BannerImage,\n BannerImageUrl,\n BannerLink,\n BaseIndexSettings,\n BaseSearchParams,\n BaseSearchParamsWithoutQuery,\n BaseSearchResponse,\n BooleanString,\n Condition,\n Consequence,\n ConsequenceHide,\n ConsequenceParams,\n ConsequenceQuery,\n ConsequenceQueryObject,\n CustomDeleteProps,\n CustomGetProps,\n CustomPostProps,\n CustomPutProps,\n CustomSearchParams,\n DeleteABTestProps,\n DeleteSourceProps,\n DeletedAtResponse,\n Direction,\n Distinct,\n Edit,\n EditType,\n EffectMetric,\n EmptySearchFilter,\n ErrorBase,\n EstimateABTestRequest,\n EstimateABTestResponse,\n EstimateConfiguration,\n Event,\n EventStatus,\n ExactOnSingleWordQuery,\n Exhaustive,\n FacetFilters,\n FacetHits,\n FacetOrdering,\n FacetStats,\n Facets,\n FilterEffects,\n GetABTestProps,\n GetTaskProps,\n HighlightResult,\n HighlightResultOption,\n Hit,\n IgnorePlurals,\n IndexSettingsAsSearchParams,\n InsideBoundingBox,\n Languages,\n ListABTestsProps,\n ListABTestsResponse,\n MatchLevel,\n MatchedGeoLocation,\n MinimumDetectableEffect,\n Mode,\n NumericFilters,\n OptionalFilters,\n OptionalWords,\n OutliersFilter,\n Params,\n Personalization,\n Promote,\n PromoteObjectID,\n PromoteObjectIDs,\n QueryType,\n Range,\n RankingInfo,\n ReRankingApplyFilter,\n Redirect,\n RedirectRuleIndexData,\n RedirectRuleIndexMetadata,\n RedirectURL,\n RemoveStopWords,\n RemoveWordsIfNoResults,\n RenderingContent,\n SearchForFacetValuesProps,\n SearchForFacetValuesRequest,\n SearchForFacetValuesResponse,\n SearchHits,\n SearchPagination,\n SearchParams,\n SearchParamsObject,\n SearchParamsQuery,\n SearchResponse,\n SemanticSearch,\n SnippetResult,\n SnippetResultOption,\n SortRemainingBy,\n Source,\n StopABTestProps,\n SupportedLanguage,\n TagFilters,\n TaskStatus,\n TimeRange,\n TypoTolerance,\n TypoToleranceEnum,\n Value,\n Variant,\n WatchResponse,\n Widgets,\n};\n\nexport { apiClientVersion };\n\n/**\n * Options forwarded to the client initialized via the `init` method.\n */\nexport type InitClientOptions = Partial<{\n /**\n * App to target with the initialized client, defaults to the `algoliasearch` appId.\n */\n appId: string;\n /**\n * API key of the targeted app ID, defaults to the `algoliasearch` apiKey.\n */\n apiKey: string;\n options: ClientOptions;\n}>;\n"],"mappings":"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","names":[]}
@@ -1605,7 +1605,7 @@ type LegacySearchQuery = LegacySearchForFacets | LegacySearchForHits;
1605
1605
  */
1606
1606
  type LegacySearchMethodProps = LegacySearchQuery[];
1607
1607
 
1608
- declare const apiClientVersion = "5.56.0";
1608
+ declare const apiClientVersion = "5.59.0";
1609
1609
  declare function createLiteClient({ appId: appIdOption, apiKey: apiKeyOption, authMode, algoliaAgents, ...options }: CreateClientOptions): {
1610
1610
  transporter: _algolia_client_common.TransporterWithHttpInfo;
1611
1611
  /**
@@ -9,7 +9,7 @@ import { createXhrRequester } from "@algolia/requester-browser-xhr";
9
9
 
10
10
  // lite/src/liteClient.ts
11
11
  import { createAuth, createTransporter, getAlgoliaAgent, shuffle, validateRequired } from "@algolia/client-common";
12
- var apiClientVersion = "5.56.0";
12
+ var apiClientVersion = "5.59.0";
13
13
  function getDefaultHosts(appId) {
14
14
  return [
15
15
  {
@@ -369,6 +369,7 @@ function liteClient(appId, apiKey, options) {
369
369
  requester: createXhrRequester(),
370
370
  algoliaAgents: [{ segment: "Browser" }],
371
371
  authMode: "WithinQueryParameters",
372
+ requestIdChannel: "queryParameters",
372
373
  responsesCache: createMemoryCache(),
373
374
  requestsCache: createMemoryCache({ serializable: false }),
374
375
  hostsCache: createFallbackableCache({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lite/builds/browser.ts","../../../lite/src/liteClient.ts"],"sourcesContent":["// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport {\n createBrowserLocalStorageCache,\n createFallbackableCache,\n createMemoryCache,\n createNullLogger,\n} from '@algolia/client-common';\nimport { createXhrRequester } from '@algolia/requester-browser-xhr';\n\nimport type { ClientOptions } from '@algolia/client-common';\n\nimport { apiClientVersion, createLiteClient } from '../src/liteClient';\n\nexport { apiClientVersion } from '../src/liteClient';\n\nexport * from '../model';\n\nexport function liteClient(appId: string, apiKey: string, options?: ClientOptions | undefined): LiteClient {\n if (!appId || typeof appId !== 'string') {\n throw new Error('`appId` is missing.');\n }\n\n if (!apiKey || typeof apiKey !== 'string') {\n throw new Error('`apiKey` is missing.');\n }\n\n const { compression: _compression, ...browserOptions } = options || {};\n\n return createLiteClient({\n appId,\n apiKey,\n timeouts: {\n connect: 1000,\n read: 2000,\n write: 30000,\n },\n logger: createNullLogger(),\n requester: createXhrRequester(),\n algoliaAgents: [{ segment: 'Browser' }],\n authMode: 'WithinQueryParameters',\n responsesCache: createMemoryCache(),\n requestsCache: createMemoryCache({ serializable: false }),\n hostsCache: createFallbackableCache({\n caches: [createBrowserLocalStorageCache({ key: `${apiClientVersion}-${appId}` }), createMemoryCache()],\n }),\n ...browserOptions,\n });\n}\n\nexport type LiteClient = ReturnType<typeof createLiteClient>;\n","// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport type {\n AlgoliaHttpResponse,\n CreateClientOptions,\n Headers,\n Host,\n QueryParameters,\n Request,\n RequestOptions,\n} from '@algolia/client-common';\nimport { createAuth, createTransporter, getAlgoliaAgent, shuffle, validateRequired } from '@algolia/client-common';\n\nimport type { GetRecommendationsParams } from '../model/getRecommendationsParams';\nimport type { GetRecommendationsResponse } from '../model/getRecommendationsResponse';\nimport type { SearchMethodParams } from '../model/searchMethodParams';\nimport type { SearchResponses } from '../model/searchResponses';\n\nimport type {\n CustomPostProps,\n LegacyGetRecommendationsParams,\n LegacySearchMethodProps,\n} from '../model/clientMethodProps';\n\nimport type { SearchForFacetValuesResponse } from '../model/searchForFacetValuesResponse';\nimport type { SearchResponse } from '../model/searchResponse';\n\nexport const apiClientVersion = '5.56.0';\n\nfunction getDefaultHosts(appId: string): Host[] {\n return (\n [\n {\n url: `${appId}-dsn.algolia.net`,\n accept: 'read',\n protocol: 'https',\n },\n {\n url: `${appId}.algolia.net`,\n accept: 'write',\n protocol: 'https',\n },\n ] as Host[]\n ).concat(\n shuffle([\n {\n url: `${appId}-1.algolianet.com`,\n accept: 'readWrite',\n protocol: 'https',\n },\n {\n url: `${appId}-2.algolianet.com`,\n accept: 'readWrite',\n protocol: 'https',\n },\n {\n url: `${appId}-3.algolianet.com`,\n accept: 'readWrite',\n protocol: 'https',\n },\n ]),\n );\n}\n\nexport function createLiteClient({\n appId: appIdOption,\n apiKey: apiKeyOption,\n authMode,\n algoliaAgents,\n ...options\n}: CreateClientOptions) {\n const auth = createAuth(appIdOption, apiKeyOption, authMode);\n const transporter = createTransporter({\n hosts: getDefaultHosts(appIdOption),\n ...options,\n algoliaAgent: getAlgoliaAgent({\n algoliaAgents,\n client: 'Lite',\n version: apiClientVersion,\n }),\n baseHeaders: {\n 'content-type': 'text/plain',\n ...auth.headers(),\n ...options.baseHeaders,\n },\n baseQueryParameters: {\n ...auth.queryParameters(),\n ...options.baseQueryParameters,\n },\n });\n\n return {\n transporter,\n\n /**\n * The `appId` currently in use.\n */\n appId: appIdOption,\n\n /**\n * The `apiKey` currently in use.\n */\n apiKey: apiKeyOption,\n\n /**\n * Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties.\n */\n clearCache(): Promise<void> {\n return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => undefined);\n },\n\n /**\n * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.\n */\n get _ua(): string {\n return transporter.algoliaAgent.value;\n },\n\n /**\n * Adds a `segment` to the `x-algolia-agent` sent with every requests.\n *\n * @param segment - The algolia agent (user-agent) segment to add.\n * @param version - The version of the agent.\n */\n addAlgoliaAgent(segment: string, version?: string | undefined): void {\n transporter.algoliaAgent.add({ segment, version });\n },\n\n /**\n * Helper method to switch the API key used to authenticate the requests.\n *\n * @param params - Method params.\n * @param params.apiKey - The new API Key to use.\n */\n setClientApiKey({ apiKey }: { apiKey: string }): void {\n if (!authMode || authMode === 'WithinHeaders') {\n transporter.baseHeaders['x-algolia-api-key'] = apiKey;\n } else {\n transporter.baseQueryParameters['x-algolia-api-key'] = apiKey;\n }\n },\n\n /**\n * Helper: calls the `search` method but with certainty that we will only request Algolia records (hits) and not facets.\n * Disclaimer: We don't assert that the parameters you pass to this method only contains `hits` requests to prevent impacting search performances, this helper is purely for typing purposes.\n *\n * @summary Search multiple indices for `hits`.\n * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n searchForHits<T>(\n searchMethodParams: LegacySearchMethodProps | SearchMethodParams,\n requestOptions?: RequestOptions | undefined,\n ): Promise<{ results: Array<SearchResponse<T>> }> {\n return this.search(searchMethodParams, requestOptions) as Promise<{ results: Array<SearchResponse<T>> }>;\n },\n\n /**\n * Helper: calls the `search` method but with certainty that we will only request Algolia facets and not records (hits).\n * Disclaimer: We don't assert that the parameters you pass to this method only contains `facets` requests to prevent impacting search performances, this helper is purely for typing purposes.\n *\n * @summary Search multiple indices for `facets`.\n * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n searchForFacets(\n searchMethodParams: LegacySearchMethodProps | SearchMethodParams,\n requestOptions?: RequestOptions | undefined,\n ): Promise<{ results: Array<SearchForFacetValuesResponse> }> {\n return this.search(searchMethodParams, requestOptions) as Promise<{\n results: Array<SearchForFacetValuesResponse>;\n }>;\n },\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customPost - The customPost object.\n * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPost.parameters - Query parameters to apply to the current query.\n * @param customPost.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customPost(\n { path, parameters, body }: CustomPostProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n validateRequired('path', 'customPost', path);\n\n const requestPath = '/{path}'.replace('{path}', path);\n const headers: Headers = {};\n const queryParameters: QueryParameters = parameters ? parameters : {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {},\n };\n\n return transporter.request(request, requestOptions);\n },\n /**\n * This method lets you send requests to the Algolia REST API.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n * @param customPost - The customPost object.\n * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPost.parameters - Query parameters to apply to the current query.\n * @param customPost.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see customPost for the plain version.\n */\n customPostWithHTTPInfo(\n { path, parameters, body }: CustomPostProps,\n requestOptions?: RequestOptions,\n ): Promise<AlgoliaHttpResponse<Record<string, unknown>>> {\n validateRequired('path', 'customPostWithHTTPInfo', path);\n\n const requestPath = '/{path}'.replace('{path}', path);\n const headers: Headers = {};\n const queryParameters: QueryParameters = parameters ? parameters : {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {},\n };\n\n return transporter.requestWithHttpInfo(request, requestOptions);\n },\n\n /**\n * Retrieves recommendations from selected AI models.\n *\n * Required API Key ACLs:\n * - search\n * @param getRecommendationsParams - The getRecommendationsParams object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n getRecommendations(\n getRecommendationsParams: GetRecommendationsParams | LegacyGetRecommendationsParams,\n requestOptions?: RequestOptions,\n ): Promise<GetRecommendationsResponse> {\n if (getRecommendationsParams && Array.isArray(getRecommendationsParams)) {\n const newSignatureRequest: GetRecommendationsParams = {\n requests: getRecommendationsParams,\n };\n\n getRecommendationsParams = newSignatureRequest;\n }\n\n validateRequired('getRecommendationsParams', 'getRecommendations', getRecommendationsParams);\n\n validateRequired('getRecommendationsParams.requests', 'getRecommendations', getRecommendationsParams.requests);\n\n const requestPath = '/1/indexes/*/recommendations';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: getRecommendationsParams,\n useReadTransporter: true,\n cacheable: true,\n };\n\n return transporter.request(request, requestOptions);\n },\n /**\n * Retrieves recommendations from selected AI models.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n *\n * Required API Key ACLs:\n * - search\n * @param getRecommendationsParams - The getRecommendationsParams object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see getRecommendations for the plain version.\n */\n getRecommendationsWithHTTPInfo(\n getRecommendationsParams: GetRecommendationsParams | LegacyGetRecommendationsParams,\n requestOptions?: RequestOptions,\n ): Promise<AlgoliaHttpResponse<GetRecommendationsResponse>> {\n if (getRecommendationsParams && Array.isArray(getRecommendationsParams)) {\n const newSignatureRequest: GetRecommendationsParams = {\n requests: getRecommendationsParams,\n };\n\n getRecommendationsParams = newSignatureRequest;\n }\n\n validateRequired('getRecommendationsParams', 'getRecommendationsWithHTTPInfo', getRecommendationsParams);\n\n validateRequired(\n 'getRecommendationsParams.requests',\n 'getRecommendationsWithHTTPInfo',\n getRecommendationsParams.requests,\n );\n\n const requestPath = '/1/indexes/*/recommendations';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: getRecommendationsParams,\n useReadTransporter: true,\n cacheable: true,\n };\n\n return transporter.requestWithHttpInfo(request, requestOptions);\n },\n\n /**\n * Runs multiple search queries against one or more indices in a single API request. Use cases include: - Searching different indices, such as products and marketing content. - Run multiple queries on the same index with different parameters or filters. If you know the expected result type, use the `searchForHits` or `searchForFacets` helper to simplify the response format.\n *\n * Required API Key ACLs:\n * - search\n * @param searchMethodParams - Multi-query search request body. Results are returned in the same order as the requests.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n search<T>(\n searchMethodParams: SearchMethodParams | LegacySearchMethodProps,\n requestOptions?: RequestOptions,\n ): Promise<SearchResponses<T>> {\n if (searchMethodParams && Array.isArray(searchMethodParams)) {\n const newSignatureRequest: SearchMethodParams = {\n requests: searchMethodParams.map(({ params, ...legacyRequest }) => {\n if (legacyRequest.type === 'facet') {\n return {\n ...legacyRequest,\n ...params,\n type: 'facet',\n };\n }\n\n return {\n ...legacyRequest,\n ...params,\n facet: undefined,\n maxFacetHits: undefined,\n facetQuery: undefined,\n };\n }),\n };\n\n searchMethodParams = newSignatureRequest;\n }\n\n validateRequired('searchMethodParams', 'search', searchMethodParams);\n\n validateRequired('searchMethodParams.requests', 'search', searchMethodParams.requests);\n\n const requestPath = '/1/indexes/*/queries';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: searchMethodParams,\n useReadTransporter: true,\n cacheable: true,\n };\n\n return transporter.request(request, requestOptions);\n },\n /**\n * Runs multiple search queries against one or more indices in a single API request. Use cases include: - Searching different indices, such as products and marketing content. - Run multiple queries on the same index with different parameters or filters. If you know the expected result type, use the `searchForHits` or `searchForFacets` helper to simplify the response format.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n *\n * Required API Key ACLs:\n * - search\n * @param searchMethodParams - Multi-query search request body. Results are returned in the same order as the requests.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see search for the plain version.\n */\n searchWithHTTPInfo<T>(\n searchMethodParams: SearchMethodParams | LegacySearchMethodProps,\n requestOptions?: RequestOptions,\n ): Promise<AlgoliaHttpResponse<SearchResponses<T>>> {\n if (searchMethodParams && Array.isArray(searchMethodParams)) {\n const newSignatureRequest: SearchMethodParams = {\n requests: searchMethodParams.map(({ params, ...legacyRequest }) => {\n if (legacyRequest.type === 'facet') {\n return {\n ...legacyRequest,\n ...params,\n type: 'facet',\n };\n }\n\n return {\n ...legacyRequest,\n ...params,\n facet: undefined,\n maxFacetHits: undefined,\n facetQuery: undefined,\n };\n }),\n };\n\n searchMethodParams = newSignatureRequest;\n }\n\n validateRequired('searchMethodParams', 'searchWithHTTPInfo', searchMethodParams);\n\n validateRequired('searchMethodParams.requests', 'searchWithHTTPInfo', searchMethodParams.requests);\n\n const requestPath = '/1/indexes/*/queries';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: searchMethodParams,\n useReadTransporter: true,\n cacheable: true,\n };\n\n return transporter.requestWithHttpInfo(request, requestOptions);\n },\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../lite/builds/browser.ts","../../../lite/src/liteClient.ts"],"sourcesContent":["// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport {\n createBrowserLocalStorageCache,\n createFallbackableCache,\n createMemoryCache,\n createNullLogger,\n} from '@algolia/client-common';\nimport { createXhrRequester } from '@algolia/requester-browser-xhr';\n\nimport type { ClientOptions } from '@algolia/client-common';\n\nimport { apiClientVersion, createLiteClient } from '../src/liteClient';\n\nexport { apiClientVersion } from '../src/liteClient';\n\nexport * from '../model';\n\nexport function liteClient(appId: string, apiKey: string, options?: ClientOptions | undefined): LiteClient {\n if (!appId || typeof appId !== 'string') {\n throw new Error('`appId` is missing.');\n }\n\n if (!apiKey || typeof apiKey !== 'string') {\n throw new Error('`apiKey` is missing.');\n }\n\n const { compression: _compression, ...browserOptions } = options || {};\n\n return createLiteClient({\n appId,\n apiKey,\n timeouts: {\n connect: 1000,\n read: 2000,\n write: 30000,\n },\n logger: createNullLogger(),\n requester: createXhrRequester(),\n algoliaAgents: [{ segment: 'Browser' }],\n authMode: 'WithinQueryParameters',\n requestIdChannel: 'queryParameters',\n responsesCache: createMemoryCache(),\n requestsCache: createMemoryCache({ serializable: false }),\n hostsCache: createFallbackableCache({\n caches: [createBrowserLocalStorageCache({ key: `${apiClientVersion}-${appId}` }), createMemoryCache()],\n }),\n ...browserOptions,\n });\n}\n\nexport type LiteClient = ReturnType<typeof createLiteClient>;\n","// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport type {\n AlgoliaHttpResponse,\n CreateClientOptions,\n Headers,\n Host,\n QueryParameters,\n Request,\n RequestOptions,\n} from '@algolia/client-common';\nimport { createAuth, createTransporter, getAlgoliaAgent, shuffle, validateRequired } from '@algolia/client-common';\n\nimport type { GetRecommendationsParams } from '../model/getRecommendationsParams';\nimport type { GetRecommendationsResponse } from '../model/getRecommendationsResponse';\nimport type { SearchMethodParams } from '../model/searchMethodParams';\nimport type { SearchResponses } from '../model/searchResponses';\n\nimport type {\n CustomPostProps,\n LegacyGetRecommendationsParams,\n LegacySearchMethodProps,\n} from '../model/clientMethodProps';\n\nimport type { SearchForFacetValuesResponse } from '../model/searchForFacetValuesResponse';\nimport type { SearchResponse } from '../model/searchResponse';\n\nexport const apiClientVersion = '5.59.0';\n\nfunction getDefaultHosts(appId: string): Host[] {\n return (\n [\n {\n url: `${appId}-dsn.algolia.net`,\n accept: 'read',\n protocol: 'https',\n },\n {\n url: `${appId}.algolia.net`,\n accept: 'write',\n protocol: 'https',\n },\n ] as Host[]\n ).concat(\n shuffle([\n {\n url: `${appId}-1.algolianet.com`,\n accept: 'readWrite',\n protocol: 'https',\n },\n {\n url: `${appId}-2.algolianet.com`,\n accept: 'readWrite',\n protocol: 'https',\n },\n {\n url: `${appId}-3.algolianet.com`,\n accept: 'readWrite',\n protocol: 'https',\n },\n ]),\n );\n}\n\nexport function createLiteClient({\n appId: appIdOption,\n apiKey: apiKeyOption,\n authMode,\n algoliaAgents,\n ...options\n}: CreateClientOptions) {\n const auth = createAuth(appIdOption, apiKeyOption, authMode);\n const transporter = createTransporter({\n hosts: getDefaultHosts(appIdOption),\n ...options,\n algoliaAgent: getAlgoliaAgent({\n algoliaAgents,\n client: 'Lite',\n version: apiClientVersion,\n }),\n baseHeaders: {\n 'content-type': 'text/plain',\n ...auth.headers(),\n ...options.baseHeaders,\n },\n baseQueryParameters: {\n ...auth.queryParameters(),\n ...options.baseQueryParameters,\n },\n });\n\n return {\n transporter,\n\n /**\n * The `appId` currently in use.\n */\n appId: appIdOption,\n\n /**\n * The `apiKey` currently in use.\n */\n apiKey: apiKeyOption,\n\n /**\n * Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties.\n */\n clearCache(): Promise<void> {\n return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => undefined);\n },\n\n /**\n * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.\n */\n get _ua(): string {\n return transporter.algoliaAgent.value;\n },\n\n /**\n * Adds a `segment` to the `x-algolia-agent` sent with every requests.\n *\n * @param segment - The algolia agent (user-agent) segment to add.\n * @param version - The version of the agent.\n */\n addAlgoliaAgent(segment: string, version?: string | undefined): void {\n transporter.algoliaAgent.add({ segment, version });\n },\n\n /**\n * Helper method to switch the API key used to authenticate the requests.\n *\n * @param params - Method params.\n * @param params.apiKey - The new API Key to use.\n */\n setClientApiKey({ apiKey }: { apiKey: string }): void {\n if (!authMode || authMode === 'WithinHeaders') {\n transporter.baseHeaders['x-algolia-api-key'] = apiKey;\n } else {\n transporter.baseQueryParameters['x-algolia-api-key'] = apiKey;\n }\n },\n\n /**\n * Helper: calls the `search` method but with certainty that we will only request Algolia records (hits) and not facets.\n * Disclaimer: We don't assert that the parameters you pass to this method only contains `hits` requests to prevent impacting search performances, this helper is purely for typing purposes.\n *\n * @summary Search multiple indices for `hits`.\n * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n searchForHits<T>(\n searchMethodParams: LegacySearchMethodProps | SearchMethodParams,\n requestOptions?: RequestOptions | undefined,\n ): Promise<{ results: Array<SearchResponse<T>> }> {\n return this.search(searchMethodParams, requestOptions) as Promise<{ results: Array<SearchResponse<T>> }>;\n },\n\n /**\n * Helper: calls the `search` method but with certainty that we will only request Algolia facets and not records (hits).\n * Disclaimer: We don't assert that the parameters you pass to this method only contains `facets` requests to prevent impacting search performances, this helper is purely for typing purposes.\n *\n * @summary Search multiple indices for `facets`.\n * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n searchForFacets(\n searchMethodParams: LegacySearchMethodProps | SearchMethodParams,\n requestOptions?: RequestOptions | undefined,\n ): Promise<{ results: Array<SearchForFacetValuesResponse> }> {\n return this.search(searchMethodParams, requestOptions) as Promise<{\n results: Array<SearchForFacetValuesResponse>;\n }>;\n },\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customPost - The customPost object.\n * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPost.parameters - Query parameters to apply to the current query.\n * @param customPost.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customPost(\n { path, parameters, body }: CustomPostProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n validateRequired('path', 'customPost', path);\n\n const requestPath = '/{path}'.replace('{path}', path);\n const headers: Headers = {};\n const queryParameters: QueryParameters = parameters ? parameters : {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {},\n };\n\n return transporter.request(request, requestOptions);\n },\n /**\n * This method lets you send requests to the Algolia REST API.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n * @param customPost - The customPost object.\n * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPost.parameters - Query parameters to apply to the current query.\n * @param customPost.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see customPost for the plain version.\n */\n customPostWithHTTPInfo(\n { path, parameters, body }: CustomPostProps,\n requestOptions?: RequestOptions,\n ): Promise<AlgoliaHttpResponse<Record<string, unknown>>> {\n validateRequired('path', 'customPostWithHTTPInfo', path);\n\n const requestPath = '/{path}'.replace('{path}', path);\n const headers: Headers = {};\n const queryParameters: QueryParameters = parameters ? parameters : {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {},\n };\n\n return transporter.requestWithHttpInfo(request, requestOptions);\n },\n\n /**\n * Retrieves recommendations from selected AI models.\n *\n * Required API Key ACLs:\n * - search\n * @param getRecommendationsParams - The getRecommendationsParams object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n getRecommendations(\n getRecommendationsParams: GetRecommendationsParams | LegacyGetRecommendationsParams,\n requestOptions?: RequestOptions,\n ): Promise<GetRecommendationsResponse> {\n if (getRecommendationsParams && Array.isArray(getRecommendationsParams)) {\n const newSignatureRequest: GetRecommendationsParams = {\n requests: getRecommendationsParams,\n };\n\n getRecommendationsParams = newSignatureRequest;\n }\n\n validateRequired('getRecommendationsParams', 'getRecommendations', getRecommendationsParams);\n\n validateRequired('getRecommendationsParams.requests', 'getRecommendations', getRecommendationsParams.requests);\n\n const requestPath = '/1/indexes/*/recommendations';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: getRecommendationsParams,\n useReadTransporter: true,\n cacheable: true,\n };\n\n return transporter.request(request, requestOptions);\n },\n /**\n * Retrieves recommendations from selected AI models.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n *\n * Required API Key ACLs:\n * - search\n * @param getRecommendationsParams - The getRecommendationsParams object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see getRecommendations for the plain version.\n */\n getRecommendationsWithHTTPInfo(\n getRecommendationsParams: GetRecommendationsParams | LegacyGetRecommendationsParams,\n requestOptions?: RequestOptions,\n ): Promise<AlgoliaHttpResponse<GetRecommendationsResponse>> {\n if (getRecommendationsParams && Array.isArray(getRecommendationsParams)) {\n const newSignatureRequest: GetRecommendationsParams = {\n requests: getRecommendationsParams,\n };\n\n getRecommendationsParams = newSignatureRequest;\n }\n\n validateRequired('getRecommendationsParams', 'getRecommendationsWithHTTPInfo', getRecommendationsParams);\n\n validateRequired(\n 'getRecommendationsParams.requests',\n 'getRecommendationsWithHTTPInfo',\n getRecommendationsParams.requests,\n );\n\n const requestPath = '/1/indexes/*/recommendations';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: getRecommendationsParams,\n useReadTransporter: true,\n cacheable: true,\n };\n\n return transporter.requestWithHttpInfo(request, requestOptions);\n },\n\n /**\n * Runs multiple search queries against one or more indices in a single API request. Use cases include: - Searching different indices, such as products and marketing content. - Run multiple queries on the same index with different parameters or filters. If you know the expected result type, use the `searchForHits` or `searchForFacets` helper to simplify the response format.\n *\n * Required API Key ACLs:\n * - search\n * @param searchMethodParams - Multi-query search request body. Results are returned in the same order as the requests.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n search<T>(\n searchMethodParams: SearchMethodParams | LegacySearchMethodProps,\n requestOptions?: RequestOptions,\n ): Promise<SearchResponses<T>> {\n if (searchMethodParams && Array.isArray(searchMethodParams)) {\n const newSignatureRequest: SearchMethodParams = {\n requests: searchMethodParams.map(({ params, ...legacyRequest }) => {\n if (legacyRequest.type === 'facet') {\n return {\n ...legacyRequest,\n ...params,\n type: 'facet',\n };\n }\n\n return {\n ...legacyRequest,\n ...params,\n facet: undefined,\n maxFacetHits: undefined,\n facetQuery: undefined,\n };\n }),\n };\n\n searchMethodParams = newSignatureRequest;\n }\n\n validateRequired('searchMethodParams', 'search', searchMethodParams);\n\n validateRequired('searchMethodParams.requests', 'search', searchMethodParams.requests);\n\n const requestPath = '/1/indexes/*/queries';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: searchMethodParams,\n useReadTransporter: true,\n cacheable: true,\n };\n\n return transporter.request(request, requestOptions);\n },\n /**\n * Runs multiple search queries against one or more indices in a single API request. Use cases include: - Searching different indices, such as products and marketing content. - Run multiple queries on the same index with different parameters or filters. If you know the expected result type, use the `searchForHits` or `searchForFacets` helper to simplify the response format.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n *\n * Required API Key ACLs:\n * - search\n * @param searchMethodParams - Multi-query search request body. Results are returned in the same order as the requests.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see search for the plain version.\n */\n searchWithHTTPInfo<T>(\n searchMethodParams: SearchMethodParams | LegacySearchMethodProps,\n requestOptions?: RequestOptions,\n ): Promise<AlgoliaHttpResponse<SearchResponses<T>>> {\n if (searchMethodParams && Array.isArray(searchMethodParams)) {\n const newSignatureRequest: SearchMethodParams = {\n requests: searchMethodParams.map(({ params, ...legacyRequest }) => {\n if (legacyRequest.type === 'facet') {\n return {\n ...legacyRequest,\n ...params,\n type: 'facet',\n };\n }\n\n return {\n ...legacyRequest,\n ...params,\n facet: undefined,\n maxFacetHits: undefined,\n facetQuery: undefined,\n };\n }),\n };\n\n searchMethodParams = newSignatureRequest;\n }\n\n validateRequired('searchMethodParams', 'searchWithHTTPInfo', searchMethodParams);\n\n validateRequired('searchMethodParams.requests', 'searchWithHTTPInfo', searchMethodParams.requests);\n\n const requestPath = '/1/indexes/*/queries';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: searchMethodParams,\n useReadTransporter: true,\n cacheable: true,\n };\n\n return transporter.requestWithHttpInfo(request, requestOptions);\n },\n };\n}\n"],"mappings":";AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;;;ACGnC,SAAS,YAAY,mBAAmB,iBAAiB,SAAS,wBAAwB;AAgBnF,IAAM,mBAAmB;AAEhC,SAAS,gBAAgB,OAAuB;AAC9C,SACE;AAAA,IACE;AAAA,MACE,KAAK,GAAG,KAAK;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,MACE,KAAK,GAAG,KAAK;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,EACF,EACA;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,QACE,KAAK,GAAG,KAAK;AAAA,QACb,QAAQ;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,QACE,KAAK,GAAG,KAAK;AAAA,QACb,QAAQ;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,QACE,KAAK,GAAG,KAAK;AAAA,QACb,QAAQ;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,SAAS,iBAAiB;AAAA,EAC/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwB;AACtB,QAAM,OAAO,WAAW,aAAa,cAAc,QAAQ;AAC3D,QAAM,cAAc,kBAAkB;AAAA,IACpC,OAAO,gBAAgB,WAAW;AAAA,IAClC,GAAG;AAAA,IACH,cAAc,gBAAgB;AAAA,MAC5B;AAAA,MACA,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,CAAC;AAAA,IACD,aAAa;AAAA,MACX,gBAAgB;AAAA,MAChB,GAAG,KAAK,QAAQ;AAAA,MAChB,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,qBAAqB;AAAA,MACnB,GAAG,KAAK,gBAAgB;AAAA,MACxB,GAAG,QAAQ;AAAA,IACb;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO;AAAA;AAAA;AAAA;AAAA,IAKP,QAAQ;AAAA;AAAA;AAAA;AAAA,IAKR,aAA4B;AAC1B,aAAO,QAAQ,IAAI,CAAC,YAAY,cAAc,MAAM,GAAG,YAAY,eAAe,MAAM,CAAC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,IAClH;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAc;AAChB,aAAO,YAAY,aAAa;AAAA,IAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,gBAAgB,SAAiB,SAAoC;AACnE,kBAAY,aAAa,IAAI,EAAE,SAAS,QAAQ,CAAC;AAAA,IACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,gBAAgB,EAAE,OAAO,GAA6B;AACpD,UAAI,CAAC,YAAY,aAAa,iBAAiB;AAC7C,oBAAY,YAAY,mBAAmB,IAAI;AAAA,MACjD,OAAO;AACL,oBAAY,oBAAoB,mBAAmB,IAAI;AAAA,MACzD;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,cACE,oBACA,gBACgD;AAChD,aAAO,KAAK,OAAO,oBAAoB,cAAc;AAAA,IACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,gBACE,oBACA,gBAC2D;AAC3D,aAAO,KAAK,OAAO,oBAAoB,cAAc;AAAA,IAGvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,WACE,EAAE,MAAM,YAAY,KAAK,GACzB,gBACkC;AAClC,uBAAiB,QAAQ,cAAc,IAAI;AAE3C,YAAM,cAAc,UAAU,QAAQ,UAAU,IAAI;AACpD,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,aAAa,aAAa,CAAC;AAEpE,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM,OAAO,OAAO,CAAC;AAAA,MACvB;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYA,uBACE,EAAE,MAAM,YAAY,KAAK,GACzB,gBACuD;AACvD,uBAAiB,QAAQ,0BAA0B,IAAI;AAEvD,YAAM,cAAc,UAAU,QAAQ,UAAU,IAAI;AACpD,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,aAAa,aAAa,CAAC;AAEpE,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM,OAAO,OAAO,CAAC;AAAA,MACvB;AAEA,aAAO,YAAY,oBAAoB,SAAS,cAAc;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,mBACE,0BACA,gBACqC;AACrC,UAAI,4BAA4B,MAAM,QAAQ,wBAAwB,GAAG;AACvE,cAAM,sBAAgD;AAAA,UACpD,UAAU;AAAA,QACZ;AAEA,mCAA2B;AAAA,MAC7B;AAEA,uBAAiB,4BAA4B,sBAAsB,wBAAwB;AAE3F,uBAAiB,qCAAqC,sBAAsB,yBAAyB,QAAQ;AAE7G,YAAM,cAAc;AACpB,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,oBAAoB;AAAA,QACpB,WAAW;AAAA,MACb;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYA,+BACE,0BACA,gBAC0D;AAC1D,UAAI,4BAA4B,MAAM,QAAQ,wBAAwB,GAAG;AACvE,cAAM,sBAAgD;AAAA,UACpD,UAAU;AAAA,QACZ;AAEA,mCAA2B;AAAA,MAC7B;AAEA,uBAAiB,4BAA4B,kCAAkC,wBAAwB;AAEvG;AAAA,QACE;AAAA,QACA;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAEA,YAAM,cAAc;AACpB,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,oBAAoB;AAAA,QACpB,WAAW;AAAA,MACb;AAEA,aAAO,YAAY,oBAAoB,SAAS,cAAc;AAAA,IAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,OACE,oBACA,gBAC6B;AAC7B,UAAI,sBAAsB,MAAM,QAAQ,kBAAkB,GAAG;AAC3D,cAAM,sBAA0C;AAAA,UAC9C,UAAU,mBAAmB,IAAI,CAAC,EAAE,QAAQ,GAAG,cAAc,MAAM;AACjE,gBAAI,cAAc,SAAS,SAAS;AAClC,qBAAO;AAAA,gBACL,GAAG;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM;AAAA,cACR;AAAA,YACF;AAEA,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,GAAG;AAAA,cACH,OAAO;AAAA,cACP,cAAc;AAAA,cACd,YAAY;AAAA,YACd;AAAA,UACF,CAAC;AAAA,QACH;AAEA,6BAAqB;AAAA,MACvB;AAEA,uBAAiB,sBAAsB,UAAU,kBAAkB;AAEnE,uBAAiB,+BAA+B,UAAU,mBAAmB,QAAQ;AAErF,YAAM,cAAc;AACpB,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,oBAAoB;AAAA,QACpB,WAAW;AAAA,MACb;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYA,mBACE,oBACA,gBACkD;AAClD,UAAI,sBAAsB,MAAM,QAAQ,kBAAkB,GAAG;AAC3D,cAAM,sBAA0C;AAAA,UAC9C,UAAU,mBAAmB,IAAI,CAAC,EAAE,QAAQ,GAAG,cAAc,MAAM;AACjE,gBAAI,cAAc,SAAS,SAAS;AAClC,qBAAO;AAAA,gBACL,GAAG;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM;AAAA,cACR;AAAA,YACF;AAEA,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,GAAG;AAAA,cACH,OAAO;AAAA,cACP,cAAc;AAAA,cACd,YAAY;AAAA,YACd;AAAA,UACF,CAAC;AAAA,QACH;AAEA,6BAAqB;AAAA,MACvB;AAEA,uBAAiB,sBAAsB,sBAAsB,kBAAkB;AAE/E,uBAAiB,+BAA+B,sBAAsB,mBAAmB,QAAQ;AAEjG,YAAM,cAAc;AACpB,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,oBAAoB;AAAA,QACpB,WAAW;AAAA,MACb;AAEA,aAAO,YAAY,oBAAoB,SAAS,cAAc;AAAA,IAChE;AAAA,EACF;AACF;;;ADnaO,SAAS,WAAW,OAAe,QAAgB,SAAiD;AACzG,MAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACvC,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AAEA,MAAI,CAAC,UAAU,OAAO,WAAW,UAAU;AACzC,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAEA,QAAM,EAAE,aAAa,cAAc,GAAG,eAAe,IAAI,WAAW,CAAC;AAErE,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,IACA,UAAU;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,IACA,QAAQ,iBAAiB;AAAA,IACzB,WAAW,mBAAmB;AAAA,IAC9B,eAAe,CAAC,EAAE,SAAS,UAAU,CAAC;AAAA,IACtC,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,gBAAgB,kBAAkB;AAAA,IAClC,eAAe,kBAAkB,EAAE,cAAc,MAAM,CAAC;AAAA,IACxD,YAAY,wBAAwB;AAAA,MAClC,QAAQ,CAAC,+BAA+B,EAAE,KAAK,GAAG,gBAAgB,IAAI,KAAK,GAAG,CAAC,GAAG,kBAAkB,CAAC;AAAA,IACvG,CAAC;AAAA,IACD,GAAG;AAAA,EACL,CAAC;AACH;","names":[]}
@@ -1,6 +1,6 @@
1
- function Y(e){let r,o=`algolia-client-js-${e.key}`;function t(){return r===void 0&&(r=e.localStorage||window.localStorage),r}function n(){return JSON.parse(t().getItem(o)||"{}")}function l(a){t().setItem(o,JSON.stringify(a))}function i(){return new Promise(a=>setTimeout(a,0))}function s(){let a=e.timeToLive?e.timeToLive*1e3:null,m=n(),f=new Date().getTime(),x=!1;return{namespace:Object.fromEntries(Object.entries(m).filter(([,h])=>!h||h.timestamp===void 0||a&&h.timestamp+a<f?(x=!0,!1):!0)),changed:x}}return{get(a,m,f={miss:()=>Promise.resolve()}){return i().then(()=>{let{namespace:x,changed:d}=s(),h=x[JSON.stringify(a)];return d&&l(x),h?h.value:m().then(y=>f.miss(y).then(()=>y))})},set(a,m){return i().then(()=>{let f=n();return f[JSON.stringify(a)]={timestamp:new Date().getTime(),value:m},t().setItem(o,JSON.stringify(f)),m})},delete(a){return i().then(()=>{let m=n();delete m[JSON.stringify(a)],t().setItem(o,JSON.stringify(m))})},clear(){return Promise.resolve().then(()=>{t().removeItem(o)})}}}function me(){return{get(e,r,o={miss:()=>Promise.resolve()}){return r().then(n=>Promise.all([n,o.miss(n)])).then(([n])=>n)},set(e,r){return Promise.resolve(r)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}function O(e){let r=[...e.caches],o=r.shift();return o===void 0?me():{get(t,n,l={miss:()=>Promise.resolve()}){return o.get(t,n,l).catch(()=>O({caches:r}).get(t,n,l))},set(t,n){return o.set(t,n).catch(()=>O({caches:r}).set(t,n))},delete(t){return o.delete(t).catch(()=>O({caches:r}).delete(t))},clear(){return o.clear().catch(()=>O({caches:r}).clear())}}}function N(e={serializable:!0}){let r={};return{get(o,t,n={miss:()=>Promise.resolve()}){let l=JSON.stringify(o);if(l in r)return Promise.resolve(e.serializable?JSON.parse(r[l]):r[l]);let i=t();return i.then(s=>n.miss(s)).then(()=>i)},set(o,t){return r[JSON.stringify(o)]=e.serializable?JSON.stringify(t):t,Promise.resolve(t)},delete(o){return delete r[JSON.stringify(o)],Promise.resolve()},clear(){return r={},Promise.resolve()}}}function le(e){let r={value:`Algolia for JavaScript (${e})`,add(o){let t=`; ${o.segment}${o.version!==void 0?` (${o.version})`:""}`;return r.value.indexOf(t)===-1&&(r.value=`${r.value}${t}`),r}};return r}function Z(e,r,o="WithinHeaders"){let t={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return o==="WithinHeaders"?t:{}},queryParameters(){return o==="WithinQueryParameters"?t:{}}}}function ee({algoliaAgents:e,client:r,version:o}){let t=le(o).add({segment:r,version:o});return e.forEach(n=>t.add(n)),t}function re(){return{debug(e,r){return Promise.resolve()},info(e,r){return Promise.resolve()},error(e,r){return Promise.resolve()}}}var fe=10*1024*1024;async function*pe(e){let r=e.getReader();try{for(;;){let{done:o,value:t}=await r.read();if(o)return;yield t}}finally{r.releaseLock()}}function de(e){return Symbol.asyncIterator in e?e:pe(e)}async function*he(e){let r=new TextDecoder("utf-8"),o=[],t=0,n=!1,l=!0;for await(let s of de(e)){let a=r.decode(s,{stream:!0}),m=0;for(n&&(n=!1,a.length>0&&a[0]===`
2
- `&&(m=1));m<a.length;){let f=a.indexOf("\r",m),x=a.indexOf(`
3
- `,m);if(f===-1&&x===-1){let L=a.slice(m);if(o.push(L),t+=L.length,t>fe)throw new Error("SSE line buffer exceeded 10MB");break}let d,h;f!==-1&&(x===-1||f<x)?(d=f,f+1<a.length?h=a[f+1]===`
4
- `?2:1:(n=!0,h=1)):(d=x,h=1);let y=a.slice(m,d);o.push(y);let P=o.length===1?o[0]:o.join("");o.length=0,t=0,l&&(P.startsWith("\uFEFF")&&(P=P.slice(1)),l=!1),yield P,m=d+h}}let i=r.decode();if(i&&o.push(i),o.length>0){let s=o.join("");l&&s.startsWith("\uFEFF")&&(s=s.slice(1)),yield s}}var xe=class{data=[];eventType="";lastEventId=null;retry=null;decode(e){if(e==="")return this.dispatch();if(e[0]===":")return null;let r=e.indexOf(":"),o,t;switch(r===-1?(o=e,t=""):(o=e.slice(0,r),t=e.slice(r+1),t[0]===" "&&(t=t.slice(1))),o){case"data":this.data.push(t);break;case"event":this.eventType=t;break;case"id":t.includes("\0")||(this.lastEventId=t);break;case"retry":/^[0-9]+$/.test(t)&&(this.retry=parseInt(t,10));break}return null}dispatch(){let e=this.eventType;if(this.eventType="",this.data.length===0)return null;let r={data:this.data.join(`
5
- `),event:e,id:this.lastEventId,retry:this.retry};return this.data=[],r}};async function*ye(e){let r=new xe;for await(let o of he(e)){let t=r.decode(o);t!==null&&(yield t)}}var ge=750,J=120*1e3;function Q(e,r="up"){let o=Date.now();function t(){return r==="up"||Date.now()-o>J}function n(){return r==="timed out"&&Date.now()-o<=J}return{...e,status:r,lastUpdate:o,isUp:t,isTimedOut:n}}var te=class extends Error{name="AlgoliaError";constructor(e,r){super(e),r&&(this.name=r)}};var oe=class extends te{stackTrace;constructor(e,r,o){super(e,o),this.stackTrace=r}},B=class extends oe{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support",e,"RetryError")}},U=class extends oe{status;constructor(e,r,o,t="ApiError"){super(e,o,t),this.status=r}},Pe=class extends te{response;constructor(e,r){super(e,"DeserializationError"),this.response=r}},Te=class extends U{error;constructor(e,r,o,t){super(e,r,t,"DetailedApiError"),this.error=o}};function se(e){let r=e;for(let o=e.length-1;o>0;o--){let t=Math.floor(Math.random()*(o+1)),n=e[o];r[o]=e[t],r[t]=n}return r}function V(e,r,o){let t=Re(o),n=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${r.charAt(0)==="/"?r.substring(1):r}`;return t.length&&(n+=`?${t}`),n}function Re(e){return Object.keys(e).filter(r=>e[r]!==void 0).sort().map(r=>`${r}=${encodeURIComponent(Object.prototype.toString.call(e[r])==="[object Array]"?e[r].join(","):e[r]).replace(/\+/g,"%20")}`).join("&")}function X(e,r){if(e.method==="GET"||e.data===void 0&&r.data===void 0)return;let o=Array.isArray(e.data)?e.data:{...e.data,...r.data};return JSON.stringify(o)}function K(e,r,o){let t={Accept:"application/json",...e,...r,...o},n={};return Object.keys(t).forEach(l=>{let i=t[l];n[l.toLowerCase()]=i}),n}function ae(e){if(!(e.status===204||e.content.length===0))try{return JSON.parse(e.content)}catch(r){throw new Pe(r.message,e)}}function Se(e){return{status:e.status,headers:e.headers,content:e.content,data:ae(e)}}function ve({content:e,status:r},o){try{let t=JSON.parse(e);return"error"in t?new Te(t.message,r,t.error,o):new U(t.message,r,o)}catch{}return new U(e,r,o)}function Ee({isTimedOut:e,status:r}){return!e&&~~r===0}function we({isTimedOut:e,status:r}){return e||Ee({isTimedOut:e,status:r})||~~(r/100)!==2&&~~(r/100)!==4}function Ae({status:e}){return~~(e/100)===2}function be(e){return e.map(r=>ne(r))}function ne(e){let r=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...r}}}}function ie({hosts:e,hostsCache:r,baseHeaders:o,logger:t,baseQueryParameters:n,algoliaAgent:l,timeouts:i,requester:s,requestsCache:a,responsesCache:m,compress:f,compression:x}){async function d(c){let u=await Promise.all(c.map(p=>r.get(p,()=>Promise.resolve(Q(p))))),v=u.filter(p=>p.isUp()),T=u.filter(p=>p.isTimedOut()),w=[...v,...T];return{hosts:w.length>0?w:c,getTimeout(p,A){return(T.length===0&&p===0?1:T.length+3+p)*A}}}async function h(c,u,v){let T=[],w=X(c,u),g=K(o,c.headers,u.headers),p=x==="gzip"&&w!==void 0&&w.length>ge&&(c.method==="POST"||c.method==="PUT");p&&f===void 0&&t.info("Compression is disabled because no compress method is available.");let A=p&&f!==void 0,F=A?await f(w):w;A&&(g["content-encoding"]="gzip");let C=c.method==="GET"?{...c.data,...u.data}:{},b={...n,...c.queryParameters,...C};if(l.value&&(b["x-algolia-agent"]=l.value),u&&u.queryParameters)for(let R of Object.keys(u.queryParameters))!u.queryParameters[R]||Object.prototype.toString.call(u.queryParameters[R])==="[object Object]"?b[R]=u.queryParameters[R]:b[R]=u.queryParameters[R].toString();let I=0,_=async(R,k)=>{let H=R.pop();if(H===void 0)throw new B(be(T));let D={...i,...u.timeouts},j={data:F,headers:g,method:c.method,url:V(H,c.path,b),connectTimeout:k(I,D.connect),responseTimeout:k(I,v?D.read:D.write)},z=$=>{let G={request:j,response:$,host:H,triesLeft:R.length};return T.push(G),G},q=await s.send(j);if(we(q)){let $=z(q);return q.isTimedOut&&I++,t.info("Retryable failure",ne($)),await r.set(H,Q(H,q.isTimedOut?"timed out":"down")),_(R,k)}if(Ae(q))return q;throw z(q),ve(q,T)},S=e.filter(R=>R.accept==="readWrite"||(v?R.accept==="read":R.accept==="write")),M=await d(S);return _([...M.hosts].reverse(),M.getTimeout)}function y(c,u={}){let v=()=>h(c,u,T).then(p=>ae(p)),T=c.useReadTransporter||c.method==="GET";if((u.cacheable||c.cacheable)!==!0)return v();let g={request:c,requestOptions:u,transporter:{queryParameters:n,headers:o}};return m.get(g,()=>a.get(g,()=>a.set(g,v()).then(p=>Promise.all([a.delete(g),p]),p=>Promise.all([a.delete(g),Promise.reject(p)])).then(([p,A])=>A)),{miss:p=>m.set(g,p)})}function P(c,u={}){let v=c.useReadTransporter||c.method==="GET";return h(c,u,v).then(T=>Se(T))}async function*L(c,u={}){if(!s.sendStream)throw new Error("This requester does not support streaming");let v=X(c,u),T=K(o,c.headers,u.headers);T.accept="text/event-stream";let w=c.method==="GET"?{...c.data,...u.data}:{},g={...n,...c.queryParameters,...w};if(l.value&&(g["x-algolia-agent"]=l.value),u&&u.queryParameters)for(let S of Object.keys(u.queryParameters))!u.queryParameters[S]||Object.prototype.toString.call(u.queryParameters[S])==="[object Object]"?g[S]=u.queryParameters[S]:g[S]=u.queryParameters[S].toString();let p=c.useReadTransporter||c.method==="GET",A=e.filter(S=>S.accept==="readWrite"||(p?S.accept==="read":S.accept==="write")),C=(await d(A)).hosts[0];if(!C)throw new B([]);let b={...i,...u.timeouts},I={data:v,headers:T,method:c.method,url:V(C,c.path,g),connectTimeout:b.connect,responseTimeout:p?b.read:b.write},_=await s.sendStream(I);yield*ye(_)}return{hostsCache:r,requester:s,timeouts:i,logger:t,algoliaAgent:l,baseHeaders:o,baseQueryParameters:n,hosts:e,request:y,requestWithHttpInfo:P,requestStream:L,requestsCache:a,responsesCache:m}}function E(e,r,o){if(o==null||typeof o=="string"&&o.length===0)throw new Error(`Parameter \`${e}\` is required when calling \`${r}\`.`)}function qe(e){let r={};for(let o of e.trim().split(/[\r\n]+/)){let t=o.indexOf(": ");t>0&&(r[o.slice(0,t).toLowerCase()]=o.slice(t+2))}return r}function ce(){function e(r){return new Promise(o=>{let t=new XMLHttpRequest;t.open(r.method,r.url,!0),Object.keys(r.headers).forEach(s=>t.setRequestHeader(s,r.headers[s]));let n=(s,a)=>setTimeout(()=>{t.abort(),o({status:0,content:a,isTimedOut:!0})},s),l=n(r.connectTimeout,"Connection timeout"),i;t.onreadystatechange=()=>{t.readyState>t.OPENED&&i===void 0&&(clearTimeout(l),i=n(r.responseTimeout,"Socket timeout"))},t.onerror=()=>{t.status===0&&(clearTimeout(l),clearTimeout(i),o({content:t.responseText||"Network request failed",status:t.status,isTimedOut:!1}))},t.onload=()=>{clearTimeout(l),clearTimeout(i),o({content:t.responseText,headers:qe(t.getAllResponseHeaders()),status:t.status,isTimedOut:!1})},t.send(r.data)})}return{send:e}}var W="5.56.0";function Oe(e){return[{url:`${e}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${e}.algolia.net`,accept:"write",protocol:"https"}].concat(se([{url:`${e}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-3.algolianet.com`,accept:"readWrite",protocol:"https"}]))}function ue({appId:e,apiKey:r,authMode:o,algoliaAgents:t,...n}){let l=Z(e,r,o),i=ie({hosts:Oe(e),...n,algoliaAgent:ee({algoliaAgents:t,client:"Lite",version:W}),baseHeaders:{"content-type":"text/plain",...l.headers(),...n.baseHeaders},baseQueryParameters:{...l.queryParameters(),...n.baseQueryParameters}});return{transporter:i,appId:e,apiKey:r,clearCache(){return Promise.all([i.requestsCache.clear(),i.responsesCache.clear()]).then(()=>{})},get _ua(){return i.algoliaAgent.value},addAlgoliaAgent(s,a){i.algoliaAgent.add({segment:s,version:a})},setClientApiKey({apiKey:s}){!o||o==="WithinHeaders"?i.baseHeaders["x-algolia-api-key"]=s:i.baseQueryParameters["x-algolia-api-key"]=s},searchForHits(s,a){return this.search(s,a)},searchForFacets(s,a){return this.search(s,a)},customPost({path:s,parameters:a,body:m},f){E("path","customPost",s);let y={method:"POST",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{},data:m||{}};return i.request(y,f)},customPostWithHTTPInfo({path:s,parameters:a,body:m},f){E("path","customPostWithHTTPInfo",s);let y={method:"POST",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{},data:m||{}};return i.requestWithHttpInfo(y,f)},getRecommendations(s,a){s&&Array.isArray(s)&&(s={requests:s}),E("getRecommendationsParams","getRecommendations",s),E("getRecommendationsParams.requests","getRecommendations",s.requests);let d={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:s,useReadTransporter:!0,cacheable:!0};return i.request(d,a)},getRecommendationsWithHTTPInfo(s,a){s&&Array.isArray(s)&&(s={requests:s}),E("getRecommendationsParams","getRecommendationsWithHTTPInfo",s),E("getRecommendationsParams.requests","getRecommendationsWithHTTPInfo",s.requests);let d={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:s,useReadTransporter:!0,cacheable:!0};return i.requestWithHttpInfo(d,a)},search(s,a){s&&Array.isArray(s)&&(s={requests:s.map(({params:y,...P})=>P.type==="facet"?{...P,...y,type:"facet"}:{...P,...y,facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}),E("searchMethodParams","search",s),E("searchMethodParams.requests","search",s.requests);let d={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:s,useReadTransporter:!0,cacheable:!0};return i.request(d,a)},searchWithHTTPInfo(s,a){s&&Array.isArray(s)&&(s={requests:s.map(({params:y,...P})=>P.type==="facet"?{...P,...y,type:"facet"}:{...P,...y,facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}),E("searchMethodParams","searchWithHTTPInfo",s),E("searchMethodParams.requests","searchWithHTTPInfo",s.requests);let d={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:s,useReadTransporter:!0,cacheable:!0};return i.requestWithHttpInfo(d,a)}}}function Po(e,r,o){if(!e||typeof e!="string")throw new Error("`appId` is missing.");if(!r||typeof r!="string")throw new Error("`apiKey` is missing.");let{compression:t,...n}=o||{};return ue({appId:e,apiKey:r,timeouts:{connect:1e3,read:2e3,write:3e4},logger:re(),requester:ce(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:N(),requestsCache:N({serializable:!1}),hostsCache:O({caches:[Y({key:`${W}-${e}`}),N()]}),...n})}export{W as apiClientVersion,Po as liteClient};
1
+ function ie(e){let t,r=`algolia-client-js-${e.key}`;function o(){return t===void 0&&(t=e.localStorage||window.localStorage),t}function n(){return JSON.parse(o().getItem(r)||"{}")}function l(s){o().setItem(r,JSON.stringify(s))}function u(){return new Promise(s=>setTimeout(s,0))}function a(){let s=e.timeToLive?e.timeToLive*1e3:null,m=n(),f=new Date().getTime(),x=!1;return{namespace:Object.fromEntries(Object.entries(m).filter(([,h])=>!h||h.timestamp===void 0||s&&h.timestamp+s<f?(x=!0,!1):!0)),changed:x}}return{get(s,m,f={miss:()=>Promise.resolve()}){return u().then(()=>{let{namespace:x,changed:p}=a(),h=x[JSON.stringify(s)];return p&&l(x),h?h.value:m().then(y=>f.miss(y).then(()=>y))})},set(s,m){return u().then(()=>{let f=n();return f[JSON.stringify(s)]={timestamp:new Date().getTime(),value:m},o().setItem(r,JSON.stringify(f)),m})},delete(s){return u().then(()=>{let m=n();delete m[JSON.stringify(s)],o().setItem(r,JSON.stringify(m))})},clear(){return Promise.resolve().then(()=>{o().removeItem(r)})}}}function Re(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(n=>Promise.all([n,r.miss(n)])).then(([n])=>n)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}function C(e){let t=[...e.caches],r=t.shift();return r===void 0?Re():{get(o,n,l={miss:()=>Promise.resolve()}){return r.get(o,n,l).catch(()=>C({caches:t}).get(o,n,l))},set(o,n){return r.set(o,n).catch(()=>C({caches:t}).set(o,n))},delete(o){return r.delete(o).catch(()=>C({caches:t}).delete(o))},clear(){return r.clear().catch(()=>C({caches:t}).clear())}}}function M(e={serializable:!0}){let t={};return{get(r,o,n={miss:()=>Promise.resolve()}){let l=JSON.stringify(r);if(l in t)return Promise.resolve(e.serializable?JSON.parse(t[l]):t[l]);let u=o();return u.then(a=>n.miss(a)).then(()=>u)},set(r,o){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}function Se(e){let t={value:`Algolia for JavaScript (${e})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return t.value.indexOf(o)===-1&&(t.value=`${t.value}${o}`),t}};return t}function ce(e,t,r="WithinHeaders"){let o={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers(){return r==="WithinHeaders"?o:{}},queryParameters(){return r==="WithinQueryParameters"?o:{}}}}function ue({algoliaAgents:e,client:t,version:r}){let o=Se(r).add({segment:t,version:r});return e.forEach(n=>o.add(n)),o}function le(){return{debug(e,t){return Promise.resolve()},info(e,t){return Promise.resolve()},error(e,t){return Promise.resolve()}}}var Ee=10*1024*1024;async function*we(e){let t=e.getReader();try{for(;;){let{done:r,value:o}=await t.read();if(r)return;yield o}}finally{t.releaseLock()}}function Ae(e){return Symbol.asyncIterator in e?e:we(e)}async function*be(e){let t=new TextDecoder("utf-8"),r=[],o=0,n=!1,l=!0;for await(let a of Ae(e)){let s=t.decode(a,{stream:!0}),m=0;for(n&&(n=!1,s.length>0&&s[0]===`
2
+ `&&(m=1));m<s.length;){let f=s.indexOf("\r",m),x=s.indexOf(`
3
+ `,m);if(f===-1&&x===-1){let _=s.slice(m);if(r.push(_),o+=_.length,o>Ee)throw new Error("SSE line buffer exceeded 10MB");break}let p,h;f!==-1&&(x===-1||f<x)?(p=f,f+1<s.length?h=s[f+1]===`
4
+ `?2:1:(n=!0,h=1)):(p=x,h=1);let y=s.slice(m,p);r.push(y);let R=r.length===1?r[0]:r.join("");r.length=0,o=0,l&&(R.startsWith("\uFEFF")&&(R=R.slice(1)),l=!1),yield R,m=p+h}}let u=t.decode();if(u&&r.push(u),r.length>0){let a=r.join("");l&&a.startsWith("\uFEFF")&&(a=a.slice(1)),yield a}}var Ie=class{data=[];eventType="";lastEventId=null;retry=null;decode(e){if(e==="")return this.dispatch();if(e[0]===":")return null;let t=e.indexOf(":"),r,o;switch(t===-1?(r=e,o=""):(r=e.slice(0,t),o=e.slice(t+1),o[0]===" "&&(o=o.slice(1))),r){case"data":this.data.push(o);break;case"event":this.eventType=o;break;case"id":o.includes("\0")||(this.lastEventId=o);break;case"retry":/^[0-9]+$/.test(o)&&(this.retry=parseInt(o,10));break}return null}dispatch(){let e=this.eventType;if(this.eventType="",this.data.length===0)return null;let t={data:this.data.join(`
5
+ `),event:e,id:this.lastEventId,retry:this.retry};return this.data=[],t}};async function*qe(e){let t=new Ie;for await(let r of be(e)){let o=t.decode(r);o!==null&&(yield o)}}var Le=750,Y=120*1e3;function Z(e,t="up"){let r=Date.now();function o(){return t==="up"||Date.now()-r>Y}function n(){return t==="timed out"&&Date.now()-r<=Y}return{...e,status:t,lastUpdate:r,isUp:o,isTimedOut:n}}var me=class extends Error{name="AlgoliaError";constructor(e,t){super(e),t&&(this.name=t)}};var fe=class extends me{stackTrace;correlationId;constructor(e,t,r,o){super(o?`${e} (Correlation-ID: ${o})`:e,r),this.stackTrace=t,this.correlationId=o}},ee=class extends fe{constructor(e,t){super("Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support",e,"RetryError",t)}},Q=class extends fe{status;constructor(e,t,r,o="ApiError",n){super(e,r,o,n),this.status=t}};var Ce=class extends me{response;correlationId;constructor(e,t,r){super(r?`${e} (Correlation-ID: ${r})`:e,"DeserializationError"),this.response=t,this.correlationId=r}},_e=class extends Q{error;constructor(e,t,r,o,n){super(e,t,o,"DetailedApiError",n),this.error=r}};function de(e){let t=e;for(let r=e.length-1;r>0;r--){let o=Math.floor(Math.random()*(r+1)),n=e[r];t[r]=e[o],t[o]=n}return t}function te(e,t,r){let o=He(r),n=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${t.charAt(0)==="/"?t.substring(1):t}`;return o.length&&(n+=`?${o}`),n}function He(e){return Object.keys(e).filter(t=>e[t]!==void 0).sort().map(t=>`${t}=${encodeURIComponent(Object.prototype.toString.call(e[t])==="[object Array]"?e[t].join(","):e[t]).replace(/\+/g,"%20")}`).join("&")}function re(e,t){if(e.method==="GET"||e.data===void 0&&t.data===void 0)return;let r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}function oe(e,t,r){let o={Accept:"application/json",...e,...t,...r},n={};return Object.keys(o).forEach(l=>{let u=o[l];n[l.toLowerCase()]=u}),n}function pe(e){if(!(e.status===204||e.content.length===0))try{return JSON.parse(e.content)}catch(t){throw new Ce(t.message,e,V(e.headers))}}function Oe(e){return{status:e.status,headers:e.headers,content:e.content,data:pe(e)}}function V(e){if(!e)return;if(e["correlation-id"]!==void 0)return e["correlation-id"];let t=Object.keys(e).find(r=>r.toLowerCase()==="correlation-id");return t===void 0?void 0:e[t]}function Ne(e){for(let t=e.length-1;t>=0;t--){let r=V(e[t].response.headers);if(r!==void 0)return r}}function ke(e,t){let{content:r,status:o}=e,n=V(e.headers);try{let l=JSON.parse(r);return"error"in l?new _e(l.message,o,l.error,t,n):new Q(l.message,o,t,"ApiError",n)}catch{}return new Q(r,o,t,"ApiError",n)}var $="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",ae=11;function ne(){var e;let t="";if(typeof((e=globalThis.crypto)==null?void 0:e.getRandomValues)=="function"){let r=new Uint8Array(ae);globalThis.crypto.getRandomValues(r);for(let o of r)t+=$[o%$.length];return t}for(let r=0;r<ae;r++)t+=$[Math.floor(Math.random()*$.length)];return t}var J=1e3;function Fe({isTimedOut:e,status:t}){return!e&&~~t===0}function We({isTimedOut:e,status:t}){return e||Fe({isTimedOut:e,status:t})||~~(t/100)!==2&&~~(t/100)!==4}function De({status:e}){return~~(e/100)===2}function he({status:e}){return~~e===429}var $e=/^HTTP 429(?:\D|$)/;function Me(e){return typeof e=="object"&&e!==null&&"status"in e?he(e):e instanceof Error&&$e.test(e.message)}function je(e){if(typeof e=="object"&&e!==null&&"headers"in e)return e.headers}function se(e){var t;let r=(t=e?.["retry-after"])==null?void 0:t.trim();if(r===void 0||r.length===0||!/^\d+$/.test(r))return J;let o=Number.parseInt(r,10);return o<=0?J:o*1e3}function Ue(e){return e.map(t=>B(t))}function B(e){let t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function xe({hosts:e,hostsCache:t,baseHeaders:r,logger:o,baseQueryParameters:n,algoliaAgent:l,timeouts:u,requester:a,requestsCache:s,responsesCache:m,compress:f,compression:x,requestIdChannel:p,maxRateLimitRetries:h=3}){function y(i,c){p===void 0||i["request-id"]!==void 0||Object.keys(c).some(S=>S.toLowerCase()==="x-algolia-request-id")||(p==="headers"?i["request-id"]=ne():c["x-algolia-request-id"]=ne())}let R=i=>new Promise(c=>{setTimeout(c,i)});async function _(i){let c=await Promise.all(i.map(d=>t.get(d,()=>Promise.resolve(Z(d))))),S=c.filter(d=>d.isUp()),T=c.filter(d=>d.isTimedOut()),A=[...S,...T];return{hosts:A.length>0?A:i,getTimeout(d,I){return(T.length===0&&d===0?1:T.length+3+d)*I}}}async function X(i,c,S){let T=[],A=re(i,c),g=oe(r,i.headers,c.headers),d=x==="gzip"&&A!==void 0&&A.length>Le&&(i.method==="POST"||i.method==="PUT");d&&f===void 0&&o.info("Compression is disabled because no compress method is available.");let I=d&&f!==void 0,U=I?await f(A):A;I&&(g["content-encoding"]="gzip");let H=i.method==="GET"?{...i.data,...c.data}:{},b={...n,...i.queryParameters,...H};if(l.value&&(b["x-algolia-agent"]=l.value),c&&c.queryParameters)for(let v of Object.keys(c.queryParameters))!c.queryParameters[v]||Object.prototype.toString.call(c.queryParameters[v])==="[object Object]"?b[v]=c.queryParameters[v]:b[v]=c.queryParameters[v].toString();y(g,b);let O=0,q=h,P=async(v,D)=>{let L=v.pop();if(L===void 0)throw new ee(Ue(T),Ne(T));let G={...u,...c.timeouts},K={data:U,headers:g,method:i.method,url:te(L,i.path,b),connectTimeout:D(O,G.connect),responseTimeout:D(O,S?G.read:G.write)},z=F=>{let W={request:K,response:F,host:L,triesLeft:v.length};return T.push(W),W},E=await a.send(K);if(he(E)&&q>0){q--,v.push(L);let F=z(E),W=se(E.headers);return o.info("Retryable failure",{...B(F),wait:W,rateLimitRetriesLeft:q}),await R(W),P(v,D)}if(We(E)){let F=z(E);return E.isTimedOut&&O++,o.info("Retryable failure",B(F)),await t.set(L,Z(L,E.isTimedOut?"timed out":"down")),P(v,D)}if(De(E))return E;throw z(E),ke(E,T)},N=e.filter(v=>v.accept==="readWrite"||(S?v.accept==="read":v.accept==="write")),k=await _(N);return P([...k.hosts].reverse(),k.getTimeout)}function Pe(i,c={}){let S=()=>X(i,c,T).then(d=>pe(d)),T=i.useReadTransporter||i.method==="GET";if((c.cacheable||i.cacheable)!==!0)return S();let g={request:i,requestOptions:c,transporter:{queryParameters:n,headers:r}};return m.get(g,()=>s.get(g,()=>s.set(g,S()).then(d=>Promise.all([s.delete(g),d]),d=>Promise.all([s.delete(g),Promise.reject(d)])).then(([d,I])=>I)),{miss:d=>m.set(g,d)})}function Te(i,c={}){let S=i.useReadTransporter||i.method==="GET";return X(i,c,S).then(T=>Oe(T))}async function*ve(i,c={}){if(!a.sendStream)throw new Error("This requester does not support streaming");let S=re(i,c),T=oe(r,i.headers,c.headers);T.accept="text/event-stream";let A=i.method==="GET"?{...i.data,...c.data}:{},g={...n,...i.queryParameters,...A};if(l.value&&(g["x-algolia-agent"]=l.value),c&&c.queryParameters)for(let P of Object.keys(c.queryParameters))!c.queryParameters[P]||Object.prototype.toString.call(c.queryParameters[P])==="[object Object]"?g[P]=c.queryParameters[P]:g[P]=c.queryParameters[P].toString();y(T,g);let d=i.useReadTransporter||i.method==="GET",I=e.filter(P=>P.accept==="readWrite"||(d?P.accept==="read":P.accept==="write")),H=(await _(I)).hosts[0];if(!H)throw new ee([]);let b={...u,...c.timeouts},O={data:S,headers:T,method:i.method,url:te(H,i.path,g),connectTimeout:b.connect,responseTimeout:d?b.read:b.write},q=h;for(;;){let P;try{P=await a.sendStream(O)}catch(N){if(Me(N)&&q>0){q--;let k=se(je(N));o.info("Retryable failure",{wait:k,rateLimitRetriesLeft:q,host:H}),await R(k);continue}throw N}yield*qe(P);return}}return{hostsCache:t,requester:a,timeouts:u,logger:o,algoliaAgent:l,baseHeaders:r,baseQueryParameters:n,requestIdChannel:p,hosts:e,maxRateLimitRetries:h,request:Pe,requestWithHttpInfo:Te,requestStream:ve,requestsCache:s,responsesCache:m}}function w(e,t,r){if(r==null||typeof r=="string"&&r.length===0)throw new Error(`Parameter \`${e}\` is required when calling \`${t}\`.`)}function Ge(e){let t={};for(let r of e.trim().split(/[\r\n]+/)){let o=r.indexOf(": ");o>0&&(t[r.slice(0,o).toLowerCase()]=r.slice(o+2))}return t}function ye(){function e(t){return new Promise(r=>{let o=new XMLHttpRequest;o.open(t.method,t.url,!0),Object.keys(t.headers).forEach(a=>o.setRequestHeader(a,t.headers[a]));let n=(a,s)=>setTimeout(()=>{o.abort(),r({status:0,content:s,isTimedOut:!0})},a),l=n(t.connectTimeout,"Connection timeout"),u;o.onreadystatechange=()=>{o.readyState>o.OPENED&&u===void 0&&(clearTimeout(l),u=n(t.responseTimeout,"Socket timeout"))},o.onerror=()=>{o.status===0&&(clearTimeout(l),clearTimeout(u),r({content:o.responseText||"Network request failed",status:o.status,isTimedOut:!1}))},o.onload=()=>{clearTimeout(l),clearTimeout(u),r({content:o.responseText,headers:Ge(o.getAllResponseHeaders()),status:o.status,isTimedOut:!1})},o.send(t.data)})}return{send:e}}var j="5.59.0";function ze(e){return[{url:`${e}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${e}.algolia.net`,accept:"write",protocol:"https"}].concat(de([{url:`${e}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-3.algolianet.com`,accept:"readWrite",protocol:"https"}]))}function ge({appId:e,apiKey:t,authMode:r,algoliaAgents:o,...n}){let l=ce(e,t,r),u=xe({hosts:ze(e),...n,algoliaAgent:ue({algoliaAgents:o,client:"Lite",version:j}),baseHeaders:{"content-type":"text/plain",...l.headers(),...n.baseHeaders},baseQueryParameters:{...l.queryParameters(),...n.baseQueryParameters}});return{transporter:u,appId:e,apiKey:t,clearCache(){return Promise.all([u.requestsCache.clear(),u.responsesCache.clear()]).then(()=>{})},get _ua(){return u.algoliaAgent.value},addAlgoliaAgent(a,s){u.algoliaAgent.add({segment:a,version:s})},setClientApiKey({apiKey:a}){!r||r==="WithinHeaders"?u.baseHeaders["x-algolia-api-key"]=a:u.baseQueryParameters["x-algolia-api-key"]=a},searchForHits(a,s){return this.search(a,s)},searchForFacets(a,s){return this.search(a,s)},customPost({path:a,parameters:s,body:m},f){w("path","customPost",a);let y={method:"POST",path:"/{path}".replace("{path}",a),queryParameters:s||{},headers:{},data:m||{}};return u.request(y,f)},customPostWithHTTPInfo({path:a,parameters:s,body:m},f){w("path","customPostWithHTTPInfo",a);let y={method:"POST",path:"/{path}".replace("{path}",a),queryParameters:s||{},headers:{},data:m||{}};return u.requestWithHttpInfo(y,f)},getRecommendations(a,s){a&&Array.isArray(a)&&(a={requests:a}),w("getRecommendationsParams","getRecommendations",a),w("getRecommendationsParams.requests","getRecommendations",a.requests);let p={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return u.request(p,s)},getRecommendationsWithHTTPInfo(a,s){a&&Array.isArray(a)&&(a={requests:a}),w("getRecommendationsParams","getRecommendationsWithHTTPInfo",a),w("getRecommendationsParams.requests","getRecommendationsWithHTTPInfo",a.requests);let p={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return u.requestWithHttpInfo(p,s)},search(a,s){a&&Array.isArray(a)&&(a={requests:a.map(({params:y,...R})=>R.type==="facet"?{...R,...y,type:"facet"}:{...R,...y,facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}),w("searchMethodParams","search",a),w("searchMethodParams.requests","search",a.requests);let p={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return u.request(p,s)},searchWithHTTPInfo(a,s){a&&Array.isArray(a)&&(a={requests:a.map(({params:y,...R})=>R.type==="facet"?{...R,...y,type:"facet"}:{...R,...y,facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}),w("searchMethodParams","searchWithHTTPInfo",a),w("searchMethodParams.requests","searchWithHTTPInfo",a.requests);let p={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return u.requestWithHttpInfo(p,s)}}}function No(e,t,r){if(!e||typeof e!="string")throw new Error("`appId` is missing.");if(!t||typeof t!="string")throw new Error("`apiKey` is missing.");let{compression:o,...n}=r||{};return ge({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:le(),requester:ye(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",requestIdChannel:"queryParameters",responsesCache:M(),requestsCache:M({serializable:!1}),hostsCache:C({caches:[ie({key:`${j}-${e}`}),M()]}),...n})}export{j as apiClientVersion,No as liteClient};
6
6
  //# sourceMappingURL=browser.min.js.map