You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@algolia/client-analytics

Package Overview
Dependencies
Maintainers
3
Versions
296
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@algolia/client-analytics - npm Package Compare versions

Comparing version
5.39.0
to
5.40.0
+29
-29
dist/builds/browser.js

@@ -12,3 +12,3 @@ // builds/browser.ts

import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common";
var apiClientVersion = "5.39.0";
var apiClientVersion = "5.40.0";
var REGIONS = ["de", "us"];

@@ -183,3 +183,3 @@ function getDefaultHosts(region) {

/**
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -192,3 +192,3 @@ * Required API Key ACLs:

* @param getAddToCartRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -224,3 +224,3 @@ */

/**
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries. The average is `null` until Algolia receives at least one click event.
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. The average is `null` until Algolia receives at least one click event.
*

@@ -233,3 +233,3 @@ * Required API Key ACLs:

* @param getAverageClickPosition.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -265,3 +265,3 @@ */

/**
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries.
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries.
*

@@ -274,3 +274,3 @@ * Required API Key ACLs:

* @param getClickPositions.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -306,3 +306,3 @@ */

/**
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -315,3 +315,3 @@ * Required API Key ACLs:

* @param getClickThroughRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -347,3 +347,3 @@ */

/**
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -356,3 +356,3 @@ * Required API Key ACLs:

* @param getConversionRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -396,3 +396,3 @@ */

* @param getNoClickRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -436,3 +436,3 @@ */

* @param getNoResultsRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -468,3 +468,3 @@ */

/**
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -477,3 +477,3 @@ * Required API Key ACLs:

* @param getPurchaseRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -517,3 +517,3 @@ */

* @param getRevenue.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -557,3 +557,3 @@ */

* @param getSearchesCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -599,3 +599,3 @@ */

* @param getSearchesNoClicks.offset - Position of the first item to return.
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -647,3 +647,3 @@ */

* @param getSearchesNoResults.offset - Position of the first item to return.
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -722,3 +722,3 @@ */

* @param getTopCountries.offset - Position of the first item to return.
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -771,3 +771,3 @@ */

* @param getTopFilterAttributes.offset - Position of the first item to return.
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -824,3 +824,3 @@ */

* @param getTopFilterForAttribute.offset - Position of the first item to return.
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -868,3 +868,3 @@ */

/**
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](#tag/search/operation/getSearchesNoResults) operation.
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](https://www.algolia.com/doc/rest-api/analytics/get-searches-no-results) operation.
*

@@ -880,3 +880,3 @@ * Required API Key ACLs:

* @param getTopFiltersNoResults.offset - Position of the first item to return.
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -921,3 +921,3 @@ */

/**
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -935,3 +935,3 @@ * Required API Key ACLs:

* @param getTopHits.offset - Position of the first item to return.
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -982,3 +982,3 @@ */

/**
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -997,3 +997,3 @@ * Required API Key ACLs:

* @param getTopSearches.offset - Position of the first item to return.
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1066,3 +1066,3 @@ */

* @param getUsersCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1069,0 +1069,0 @@ */

@@ -1,2 +0,2 @@

function Q(){function o(t){return new Promise(d=>{let u=new XMLHttpRequest;u.open(t.method,t.url,!0),Object.keys(t.headers).forEach(f=>u.setRequestHeader(f,t.headers[f]));let h=(f,e)=>setTimeout(()=>{u.abort(),d({status:0,content:e,isTimedOut:!0})},f),R=h(t.connectTimeout,"Connection timeout"),y;u.onreadystatechange=()=>{u.readyState>u.OPENED&&y===void 0&&(clearTimeout(R),y=h(t.responseTimeout,"Socket timeout"))},u.onerror=()=>{u.status===0&&(clearTimeout(R),clearTimeout(y),d({content:u.responseText||"Network request failed",status:u.status,isTimedOut:!1}))},u.onload=()=>{clearTimeout(R),clearTimeout(y),d({content:u.responseText,status:u.status,isTimedOut:!1})},u.send(t.data)})}return{send:o}}function L(o){let t,d=`algolia-client-js-${o.key}`;function u(){return t===void 0&&(t=o.localStorage||window.localStorage),t}function h(){return JSON.parse(u().getItem(d)||"{}")}function R(f){u().setItem(d,JSON.stringify(f))}function y(){let f=o.timeToLive?o.timeToLive*1e3:null,e=h(),s=Object.fromEntries(Object.entries(e).filter(([,i])=>i.timestamp!==void 0));if(R(s),!f)return;let n=Object.fromEntries(Object.entries(s).filter(([,i])=>{let l=new Date().getTime();return!(i.timestamp+f<l)}));R(n)}return{get(f,e,s={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(y(),h()[JSON.stringify(f)])).then(n=>Promise.all([n?n.value:e(),n!==void 0])).then(([n,i])=>Promise.all([n,i||s.miss(n)])).then(([n])=>n)},set(f,e){return Promise.resolve().then(()=>{let s=h();return s[JSON.stringify(f)]={timestamp:new Date().getTime(),value:e},u().setItem(d,JSON.stringify(s)),e})},delete(f){return Promise.resolve().then(()=>{let e=h();delete e[JSON.stringify(f)],u().setItem(d,JSON.stringify(e))})},clear(){return Promise.resolve().then(()=>{u().removeItem(d)})}}}function V(){return{get(o,t,d={miss:()=>Promise.resolve()}){return t().then(h=>Promise.all([h,d.miss(h)])).then(([h])=>h)},set(o,t){return Promise.resolve(t)},delete(o){return Promise.resolve()},clear(){return Promise.resolve()}}}function E(o){let t=[...o.caches],d=t.shift();return d===void 0?V():{get(u,h,R={miss:()=>Promise.resolve()}){return d.get(u,h,R).catch(()=>E({caches:t}).get(u,h,R))},set(u,h){return d.set(u,h).catch(()=>E({caches:t}).set(u,h))},delete(u){return d.delete(u).catch(()=>E({caches:t}).delete(u))},clear(){return d.clear().catch(()=>E({caches:t}).clear())}}}function x(o={serializable:!0}){let t={};return{get(d,u,h={miss:()=>Promise.resolve()}){let R=JSON.stringify(d);if(R in t)return Promise.resolve(o.serializable?JSON.parse(t[R]):t[R]);let y=u();return y.then(f=>h.miss(f)).then(()=>y)},set(d,u){return t[JSON.stringify(d)]=o.serializable?JSON.stringify(u):u,Promise.resolve(u)},delete(d){return delete t[JSON.stringify(d)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}function Y(o){let t={value:`Algolia for JavaScript (${o})`,add(d){let u=`; ${d.segment}${d.version!==void 0?` (${d.version})`:""}`;return t.value.indexOf(u)===-1&&(t.value=`${t.value}${u}`),t}};return t}function $(o,t,d="WithinHeaders"){let u={"x-algolia-api-key":t,"x-algolia-application-id":o};return{headers(){return d==="WithinHeaders"?u:{}},queryParameters(){return d==="WithinQueryParameters"?u:{}}}}function j({algoliaAgents:o,client:t,version:d}){let u=Y(d).add({segment:t,version:d});return o.forEach(h=>u.add(h)),u}function W(){return{debug(o,t){return Promise.resolve()},info(o,t){return Promise.resolve()},error(o,t){return Promise.resolve()}}}var _=120*1e3;function U(o,t="up"){let d=Date.now();function u(){return t==="up"||Date.now()-d>_}function h(){return t==="timed out"&&Date.now()-d<=_}return{...o,status:t,lastUpdate:d,isUp:u,isTimedOut:h}}var J=class extends Error{name="AlgoliaError";constructor(o,t){super(o),t&&(this.name=t)}};var z=class extends J{stackTrace;constructor(o,t,d){super(o,d),this.stackTrace=t}},Z=class extends z{constructor(o){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",o,"RetryError")}},k=class extends z{status;constructor(o,t,d,u="ApiError"){super(o,d,u),this.status=t}},ee=class extends J{response;constructor(o,t){super(o,"DeserializationError"),this.response=t}},te=class extends k{error;constructor(o,t,d,u){super(o,t,u,"DetailedApiError"),this.error=d}};function re(o,t,d){let u=oe(d),h=`${o.protocol}://${o.url}${o.port?`:${o.port}`:""}/${t.charAt(0)==="/"?t.substring(1):t}`;return u.length&&(h+=`?${u}`),h}function oe(o){return Object.keys(o).filter(t=>o[t]!==void 0).sort().map(t=>`${t}=${encodeURIComponent(Object.prototype.toString.call(o[t])==="[object Array]"?o[t].join(","):o[t]).replace(/\+/g,"%20")}`).join("&")}function se(o,t){if(o.method==="GET"||o.data===void 0&&t.data===void 0)return;let d=Array.isArray(o.data)?o.data:{...o.data,...t.data};return JSON.stringify(d)}function ne(o,t,d){let u={Accept:"application/json",...o,...t,...d},h={};return Object.keys(u).forEach(R=>{let y=u[R];h[R.toLowerCase()]=y}),h}function ie(o){try{return JSON.parse(o.content)}catch(t){throw new ee(t.message,o)}}function ae({content:o,status:t},d){try{let u=JSON.parse(o);return"error"in u?new te(u.message,t,u.error,d):new k(u.message,t,d)}catch{}return new k(o,t,d)}function ue({isTimedOut:o,status:t}){return!o&&~~t===0}function ce({isTimedOut:o,status:t}){return o||ue({isTimedOut:o,status:t})||~~(t/100)!==2&&~~(t/100)!==4}function de({status:o}){return~~(o/100)===2}function le(o){return o.map(t=>M(t))}function M(o){let t=o.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...o,request:{...o.request,headers:{...o.request.headers,...t}}}}function B({hosts:o,hostsCache:t,baseHeaders:d,logger:u,baseQueryParameters:h,algoliaAgent:R,timeouts:y,requester:f,requestsCache:e,responsesCache:s}){async function n(a){let c=await Promise.all(a.map(P=>t.get(P,()=>Promise.resolve(U(P))))),r=c.filter(P=>P.isUp()),p=c.filter(P=>P.isTimedOut()),m=[...r,...p];return{hosts:m.length>0?m:a,getTimeout(P,S){return(p.length===0&&P===0?1:p.length+3+P)*S}}}async function i(a,c,r=!0){let p=[],m=se(a,c),g=ne(d,a.headers,c.headers),P=a.method==="GET"?{...a.data,...c.data}:{},S={...h,...a.queryParameters,...P};if(R.value&&(S["x-algolia-agent"]=R.value),c&&c.queryParameters)for(let T of Object.keys(c.queryParameters))!c.queryParameters[T]||Object.prototype.toString.call(c.queryParameters[T])==="[object Object]"?S[T]=c.queryParameters[T]:S[T]=c.queryParameters[T].toString();let q=0,G=async(T,A)=>{let C=T.pop();if(C===void 0)throw new Z(le(p));let N={...y,...c.timeouts},F={data:m,headers:g,method:a.method,url:re(C,a.path,S),connectTimeout:A(q,N.connect),responseTimeout:A(q,r?N.read:N.write)},I=O=>{let D={request:F,response:O,host:C,triesLeft:T.length};return p.push(D),D},w=await f.send(F);if(ce(w)){let O=I(w);return w.isTimedOut&&q++,u.info("Retryable failure",M(O)),await t.set(C,U(C,w.isTimedOut?"timed out":"down")),G(T,A)}if(de(w))return ie(w);throw I(w),ae(w,p)},K=o.filter(T=>T.accept==="readWrite"||(r?T.accept==="read":T.accept==="write")),H=await n(K);return G([...H.hosts].reverse(),H.getTimeout)}function l(a,c={}){let r=a.useReadTransporter||a.method==="GET";if(!r)return i(a,c,r);let p=()=>i(a,c);if((c.cacheable||a.cacheable)!==!0)return p();let g={request:a,requestOptions:c,transporter:{queryParameters:h,headers:d}};return s.get(g,()=>e.get(g,()=>e.set(g,p()).then(P=>Promise.all([e.delete(g),P]),P=>Promise.all([e.delete(g),Promise.reject(P)])).then(([P,S])=>S)),{miss:P=>s.set(g,P)})}return{hostsCache:t,requester:f,timeouts:y,logger:u,algoliaAgent:R,baseHeaders:d,baseQueryParameters:h,hosts:o,request:l,requestsCache:e,responsesCache:s}}var v="5.39.0",b=["de","us"];function fe(o){return[{url:o?"analytics.{region}.algolia.com".replace("{region}",o):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]}function X({appId:o,apiKey:t,authMode:d,algoliaAgents:u,region:h,...R}){let y=$(o,t,d),f=B({hosts:fe(h),...R,algoliaAgent:j({algoliaAgents:u,client:"Analytics",version:v}),baseHeaders:{"content-type":"text/plain",...y.headers(),...R.baseHeaders},baseQueryParameters:{...y.queryParameters(),...R.baseQueryParameters}});return{transporter:f,appId:o,apiKey:t,clearCache(){return Promise.all([f.requestsCache.clear(),f.responsesCache.clear()]).then(()=>{})},get _ua(){return f.algoliaAgent.value},addAlgoliaAgent(e,s){f.algoliaAgent.add({segment:e,version:s})},setClientApiKey({apiKey:e}){!d||d==="WithinHeaders"?f.baseHeaders["x-algolia-api-key"]=e:f.baseQueryParameters["x-algolia-api-key"]=e},customDelete({path:e,parameters:s},n){if(!e)throw new Error("Parameter `path` is required when calling `customDelete`.");let c={method:"DELETE",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{}};return f.request(c,n)},customGet({path:e,parameters:s},n){if(!e)throw new Error("Parameter `path` is required when calling `customGet`.");let c={method:"GET",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{}};return f.request(c,n)},customPost({path:e,parameters:s,body:n},i){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");let r={method:"POST",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{},data:n||{}};return f.request(r,i)},customPut({path:e,parameters:s,body:n},i){if(!e)throw new Error("Parameter `path` is required when calling `customPut`.");let r={method:"PUT",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{},data:n||{}};return f.request(r,i)},getAddToCartRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getAddToCartRate`.");let a="/2/conversions/addToCartRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getAverageClickPosition({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getAverageClickPosition`.");let a="/2/clicks/averageClickPosition",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getClickPositions({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getClickPositions`.");let a="/2/clicks/positions",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getClickThroughRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getClickThroughRate`.");let a="/2/clicks/clickThroughRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getConversionRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getConversionRate`.");let a="/2/conversions/conversionRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getNoClickRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getNoClickRate`.");let a="/2/searches/noClickRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getNoResultsRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getNoResultsRate`.");let a="/2/searches/noResultRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getPurchaseRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getPurchaseRate`.");let a="/2/conversions/purchaseRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getRevenue({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getRevenue`.");let a="/2/conversions/revenue",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getSearchesCount({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesCount`.");let a="/2/searches/count",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getSearchesNoClicks({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoClicks`.");let r="/2/searches/noClicks",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getSearchesNoResults({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoResults`.");let r="/2/searches/noResults",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getStatus({index:e},s){if(!e)throw new Error("Parameter `index` is required when calling `getStatus`.");let n="/2/status",i={},l={};e!==void 0&&(l.index=e.toString());let a={method:"GET",path:n,queryParameters:l,headers:i};return f.request(a,s)},getTopCountries({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getTopCountries`.");let r="/2/countries",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getTopFilterAttributes({index:e,search:s,startDate:n,endDate:i,limit:l,offset:a,tags:c},r){if(!e)throw new Error("Parameter `index` is required when calling `getTopFilterAttributes`.");let p="/2/filters",m={},g={};e!==void 0&&(g.index=e.toString()),s!==void 0&&(g.search=s.toString()),n!==void 0&&(g.startDate=n.toString()),i!==void 0&&(g.endDate=i.toString()),l!==void 0&&(g.limit=l.toString()),a!==void 0&&(g.offset=a.toString()),c!==void 0&&(g.tags=c.toString());let P={method:"GET",path:p,queryParameters:g,headers:m};return f.request(P,r)},getTopFilterForAttribute({attribute:e,index:s,search:n,startDate:i,endDate:l,limit:a,offset:c,tags:r},p){if(!e)throw new Error("Parameter `attribute` is required when calling `getTopFilterForAttribute`.");if(!s)throw new Error("Parameter `index` is required when calling `getTopFilterForAttribute`.");let m="/2/filters/{attribute}".replace("{attribute}",encodeURIComponent(e)),g={},P={};s!==void 0&&(P.index=s.toString()),n!==void 0&&(P.search=n.toString()),i!==void 0&&(P.startDate=i.toString()),l!==void 0&&(P.endDate=l.toString()),a!==void 0&&(P.limit=a.toString()),c!==void 0&&(P.offset=c.toString()),r!==void 0&&(P.tags=r.toString());let S={method:"GET",path:m,queryParameters:P,headers:g};return f.request(S,p)},getTopFiltersNoResults({index:e,search:s,startDate:n,endDate:i,limit:l,offset:a,tags:c},r){if(!e)throw new Error("Parameter `index` is required when calling `getTopFiltersNoResults`.");let p="/2/filters/noResults",m={},g={};e!==void 0&&(g.index=e.toString()),s!==void 0&&(g.search=s.toString()),n!==void 0&&(g.startDate=n.toString()),i!==void 0&&(g.endDate=i.toString()),l!==void 0&&(g.limit=l.toString()),a!==void 0&&(g.offset=a.toString()),c!==void 0&&(g.tags=c.toString());let P={method:"GET",path:p,queryParameters:g,headers:m};return f.request(P,r)},getTopHits({index:e,search:s,clickAnalytics:n,revenueAnalytics:i,startDate:l,endDate:a,limit:c,offset:r,tags:p},m){if(!e)throw new Error("Parameter `index` is required when calling `getTopHits`.");let g="/2/hits",P={},S={};e!==void 0&&(S.index=e.toString()),s!==void 0&&(S.search=s.toString()),n!==void 0&&(S.clickAnalytics=n.toString()),i!==void 0&&(S.revenueAnalytics=i.toString()),l!==void 0&&(S.startDate=l.toString()),a!==void 0&&(S.endDate=a.toString()),c!==void 0&&(S.limit=c.toString()),r!==void 0&&(S.offset=r.toString()),p!==void 0&&(S.tags=p.toString());let q={method:"GET",path:g,queryParameters:S,headers:P};return f.request(q,m)},getTopSearches({index:e,clickAnalytics:s,revenueAnalytics:n,startDate:i,endDate:l,orderBy:a,direction:c,limit:r,offset:p,tags:m},g){if(!e)throw new Error("Parameter `index` is required when calling `getTopSearches`.");let P="/2/searches",S={},q={};e!==void 0&&(q.index=e.toString()),s!==void 0&&(q.clickAnalytics=s.toString()),n!==void 0&&(q.revenueAnalytics=n.toString()),i!==void 0&&(q.startDate=i.toString()),l!==void 0&&(q.endDate=l.toString()),a!==void 0&&(q.orderBy=a.toString()),c!==void 0&&(q.direction=c.toString()),r!==void 0&&(q.limit=r.toString()),p!==void 0&&(q.offset=p.toString()),m!==void 0&&(q.tags=m.toString());let G={method:"GET",path:P,queryParameters:q,headers:S};return f.request(G,g)},getUsersCount({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getUsersCount`.");let a="/2/users/count",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)}}}function At(o,t,d,u){if(!o||typeof o!="string")throw new Error("`appId` is missing.");if(!t||typeof t!="string")throw new Error("`apiKey` is missing.");if(d&&(typeof d!="string"||!b.includes(d)))throw new Error(`\`region\` must be one of the following: ${b.join(", ")}`);return X({appId:o,apiKey:t,region:d,timeouts:{connect:1e3,read:2e3,write:3e4},logger:W(),requester:Q(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:x(),requestsCache:x({serializable:!1}),hostsCache:E({caches:[L({key:`${v}-${o}`}),x()]}),...u})}export{At as analyticsClient,v as apiClientVersion};
function Q(){function o(t){return new Promise(d=>{let u=new XMLHttpRequest;u.open(t.method,t.url,!0),Object.keys(t.headers).forEach(f=>u.setRequestHeader(f,t.headers[f]));let h=(f,e)=>setTimeout(()=>{u.abort(),d({status:0,content:e,isTimedOut:!0})},f),R=h(t.connectTimeout,"Connection timeout"),y;u.onreadystatechange=()=>{u.readyState>u.OPENED&&y===void 0&&(clearTimeout(R),y=h(t.responseTimeout,"Socket timeout"))},u.onerror=()=>{u.status===0&&(clearTimeout(R),clearTimeout(y),d({content:u.responseText||"Network request failed",status:u.status,isTimedOut:!1}))},u.onload=()=>{clearTimeout(R),clearTimeout(y),d({content:u.responseText,status:u.status,isTimedOut:!1})},u.send(t.data)})}return{send:o}}function L(o){let t,d=`algolia-client-js-${o.key}`;function u(){return t===void 0&&(t=o.localStorage||window.localStorage),t}function h(){return JSON.parse(u().getItem(d)||"{}")}function R(f){u().setItem(d,JSON.stringify(f))}function y(){let f=o.timeToLive?o.timeToLive*1e3:null,e=h(),s=Object.fromEntries(Object.entries(e).filter(([,i])=>i.timestamp!==void 0));if(R(s),!f)return;let n=Object.fromEntries(Object.entries(s).filter(([,i])=>{let l=new Date().getTime();return!(i.timestamp+f<l)}));R(n)}return{get(f,e,s={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(y(),h()[JSON.stringify(f)])).then(n=>Promise.all([n?n.value:e(),n!==void 0])).then(([n,i])=>Promise.all([n,i||s.miss(n)])).then(([n])=>n)},set(f,e){return Promise.resolve().then(()=>{let s=h();return s[JSON.stringify(f)]={timestamp:new Date().getTime(),value:e},u().setItem(d,JSON.stringify(s)),e})},delete(f){return Promise.resolve().then(()=>{let e=h();delete e[JSON.stringify(f)],u().setItem(d,JSON.stringify(e))})},clear(){return Promise.resolve().then(()=>{u().removeItem(d)})}}}function V(){return{get(o,t,d={miss:()=>Promise.resolve()}){return t().then(h=>Promise.all([h,d.miss(h)])).then(([h])=>h)},set(o,t){return Promise.resolve(t)},delete(o){return Promise.resolve()},clear(){return Promise.resolve()}}}function E(o){let t=[...o.caches],d=t.shift();return d===void 0?V():{get(u,h,R={miss:()=>Promise.resolve()}){return d.get(u,h,R).catch(()=>E({caches:t}).get(u,h,R))},set(u,h){return d.set(u,h).catch(()=>E({caches:t}).set(u,h))},delete(u){return d.delete(u).catch(()=>E({caches:t}).delete(u))},clear(){return d.clear().catch(()=>E({caches:t}).clear())}}}function x(o={serializable:!0}){let t={};return{get(d,u,h={miss:()=>Promise.resolve()}){let R=JSON.stringify(d);if(R in t)return Promise.resolve(o.serializable?JSON.parse(t[R]):t[R]);let y=u();return y.then(f=>h.miss(f)).then(()=>y)},set(d,u){return t[JSON.stringify(d)]=o.serializable?JSON.stringify(u):u,Promise.resolve(u)},delete(d){return delete t[JSON.stringify(d)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}function Y(o){let t={value:`Algolia for JavaScript (${o})`,add(d){let u=`; ${d.segment}${d.version!==void 0?` (${d.version})`:""}`;return t.value.indexOf(u)===-1&&(t.value=`${t.value}${u}`),t}};return t}function $(o,t,d="WithinHeaders"){let u={"x-algolia-api-key":t,"x-algolia-application-id":o};return{headers(){return d==="WithinHeaders"?u:{}},queryParameters(){return d==="WithinQueryParameters"?u:{}}}}function j({algoliaAgents:o,client:t,version:d}){let u=Y(d).add({segment:t,version:d});return o.forEach(h=>u.add(h)),u}function W(){return{debug(o,t){return Promise.resolve()},info(o,t){return Promise.resolve()},error(o,t){return Promise.resolve()}}}var _=120*1e3;function U(o,t="up"){let d=Date.now();function u(){return t==="up"||Date.now()-d>_}function h(){return t==="timed out"&&Date.now()-d<=_}return{...o,status:t,lastUpdate:d,isUp:u,isTimedOut:h}}var J=class extends Error{name="AlgoliaError";constructor(o,t){super(o),t&&(this.name=t)}};var z=class extends J{stackTrace;constructor(o,t,d){super(o,d),this.stackTrace=t}},Z=class extends z{constructor(o){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",o,"RetryError")}},k=class extends z{status;constructor(o,t,d,u="ApiError"){super(o,d,u),this.status=t}},ee=class extends J{response;constructor(o,t){super(o,"DeserializationError"),this.response=t}},te=class extends k{error;constructor(o,t,d,u){super(o,t,u,"DetailedApiError"),this.error=d}};function re(o,t,d){let u=oe(d),h=`${o.protocol}://${o.url}${o.port?`:${o.port}`:""}/${t.charAt(0)==="/"?t.substring(1):t}`;return u.length&&(h+=`?${u}`),h}function oe(o){return Object.keys(o).filter(t=>o[t]!==void 0).sort().map(t=>`${t}=${encodeURIComponent(Object.prototype.toString.call(o[t])==="[object Array]"?o[t].join(","):o[t]).replace(/\+/g,"%20")}`).join("&")}function se(o,t){if(o.method==="GET"||o.data===void 0&&t.data===void 0)return;let d=Array.isArray(o.data)?o.data:{...o.data,...t.data};return JSON.stringify(d)}function ne(o,t,d){let u={Accept:"application/json",...o,...t,...d},h={};return Object.keys(u).forEach(R=>{let y=u[R];h[R.toLowerCase()]=y}),h}function ie(o){try{return JSON.parse(o.content)}catch(t){throw new ee(t.message,o)}}function ae({content:o,status:t},d){try{let u=JSON.parse(o);return"error"in u?new te(u.message,t,u.error,d):new k(u.message,t,d)}catch{}return new k(o,t,d)}function ue({isTimedOut:o,status:t}){return!o&&~~t===0}function ce({isTimedOut:o,status:t}){return o||ue({isTimedOut:o,status:t})||~~(t/100)!==2&&~~(t/100)!==4}function de({status:o}){return~~(o/100)===2}function le(o){return o.map(t=>M(t))}function M(o){let t=o.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...o,request:{...o.request,headers:{...o.request.headers,...t}}}}function B({hosts:o,hostsCache:t,baseHeaders:d,logger:u,baseQueryParameters:h,algoliaAgent:R,timeouts:y,requester:f,requestsCache:e,responsesCache:s}){async function n(a){let c=await Promise.all(a.map(P=>t.get(P,()=>Promise.resolve(U(P))))),r=c.filter(P=>P.isUp()),p=c.filter(P=>P.isTimedOut()),m=[...r,...p];return{hosts:m.length>0?m:a,getTimeout(P,S){return(p.length===0&&P===0?1:p.length+3+P)*S}}}async function i(a,c,r=!0){let p=[],m=se(a,c),g=ne(d,a.headers,c.headers),P=a.method==="GET"?{...a.data,...c.data}:{},S={...h,...a.queryParameters,...P};if(R.value&&(S["x-algolia-agent"]=R.value),c&&c.queryParameters)for(let T of Object.keys(c.queryParameters))!c.queryParameters[T]||Object.prototype.toString.call(c.queryParameters[T])==="[object Object]"?S[T]=c.queryParameters[T]:S[T]=c.queryParameters[T].toString();let q=0,G=async(T,A)=>{let C=T.pop();if(C===void 0)throw new Z(le(p));let N={...y,...c.timeouts},F={data:m,headers:g,method:a.method,url:re(C,a.path,S),connectTimeout:A(q,N.connect),responseTimeout:A(q,r?N.read:N.write)},I=O=>{let D={request:F,response:O,host:C,triesLeft:T.length};return p.push(D),D},w=await f.send(F);if(ce(w)){let O=I(w);return w.isTimedOut&&q++,u.info("Retryable failure",M(O)),await t.set(C,U(C,w.isTimedOut?"timed out":"down")),G(T,A)}if(de(w))return ie(w);throw I(w),ae(w,p)},K=o.filter(T=>T.accept==="readWrite"||(r?T.accept==="read":T.accept==="write")),H=await n(K);return G([...H.hosts].reverse(),H.getTimeout)}function l(a,c={}){let r=a.useReadTransporter||a.method==="GET";if(!r)return i(a,c,r);let p=()=>i(a,c);if((c.cacheable||a.cacheable)!==!0)return p();let g={request:a,requestOptions:c,transporter:{queryParameters:h,headers:d}};return s.get(g,()=>e.get(g,()=>e.set(g,p()).then(P=>Promise.all([e.delete(g),P]),P=>Promise.all([e.delete(g),Promise.reject(P)])).then(([P,S])=>S)),{miss:P=>s.set(g,P)})}return{hostsCache:t,requester:f,timeouts:y,logger:u,algoliaAgent:R,baseHeaders:d,baseQueryParameters:h,hosts:o,request:l,requestsCache:e,responsesCache:s}}var v="5.40.0",b=["de","us"];function fe(o){return[{url:o?"analytics.{region}.algolia.com".replace("{region}",o):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]}function X({appId:o,apiKey:t,authMode:d,algoliaAgents:u,region:h,...R}){let y=$(o,t,d),f=B({hosts:fe(h),...R,algoliaAgent:j({algoliaAgents:u,client:"Analytics",version:v}),baseHeaders:{"content-type":"text/plain",...y.headers(),...R.baseHeaders},baseQueryParameters:{...y.queryParameters(),...R.baseQueryParameters}});return{transporter:f,appId:o,apiKey:t,clearCache(){return Promise.all([f.requestsCache.clear(),f.responsesCache.clear()]).then(()=>{})},get _ua(){return f.algoliaAgent.value},addAlgoliaAgent(e,s){f.algoliaAgent.add({segment:e,version:s})},setClientApiKey({apiKey:e}){!d||d==="WithinHeaders"?f.baseHeaders["x-algolia-api-key"]=e:f.baseQueryParameters["x-algolia-api-key"]=e},customDelete({path:e,parameters:s},n){if(!e)throw new Error("Parameter `path` is required when calling `customDelete`.");let c={method:"DELETE",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{}};return f.request(c,n)},customGet({path:e,parameters:s},n){if(!e)throw new Error("Parameter `path` is required when calling `customGet`.");let c={method:"GET",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{}};return f.request(c,n)},customPost({path:e,parameters:s,body:n},i){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");let r={method:"POST",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{},data:n||{}};return f.request(r,i)},customPut({path:e,parameters:s,body:n},i){if(!e)throw new Error("Parameter `path` is required when calling `customPut`.");let r={method:"PUT",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{},data:n||{}};return f.request(r,i)},getAddToCartRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getAddToCartRate`.");let a="/2/conversions/addToCartRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getAverageClickPosition({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getAverageClickPosition`.");let a="/2/clicks/averageClickPosition",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getClickPositions({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getClickPositions`.");let a="/2/clicks/positions",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getClickThroughRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getClickThroughRate`.");let a="/2/clicks/clickThroughRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getConversionRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getConversionRate`.");let a="/2/conversions/conversionRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getNoClickRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getNoClickRate`.");let a="/2/searches/noClickRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getNoResultsRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getNoResultsRate`.");let a="/2/searches/noResultRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getPurchaseRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getPurchaseRate`.");let a="/2/conversions/purchaseRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getRevenue({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getRevenue`.");let a="/2/conversions/revenue",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getSearchesCount({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesCount`.");let a="/2/searches/count",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getSearchesNoClicks({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoClicks`.");let r="/2/searches/noClicks",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getSearchesNoResults({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoResults`.");let r="/2/searches/noResults",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getStatus({index:e},s){if(!e)throw new Error("Parameter `index` is required when calling `getStatus`.");let n="/2/status",i={},l={};e!==void 0&&(l.index=e.toString());let a={method:"GET",path:n,queryParameters:l,headers:i};return f.request(a,s)},getTopCountries({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getTopCountries`.");let r="/2/countries",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getTopFilterAttributes({index:e,search:s,startDate:n,endDate:i,limit:l,offset:a,tags:c},r){if(!e)throw new Error("Parameter `index` is required when calling `getTopFilterAttributes`.");let p="/2/filters",m={},g={};e!==void 0&&(g.index=e.toString()),s!==void 0&&(g.search=s.toString()),n!==void 0&&(g.startDate=n.toString()),i!==void 0&&(g.endDate=i.toString()),l!==void 0&&(g.limit=l.toString()),a!==void 0&&(g.offset=a.toString()),c!==void 0&&(g.tags=c.toString());let P={method:"GET",path:p,queryParameters:g,headers:m};return f.request(P,r)},getTopFilterForAttribute({attribute:e,index:s,search:n,startDate:i,endDate:l,limit:a,offset:c,tags:r},p){if(!e)throw new Error("Parameter `attribute` is required when calling `getTopFilterForAttribute`.");if(!s)throw new Error("Parameter `index` is required when calling `getTopFilterForAttribute`.");let m="/2/filters/{attribute}".replace("{attribute}",encodeURIComponent(e)),g={},P={};s!==void 0&&(P.index=s.toString()),n!==void 0&&(P.search=n.toString()),i!==void 0&&(P.startDate=i.toString()),l!==void 0&&(P.endDate=l.toString()),a!==void 0&&(P.limit=a.toString()),c!==void 0&&(P.offset=c.toString()),r!==void 0&&(P.tags=r.toString());let S={method:"GET",path:m,queryParameters:P,headers:g};return f.request(S,p)},getTopFiltersNoResults({index:e,search:s,startDate:n,endDate:i,limit:l,offset:a,tags:c},r){if(!e)throw new Error("Parameter `index` is required when calling `getTopFiltersNoResults`.");let p="/2/filters/noResults",m={},g={};e!==void 0&&(g.index=e.toString()),s!==void 0&&(g.search=s.toString()),n!==void 0&&(g.startDate=n.toString()),i!==void 0&&(g.endDate=i.toString()),l!==void 0&&(g.limit=l.toString()),a!==void 0&&(g.offset=a.toString()),c!==void 0&&(g.tags=c.toString());let P={method:"GET",path:p,queryParameters:g,headers:m};return f.request(P,r)},getTopHits({index:e,search:s,clickAnalytics:n,revenueAnalytics:i,startDate:l,endDate:a,limit:c,offset:r,tags:p},m){if(!e)throw new Error("Parameter `index` is required when calling `getTopHits`.");let g="/2/hits",P={},S={};e!==void 0&&(S.index=e.toString()),s!==void 0&&(S.search=s.toString()),n!==void 0&&(S.clickAnalytics=n.toString()),i!==void 0&&(S.revenueAnalytics=i.toString()),l!==void 0&&(S.startDate=l.toString()),a!==void 0&&(S.endDate=a.toString()),c!==void 0&&(S.limit=c.toString()),r!==void 0&&(S.offset=r.toString()),p!==void 0&&(S.tags=p.toString());let q={method:"GET",path:g,queryParameters:S,headers:P};return f.request(q,m)},getTopSearches({index:e,clickAnalytics:s,revenueAnalytics:n,startDate:i,endDate:l,orderBy:a,direction:c,limit:r,offset:p,tags:m},g){if(!e)throw new Error("Parameter `index` is required when calling `getTopSearches`.");let P="/2/searches",S={},q={};e!==void 0&&(q.index=e.toString()),s!==void 0&&(q.clickAnalytics=s.toString()),n!==void 0&&(q.revenueAnalytics=n.toString()),i!==void 0&&(q.startDate=i.toString()),l!==void 0&&(q.endDate=l.toString()),a!==void 0&&(q.orderBy=a.toString()),c!==void 0&&(q.direction=c.toString()),r!==void 0&&(q.limit=r.toString()),p!==void 0&&(q.offset=p.toString()),m!==void 0&&(q.tags=m.toString());let G={method:"GET",path:P,queryParameters:q,headers:S};return f.request(G,g)},getUsersCount({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getUsersCount`.");let a="/2/users/count",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)}}}function At(o,t,d,u){if(!o||typeof o!="string")throw new Error("`appId` is missing.");if(!t||typeof t!="string")throw new Error("`apiKey` is missing.");if(d&&(typeof d!="string"||!b.includes(d)))throw new Error(`\`region\` must be one of the following: ${b.join(", ")}`);return X({appId:o,apiKey:t,region:d,timeouts:{connect:1e3,read:2e3,write:3e4},logger:W(),requester:Q(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:x(),requestsCache:x({serializable:!1}),hostsCache:E({caches:[L({key:`${v}-${o}`}),x()]}),...u})}export{At as analyticsClient,v as apiClientVersion};
//# sourceMappingURL=browser.min.js.map

@@ -7,3 +7,3 @@ (function (global, factory) {

function Q(){function o(t){return new Promise(d=>{let u=new XMLHttpRequest;u.open(t.method,t.url,true),Object.keys(t.headers).forEach(f=>u.setRequestHeader(f,t.headers[f]));let h=(f,e)=>setTimeout(()=>{u.abort(),d({status:0,content:e,isTimedOut:true});},f),R=h(t.connectTimeout,"Connection timeout"),y;u.onreadystatechange=()=>{u.readyState>u.OPENED&&y===void 0&&(clearTimeout(R),y=h(t.responseTimeout,"Socket timeout"));},u.onerror=()=>{u.status===0&&(clearTimeout(R),clearTimeout(y),d({content:u.responseText||"Network request failed",status:u.status,isTimedOut:false}));},u.onload=()=>{clearTimeout(R),clearTimeout(y),d({content:u.responseText,status:u.status,isTimedOut:false});},u.send(t.data);})}return {send:o}}function L(o){let t,d=`algolia-client-js-${o.key}`;function u(){return t===void 0&&(t=o.localStorage||window.localStorage),t}function h(){return JSON.parse(u().getItem(d)||"{}")}function R(f){u().setItem(d,JSON.stringify(f));}function y(){let f=o.timeToLive?o.timeToLive*1e3:null,e=h(),s=Object.fromEntries(Object.entries(e).filter(([,i])=>i.timestamp!==void 0));if(R(s),!f)return;let n=Object.fromEntries(Object.entries(s).filter(([,i])=>{let l=new Date().getTime();return !(i.timestamp+f<l)}));R(n);}return {get(f,e,s={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(y(),h()[JSON.stringify(f)])).then(n=>Promise.all([n?n.value:e(),n!==void 0])).then(([n,i])=>Promise.all([n,i||s.miss(n)])).then(([n])=>n)},set(f,e){return Promise.resolve().then(()=>{let s=h();return s[JSON.stringify(f)]={timestamp:new Date().getTime(),value:e},u().setItem(d,JSON.stringify(s)),e})},delete(f){return Promise.resolve().then(()=>{let e=h();delete e[JSON.stringify(f)],u().setItem(d,JSON.stringify(e));})},clear(){return Promise.resolve().then(()=>{u().removeItem(d);})}}}function V(){return {get(o,t,d={miss:()=>Promise.resolve()}){return t().then(h=>Promise.all([h,d.miss(h)])).then(([h])=>h)},set(o,t){return Promise.resolve(t)},delete(o){return Promise.resolve()},clear(){return Promise.resolve()}}}function E(o){let t=[...o.caches],d=t.shift();return d===void 0?V():{get(u,h,R={miss:()=>Promise.resolve()}){return d.get(u,h,R).catch(()=>E({caches:t}).get(u,h,R))},set(u,h){return d.set(u,h).catch(()=>E({caches:t}).set(u,h))},delete(u){return d.delete(u).catch(()=>E({caches:t}).delete(u))},clear(){return d.clear().catch(()=>E({caches:t}).clear())}}}function x(o={serializable:true}){let t={};return {get(d,u,h={miss:()=>Promise.resolve()}){let R=JSON.stringify(d);if(R in t)return Promise.resolve(o.serializable?JSON.parse(t[R]):t[R]);let y=u();return y.then(f=>h.miss(f)).then(()=>y)},set(d,u){return t[JSON.stringify(d)]=o.serializable?JSON.stringify(u):u,Promise.resolve(u)},delete(d){return delete t[JSON.stringify(d)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}function Y(o){let t={value:`Algolia for JavaScript (${o})`,add(d){let u=`; ${d.segment}${d.version!==void 0?` (${d.version})`:""}`;return t.value.indexOf(u)===-1&&(t.value=`${t.value}${u}`),t}};return t}function $(o,t,d="WithinHeaders"){let u={"x-algolia-api-key":t,"x-algolia-application-id":o};return {headers(){return d==="WithinHeaders"?u:{}},queryParameters(){return d==="WithinQueryParameters"?u:{}}}}function j({algoliaAgents:o,client:t,version:d}){let u=Y(d).add({segment:t,version:d});return o.forEach(h=>u.add(h)),u}function W(){return {debug(o,t){return Promise.resolve()},info(o,t){return Promise.resolve()},error(o,t){return Promise.resolve()}}}var _=120*1e3;function U(o,t="up"){let d=Date.now();function u(){return t==="up"||Date.now()-d>_}function h(){return t==="timed out"&&Date.now()-d<=_}return {...o,status:t,lastUpdate:d,isUp:u,isTimedOut:h}}var J=class extends Error{name="AlgoliaError";constructor(o,t){super(o),t&&(this.name=t);}};var z=class extends J{stackTrace;constructor(o,t,d){super(o,d),this.stackTrace=t;}},Z=class extends z{constructor(o){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",o,"RetryError");}},k=class extends z{status;constructor(o,t,d,u="ApiError"){super(o,d,u),this.status=t;}},ee=class extends J{response;constructor(o,t){super(o,"DeserializationError"),this.response=t;}},te=class extends k{error;constructor(o,t,d,u){super(o,t,u,"DetailedApiError"),this.error=d;}};function re(o,t,d){let u=oe(d),h=`${o.protocol}://${o.url}${o.port?`:${o.port}`:""}/${t.charAt(0)==="/"?t.substring(1):t}`;return u.length&&(h+=`?${u}`),h}function oe(o){return Object.keys(o).filter(t=>o[t]!==void 0).sort().map(t=>`${t}=${encodeURIComponent(Object.prototype.toString.call(o[t])==="[object Array]"?o[t].join(","):o[t]).replace(/\+/g,"%20")}`).join("&")}function se(o,t){if(o.method==="GET"||o.data===void 0&&t.data===void 0)return;let d=Array.isArray(o.data)?o.data:{...o.data,...t.data};return JSON.stringify(d)}function ne(o,t,d){let u={Accept:"application/json",...o,...t,...d},h={};return Object.keys(u).forEach(R=>{let y=u[R];h[R.toLowerCase()]=y;}),h}function ie(o){try{return JSON.parse(o.content)}catch(t){throw new ee(t.message,o)}}function ae({content:o,status:t},d){try{let u=JSON.parse(o);return "error"in u?new te(u.message,t,u.error,d):new k(u.message,t,d)}catch{}return new k(o,t,d)}function ue({isTimedOut:o,status:t}){return !o&&~~t===0}function ce({isTimedOut:o,status:t}){return o||ue({isTimedOut:o,status:t})||~~(t/100)!==2&&~~(t/100)!==4}function de({status:o}){return ~~(o/100)===2}function le(o){return o.map(t=>M(t))}function M(o){let t=o.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return {...o,request:{...o.request,headers:{...o.request.headers,...t}}}}function B({hosts:o,hostsCache:t,baseHeaders:d,logger:u,baseQueryParameters:h,algoliaAgent:R,timeouts:y,requester:f,requestsCache:e,responsesCache:s}){async function n(a){let c=await Promise.all(a.map(P=>t.get(P,()=>Promise.resolve(U(P))))),r=c.filter(P=>P.isUp()),p=c.filter(P=>P.isTimedOut()),m=[...r,...p];return {hosts:m.length>0?m:a,getTimeout(P,S){return (p.length===0&&P===0?1:p.length+3+P)*S}}}async function i(a,c,r=true){let p=[],m=se(a,c),g=ne(d,a.headers,c.headers),P=a.method==="GET"?{...a.data,...c.data}:{},S={...h,...a.queryParameters,...P};if(R.value&&(S["x-algolia-agent"]=R.value),c&&c.queryParameters)for(let T of Object.keys(c.queryParameters))!c.queryParameters[T]||Object.prototype.toString.call(c.queryParameters[T])==="[object Object]"?S[T]=c.queryParameters[T]:S[T]=c.queryParameters[T].toString();let q=0,G=async(T,A)=>{let C=T.pop();if(C===void 0)throw new Z(le(p));let N={...y,...c.timeouts},F={data:m,headers:g,method:a.method,url:re(C,a.path,S),connectTimeout:A(q,N.connect),responseTimeout:A(q,r?N.read:N.write)},I=O=>{let D={request:F,response:O,host:C,triesLeft:T.length};return p.push(D),D},w=await f.send(F);if(ce(w)){let O=I(w);return w.isTimedOut&&q++,u.info("Retryable failure",M(O)),await t.set(C,U(C,w.isTimedOut?"timed out":"down")),G(T,A)}if(de(w))return ie(w);throw I(w),ae(w,p)},K=o.filter(T=>T.accept==="readWrite"||(r?T.accept==="read":T.accept==="write")),H=await n(K);return G([...H.hosts].reverse(),H.getTimeout)}function l(a,c={}){let r=a.useReadTransporter||a.method==="GET";if(!r)return i(a,c,r);let p=()=>i(a,c);if((c.cacheable||a.cacheable)!==true)return p();let g={request:a,requestOptions:c,transporter:{queryParameters:h,headers:d}};return s.get(g,()=>e.get(g,()=>e.set(g,p()).then(P=>Promise.all([e.delete(g),P]),P=>Promise.all([e.delete(g),Promise.reject(P)])).then(([P,S])=>S)),{miss:P=>s.set(g,P)})}return {hostsCache:t,requester:f,timeouts:y,logger:u,algoliaAgent:R,baseHeaders:d,baseQueryParameters:h,hosts:o,request:l,requestsCache:e,responsesCache:s}}var v="5.39.0",b=["de","us"];function fe(o){return [{url:o?"analytics.{region}.algolia.com".replace("{region}",o):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]}function X({appId:o,apiKey:t,authMode:d,algoliaAgents:u,region:h,...R}){let y=$(o,t,d),f=B({hosts:fe(h),...R,algoliaAgent:j({algoliaAgents:u,client:"Analytics",version:v}),baseHeaders:{"content-type":"text/plain",...y.headers(),...R.baseHeaders},baseQueryParameters:{...y.queryParameters(),...R.baseQueryParameters}});return {transporter:f,appId:o,apiKey:t,clearCache(){return Promise.all([f.requestsCache.clear(),f.responsesCache.clear()]).then(()=>{})},get _ua(){return f.algoliaAgent.value},addAlgoliaAgent(e,s){f.algoliaAgent.add({segment:e,version:s});},setClientApiKey({apiKey:e}){!d||d==="WithinHeaders"?f.baseHeaders["x-algolia-api-key"]=e:f.baseQueryParameters["x-algolia-api-key"]=e;},customDelete({path:e,parameters:s},n){if(!e)throw new Error("Parameter `path` is required when calling `customDelete`.");let c={method:"DELETE",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{}};return f.request(c,n)},customGet({path:e,parameters:s},n){if(!e)throw new Error("Parameter `path` is required when calling `customGet`.");let c={method:"GET",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{}};return f.request(c,n)},customPost({path:e,parameters:s,body:n},i){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");let r={method:"POST",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{},data:n||{}};return f.request(r,i)},customPut({path:e,parameters:s,body:n},i){if(!e)throw new Error("Parameter `path` is required when calling `customPut`.");let r={method:"PUT",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{},data:n||{}};return f.request(r,i)},getAddToCartRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getAddToCartRate`.");let a="/2/conversions/addToCartRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getAverageClickPosition({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getAverageClickPosition`.");let a="/2/clicks/averageClickPosition",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getClickPositions({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getClickPositions`.");let a="/2/clicks/positions",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getClickThroughRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getClickThroughRate`.");let a="/2/clicks/clickThroughRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getConversionRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getConversionRate`.");let a="/2/conversions/conversionRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getNoClickRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getNoClickRate`.");let a="/2/searches/noClickRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getNoResultsRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getNoResultsRate`.");let a="/2/searches/noResultRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getPurchaseRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getPurchaseRate`.");let a="/2/conversions/purchaseRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getRevenue({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getRevenue`.");let a="/2/conversions/revenue",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getSearchesCount({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesCount`.");let a="/2/searches/count",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getSearchesNoClicks({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoClicks`.");let r="/2/searches/noClicks",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getSearchesNoResults({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoResults`.");let r="/2/searches/noResults",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getStatus({index:e},s){if(!e)throw new Error("Parameter `index` is required when calling `getStatus`.");let n="/2/status",i={},l={};e!==void 0&&(l.index=e.toString());let a={method:"GET",path:n,queryParameters:l,headers:i};return f.request(a,s)},getTopCountries({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getTopCountries`.");let r="/2/countries",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getTopFilterAttributes({index:e,search:s,startDate:n,endDate:i,limit:l,offset:a,tags:c},r){if(!e)throw new Error("Parameter `index` is required when calling `getTopFilterAttributes`.");let p="/2/filters",m={},g={};e!==void 0&&(g.index=e.toString()),s!==void 0&&(g.search=s.toString()),n!==void 0&&(g.startDate=n.toString()),i!==void 0&&(g.endDate=i.toString()),l!==void 0&&(g.limit=l.toString()),a!==void 0&&(g.offset=a.toString()),c!==void 0&&(g.tags=c.toString());let P={method:"GET",path:p,queryParameters:g,headers:m};return f.request(P,r)},getTopFilterForAttribute({attribute:e,index:s,search:n,startDate:i,endDate:l,limit:a,offset:c,tags:r},p){if(!e)throw new Error("Parameter `attribute` is required when calling `getTopFilterForAttribute`.");if(!s)throw new Error("Parameter `index` is required when calling `getTopFilterForAttribute`.");let m="/2/filters/{attribute}".replace("{attribute}",encodeURIComponent(e)),g={},P={};s!==void 0&&(P.index=s.toString()),n!==void 0&&(P.search=n.toString()),i!==void 0&&(P.startDate=i.toString()),l!==void 0&&(P.endDate=l.toString()),a!==void 0&&(P.limit=a.toString()),c!==void 0&&(P.offset=c.toString()),r!==void 0&&(P.tags=r.toString());let S={method:"GET",path:m,queryParameters:P,headers:g};return f.request(S,p)},getTopFiltersNoResults({index:e,search:s,startDate:n,endDate:i,limit:l,offset:a,tags:c},r){if(!e)throw new Error("Parameter `index` is required when calling `getTopFiltersNoResults`.");let p="/2/filters/noResults",m={},g={};e!==void 0&&(g.index=e.toString()),s!==void 0&&(g.search=s.toString()),n!==void 0&&(g.startDate=n.toString()),i!==void 0&&(g.endDate=i.toString()),l!==void 0&&(g.limit=l.toString()),a!==void 0&&(g.offset=a.toString()),c!==void 0&&(g.tags=c.toString());let P={method:"GET",path:p,queryParameters:g,headers:m};return f.request(P,r)},getTopHits({index:e,search:s,clickAnalytics:n,revenueAnalytics:i,startDate:l,endDate:a,limit:c,offset:r,tags:p},m){if(!e)throw new Error("Parameter `index` is required when calling `getTopHits`.");let g="/2/hits",P={},S={};e!==void 0&&(S.index=e.toString()),s!==void 0&&(S.search=s.toString()),n!==void 0&&(S.clickAnalytics=n.toString()),i!==void 0&&(S.revenueAnalytics=i.toString()),l!==void 0&&(S.startDate=l.toString()),a!==void 0&&(S.endDate=a.toString()),c!==void 0&&(S.limit=c.toString()),r!==void 0&&(S.offset=r.toString()),p!==void 0&&(S.tags=p.toString());let q={method:"GET",path:g,queryParameters:S,headers:P};return f.request(q,m)},getTopSearches({index:e,clickAnalytics:s,revenueAnalytics:n,startDate:i,endDate:l,orderBy:a,direction:c,limit:r,offset:p,tags:m},g){if(!e)throw new Error("Parameter `index` is required when calling `getTopSearches`.");let P="/2/searches",S={},q={};e!==void 0&&(q.index=e.toString()),s!==void 0&&(q.clickAnalytics=s.toString()),n!==void 0&&(q.revenueAnalytics=n.toString()),i!==void 0&&(q.startDate=i.toString()),l!==void 0&&(q.endDate=l.toString()),a!==void 0&&(q.orderBy=a.toString()),c!==void 0&&(q.direction=c.toString()),r!==void 0&&(q.limit=r.toString()),p!==void 0&&(q.offset=p.toString()),m!==void 0&&(q.tags=m.toString());let G={method:"GET",path:P,queryParameters:q,headers:S};return f.request(G,g)},getUsersCount({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getUsersCount`.");let a="/2/users/count",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)}}}function At(o,t,d,u){if(!o||typeof o!="string")throw new Error("`appId` is missing.");if(!t||typeof t!="string")throw new Error("`apiKey` is missing.");if(d&&(typeof d!="string"||!b.includes(d)))throw new Error(`\`region\` must be one of the following: ${b.join(", ")}`);return X({appId:o,apiKey:t,region:d,timeouts:{connect:1e3,read:2e3,write:3e4},logger:W(),requester:Q(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:x(),requestsCache:x({serializable:false}),hostsCache:E({caches:[L({key:`${v}-${o}`}),x()]}),...u})}
function Q(){function o(t){return new Promise(d=>{let u=new XMLHttpRequest;u.open(t.method,t.url,true),Object.keys(t.headers).forEach(f=>u.setRequestHeader(f,t.headers[f]));let h=(f,e)=>setTimeout(()=>{u.abort(),d({status:0,content:e,isTimedOut:true});},f),R=h(t.connectTimeout,"Connection timeout"),y;u.onreadystatechange=()=>{u.readyState>u.OPENED&&y===void 0&&(clearTimeout(R),y=h(t.responseTimeout,"Socket timeout"));},u.onerror=()=>{u.status===0&&(clearTimeout(R),clearTimeout(y),d({content:u.responseText||"Network request failed",status:u.status,isTimedOut:false}));},u.onload=()=>{clearTimeout(R),clearTimeout(y),d({content:u.responseText,status:u.status,isTimedOut:false});},u.send(t.data);})}return {send:o}}function L(o){let t,d=`algolia-client-js-${o.key}`;function u(){return t===void 0&&(t=o.localStorage||window.localStorage),t}function h(){return JSON.parse(u().getItem(d)||"{}")}function R(f){u().setItem(d,JSON.stringify(f));}function y(){let f=o.timeToLive?o.timeToLive*1e3:null,e=h(),s=Object.fromEntries(Object.entries(e).filter(([,i])=>i.timestamp!==void 0));if(R(s),!f)return;let n=Object.fromEntries(Object.entries(s).filter(([,i])=>{let l=new Date().getTime();return !(i.timestamp+f<l)}));R(n);}return {get(f,e,s={miss:()=>Promise.resolve()}){return Promise.resolve().then(()=>(y(),h()[JSON.stringify(f)])).then(n=>Promise.all([n?n.value:e(),n!==void 0])).then(([n,i])=>Promise.all([n,i||s.miss(n)])).then(([n])=>n)},set(f,e){return Promise.resolve().then(()=>{let s=h();return s[JSON.stringify(f)]={timestamp:new Date().getTime(),value:e},u().setItem(d,JSON.stringify(s)),e})},delete(f){return Promise.resolve().then(()=>{let e=h();delete e[JSON.stringify(f)],u().setItem(d,JSON.stringify(e));})},clear(){return Promise.resolve().then(()=>{u().removeItem(d);})}}}function V(){return {get(o,t,d={miss:()=>Promise.resolve()}){return t().then(h=>Promise.all([h,d.miss(h)])).then(([h])=>h)},set(o,t){return Promise.resolve(t)},delete(o){return Promise.resolve()},clear(){return Promise.resolve()}}}function E(o){let t=[...o.caches],d=t.shift();return d===void 0?V():{get(u,h,R={miss:()=>Promise.resolve()}){return d.get(u,h,R).catch(()=>E({caches:t}).get(u,h,R))},set(u,h){return d.set(u,h).catch(()=>E({caches:t}).set(u,h))},delete(u){return d.delete(u).catch(()=>E({caches:t}).delete(u))},clear(){return d.clear().catch(()=>E({caches:t}).clear())}}}function x(o={serializable:true}){let t={};return {get(d,u,h={miss:()=>Promise.resolve()}){let R=JSON.stringify(d);if(R in t)return Promise.resolve(o.serializable?JSON.parse(t[R]):t[R]);let y=u();return y.then(f=>h.miss(f)).then(()=>y)},set(d,u){return t[JSON.stringify(d)]=o.serializable?JSON.stringify(u):u,Promise.resolve(u)},delete(d){return delete t[JSON.stringify(d)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}function Y(o){let t={value:`Algolia for JavaScript (${o})`,add(d){let u=`; ${d.segment}${d.version!==void 0?` (${d.version})`:""}`;return t.value.indexOf(u)===-1&&(t.value=`${t.value}${u}`),t}};return t}function $(o,t,d="WithinHeaders"){let u={"x-algolia-api-key":t,"x-algolia-application-id":o};return {headers(){return d==="WithinHeaders"?u:{}},queryParameters(){return d==="WithinQueryParameters"?u:{}}}}function j({algoliaAgents:o,client:t,version:d}){let u=Y(d).add({segment:t,version:d});return o.forEach(h=>u.add(h)),u}function W(){return {debug(o,t){return Promise.resolve()},info(o,t){return Promise.resolve()},error(o,t){return Promise.resolve()}}}var _=120*1e3;function U(o,t="up"){let d=Date.now();function u(){return t==="up"||Date.now()-d>_}function h(){return t==="timed out"&&Date.now()-d<=_}return {...o,status:t,lastUpdate:d,isUp:u,isTimedOut:h}}var J=class extends Error{name="AlgoliaError";constructor(o,t){super(o),t&&(this.name=t);}};var z=class extends J{stackTrace;constructor(o,t,d){super(o,d),this.stackTrace=t;}},Z=class extends z{constructor(o){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",o,"RetryError");}},k=class extends z{status;constructor(o,t,d,u="ApiError"){super(o,d,u),this.status=t;}},ee=class extends J{response;constructor(o,t){super(o,"DeserializationError"),this.response=t;}},te=class extends k{error;constructor(o,t,d,u){super(o,t,u,"DetailedApiError"),this.error=d;}};function re(o,t,d){let u=oe(d),h=`${o.protocol}://${o.url}${o.port?`:${o.port}`:""}/${t.charAt(0)==="/"?t.substring(1):t}`;return u.length&&(h+=`?${u}`),h}function oe(o){return Object.keys(o).filter(t=>o[t]!==void 0).sort().map(t=>`${t}=${encodeURIComponent(Object.prototype.toString.call(o[t])==="[object Array]"?o[t].join(","):o[t]).replace(/\+/g,"%20")}`).join("&")}function se(o,t){if(o.method==="GET"||o.data===void 0&&t.data===void 0)return;let d=Array.isArray(o.data)?o.data:{...o.data,...t.data};return JSON.stringify(d)}function ne(o,t,d){let u={Accept:"application/json",...o,...t,...d},h={};return Object.keys(u).forEach(R=>{let y=u[R];h[R.toLowerCase()]=y;}),h}function ie(o){try{return JSON.parse(o.content)}catch(t){throw new ee(t.message,o)}}function ae({content:o,status:t},d){try{let u=JSON.parse(o);return "error"in u?new te(u.message,t,u.error,d):new k(u.message,t,d)}catch{}return new k(o,t,d)}function ue({isTimedOut:o,status:t}){return !o&&~~t===0}function ce({isTimedOut:o,status:t}){return o||ue({isTimedOut:o,status:t})||~~(t/100)!==2&&~~(t/100)!==4}function de({status:o}){return ~~(o/100)===2}function le(o){return o.map(t=>M(t))}function M(o){let t=o.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return {...o,request:{...o.request,headers:{...o.request.headers,...t}}}}function B({hosts:o,hostsCache:t,baseHeaders:d,logger:u,baseQueryParameters:h,algoliaAgent:R,timeouts:y,requester:f,requestsCache:e,responsesCache:s}){async function n(a){let c=await Promise.all(a.map(P=>t.get(P,()=>Promise.resolve(U(P))))),r=c.filter(P=>P.isUp()),p=c.filter(P=>P.isTimedOut()),m=[...r,...p];return {hosts:m.length>0?m:a,getTimeout(P,S){return (p.length===0&&P===0?1:p.length+3+P)*S}}}async function i(a,c,r=true){let p=[],m=se(a,c),g=ne(d,a.headers,c.headers),P=a.method==="GET"?{...a.data,...c.data}:{},S={...h,...a.queryParameters,...P};if(R.value&&(S["x-algolia-agent"]=R.value),c&&c.queryParameters)for(let T of Object.keys(c.queryParameters))!c.queryParameters[T]||Object.prototype.toString.call(c.queryParameters[T])==="[object Object]"?S[T]=c.queryParameters[T]:S[T]=c.queryParameters[T].toString();let q=0,G=async(T,A)=>{let C=T.pop();if(C===void 0)throw new Z(le(p));let N={...y,...c.timeouts},F={data:m,headers:g,method:a.method,url:re(C,a.path,S),connectTimeout:A(q,N.connect),responseTimeout:A(q,r?N.read:N.write)},I=O=>{let D={request:F,response:O,host:C,triesLeft:T.length};return p.push(D),D},w=await f.send(F);if(ce(w)){let O=I(w);return w.isTimedOut&&q++,u.info("Retryable failure",M(O)),await t.set(C,U(C,w.isTimedOut?"timed out":"down")),G(T,A)}if(de(w))return ie(w);throw I(w),ae(w,p)},K=o.filter(T=>T.accept==="readWrite"||(r?T.accept==="read":T.accept==="write")),H=await n(K);return G([...H.hosts].reverse(),H.getTimeout)}function l(a,c={}){let r=a.useReadTransporter||a.method==="GET";if(!r)return i(a,c,r);let p=()=>i(a,c);if((c.cacheable||a.cacheable)!==true)return p();let g={request:a,requestOptions:c,transporter:{queryParameters:h,headers:d}};return s.get(g,()=>e.get(g,()=>e.set(g,p()).then(P=>Promise.all([e.delete(g),P]),P=>Promise.all([e.delete(g),Promise.reject(P)])).then(([P,S])=>S)),{miss:P=>s.set(g,P)})}return {hostsCache:t,requester:f,timeouts:y,logger:u,algoliaAgent:R,baseHeaders:d,baseQueryParameters:h,hosts:o,request:l,requestsCache:e,responsesCache:s}}var v="5.40.0",b=["de","us"];function fe(o){return [{url:o?"analytics.{region}.algolia.com".replace("{region}",o):"analytics.algolia.com",accept:"readWrite",protocol:"https"}]}function X({appId:o,apiKey:t,authMode:d,algoliaAgents:u,region:h,...R}){let y=$(o,t,d),f=B({hosts:fe(h),...R,algoliaAgent:j({algoliaAgents:u,client:"Analytics",version:v}),baseHeaders:{"content-type":"text/plain",...y.headers(),...R.baseHeaders},baseQueryParameters:{...y.queryParameters(),...R.baseQueryParameters}});return {transporter:f,appId:o,apiKey:t,clearCache(){return Promise.all([f.requestsCache.clear(),f.responsesCache.clear()]).then(()=>{})},get _ua(){return f.algoliaAgent.value},addAlgoliaAgent(e,s){f.algoliaAgent.add({segment:e,version:s});},setClientApiKey({apiKey:e}){!d||d==="WithinHeaders"?f.baseHeaders["x-algolia-api-key"]=e:f.baseQueryParameters["x-algolia-api-key"]=e;},customDelete({path:e,parameters:s},n){if(!e)throw new Error("Parameter `path` is required when calling `customDelete`.");let c={method:"DELETE",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{}};return f.request(c,n)},customGet({path:e,parameters:s},n){if(!e)throw new Error("Parameter `path` is required when calling `customGet`.");let c={method:"GET",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{}};return f.request(c,n)},customPost({path:e,parameters:s,body:n},i){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");let r={method:"POST",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{},data:n||{}};return f.request(r,i)},customPut({path:e,parameters:s,body:n},i){if(!e)throw new Error("Parameter `path` is required when calling `customPut`.");let r={method:"PUT",path:"/{path}".replace("{path}",e),queryParameters:s||{},headers:{},data:n||{}};return f.request(r,i)},getAddToCartRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getAddToCartRate`.");let a="/2/conversions/addToCartRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getAverageClickPosition({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getAverageClickPosition`.");let a="/2/clicks/averageClickPosition",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getClickPositions({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getClickPositions`.");let a="/2/clicks/positions",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getClickThroughRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getClickThroughRate`.");let a="/2/clicks/clickThroughRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getConversionRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getConversionRate`.");let a="/2/conversions/conversionRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getNoClickRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getNoClickRate`.");let a="/2/searches/noClickRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getNoResultsRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getNoResultsRate`.");let a="/2/searches/noResultRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getPurchaseRate({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getPurchaseRate`.");let a="/2/conversions/purchaseRate",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getRevenue({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getRevenue`.");let a="/2/conversions/revenue",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getSearchesCount({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesCount`.");let a="/2/searches/count",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)},getSearchesNoClicks({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoClicks`.");let r="/2/searches/noClicks",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getSearchesNoResults({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getSearchesNoResults`.");let r="/2/searches/noResults",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getStatus({index:e},s){if(!e)throw new Error("Parameter `index` is required when calling `getStatus`.");let n="/2/status",i={},l={};e!==void 0&&(l.index=e.toString());let a={method:"GET",path:n,queryParameters:l,headers:i};return f.request(a,s)},getTopCountries({index:e,startDate:s,endDate:n,limit:i,offset:l,tags:a},c){if(!e)throw new Error("Parameter `index` is required when calling `getTopCountries`.");let r="/2/countries",p={},m={};e!==void 0&&(m.index=e.toString()),s!==void 0&&(m.startDate=s.toString()),n!==void 0&&(m.endDate=n.toString()),i!==void 0&&(m.limit=i.toString()),l!==void 0&&(m.offset=l.toString()),a!==void 0&&(m.tags=a.toString());let g={method:"GET",path:r,queryParameters:m,headers:p};return f.request(g,c)},getTopFilterAttributes({index:e,search:s,startDate:n,endDate:i,limit:l,offset:a,tags:c},r){if(!e)throw new Error("Parameter `index` is required when calling `getTopFilterAttributes`.");let p="/2/filters",m={},g={};e!==void 0&&(g.index=e.toString()),s!==void 0&&(g.search=s.toString()),n!==void 0&&(g.startDate=n.toString()),i!==void 0&&(g.endDate=i.toString()),l!==void 0&&(g.limit=l.toString()),a!==void 0&&(g.offset=a.toString()),c!==void 0&&(g.tags=c.toString());let P={method:"GET",path:p,queryParameters:g,headers:m};return f.request(P,r)},getTopFilterForAttribute({attribute:e,index:s,search:n,startDate:i,endDate:l,limit:a,offset:c,tags:r},p){if(!e)throw new Error("Parameter `attribute` is required when calling `getTopFilterForAttribute`.");if(!s)throw new Error("Parameter `index` is required when calling `getTopFilterForAttribute`.");let m="/2/filters/{attribute}".replace("{attribute}",encodeURIComponent(e)),g={},P={};s!==void 0&&(P.index=s.toString()),n!==void 0&&(P.search=n.toString()),i!==void 0&&(P.startDate=i.toString()),l!==void 0&&(P.endDate=l.toString()),a!==void 0&&(P.limit=a.toString()),c!==void 0&&(P.offset=c.toString()),r!==void 0&&(P.tags=r.toString());let S={method:"GET",path:m,queryParameters:P,headers:g};return f.request(S,p)},getTopFiltersNoResults({index:e,search:s,startDate:n,endDate:i,limit:l,offset:a,tags:c},r){if(!e)throw new Error("Parameter `index` is required when calling `getTopFiltersNoResults`.");let p="/2/filters/noResults",m={},g={};e!==void 0&&(g.index=e.toString()),s!==void 0&&(g.search=s.toString()),n!==void 0&&(g.startDate=n.toString()),i!==void 0&&(g.endDate=i.toString()),l!==void 0&&(g.limit=l.toString()),a!==void 0&&(g.offset=a.toString()),c!==void 0&&(g.tags=c.toString());let P={method:"GET",path:p,queryParameters:g,headers:m};return f.request(P,r)},getTopHits({index:e,search:s,clickAnalytics:n,revenueAnalytics:i,startDate:l,endDate:a,limit:c,offset:r,tags:p},m){if(!e)throw new Error("Parameter `index` is required when calling `getTopHits`.");let g="/2/hits",P={},S={};e!==void 0&&(S.index=e.toString()),s!==void 0&&(S.search=s.toString()),n!==void 0&&(S.clickAnalytics=n.toString()),i!==void 0&&(S.revenueAnalytics=i.toString()),l!==void 0&&(S.startDate=l.toString()),a!==void 0&&(S.endDate=a.toString()),c!==void 0&&(S.limit=c.toString()),r!==void 0&&(S.offset=r.toString()),p!==void 0&&(S.tags=p.toString());let q={method:"GET",path:g,queryParameters:S,headers:P};return f.request(q,m)},getTopSearches({index:e,clickAnalytics:s,revenueAnalytics:n,startDate:i,endDate:l,orderBy:a,direction:c,limit:r,offset:p,tags:m},g){if(!e)throw new Error("Parameter `index` is required when calling `getTopSearches`.");let P="/2/searches",S={},q={};e!==void 0&&(q.index=e.toString()),s!==void 0&&(q.clickAnalytics=s.toString()),n!==void 0&&(q.revenueAnalytics=n.toString()),i!==void 0&&(q.startDate=i.toString()),l!==void 0&&(q.endDate=l.toString()),a!==void 0&&(q.orderBy=a.toString()),c!==void 0&&(q.direction=c.toString()),r!==void 0&&(q.limit=r.toString()),p!==void 0&&(q.offset=p.toString()),m!==void 0&&(q.tags=m.toString());let G={method:"GET",path:P,queryParameters:q,headers:S};return f.request(G,g)},getUsersCount({index:e,startDate:s,endDate:n,tags:i},l){if(!e)throw new Error("Parameter `index` is required when calling `getUsersCount`.");let a="/2/users/count",c={},r={};e!==void 0&&(r.index=e.toString()),s!==void 0&&(r.startDate=s.toString()),n!==void 0&&(r.endDate=n.toString()),i!==void 0&&(r.tags=i.toString());let p={method:"GET",path:a,queryParameters:r,headers:c};return f.request(p,l)}}}function At(o,t,d,u){if(!o||typeof o!="string")throw new Error("`appId` is missing.");if(!t||typeof t!="string")throw new Error("`apiKey` is missing.");if(d&&(typeof d!="string"||!b.includes(d)))throw new Error(`\`region\` must be one of the following: ${b.join(", ")}`);return X({appId:o,apiKey:t,region:d,timeouts:{connect:1e3,read:2e3,write:3e4},logger:W(),requester:Q(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:x(),requestsCache:x({serializable:false}),hostsCache:E({caches:[L({key:`${v}-${o}`}),x()]}),...u})}

@@ -10,0 +10,0 @@ exports.analyticsClient = At;

@@ -7,3 +7,3 @@ // builds/fetch.ts

import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common";
var apiClientVersion = "5.39.0";
var apiClientVersion = "5.40.0";
var REGIONS = ["de", "us"];

@@ -178,3 +178,3 @@ function getDefaultHosts(region) {

/**
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -187,3 +187,3 @@ * Required API Key ACLs:

* @param getAddToCartRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -219,3 +219,3 @@ */

/**
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries. The average is `null` until Algolia receives at least one click event.
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. The average is `null` until Algolia receives at least one click event.
*

@@ -228,3 +228,3 @@ * Required API Key ACLs:

* @param getAverageClickPosition.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -260,3 +260,3 @@ */

/**
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries.
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries.
*

@@ -269,3 +269,3 @@ * Required API Key ACLs:

* @param getClickPositions.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -301,3 +301,3 @@ */

/**
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -310,3 +310,3 @@ * Required API Key ACLs:

* @param getClickThroughRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -342,3 +342,3 @@ */

/**
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -351,3 +351,3 @@ * Required API Key ACLs:

* @param getConversionRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -391,3 +391,3 @@ */

* @param getNoClickRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -431,3 +431,3 @@ */

* @param getNoResultsRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -463,3 +463,3 @@ */

/**
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -472,3 +472,3 @@ * Required API Key ACLs:

* @param getPurchaseRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -512,3 +512,3 @@ */

* @param getRevenue.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -552,3 +552,3 @@ */

* @param getSearchesCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -594,3 +594,3 @@ */

* @param getSearchesNoClicks.offset - Position of the first item to return.
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -642,3 +642,3 @@ */

* @param getSearchesNoResults.offset - Position of the first item to return.
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -717,3 +717,3 @@ */

* @param getTopCountries.offset - Position of the first item to return.
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -766,3 +766,3 @@ */

* @param getTopFilterAttributes.offset - Position of the first item to return.
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -819,3 +819,3 @@ */

* @param getTopFilterForAttribute.offset - Position of the first item to return.
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -863,3 +863,3 @@ */

/**
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](#tag/search/operation/getSearchesNoResults) operation.
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](https://www.algolia.com/doc/rest-api/analytics/get-searches-no-results) operation.
*

@@ -875,3 +875,3 @@ * Required API Key ACLs:

* @param getTopFiltersNoResults.offset - Position of the first item to return.
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -916,3 +916,3 @@ */

/**
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -930,3 +930,3 @@ * Required API Key ACLs:

* @param getTopHits.offset - Position of the first item to return.
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -977,3 +977,3 @@ */

/**
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -992,3 +992,3 @@ * Required API Key ACLs:

* @param getTopSearches.offset - Position of the first item to return.
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1061,3 +1061,3 @@ */

* @param getUsersCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1064,0 +1064,0 @@ */

@@ -32,3 +32,3 @@ "use strict";

var import_client_common = require("@algolia/client-common");
var apiClientVersion = "5.39.0";
var apiClientVersion = "5.40.0";
var REGIONS = ["de", "us"];

@@ -203,3 +203,3 @@ function getDefaultHosts(region) {

/**
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -212,3 +212,3 @@ * Required API Key ACLs:

* @param getAddToCartRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -244,3 +244,3 @@ */

/**
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries. The average is `null` until Algolia receives at least one click event.
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. The average is `null` until Algolia receives at least one click event.
*

@@ -253,3 +253,3 @@ * Required API Key ACLs:

* @param getAverageClickPosition.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -285,3 +285,3 @@ */

/**
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries.
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries.
*

@@ -294,3 +294,3 @@ * Required API Key ACLs:

* @param getClickPositions.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -326,3 +326,3 @@ */

/**
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -335,3 +335,3 @@ * Required API Key ACLs:

* @param getClickThroughRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -367,3 +367,3 @@ */

/**
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -376,3 +376,3 @@ * Required API Key ACLs:

* @param getConversionRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -416,3 +416,3 @@ */

* @param getNoClickRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -456,3 +456,3 @@ */

* @param getNoResultsRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -488,3 +488,3 @@ */

/**
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -497,3 +497,3 @@ * Required API Key ACLs:

* @param getPurchaseRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -537,3 +537,3 @@ */

* @param getRevenue.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -577,3 +577,3 @@ */

* @param getSearchesCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -619,3 +619,3 @@ */

* @param getSearchesNoClicks.offset - Position of the first item to return.
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -667,3 +667,3 @@ */

* @param getSearchesNoResults.offset - Position of the first item to return.
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -742,3 +742,3 @@ */

* @param getTopCountries.offset - Position of the first item to return.
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -791,3 +791,3 @@ */

* @param getTopFilterAttributes.offset - Position of the first item to return.
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -844,3 +844,3 @@ */

* @param getTopFilterForAttribute.offset - Position of the first item to return.
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -888,3 +888,3 @@ */

/**
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](#tag/search/operation/getSearchesNoResults) operation.
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](https://www.algolia.com/doc/rest-api/analytics/get-searches-no-results) operation.
*

@@ -900,3 +900,3 @@ * Required API Key ACLs:

* @param getTopFiltersNoResults.offset - Position of the first item to return.
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -941,3 +941,3 @@ */

/**
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -955,3 +955,3 @@ * Required API Key ACLs:

* @param getTopHits.offset - Position of the first item to return.
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1002,3 +1002,3 @@ */

/**
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -1017,3 +1017,3 @@ * Required API Key ACLs:

* @param getTopSearches.offset - Position of the first item to return.
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1086,3 +1086,3 @@ */

* @param getUsersCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1089,0 +1089,0 @@ */

@@ -7,3 +7,3 @@ // builds/node.ts

import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common";
var apiClientVersion = "5.39.0";
var apiClientVersion = "5.40.0";
var REGIONS = ["de", "us"];

@@ -178,3 +178,3 @@ function getDefaultHosts(region) {

/**
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -187,3 +187,3 @@ * Required API Key ACLs:

* @param getAddToCartRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -219,3 +219,3 @@ */

/**
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries. The average is `null` until Algolia receives at least one click event.
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. The average is `null` until Algolia receives at least one click event.
*

@@ -228,3 +228,3 @@ * Required API Key ACLs:

* @param getAverageClickPosition.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -260,3 +260,3 @@ */

/**
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries.
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries.
*

@@ -269,3 +269,3 @@ * Required API Key ACLs:

* @param getClickPositions.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -301,3 +301,3 @@ */

/**
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -310,3 +310,3 @@ * Required API Key ACLs:

* @param getClickThroughRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -342,3 +342,3 @@ */

/**
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -351,3 +351,3 @@ * Required API Key ACLs:

* @param getConversionRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -391,3 +391,3 @@ */

* @param getNoClickRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -431,3 +431,3 @@ */

* @param getNoResultsRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -463,3 +463,3 @@ */

/**
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -472,3 +472,3 @@ * Required API Key ACLs:

* @param getPurchaseRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -512,3 +512,3 @@ */

* @param getRevenue.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -552,3 +552,3 @@ */

* @param getSearchesCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -594,3 +594,3 @@ */

* @param getSearchesNoClicks.offset - Position of the first item to return.
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -642,3 +642,3 @@ */

* @param getSearchesNoResults.offset - Position of the first item to return.
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -717,3 +717,3 @@ */

* @param getTopCountries.offset - Position of the first item to return.
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -766,3 +766,3 @@ */

* @param getTopFilterAttributes.offset - Position of the first item to return.
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -819,3 +819,3 @@ */

* @param getTopFilterForAttribute.offset - Position of the first item to return.
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -863,3 +863,3 @@ */

/**
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](#tag/search/operation/getSearchesNoResults) operation.
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](https://www.algolia.com/doc/rest-api/analytics/get-searches-no-results) operation.
*

@@ -875,3 +875,3 @@ * Required API Key ACLs:

* @param getTopFiltersNoResults.offset - Position of the first item to return.
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -916,3 +916,3 @@ */

/**
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -930,3 +930,3 @@ * Required API Key ACLs:

* @param getTopHits.offset - Position of the first item to return.
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -977,3 +977,3 @@ */

/**
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -992,3 +992,3 @@ * Required API Key ACLs:

* @param getTopSearches.offset - Position of the first item to return.
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1061,3 +1061,3 @@ */

* @param getUsersCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1064,0 +1064,0 @@ */

@@ -7,3 +7,3 @@ // builds/worker.ts

import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common";
var apiClientVersion = "5.39.0";
var apiClientVersion = "5.40.0";
var REGIONS = ["de", "us"];

@@ -178,3 +178,3 @@ function getDefaultHosts(region) {

/**
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -187,3 +187,3 @@ * Required API Key ACLs:

* @param getAddToCartRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -219,3 +219,3 @@ */

/**
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries. The average is `null` until Algolia receives at least one click event.
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. The average is `null` until Algolia receives at least one click event.
*

@@ -228,3 +228,3 @@ * Required API Key ACLs:

* @param getAverageClickPosition.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -260,3 +260,3 @@ */

/**
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries.
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries.
*

@@ -269,3 +269,3 @@ * Required API Key ACLs:

* @param getClickPositions.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -301,3 +301,3 @@ */

/**
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -310,3 +310,3 @@ * Required API Key ACLs:

* @param getClickThroughRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -342,3 +342,3 @@ */

/**
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -351,3 +351,3 @@ * Required API Key ACLs:

* @param getConversionRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -391,3 +391,3 @@ */

* @param getNoClickRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -431,3 +431,3 @@ */

* @param getNoResultsRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -463,3 +463,3 @@ */

/**
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -472,3 +472,3 @@ * Required API Key ACLs:

* @param getPurchaseRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -512,3 +512,3 @@ */

* @param getRevenue.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -552,3 +552,3 @@ */

* @param getSearchesCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -594,3 +594,3 @@ */

* @param getSearchesNoClicks.offset - Position of the first item to return.
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -642,3 +642,3 @@ */

* @param getSearchesNoResults.offset - Position of the first item to return.
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -717,3 +717,3 @@ */

* @param getTopCountries.offset - Position of the first item to return.
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -766,3 +766,3 @@ */

* @param getTopFilterAttributes.offset - Position of the first item to return.
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -819,3 +819,3 @@ */

* @param getTopFilterForAttribute.offset - Position of the first item to return.
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -863,3 +863,3 @@ */

/**
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](#tag/search/operation/getSearchesNoResults) operation.
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](https://www.algolia.com/doc/rest-api/analytics/get-searches-no-results) operation.
*

@@ -875,3 +875,3 @@ * Required API Key ACLs:

* @param getTopFiltersNoResults.offset - Position of the first item to return.
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -916,3 +916,3 @@ */

/**
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -930,3 +930,3 @@ * Required API Key ACLs:

* @param getTopHits.offset - Position of the first item to return.
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -977,3 +977,3 @@ */

/**
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -992,3 +992,3 @@ * Required API Key ACLs:

* @param getTopSearches.offset - Position of the first item to return.
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1061,3 +1061,3 @@ */

* @param getUsersCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1064,0 +1064,0 @@ */

@@ -29,3 +29,3 @@ "use strict";

var import_client_common = require("@algolia/client-common");
var apiClientVersion = "5.39.0";
var apiClientVersion = "5.40.0";
var REGIONS = ["de", "us"];

@@ -200,3 +200,3 @@ function getDefaultHosts(region) {

/**
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -209,3 +209,3 @@ * Required API Key ACLs:

* @param getAddToCartRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -241,3 +241,3 @@ */

/**
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries. The average is `null` until Algolia receives at least one click event.
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. The average is `null` until Algolia receives at least one click event.
*

@@ -250,3 +250,3 @@ * Required API Key ACLs:

* @param getAverageClickPosition.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -282,3 +282,3 @@ */

/**
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries.
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries.
*

@@ -291,3 +291,3 @@ * Required API Key ACLs:

* @param getClickPositions.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -323,3 +323,3 @@ */

/**
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -332,3 +332,3 @@ * Required API Key ACLs:

* @param getClickThroughRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -364,3 +364,3 @@ */

/**
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -373,3 +373,3 @@ * Required API Key ACLs:

* @param getConversionRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -413,3 +413,3 @@ */

* @param getNoClickRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -453,3 +453,3 @@ */

* @param getNoResultsRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -485,3 +485,3 @@ */

/**
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -494,3 +494,3 @@ * Required API Key ACLs:

* @param getPurchaseRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -534,3 +534,3 @@ */

* @param getRevenue.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -574,3 +574,3 @@ */

* @param getSearchesCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -616,3 +616,3 @@ */

* @param getSearchesNoClicks.offset - Position of the first item to return.
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -664,3 +664,3 @@ */

* @param getSearchesNoResults.offset - Position of the first item to return.
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -739,3 +739,3 @@ */

* @param getTopCountries.offset - Position of the first item to return.
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -788,3 +788,3 @@ */

* @param getTopFilterAttributes.offset - Position of the first item to return.
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -841,3 +841,3 @@ */

* @param getTopFilterForAttribute.offset - Position of the first item to return.
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -885,3 +885,3 @@ */

/**
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](#tag/search/operation/getSearchesNoResults) operation.
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](https://www.algolia.com/doc/rest-api/analytics/get-searches-no-results) operation.
*

@@ -897,3 +897,3 @@ * Required API Key ACLs:

* @param getTopFiltersNoResults.offset - Position of the first item to return.
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -938,3 +938,3 @@ */

/**
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -952,3 +952,3 @@ * Required API Key ACLs:

* @param getTopHits.offset - Position of the first item to return.
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -999,3 +999,3 @@ */

/**
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -1014,3 +1014,3 @@ * Required API Key ACLs:

* @param getTopSearches.offset - Position of the first item to return.
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1083,3 +1083,3 @@ */

* @param getUsersCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1086,0 +1086,0 @@ */

// src/analyticsClient.ts
import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common";
var apiClientVersion = "5.39.0";
var apiClientVersion = "5.40.0";
var REGIONS = ["de", "us"];

@@ -173,3 +173,3 @@ function getDefaultHosts(region) {

/**
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the add-to-cart rate for all your searches with at least one add-to-cart event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of add-to-cart conversion events divided by the number of tracked searches. A search is tracked if it returns a queryID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null add-to-cart rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the add-to-cart rate is null. - **0** mean there _were_ queries but no [add-to-cart events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -182,3 +182,3 @@ * Required API Key ACLs:

* @param getAddToCartRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAddToCartRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -214,3 +214,3 @@ */

/**
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries. The average is `null` until Algolia receives at least one click event.
* Retrieves the average click position of your search results, including a daily breakdown. The average click position is the average of all clicked search result positions. For example, if users only ever click on the first result for any search, the average click position is 1. By default, the analyzed period includes the last eight days including the current day. An average of `null` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries. The average is `null` until Algolia receives at least one click event.
*

@@ -223,3 +223,3 @@ * Required API Key ACLs:

* @param getAverageClickPosition.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getAverageClickPosition.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -255,3 +255,3 @@ */

/**
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) for the queries.
* Retrieves the positions in the search results and their associated number of clicks. This lets you check how many clicks the first, second, or tenth search results receive. An average of `0` when `clickAnalytics` is enabled means Algolia didn\'t receive any [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) for the queries.
*

@@ -264,3 +264,3 @@ * Required API Key ACLs:

* @param getClickPositions.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickPositions.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -296,3 +296,3 @@ */

/**
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the click-through rate (CTR) for all your searches with at least one click event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CTR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CTR is null. - **0** mean there _were_ queries but no [click events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -305,3 +305,3 @@ * Required API Key ACLs:

* @param getClickThroughRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getClickThroughRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -337,3 +337,3 @@ */

/**
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the conversion rate (CR) for all your searches with at least one conversion event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. **There\'s a difference between a 0 and null CR when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, CR is null. - **0** mean there _were_ queries but no [conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -346,3 +346,3 @@ * Required API Key ACLs:

* @param getConversionRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getConversionRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -386,3 +386,3 @@ */

* @param getNoClickRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoClickRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -426,3 +426,3 @@ */

* @param getNoResultsRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getNoResultsRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -458,3 +458,3 @@ */

/**
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the purchase rate for all your searches with at least one purchase event, including a daily breakdown. By default, the analyzed period includes the last eight days including the current day. The rate is the number of purchase conversion events divided by the number of tracked searches. A search is tracked if it returns a query ID (`clickAnalytics` is `true`). This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. **There\'s a difference between a 0 and null purchase rate when `clickAnalytics` is enabled:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the purchase rate is null. - **0** mean there _were_ queries but no [purchase conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -467,3 +467,3 @@ * Required API Key ACLs:

* @param getPurchaseRate.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getPurchaseRate.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -507,3 +507,3 @@ */

* @param getRevenue.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getRevenue.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -547,3 +547,3 @@ */

* @param getSearchesCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -589,3 +589,3 @@ */

* @param getSearchesNoClicks.offset - Position of the first item to return.
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoClicks.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -637,3 +637,3 @@ */

* @param getSearchesNoResults.offset - Position of the first item to return.
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getSearchesNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -712,3 +712,3 @@ */

* @param getTopCountries.offset - Position of the first item to return.
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopCountries.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -761,3 +761,3 @@ */

* @param getTopFilterAttributes.offset - Position of the first item to return.
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterAttributes.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -814,3 +814,3 @@ */

* @param getTopFilterForAttribute.offset - Position of the first item to return.
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFilterForAttribute.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -858,3 +858,3 @@ */

/**
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](#tag/search/operation/getSearchesNoResults) operation.
* Retrieves the 1,000 most frequently used filters for a search that didn\'t return any results. To get the most frequent searches without results, use the [Retrieve searches without results](https://www.algolia.com/doc/rest-api/analytics/get-searches-no-results) operation.
*

@@ -870,3 +870,3 @@ * Required API Key ACLs:

* @param getTopFiltersNoResults.offset - Position of the first item to return.
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopFiltersNoResults.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -911,3 +911,3 @@ */

/**
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Retrieves the object IDs of the 1,000 most frequent search results. If you set the `clickAnalytics` query parameter to true, the response also includes: - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -925,3 +925,3 @@ * Required API Key ACLs:

* @param getTopHits.offset - Position of the first item to return.
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopHits.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -972,3 +972,3 @@ */

/**
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started/) were received.
* Returns the most popular searches. For each search, it also includes the average number of hits. If you set the `clickAnalytics` query parameter to `true`, the response also includes - Tracked searches count. Tracked searches are Search API requests with the `clickAnalytics` parameter set to `true`. This differs from the response\'s `count`, which shows the overall number of searches, including those where `clickAnalytics` is `false`. - Click count - Click-through rate (CTR) - Conversion count - Conversion rate (CR) - Average click position If you set the `revenueAnalytics` query parameter to `true`, the response also includes: - Add-to-cart count - Add-to-cart rate (ATCR) - Purchase count - Purchase rate - Revenue details for each currency **There\'s a difference between 0% rates and null rates:** - **Null** means there were no queries: since Algolia didn\'t receive any events, the rates (CTR, CR, ATCR, purchase rate) are null. - **0% rates** mean there _were_ queries but no [click or conversion events](https://www.algolia.com/doc/guides/sending-events/getting-started) were received.
*

@@ -987,3 +987,3 @@ * Required API Key ACLs:

* @param getTopSearches.offset - Position of the first item to return.
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getTopSearches.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1056,3 +1056,3 @@ */

* @param getUsersCount.endDate - End date of the period to analyze, in `YYYY-MM-DD` format.
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
* @param getUsersCount.tags - Tags by which to segment the analytics. You can combine multiple tags with `OR` and `AND`. Tags must be URL-encoded. For more information, see [Segment your analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments).
* @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.

@@ -1059,0 +1059,0 @@ */

{
"version": "5.39.0",
"version": "5.40.0",
"repository": {

@@ -52,14 +52,14 @@ "type": "git",

"dependencies": {
"@algolia/client-common": "5.39.0",
"@algolia/requester-browser-xhr": "5.39.0",
"@algolia/requester-fetch": "5.39.0",
"@algolia/requester-node-http": "5.39.0"
"@algolia/client-common": "5.40.0",
"@algolia/requester-browser-xhr": "5.40.0",
"@algolia/requester-fetch": "5.40.0",
"@algolia/requester-node-http": "5.40.0"
},
"devDependencies": {
"@arethetypeswrong/cli": "0.18.2",
"@types/node": "22.18.6",
"publint": "0.3.13",
"rollup": "4.41.0",
"@types/node": "22.18.8",
"publint": "0.3.14",
"rollup": "4.52.4",
"tsup": "8.5.0",
"typescript": "5.9.2"
"typescript": "5.9.3"
},

@@ -66,0 +66,0 @@ "engines": {

@@ -44,7 +44,7 @@ <p align="center">

```bash
yarn add @algolia/client-analytics@5.39.0
yarn add @algolia/client-analytics@5.40.0
# or
npm install @algolia/client-analytics@5.39.0
npm install @algolia/client-analytics@5.40.0
# or
pnpm add @algolia/client-analytics@5.39.0
pnpm add @algolia/client-analytics@5.40.0
```

@@ -57,3 +57,3 @@

```html
<script src="https://cdn.jsdelivr.net/npm/@algolia/client-analytics@5.39.0/dist/builds/browser.umd.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@algolia/client-analytics@5.40.0/dist/builds/browser.umd.js"></script>
```

@@ -60,0 +60,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display