@algolia/client-insights 5.52.1 → 5.54.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/README.md CHANGED
@@ -40,11 +40,11 @@ All of our clients comes with type definition, and are available for both browse
40
40
  ### With a package manager
41
41
 
42
42
  ```bash
43
- yarn add @algolia/client-insights@5.52.1
43
+ yarn add @algolia/client-insights@5.54.0
44
44
  # or
45
- npm install @algolia/client-insights@5.52.1
45
+ npm install @algolia/client-insights@5.54.0
46
46
  # or
47
- pnpm add @algolia/client-insights@5.52.1
47
+ pnpm add @algolia/client-insights@5.54.0
48
48
  ```
49
49
 
50
50
  ### Without a package manager
@@ -52,7 +52,7 @@ pnpm add @algolia/client-insights@5.52.1
52
52
  Add the following JavaScript snippet to the <head> of your website:
53
53
 
54
54
  ```html
55
- <script src="https://cdn.jsdelivr.net/npm/@algolia/client-insights@5.52.1/dist/builds/browser.umd.js"></script>
55
+ <script src="https://cdn.jsdelivr.net/npm/@algolia/client-insights@5.54.0/dist/builds/browser.umd.js"></script>
56
56
  ```
57
57
 
58
58
  ### Usage
package/dist/browser.d.ts CHANGED
@@ -574,7 +574,7 @@ type DeleteUserTokenProps = {
574
574
  userToken: string;
575
575
  };
576
576
 
577
- declare const apiClientVersion = "5.52.1";
577
+ declare const apiClientVersion = "5.54.0";
578
578
  declare const REGIONS: readonly ["de", "us"];
579
579
  type Region = (typeof REGIONS)[number];
