@algolia/client-analytics 5.0.0-alpha.105 → 5.0.0-alpha.107

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.
@@ -2,7 +2,7 @@ import { createAuth, createTransporter, getAlgoliaAgent, DEFAULT_CONNECT_TIMEOUT
2
2
  import { createHttpRequester } from '@algolia/requester-node-http';
3
3
 
4
4
  // 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.
5
- const apiClientVersion = '5.0.0-alpha.105';
5
+ const apiClientVersion = '5.0.0-alpha.107';
6
6
  const REGIONS = ['de', 'us'];
7
7
  function getDefaultHosts(region) {
8
8
  const url = !region
@@ -164,9 +164,9 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
164
164
  * - analytics.
165
165
  *
166
166
  * @param getAverageClickPosition - The getAverageClickPosition object.
167
- * @param getAverageClickPosition.index - Index name to target.
168
- * @param getAverageClickPosition.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
169
- * @param getAverageClickPosition.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
167
+ * @param getAverageClickPosition.index - Index name.
168
+ * @param getAverageClickPosition.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
169
+ * @param getAverageClickPosition.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
170
170
  * @param getAverageClickPosition.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
171
171
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
172
172
  */
@@ -204,9 +204,9 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
204
204
  * - analytics.
205
205
  *
206
206
  * @param getClickPositions - The getClickPositions object.
207
- * @param getClickPositions.index - Index name to target.
208
- * @param getClickPositions.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
209
- * @param getClickPositions.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
207
+ * @param getClickPositions.index - Index name.
208
+ * @param getClickPositions.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
209
+ * @param getClickPositions.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
210
210
  * @param getClickPositions.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
211
211
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
212
212
  */
@@ -244,9 +244,9 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
244
244
  * - analytics.
245
245
  *
246
246
  * @param getClickThroughRate - The getClickThroughRate object.
247
- * @param getClickThroughRate.index - Index name to target.
248
- * @param getClickThroughRate.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
249
- * @param getClickThroughRate.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
247
+ * @param getClickThroughRate.index - Index name.
248
+ * @param getClickThroughRate.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
249
+ * @param getClickThroughRate.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
250
250
  * @param getClickThroughRate.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
251
251
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
252
252
  */
@@ -284,9 +284,9 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
284
284
  * - analytics.
285
285
  *
286
286
  * @param getConversationRate - The getConversationRate object.
287
- * @param getConversationRate.index - Index name to target.
288
- * @param getConversationRate.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
289
- * @param getConversationRate.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
287
+ * @param getConversationRate.index - Index name.
288
+ * @param getConversationRate.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
289
+ * @param getConversationRate.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
290
290
  * @param getConversationRate.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
291
291
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
292
292
  */
@@ -324,9 +324,9 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
324
324
  * - analytics.
325
325
  *
326
326
  * @param getNoClickRate - The getNoClickRate object.
327
- * @param getNoClickRate.index - Index name to target.
328
- * @param getNoClickRate.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
329
- * @param getNoClickRate.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
327
+ * @param getNoClickRate.index - Index name.
328
+ * @param getNoClickRate.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
329
+ * @param getNoClickRate.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
330
330
  * @param getNoClickRate.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
331
331
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
332
332
  */
@@ -364,9 +364,9 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
364
364
  * - analytics.
365
365
  *
366
366
  * @param getNoResultsRate - The getNoResultsRate object.
367
- * @param getNoResultsRate.index - Index name to target.
368
- * @param getNoResultsRate.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
369
- * @param getNoResultsRate.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
367
+ * @param getNoResultsRate.index - Index name.
368
+ * @param getNoResultsRate.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
369
+ * @param getNoResultsRate.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
370
370
  * @param getNoResultsRate.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
371
371
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
372
372
  */
@@ -404,9 +404,9 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
404
404
  * - analytics.
405
405
  *
406
406
  * @param getSearchesCount - The getSearchesCount object.
407
- * @param getSearchesCount.index - Index name to target.
408
- * @param getSearchesCount.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
409
- * @param getSearchesCount.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
407
+ * @param getSearchesCount.index - Index name.
408
+ * @param getSearchesCount.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
409
+ * @param getSearchesCount.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
410
410
  * @param getSearchesCount.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
411
411
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
412
412
  */
@@ -444,11 +444,11 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
444
444
  * - analytics.
445
445
  *
446
446
  * @param getSearchesNoClicks - The getSearchesNoClicks object.
447
- * @param getSearchesNoClicks.index - Index name to target.
448
- * @param getSearchesNoClicks.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
449
- * @param getSearchesNoClicks.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
450
- * @param getSearchesNoClicks.limit - Number of records to return (page size).
451
- * @param getSearchesNoClicks.offset - Position of the starting record. Used for paging. 0 is the first record.
447
+ * @param getSearchesNoClicks.index - Index name.
448
+ * @param getSearchesNoClicks.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
449
+ * @param getSearchesNoClicks.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
450
+ * @param getSearchesNoClicks.limit - Number of items to return.
451
+ * @param getSearchesNoClicks.offset - Position of the first item to return.
452
452
  * @param getSearchesNoClicks.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
453
453
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
454
454
  */
@@ -492,11 +492,11 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
492
492
  * - analytics.
493
493
  *
494
494
  * @param getSearchesNoResults - The getSearchesNoResults object.
495
- * @param getSearchesNoResults.index - Index name to target.
496
- * @param getSearchesNoResults.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
497
- * @param getSearchesNoResults.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
498
- * @param getSearchesNoResults.limit - Number of records to return (page size).
499
- * @param getSearchesNoResults.offset - Position of the starting record. Used for paging. 0 is the first record.
495
+ * @param getSearchesNoResults.index - Index name.
496
+ * @param getSearchesNoResults.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
497
+ * @param getSearchesNoResults.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
498
+ * @param getSearchesNoResults.limit - Number of items to return.
499
+ * @param getSearchesNoResults.offset - Position of the first item to return.
500
500
  * @param getSearchesNoResults.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
501
501
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
502
502
  */
@@ -540,7 +540,7 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
540
540
  * - analytics.
541
541
  *
542
542
  * @param getStatus - The getStatus object.
543
- * @param getStatus.index - Index name to target.
543
+ * @param getStatus.index - Index name.
544
544
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
545
545
  */
546
546
  getStatus({ index }, requestOptions) {
@@ -568,11 +568,11 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
568
568
  * - analytics.
569
569
  *
570
570
  * @param getTopCountries - The getTopCountries object.
571
- * @param getTopCountries.index - Index name to target.
572
- * @param getTopCountries.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
573
- * @param getTopCountries.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
574
- * @param getTopCountries.limit - Number of records to return (page size).
575
- * @param getTopCountries.offset - Position of the starting record. Used for paging. 0 is the first record.
571
+ * @param getTopCountries.index - Index name.
572
+ * @param getTopCountries.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
573
+ * @param getTopCountries.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
574
+ * @param getTopCountries.limit - Number of items to return.
575
+ * @param getTopCountries.offset - Position of the first item to return.
576
576
  * @param getTopCountries.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
577
577
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
578
578
  */
@@ -616,12 +616,12 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
616
616
  * - analytics.
617
617
  *
618
618
  * @param getTopFilterAttributes - The getTopFilterAttributes object.
619
- * @param getTopFilterAttributes.index - Index name to target.
619
+ * @param getTopFilterAttributes.index - Index name.
620
620
  * @param getTopFilterAttributes.search - User query.
621
- * @param getTopFilterAttributes.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
622
- * @param getTopFilterAttributes.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
623
- * @param getTopFilterAttributes.limit - Number of records to return (page size).
624
- * @param getTopFilterAttributes.offset - Position of the starting record. Used for paging. 0 is the first record.
621
+ * @param getTopFilterAttributes.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
622
+ * @param getTopFilterAttributes.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
623
+ * @param getTopFilterAttributes.limit - Number of items to return.
624
+ * @param getTopFilterAttributes.offset - Position of the first item to return.
625
625
  * @param getTopFilterAttributes.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
626
626
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
627
627
  */
@@ -669,12 +669,12 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
669
669
  *
670
670
  * @param getTopFilterForAttribute - The getTopFilterForAttribute object.
671
671
  * @param getTopFilterForAttribute.attribute - Attribute name.
672
- * @param getTopFilterForAttribute.index - Index name to target.
672
+ * @param getTopFilterForAttribute.index - Index name.
673
673
  * @param getTopFilterForAttribute.search - User query.
674
- * @param getTopFilterForAttribute.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
675
- * @param getTopFilterForAttribute.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
676
- * @param getTopFilterForAttribute.limit - Number of records to return (page size).
677
- * @param getTopFilterForAttribute.offset - Position of the starting record. Used for paging. 0 is the first record.
674
+ * @param getTopFilterForAttribute.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
675
+ * @param getTopFilterForAttribute.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
676
+ * @param getTopFilterForAttribute.limit - Number of items to return.
677
+ * @param getTopFilterForAttribute.offset - Position of the first item to return.
678
678
  * @param getTopFilterForAttribute.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
679
679
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
680
680
  */
@@ -724,12 +724,12 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
724
724
  * - analytics.
725
725
  *
726
726
  * @param getTopFiltersNoResults - The getTopFiltersNoResults object.
727
- * @param getTopFiltersNoResults.index - Index name to target.
727
+ * @param getTopFiltersNoResults.index - Index name.
728
728
  * @param getTopFiltersNoResults.search - User query.
729
- * @param getTopFiltersNoResults.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
730
- * @param getTopFiltersNoResults.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
731
- * @param getTopFiltersNoResults.limit - Number of records to return (page size).
732
- * @param getTopFiltersNoResults.offset - Position of the starting record. Used for paging. 0 is the first record.
729
+ * @param getTopFiltersNoResults.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
730
+ * @param getTopFiltersNoResults.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
731
+ * @param getTopFiltersNoResults.limit - Number of items to return.
732
+ * @param getTopFiltersNoResults.offset - Position of the first item to return.
733
733
  * @param getTopFiltersNoResults.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
734
734
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
735
735
  */
@@ -776,13 +776,13 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
776
776
  * - analytics.
777
777
  *
778
778
  * @param getTopHits - The getTopHits object.
779
- * @param getTopHits.index - Index name to target.
779
+ * @param getTopHits.index - Index name.
780
780
  * @param getTopHits.search - User query.
781
781
  * @param getTopHits.clickAnalytics - Whether to include [click and conversion](https://www.algolia.com/doc/guides/sending-events/getting-started/) rates for a search.
782
- * @param getTopHits.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
783
- * @param getTopHits.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
784
- * @param getTopHits.limit - Number of records to return (page size).
785
- * @param getTopHits.offset - Position of the starting record. Used for paging. 0 is the first record.
782
+ * @param getTopHits.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
783
+ * @param getTopHits.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
784
+ * @param getTopHits.limit - Number of items to return.
785
+ * @param getTopHits.offset - Position of the first item to return.
786
786
  * @param getTopHits.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
787
787
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
788
788
  */
@@ -832,14 +832,14 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
832
832
  * - analytics.
833
833
  *
834
834
  * @param getTopSearches - The getTopSearches object.
835
- * @param getTopSearches.index - Index name to target.
835
+ * @param getTopSearches.index - Index name.
836
836
  * @param getTopSearches.clickAnalytics - Whether to include [click and conversion](https://www.algolia.com/doc/guides/sending-events/getting-started/) rates for a search.
837
- * @param getTopSearches.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
838
- * @param getTopSearches.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
837
+ * @param getTopSearches.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
838
+ * @param getTopSearches.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
839
839
  * @param getTopSearches.orderBy - Reorder the results.
840
840
  * @param getTopSearches.direction - Sorting direction of the results: ascending or descending.
841
- * @param getTopSearches.limit - Number of records to return (page size).
842
- * @param getTopSearches.offset - Position of the starting record. Used for paging. 0 is the first record.
841
+ * @param getTopSearches.limit - Number of items to return.
842
+ * @param getTopSearches.offset - Position of the first item to return.
843
843
  * @param getTopSearches.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
844
844
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
845
845
  */
@@ -892,9 +892,9 @@ function createAnalyticsClient({ appId: appIdOption, apiKey: apiKeyOption, authM
892
892
  * - analytics.
893
893
  *
894
894
  * @param getUsersCount - The getUsersCount object.
895
- * @param getUsersCount.index - Index name to target.
896
- * @param getUsersCount.startDate - Start date (a string in the format `YYYY-MM-DD`) of the period to analyze.
897
- * @param getUsersCount.endDate - End date (a string in the format `YYYY-MM-DD`) of the period to analyze.
895
+ * @param getUsersCount.index - Index name.
896
+ * @param getUsersCount.startDate - Start date (`YYYY-MM-DD`) of the period to analyze.
897
+ * @param getUsersCount.endDate - End date (`YYYY-MM-DD`) of the period to analyze.
898
898
  * @param getUsersCount.tags - Filter analytics on the [`analyticsTags`](https://www.algolia.com/doc/api-reference/api-parameters/analyticsTags/) set at search time. Multiple tags can be combined with the operators OR and AND. If a tag contains characters like spaces or parentheses, it must be URL-encoded.
899
899
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
900
900
  */
@@ -1,2 +1,2 @@
1
- /*! client-analytics.umd.js | 5.0.0-alpha.105 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/client-analytics"]={})}(this,(function(e){"use strict";function t(e){let t;const r=`algolia-client-js-${e.key}`;function i(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(i().getItem(r)||"{}")}function s(e){i().setItem(r,JSON.stringify(e))}return{get:(t,r,i={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>(function(){const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),i=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(s(i),!t)return;s(Object.fromEntries(Object.entries(i).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+t<r)}))))}(),o()[JSON.stringify(t)]))).then((e=>Promise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||i.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve().then((()=>{const s=o();return s[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},i().setItem(r,JSON.stringify(s)),t})),delete:e=>Promise.resolve().then((()=>{const t=o();delete t[JSON.stringify(e)],i().setItem(r,JSON.stringify(t))})),clear:()=>Promise.resolve().then((()=>{i().removeItem(r)}))}}function r(e){const t=[...e.caches],i=t.shift();return void 0===i?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,o,s={miss:()=>Promise.resolve()})=>i.get(e,o,s).catch((()=>r({caches:t}).get(e,o,s))),set:(e,o)=>i.set(e,o).catch((()=>r({caches:t}).set(e,o))),delete:e=>i.delete(e).catch((()=>r({caches:t}).delete(e))),clear:()=>i.clear().catch((()=>r({caches:t}).clear()))}}function i(e={serializable:!0}){let t={};return{get(r,i,o={miss:()=>Promise.resolve()}){const s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);const a=i();return a.then((e=>o.miss(e))).then((()=>a))},set:(r,i)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(i):i,Promise.resolve(i)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}const o=12e4;function s(e,t="up"){const r=Date.now();return{...e,status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>o},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=o}}}function a(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function n(e,t,r){return(t=a(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class c extends Error{constructor(e,t){super(e),n(this,"name","AlgoliaError"),t&&(this.name=t)}}class d extends c{constructor(e,t,r){super(e,r),n(this,"stackTrace",void 0),this.stackTrace=t}}class u extends d{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, please create a ticket at https://support.algolia.com/ sharing steps we can use to reproduce the issue.",e,"RetryError")}}class l extends d{constructor(e,t,r,i="ApiError"){super(e,r,i),n(this,"status",void 0),this.status=t}}class g extends c{constructor(e,t){super(e,"DeserializationError"),n(this,"response",void 0),this.response=t}}class h extends l{constructor(e,t,r,i){super(e,t,i,"DetailedApiError"),n(this,"error",void 0),this.error=r}}function m(e,t,r){const i=function(e){const t=e=>"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e);return Object.keys(e).map((r=>`${r}=${encodeURIComponent(t(e[r])?JSON.stringify(e[r]):e[r]).replaceAll("+","%20")}`)).join("&")}(r);let o=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${"/"===t.charAt(0)?t.substring(1):t}`;return i.length&&(o+=`?${i}`),o}function p(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function f({hosts:e,hostsCache:t,baseHeaders:r,baseQueryParameters:i,algoliaAgent:o,timeouts:a,requester:n,requestsCache:c,responsesCache:d}){async function f(c,d,f=!0){const v=[],S=function(e,t){if("GET"===e.method||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(c,d),y=function(e,t,r){const i={Accept:"application/json",...e,...t,...r},o={};return Object.keys(i).forEach((e=>{const t=i[e];o[e.toLowerCase()]=t})),o}(r,c.headers,d.headers),w="GET"===c.method?{...c.data,...d.data}:{},P={...i,...c.queryParameters,...w};if(o.value&&(P["x-algolia-agent"]=o.value),d&&d.queryParameters)for(const e of Object.keys(d.queryParameters))d.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(d.queryParameters[e])?P[e]=d.queryParameters[e].toString():P[e]=d.queryParameters[e];let q=0;const D=async(e,r)=>{const i=e.pop();if(void 0===i)throw new u(function(e){return e.map((e=>p(e)))}(v));let o=d.timeout;void 0===o&&(o=f?a.read:a.write);const w={data:S,headers:y,method:c.method,url:m(i,c.path,P),connectTimeout:r(q,a.connect),responseTimeout:r(q,o)},T=t=>{const r={request:w,response:t,host:i,triesLeft:e.length};return v.push(r),r},x=await n.send(w);if(function({isTimedOut:e,status:t}){return e||function({isTimedOut:e,status:t}){return!e&&0==~~t}({isTimedOut:e,status:t})||2!=~~(t/100)&&4!=~~(t/100)}(x)){const o=T(x);return x.isTimedOut&&q++,console.log("Retryable failure",p(o)),await t.set(i,s(i,x.isTimedOut?"timed out":"down")),D(e,r)}if(function({status:e}){return 2==~~(e/100)}(x))return function(e){try{return JSON.parse(e.content)}catch(t){throw new g(t.message,e)}}(x);throw T(x),function({content:e,status:t},r){try{const i=JSON.parse(e);return"error"in i?new h(i.message,t,i.error,r):new l(i.message,t,r)}catch(e){}return new l(e,t,r)}(x,v)},T=e.filter((e=>"readWrite"===e.accept||(f?"read"===e.accept:"write"===e.accept))),x=await async function(e){const r=await Promise.all(e.map((e=>t.get(e,(()=>Promise.resolve(s(e))))))),i=r.filter((e=>e.isUp())),o=r.filter((e=>e.isTimedOut())),a=[...i,...o];return{hosts:a.length>0?a:e,getTimeout:(e,t)=>(0===o.length&&0===e?1:o.length+3+e)*t}}(T);return D([...x.hosts].reverse(),x.getTimeout)}return{hostsCache:t,requester:n,timeouts:a,algoliaAgent:o,baseHeaders:r,baseQueryParameters:i,hosts:e,request:function(e,t={}){const o=e.useReadTransporter||"GET"===e.method;if(!o)return f(e,t,o);const s=()=>f(e,t);if(!0!==(t.cacheable||e.cacheable))return s();const a={request:e,requestOptions:t,transporter:{queryParameters:i,headers:r}};return d.get(a,(()=>c.get(a,(()=>c.set(a,s()).then((e=>Promise.all([c.delete(a),e])),(e=>Promise.all([c.delete(a),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>d.set(a,e)})},requestsCache:c,responsesCache:d}}function v({algoliaAgents:e,client:t,version:r}){const i=function(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}(r).add({segment:t,version:r});return e.forEach((e=>i.add(e))),i}const S="5.0.0-alpha.105",y=["de","us"];e.analyticsClient=function(e,o,s,a){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!o||"string"!=typeof o)throw new Error("`apiKey` is missing.");if(s&&("string"!=typeof s||!y.includes(s)))throw new Error(`\`region\` must be one of the following: ${y.join(", ")}`);return function({appId:e,apiKey:t,authMode:r,algoliaAgents:i,region:o,...s}){const a=function(e,t,r="WithinHeaders"){const i={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===r?i:{},queryParameters:()=>"WithinQueryParameters"===r?i:{}}}(e,t,r),n=f({hosts:(c=o,[{url:c?"analytics.{region}.algolia.com".replace("{region}",c):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]),...s,algoliaAgent:v({algoliaAgents:i,client:"Analytics",version:S}),baseHeaders:{"content-type":"text/plain",...a.headers(),...s.baseHeaders},baseQueryParameters:{...a.queryParameters(),...s.baseQueryParameters}});var c;return{transporter:n,appId:e,clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{})),get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(e,t){n.algoliaAgent.add({segment:e,version:t})},customDelete({path:e,parameters:t},r){if(!e)throw new Error("Parameter `path` is required when calling `customDelete`.");const i={method:"DELETE",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{}};return n.request(i,r)},customGet({path:e,parameters:t},r){if(!e)throw new Error("Parameter `path` is required when calling `customGet`.");const i={method:"GET",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{}};return n.request(i,r)},customPost({path:e,parameters:t,body:r},i){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");const o={method:"POST",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{},data:r||{}};return n.request(o,i)},customPut({path:e,parameters:t,body:r},i){if(!e)throw new Error("Parameter `path` is required when calling `customPut`.");const o={method:"PUT",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{},data:r||{}};return n.request(o,i)},getAverageClickPosition({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getAverageClickPosition`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/clicks/averageClickPosition",queryParameters:s,headers:{}};return n.request(a,o)},getClickPositions({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getClickPositions`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/clicks/positions",queryParameters:s,headers:{}};return n.request(a,o)},getClickThroughRate({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getClickThroughRate`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/clicks/clickThroughRate",queryParameters:s,headers:{}};return n.request(a,o)},getConversationRate({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getConversationRate`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/conversions/conversionRate",queryParameters:s,headers:{}};return n.request(a,o)},getNoClickRate({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getNoClickRate`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/searches/noClickRate",queryParameters:s,headers:{}};return n.request(a,o)},getNoResultsRate({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getNoResultsRate`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/searches/noResultRate",queryParameters:s,headers:{}};return n.request(a,o)},getSearchesCount({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesCount`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/searches/count",queryParameters:s,headers:{}};return n.request(a,o)},getSearchesNoClicks({index:e,startDate:t,endDate:r,limit:i,offset:o,tags:s},a){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoClicks`.");const c={};void 0!==e&&(c.index=e.toString()),void 0!==t&&(c.startDate=t.toString()),void 0!==r&&(c.endDate=r.toString()),void 0!==i&&(c.limit=i.toString()),void 0!==o&&(c.offset=o.toString()),void 0!==s&&(c.tags=s.toString());const d={method:"GET",path:"/2/searches/noClicks",queryParameters:c,headers:{}};return n.request(d,a)},getSearchesNoResults({index:e,startDate:t,endDate:r,limit:i,offset:o,tags:s},a){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoResults`.");const c={};void 0!==e&&(c.index=e.toString()),void 0!==t&&(c.startDate=t.toString()),void 0!==r&&(c.endDate=r.toString()),void 0!==i&&(c.limit=i.toString()),void 0!==o&&(c.offset=o.toString()),void 0!==s&&(c.tags=s.toString());const d={method:"GET",path:"/2/searches/noResults",queryParameters:c,headers:{}};return n.request(d,a)},getStatus({index:e},t){if(!e)throw new Error("Parameter `index` is required when calling `getStatus`.");const r={};void 0!==e&&(r.index=e.toString());const i={method:"GET",path:"/2/status",queryParameters:r,headers:{}};return n.request(i,t)},getTopCountries({index:e,startDate:t,endDate:r,limit:i,offset:o,tags:s},a){if(!e)throw new Error("Parameter `index` is required when calling `getTopCountries`.");const c={};void 0!==e&&(c.index=e.toString()),void 0!==t&&(c.startDate=t.toString()),void 0!==r&&(c.endDate=r.toString()),void 0!==i&&(c.limit=i.toString()),void 0!==o&&(c.offset=o.toString()),void 0!==s&&(c.tags=s.toString());const d={method:"GET",path:"/2/countries",queryParameters:c,headers:{}};return n.request(d,a)},getTopFilterAttributes({index:e,search:t,startDate:r,endDate:i,limit:o,offset:s,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getTopFilterAttributes`.");const d={};void 0!==e&&(d.index=e.toString()),void 0!==t&&(d.search=t.toString()),void 0!==r&&(d.startDate=r.toString()),void 0!==i&&(d.endDate=i.toString()),void 0!==o&&(d.limit=o.toString()),void 0!==s&&(d.offset=s.toString()),void 0!==a&&(d.tags=a.toString());const u={method:"GET",path:"/2/filters",queryParameters:d,headers:{}};return n.request(u,c)},getTopFilterForAttribute({attribute:e,index:t,search:r,startDate:i,endDate:o,limit:s,offset:a,tags:c},d){if(!e)throw new Error("Parameter `attribute` is required when calling `getTopFilterForAttribute`.");if(!t)throw new Error("Parameter `index` is required when calling `getTopFilterForAttribute`.");const u="/2/filters/{attribute}".replace("{attribute}",encodeURIComponent(e)),l={};void 0!==t&&(l.index=t.toString()),void 0!==r&&(l.search=r.toString()),void 0!==i&&(l.startDate=i.toString()),void 0!==o&&(l.endDate=o.toString()),void 0!==s&&(l.limit=s.toString()),void 0!==a&&(l.offset=a.toString()),void 0!==c&&(l.tags=c.toString());const g={method:"GET",path:u,queryParameters:l,headers:{}};return n.request(g,d)},getTopFiltersNoResults({index:e,search:t,startDate:r,endDate:i,limit:o,offset:s,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getTopFiltersNoResults`.");const d={};void 0!==e&&(d.index=e.toString()),void 0!==t&&(d.search=t.toString()),void 0!==r&&(d.startDate=r.toString()),void 0!==i&&(d.endDate=i.toString()),void 0!==o&&(d.limit=o.toString()),void 0!==s&&(d.offset=s.toString()),void 0!==a&&(d.tags=a.toString());const u={method:"GET",path:"/2/filters/noResults",queryParameters:d,headers:{}};return n.request(u,c)},getTopHits({index:e,search:t,clickAnalytics:r,startDate:i,endDate:o,limit:s,offset:a,tags:c},d){if(!e)throw new Error("Parameter `index` is required when calling `getTopHits`.");const u={};void 0!==e&&(u.index=e.toString()),void 0!==t&&(u.search=t.toString()),void 0!==r&&(u.clickAnalytics=r.toString()),void 0!==i&&(u.startDate=i.toString()),void 0!==o&&(u.endDate=o.toString()),void 0!==s&&(u.limit=s.toString()),void 0!==a&&(u.offset=a.toString()),void 0!==c&&(u.tags=c.toString());const l={method:"GET",path:"/2/hits",queryParameters:u,headers:{}};return n.request(l,d)},getTopSearches({index:e,clickAnalytics:t,startDate:r,endDate:i,orderBy:o,direction:s,limit:a,offset:c,tags:d},u){if(!e)throw new Error("Parameter `index` is required when calling `getTopSearches`.");const l={};void 0!==e&&(l.index=e.toString()),void 0!==t&&(l.clickAnalytics=t.toString()),void 0!==r&&(l.startDate=r.toString()),void 0!==i&&(l.endDate=i.toString()),void 0!==o&&(l.orderBy=o.toString()),void 0!==s&&(l.direction=s.toString()),void 0!==a&&(l.limit=a.toString()),void 0!==c&&(l.offset=c.toString()),void 0!==d&&(l.tags=d.toString());const g={method:"GET",path:"/2/searches",queryParameters:l,headers:{}};return n.request(g,u)},getUsersCount({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getUsersCount`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/users/count",queryParameters:s,headers:{}};return n.request(a,o)}}}({appId:e,apiKey:o,region:s,timeouts:{connect:1e3,read:2e3,write:3e4},requester:{send:function(e){return new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const i=(e,i)=>setTimeout((()=>{r.abort(),t({status:0,content:i,isTimedOut:!0})}),e),o=i(e.connectTimeout,"Connection timeout");let s;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===s&&(clearTimeout(o),s=i(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(s),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(s),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:i(),requestsCache:i({serializable:!1}),hostsCache:r({caches:[t({key:`${S}-${e}`}),i()]}),...a})},e.apiClientVersion=S}));
1
+ /*! client-analytics.umd.js | 5.0.0-alpha.107 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/client-analytics"]={})}(this,(function(e){"use strict";function t(e){let t;const r=`algolia-client-js-${e.key}`;function i(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(i().getItem(r)||"{}")}function s(e){i().setItem(r,JSON.stringify(e))}return{get:(t,r,i={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>(function(){const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),i=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(s(i),!t)return;s(Object.fromEntries(Object.entries(i).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+t<r)}))))}(),o()[JSON.stringify(t)]))).then((e=>Promise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||i.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve().then((()=>{const s=o();return s[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},i().setItem(r,JSON.stringify(s)),t})),delete:e=>Promise.resolve().then((()=>{const t=o();delete t[JSON.stringify(e)],i().setItem(r,JSON.stringify(t))})),clear:()=>Promise.resolve().then((()=>{i().removeItem(r)}))}}function r(e){const t=[...e.caches],i=t.shift();return void 0===i?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,o,s={miss:()=>Promise.resolve()})=>i.get(e,o,s).catch((()=>r({caches:t}).get(e,o,s))),set:(e,o)=>i.set(e,o).catch((()=>r({caches:t}).set(e,o))),delete:e=>i.delete(e).catch((()=>r({caches:t}).delete(e))),clear:()=>i.clear().catch((()=>r({caches:t}).clear()))}}function i(e={serializable:!0}){let t={};return{get(r,i,o={miss:()=>Promise.resolve()}){const s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);const a=i();return a.then((e=>o.miss(e))).then((()=>a))},set:(r,i)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(i):i,Promise.resolve(i)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}const o=12e4;function s(e,t="up"){const r=Date.now();return{...e,status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>o},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=o}}}function a(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function n(e,t,r){return(t=a(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class c extends Error{constructor(e,t){super(e),n(this,"name","AlgoliaError"),t&&(this.name=t)}}class d extends c{constructor(e,t,r){super(e,r),n(this,"stackTrace",void 0),this.stackTrace=t}}class u extends d{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, please create a ticket at https://support.algolia.com/ sharing steps we can use to reproduce the issue.",e,"RetryError")}}class l extends d{constructor(e,t,r,i="ApiError"){super(e,r,i),n(this,"status",void 0),this.status=t}}class g extends c{constructor(e,t){super(e,"DeserializationError"),n(this,"response",void 0),this.response=t}}class h extends l{constructor(e,t,r,i){super(e,t,i,"DetailedApiError"),n(this,"error",void 0),this.error=r}}function m(e,t,r){const i=function(e){const t=e=>"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e);return Object.keys(e).map((r=>`${r}=${encodeURIComponent(t(e[r])?JSON.stringify(e[r]):e[r]).replaceAll("+","%20")}`)).join("&")}(r);let o=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${"/"===t.charAt(0)?t.substring(1):t}`;return i.length&&(o+=`?${i}`),o}function p(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function f({hosts:e,hostsCache:t,baseHeaders:r,baseQueryParameters:i,algoliaAgent:o,timeouts:a,requester:n,requestsCache:c,responsesCache:d}){async function f(c,d,f=!0){const v=[],S=function(e,t){if("GET"===e.method||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(c,d),y=function(e,t,r){const i={Accept:"application/json",...e,...t,...r},o={};return Object.keys(i).forEach((e=>{const t=i[e];o[e.toLowerCase()]=t})),o}(r,c.headers,d.headers),w="GET"===c.method?{...c.data,...d.data}:{},P={...i,...c.queryParameters,...w};if(o.value&&(P["x-algolia-agent"]=o.value),d&&d.queryParameters)for(const e of Object.keys(d.queryParameters))d.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(d.queryParameters[e])?P[e]=d.queryParameters[e].toString():P[e]=d.queryParameters[e];let q=0;const D=async(e,r)=>{const i=e.pop();if(void 0===i)throw new u(function(e){return e.map((e=>p(e)))}(v));let o=d.timeout;void 0===o&&(o=f?a.read:a.write);const w={data:S,headers:y,method:c.method,url:m(i,c.path,P),connectTimeout:r(q,a.connect),responseTimeout:r(q,o)},T=t=>{const r={request:w,response:t,host:i,triesLeft:e.length};return v.push(r),r},x=await n.send(w);if(function({isTimedOut:e,status:t}){return e||function({isTimedOut:e,status:t}){return!e&&!~~t}({isTimedOut:e,status:t})||2!=~~(t/100)&&4!=~~(t/100)}(x)){const o=T(x);return x.isTimedOut&&q++,console.log("Retryable failure",p(o)),await t.set(i,s(i,x.isTimedOut?"timed out":"down")),D(e,r)}if(function({status:e}){return 2==~~(e/100)}(x))return function(e){try{return JSON.parse(e.content)}catch(t){throw new g(t.message,e)}}(x);throw T(x),function({content:e,status:t},r){try{const i=JSON.parse(e);return"error"in i?new h(i.message,t,i.error,r):new l(i.message,t,r)}catch(e){}return new l(e,t,r)}(x,v)},T=e.filter((e=>"readWrite"===e.accept||(f?"read"===e.accept:"write"===e.accept))),x=await async function(e){const r=await Promise.all(e.map((e=>t.get(e,(()=>Promise.resolve(s(e))))))),i=r.filter((e=>e.isUp())),o=r.filter((e=>e.isTimedOut())),a=[...i,...o];return{hosts:a.length>0?a:e,getTimeout:(e,t)=>(0===o.length&&0===e?1:o.length+3+e)*t}}(T);return D([...x.hosts].reverse(),x.getTimeout)}return{hostsCache:t,requester:n,timeouts:a,algoliaAgent:o,baseHeaders:r,baseQueryParameters:i,hosts:e,request:function(e,t={}){const o=e.useReadTransporter||"GET"===e.method;if(!o)return f(e,t,o);const s=()=>f(e,t);if(!0!==(t.cacheable||e.cacheable))return s();const a={request:e,requestOptions:t,transporter:{queryParameters:i,headers:r}};return d.get(a,(()=>c.get(a,(()=>c.set(a,s()).then((e=>Promise.all([c.delete(a),e])),(e=>Promise.all([c.delete(a),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>d.set(a,e)})},requestsCache:c,responsesCache:d}}function v({algoliaAgents:e,client:t,version:r}){const i=function(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}(r).add({segment:t,version:r});return e.forEach((e=>i.add(e))),i}const S="5.0.0-alpha.107",y=["de","us"];e.analyticsClient=function(e,o,s,a){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!o||"string"!=typeof o)throw new Error("`apiKey` is missing.");if(s&&("string"!=typeof s||!y.includes(s)))throw new Error(`\`region\` must be one of the following: ${y.join(", ")}`);return function({appId:e,apiKey:t,authMode:r,algoliaAgents:i,region:o,...s}){const a=function(e,t,r="WithinHeaders"){const i={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===r?i:{},queryParameters:()=>"WithinQueryParameters"===r?i:{}}}(e,t,r),n=f({hosts:(c=o,[{url:c?"analytics.{region}.algolia.com".replace("{region}",c):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]),...s,algoliaAgent:v({algoliaAgents:i,client:"Analytics",version:S}),baseHeaders:{"content-type":"text/plain",...a.headers(),...s.baseHeaders},baseQueryParameters:{...a.queryParameters(),...s.baseQueryParameters}});var c;return{transporter:n,appId:e,clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{})),get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(e,t){n.algoliaAgent.add({segment:e,version:t})},customDelete({path:e,parameters:t},r){if(!e)throw new Error("Parameter `path` is required when calling `customDelete`.");const i={method:"DELETE",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{}};return n.request(i,r)},customGet({path:e,parameters:t},r){if(!e)throw new Error("Parameter `path` is required when calling `customGet`.");const i={method:"GET",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{}};return n.request(i,r)},customPost({path:e,parameters:t,body:r},i){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");const o={method:"POST",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{},data:r||{}};return n.request(o,i)},customPut({path:e,parameters:t,body:r},i){if(!e)throw new Error("Parameter `path` is required when calling `customPut`.");const o={method:"PUT",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{},data:r||{}};return n.request(o,i)},getAverageClickPosition({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getAverageClickPosition`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/clicks/averageClickPosition",queryParameters:s,headers:{}};return n.request(a,o)},getClickPositions({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getClickPositions`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/clicks/positions",queryParameters:s,headers:{}};return n.request(a,o)},getClickThroughRate({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getClickThroughRate`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/clicks/clickThroughRate",queryParameters:s,headers:{}};return n.request(a,o)},getConversationRate({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getConversationRate`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/conversions/conversionRate",queryParameters:s,headers:{}};return n.request(a,o)},getNoClickRate({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getNoClickRate`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/searches/noClickRate",queryParameters:s,headers:{}};return n.request(a,o)},getNoResultsRate({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getNoResultsRate`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/searches/noResultRate",queryParameters:s,headers:{}};return n.request(a,o)},getSearchesCount({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesCount`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/searches/count",queryParameters:s,headers:{}};return n.request(a,o)},getSearchesNoClicks({index:e,startDate:t,endDate:r,limit:i,offset:o,tags:s},a){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoClicks`.");const c={};void 0!==e&&(c.index=e.toString()),void 0!==t&&(c.startDate=t.toString()),void 0!==r&&(c.endDate=r.toString()),void 0!==i&&(c.limit=i.toString()),void 0!==o&&(c.offset=o.toString()),void 0!==s&&(c.tags=s.toString());const d={method:"GET",path:"/2/searches/noClicks",queryParameters:c,headers:{}};return n.request(d,a)},getSearchesNoResults({index:e,startDate:t,endDate:r,limit:i,offset:o,tags:s},a){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoResults`.");const c={};void 0!==e&&(c.index=e.toString()),void 0!==t&&(c.startDate=t.toString()),void 0!==r&&(c.endDate=r.toString()),void 0!==i&&(c.limit=i.toString()),void 0!==o&&(c.offset=o.toString()),void 0!==s&&(c.tags=s.toString());const d={method:"GET",path:"/2/searches/noResults",queryParameters:c,headers:{}};return n.request(d,a)},getStatus({index:e},t){if(!e)throw new Error("Parameter `index` is required when calling `getStatus`.");const r={};void 0!==e&&(r.index=e.toString());const i={method:"GET",path:"/2/status",queryParameters:r,headers:{}};return n.request(i,t)},getTopCountries({index:e,startDate:t,endDate:r,limit:i,offset:o,tags:s},a){if(!e)throw new Error("Parameter `index` is required when calling `getTopCountries`.");const c={};void 0!==e&&(c.index=e.toString()),void 0!==t&&(c.startDate=t.toString()),void 0!==r&&(c.endDate=r.toString()),void 0!==i&&(c.limit=i.toString()),void 0!==o&&(c.offset=o.toString()),void 0!==s&&(c.tags=s.toString());const d={method:"GET",path:"/2/countries",queryParameters:c,headers:{}};return n.request(d,a)},getTopFilterAttributes({index:e,search:t,startDate:r,endDate:i,limit:o,offset:s,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getTopFilterAttributes`.");const d={};void 0!==e&&(d.index=e.toString()),void 0!==t&&(d.search=t.toString()),void 0!==r&&(d.startDate=r.toString()),void 0!==i&&(d.endDate=i.toString()),void 0!==o&&(d.limit=o.toString()),void 0!==s&&(d.offset=s.toString()),void 0!==a&&(d.tags=a.toString());const u={method:"GET",path:"/2/filters",queryParameters:d,headers:{}};return n.request(u,c)},getTopFilterForAttribute({attribute:e,index:t,search:r,startDate:i,endDate:o,limit:s,offset:a,tags:c},d){if(!e)throw new Error("Parameter `attribute` is required when calling `getTopFilterForAttribute`.");if(!t)throw new Error("Parameter `index` is required when calling `getTopFilterForAttribute`.");const u="/2/filters/{attribute}".replace("{attribute}",encodeURIComponent(e)),l={};void 0!==t&&(l.index=t.toString()),void 0!==r&&(l.search=r.toString()),void 0!==i&&(l.startDate=i.toString()),void 0!==o&&(l.endDate=o.toString()),void 0!==s&&(l.limit=s.toString()),void 0!==a&&(l.offset=a.toString()),void 0!==c&&(l.tags=c.toString());const g={method:"GET",path:u,queryParameters:l,headers:{}};return n.request(g,d)},getTopFiltersNoResults({index:e,search:t,startDate:r,endDate:i,limit:o,offset:s,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getTopFiltersNoResults`.");const d={};void 0!==e&&(d.index=e.toString()),void 0!==t&&(d.search=t.toString()),void 0!==r&&(d.startDate=r.toString()),void 0!==i&&(d.endDate=i.toString()),void 0!==o&&(d.limit=o.toString()),void 0!==s&&(d.offset=s.toString()),void 0!==a&&(d.tags=a.toString());const u={method:"GET",path:"/2/filters/noResults",queryParameters:d,headers:{}};return n.request(u,c)},getTopHits({index:e,search:t,clickAnalytics:r,startDate:i,endDate:o,limit:s,offset:a,tags:c},d){if(!e)throw new Error("Parameter `index` is required when calling `getTopHits`.");const u={};void 0!==e&&(u.index=e.toString()),void 0!==t&&(u.search=t.toString()),void 0!==r&&(u.clickAnalytics=r.toString()),void 0!==i&&(u.startDate=i.toString()),void 0!==o&&(u.endDate=o.toString()),void 0!==s&&(u.limit=s.toString()),void 0!==a&&(u.offset=a.toString()),void 0!==c&&(u.tags=c.toString());const l={method:"GET",path:"/2/hits",queryParameters:u,headers:{}};return n.request(l,d)},getTopSearches({index:e,clickAnalytics:t,startDate:r,endDate:i,orderBy:o,direction:s,limit:a,offset:c,tags:d},u){if(!e)throw new Error("Parameter `index` is required when calling `getTopSearches`.");const l={};void 0!==e&&(l.index=e.toString()),void 0!==t&&(l.clickAnalytics=t.toString()),void 0!==r&&(l.startDate=r.toString()),void 0!==i&&(l.endDate=i.toString()),void 0!==o&&(l.orderBy=o.toString()),void 0!==s&&(l.direction=s.toString()),void 0!==a&&(l.limit=a.toString()),void 0!==c&&(l.offset=c.toString()),void 0!==d&&(l.tags=d.toString());const g={method:"GET",path:"/2/searches",queryParameters:l,headers:{}};return n.request(g,u)},getUsersCount({index:e,startDate:t,endDate:r,tags:i},o){if(!e)throw new Error("Parameter `index` is required when calling `getUsersCount`.");const s={};void 0!==e&&(s.index=e.toString()),void 0!==t&&(s.startDate=t.toString()),void 0!==r&&(s.endDate=r.toString()),void 0!==i&&(s.tags=i.toString());const a={method:"GET",path:"/2/users/count",queryParameters:s,headers:{}};return n.request(a,o)}}}({appId:e,apiKey:o,region:s,timeouts:{connect:1e3,read:2e3,write:3e4},requester:{send:function(e){return new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const i=(e,i)=>setTimeout((()=>{r.abort(),t({status:0,content:i,isTimedOut:!0})}),e),o=i(e.connectTimeout,"Connection timeout");let s;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===s&&(clearTimeout(o),s=i(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(s),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(s),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:i(),requestsCache:i({serializable:!1}),hostsCache:r({caches:[t({key:`${S}-${e}`}),i()]}),...a})},e.apiClientVersion=S}));