"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2826],{32826:function(e,r,t){t.d(r,{x:function(){return algoliasearch}});var a={};t.r(a),t.d(a,{abtestingClient:function(){return abtestingClient},apiClientVersion:function(){return P}});var o={};t.r(o),t.d(o,{analyticsClient:function(){return analyticsClient},apiClientVersion:function(){return y}});var s={};t.r(s),t.d(s,{apiClientVersion:function(){return f},personalizationClient:function(){return personalizationClient}});var n={};t.r(n),t.d(n,{apiClientVersion:function(){return S},searchClient:function(){return searchClient}});var l={};function m(){return{send:function(e){return new Promise(r=>{let t=new XMLHttpRequest;t.open(e.method,e.url,!0),Object.keys(e.headers).forEach(r=>t.setRequestHeader(r,e.headers[r]));let i=(e,a)=>setTimeout(()=>{t.abort(),r({status:0,content:a,isTimedOut:!0})},e),a=i(e.connectTimeout,"Connection timeout"),o;t.onreadystatechange=()=>{t.readyState>t.OPENED&&void 0===o&&(clearTimeout(a),o=i(e.responseTimeout,"Socket timeout"))},t.onerror=()=>{0===t.status&&(clearTimeout(a),clearTimeout(o),r({content:t.responseText||"Network request failed",status:t.status,isTimedOut:!1}))},t.onload=()=>{clearTimeout(a),clearTimeout(o),r({content:t.responseText,status:t.status,isTimedOut:!1})},t.send(e.data)})}}}function createBrowserLocalStorageCache(e){let r;let t=`algolia-client-js-${e.key}`;function getStorage(){return void 0===r&&(r=e.localStorage||window.localStorage),r}function getNamespace(){return JSON.parse(getStorage().getItem(t)||"{}")}function setNamespace(e){getStorage().setItem(t,JSON.stringify(e))}return{get:(r,t,a={miss:()=>Promise.resolve()})=>Promise.resolve().then(()=>(!function(){let r=e.timeToLive?1e3*e.timeToLive:null,t=getNamespace(),a=Object.fromEntries(Object.entries(t).filter(([,e])=>void 0!==e.timestamp));if(setNamespace(a),!r)return;let o=Object.fromEntries(Object.entries(a).filter(([,e])=>{let t=new Date().getTime(),a=e.timestamp+r<t;return!a}));setNamespace(o)}(),getNamespace()[JSON.stringify(r)])).then(e=>Promise.all([e?e.value:t(),void 0!==e])).then(([e,r])=>Promise.all([e,r||a.miss(e)])).then(([e])=>e),set:(e,r)=>Promise.resolve().then(()=>{let a=getNamespace();return a[JSON.stringify(e)]={timestamp:new Date().getTime(),value:r},getStorage().setItem(t,JSON.stringify(a)),r}),delete:e=>Promise.resolve().then(()=>{let r=getNamespace();delete r[JSON.stringify(e)],getStorage().setItem(t,JSON.stringify(r))}),clear:()=>Promise.resolve().then(()=>{getStorage().removeItem(t)})}}function createFallbackableCache(e){let r=[...e.caches],t=r.shift();return void 0===t?{get(e,r,t={miss:()=>Promise.resolve()}){let a=r();return a.then(e=>Promise.all([e,t.miss(e)])).then(([e])=>e)},set:(e,r)=>Promise.resolve(r),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,a,o={miss:()=>Promise.resolve()})=>t.get(e,a,o).catch(()=>createFallbackableCache({caches:r}).get(e,a,o)),set:(e,a)=>t.set(e,a).catch(()=>createFallbackableCache({caches:r}).set(e,a)),delete:e=>t.delete(e).catch(()=>createFallbackableCache({caches:r}).delete(e)),clear:()=>t.clear().catch(()=>createFallbackableCache({caches:r}).clear())}}function createMemoryCache(e={serializable:!0}){let r={};return{get(t,a,o={miss:()=>Promise.resolve()}){let s=JSON.stringify(t);if(s in r)return Promise.resolve(e.serializable?JSON.parse(r[s]):r[s]);let n=a();return n.then(e=>o.miss(e)).then(()=>n)},set:(t,a)=>(r[JSON.stringify(t)]=e.serializable?JSON.stringify(a):a,Promise.resolve(a)),delete:e=>(delete r[JSON.stringify(e)],Promise.resolve()),clear:()=>(r={},Promise.resolve())}}function createAuth(e,r,t="WithinHeaders"){let a={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===t?a:{},queryParameters:()=>"WithinQueryParameters"===t?a:{}}}function createIterablePromise({func:e,validate:r,aggregator:t,error:a,timeout:o=()=>0}){let retry=s=>new Promise((n,l)=>{e(s).then(e=>(t&&t(e),r(e))?n(e):a&&a.validate(e)?l(Error(a.message(e))):setTimeout(()=>{retry(e).then(n).catch(l)},o())).catch(e=>{l(e)})});return retry()}function getAlgoliaAgent({algoliaAgents:e,client:r,version:t}){let a=(function(e){let r={value:`Algolia for JavaScript (${e})`,add(e){let t=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return -1===r.value.indexOf(t)&&(r.value=`${r.value}${t}`),r}};return r})(t).add({segment:r,version:t});return e.forEach(e=>a.add(e)),a}function createNullLogger(){return{debug:(e,r)=>Promise.resolve(),info:(e,r)=>Promise.resolve(),error:(e,r)=>Promise.resolve()}}function createStatefulHost(e,r="up"){let t=Date.now();return{...e,status:r,lastUpdate:t,isUp:function(){return"up"===r||Date.now()-t>12e4},isTimedOut:function(){return"timed out"===r&&Date.now()-t<=12e4}}}t.r(l),t.d(l,{apiClientVersion:function(){return b},recommendClient:function(){return recommendClient}});var d=class extends Error{name="AlgoliaError";constructor(e,r){super(e),r&&(this.name=r)}},c=class extends d{stackTrace;constructor(e,r,t){super(e,t),this.stackTrace=r}},h=class extends c{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",e,"RetryError")}},u=class extends c{status;constructor(e,r,t,a="ApiError"){super(e,t,a),this.status=r}},p=class extends d{response;constructor(e,r){super(e,"DeserializationError"),this.response=r}},g=class extends u{error;constructor(e,r,t,a){super(e,r,a,"DetailedApiError"),this.error=t}};function shuffle(e){for(let r=e.length-1;r>0;r--){let t=Math.floor(Math.random()*(r+1)),a=e[r];e[r]=e[t],e[t]=a}return e}function stackFrameWithoutCredentials(e){let r=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...r}}}}function createTransporter({hosts:e,hostsCache:r,baseHeaders:t,logger:a,baseQueryParameters:o,algoliaAgent:s,timeouts:n,requester:l,requestsCache:d,responsesCache:c}){async function createRetryableOptions(e){let t=await Promise.all(e.map(e=>r.get(e,()=>Promise.resolve(createStatefulHost(e))))),a=t.filter(e=>e.isUp()),o=t.filter(e=>e.isTimedOut()),s=[...a,...o],n=s.length>0?s:e;return{hosts:n,getTimeout(e,r){let t=0===o.length&&0===e?1:o.length+3+e;return t*r}}}async function retryableRequest(d,c,P=!0){let w=[],y=function(e,r){if("GET"===e.method||void 0===e.data&&void 0===r.data)return;let t=Array.isArray(e.data)?e.data:{...e.data,...r.data};return JSON.stringify(t)}(d,c),q=function(e,r,t){let a={Accept:"application/json",...e,...r,...t},o={};return Object.keys(a).forEach(e=>{let r=a[e];o[e.toLowerCase()]=r}),o}(t,d.headers,c.headers),f="GET"===d.method?{...d.data,...c.data}:{},E={...o,...d.queryParameters,...f};if(s.value&&(E["x-algolia-agent"]=s.value),c&&c.queryParameters)for(let e of Object.keys(c.queryParameters))c.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(c.queryParameters[e])?E[e]=c.queryParameters[e].toString():E[e]=c.queryParameters[e];let S=0,retry=async(e,t)=>{let o=e.pop();if(void 0===o)throw new h(w.map(e=>stackFrameWithoutCredentials(e)));let s={...n,...c.timeouts},f={data:y,headers:q,method:d.method,url:function(e,r,t){let a=Object.keys(t).filter(e=>void 0!==t[e]).sort().map(e=>`${e}=${encodeURIComponent("[object Array]"===Object.prototype.toString.call(t[e])?t[e].join(","):t[e]).replace(/\+/g,"%20")}`).join("&"),o=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${"/"===r.charAt(0)?r.substring(1):r}`;return a.length&&(o+=`?${a}`),o}(o,d.path,E),connectTimeout:t(S,s.connect),responseTimeout:t(S,P?s.read:s.write)},pushToStackTrace=r=>{let t={request:f,response:r,host:o,triesLeft:e.length};return w.push(t),t},b=await l.send(f);if(function({isTimedOut:e,status:r}){return e||function({isTimedOut:e,status:r}){return!e&&0==~~r}({isTimedOut:e,status:r})||2!=~~(r/100)&&4!=~~(r/100)}(b)){let s=pushToStackTrace(b);return b.isTimedOut&&S++,a.info("Retryable failure",stackFrameWithoutCredentials(s)),await r.set(o,createStatefulHost(o,b.isTimedOut?"timed out":"down")),retry(e,t)}if(function({status:e}){return 2==~~(e/100)}(b))return function(e){try{return JSON.parse(e.content)}catch(r){throw new p(r.message,e)}}(b);throw pushToStackTrace(b),function({content:e,status:r},t){try{let a=JSON.parse(e);if("error"in a)return new g(a.message,r,a.error,t);return new u(a.message,r,t)}catch{}return new u(e,r,t)}(b,w)},b=e.filter(e=>"readWrite"===e.accept||(P?"read"===e.accept:"write"===e.accept)),v=await createRetryableOptions(b);return retry([...v.hosts].reverse(),v.getTimeout)}return{hostsCache:r,requester:l,timeouts:n,logger:a,algoliaAgent:s,baseHeaders:t,baseQueryParameters:o,hosts:e,request:function(e,r={}){let a=e.useReadTransporter||"GET"===e.method;if(!a)return retryableRequest(e,r,a);let createRetryableRequest=()=>retryableRequest(e,r),s=r.cacheable||e.cacheable;if(!0!==s)return createRetryableRequest();let n={request:e,requestOptions:r,transporter:{queryParameters:o,headers:t}};return c.get(n,()=>d.get(n,()=>d.set(n,createRetryableRequest()).then(e=>Promise.all([d.delete(n),e]),e=>Promise.all([d.delete(n),Promise.reject(e)])).then(([e,r])=>r)),{miss:e=>c.set(n,e)})},requestsCache:d,responsesCache:c}}var P="5.8.1",w=["de","us"];function abtestingClient(e,r,t,a){if(!e||"string"!=typeof e)throw Error("`appId` is missing.");if(!r||"string"!=typeof r)throw Error("`apiKey` is missing.");if(t&&("string"!=typeof t||!w.includes(t)))throw Error(`\`region\` must be one of the following: ${w.join(", ")}`);return function({appId:e,apiKey:r,authMode:t,algoliaAgents:a,region:o,...s}){let n=createAuth(e,r,t),l=createTransporter({hosts:function(e){let r=e?"analytics.{region}.algolia.com".replace("{region}",e):"analytics.algolia.com";return[{url:r,accept:"readWrite",protocol:"https"}]}(o),...s,algoliaAgent:getAlgoliaAgent({algoliaAgents:a,client:"Abtesting",version:P}),baseHeaders:{"content-type":"text/plain",...n.headers(),...s.baseHeaders},baseQueryParameters:{...n.queryParameters(),...s.baseQueryParameters}});return{transporter:l,appId:e,clearCache:()=>Promise.all([l.requestsCache.clear(),l.responsesCache.clear()]).then(()=>void 0),get _ua(){return l.algoliaAgent.value},addAlgoliaAgent(e,r){l.algoliaAgent.add({segment:e,version:r})},setClientApiKey({apiKey:e}){t&&"WithinHeaders"!==t?l.baseQueryParameters["x-algolia-api-key"]=e:l.baseHeaders["x-algolia-api-key"]=e},addABTests(e,r){if(!e)throw Error("Parameter `addABTestsRequest` is required when calling `addABTests`.");if(!e.name)throw Error("Parameter `addABTestsRequest.name` is required when calling `addABTests`.");if(!e.variants)throw Error("Parameter `addABTestsRequest.variants` is required when calling `addABTests`.");if(!e.endAt)throw Error("Parameter `addABTestsRequest.endAt` is required when calling `addABTests`.");return l.request({method:"POST",path:"/2/abtests",queryParameters:{},headers:{},data:e},r)},customDelete({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customDelete`.");let a="/{path}".replace("{path}",e);return l.request({method:"DELETE",path:a,queryParameters:r||{},headers:{}},t)},customGet({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customGet`.");let a="/{path}".replace("{path}",e);return l.request({method:"GET",path:a,queryParameters:r||{},headers:{}},t)},customPost({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPost`.");let o="/{path}".replace("{path}",e);return l.request({method:"POST",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},customPut({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPut`.");let o="/{path}".replace("{path}",e);return l.request({method:"PUT",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},deleteABTest({id:e},r){if(!e)throw Error("Parameter `id` is required when calling `deleteABTest`.");let t="/2/abtests/{id}".replace("{id}",encodeURIComponent(e));return l.request({method:"DELETE",path:t,queryParameters:{},headers:{}},r)},getABTest({id:e},r){if(!e)throw Error("Parameter `id` is required when calling `getABTest`.");let t="/2/abtests/{id}".replace("{id}",encodeURIComponent(e));return l.request({method:"GET",path:t,queryParameters:{},headers:{}},r)},listABTests({offset:e,limit:r,indexPrefix:t,indexSuffix:a}={},o){let s={};return void 0!==e&&(s.offset=e.toString()),void 0!==r&&(s.limit=r.toString()),void 0!==t&&(s.indexPrefix=t.toString()),void 0!==a&&(s.indexSuffix=a.toString()),l.request({method:"GET",path:"/2/abtests",queryParameters:s,headers:{}},o)},scheduleABTest(e,r){if(!e)throw Error("Parameter `scheduleABTestsRequest` is required when calling `scheduleABTest`.");if(!e.name)throw Error("Parameter `scheduleABTestsRequest.name` is required when calling `scheduleABTest`.");if(!e.variants)throw Error("Parameter `scheduleABTestsRequest.variants` is required when calling `scheduleABTest`.");if(!e.scheduledAt)throw Error("Parameter `scheduleABTestsRequest.scheduledAt` is required when calling `scheduleABTest`.");if(!e.endAt)throw Error("Parameter `scheduleABTestsRequest.endAt` is required when calling `scheduleABTest`.");return l.request({method:"POST",path:"/2/abtests/schedule",queryParameters:{},headers:{},data:e},r)},stopABTest({id:e},r){if(!e)throw Error("Parameter `id` is required when calling `stopABTest`.");let t="/2/abtests/{id}/stop".replace("{id}",encodeURIComponent(e));return l.request({method:"POST",path:t,queryParameters:{},headers:{}},r)}}}({appId:e,apiKey:r,region:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:createNullLogger(),requester:m(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:createMemoryCache(),requestsCache:createMemoryCache({serializable:!1}),hostsCache:createFallbackableCache({caches:[createBrowserLocalStorageCache({key:`${P}-${e}`}),createMemoryCache()]}),...a})}var y="5.8.1",q=["de","us"];function analyticsClient(e,r,t,a){if(!e||"string"!=typeof e)throw Error("`appId` is missing.");if(!r||"string"!=typeof r)throw Error("`apiKey` is missing.");if(t&&("string"!=typeof t||!q.includes(t)))throw Error(`\`region\` must be one of the following: ${q.join(", ")}`);return function({appId:e,apiKey:r,authMode:t,algoliaAgents:a,region:o,...s}){let n=createAuth(e,r,t),l=createTransporter({hosts:function(e){let r=e?"analytics.{region}.algolia.com".replace("{region}",e):"analytics.algolia.com";return[{url:r,accept:"readWrite",protocol:"https"}]}(o),...s,algoliaAgent:getAlgoliaAgent({algoliaAgents:a,client:"Analytics",version:y}),baseHeaders:{"content-type":"text/plain",...n.headers(),...s.baseHeaders},baseQueryParameters:{...n.queryParameters(),...s.baseQueryParameters}});return{transporter:l,appId:e,clearCache:()=>Promise.all([l.requestsCache.clear(),l.responsesCache.clear()]).then(()=>void 0),get _ua(){return l.algoliaAgent.value},addAlgoliaAgent(e,r){l.algoliaAgent.add({segment:e,version:r})},setClientApiKey({apiKey:e}){t&&"WithinHeaders"!==t?l.baseQueryParameters["x-algolia-api-key"]=e:l.baseHeaders["x-algolia-api-key"]=e},customDelete({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customDelete`.");let a="/{path}".replace("{path}",e);return l.request({method:"DELETE",path:a,queryParameters:r||{},headers:{}},t)},customGet({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customGet`.");let a="/{path}".replace("{path}",e);return l.request({method:"GET",path:a,queryParameters:r||{},headers:{}},t)},customPost({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPost`.");let o="/{path}".replace("{path}",e);return l.request({method:"POST",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},customPut({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPut`.");let o="/{path}".replace("{path}",e);return l.request({method:"PUT",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},getAddToCartRate({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getAddToCartRate`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/conversions/addToCartRate",queryParameters:s,headers:{}},o)},getAverageClickPosition({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getAverageClickPosition`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/clicks/averageClickPosition",queryParameters:s,headers:{}},o)},getClickPositions({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getClickPositions`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/clicks/positions",queryParameters:s,headers:{}},o)},getClickThroughRate({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getClickThroughRate`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/clicks/clickThroughRate",queryParameters:s,headers:{}},o)},getConversionRate({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getConversionRate`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/conversions/conversionRate",queryParameters:s,headers:{}},o)},getNoClickRate({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getNoClickRate`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/searches/noClickRate",queryParameters:s,headers:{}},o)},getNoResultsRate({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getNoResultsRate`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/searches/noResultRate",queryParameters:s,headers:{}},o)},getPurchaseRate({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getPurchaseRate`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/conversions/purchaseRate",queryParameters:s,headers:{}},o)},getRevenue({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getRevenue`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/conversions/revenue",queryParameters:s,headers:{}},o)},getSearchesCount({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getSearchesCount`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/searches/count",queryParameters:s,headers:{}},o)},getSearchesNoClicks({index:e,startDate:r,endDate:t,limit:a,offset:o,tags:s},n){if(!e)throw Error("Parameter `index` is required when calling `getSearchesNoClicks`.");let d={};return void 0!==e&&(d.index=e.toString()),void 0!==r&&(d.startDate=r.toString()),void 0!==t&&(d.endDate=t.toString()),void 0!==a&&(d.limit=a.toString()),void 0!==o&&(d.offset=o.toString()),void 0!==s&&(d.tags=s.toString()),l.request({method:"GET",path:"/2/searches/noClicks",queryParameters:d,headers:{}},n)},getSearchesNoResults({index:e,startDate:r,endDate:t,limit:a,offset:o,tags:s},n){if(!e)throw Error("Parameter `index` is required when calling `getSearchesNoResults`.");let d={};return void 0!==e&&(d.index=e.toString()),void 0!==r&&(d.startDate=r.toString()),void 0!==t&&(d.endDate=t.toString()),void 0!==a&&(d.limit=a.toString()),void 0!==o&&(d.offset=o.toString()),void 0!==s&&(d.tags=s.toString()),l.request({method:"GET",path:"/2/searches/noResults",queryParameters:d,headers:{}},n)},getStatus({index:e},r){if(!e)throw Error("Parameter `index` is required when calling `getStatus`.");let t={};return void 0!==e&&(t.index=e.toString()),l.request({method:"GET",path:"/2/status",queryParameters:t,headers:{}},r)},getTopCountries({index:e,startDate:r,endDate:t,limit:a,offset:o,tags:s},n){if(!e)throw Error("Parameter `index` is required when calling `getTopCountries`.");let d={};return void 0!==e&&(d.index=e.toString()),void 0!==r&&(d.startDate=r.toString()),void 0!==t&&(d.endDate=t.toString()),void 0!==a&&(d.limit=a.toString()),void 0!==o&&(d.offset=o.toString()),void 0!==s&&(d.tags=s.toString()),l.request({method:"GET",path:"/2/countries",queryParameters:d,headers:{}},n)},getTopFilterAttributes({index:e,search:r,startDate:t,endDate:a,limit:o,offset:s,tags:n},d){if(!e)throw Error("Parameter `index` is required when calling `getTopFilterAttributes`.");let c={};return void 0!==e&&(c.index=e.toString()),void 0!==r&&(c.search=r.toString()),void 0!==t&&(c.startDate=t.toString()),void 0!==a&&(c.endDate=a.toString()),void 0!==o&&(c.limit=o.toString()),void 0!==s&&(c.offset=s.toString()),void 0!==n&&(c.tags=n.toString()),l.request({method:"GET",path:"/2/filters",queryParameters:c,headers:{}},d)},getTopFilterForAttribute({attribute:e,index:r,search:t,startDate:a,endDate:o,limit:s,offset:n,tags:d},c){if(!e)throw Error("Parameter `attribute` is required when calling `getTopFilterForAttribute`.");if(!r)throw Error("Parameter `index` is required when calling `getTopFilterForAttribute`.");let h="/2/filters/{attribute}".replace("{attribute}",encodeURIComponent(e)),u={};return void 0!==r&&(u.index=r.toString()),void 0!==t&&(u.search=t.toString()),void 0!==a&&(u.startDate=a.toString()),void 0!==o&&(u.endDate=o.toString()),void 0!==s&&(u.limit=s.toString()),void 0!==n&&(u.offset=n.toString()),void 0!==d&&(u.tags=d.toString()),l.request({method:"GET",path:h,queryParameters:u,headers:{}},c)},getTopFiltersNoResults({index:e,search:r,startDate:t,endDate:a,limit:o,offset:s,tags:n},d){if(!e)throw Error("Parameter `index` is required when calling `getTopFiltersNoResults`.");let c={};return void 0!==e&&(c.index=e.toString()),void 0!==r&&(c.search=r.toString()),void 0!==t&&(c.startDate=t.toString()),void 0!==a&&(c.endDate=a.toString()),void 0!==o&&(c.limit=o.toString()),void 0!==s&&(c.offset=s.toString()),void 0!==n&&(c.tags=n.toString()),l.request({method:"GET",path:"/2/filters/noResults",queryParameters:c,headers:{}},d)},getTopHits({index:e,search:r,clickAnalytics:t,revenueAnalytics:a,startDate:o,endDate:s,limit:n,offset:d,tags:c},h){if(!e)throw Error("Parameter `index` is required when calling `getTopHits`.");let u={};return void 0!==e&&(u.index=e.toString()),void 0!==r&&(u.search=r.toString()),void 0!==t&&(u.clickAnalytics=t.toString()),void 0!==a&&(u.revenueAnalytics=a.toString()),void 0!==o&&(u.startDate=o.toString()),void 0!==s&&(u.endDate=s.toString()),void 0!==n&&(u.limit=n.toString()),void 0!==d&&(u.offset=d.toString()),void 0!==c&&(u.tags=c.toString()),l.request({method:"GET",path:"/2/hits",queryParameters:u,headers:{}},h)},getTopSearches({index:e,clickAnalytics:r,revenueAnalytics:t,startDate:a,endDate:o,orderBy:s,direction:n,limit:d,offset:c,tags:h},u){if(!e)throw Error("Parameter `index` is required when calling `getTopSearches`.");let p={};return void 0!==e&&(p.index=e.toString()),void 0!==r&&(p.clickAnalytics=r.toString()),void 0!==t&&(p.revenueAnalytics=t.toString()),void 0!==a&&(p.startDate=a.toString()),void 0!==o&&(p.endDate=o.toString()),void 0!==s&&(p.orderBy=s.toString()),void 0!==n&&(p.direction=n.toString()),void 0!==d&&(p.limit=d.toString()),void 0!==c&&(p.offset=c.toString()),void 0!==h&&(p.tags=h.toString()),l.request({method:"GET",path:"/2/searches",queryParameters:p,headers:{}},u)},getUsersCount({index:e,startDate:r,endDate:t,tags:a},o){if(!e)throw Error("Parameter `index` is required when calling `getUsersCount`.");let s={};return void 0!==e&&(s.index=e.toString()),void 0!==r&&(s.startDate=r.toString()),void 0!==t&&(s.endDate=t.toString()),void 0!==a&&(s.tags=a.toString()),l.request({method:"GET",path:"/2/users/count",queryParameters:s,headers:{}},o)}}}({appId:e,apiKey:r,region:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:createNullLogger(),requester:m(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:createMemoryCache(),requestsCache:createMemoryCache({serializable:!1}),hostsCache:createFallbackableCache({caches:[createBrowserLocalStorageCache({key:`${y}-${e}`}),createMemoryCache()]}),...a})}var f="5.8.1",E=["eu","us"];function personalizationClient(e,r,t,a){if(!e||"string"!=typeof e)throw Error("`appId` is missing.");if(!r||"string"!=typeof r)throw Error("`apiKey` is missing.");if(!t||t&&("string"!=typeof t||!E.includes(t)))throw Error(`\`region\` is required and must be one of the following: ${E.join(", ")}`);return function({appId:e,apiKey:r,authMode:t,algoliaAgents:a,region:o,...s}){let n=createAuth(e,r,t),l=createTransporter({hosts:function(e){let r="personalization.{region}.algolia.com".replace("{region}",e);return[{url:r,accept:"readWrite",protocol:"https"}]}(o),...s,algoliaAgent:getAlgoliaAgent({algoliaAgents:a,client:"Personalization",version:f}),baseHeaders:{"content-type":"text/plain",...n.headers(),...s.baseHeaders},baseQueryParameters:{...n.queryParameters(),...s.baseQueryParameters}});return{transporter:l,appId:e,clearCache:()=>Promise.all([l.requestsCache.clear(),l.responsesCache.clear()]).then(()=>void 0),get _ua(){return l.algoliaAgent.value},addAlgoliaAgent(e,r){l.algoliaAgent.add({segment:e,version:r})},setClientApiKey({apiKey:e}){t&&"WithinHeaders"!==t?l.baseQueryParameters["x-algolia-api-key"]=e:l.baseHeaders["x-algolia-api-key"]=e},customDelete({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customDelete`.");let a="/{path}".replace("{path}",e);return l.request({method:"DELETE",path:a,queryParameters:r||{},headers:{}},t)},customGet({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customGet`.");let a="/{path}".replace("{path}",e);return l.request({method:"GET",path:a,queryParameters:r||{},headers:{}},t)},customPost({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPost`.");let o="/{path}".replace("{path}",e);return l.request({method:"POST",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},customPut({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPut`.");let o="/{path}".replace("{path}",e);return l.request({method:"PUT",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},deleteUserProfile({userToken:e},r){if(!e)throw Error("Parameter `userToken` is required when calling `deleteUserProfile`.");let t="/1/profiles/{userToken}".replace("{userToken}",encodeURIComponent(e));return l.request({method:"DELETE",path:t,queryParameters:{},headers:{}},r)},getPersonalizationStrategy:e=>l.request({method:"GET",path:"/1/strategies/personalization",queryParameters:{},headers:{}},e),getUserTokenProfile({userToken:e},r){if(!e)throw Error("Parameter `userToken` is required when calling `getUserTokenProfile`.");let t="/1/profiles/personalization/{userToken}".replace("{userToken}",encodeURIComponent(e));return l.request({method:"GET",path:t,queryParameters:{},headers:{}},r)},setPersonalizationStrategy(e,r){if(!e)throw Error("Parameter `personalizationStrategyParams` is required when calling `setPersonalizationStrategy`.");if(!e.eventScoring)throw Error("Parameter `personalizationStrategyParams.eventScoring` is required when calling `setPersonalizationStrategy`.");if(!e.facetScoring)throw Error("Parameter `personalizationStrategyParams.facetScoring` is required when calling `setPersonalizationStrategy`.");if(!e.personalizationImpact)throw Error("Parameter `personalizationStrategyParams.personalizationImpact` is required when calling `setPersonalizationStrategy`.");return l.request({method:"POST",path:"/1/strategies/personalization",queryParameters:{},headers:{},data:e},r)}}}({appId:e,apiKey:r,region:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:createNullLogger(),requester:m(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:createMemoryCache(),requestsCache:createMemoryCache({serializable:!1}),hostsCache:createFallbackableCache({caches:[createBrowserLocalStorageCache({key:`${f}-${e}`}),createMemoryCache()]}),...a})}var S="5.8.1";function searchClient(e,r,t){if(!e||"string"!=typeof e)throw Error("`appId` is missing.");if(!r||"string"!=typeof r)throw Error("`apiKey` is missing.");return function({appId:e,apiKey:r,authMode:t,algoliaAgents:a,...o}){let s=createAuth(e,r,t),n=createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${e}.algolia.net`,accept:"write",protocol:"https"}].concat(shuffle([{url:`${e}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-3.algolianet.com`,accept:"readWrite",protocol:"https"}])),...o,algoliaAgent:getAlgoliaAgent({algoliaAgents:a,client:"Search",version:S}),baseHeaders:{"content-type":"text/plain",...s.headers(),...o.baseHeaders},baseQueryParameters:{...s.queryParameters(),...o.baseQueryParameters}});return{transporter:n,appId:e,clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>void 0),get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(e,r){n.algoliaAgent.add({segment:e,version:r})},setClientApiKey({apiKey:e}){t&&"WithinHeaders"!==t?n.baseQueryParameters["x-algolia-api-key"]=e:n.baseHeaders["x-algolia-api-key"]=e},waitForTask({indexName:e,taskID:r,maxRetries:t=50,timeout:a=e=>Math.min(200*e,5e3)},o){let s=0;return createIterablePromise({func:()=>this.getTask({indexName:e,taskID:r},o),validate:e=>"published"===e.status,aggregator:()=>s+=1,error:{validate:()=>s>=t,message:()=>`The maximum number of retries exceeded. (${s}/${t})`},timeout:()=>a(s)})},waitForAppTask({taskID:e,maxRetries:r=50,timeout:t=e=>Math.min(200*e,5e3)},a){let o=0;return createIterablePromise({func:()=>this.getAppTask({taskID:e},a),validate:e=>"published"===e.status,aggregator:()=>o+=1,error:{validate:()=>o>=r,message:()=>`The maximum number of retries exceeded. (${o}/${r})`},timeout:()=>t(o)})},waitForApiKey({operation:e,key:r,apiKey:t,maxRetries:a=50,timeout:o=e=>Math.min(200*e,5e3)},s){let n=0,l={aggregator:()=>n+=1,error:{validate:()=>n>=a,message:()=>`The maximum number of retries exceeded. (${n}/${a})`},timeout:()=>o(n)};if("update"===e){if(!t)throw Error("`apiKey` is required when waiting for an `update` operation.");return createIterablePromise({...l,func:()=>this.getApiKey({key:r},s),validate:e=>{for(let r of Object.keys(t)){let a=t[r],o=e[r];if(Array.isArray(a)&&Array.isArray(o)){if(a.length!==o.length||a.some((e,r)=>e!==o[r]))return!1}else if(a!==o)return!1}return!0}})}return createIterablePromise({...l,func:()=>this.getApiKey({key:r},s).catch(e=>{if(404!==e.status)throw e}),validate:r=>"add"===e?void 0!==r:void 0===r})},browseObjects({indexName:e,browseParams:r,...t},a){return createIterablePromise({func:t=>this.browse({indexName:e,browseParams:{cursor:t?t.cursor:void 0,...r}},a),validate:e=>void 0===e.cursor,...t})},browseRules({indexName:e,searchRulesParams:r,...t},a){let o={hitsPerPage:1e3,...r};return createIterablePromise({func:r=>this.searchRules({indexName:e,searchRulesParams:{...o,page:r?r.page+1:o.page||0}},a),validate:e=>e.nbHits<o.hitsPerPage,...t})},browseSynonyms({indexName:e,searchSynonymsParams:r,...t},a){let o={page:0,...r,hitsPerPage:1e3};return createIterablePromise({func:r=>{let t=this.searchSynonyms({indexName:e,searchSynonymsParams:{...o,page:o.page}},a);return o.page+=1,t},validate:e=>e.nbHits<o.hitsPerPage,...t})},async chunkedBatch({indexName:e,objects:r,action:t="addObject",waitForTasks:a,batchSize:o=1e3},s){let n=[],l=[],d=r.entries();for(let[a,c]of d)n.push({action:t,body:c}),(n.length===o||a===r.length-1)&&(l.push(await this.batch({indexName:e,batchWriteParams:{requests:n}},s)),n=[]);if(a)for(let r of l)await this.waitForTask({indexName:e,taskID:r.taskID});return l},async saveObjects({indexName:e,objects:r},t){return await this.chunkedBatch({indexName:e,objects:r,action:"addObject"},t)},async deleteObjects({indexName:e,objectIDs:r},t){return await this.chunkedBatch({indexName:e,objects:r.map(e=>({objectID:e})),action:"deleteObject"},t)},async partialUpdateObjects({indexName:e,objects:r,createIfNotExists:t},a){return await this.chunkedBatch({indexName:e,objects:r,action:t?"partialUpdateObject":"partialUpdateObjectNoCreate"},a)},async replaceAllObjects({indexName:e,objects:r,batchSize:t},a){let o=`${e}_tmp_${Math.floor(1e6*Math.random())+1e5}`,s=await this.operationIndex({indexName:e,operationIndexParams:{operation:"copy",destination:o,scope:["settings","rules","synonyms"]}},a),n=await this.chunkedBatch({indexName:o,objects:r,waitForTasks:!0,batchSize:t},a);await this.waitForTask({indexName:o,taskID:s.taskID}),s=await this.operationIndex({indexName:e,operationIndexParams:{operation:"copy",destination:o,scope:["settings","rules","synonyms"]}},a),await this.waitForTask({indexName:o,taskID:s.taskID});let l=await this.operationIndex({indexName:o,operationIndexParams:{operation:"move",destination:e}},a);return await this.waitForTask({indexName:o,taskID:l.taskID}),{copyOperationResponse:s,batchResponses:n,moveOperationResponse:l}},async indexExists({indexName:e}){try{await this.getSettings({indexName:e})}catch(e){if(e instanceof u&&404===e.status)return!1;throw e}return!0},searchForHits(e,r){return this.search(e,r)},searchForFacets(e,r){return this.search(e,r)},addApiKey(e,r){if(!e)throw Error("Parameter `apiKey` is required when calling `addApiKey`.");if(!e.acl)throw Error("Parameter `apiKey.acl` is required when calling `addApiKey`.");return n.request({method:"POST",path:"/1/keys",queryParameters:{},headers:{},data:e},r)},addOrUpdateObject({indexName:e,objectID:r,body:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `addOrUpdateObject`.");if(!r)throw Error("Parameter `objectID` is required when calling `addOrUpdateObject`.");if(!t)throw Error("Parameter `body` is required when calling `addOrUpdateObject`.");let o="/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r));return n.request({method:"PUT",path:o,queryParameters:{},headers:{},data:t},a)},appendSource(e,r){if(!e)throw Error("Parameter `source` is required when calling `appendSource`.");if(!e.source)throw Error("Parameter `source.source` is required when calling `appendSource`.");return n.request({method:"POST",path:"/1/security/sources/append",queryParameters:{},headers:{},data:e},r)},assignUserId({xAlgoliaUserID:e,assignUserIdParams:r},t){if(!e)throw Error("Parameter `xAlgoliaUserID` is required when calling `assignUserId`.");if(!r)throw Error("Parameter `assignUserIdParams` is required when calling `assignUserId`.");if(!r.cluster)throw Error("Parameter `assignUserIdParams.cluster` is required when calling `assignUserId`.");let a={};return void 0!==e&&(a["X-Algolia-User-ID"]=e.toString()),n.request({method:"POST",path:"/1/clusters/mapping",queryParameters:{},headers:a,data:r},t)},batch({indexName:e,batchWriteParams:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `batch`.");if(!r)throw Error("Parameter `batchWriteParams` is required when calling `batch`.");if(!r.requests)throw Error("Parameter `batchWriteParams.requests` is required when calling `batch`.");let a="/1/indexes/{indexName}/batch".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r},t)},batchAssignUserIds({xAlgoliaUserID:e,batchAssignUserIdsParams:r},t){if(!e)throw Error("Parameter `xAlgoliaUserID` is required when calling `batchAssignUserIds`.");if(!r)throw Error("Parameter `batchAssignUserIdsParams` is required when calling `batchAssignUserIds`.");if(!r.cluster)throw Error("Parameter `batchAssignUserIdsParams.cluster` is required when calling `batchAssignUserIds`.");if(!r.users)throw Error("Parameter `batchAssignUserIdsParams.users` is required when calling `batchAssignUserIds`.");let a={};return void 0!==e&&(a["X-Algolia-User-ID"]=e.toString()),n.request({method:"POST",path:"/1/clusters/mapping/batch",queryParameters:{},headers:a,data:r},t)},batchDictionaryEntries({dictionaryName:e,batchDictionaryEntriesParams:r},t){if(!e)throw Error("Parameter `dictionaryName` is required when calling `batchDictionaryEntries`.");if(!r)throw Error("Parameter `batchDictionaryEntriesParams` is required when calling `batchDictionaryEntries`.");if(!r.requests)throw Error("Parameter `batchDictionaryEntriesParams.requests` is required when calling `batchDictionaryEntries`.");let a="/1/dictionaries/{dictionaryName}/batch".replace("{dictionaryName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r},t)},browse({indexName:e,browseParams:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `browse`.");let a="/1/indexes/{indexName}/browse".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r||{},useReadTransporter:!0},t)},clearObjects({indexName:e},r){if(!e)throw Error("Parameter `indexName` is required when calling `clearObjects`.");let t="/1/indexes/{indexName}/clear".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:t,queryParameters:{},headers:{}},r)},clearRules({indexName:e,forwardToReplicas:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `clearRules`.");let a="/1/indexes/{indexName}/rules/clear".replace("{indexName}",encodeURIComponent(e)),o={};return void 0!==r&&(o.forwardToReplicas=r.toString()),n.request({method:"POST",path:a,queryParameters:o,headers:{}},t)},clearSynonyms({indexName:e,forwardToReplicas:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `clearSynonyms`.");let a="/1/indexes/{indexName}/synonyms/clear".replace("{indexName}",encodeURIComponent(e)),o={};return void 0!==r&&(o.forwardToReplicas=r.toString()),n.request({method:"POST",path:a,queryParameters:o,headers:{}},t)},customDelete({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customDelete`.");let a="/{path}".replace("{path}",e);return n.request({method:"DELETE",path:a,queryParameters:r||{},headers:{}},t)},customGet({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customGet`.");let a="/{path}".replace("{path}",e);return n.request({method:"GET",path:a,queryParameters:r||{},headers:{}},t)},customPost({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPost`.");let o="/{path}".replace("{path}",e);return n.request({method:"POST",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},customPut({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPut`.");let o="/{path}".replace("{path}",e);return n.request({method:"PUT",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},deleteApiKey({key:e},r){if(!e)throw Error("Parameter `key` is required when calling `deleteApiKey`.");let t="/1/keys/{key}".replace("{key}",encodeURIComponent(e));return n.request({method:"DELETE",path:t,queryParameters:{},headers:{}},r)},deleteBy({indexName:e,deleteByParams:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `deleteBy`.");if(!r)throw Error("Parameter `deleteByParams` is required when calling `deleteBy`.");let a="/1/indexes/{indexName}/deleteByQuery".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r},t)},deleteIndex({indexName:e},r){if(!e)throw Error("Parameter `indexName` is required when calling `deleteIndex`.");let t="/1/indexes/{indexName}".replace("{indexName}",encodeURIComponent(e));return n.request({method:"DELETE",path:t,queryParameters:{},headers:{}},r)},deleteObject({indexName:e,objectID:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `deleteObject`.");if(!r)throw Error("Parameter `objectID` is required when calling `deleteObject`.");let a="/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r));return n.request({method:"DELETE",path:a,queryParameters:{},headers:{}},t)},deleteRule({indexName:e,objectID:r,forwardToReplicas:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `deleteRule`.");if(!r)throw Error("Parameter `objectID` is required when calling `deleteRule`.");let o="/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};return void 0!==t&&(s.forwardToReplicas=t.toString()),n.request({method:"DELETE",path:o,queryParameters:s,headers:{}},a)},deleteSource({source:e},r){if(!e)throw Error("Parameter `source` is required when calling `deleteSource`.");let t="/1/security/sources/{source}".replace("{source}",encodeURIComponent(e));return n.request({method:"DELETE",path:t,queryParameters:{},headers:{}},r)},deleteSynonym({indexName:e,objectID:r,forwardToReplicas:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `deleteSynonym`.");if(!r)throw Error("Parameter `objectID` is required when calling `deleteSynonym`.");let o="/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};return void 0!==t&&(s.forwardToReplicas=t.toString()),n.request({method:"DELETE",path:o,queryParameters:s,headers:{}},a)},getApiKey({key:e},r){if(!e)throw Error("Parameter `key` is required when calling `getApiKey`.");let t="/1/keys/{key}".replace("{key}",encodeURIComponent(e));return n.request({method:"GET",path:t,queryParameters:{},headers:{}},r)},getAppTask({taskID:e},r){if(!e)throw Error("Parameter `taskID` is required when calling `getAppTask`.");let t="/1/task/{taskID}".replace("{taskID}",encodeURIComponent(e));return n.request({method:"GET",path:t,queryParameters:{},headers:{}},r)},getDictionaryLanguages:e=>n.request({method:"GET",path:"/1/dictionaries/*/languages",queryParameters:{},headers:{}},e),getDictionarySettings:e=>n.request({method:"GET",path:"/1/dictionaries/*/settings",queryParameters:{},headers:{}},e),getLogs({offset:e,length:r,indexName:t,type:a}={},o){let s={};return void 0!==e&&(s.offset=e.toString()),void 0!==r&&(s.length=r.toString()),void 0!==t&&(s.indexName=t.toString()),void 0!==a&&(s.type=a.toString()),n.request({method:"GET",path:"/1/logs",queryParameters:s,headers:{}},o)},getObject({indexName:e,objectID:r,attributesToRetrieve:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `getObject`.");if(!r)throw Error("Parameter `objectID` is required when calling `getObject`.");let o="/1/indexes/{indexName}/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),s={};return void 0!==t&&(s.attributesToRetrieve=t.toString()),n.request({method:"GET",path:o,queryParameters:s,headers:{}},a)},getObjects(e,r){if(!e)throw Error("Parameter `getObjectsParams` is required when calling `getObjects`.");if(!e.requests)throw Error("Parameter `getObjectsParams.requests` is required when calling `getObjects`.");return n.request({method:"POST",path:"/1/indexes/*/objects",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0},r)},getRule({indexName:e,objectID:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `getRule`.");if(!r)throw Error("Parameter `objectID` is required when calling `getRule`.");let a="/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r));return n.request({method:"GET",path:a,queryParameters:{},headers:{}},t)},getSettings({indexName:e},r){if(!e)throw Error("Parameter `indexName` is required when calling `getSettings`.");let t="/1/indexes/{indexName}/settings".replace("{indexName}",encodeURIComponent(e));return n.request({method:"GET",path:t,queryParameters:{},headers:{}},r)},getSources:e=>n.request({method:"GET",path:"/1/security/sources",queryParameters:{},headers:{}},e),getSynonym({indexName:e,objectID:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `getSynonym`.");if(!r)throw Error("Parameter `objectID` is required when calling `getSynonym`.");let a="/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r));return n.request({method:"GET",path:a,queryParameters:{},headers:{}},t)},getTask({indexName:e,taskID:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `getTask`.");if(!r)throw Error("Parameter `taskID` is required when calling `getTask`.");let a="/1/indexes/{indexName}/task/{taskID}".replace("{indexName}",encodeURIComponent(e)).replace("{taskID}",encodeURIComponent(r));return n.request({method:"GET",path:a,queryParameters:{},headers:{}},t)},getTopUserIds:e=>n.request({method:"GET",path:"/1/clusters/mapping/top",queryParameters:{},headers:{}},e),getUserId({userID:e},r){if(!e)throw Error("Parameter `userID` is required when calling `getUserId`.");let t="/1/clusters/mapping/{userID}".replace("{userID}",encodeURIComponent(e));return n.request({method:"GET",path:t,queryParameters:{},headers:{}},r)},hasPendingMappings({getClusters:e}={},r){let t={};return void 0!==e&&(t.getClusters=e.toString()),n.request({method:"GET",path:"/1/clusters/mapping/pending",queryParameters:t,headers:{}},r)},listApiKeys:e=>n.request({method:"GET",path:"/1/keys",queryParameters:{},headers:{}},e),listClusters:e=>n.request({method:"GET",path:"/1/clusters",queryParameters:{},headers:{}},e),listIndices({page:e,hitsPerPage:r}={},t){let a={};return void 0!==e&&(a.page=e.toString()),void 0!==r&&(a.hitsPerPage=r.toString()),n.request({method:"GET",path:"/1/indexes",queryParameters:a,headers:{}},t)},listUserIds({page:e,hitsPerPage:r}={},t){let a={};return void 0!==e&&(a.page=e.toString()),void 0!==r&&(a.hitsPerPage=r.toString()),n.request({method:"GET",path:"/1/clusters/mapping",queryParameters:a,headers:{}},t)},multipleBatch(e,r){if(!e)throw Error("Parameter `batchParams` is required when calling `multipleBatch`.");if(!e.requests)throw Error("Parameter `batchParams.requests` is required when calling `multipleBatch`.");return n.request({method:"POST",path:"/1/indexes/*/batch",queryParameters:{},headers:{},data:e},r)},operationIndex({indexName:e,operationIndexParams:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `operationIndex`.");if(!r)throw Error("Parameter `operationIndexParams` is required when calling `operationIndex`.");if(!r.operation)throw Error("Parameter `operationIndexParams.operation` is required when calling `operationIndex`.");if(!r.destination)throw Error("Parameter `operationIndexParams.destination` is required when calling `operationIndex`.");let a="/1/indexes/{indexName}/operation".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r},t)},partialUpdateObject({indexName:e,objectID:r,attributesToUpdate:t,createIfNotExists:a},o){if(!e)throw Error("Parameter `indexName` is required when calling `partialUpdateObject`.");if(!r)throw Error("Parameter `objectID` is required when calling `partialUpdateObject`.");if(!t)throw Error("Parameter `attributesToUpdate` is required when calling `partialUpdateObject`.");let s="/1/indexes/{indexName}/{objectID}/partial".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),l={};return void 0!==a&&(l.createIfNotExists=a.toString()),n.request({method:"POST",path:s,queryParameters:l,headers:{},data:t},o)},removeUserId({userID:e},r){if(!e)throw Error("Parameter `userID` is required when calling `removeUserId`.");let t="/1/clusters/mapping/{userID}".replace("{userID}",encodeURIComponent(e));return n.request({method:"DELETE",path:t,queryParameters:{},headers:{}},r)},replaceSources({source:e},r){if(!e)throw Error("Parameter `source` is required when calling `replaceSources`.");return n.request({method:"PUT",path:"/1/security/sources",queryParameters:{},headers:{},data:e},r)},restoreApiKey({key:e},r){if(!e)throw Error("Parameter `key` is required when calling `restoreApiKey`.");let t="/1/keys/{key}/restore".replace("{key}",encodeURIComponent(e));return n.request({method:"POST",path:t,queryParameters:{},headers:{}},r)},saveObject({indexName:e,body:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `saveObject`.");if(!r)throw Error("Parameter `body` is required when calling `saveObject`.");let a="/1/indexes/{indexName}".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r},t)},saveRule({indexName:e,objectID:r,rule:t,forwardToReplicas:a},o){if(!e)throw Error("Parameter `indexName` is required when calling `saveRule`.");if(!r)throw Error("Parameter `objectID` is required when calling `saveRule`.");if(!t)throw Error("Parameter `rule` is required when calling `saveRule`.");if(!t.objectID)throw Error("Parameter `rule.objectID` is required when calling `saveRule`.");let s="/1/indexes/{indexName}/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),l={};return void 0!==a&&(l.forwardToReplicas=a.toString()),n.request({method:"PUT",path:s,queryParameters:l,headers:{},data:t},o)},saveRules({indexName:e,rules:r,forwardToReplicas:t,clearExistingRules:a},o){if(!e)throw Error("Parameter `indexName` is required when calling `saveRules`.");if(!r)throw Error("Parameter `rules` is required when calling `saveRules`.");let s="/1/indexes/{indexName}/rules/batch".replace("{indexName}",encodeURIComponent(e)),l={};return void 0!==t&&(l.forwardToReplicas=t.toString()),void 0!==a&&(l.clearExistingRules=a.toString()),n.request({method:"POST",path:s,queryParameters:l,headers:{},data:r},o)},saveSynonym({indexName:e,objectID:r,synonymHit:t,forwardToReplicas:a},o){if(!e)throw Error("Parameter `indexName` is required when calling `saveSynonym`.");if(!r)throw Error("Parameter `objectID` is required when calling `saveSynonym`.");if(!t)throw Error("Parameter `synonymHit` is required when calling `saveSynonym`.");if(!t.objectID)throw Error("Parameter `synonymHit.objectID` is required when calling `saveSynonym`.");if(!t.type)throw Error("Parameter `synonymHit.type` is required when calling `saveSynonym`.");let s="/1/indexes/{indexName}/synonyms/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{objectID}",encodeURIComponent(r)),l={};return void 0!==a&&(l.forwardToReplicas=a.toString()),n.request({method:"PUT",path:s,queryParameters:l,headers:{},data:t},o)},saveSynonyms({indexName:e,synonymHit:r,forwardToReplicas:t,replaceExistingSynonyms:a},o){if(!e)throw Error("Parameter `indexName` is required when calling `saveSynonyms`.");if(!r)throw Error("Parameter `synonymHit` is required when calling `saveSynonyms`.");let s="/1/indexes/{indexName}/synonyms/batch".replace("{indexName}",encodeURIComponent(e)),l={};return void 0!==t&&(l.forwardToReplicas=t.toString()),void 0!==a&&(l.replaceExistingSynonyms=a.toString()),n.request({method:"POST",path:s,queryParameters:l,headers:{},data:r},o)},search(e,r){if(e&&Array.isArray(e)){let r={requests:e.map(({params:e,...r})=>"facet"===r.type?{...r,...e,type:"facet"}:{...r,...e,facet:void 0,maxFacetHits:void 0,facetQuery:void 0})};e=r}if(!e)throw Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw Error("Parameter `searchMethodParams.requests` is required when calling `search`.");let t={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return n.request(t,r)},searchDictionaryEntries({dictionaryName:e,searchDictionaryEntriesParams:r},t){if(!e)throw Error("Parameter `dictionaryName` is required when calling `searchDictionaryEntries`.");if(!r)throw Error("Parameter `searchDictionaryEntriesParams` is required when calling `searchDictionaryEntries`.");if(!r.query)throw Error("Parameter `searchDictionaryEntriesParams.query` is required when calling `searchDictionaryEntries`.");let a="/1/dictionaries/{dictionaryName}/search".replace("{dictionaryName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r,useReadTransporter:!0,cacheable:!0},t)},searchForFacetValues({indexName:e,facetName:r,searchForFacetValuesRequest:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `searchForFacetValues`.");if(!r)throw Error("Parameter `facetName` is required when calling `searchForFacetValues`.");let o="/1/indexes/{indexName}/facets/{facetName}/query".replace("{indexName}",encodeURIComponent(e)).replace("{facetName}",encodeURIComponent(r));return n.request({method:"POST",path:o,queryParameters:{},headers:{},data:t||{},useReadTransporter:!0,cacheable:!0},a)},searchRules({indexName:e,searchRulesParams:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `searchRules`.");let a="/1/indexes/{indexName}/rules/search".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0},t)},searchSingleIndex({indexName:e,searchParams:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `searchSingleIndex`.");let a="/1/indexes/{indexName}/query".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0},t)},searchSynonyms({indexName:e,searchSynonymsParams:r},t){if(!e)throw Error("Parameter `indexName` is required when calling `searchSynonyms`.");let a="/1/indexes/{indexName}/synonyms/search".replace("{indexName}",encodeURIComponent(e));return n.request({method:"POST",path:a,queryParameters:{},headers:{},data:r||{},useReadTransporter:!0,cacheable:!0},t)},searchUserIds(e,r){if(!e)throw Error("Parameter `searchUserIdsParams` is required when calling `searchUserIds`.");if(!e.query)throw Error("Parameter `searchUserIdsParams.query` is required when calling `searchUserIds`.");return n.request({method:"POST",path:"/1/clusters/mapping/search",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0},r)},setDictionarySettings(e,r){if(!e)throw Error("Parameter `dictionarySettingsParams` is required when calling `setDictionarySettings`.");if(!e.disableStandardEntries)throw Error("Parameter `dictionarySettingsParams.disableStandardEntries` is required when calling `setDictionarySettings`.");return n.request({method:"PUT",path:"/1/dictionaries/*/settings",queryParameters:{},headers:{},data:e},r)},setSettings({indexName:e,indexSettings:r,forwardToReplicas:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `setSettings`.");if(!r)throw Error("Parameter `indexSettings` is required when calling `setSettings`.");let o="/1/indexes/{indexName}/settings".replace("{indexName}",encodeURIComponent(e)),s={};return void 0!==t&&(s.forwardToReplicas=t.toString()),n.request({method:"PUT",path:o,queryParameters:s,headers:{},data:r},a)},updateApiKey({key:e,apiKey:r},t){if(!e)throw Error("Parameter `key` is required when calling `updateApiKey`.");if(!r)throw Error("Parameter `apiKey` is required when calling `updateApiKey`.");if(!r.acl)throw Error("Parameter `apiKey.acl` is required when calling `updateApiKey`.");let a="/1/keys/{key}".replace("{key}",encodeURIComponent(e));return n.request({method:"PUT",path:a,queryParameters:{},headers:{},data:r},t)}}}({appId:e,apiKey:r,timeouts:{connect:1e3,read:2e3,write:3e4},logger:createNullLogger(),requester:m(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:createMemoryCache(),requestsCache:createMemoryCache({serializable:!1}),hostsCache:createFallbackableCache({caches:[createBrowserLocalStorageCache({key:`${S}-${e}`}),createMemoryCache()]}),...t})}var b="5.8.1";function recommendClient(e,r,t){if(!e||"string"!=typeof e)throw Error("`appId` is missing.");if(!r||"string"!=typeof r)throw Error("`apiKey` is missing.");return function({appId:e,apiKey:r,authMode:t,algoliaAgents:a,...o}){let s=createAuth(e,r,t),n=createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${e}.algolia.net`,accept:"write",protocol:"https"}].concat(shuffle([{url:`${e}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-3.algolianet.com`,accept:"readWrite",protocol:"https"}])),...o,algoliaAgent:getAlgoliaAgent({algoliaAgents:a,client:"Recommend",version:b}),baseHeaders:{"content-type":"text/plain",...s.headers(),...o.baseHeaders},baseQueryParameters:{...s.queryParameters(),...o.baseQueryParameters}});return{transporter:n,appId:e,clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>void 0),get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(e,r){n.algoliaAgent.add({segment:e,version:r})},setClientApiKey({apiKey:e}){t&&"WithinHeaders"!==t?n.baseQueryParameters["x-algolia-api-key"]=e:n.baseHeaders["x-algolia-api-key"]=e},batchRecommendRules({indexName:e,model:r,recommendRule:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `batchRecommendRules`.");if(!r)throw Error("Parameter `model` is required when calling `batchRecommendRules`.");let o="/1/indexes/{indexName}/{model}/recommend/rules/batch".replace("{indexName}",encodeURIComponent(e)).replace("{model}",encodeURIComponent(r));return n.request({method:"POST",path:o,queryParameters:{},headers:{},data:t||{}},a)},customDelete({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customDelete`.");let a="/{path}".replace("{path}",e);return n.request({method:"DELETE",path:a,queryParameters:r||{},headers:{}},t)},customGet({path:e,parameters:r},t){if(!e)throw Error("Parameter `path` is required when calling `customGet`.");let a="/{path}".replace("{path}",e);return n.request({method:"GET",path:a,queryParameters:r||{},headers:{}},t)},customPost({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPost`.");let o="/{path}".replace("{path}",e);return n.request({method:"POST",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},customPut({path:e,parameters:r,body:t},a){if(!e)throw Error("Parameter `path` is required when calling `customPut`.");let o="/{path}".replace("{path}",e);return n.request({method:"PUT",path:o,queryParameters:r||{},headers:{},data:t||{}},a)},deleteRecommendRule({indexName:e,model:r,objectID:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `deleteRecommendRule`.");if(!r)throw Error("Parameter `model` is required when calling `deleteRecommendRule`.");if(!t)throw Error("Parameter `objectID` is required when calling `deleteRecommendRule`.");let o="/1/indexes/{indexName}/{model}/recommend/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{model}",encodeURIComponent(r)).replace("{objectID}",encodeURIComponent(t));return n.request({method:"DELETE",path:o,queryParameters:{},headers:{}},a)},getRecommendRule({indexName:e,model:r,objectID:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `getRecommendRule`.");if(!r)throw Error("Parameter `model` is required when calling `getRecommendRule`.");if(!t)throw Error("Parameter `objectID` is required when calling `getRecommendRule`.");let o="/1/indexes/{indexName}/{model}/recommend/rules/{objectID}".replace("{indexName}",encodeURIComponent(e)).replace("{model}",encodeURIComponent(r)).replace("{objectID}",encodeURIComponent(t));return n.request({method:"GET",path:o,queryParameters:{},headers:{}},a)},getRecommendStatus({indexName:e,model:r,taskID:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `getRecommendStatus`.");if(!r)throw Error("Parameter `model` is required when calling `getRecommendStatus`.");if(!t)throw Error("Parameter `taskID` is required when calling `getRecommendStatus`.");let o="/1/indexes/{indexName}/{model}/task/{taskID}".replace("{indexName}",encodeURIComponent(e)).replace("{model}",encodeURIComponent(r)).replace("{taskID}",encodeURIComponent(t));return n.request({method:"GET",path:o,queryParameters:{},headers:{}},a)},getRecommendations(e,r){if(e&&Array.isArray(e)){let r={requests:e};e=r}if(!e)throw Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!e.requests)throw Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");let t={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return n.request(t,r)},searchRecommendRules({indexName:e,model:r,searchRecommendRulesParams:t},a){if(!e)throw Error("Parameter `indexName` is required when calling `searchRecommendRules`.");if(!r)throw Error("Parameter `model` is required when calling `searchRecommendRules`.");let o="/1/indexes/{indexName}/{model}/recommend/rules/search".replace("{indexName}",encodeURIComponent(e)).replace("{model}",encodeURIComponent(r));return n.request({method:"POST",path:o,queryParameters:{},headers:{},data:t||{},useReadTransporter:!0,cacheable:!0},a)}}}({appId:e,apiKey:r,timeouts:{connect:1e3,read:2e3,write:3e4},logger:createNullLogger(),requester:m(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:createMemoryCache(),requestsCache:createMemoryCache({serializable:!1}),hostsCache:createFallbackableCache({caches:[createBrowserLocalStorageCache({key:`${b}-${e}`}),createMemoryCache()]}),...t})}var v=Object.defineProperty,x=Object.getOwnPropertyDescriptor,T=Object.getOwnPropertyNames,I=Object.prototype.hasOwnProperty,__export=(e,r)=>{for(var t in r)v(e,t,{get:r[t],enumerable:!0})},__copyProps=(e,r,t,a)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let o of T(r))I.call(e,o)||o===t||v(e,o,{get:()=>r[o],enumerable:!(a=x(r,o))||a.enumerable});return e},__reExport=(e,r,t)=>(__copyProps(e,r,"default"),t&&__copyProps(t,r,"default")),R={};__export(R,{algoliasearch:()=>algoliasearch,apiClientVersion:()=>S});var C={};function algoliasearch(e,r,t){if(!e||"string"!=typeof e)throw Error("`appId` is missing.");if(!r||"string"!=typeof r)throw Error("`apiKey` is missing.");let a=searchClient(e,r,t);return{...a,get _ua(){return a.transporter.algoliaAgent.value},initRecommend:(t={})=>recommendClient(t.appId||e,t.apiKey||r,t.options),initAnalytics:(t={})=>analyticsClient(t.appId||e,t.apiKey||r,t.region,t.options),initAbtesting:(t={})=>abtestingClient(t.appId||e,t.apiKey||r,t.region,t.options),initPersonalization:t=>personalizationClient(t.appId||e,t.apiKey||r,t.region,t.options)}}__export(C,{apiClientVersion:()=>S}),__reExport(C,a),__reExport(C,o),__reExport(C,s),__reExport(C,n),__reExport(C,l),__reExport(R,C)}}]);