580
580
  type RegionOptions = {
@@ -8,8 +8,8 @@ import {
8
8
  import { createXhrRequester } from "@algolia/requester-browser-xhr";
9
9
 
10
10
  // src/insightsClient.ts
11
- import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common";
12
- var apiClientVersion = "5.52.1";
11
+ import { createAuth, createTransporter, getAlgoliaAgent, validateRequired } from "@algolia/client-common";
12
+ var apiClientVersion = "5.54.0";
13
13
  var REGIONS = ["de", "us"];
14
14
  function getDefaultHosts(region) {
15
15
  const url = !region ? "insights.algolia.io" : "insights.{region}.algolia.io".replace("{region}", region);
@@ -94,9 +94,7 @@ function createInsightsClient({
94
94
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
95
95
  */
96
96
  customDelete({ path, parameters }, requestOptions) {
97
- if (!path) {
98
- throw new Error("Parameter `path` is required when calling `customDelete`.");
99
- }
97
+ validateRequired("path", "customDelete", path);
100
98
  const requestPath = "/{path}".replace("{path}", path);
101
99
  const headers = {};
102
100
  const queryParameters = parameters ? parameters : {};
@@ -116,9 +114,7 @@ function createInsightsClient({
116
114
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
117
115
  */
118
116
  customGet({ path, parameters }, requestOptions) {
119
- if (!path) {
120
- throw new Error("Parameter `path` is required when calling `customGet`.");
121
- }
117
+ validateRequired("path", "customGet", path);
122
118
  const requestPath = "/{path}".replace("{path}", path);
123
119
  const headers = {};
124
120
  const queryParameters = parameters ? parameters : {};
@@ -139,9 +135,7 @@ function createInsightsClient({
139
135
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
140
136
  */
141
137
  customPost({ path, parameters, body }, requestOptions) {
142
- if (!path) {
143
- throw new Error("Parameter `path` is required when calling `customPost`.");
144
- }
138
+ validateRequired("path", "customPost", path);
145
139
  const requestPath = "/{path}".replace("{path}", path);
146
140
  const headers = {};
147
141
  const queryParameters = parameters ? parameters : {};
@@ -163,9 +157,7 @@ function createInsightsClient({
163
157
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
164
158
  */
165
159
  customPut({ path, parameters, body }, requestOptions) {
166
- if (!path) {
167
- throw new Error("Parameter `path` is required when calling `customPut`.");
168
- }
160
+ validateRequired("path", "customPut", path);
169
161
  const requestPath = "/{path}".replace("{path}", path);
170
162
  const headers = {};
171
163
  const queryParameters = parameters ? parameters : {};
@@ -188,9 +180,7 @@ function createInsightsClient({
188
180
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
189
181
  */
190
182
  deleteUserToken({ userToken }, requestOptions) {
191
- if (!userToken) {
192
- throw new Error("Parameter `userToken` is required when calling `deleteUserToken`.");
193
- }
183
+ validateRequired("userToken", "deleteUserToken", userToken);
194
184
  const requestPath = "/1/usertokens/{userToken}".replace("{userToken}", encodeURIComponent(userToken));
195
185
  const headers = {};
196
186
  const queryParameters = {};
@@ -211,12 +201,8 @@ function createInsightsClient({
211
201
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
212
202
  */
213
203
  pushEvents(insightsEvents, requestOptions) {
214
- if (!insightsEvents) {
215
- throw new Error("Parameter `insightsEvents` is required when calling `pushEvents`.");
216
- }
217
- if (!insightsEvents.events) {
218
- throw new Error("Parameter `insightsEvents.events` is required when calling `pushEvents`.");
219
- }
204
+ validateRequired("insightsEvents", "pushEvents", insightsEvents);
205
+ validateRequired("insightsEvents.events", "pushEvents", insightsEvents.events);
220
206
  const requestPath = "/1/events";
221
207
  const headers = {};
222
208
  const queryParameters = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../builds/browser.ts","../../src/insightsClient.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, createInsightsClient } from '../src/insightsClient';\n\nimport type { Region } from '../src/insightsClient';\nimport { REGIONS } from '../src/insightsClient';\n\nexport type { Region, RegionOptions } from '../src/insightsClient';\n\nexport { apiClientVersion } from '../src/insightsClient';\n\nexport * from '../model';\n\nexport function insightsClient(\n appId: string,\n apiKey: string,\n region?: Region | undefined,\n options?: ClientOptions | undefined,\n): InsightsClient {\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 if (region && (typeof region !== 'string' || !REGIONS.includes(region))) {\n throw new Error(`\\`region\\` must be one of the following: ${REGIONS.join(', ')}`);\n }\n\n const { compression: _compression, ...browserOptions } = options || {};\n\n return createInsightsClient({\n appId,\n apiKey,\n region,\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 InsightsClient = ReturnType<typeof createInsightsClient>;\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 CreateClientOptions,\n Headers,\n Host,\n QueryParameters,\n Request,\n RequestOptions,\n} from '@algolia/client-common';\nimport { createAuth, createTransporter, getAlgoliaAgent } from '@algolia/client-common';\n\nimport type { EventsResponse } from '../model/eventsResponse';\nimport type { InsightsEvents } from '../model/insightsEvents';\n\nimport type {\n CustomDeleteProps,\n CustomGetProps,\n CustomPostProps,\n CustomPutProps,\n DeleteUserTokenProps,\n} from '../model/clientMethodProps';\n\nexport const apiClientVersion = '5.52.1';\n\nexport const REGIONS = ['de', 'us'] as const;\nexport type Region = (typeof REGIONS)[number];\nexport type RegionOptions = { region?: Region | undefined };\n\nfunction getDefaultHosts(region?: Region | undefined): Host[] {\n const url = !region ? 'insights.algolia.io' : 'insights.{region}.algolia.io'.replace('{region}', region);\n\n return [{ url, accept: 'readWrite', protocol: 'https' }];\n}\n\nexport function createInsightsClient({\n appId: appIdOption,\n apiKey: apiKeyOption,\n authMode,\n algoliaAgents,\n region: regionOption,\n ...options\n}: CreateClientOptions & RegionOptions) {\n const auth = createAuth(appIdOption, apiKeyOption, authMode);\n const transporter = createTransporter({\n hosts: getDefaultHosts(regionOption),\n ...options,\n algoliaAgent: getAlgoliaAgent({\n algoliaAgents,\n client: 'Insights',\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 * This method lets you send requests to the Algolia REST API.\n * @param customDelete - The customDelete object.\n * @param customDelete.path - Path of the endpoint, for example `1/newFeature`.\n * @param customDelete.parameters - Query parameters to apply to the current query.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customDelete(\n { path, parameters }: CustomDeleteProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n if (!path) {\n throw new Error('Parameter `path` is required when calling `customDelete`.');\n }\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: 'DELETE',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customGet - The customGet object.\n * @param customGet.path - Path of the endpoint, for example `1/newFeature`.\n * @param customGet.parameters - Query parameters to apply to the current query.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customGet({ path, parameters }: CustomGetProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>> {\n if (!path) {\n throw new Error('Parameter `path` is required when calling `customGet`.');\n }\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: 'GET',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\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 if (!path) {\n throw new Error('Parameter `path` is required when calling `customPost`.');\n }\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 /**\n * This method lets you send requests to the Algolia REST API.\n * @param customPut - The customPut object.\n * @param customPut.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPut.parameters - Query parameters to apply to the current query.\n * @param customPut.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 customPut(\n { path, parameters, body }: CustomPutProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n if (!path) {\n throw new Error('Parameter `path` is required when calling `customPut`.');\n }\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: 'PUT',\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {},\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Deletes all events related to the specified user token from events metrics and analytics. The deletion is asynchronous, and processed within 48 hours. To delete a personalization user profile, see `Delete a user profile` in the Personalization API.\n *\n * Required API Key ACLs:\n * - deleteObject\n * @param deleteUserToken - The deleteUserToken object.\n * @param deleteUserToken.userToken - User token for which to delete all associated events.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n deleteUserToken({ userToken }: DeleteUserTokenProps, requestOptions?: RequestOptions): Promise<void> {\n if (!userToken) {\n throw new Error('Parameter `userToken` is required when calling `deleteUserToken`.');\n }\n\n const requestPath = '/1/usertokens/{userToken}'.replace('{userToken}', encodeURIComponent(userToken));\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'DELETE',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Sends a list of events to the Insights API. You can include up to 1,000 events in a single request, but the request body must be smaller than 2&nbsp;MB.\n *\n * Required API Key ACLs:\n * - search\n * @param insightsEvents - The insightsEvents object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n pushEvents(insightsEvents: InsightsEvents, requestOptions?: RequestOptions): Promise<EventsResponse> {\n if (!insightsEvents) {\n throw new Error('Parameter `insightsEvents` is required when calling `pushEvents`.');\n }\n\n if (!insightsEvents.events) {\n throw new Error('Parameter `insightsEvents.events` is required when calling `pushEvents`.');\n }\n\n const requestPath = '/1/events';\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: insightsEvents,\n };\n\n return transporter.request(request, requestOptions);\n },\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../builds/browser.ts","../../src/insightsClient.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, createInsightsClient } from '../src/insightsClient';\n\nimport type { Region } from '../src/insightsClient';\nimport { REGIONS } from '../src/insightsClient';\n\nexport type { Region, RegionOptions } from '../src/insightsClient';\n\nexport { apiClientVersion } from '../src/insightsClient';\n\nexport * from '../model';\n\nexport function insightsClient(\n appId: string,\n apiKey: string,\n region?: Region | undefined,\n options?: ClientOptions | undefined,\n): InsightsClient {\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 if (region && (typeof region !== 'string' || !REGIONS.includes(region))) {\n throw new Error(`\\`region\\` must be one of the following: ${REGIONS.join(', ')}`);\n }\n\n const { compression: _compression, ...browserOptions } = options || {};\n\n return createInsightsClient({\n appId,\n apiKey,\n region,\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 InsightsClient = ReturnType<typeof createInsightsClient>;\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 CreateClientOptions,\n Headers,\n Host,\n QueryParameters,\n Request,\n RequestOptions,\n} from '@algolia/client-common';\nimport { createAuth, createTransporter, getAlgoliaAgent, validateRequired } from '@algolia/client-common';\n\nimport type { EventsResponse } from '../model/eventsResponse';\nimport type { InsightsEvents } from '../model/insightsEvents';\n\nimport type {\n CustomDeleteProps,\n CustomGetProps,\n CustomPostProps,\n CustomPutProps,\n DeleteUserTokenProps,\n} from '../model/clientMethodProps';\n\nexport const apiClientVersion = '5.54.0';\n\nexport const REGIONS = ['de', 'us'] as const;\nexport type Region = (typeof REGIONS)[number];\nexport type RegionOptions = { region?: Region | undefined };\n\nfunction getDefaultHosts(region?: Region | undefined): Host[] {\n const url = !region ? 'insights.algolia.io' : 'insights.{region}.algolia.io'.replace('{region}', region);\n\n return [{ url, accept: 'readWrite', protocol: 'https' }];\n}\n\nexport function createInsightsClient({\n appId: appIdOption,\n apiKey: apiKeyOption,\n authMode,\n algoliaAgents,\n region: regionOption,\n ...options\n}: CreateClientOptions & RegionOptions) {\n const auth = createAuth(appIdOption, apiKeyOption, authMode);\n const transporter = createTransporter({\n hosts: getDefaultHosts(regionOption),\n ...options,\n algoliaAgent: getAlgoliaAgent({\n algoliaAgents,\n client: 'Insights',\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 * This method lets you send requests to the Algolia REST API.\n * @param customDelete - The customDelete object.\n * @param customDelete.path - Path of the endpoint, for example `1/newFeature`.\n * @param customDelete.parameters - Query parameters to apply to the current query.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customDelete(\n { path, parameters }: CustomDeleteProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n validateRequired('path', 'customDelete', 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: 'DELETE',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customGet - The customGet object.\n * @param customGet.path - Path of the endpoint, for example `1/newFeature`.\n * @param customGet.parameters - Query parameters to apply to the current query.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customGet({ path, parameters }: CustomGetProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>> {\n validateRequired('path', 'customGet', 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: 'GET',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\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 /**\n * This method lets you send requests to the Algolia REST API.\n * @param customPut - The customPut object.\n * @param customPut.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPut.parameters - Query parameters to apply to the current query.\n * @param customPut.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 customPut(\n { path, parameters, body }: CustomPutProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n validateRequired('path', 'customPut', 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: 'PUT',\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {},\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Deletes all events related to the specified user token from events metrics and analytics. The deletion is asynchronous, and processed within 48 hours. To delete a personalization user profile, see `Delete a user profile` in the Personalization API.\n *\n * Required API Key ACLs:\n * - deleteObject\n * @param deleteUserToken - The deleteUserToken object.\n * @param deleteUserToken.userToken - User token for which to delete all associated events.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n deleteUserToken({ userToken }: DeleteUserTokenProps, requestOptions?: RequestOptions): Promise<void> {\n validateRequired('userToken', 'deleteUserToken', userToken);\n\n const requestPath = '/1/usertokens/{userToken}'.replace('{userToken}', encodeURIComponent(userToken));\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'DELETE',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Sends a list of events to the Insights API. You can include up to 1,000 events in a single request, but the request body must be smaller than 2&nbsp;MB.\n *\n * Required API Key ACLs:\n * - search\n * @param insightsEvents - The insightsEvents object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n pushEvents(insightsEvents: InsightsEvents, requestOptions?: RequestOptions): Promise<EventsResponse> {\n validateRequired('insightsEvents', 'pushEvents', insightsEvents);\n\n validateRequired('insightsEvents.events', 'pushEvents', insightsEvents.events);\n\n const requestPath = '/1/events';\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: insightsEvents,\n };\n\n return transporter.request(request, requestOptions);\n },\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,2 +1,6 @@
1
- function M(r){let e,o=`algolia-client-js-${r.key}`;function t(){return e===void 0&&(e=r.localStorage||window.localStorage),e}function n(){return JSON.parse(t().getItem(o)||"{}")}function c(a){t().setItem(o,JSON.stringify(a))}function p(){let a=r.timeToLive?r.timeToLive*1e3:null,s=n(),i=Object.fromEntries(Object.entries(s).filter(([,h])=>h.timestamp!==void 0));if(c(i),!a)return;let u=Object.fromEntries(Object.entries(i).filter(([,h])=>{let y=new Date().getTime();return!(h.timestamp+a<y)}));c(u)}return{get(a,s,i={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(p(),n()[JSON.stringify(a)])).then(u=>Promise.all([u?u.value:s(),u!==void 0])).then(([u,h])=>Promise.all([u,h||i.miss(u)])).then(([u])=>u)},set(a,s){return Promise.resolve().then(()=>{let i=n();return i[JSON.stringify(a)]={timestamp:new Date().getTime(),value:s},t().setItem(o,JSON.stringify(i)),s})},delete(a){return Promise.resolve().then(()=>{let s=n();delete s[JSON.stringify(a)],t().setItem(o,JSON.stringify(s))})},clear(){return Promise.resolve().then(()=>{t().removeItem(o)})}}}function te(){return{get(r,e,o={miss:()=>Promise.resolve()}){return e().then(n=>Promise.all([n,o.miss(n)])).then(([n])=>n)},set(r,e){return Promise.resolve(e)},delete(r){return Promise.resolve()},clear(){return Promise.resolve()}}}function O(r){let e=[...r.caches],o=e.shift();return o===void 0?te():{get(t,n,c={miss:()=>Promise.resolve()}){return o.get(t,n,c).catch(()=>O({caches:e}).get(t,n,c))},set(t,n){return o.set(t,n).catch(()=>O({caches:e}).set(t,n))},delete(t){return o.delete(t).catch(()=>O({caches:e}).delete(t))},clear(){return o.clear().catch(()=>O({caches:e}).clear())}}}function S(r={serializable:!0}){let e={};return{get(o,t,n={miss:()=>Promise.resolve()}){let c=JSON.stringify(o);if(c in e)return Promise.resolve(r.serializable?JSON.parse(e[c]):e[c]);let p=t();return p.then(a=>n.miss(a)).then(()=>p)},set(o,t){return e[JSON.stringify(o)]=r.serializable?JSON.stringify(t):t,Promise.resolve(t)},delete(o){return delete e[JSON.stringify(o)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}function oe(r){let e={value:`Algolia for JavaScript (${r})`,add(o){let t=`; ${o.segment}${o.version!==void 0?` (${o.version})`:""}`;return e.value.indexOf(t)===-1&&(e.value=`${e.value}${t}`),e}};return e}function Q(r,e,o="WithinHeaders"){let t={"x-algolia-api-key":e,"x-algolia-application-id":r};return{headers(){return o==="WithinHeaders"?t:{}},queryParameters(){return o==="WithinQueryParameters"?t:{}}}}function G({algoliaAgents:r,client:e,version:o}){let t=oe(o).add({segment:e,version:o});return r.forEach(n=>t.add(n)),t}function F(){return{debug(r,e){return Promise.resolve()},info(r,e){return Promise.resolve()},error(r,e){return Promise.resolve()}}}var se=750,z=120*1e3;function J(r,e="up"){let o=Date.now();function t(){return e==="up"||Date.now()-o>z}function n(){return e==="timed out"&&Date.now()-o<=z}return{...r,status:e,lastUpdate:o,isUp:t,isTimedOut:n}}var B=class extends Error{name="AlgoliaError";constructor(r,e){super(r),e&&(this.name=e)}};var X=class extends B{stackTrace;constructor(r,e,o){super(r,o),this.stackTrace=e}},ne=class extends X{constructor(r){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",r,"RetryError")}},_=class extends X{status;constructor(r,e,o,t="ApiError"){super(r,o,t),this.status=e}},ae=class extends B{response;constructor(r,e){super(r,"DeserializationError"),this.response=e}},ie=class extends _{error;constructor(r,e,o,t){super(r,e,t,"DetailedApiError"),this.error=o}};function ce(r,e,o){let t=ue(o),n=`${r.protocol}://${r.url}${r.port?`:${r.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return t.length&&(n+=`?${t}`),n}function ue(r){return Object.keys(r).filter(e=>r[e]!==void 0).sort().map(e=>`${e}=${encodeURIComponent(Object.prototype.toString.call(r[e])==="[object Array]"?r[e].join(","):r[e]).replace(/\+/g,"%20")}`).join("&")}function le(r,e){if(r.method==="GET"||r.data===void 0&&e.data===void 0)return;let o=Array.isArray(r.data)?r.data:{...r.data,...e.data};return JSON.stringify(o)}function me(r,e,o){let t={Accept:"application/json",...r,...e,...o},n={};return Object.keys(t).forEach(c=>{let p=t[c];n[c.toLowerCase()]=p}),n}function de(r){try{return JSON.parse(r.content)}catch(e){throw new ae(e.message,r)}}function pe({content:r,status:e},o){try{let t=JSON.parse(r);return"error"in t?new ie(t.message,e,t.error,o):new _(t.message,e,o)}catch{}return new _(r,e,o)}function he({isTimedOut:r,status:e}){return!r&&~~e===0}function fe({isTimedOut:r,status:e}){return r||he({isTimedOut:r,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function ge({status:r}){return~~(r/100)===2}function Pe(r){return r.map(e=>K(e))}function K(r){let e=r.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...r,request:{...r.request,headers:{...r.request.headers,...e}}}}function V({hosts:r,hostsCache:e,baseHeaders:o,logger:t,baseQueryParameters:n,algoliaAgent:c,timeouts:p,requester:a,requestsCache:s,responsesCache:i,compress:u,compression:h}){async function y(l){let d=await Promise.all(l.map(m=>e.get(m,()=>Promise.resolve(J(m))))),x=d.filter(m=>m.isUp()),E=d.filter(m=>m.isTimedOut()),v=[...x,...E];return{hosts:v.length>0?v:l,getTimeout(m,R){return(E.length===0&&m===0?1:E.length+3+m)*R}}}async function g(l,d,x){let E=[],v=le(l,d),P=me(o,l.headers,d.headers),m=h==="gzip"&&v!==void 0&&v.length>se&&(l.method==="POST"||l.method==="PUT");m&&u===void 0&&t.info("Compression is disabled because no compress method is available.");let R=m&&u!==void 0,U=R?await u(v):v;R&&(P["content-encoding"]="gzip");let ee=l.method==="GET"?{...l.data,...d.data}:{},A={...n,...l.queryParameters,...ee};if(c.value&&(A["x-algolia-agent"]=c.value),d&&d.queryParameters)for(let f of Object.keys(d.queryParameters))!d.queryParameters[f]||Object.prototype.toString.call(d.queryParameters[f])==="[object Object]"?A[f]=d.queryParameters[f]:A[f]=d.queryParameters[f].toString();let C=0,H=async(f,I)=>{let q=f.pop();if(q===void 0)throw new ne(Pe(E));let N={...p,...d.timeouts},$={data:U,headers:P,method:l.method,url:ce(q,l.path,A),connectTimeout:I(C,N.connect),responseTimeout:I(C,x?N.read:N.write)},j=D=>{let W={request:$,response:D,host:q,triesLeft:f.length};return E.push(W),W},T=await a.send($);if(fe(T)){let D=j(T);return T.isTimedOut&&C++,t.info("Retryable failure",K(D)),await e.set(q,J(q,T.isTimedOut?"timed out":"down")),H(f,I)}if(ge(T))return de(T);throw j(T),pe(T,E)},re=r.filter(f=>f.accept==="readWrite"||(x?f.accept==="read":f.accept==="write")),L=await y(re);return H([...L.hosts].reverse(),L.getTimeout)}function w(l,d={}){let x=()=>g(l,d,E),E=l.useReadTransporter||l.method==="GET";if((d.cacheable||l.cacheable)!==!0)return x();let P={request:l,requestOptions:d,transporter:{queryParameters:n,headers:o}};return i.get(P,()=>s.get(P,()=>s.set(P,x()).then(m=>Promise.all([s.delete(P),m]),m=>Promise.all([s.delete(P),Promise.reject(m)])).then(([m,R])=>R)),{miss:m=>i.set(P,m)})}return{hostsCache:e,requester:a,timeouts:p,logger:t,algoliaAgent:c,baseHeaders:o,baseQueryParameters:n,hosts:r,request:w,requestsCache:s,responsesCache:i}}function Y(){function r(e){return new Promise(o=>{let t=new XMLHttpRequest;t.open(e.method,e.url,!0),Object.keys(e.headers).forEach(a=>t.setRequestHeader(a,e.headers[a]));let n=(a,s)=>setTimeout(()=>{t.abort(),o({status:0,content:s,isTimedOut:!0})},a),c=n(e.connectTimeout,"Connection timeout"),p;t.onreadystatechange=()=>{t.readyState>t.OPENED&&p===void 0&&(clearTimeout(c),p=n(e.responseTimeout,"Socket timeout"))},t.onerror=()=>{t.status===0&&(clearTimeout(c),clearTimeout(p),o({content:t.responseText||"Network request failed",status:t.status,isTimedOut:!1}))},t.onload=()=>{clearTimeout(c),clearTimeout(p),o({content:t.responseText,status:t.status,isTimedOut:!1})},t.send(e.data)})}return{send:r}}var b="5.52.1",k=["de","us"];function ye(r){return[{url:r?"insights.{region}.algolia.io".replace("{region}",r):"insights.algolia.io",accept:"readWrite",protocol:"https"}]}function Z({appId:r,apiKey:e,authMode:o,algoliaAgents:t,region:n,...c}){let p=Q(r,e,o),a=V({hosts:ye(n),...c,algoliaAgent:G({algoliaAgents:t,client:"Insights",version:b}),baseHeaders:{"content-type":"text/plain",...p.headers(),...c.baseHeaders},baseQueryParameters:{...p.queryParameters(),...c.baseQueryParameters}});return{transporter:a,appId:r,apiKey:e,clearCache(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then(()=>{})},get _ua(){return a.algoliaAgent.value},addAlgoliaAgent(s,i){a.algoliaAgent.add({segment:s,version:i})},setClientApiKey({apiKey:s}){!o||o==="WithinHeaders"?a.baseHeaders["x-algolia-api-key"]=s:a.baseQueryParameters["x-algolia-api-key"]=s},customDelete({path:s,parameters:i},u){if(!s)throw new Error("Parameter `path` is required when calling `customDelete`.");let w={method:"DELETE",path:"/{path}".replace("{path}",s),queryParameters:i||{},headers:{}};return a.request(w,u)},customGet({path:s,parameters:i},u){if(!s)throw new Error("Parameter `path` is required when calling `customGet`.");let w={method:"GET",path:"/{path}".replace("{path}",s),queryParameters:i||{},headers:{}};return a.request(w,u)},customPost({path:s,parameters:i,body:u},h){if(!s)throw new Error("Parameter `path` is required when calling `customPost`.");let l={method:"POST",path:"/{path}".replace("{path}",s),queryParameters:i||{},headers:{},data:u||{}};return a.request(l,h)},customPut({path:s,parameters:i,body:u},h){if(!s)throw new Error("Parameter `path` is required when calling `customPut`.");let l={method:"PUT",path:"/{path}".replace("{path}",s),queryParameters:i||{},headers:{},data:u||{}};return a.request(l,h)},deleteUserToken({userToken:s},i){if(!s)throw new Error("Parameter `userToken` is required when calling `deleteUserToken`.");let g={method:"DELETE",path:"/1/usertokens/{userToken}".replace("{userToken}",encodeURIComponent(s)),queryParameters:{},headers:{}};return a.request(g,i)},pushEvents(s,i){if(!s)throw new Error("Parameter `insightsEvents` is required when calling `pushEvents`.");if(!s.events)throw new Error("Parameter `insightsEvents.events` is required when calling `pushEvents`.");let g={method:"POST",path:"/1/events",queryParameters:{},headers:{},data:s};return a.request(g,i)}}}function ar(r,e,o,t){if(!r||typeof r!="string")throw new Error("`appId` is missing.");if(!e||typeof e!="string")throw new Error("`apiKey` is missing.");if(o&&(typeof o!="string"||!k.includes(o)))throw new Error(`\`region\` must be one of the following: ${k.join(", ")}`);let{compression:n,...c}=t||{};return Z({appId:r,apiKey:e,region:o,timeouts:{connect:1e3,read:2e3,write:3e4},logger:F(),requester:Y(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:S(),requestsCache:S({serializable:!1}),hostsCache:O({caches:[M({key:`${b}-${r}`}),S()]}),...c})}export{b as apiClientVersion,ar as insightsClient};
1
+ function Y(t){let e,n=`algolia-client-js-${t.key}`;function r(){return e===void 0&&(e=t.localStorage||window.localStorage),e}function o(){return JSON.parse(r().getItem(n)||"{}")}function c(s){r().setItem(n,JSON.stringify(s))}function m(){return new Promise(s=>setTimeout(s,0))}function i(){let s=t.timeToLive?t.timeToLive*1e3:null,a=o(),d=new Date().getTime(),h=!1;return{namespace:Object.fromEntries(Object.entries(a).filter(([,p])=>!p||p.timestamp===void 0||s&&p.timestamp+s<d?(h=!0,!1):!0)),changed:h}}return{get(s,a,d={miss:()=>Promise.resolve()}){return m().then(()=>{let{namespace:h,changed:g}=i(),p=h[JSON.stringify(s)];return g&&c(h),p?p.value:a().then(v=>d.miss(v).then(()=>v))})},set(s,a){return m().then(()=>{let d=o();return d[JSON.stringify(s)]={timestamp:new Date().getTime(),value:a},r().setItem(n,JSON.stringify(d)),a})},delete(s){return m().then(()=>{let a=o();delete a[JSON.stringify(s)],r().setItem(n,JSON.stringify(a))})},clear(){return Promise.resolve().then(()=>{r().removeItem(n)})}}}function ce(){return{get(t,e,n={miss:()=>Promise.resolve()}){return e().then(o=>Promise.all([o,n.miss(o)])).then(([o])=>o)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}function A(t){let e=[...t.caches],n=e.shift();return n===void 0?ce():{get(r,o,c={miss:()=>Promise.resolve()}){return n.get(r,o,c).catch(()=>A({caches:e}).get(r,o,c))},set(r,o){return n.set(r,o).catch(()=>A({caches:e}).set(r,o))},delete(r){return n.delete(r).catch(()=>A({caches:e}).delete(r))},clear(){return n.clear().catch(()=>A({caches:e}).clear())}}}function D(t={serializable:!0}){let e={};return{get(n,r,o={miss:()=>Promise.resolve()}){let c=JSON.stringify(n);if(c in e)return Promise.resolve(t.serializable?JSON.parse(e[c]):e[c]);let m=r();return m.then(i=>o.miss(i)).then(()=>m)},set(n,r){return e[JSON.stringify(n)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete(n){return delete e[JSON.stringify(n)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}function ue(t){let e={value:`Algolia for JavaScript (${t})`,add(n){let r=`; ${n.segment}${n.version!==void 0?` (${n.version})`:""}`;return e.value.indexOf(r)===-1&&(e.value=`${e.value}${r}`),e}};return e}function Z(t,e,n="WithinHeaders"){let r={"x-algolia-api-key":e,"x-algolia-application-id":t};return{headers(){return n==="WithinHeaders"?r:{}},queryParameters(){return n==="WithinQueryParameters"?r:{}}}}function ee({algoliaAgents:t,client:e,version:n}){let r=ue(n).add({segment:e,version:n});return t.forEach(o=>r.add(o)),r}function te(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var le=10*1024*1024;async function*de(t){let e=t.getReader();try{for(;;){let{done:n,value:r}=await e.read();if(n)return;yield r}}finally{e.releaseLock()}}function me(t){return Symbol.asyncIterator in t?t:de(t)}async function*fe(t){let e=new TextDecoder("utf-8"),n=[],r=0,o=!1,c=!0;for await(let i of me(t)){let s=e.decode(i,{stream:!0}),a=0;for(o&&(o=!1,s.length>0&&s[0]===`
2
+ `&&(a=1));a<s.length;){let d=s.indexOf("\r",a),h=s.indexOf(`
3
+ `,a);if(d===-1&&h===-1){let u=s.slice(a);if(n.push(u),r+=u.length,r>le)throw new Error("SSE line buffer exceeded 10MB");break}let g,p;d!==-1&&(h===-1||d<h)?(g=d,d+1<s.length?p=s[d+1]===`
4
+ `?2:1:(o=!0,p=1)):(g=h,p=1);let v=s.slice(a,g);n.push(v);let x=n.length===1?n[0]:n.join("");n.length=0,r=0,c&&(x.startsWith("\uFEFF")&&(x=x.slice(1)),c=!1),yield x,a=g+p}}let m=e.decode();if(m&&n.push(m),n.length>0){let i=n.join("");c&&i.startsWith("\uFEFF")&&(i=i.slice(1)),yield i}}var he=class{data=[];eventType="";lastEventId=null;retry=null;decode(t){if(t==="")return this.dispatch();if(t[0]===":")return null;let e=t.indexOf(":"),n,r;switch(e===-1?(n=t,r=""):(n=t.slice(0,e),r=t.slice(e+1),r[0]===" "&&(r=r.slice(1))),n){case"data":this.data.push(r);break;case"event":this.eventType=r;break;case"id":r.includes("\0")||(this.lastEventId=r);break;case"retry":/^[0-9]+$/.test(r)&&(this.retry=parseInt(r,10));break}return null}dispatch(){let t=this.eventType;if(this.eventType="",this.data.length===0)return null;let e={data:this.data.join(`
5
+ `),event:t,id:this.lastEventId,retry:this.retry};return this.data=[],e}};async function*pe(t){let e=new he;for await(let n of fe(t)){let r=e.decode(n);r!==null&&(yield r)}}var ge=750,G=120*1e3;function Q(t,e="up"){let n=Date.now();function r(){return e==="up"||Date.now()-n>G}function o(){return e==="timed out"&&Date.now()-n<=G}return{...t,status:e,lastUpdate:n,isUp:r,isTimedOut:o}}var re=class extends Error{name="AlgoliaError";constructor(t,e){super(t),e&&(this.name=e)}};var ne=class extends re{stackTrace;constructor(t,e,n){super(t,n),this.stackTrace=e}},B=class extends ne{constructor(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",t,"RetryError")}},H=class extends ne{status;constructor(t,e,n,r="ApiError"){super(t,n,r),this.status=e}},ye=class extends re{response;constructor(t,e){super(t,"DeserializationError"),this.response=e}},Pe=class extends H{error;constructor(t,e,n,r){super(t,e,r,"DetailedApiError"),this.error=n}};function X(t,e,n){let r=ve(n),o=`${t.protocol}://${t.url}${t.port?`:${t.port}`:""}/${e.charAt(0)==="/"?e.substring(1):e}`;return r.length&&(o+=`?${r}`),o}function ve(t){return Object.keys(t).filter(e=>t[e]!==void 0).sort().map(e=>`${e}=${encodeURIComponent(Object.prototype.toString.call(t[e])==="[object Array]"?t[e].join(","):t[e]).replace(/\+/g,"%20")}`).join("&")}function K(t,e){if(t.method==="GET"||t.data===void 0&&e.data===void 0)return;let n=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(n)}function V(t,e,n){let r={Accept:"application/json",...t,...e,...n},o={};return Object.keys(r).forEach(c=>{let m=r[c];o[c.toLowerCase()]=m}),o}function Ee(t){if(!(t.status===204||t.content.length===0))try{return JSON.parse(t.content)}catch(e){throw new ye(e.message,t)}}function Te({content:t,status:e},n){try{let r=JSON.parse(t);return"error"in r?new Pe(r.message,e,r.error,n):new H(r.message,e,n)}catch{}return new H(t,e,n)}function xe({isTimedOut:t,status:e}){return!t&&~~e===0}function we({isTimedOut:t,status:e}){return t||xe({isTimedOut:t,status:e})||~~(e/100)!==2&&~~(e/100)!==4}function Re({status:t}){return~~(t/100)===2}function Se(t){return t.map(e=>se(e))}function se(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function oe({hosts:t,hostsCache:e,baseHeaders:n,logger:r,baseQueryParameters:o,algoliaAgent:c,timeouts:m,requester:i,requestsCache:s,responsesCache:a,compress:d,compression:h}){async function g(u){let l=await Promise.all(u.map(f=>e.get(f,()=>Promise.resolve(Q(f))))),R=l.filter(f=>f.isUp()),E=l.filter(f=>f.isTimedOut()),w=[...R,...E];return{hosts:w.length>0?w:u,getTimeout(f,S){return(E.length===0&&f===0?1:E.length+3+f)*S}}}async function p(u,l,R){let E=[],w=K(u,l),y=V(n,u.headers,l.headers),f=h==="gzip"&&w!==void 0&&w.length>ge&&(u.method==="POST"||u.method==="PUT");f&&d===void 0&&r.info("Compression is disabled because no compress method is available.");let S=f&&d!==void 0,U=S?await d(w):w;S&&(y["content-encoding"]="gzip");let N=u.method==="GET"?{...u.data,...l.data}:{},b={...o,...u.queryParameters,...N};if(c.value&&(b["x-algolia-agent"]=c.value),l&&l.queryParameters)for(let P of Object.keys(l.queryParameters))!l.queryParameters[P]||Object.prototype.toString.call(l.queryParameters[P])==="[object Object]"?b[P]=l.queryParameters[P]:b[P]=l.queryParameters[P].toString();let C=0,q=async(P,L)=>{let k=P.pop();if(k===void 0)throw new B(Se(E));let $={...m,...l.timeouts},z={data:U,headers:y,method:u.method,url:X(k,u.path,b),connectTimeout:L(C,$.connect),responseTimeout:L(C,R?$.read:$.write)},J=j=>{let M={request:z,response:j,host:k,triesLeft:P.length};return E.push(M),M},O=await i.send(z);if(we(O)){let j=J(O);return O.isTimedOut&&C++,r.info("Retryable failure",se(j)),await e.set(k,Q(k,O.isTimedOut?"timed out":"down")),q(P,L)}if(Re(O))return Ee(O);throw J(O),Te(O,E)},T=t.filter(P=>P.accept==="readWrite"||(R?P.accept==="read":P.accept==="write")),W=await g(T);return q([...W.hosts].reverse(),W.getTimeout)}function v(u,l={}){let R=()=>p(u,l,E),E=u.useReadTransporter||u.method==="GET";if((l.cacheable||u.cacheable)!==!0)return R();let y={request:u,requestOptions:l,transporter:{queryParameters:o,headers:n}};return a.get(y,()=>s.get(y,()=>s.set(y,R()).then(f=>Promise.all([s.delete(y),f]),f=>Promise.all([s.delete(y),Promise.reject(f)])).then(([f,S])=>S)),{miss:f=>a.set(y,f)})}async function*x(u,l={}){if(!i.sendStream)throw new Error("This requester does not support streaming");let R=K(u,l),E=V(n,u.headers,l.headers);E.accept="text/event-stream";let w=u.method==="GET"?{...u.data,...l.data}:{},y={...o,...u.queryParameters,...w};if(c.value&&(y["x-algolia-agent"]=c.value),l&&l.queryParameters)for(let T of Object.keys(l.queryParameters))!l.queryParameters[T]||Object.prototype.toString.call(l.queryParameters[T])==="[object Object]"?y[T]=l.queryParameters[T]:y[T]=l.queryParameters[T].toString();let f=u.useReadTransporter||u.method==="GET",S=t.filter(T=>T.accept==="readWrite"||(f?T.accept==="read":T.accept==="write")),N=(await g(S)).hosts[0];if(!N)throw new B([]);let b={...m,...l.timeouts},C={data:R,headers:E,method:u.method,url:X(N,u.path,y),connectTimeout:b.connect,responseTimeout:f?b.read:b.write},q=await i.sendStream(C);yield*pe(q)}return{hostsCache:e,requester:i,timeouts:m,logger:r,algoliaAgent:c,baseHeaders:n,baseQueryParameters:o,hosts:t,request:v,requestStream:x,requestsCache:s,responsesCache:a}}function I(t,e,n){if(n==null||typeof n=="string"&&n.length===0)throw new Error(`Parameter \`${t}\` is required when calling \`${e}\`.`)}function ae(){function t(e){return new Promise(n=>{let r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach(i=>r.setRequestHeader(i,e.headers[i]));let o=(i,s)=>setTimeout(()=>{r.abort(),n({status:0,content:s,isTimedOut:!0})},i),c=o(e.connectTimeout,"Connection timeout"),m;r.onreadystatechange=()=>{r.readyState>r.OPENED&&m===void 0&&(clearTimeout(c),m=o(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{r.status===0&&(clearTimeout(c),clearTimeout(m),n({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(c),clearTimeout(m),n({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)})}return{send:t}}var _="5.54.0",F=["de","us"];function be(t){return[{url:t?"insights.{region}.algolia.io".replace("{region}",t):"insights.algolia.io",accept:"readWrite",protocol:"https"}]}function ie({appId:t,apiKey:e,authMode:n,algoliaAgents:r,region:o,...c}){let m=Z(t,e,n),i=oe({hosts:be(o),...c,algoliaAgent:ee({algoliaAgents:r,client:"Insights",version:_}),baseHeaders:{"content-type":"text/plain",...m.headers(),...c.baseHeaders},baseQueryParameters:{...m.queryParameters(),...c.baseQueryParameters}});return{transporter:i,appId:t,apiKey:e,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}){!n||n==="WithinHeaders"?i.baseHeaders["x-algolia-api-key"]=s:i.baseQueryParameters["x-algolia-api-key"]=s},customDelete({path:s,parameters:a},d){I("path","customDelete",s);let v={method:"DELETE",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{}};return i.request(v,d)},customGet({path:s,parameters:a},d){I("path","customGet",s);let v={method:"GET",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{}};return i.request(v,d)},customPost({path:s,parameters:a,body:d},h){I("path","customPost",s);let x={method:"POST",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{},data:d||{}};return i.request(x,h)},customPut({path:s,parameters:a,body:d},h){I("path","customPut",s);let x={method:"PUT",path:"/{path}".replace("{path}",s),queryParameters:a||{},headers:{},data:d||{}};return i.request(x,h)},deleteUserToken({userToken:s},a){I("userToken","deleteUserToken",s);let p={method:"DELETE",path:"/1/usertokens/{userToken}".replace("{userToken}",encodeURIComponent(s)),queryParameters:{},headers:{}};return i.request(p,a)},pushEvents(s,a){I("insightsEvents","pushEvents",s),I("insightsEvents.events","pushEvents",s.events);let p={method:"POST",path:"/1/events",queryParameters:{},headers:{},data:s};return i.request(p,a)}}}function pt(t,e,n,r){if(!t||typeof t!="string")throw new Error("`appId` is missing.");if(!e||typeof e!="string")throw new Error("`apiKey` is missing.");if(n&&(typeof n!="string"||!F.includes(n)))throw new Error(`\`region\` must be one of the following: ${F.join(", ")}`);let{compression:o,...c}=r||{};return ie({appId:t,apiKey:e,region:n,timeouts:{connect:1e3,read:2e3,write:3e4},logger:te(),requester:ae(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:D(),requestsCache:D({serializable:!1}),hostsCache:A({caches:[Y({key:`${_}-${t}`}),D()]}),...c})}export{_ as apiClientVersion,pt as insightsClient};
2
6
  //# sourceMappingURL=browser.min.js.map