algoliasearch 4.25.3 → 4.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,15 @@
1
+ function yieldToMain() {
2
+ // eslint-disable-next-line no-undef
3
+ const g = typeof globalThis !== 'undefined' ? globalThis : undefined;
4
+ if (g && g.scheduler && g.scheduler.yield) {
5
+ return g.scheduler.yield().catch((error) => {
6
+ // eslint-disable-next-line no-console
7
+ console.error('Failed to yield to main: ', error);
8
+ return new Promise(resolve => setTimeout(resolve, 0));
9
+ });
10
+ }
11
+ return new Promise(resolve => setTimeout(resolve, 0));
12
+ }
1
13
  function createBrowserLocalStorageCache(options) {
2
14
  const namespaceKey = `algoliasearch-client-js-${options.key}`;
3
15
  // eslint-disable-next-line functional/no-let
@@ -14,42 +26,38 @@ function createBrowserLocalStorageCache(options) {
14
26
  const setNamespace = (namespace) => {
15
27
  getStorage().setItem(namespaceKey, JSON.stringify(namespace));
16
28
  };
17
- const removeOutdatedCacheItems = () => {
29
+ const getFilteredNamespace = () => {
18
30
  const timeToLive = options.timeToLive ? options.timeToLive * 1000 : null;
19
31
  const namespace = getNamespace();
20
- const filteredNamespaceWithoutOldFormattedCacheItems = Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {
21
- return cacheItem.timestamp !== undefined;
22
- }));
23
- setNamespace(filteredNamespaceWithoutOldFormattedCacheItems);
24
- if (!timeToLive)
25
- return;
26
- const filteredNamespaceWithoutExpiredItems = Object.fromEntries(Object.entries(filteredNamespaceWithoutOldFormattedCacheItems).filter(([, cacheItem]) => {
27
- const currentTimestamp = new Date().getTime();
28
- const isExpired = cacheItem.timestamp + timeToLive < currentTimestamp;
29
- return !isExpired;
32
+ const currentTime = new Date().getTime();
33
+ return Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {
34
+ if (!cacheItem || cacheItem.timestamp === undefined) {
35
+ return false;
36
+ }
37
+ if (!timeToLive) {
38
+ return true;
39
+ }
40
+ return cacheItem.timestamp + timeToLive >= currentTime;
30
41
  }));
31
- setNamespace(filteredNamespaceWithoutExpiredItems);
32
42
  };
33
43
  return {
34
44
  get(key, defaultValue, events = {
35
45
  miss: () => Promise.resolve(),
36
46
  }) {
37
- return Promise.resolve()
38
- .then(() => {
39
- removeOutdatedCacheItems();
47
+ return yieldToMain().then(() => {
48
+ const namespace = getFilteredNamespace();
40
49
  const keyAsString = JSON.stringify(key);
41
- return getNamespace()[keyAsString];
42
- })
43
- .then(value => {
44
- return Promise.all([value ? value.value : defaultValue(), value !== undefined]);
45
- })
46
- .then(([value, exists]) => {
47
- return Promise.all([value, exists || events.miss(value)]);
48
- })
49
- .then(([value]) => value);
50
+ const cachedItem = namespace[keyAsString];
51
+ setNamespace(namespace);
52
+ if (cachedItem) {
53
+ return cachedItem.value;
54
+ }
55
+ // eslint-disable-next-line promise/no-nesting
56
+ return defaultValue().then((value) => events.miss(value).then(() => value));
57
+ });
50
58
  },
51
59
  set(key, value) {
52
- return Promise.resolve().then(() => {
60
+ return yieldToMain().then(() => {
53
61
  const namespace = getNamespace();
54
62
  // eslint-disable-next-line functional/immutable-data
55
63
  namespace[JSON.stringify(key)] = {
@@ -61,7 +69,7 @@ function createBrowserLocalStorageCache(options) {
61
69
  });
62
70
  },
63
71
  delete(key) {
64
- return Promise.resolve().then(() => {
72
+ return yieldToMain().then(() => {
65
73
  const namespace = getNamespace();
66
74
  // eslint-disable-next-line functional/immutable-data
67
75
  delete namespace[JSON.stringify(key)];
@@ -206,7 +214,7 @@ function encode(format, ...args) {
206
214
  return format.replace(/%s/g, () => encodeURIComponent(args[i++]));
207
215
  }
208
216
 
209
- const version = '4.25.3';
217
+ const version = '4.26.0';
210
218
 
211
219
  const AuthMode = {
212
220
  /**
@@ -1,2 +1,2 @@
1
- /*! algoliasearch-lite.umd.js | 4.25.3 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).algoliasearch=t()}(this,(function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?t(Object(o),!0).forEach((function(t){e(r,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var u,i=e[Symbol.iterator]();!(n=(u=i.next()).done)&&(r.push(u.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(o)throw a}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function u(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},a=function(){return JSON.parse(n().getItem(r)||"{}")},u=function(e){n().setItem(r,JSON.stringify(e))},i=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=a(),n=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==o(e,2)[1].timestamp})));if(u(n),t){var i=Object.fromEntries(Object.entries(n).filter((function(e){var r=o(e,2)[1],n=(new Date).getTime();return!(r.timestamp+t<n)})));u(i)}};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){i();var t=JSON.stringify(e);return a()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=o(e,2),n=t[0],a=t[1];return Promise.all([n,a||r.miss(n)])})).then((function(e){return o(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var o=a();return o[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(o)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=a();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function i(e){var t=a(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=t();return n.then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return o(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,o).catch((function(){return i({caches:t}).get(e,n,o)}))},set:function(e,n){return r.set(e,n).catch((function(){return i({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return i({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return i({caches:t}).clear()}))}}}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var u=n(),i=o&&o.miss||function(){return Promise.resolve()};return u.then((function(e){return i(e)})).then((function(){return u}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function c(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function l(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var o=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[o++])}))}var h={WithinQueryParameters:0,WithinHeaders:1};function m(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function b(e){return"string"==typeof e?{protocol:"https",url:e,accept:d.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||d.Any}}var O="GET",P="POST";function q(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),o=[].concat(a(r),a(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:o.length>0?o.map((function(e){return b(e)})):t}}))}function j(e,t,n,o){var u=[],i=function(e,t){if(e.method===O||void 0===e.data&&void 0===t.data)return;var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}(n,o),s=function(e,t){var n=r(r({},e.headers),t.headers),o={};return Object.keys(n).forEach((function(e){var t=n[e];o[e.toLowerCase()]=t})),o}(e,o),c=n.method,l=n.method!==O?{}:r(r({},n.data),o.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),l),o.queryParameters),h=0,m=function t(r,a){var l=r.pop();if(void 0===l)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:A(u)};var m={data:i,headers:s,method:c,url:S(l,n.path,f),connectTimeout:a(h,e.timeouts.connect),responseTimeout:a(h,o.timeout)},d=function(e){var t={request:m,response:e,host:l,triesLeft:r.length};return u.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var o=d(n);return n.isTimedOut&&h++,Promise.all([e.logger.info("Retryable failure",x(o)),e.hostsCache.set(l,y(l,n.isTimedOut?g:v))]).then((function(){return t(r,a)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,o=r;try{o=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(o,n,t)}(e,A(u))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return q(e.hostsCache,t).then((function(e){return m(a(e.statelessHosts).reverse(),e.getTimeout)}))}function w(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function S(e,t,r){var n=T(r),o="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(o+="?".concat(n)),o}function T(e){return Object.keys(e).map((function(t){return f("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function A(e){return e.map((function(e){return x(e)}))}function x(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var N=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===h.WithinHeaders?n:{}},queryParameters:function(){return e===h.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:h.WithinHeaders,t,e.apiKey),a=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,a=e.requestsCache,u=e.responsesCache,i=e.timeouts,s=e.userAgent,c=e.hosts,l=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:u,timeouts:i,userAgent:s,headers:e.headers,queryParameters:l,hosts:c.map((function(e){return b(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var a={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(a,(function(){return f.requestsCache.get(a,(function(){return f.requestsCache.set(a,n()).then((function(e){return Promise.all([f.requestsCache.delete(a),e])}),(function(e){return Promise.all([f.requestsCache.delete(a),Promise.reject(e)])})).then((function(e){var t=o(e,2);t[0];return t[1]}))}))}),{miss:function(e){return f.responsesCache.set(a,e)}})},write:function(e,t){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:d.Read},{url:"".concat(t,".algolia.net"),accept:d.Write}].concat(c([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return l({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)},C=function(e){return function(t,r){return t.method===O?e.transporter.read(t,r):e.transporter.write(t,r)}},E=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:e.transporter,appId:e.appId,indexName:t};return l(n,r.methods)}},J=function(e){return function(t,n){var o=t.map((function(e){return r(r({},e),{},{params:T(e.params||{})})}));return e.transporter.read({method:P,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},n)}},k=function(e){return function(t,o){return Promise.all(t.map((function(t){var a=t.params,u=a.facetName,i=a.facetQuery,s=n(a,["facetName","facetQuery"]);return E(e)(t.indexName,{methods:{searchForFacetValues:F}}).searchForFacetValues(u,i,r(r({},o),s))})))}},I=function(e){return function(t,r,n){return e.transporter.read({method:P,path:f("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},R=function(e){return function(t,r){return e.transporter.read({method:P,path:f("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},F=function(e){return function(t,r,n){return e.transporter.read({method:P,path:f("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,W=2,H=3;var Q=function(e){return function(t,n){var o=t.map((function(e){return r(r({},e),{},{threshold:e.threshold||0})}));return e.transporter.read({method:P,path:"1/indexes/*/recommendations",data:{requests:o},cacheable:!0},n)}};function L(e,t,n){var o,a={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,o=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},a=o(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(a),n=o(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(a),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(a),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(o=H,{debug:function(e,t){return D>=o&&console.debug(e,t),Promise.resolve()},info:function(e,t){return W>=o&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:i({caches:[u({key:"".concat("4.25.3","-").concat(e)}),s()]}),userAgent:w("4.25.3").add({segment:"Browser",version:"lite"}),authMode:h.WithinQueryParameters};return N(r(r(r({},a),n),{},{methods:{search:J,searchForFacetValues:k,multipleQueries:J,multipleSearchForFacetValues:k,customRequest:C,initIndex:function(e){return function(t){return E(e)(t,{methods:{search:R,searchForFacetValues:F,findAnswers:I}})}},getRecommendations:Q}}))}return L.version="4.25.3",L}));
1
+ /*! algoliasearch-lite.umd.js | 4.26.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).algoliasearch=t()}(this,(function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?t(Object(o),!0).forEach((function(t){e(r,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var u,i=e[Symbol.iterator]();!(n=(u=i.next()).done)&&(r.push(u.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(o)throw a}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function u(){var e="undefined"!=typeof globalThis?globalThis:void 0;return e&&e.scheduler&&e.scheduler.yield?e.scheduler.yield().catch((function(e){return console.error("Failed to yield to main: ",e),new Promise((function(e){return setTimeout(e,0)}))})):new Promise((function(e){return setTimeout(e,0)}))}function i(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},a=function(){return JSON.parse(n().getItem(r)||"{}")},i=function(e){n().setItem(r,JSON.stringify(e))},s=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=a(),n=(new Date).getTime();return Object.fromEntries(Object.entries(r).filter((function(e){var r=o(e,2)[1];return!(!r||void 0===r.timestamp)&&(!t||r.timestamp+t>=n)})))};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return u().then((function(){var n=s(),o=n[JSON.stringify(e)];return i(n),o?o.value:t().then((function(e){return r.miss(e).then((function(){return e}))}))}))},set:function(e,t){return u().then((function(){var o=a();return o[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(o)),t}))},delete:function(e){return u().then((function(){var t=a();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function s(e){var t=a(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=t();return n.then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return o(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,o).catch((function(){return s({caches:t}).get(e,n,o)}))},set:function(e,n){return r.set(e,n).catch((function(){return s({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return s({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return s({caches:t}).clear()}))}}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var u=n(),i=o&&o.miss||function(){return Promise.resolve()};return u.then((function(e){return i(e)})).then((function(){return u}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function l(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function f(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function h(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var o=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[o++])}))}var d={WithinQueryParameters:0,WithinHeaders:1};function m(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var p={Read:1,Write:2,Any:3},v=1,g=2,y=3;function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function O(e){return"string"==typeof e?{protocol:"https",url:e,accept:p.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||p.Any}}var P="GET",q="POST";function w(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(b(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===v||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===y&&Date.now()-e.lastUpdate<=12e4}(e)})),o=[].concat(a(r),a(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:o.length>0?o.map((function(e){return O(e)})):t}}))}function j(e,t,n,o){var u=[],i=function(e,t){if(e.method===P||void 0===e.data&&void 0===t.data)return;var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}(n,o),s=function(e,t){var n=r(r({},e.headers),t.headers),o={};return Object.keys(n).forEach((function(e){var t=n[e];o[e.toLowerCase()]=t})),o}(e,o),c=n.method,l=n.method!==P?{}:r(r({},n.data),o.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),l),o.queryParameters),h=0,d=function t(r,a){var l=r.pop();if(void 0===l)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:x(u)};var d={data:i,headers:s,method:c,url:T(l,n.path,f),connectTimeout:a(h,e.timeouts.connect),responseTimeout:a(h,o.timeout)},m=function(e){var t={request:d,response:e,host:l,triesLeft:r.length};return u.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var o=m(n);return n.isTimedOut&&h++,Promise.all([e.logger.info("Retryable failure",N(o)),e.hostsCache.set(l,b(l,n.isTimedOut?y:g))]).then((function(){return t(r,a)}))},onFail:function(e){throw m(e),function(e,t){var r=e.content,n=e.status,o=r;try{o=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(o,n,t)}(e,x(u))}};return e.requester.send(d).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return w(e.hostsCache,t).then((function(e){return d(a(e.statelessHosts).reverse(),e.getTimeout)}))}function S(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function T(e,t,r){var n=A(r),o="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(o+="?".concat(n)),o}function A(e){return Object.keys(e).map((function(t){return h("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function x(e){return e.map((function(e){return N(e)}))}function N(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var C=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===d.WithinHeaders?n:{}},queryParameters:function(){return e===d.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:d.WithinHeaders,t,e.apiKey),a=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,a=e.requestsCache,u=e.responsesCache,i=e.timeouts,s=e.userAgent,c=e.hosts,l=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:u,timeouts:i,userAgent:s,headers:e.headers,queryParameters:l,hosts:c.map((function(e){return O(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&p.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var a={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(a,(function(){return f.requestsCache.get(a,(function(){return f.requestsCache.set(a,n()).then((function(e){return Promise.all([f.requestsCache.delete(a),e])}),(function(e){return Promise.all([f.requestsCache.delete(a),Promise.reject(e)])})).then((function(e){var t=o(e,2);t[0];return t[1]}))}))}),{miss:function(e){return f.responsesCache.set(a,e)}})},write:function(e,t){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&p.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:p.Read},{url:"".concat(t,".algolia.net"),accept:p.Write}].concat(l([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return f({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)},J=function(e){return function(t,r){return t.method===P?e.transporter.read(t,r):e.transporter.write(t,r)}},k=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:e.transporter,appId:e.appId,indexName:t};return f(n,r.methods)}},E=function(e){return function(t,n){var o=t.map((function(e){return r(r({},e),{},{params:A(e.params||{})})}));return e.transporter.read({method:q,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},n)}},I=function(e){return function(t,o){return Promise.all(t.map((function(t){var a=t.params,u=a.facetName,i=a.facetQuery,s=n(a,["facetName","facetQuery"]);return k(e)(t.indexName,{methods:{searchForFacetValues:D}}).searchForFacetValues(u,i,r(r({},o),s))})))}},F=function(e){return function(t,r,n){return e.transporter.read({method:q,path:h("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},R=function(e){return function(t,r){return e.transporter.read({method:q,path:h("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},D=function(e){return function(t,r,n){return e.transporter.read({method:q,path:h("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},W=1,H=2,Q=3;var L=function(e){return function(t,n){var o=t.map((function(e){return r(r({},e),{},{threshold:e.threshold||0})}));return e.transporter.read({method:q,path:"1/indexes/*/recommendations",data:{requests:o},cacheable:!0},n)}};function M(e,t,n){var o,a={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,o=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},a=o(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(a),n=o(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(a),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(a),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(o=Q,{debug:function(e,t){return W>=o&&console.debug(e,t),Promise.resolve()},info:function(e,t){return H>=o&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:c(),requestsCache:c({serializable:!1}),hostsCache:s({caches:[i({key:"".concat("4.26.0","-").concat(e)}),c()]}),userAgent:S("4.26.0").add({segment:"Browser",version:"lite"}),authMode:d.WithinQueryParameters};return C(r(r(r({},a),n),{},{methods:{search:E,searchForFacetValues:I,multipleQueries:E,multipleSearchForFacetValues:I,customRequest:J,initIndex:function(e){return function(t){return k(e)(t,{methods:{search:R,searchForFacetValues:D,findAnswers:F}})}},getRecommendations:L}}))}return M.version="4.26.0",M}));
@@ -1,3 +1,15 @@
1
+ function yieldToMain() {
2
+ // eslint-disable-next-line no-undef
3
+ const g = typeof globalThis !== 'undefined' ? globalThis : undefined;
4
+ if (g && g.scheduler && g.scheduler.yield) {
5
+ return g.scheduler.yield().catch((error) => {
6
+ // eslint-disable-next-line no-console
7
+ console.error('Failed to yield to main: ', error);
8
+ return new Promise(resolve => setTimeout(resolve, 0));
9
+ });
10
+ }
11
+ return new Promise(resolve => setTimeout(resolve, 0));
12
+ }
1
13
  function createBrowserLocalStorageCache(options) {
2
14
  const namespaceKey = `algoliasearch-client-js-${options.key}`;
3
15
  // eslint-disable-next-line functional/no-let
@@ -14,42 +26,38 @@ function createBrowserLocalStorageCache(options) {
14
26
  const setNamespace = (namespace) => {
15
27
  getStorage().setItem(namespaceKey, JSON.stringify(namespace));
16
28
  };
17
- const removeOutdatedCacheItems = () => {
29
+ const getFilteredNamespace = () => {
18
30
  const timeToLive = options.timeToLive ? options.timeToLive * 1000 : null;
19
31
  const namespace = getNamespace();
20
- const filteredNamespaceWithoutOldFormattedCacheItems = Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {
21
- return cacheItem.timestamp !== undefined;
22
- }));
23
- setNamespace(filteredNamespaceWithoutOldFormattedCacheItems);
24
- if (!timeToLive)
25
- return;
26
- const filteredNamespaceWithoutExpiredItems = Object.fromEntries(Object.entries(filteredNamespaceWithoutOldFormattedCacheItems).filter(([, cacheItem]) => {
27
- const currentTimestamp = new Date().getTime();
28
- const isExpired = cacheItem.timestamp + timeToLive < currentTimestamp;
29
- return !isExpired;
32
+ const currentTime = new Date().getTime();
33
+ return Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {
34
+ if (!cacheItem || cacheItem.timestamp === undefined) {
35
+ return false;
36
+ }
37
+ if (!timeToLive) {
38
+ return true;
39
+ }
40
+ return cacheItem.timestamp + timeToLive >= currentTime;
30
41
  }));
31
- setNamespace(filteredNamespaceWithoutExpiredItems);
32
42
  };
33
43
  return {
34
44
  get(key, defaultValue, events = {
35
45
  miss: () => Promise.resolve(),
36
46
  }) {
37
- return Promise.resolve()
38
- .then(() => {
39
- removeOutdatedCacheItems();
47
+ return yieldToMain().then(() => {
48
+ const namespace = getFilteredNamespace();
40
49
  const keyAsString = JSON.stringify(key);
41
- return getNamespace()[keyAsString];
42
- })
43
- .then(value => {
44
- return Promise.all([value ? value.value : defaultValue(), value !== undefined]);
45
- })
46
- .then(([value, exists]) => {
47
- return Promise.all([value, exists || events.miss(value)]);
48
- })
49
- .then(([value]) => value);
50
+ const cachedItem = namespace[keyAsString];
51
+ setNamespace(namespace);
52
+ if (cachedItem) {
53
+ return cachedItem.value;
54
+ }
55
+ // eslint-disable-next-line promise/no-nesting
56
+ return defaultValue().then((value) => events.miss(value).then(() => value));
57
+ });
50
58
  },
51
59
  set(key, value) {
52
- return Promise.resolve().then(() => {
60
+ return yieldToMain().then(() => {
53
61
  const namespace = getNamespace();
54
62
  // eslint-disable-next-line functional/immutable-data
55
63
  namespace[JSON.stringify(key)] = {
@@ -61,7 +69,7 @@ function createBrowserLocalStorageCache(options) {
61
69
  });
62
70
  },
63
71
  delete(key) {
64
- return Promise.resolve().then(() => {
72
+ return yieldToMain().then(() => {
65
73
  const namespace = getNamespace();
66
74
  // eslint-disable-next-line functional/immutable-data
67
75
  delete namespace[JSON.stringify(key)];
@@ -232,7 +240,7 @@ function encode(format, ...args) {
232
240
  return format.replace(/%s/g, () => encodeURIComponent(args[i++]));
233
241
  }
234
242
 
235
- const version = '4.25.3';
243
+ const version = '4.26.0';
236
244
 
237
245
  const AuthMode = {
238
246
  /**
@@ -1,2 +1,2 @@
1
- /*! algoliasearch.umd.js | 4.25.3 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).algoliasearch=t()}(this,(function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?t(Object(a),!0).forEach((function(t){e(r,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(a)):t(Object(a)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(a,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==u.return||u.return()}finally{if(a)throw o}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function i(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},o=function(){return JSON.parse(n().getItem(r)||"{}")},i=function(e){n().setItem(r,JSON.stringify(e))},u=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=o(),n=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==a(e,2)[1].timestamp})));if(i(n),t){var u=Object.fromEntries(Object.entries(n).filter((function(e){var r=a(e,2)[1],n=(new Date).getTime();return!(r.timestamp+t<n)})));i(u)}};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){u();var t=JSON.stringify(e);return o()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=a(e,2),n=t[0],o=t[1];return Promise.all([n,o||r.miss(n)])})).then((function(e){return a(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var a=o();return a[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(a)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=o();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function u(e){var t=o(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=t();return n.then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return a(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,a).catch((function(){return u({caches:t}).get(e,n,a)}))},set:function(e,n){return r.set(e,n).catch((function(){return u({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return u({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return u({caches:t}).clear()}))}}}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(r);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);var i=n(),u=a&&a.miss||function(){return Promise.resolve()};return i.then((function(e){return u(e)})).then((function(){return i}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function c(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===m.WithinHeaders?n:{}},queryParameters:function(){return e===m.WithinQueryParameters?n:{}}}}function f(e){var t=0;return e((function r(){return t++,new Promise((function(n){setTimeout((function(){n(e(r))}),Math.min(100*t,1e3))}))}))}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e,t){return Promise.resolve()};return Object.assign(e,{wait:function(r){return d(e.then((function(e){return Promise.all([t(e,r),e])})).then((function(e){return e[1]})))}})}function l(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function h(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function p(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var a=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[a++])}))}var m={WithinQueryParameters:0,WithinHeaders:1};function g(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var y={Read:1,Write:2,Any:3},v=1,b=2,w=3;function P(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function O(e){return"string"==typeof e?{protocol:"https",url:e,accept:y.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||y.Any}}var I="DELETE",x="GET",j="POST",q="PUT";function D(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(P(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===v||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===w&&Date.now()-e.lastUpdate<=12e4}(e)})),a=[].concat(o(r),o(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:a.length>0?a.map((function(e){return O(e)})):t}}))}function T(e,t,n,a){var i=[],u=function(e,t){if(e.method===x||void 0===e.data&&void 0===t.data)return;var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}(n,a),s=function(e,t){var n=r(r({},e.headers),t.headers),a={};return Object.keys(n).forEach((function(e){var t=n[e];a[e.toLowerCase()]=t})),a}(e,a),c=n.method,f=n.method!==x?{}:r(r({},n.data),a.data),d=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),f),a.queryParameters),l=0,h=function t(r,o){var f=r.pop();if(void 0===f)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:A(i)};var h={data:u,headers:s,method:c,url:N(f,n.path,d),connectTimeout:o(l,e.timeouts.connect),responseTimeout:o(l,a.timeout)},p=function(e){var t={request:h,response:e,host:f,triesLeft:r.length};return i.push(t),t},m={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var a=p(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",R(a)),e.hostsCache.set(f,P(f,n.isTimedOut?w:b))]).then((function(){return t(r,o)}))},onFail:function(e){throw p(e),function(e,t){var r=e.content,n=e.status,a=r;try{a=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(a,n,t)}(e,A(i))}};return e.requester.send(h).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,m)}))};return D(e.hostsCache,t).then((function(e){return h(o(e.statelessHosts).reverse(),e.getTimeout)}))}function k(e){var t=e.hostsCache,r=e.logger,n=e.requester,o=e.requestsCache,i=e.responsesCache,u=e.timeouts,s=e.userAgent,c=e.hosts,f=e.queryParameters,d={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:u,userAgent:s,headers:e.headers,queryParameters:f,hosts:c.map((function(e){return O(e)})),read:function(e,t){var r=g(t,d.timeouts.read),n=function(){return T(d,d.hosts.filter((function(e){return 0!=(e.accept&y.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var o={request:e,mappedRequestOptions:r,transporter:{queryParameters:d.queryParameters,headers:d.headers}};return d.responsesCache.get(o,(function(){return d.requestsCache.get(o,(function(){return d.requestsCache.set(o,n()).then((function(e){return Promise.all([d.requestsCache.delete(o),e])}),(function(e){return Promise.all([d.requestsCache.delete(o),Promise.reject(e)])})).then((function(e){var t=a(e,2);t[0];return t[1]}))}))}),{miss:function(e){return d.responsesCache.set(o,e)}})},write:function(e,t){return T(d,d.hosts.filter((function(e){return 0!=(e.accept&y.Write)})),e,g(t,d.timeouts.write))}};return d}function S(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function N(e,t,r){var n=E(r),a="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(a+="?".concat(n)),a}function E(e){return Object.keys(e).map((function(t){return p("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function A(e){return e.map((function(e){return R(e)}))}function R(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var C=function(e){return function(t,r){return e.transporter.write({method:j,path:"2/abtests",data:t},r)}},U=function(e){return function(t,r){return e.transporter.write({method:I,path:p("2/abtests/%s",t)},r)}},z=function(e){return function(t,r){return e.transporter.read({method:x,path:p("2/abtests/%s",t)},r)}},J=function(e){return function(t){return e.transporter.read({method:x,path:"2/abtests"},t)}},F=function(e){return function(t,r){return e.transporter.write({method:j,path:p("2/abtests/%s/stop",t)},r)}},W=function(e){return function(t){return e.transporter.read({method:x,path:"1/strategies/personalization"},t)}},H=function(e){return function(t,r){return e.transporter.write({method:j,path:"1/strategies/personalization",data:t},r)}};function K(e){return function t(r){return e.request(r).then((function(n){if(void 0!==e.batch&&e.batch(n.hits),!e.shouldStop(n))return n.cursor?t({cursor:n.cursor}):t({page:(r.page||0)+1})}))}({})}var M=function(e){return function(t,a){var o=a||{},i=o.queryParameters,u=n(o,["queryParameters"]),s=r({acl:t},void 0!==i?{queryParameters:i}:{});return d(e.transporter.write({method:j,path:"1/keys",data:s},u),(function(t,r){return f((function(n){return ee(e)(t.key,r).catch((function(e){if(404!==e.status)throw e;return n()}))}))}))}},B=function(e){return function(t,r,n){var a=g(n);return a.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:j,path:"1/clusters/mapping",data:{cluster:r}},a)}},G=function(e){return function(t,r,n){return e.transporter.write({method:j,path:"1/clusters/mapping/batch",data:{users:t,cluster:r}},n)}},L=function(e){return function(t,r){return d(e.transporter.write({method:j,path:p("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(function(t,r){return je(e)(t.taskID,r)}))}},Q=function(e){return function(t,r,n){return d(e.transporter.write({method:j,path:p("1/indexes/%s/operation",t),data:{operation:"copy",destination:r}},n),(function(r,n){return ue(e)(t,{methods:{waitTask:dt}}).waitTask(r.taskID,n)}))}},V=function(e){return function(t,n,a){return Q(e)(t,n,r(r({},a),{},{scope:[ht.Rules]}))}},_=function(e){return function(t,n,a){return Q(e)(t,n,r(r({},a),{},{scope:[ht.Settings]}))}},X=function(e){return function(t,n,a){return Q(e)(t,n,r(r({},a),{},{scope:[ht.Synonyms]}))}},Y=function(e){return function(t,r){return t.method===x?e.transporter.read(t,r):e.transporter.write(t,r)}},Z=function(e){return function(t,r){return d(e.transporter.write({method:I,path:p("1/keys/%s",t)},r),(function(r,n){return f((function(r){return ee(e)(t,n).then(r).catch((function(e){if(404!==e.status)throw e}))}))}))}},$=function(e){return function(t,r,n){var a=r.map((function(e){return{action:"deleteEntry",body:{objectID:e}}}));return d(e.transporter.write({method:j,path:p("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(t,r){return je(e)(t.taskID,r)}))}},ee=function(e){return function(t,r){return e.transporter.read({method:x,path:p("1/keys/%s",t)},r)}},te=function(e){return function(t,r){return e.transporter.read({method:x,path:p("1/task/%s",t.toString())},r)}},re=function(e){return function(t){return e.transporter.read({method:x,path:"/1/dictionaries/*/settings"},t)}},ne=function(e){return function(t){return e.transporter.read({method:x,path:"1/logs"},t)}},ae=function(e){return function(t){return e.transporter.read({method:x,path:"1/clusters/mapping/top"},t)}},oe=function(e){return function(t,r){return e.transporter.read({method:x,path:p("1/clusters/mapping/%s",t)},r)}},ie=function(e){return function(t){var r=t||{},a=r.retrieveMappings,o=n(r,["retrieveMappings"]);return!0===a&&(o.getClusters=!0),e.transporter.read({method:x,path:"1/clusters/mapping/pending"},o)}},ue=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:e.transporter,appId:e.appId,indexName:t};return h(n,r.methods)}},se=function(e){return function(t){return e.transporter.read({method:x,path:"1/keys"},t)}},ce=function(e){return function(t){return e.transporter.read({method:x,path:"1/clusters"},t)}},fe=function(e){return function(t){return e.transporter.read({method:x,path:"1/indexes"},t)}},de=function(e){return function(t){return e.transporter.read({method:x,path:"1/clusters/mapping"},t)}},le=function(e){return function(t,r,n){return d(e.transporter.write({method:j,path:p("1/indexes/%s/operation",t),data:{operation:"move",destination:r}},n),(function(r,n){return ue(e)(t,{methods:{waitTask:dt}}).waitTask(r.taskID,n)}))}},he=function(e){return function(t,r){return d(e.transporter.write({method:j,path:"1/indexes/*/batch",data:{requests:t}},r),(function(t,r){return Promise.all(Object.keys(t.taskID).map((function(n){return ue(e)(n,{methods:{waitTask:dt}}).waitTask(t.taskID[n],r)})))}))}},pe=function(e){return function(t,r){return e.transporter.read({method:j,path:"1/indexes/*/objects",data:{requests:t}},r)}},me=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{params:E(e.params||{})})}));return e.transporter.read({method:j,path:"1/indexes/*/queries",data:{requests:a},cacheable:!0},n)}},ge=function(e){return function(t,a){return Promise.all(t.map((function(t){var o=t.params,i=o.facetName,u=o.facetQuery,s=n(o,["facetName","facetQuery"]);return ue(e)(t.indexName,{methods:{searchForFacetValues:ut}}).searchForFacetValues(i,u,r(r({},a),s))})))}},ye=function(e){return function(t,r){var n=g(r);return n.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:I,path:"1/clusters/mapping"},n)}},ve=function(e){return function(t,r,n){var a=r.map((function(e){return{action:"addEntry",body:e}}));return d(e.transporter.write({method:j,path:p("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(function(t,r){return je(e)(t.taskID,r)}))}},be=function(e){return function(t,r){return d(e.transporter.write({method:j,path:p("1/keys/%s/restore",t)},r),(function(r,n){return f((function(r){return ee(e)(t,n).catch((function(e){if(404!==e.status)throw e;return r()}))}))}))}},we=function(e){return function(t,r,n){var a=r.map((function(e){return{action:"addEntry",body:e}}));return d(e.transporter.write({method:j,path:p("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(t,r){return je(e)(t.taskID,r)}))}},Pe=function(e){return function(t,r,n){return e.transporter.read({method:j,path:p("/1/dictionaries/%s/search",t),data:{query:r},cacheable:!0},n)}},Oe=function(e){return function(t,r){return e.transporter.read({method:j,path:"1/clusters/mapping/search",data:{query:t}},r)}},Ie=function(e){return function(t,r){return d(e.transporter.write({method:q,path:"/1/dictionaries/*/settings",data:t},r),(function(t,r){return je(e)(t.taskID,r)}))}},xe=function(e){return function(t,r){var a=Object.assign({},r),o=r||{},i=o.queryParameters,u=n(o,["queryParameters"]),s=i?{queryParameters:i}:{},c=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return d(e.transporter.write({method:q,path:p("1/keys/%s",t),data:s},u),(function(r,n){return f((function(r){return ee(e)(t,n).then((function(e){return function(e){return Object.keys(a).filter((function(e){return-1!==c.indexOf(e)})).every((function(t){if(Array.isArray(e[t])&&Array.isArray(a[t])){var r=e[t];return r.length===a[t].length&&r.every((function(e,r){return e===a[t][r]}))}return e[t]===a[t]}))}(e)?Promise.resolve():r()}))}))}))}},je=function(e){return function(t,r){return f((function(n){return te(e)(t,r).then((function(e){return"published"!==e.status?n():void 0}))}))}},qe=function(e){return function(t,r){return d(e.transporter.write({method:j,path:p("1/indexes/%s/batch",e.indexName),data:{requests:t}},r),(function(t,r){return dt(e)(t.taskID,r)}))}},De=function(e){return function(t){return K(r(r({shouldStop:function(e){return void 0===e.cursor}},t),{},{request:function(r){return e.transporter.read({method:j,path:p("1/indexes/%s/browse",e.indexName),data:r},t)}}))}},Te=function(e){return function(t){var n=r({hitsPerPage:1e3},t);return K(r(r({shouldStop:function(e){return e.hits.length<n.hitsPerPage}},n),{},{request:function(t){return st(e)("",r(r({},n),t)).then((function(e){return r(r({},e),{},{hits:e.hits.map((function(e){return delete e._highlightResult,e}))})}))}}))}},ke=function(e){return function(t){var n=r({hitsPerPage:1e3},t);return K(r(r({shouldStop:function(e){return e.hits.length<n.hitsPerPage}},n),{},{request:function(t){return ct(e)("",r(r({},n),t)).then((function(e){return r(r({},e),{},{hits:e.hits.map((function(e){return delete e._highlightResult,e}))})}))}}))}},Se=function(e){return function(t,r,a){var o=a||{},i=o.batchSize,u=n(o,["batchSize"]),s={taskIDs:[],objectIDs:[]};return d(function n(){var a,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,c=[];for(a=o;a<t.length&&(c.push(t[a]),c.length!==(i||1e3));a++);return 0===c.length?Promise.resolve(s):qe(e)(c.map((function(e){return{action:r,body:e}})),u).then((function(e){return s.objectIDs=s.objectIDs.concat(e.objectIDs),s.taskIDs.push(e.taskID),a++,n(a)}))}(),(function(t,r){return Promise.all(t.taskIDs.map((function(t){return dt(e)(t,r)})))}))}},Ne=function(e){return function(t){return d(e.transporter.write({method:j,path:p("1/indexes/%s/clear",e.indexName)},t),(function(t,r){return dt(e)(t.taskID,r)}))}},Ee=function(e){return function(t){var r=t||{},a=r.forwardToReplicas,o=g(n(r,["forwardToReplicas"]));return a&&(o.queryParameters.forwardToReplicas=1),d(e.transporter.write({method:j,path:p("1/indexes/%s/rules/clear",e.indexName)},o),(function(t,r){return dt(e)(t.taskID,r)}))}},Ae=function(e){return function(t){var r=t||{},a=r.forwardToReplicas,o=g(n(r,["forwardToReplicas"]));return a&&(o.queryParameters.forwardToReplicas=1),d(e.transporter.write({method:j,path:p("1/indexes/%s/synonyms/clear",e.indexName)},o),(function(t,r){return dt(e)(t.taskID,r)}))}},Re=function(e){return function(t,r){return d(e.transporter.write({method:j,path:p("1/indexes/%s/deleteByQuery",e.indexName),data:t},r),(function(t,r){return dt(e)(t.taskID,r)}))}},Ce=function(e){return function(t){return d(e.transporter.write({method:I,path:p("1/indexes/%s",e.indexName)},t),(function(t,r){return dt(e)(t.taskID,r)}))}},Ue=function(e){return function(t,r){return d(ze(e)([t],r).then((function(e){return{taskID:e.taskIDs[0]}})),(function(t,r){return dt(e)(t.taskID,r)}))}},ze=function(e){return function(t,r){var n=t.map((function(e){return{objectID:e}}));return Se(e)(n,lt.DeleteObject,r)}},Je=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=g(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(e.transporter.write({method:I,path:p("1/indexes/%s/rules/%s",e.indexName,t)},i),(function(t,r){return dt(e)(t.taskID,r)}))}},Fe=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=g(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(e.transporter.write({method:I,path:p("1/indexes/%s/synonyms/%s",e.indexName,t)},i),(function(t,r){return dt(e)(t.taskID,r)}))}},We=function(e){return function(t){return Qe(e)(t).then((function(){return!0})).catch((function(e){if(404!==e.status)throw e;return!1}))}},He=function(e){return function(t,r,n){return e.transporter.read({method:j,path:p("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},Ke=function(e){return function(t,o){var i=o||{},u=i.query,s=i.paginate,c=n(i,["query","paginate"]),f=0;return function n(){return it(e)(u||"",r(r({},c),{},{page:f})).then((function(e){for(var r=0,o=Object.entries(e.hits);r<o.length;r++){var i=a(o[r],2),u=i[0],c=i[1];if(t(c))return{object:c,position:parseInt(u,10),page:f}}if(f++,!1===s||f>=e.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return n()}))}()}},Me=function(e){return function(t,r){return e.transporter.read({method:x,path:p("1/indexes/%s/%s",e.indexName,t)},r)}},Be=function(){return function(e,t){for(var r=0,n=Object.entries(e.hits);r<n.length;r++){var o=a(n[r],2),i=o[0];if(o[1].objectID===t)return parseInt(i,10)}return-1}},Ge=function(e){return function(t,a){var o=a||{},i=o.attributesToRetrieve,u=n(o,["attributesToRetrieve"]),s=t.map((function(t){return r({indexName:e.indexName,objectID:t},i?{attributesToRetrieve:i}:{})}));return e.transporter.read({method:j,path:"1/indexes/*/objects",data:{requests:s}},u)}},Le=function(e){return function(t,r){return e.transporter.read({method:x,path:p("1/indexes/%s/rules/%s",e.indexName,t)},r)}},Qe=function(e){return function(t){return e.transporter.read({method:x,path:p("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t)}},Ve=function(e){return function(t,r){return e.transporter.read({method:x,path:p("1/indexes/%s/synonyms/%s",e.indexName,t)},r)}},_e=function(e){return function(t,r){return d(Xe(e)([t],r).then((function(e){return{objectID:e.objectIDs[0],taskID:e.taskIDs[0]}})),(function(t,r){return dt(e)(t.taskID,r)}))}},Xe=function(e){return function(t,r){var a=r||{},o=a.createIfNotExists,i=n(a,["createIfNotExists"]),u=o?lt.PartialUpdateObject:lt.PartialUpdateObjectNoCreate;return Se(e)(t,u,i)}},Ye=function(e){return function(t,i){var u=i||{},s=u.safe,c=u.autoGenerateObjectIDIfNotExist,f=u.batchSize,l=n(u,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),h=function(t,r,n,a){return d(e.transporter.write({method:j,path:p("1/indexes/%s/operation",t),data:{operation:n,destination:r}},a),(function(t,r){return dt(e)(t.taskID,r)}))},m=Math.random().toString(36).substring(7),g="".concat(e.indexName,"_tmp_").concat(m),y=tt({appId:e.appId,transporter:e.transporter,indexName:g}),v=[],b=h(e.indexName,g,"copy",r(r({},l),{},{scope:["settings","synonyms","rules"]}));return v.push(b),d((s?b.wait(l):b).then((function(){var e=y(t,r(r({},l),{},{autoGenerateObjectIDIfNotExist:c,batchSize:f}));return v.push(e),s?e.wait(l):e})).then((function(){var t=h(g,e.indexName,"move",l);return v.push(t),s?t.wait(l):t})).then((function(){return Promise.all(v)})).then((function(e){var t=a(e,3),r=t[0],n=t[1],i=t[2];return{objectIDs:n.objectIDs,taskIDs:[r.taskID].concat(o(n.taskIDs),[i.taskID])}})).catch((function(t){return Ce({appId:e.appId,transporter:e.transporter,indexName:g})().catch((function(){})).then((function(){throw t}))})),(function(e,t){return Promise.all(v.map((function(e){return e.wait(t)})))}))}},Ze=function(e){return function(t,n){return nt(e)(t,r(r({},n),{},{clearExistingRules:!0}))}},$e=function(e){return function(t,n){return ot(e)(t,r(r({},n),{},{clearExistingSynonyms:!0}))}},et=function(e){return function(t,r){return d(tt(e)([t],r).then((function(e){return{objectID:e.objectIDs[0],taskID:e.taskIDs[0]}})),(function(t,r){return dt(e)(t.taskID,r)}))}},tt=function(e){return function(t,r){var a=r||{},o=a.autoGenerateObjectIDIfNotExist,i=n(a,["autoGenerateObjectIDIfNotExist"]),u=o?lt.AddObject:lt.UpdateObject;if(u===lt.UpdateObject){var s=!0,c=!1,f=void 0;try{for(var l,h=t[Symbol.iterator]();!(s=(l=h.next()).done);s=!0){if(void 0===l.value.objectID)return d(Promise.reject({name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}))}}catch(e){c=!0,f=e}finally{try{s||null==h.return||h.return()}finally{if(c)throw f}}}return Se(e)(t,u,i)}},rt=function(e){return function(t,r){return nt(e)([t],r)}},nt=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=a.clearExistingRules,u=g(n(a,["forwardToReplicas","clearExistingRules"]));return o&&(u.queryParameters.forwardToReplicas=1),i&&(u.queryParameters.clearExistingRules=1),d(e.transporter.write({method:j,path:p("1/indexes/%s/rules/batch",e.indexName),data:t},u),(function(t,r){return dt(e)(t.taskID,r)}))}},at=function(e){return function(t,r){return ot(e)([t],r)}},ot=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=a.clearExistingSynonyms,u=a.replaceExistingSynonyms,s=g(n(a,["forwardToReplicas","clearExistingSynonyms","replaceExistingSynonyms"]));return o&&(s.queryParameters.forwardToReplicas=1),(u||i)&&(s.queryParameters.replaceExistingSynonyms=1),d(e.transporter.write({method:j,path:p("1/indexes/%s/synonyms/batch",e.indexName),data:t},s),(function(t,r){return dt(e)(t.taskID,r)}))}},it=function(e){return function(t,r){return e.transporter.read({method:j,path:p("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},ut=function(e){return function(t,r,n){return e.transporter.read({method:j,path:p("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},st=function(e){return function(t,r){return e.transporter.read({method:j,path:p("1/indexes/%s/rules/search",e.indexName),data:{query:t}},r)}},ct=function(e){return function(t,r){return e.transporter.read({method:j,path:p("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},r)}},ft=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=g(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),d(e.transporter.write({method:q,path:p("1/indexes/%s/settings",e.indexName),data:t},i),(function(t,r){return dt(e)(t.taskID,r)}))}},dt=function(e){return function(t,r){return f((function(n){return function(e){return function(t,r){return e.transporter.read({method:x,path:p("1/indexes/%s/task/%s",e.indexName,t.toString())},r)}}(e)(t,r).then((function(e){return"published"!==e.status?n():void 0}))}))}},lt={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},ht={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},pt=1,mt=2,gt=3;var yt=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{threshold:e.threshold||0})}));return e.transporter.read({method:j,path:"1/indexes/*/recommendations",data:{requests:a},cacheable:!0},n)}},vt=function(e){return function(t,n){return yt(e)(t.map((function(e){return r(r({},e),{},{fallbackParameters:{},model:"bought-together"})})),n)}},bt=function(e){return function(t,n){return yt(e)(t.map((function(e){return r(r({},e),{},{model:"related-products"})})),n)}},wt=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{model:"trending-facets",threshold:e.threshold||0})}));return e.transporter.read({method:j,path:"1/indexes/*/recommendations",data:{requests:a},cacheable:!0},n)}},Pt=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{model:"trending-items",threshold:e.threshold||0})}));return e.transporter.read({method:j,path:"1/indexes/*/recommendations",data:{requests:a},cacheable:!0},n)}},Ot=function(e){return function(t,n){return yt(e)(t.map((function(e){return r(r({},e),{},{model:"looking-similar"})})),n)}},It=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{model:"recommended-for-you",threshold:e.threshold||0})}));return e.transporter.read({method:j,path:"1/indexes/*/recommendations",data:{requests:a},cacheable:!0},n)}};function xt(e,t){return function(r,a){if(!t)throw qt("`options.transformation.region` must be provided at client instantiation before calling this method.");var o=a||{},i=o.autoGenerateObjectIDIfNotExist,u=o.watch,s=n(o,["autoGenerateObjectIDIfNotExist","watch"]),c=i?lt.AddObject:lt.UpdateObject;return t.push({indexName:e,pushTaskPayload:{action:c,records:r},watch:u},s)}}function jt(e,t){return function(r,a){if(!t)throw qt("`options.transformation.region` must be provided at client instantiation before calling this method.");var o=a||{},i=o.createIfNotExists,u=o.watch,s=n(o,["createIfNotExists","watch"]),c=i?lt.PartialUpdateObject:lt.PartialUpdateObjectNoCreate;return t.push({indexName:e,pushTaskPayload:{action:c,records:r},watch:u},s)}}function qt(e){return{name:"TransformationConfigurationError",message:e}}function Dt(e,t,n){var a,o,f={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,a=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},o=a(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(o),n=a(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(o),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(o),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(a=gt,{debug:function(e,t){return pt>=a&&console.debug(e,t),Promise.resolve()},info:function(e,t){return mt>=a&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:u({caches:[i({key:"".concat("4.25.3","-").concat(e)}),s()]}),userAgent:S("4.25.3").add({segment:"Browser"})},d=r(r({},f),n),g=function(){return function(e){return function(e){var t=e.region||"us",n=c(m.WithinHeaders,e.appId,e.apiKey),a=k(r(r({hosts:[{url:"personalization.".concat(t,".algolia.com")}]},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/json"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({appId:e.appId,transporter:a},e.methods)}(r(r(r({},f),e),{},{methods:{getPersonalizationStrategy:W,setPersonalizationStrategy:H}}))}};if(n&&n.transformation){if(!n.transformation.region)throw qt("`region` must be provided when leveraging the transformation pipeline");o=function(e){if(!e||!e.transformation||!e.transformation.region)throw qt("`region` must be provided when leveraging the transformation pipeline");if("eu"!==e.transformation.region&&"us"!==e.transformation.region)throw qt("`region` is required and must be one of the following: eu, us");var t=e.appId,n=c(m.WithinHeaders,t,e.apiKey),a=k(r(r({hosts:[{url:"data.".concat(e.transformation.region,".algolia.com"),accept:y.ReadWrite,protocol:"https"}]},e),{},{headers:r(r(r({},n.headers()),{"content-type":"text/plain"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return{transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t}),a.userAgent.add({segment:"Ingestion",version:t}),a.userAgent.add({segment:"Ingestion via Algoliasearch"})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))},push:function(e,t){var n=e.indexName,o=e.pushTaskPayload,i=e.watch;if(!n)throw qt("Parameter `indexName` is required when calling `push`.");if(!o)throw qt("Parameter `pushTaskPayload` is required when calling `push`.");if(!o.action)throw qt("Parameter `pushTaskPayload.action` is required when calling `push`.");if(!o.records)throw qt("Parameter `pushTaskPayload.records` is required when calling `push`.");var u=t||{queryParameters:{}};return a.write({method:j,path:p("1/push/%s",n),data:o},r(r({},u),{},{queryParameters:r(r({},u.queryParameters),{},{watch:void 0!==i})}))}}}(r(r({},n),f))}return function(e){var t=e.appId,n=c(void 0!==e.authMode?e.authMode:m.WithinHeaders,t,e.apiKey),a=k(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:y.Read},{url:"".concat(t,".algolia.net"),accept:y.Write}].concat(l([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)}(r(r({},d),{},{methods:{search:me,searchForFacetValues:ge,multipleBatch:he,multipleGetObjects:pe,multipleQueries:me,copyIndex:Q,copySettings:_,copySynonyms:X,copyRules:V,moveIndex:le,listIndices:fe,getLogs:ne,listClusters:ce,multipleSearchForFacetValues:ge,getApiKey:ee,addApiKey:M,listApiKeys:se,updateApiKey:xe,deleteApiKey:Z,restoreApiKey:be,assignUserID:B,assignUserIDs:G,getUserID:oe,searchUserIDs:Oe,listUserIDs:de,getTopUserIDs:ae,removeUserID:ye,hasPendingMappings:ie,clearDictionaryEntries:L,deleteDictionaryEntries:$,getDictionarySettings:re,getAppTask:te,replaceDictionaryEntries:ve,saveDictionaryEntries:we,searchDictionaryEntries:Pe,setDictionarySettings:Ie,waitAppTask:je,customRequest:Y,initIndex:function(e){return function(t){return r(r({},ue(e)(t,{methods:{batch:qe,delete:Ce,findAnswers:He,getObject:Me,getObjects:Ge,saveObject:et,saveObjects:tt,search:it,searchForFacetValues:ut,waitTask:dt,setSettings:ft,getSettings:Qe,partialUpdateObject:_e,partialUpdateObjects:Xe,deleteObject:Ue,deleteObjects:ze,deleteBy:Re,clearObjects:Ne,browseObjects:De,getObjectPosition:Be,findObject:Ke,exists:We,saveSynonym:at,saveSynonyms:ot,getSynonym:Ve,searchSynonyms:ct,browseSynonyms:ke,deleteSynonym:Fe,clearSynonyms:Ae,replaceAllObjects:Ye,replaceAllSynonyms:$e,searchRules:st,getRule:Le,deleteRule:Je,saveRule:rt,saveRules:nt,replaceAllRules:Ze,browseRules:Te,clearRules:Ee}})),{},{saveObjectsWithTransformation:xt(t,o),partialUpdateObjectsWithTransformation:jt(t,o)})}},initAnalytics:function(){return function(e){return function(e){var t=e.region||"us",n=c(m.WithinHeaders,e.appId,e.apiKey),a=k(r(r({hosts:[{url:"analytics.".concat(t,".algolia.com")}]},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/json"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({appId:e.appId,transporter:a},e.methods)}(r(r(r({},f),e),{},{methods:{addABTest:C,getABTest:z,getABTests:J,stopABTest:F,deleteABTest:U}}))}},initPersonalization:g,initRecommendation:function(){return function(e){return d.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),g()(e)}},getRecommendations:yt,getFrequentlyBoughtTogether:vt,getLookingSimilar:Ot,getRecommendedForYou:It,getRelatedProducts:bt,getTrendingFacets:wt,getTrendingItems:Pt}}))}return Dt.version="4.25.3",Dt}));
1
+ /*! algoliasearch.umd.js | 4.26.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).algoliasearch=t()}(this,(function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?t(Object(a),!0).forEach((function(t){e(r,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(a)):t(Object(a)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(a,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==u.return||u.return()}finally{if(a)throw o}}return r}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function i(){var e="undefined"!=typeof globalThis?globalThis:void 0;return e&&e.scheduler&&e.scheduler.yield?e.scheduler.yield().catch((function(e){return console.error("Failed to yield to main: ",e),new Promise((function(e){return setTimeout(e,0)}))})):new Promise((function(e){return setTimeout(e,0)}))}function u(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},o=function(){return JSON.parse(n().getItem(r)||"{}")},u=function(e){n().setItem(r,JSON.stringify(e))},s=function(){var t=e.timeToLive?1e3*e.timeToLive:null,r=o(),n=(new Date).getTime();return Object.fromEntries(Object.entries(r).filter((function(e){var r=a(e,2)[1];return!(!r||void 0===r.timestamp)&&(!t||r.timestamp+t>=n)})))};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return i().then((function(){var n=s(),a=n[JSON.stringify(e)];return u(n),a?a.value:t().then((function(e){return r.miss(e).then((function(){return e}))}))}))},set:function(e,t){return i().then((function(){var a=o();return a[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(a)),t}))},delete:function(e){return i().then((function(){var t=o();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function s(e){var t=o(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=t();return n.then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return a(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,a).catch((function(){return s({caches:t}).get(e,n,a)}))},set:function(e,n){return r.set(e,n).catch((function(){return s({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return s({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return s({caches:t}).clear()}))}}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(r);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);var i=n(),u=a&&a.miss||function(){return Promise.resolve()};return i.then((function(e){return u(e)})).then((function(){return i}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function f(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===g.WithinHeaders?n:{}},queryParameters:function(){return e===g.WithinQueryParameters?n:{}}}}function d(e){var t=0;return e((function r(){return t++,new Promise((function(n){setTimeout((function(){n(e(r))}),Math.min(100*t,1e3))}))}))}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e,t){return Promise.resolve()};return Object.assign(e,{wait:function(r){return l(e.then((function(e){return Promise.all([t(e,r),e])})).then((function(e){return e[1]})))}})}function h(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function p(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function m(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var a=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[a++])}))}var g={WithinQueryParameters:0,WithinHeaders:1};function y(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var v={Read:1,Write:2,Any:3},b=1,w=2,P=3;function I(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function O(e){return"string"==typeof e?{protocol:"https",url:e,accept:v.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||v.Any}}var x="DELETE",j="GET",q="POST",D="PUT";function T(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(I(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===b||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===P&&Date.now()-e.lastUpdate<=12e4}(e)})),a=[].concat(o(r),o(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:a.length>0?a.map((function(e){return O(e)})):t}}))}function k(e,t,n,a){var i=[],u=function(e,t){if(e.method===j||void 0===e.data&&void 0===t.data)return;var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}(n,a),s=function(e,t){var n=r(r({},e.headers),t.headers),a={};return Object.keys(n).forEach((function(e){var t=n[e];a[e.toLowerCase()]=t})),a}(e,a),c=n.method,f=n.method!==j?{}:r(r({},n.data),a.data),d=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),f),a.queryParameters),l=0,h=function t(r,o){var f=r.pop();if(void 0===f)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:R(i)};var h={data:u,headers:s,method:c,url:A(f,n.path,d),connectTimeout:o(l,e.timeouts.connect),responseTimeout:o(l,a.timeout)},p=function(e){var t={request:h,response:e,host:f,triesLeft:r.length};return i.push(t),t},m={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var a=p(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",C(a)),e.hostsCache.set(f,I(f,n.isTimedOut?P:w))]).then((function(){return t(r,o)}))},onFail:function(e){throw p(e),function(e,t){var r=e.content,n=e.status,a=r;try{a=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(a,n,t)}(e,R(i))}};return e.requester.send(h).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,m)}))};return T(e.hostsCache,t).then((function(e){return h(o(e.statelessHosts).reverse(),e.getTimeout)}))}function S(e){var t=e.hostsCache,r=e.logger,n=e.requester,o=e.requestsCache,i=e.responsesCache,u=e.timeouts,s=e.userAgent,c=e.hosts,f=e.queryParameters,d={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:u,userAgent:s,headers:e.headers,queryParameters:f,hosts:c.map((function(e){return O(e)})),read:function(e,t){var r=y(t,d.timeouts.read),n=function(){return k(d,d.hosts.filter((function(e){return 0!=(e.accept&v.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var o={request:e,mappedRequestOptions:r,transporter:{queryParameters:d.queryParameters,headers:d.headers}};return d.responsesCache.get(o,(function(){return d.requestsCache.get(o,(function(){return d.requestsCache.set(o,n()).then((function(e){return Promise.all([d.requestsCache.delete(o),e])}),(function(e){return Promise.all([d.requestsCache.delete(o),Promise.reject(e)])})).then((function(e){var t=a(e,2);t[0];return t[1]}))}))}),{miss:function(e){return d.responsesCache.set(o,e)}})},write:function(e,t){return k(d,d.hosts.filter((function(e){return 0!=(e.accept&v.Write)})),e,y(t,d.timeouts.write))}};return d}function N(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function A(e,t,r){var n=E(r),a="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(a+="?".concat(n)),a}function E(e){return Object.keys(e).map((function(t){return m("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function R(e){return e.map((function(e){return C(e)}))}function C(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var U=function(e){return function(t,r){return e.transporter.write({method:q,path:"2/abtests",data:t},r)}},z=function(e){return function(t,r){return e.transporter.write({method:x,path:m("2/abtests/%s",t)},r)}},F=function(e){return function(t,r){return e.transporter.read({method:j,path:m("2/abtests/%s",t)},r)}},J=function(e){return function(t){return e.transporter.read({method:j,path:"2/abtests"},t)}},W=function(e){return function(t,r){return e.transporter.write({method:q,path:m("2/abtests/%s/stop",t)},r)}},H=function(e){return function(t){return e.transporter.read({method:j,path:"1/strategies/personalization"},t)}},K=function(e){return function(t,r){return e.transporter.write({method:q,path:"1/strategies/personalization",data:t},r)}};function M(e){return function t(r){return e.request(r).then((function(n){if(void 0!==e.batch&&e.batch(n.hits),!e.shouldStop(n))return n.cursor?t({cursor:n.cursor}):t({page:(r.page||0)+1})}))}({})}var B=function(e){return function(t,a){var o=a||{},i=o.queryParameters,u=n(o,["queryParameters"]),s=r({acl:t},void 0!==i?{queryParameters:i}:{});return l(e.transporter.write({method:q,path:"1/keys",data:s},u),(function(t,r){return d((function(n){return te(e)(t.key,r).catch((function(e){if(404!==e.status)throw e;return n()}))}))}))}},G=function(e){return function(t,r,n){var a=y(n);return a.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:q,path:"1/clusters/mapping",data:{cluster:r}},a)}},L=function(e){return function(t,r,n){return e.transporter.write({method:q,path:"1/clusters/mapping/batch",data:{users:t,cluster:r}},n)}},Q=function(e){return function(t,r){return l(e.transporter.write({method:q,path:m("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(function(t,r){return qe(e)(t.taskID,r)}))}},V=function(e){return function(t,r,n){return l(e.transporter.write({method:q,path:m("1/indexes/%s/operation",t),data:{operation:"copy",destination:r}},n),(function(r,n){return se(e)(t,{methods:{waitTask:lt}}).waitTask(r.taskID,n)}))}},_=function(e){return function(t,n,a){return V(e)(t,n,r(r({},a),{},{scope:[pt.Rules]}))}},X=function(e){return function(t,n,a){return V(e)(t,n,r(r({},a),{},{scope:[pt.Settings]}))}},Y=function(e){return function(t,n,a){return V(e)(t,n,r(r({},a),{},{scope:[pt.Synonyms]}))}},Z=function(e){return function(t,r){return t.method===j?e.transporter.read(t,r):e.transporter.write(t,r)}},$=function(e){return function(t,r){return l(e.transporter.write({method:x,path:m("1/keys/%s",t)},r),(function(r,n){return d((function(r){return te(e)(t,n).then(r).catch((function(e){if(404!==e.status)throw e}))}))}))}},ee=function(e){return function(t,r,n){var a=r.map((function(e){return{action:"deleteEntry",body:{objectID:e}}}));return l(e.transporter.write({method:q,path:m("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(t,r){return qe(e)(t.taskID,r)}))}},te=function(e){return function(t,r){return e.transporter.read({method:j,path:m("1/keys/%s",t)},r)}},re=function(e){return function(t,r){return e.transporter.read({method:j,path:m("1/task/%s",t.toString())},r)}},ne=function(e){return function(t){return e.transporter.read({method:j,path:"/1/dictionaries/*/settings"},t)}},ae=function(e){return function(t){return e.transporter.read({method:j,path:"1/logs"},t)}},oe=function(e){return function(t){return e.transporter.read({method:j,path:"1/clusters/mapping/top"},t)}},ie=function(e){return function(t,r){return e.transporter.read({method:j,path:m("1/clusters/mapping/%s",t)},r)}},ue=function(e){return function(t){var r=t||{},a=r.retrieveMappings,o=n(r,["retrieveMappings"]);return!0===a&&(o.getClusters=!0),e.transporter.read({method:j,path:"1/clusters/mapping/pending"},o)}},se=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:e.transporter,appId:e.appId,indexName:t};return p(n,r.methods)}},ce=function(e){return function(t){return e.transporter.read({method:j,path:"1/keys"},t)}},fe=function(e){return function(t){return e.transporter.read({method:j,path:"1/clusters"},t)}},de=function(e){return function(t){return e.transporter.read({method:j,path:"1/indexes"},t)}},le=function(e){return function(t){return e.transporter.read({method:j,path:"1/clusters/mapping"},t)}},he=function(e){return function(t,r,n){return l(e.transporter.write({method:q,path:m("1/indexes/%s/operation",t),data:{operation:"move",destination:r}},n),(function(r,n){return se(e)(t,{methods:{waitTask:lt}}).waitTask(r.taskID,n)}))}},pe=function(e){return function(t,r){return l(e.transporter.write({method:q,path:"1/indexes/*/batch",data:{requests:t}},r),(function(t,r){return Promise.all(Object.keys(t.taskID).map((function(n){return se(e)(n,{methods:{waitTask:lt}}).waitTask(t.taskID[n],r)})))}))}},me=function(e){return function(t,r){return e.transporter.read({method:q,path:"1/indexes/*/objects",data:{requests:t}},r)}},ge=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{params:E(e.params||{})})}));return e.transporter.read({method:q,path:"1/indexes/*/queries",data:{requests:a},cacheable:!0},n)}},ye=function(e){return function(t,a){return Promise.all(t.map((function(t){var o=t.params,i=o.facetName,u=o.facetQuery,s=n(o,["facetName","facetQuery"]);return se(e)(t.indexName,{methods:{searchForFacetValues:st}}).searchForFacetValues(i,u,r(r({},a),s))})))}},ve=function(e){return function(t,r){var n=y(r);return n.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:x,path:"1/clusters/mapping"},n)}},be=function(e){return function(t,r,n){var a=r.map((function(e){return{action:"addEntry",body:e}}));return l(e.transporter.write({method:q,path:m("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(function(t,r){return qe(e)(t.taskID,r)}))}},we=function(e){return function(t,r){return l(e.transporter.write({method:q,path:m("1/keys/%s/restore",t)},r),(function(r,n){return d((function(r){return te(e)(t,n).catch((function(e){if(404!==e.status)throw e;return r()}))}))}))}},Pe=function(e){return function(t,r,n){var a=r.map((function(e){return{action:"addEntry",body:e}}));return l(e.transporter.write({method:q,path:m("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(t,r){return qe(e)(t.taskID,r)}))}},Ie=function(e){return function(t,r,n){return e.transporter.read({method:q,path:m("/1/dictionaries/%s/search",t),data:{query:r},cacheable:!0},n)}},Oe=function(e){return function(t,r){return e.transporter.read({method:q,path:"1/clusters/mapping/search",data:{query:t}},r)}},xe=function(e){return function(t,r){return l(e.transporter.write({method:D,path:"/1/dictionaries/*/settings",data:t},r),(function(t,r){return qe(e)(t.taskID,r)}))}},je=function(e){return function(t,r){var a=Object.assign({},r),o=r||{},i=o.queryParameters,u=n(o,["queryParameters"]),s=i?{queryParameters:i}:{},c=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"];return l(e.transporter.write({method:D,path:m("1/keys/%s",t),data:s},u),(function(r,n){return d((function(r){return te(e)(t,n).then((function(e){return function(e){return Object.keys(a).filter((function(e){return-1!==c.indexOf(e)})).every((function(t){if(Array.isArray(e[t])&&Array.isArray(a[t])){var r=e[t];return r.length===a[t].length&&r.every((function(e,r){return e===a[t][r]}))}return e[t]===a[t]}))}(e)?Promise.resolve():r()}))}))}))}},qe=function(e){return function(t,r){return d((function(n){return re(e)(t,r).then((function(e){return"published"!==e.status?n():void 0}))}))}},De=function(e){return function(t,r){return l(e.transporter.write({method:q,path:m("1/indexes/%s/batch",e.indexName),data:{requests:t}},r),(function(t,r){return lt(e)(t.taskID,r)}))}},Te=function(e){return function(t){return M(r(r({shouldStop:function(e){return void 0===e.cursor}},t),{},{request:function(r){return e.transporter.read({method:q,path:m("1/indexes/%s/browse",e.indexName),data:r},t)}}))}},ke=function(e){return function(t){var n=r({hitsPerPage:1e3},t);return M(r(r({shouldStop:function(e){return e.hits.length<n.hitsPerPage}},n),{},{request:function(t){return ct(e)("",r(r({},n),t)).then((function(e){return r(r({},e),{},{hits:e.hits.map((function(e){return delete e._highlightResult,e}))})}))}}))}},Se=function(e){return function(t){var n=r({hitsPerPage:1e3},t);return M(r(r({shouldStop:function(e){return e.hits.length<n.hitsPerPage}},n),{},{request:function(t){return ft(e)("",r(r({},n),t)).then((function(e){return r(r({},e),{},{hits:e.hits.map((function(e){return delete e._highlightResult,e}))})}))}}))}},Ne=function(e){return function(t,r,a){var o=a||{},i=o.batchSize,u=n(o,["batchSize"]),s={taskIDs:[],objectIDs:[]};return l(function n(){var a,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,c=[];for(a=o;a<t.length&&(c.push(t[a]),c.length!==(i||1e3));a++);return 0===c.length?Promise.resolve(s):De(e)(c.map((function(e){return{action:r,body:e}})),u).then((function(e){return s.objectIDs=s.objectIDs.concat(e.objectIDs),s.taskIDs.push(e.taskID),a++,n(a)}))}(),(function(t,r){return Promise.all(t.taskIDs.map((function(t){return lt(e)(t,r)})))}))}},Ae=function(e){return function(t){return l(e.transporter.write({method:q,path:m("1/indexes/%s/clear",e.indexName)},t),(function(t,r){return lt(e)(t.taskID,r)}))}},Ee=function(e){return function(t){var r=t||{},a=r.forwardToReplicas,o=y(n(r,["forwardToReplicas"]));return a&&(o.queryParameters.forwardToReplicas=1),l(e.transporter.write({method:q,path:m("1/indexes/%s/rules/clear",e.indexName)},o),(function(t,r){return lt(e)(t.taskID,r)}))}},Re=function(e){return function(t){var r=t||{},a=r.forwardToReplicas,o=y(n(r,["forwardToReplicas"]));return a&&(o.queryParameters.forwardToReplicas=1),l(e.transporter.write({method:q,path:m("1/indexes/%s/synonyms/clear",e.indexName)},o),(function(t,r){return lt(e)(t.taskID,r)}))}},Ce=function(e){return function(t,r){return l(e.transporter.write({method:q,path:m("1/indexes/%s/deleteByQuery",e.indexName),data:t},r),(function(t,r){return lt(e)(t.taskID,r)}))}},Ue=function(e){return function(t){return l(e.transporter.write({method:x,path:m("1/indexes/%s",e.indexName)},t),(function(t,r){return lt(e)(t.taskID,r)}))}},ze=function(e){return function(t,r){return l(Fe(e)([t],r).then((function(e){return{taskID:e.taskIDs[0]}})),(function(t,r){return lt(e)(t.taskID,r)}))}},Fe=function(e){return function(t,r){var n=t.map((function(e){return{objectID:e}}));return Ne(e)(n,ht.DeleteObject,r)}},Je=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),l(e.transporter.write({method:x,path:m("1/indexes/%s/rules/%s",e.indexName,t)},i),(function(t,r){return lt(e)(t.taskID,r)}))}},We=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),l(e.transporter.write({method:x,path:m("1/indexes/%s/synonyms/%s",e.indexName,t)},i),(function(t,r){return lt(e)(t.taskID,r)}))}},He=function(e){return function(t){return Ve(e)(t).then((function(){return!0})).catch((function(e){if(404!==e.status)throw e;return!1}))}},Ke=function(e){return function(t,r,n){return e.transporter.read({method:q,path:m("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},Me=function(e){return function(t,o){var i=o||{},u=i.query,s=i.paginate,c=n(i,["query","paginate"]),f=0;return function n(){return ut(e)(u||"",r(r({},c),{},{page:f})).then((function(e){for(var r=0,o=Object.entries(e.hits);r<o.length;r++){var i=a(o[r],2),u=i[0],c=i[1];if(t(c))return{object:c,position:parseInt(u,10),page:f}}if(f++,!1===s||f>=e.nbPages)throw{name:"ObjectNotFoundError",message:"Object not found."};return n()}))}()}},Be=function(e){return function(t,r){return e.transporter.read({method:j,path:m("1/indexes/%s/%s",e.indexName,t)},r)}},Ge=function(){return function(e,t){for(var r=0,n=Object.entries(e.hits);r<n.length;r++){var o=a(n[r],2),i=o[0];if(o[1].objectID===t)return parseInt(i,10)}return-1}},Le=function(e){return function(t,a){var o=a||{},i=o.attributesToRetrieve,u=n(o,["attributesToRetrieve"]),s=t.map((function(t){return r({indexName:e.indexName,objectID:t},i?{attributesToRetrieve:i}:{})}));return e.transporter.read({method:q,path:"1/indexes/*/objects",data:{requests:s}},u)}},Qe=function(e){return function(t,r){return e.transporter.read({method:j,path:m("1/indexes/%s/rules/%s",e.indexName,t)},r)}},Ve=function(e){return function(t){return e.transporter.read({method:j,path:m("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t)}},_e=function(e){return function(t,r){return e.transporter.read({method:j,path:m("1/indexes/%s/synonyms/%s",e.indexName,t)},r)}},Xe=function(e){return function(t,r){return l(Ye(e)([t],r).then((function(e){return{objectID:e.objectIDs[0],taskID:e.taskIDs[0]}})),(function(t,r){return lt(e)(t.taskID,r)}))}},Ye=function(e){return function(t,r){var a=r||{},o=a.createIfNotExists,i=n(a,["createIfNotExists"]),u=o?ht.PartialUpdateObject:ht.PartialUpdateObjectNoCreate;return Ne(e)(t,u,i)}},Ze=function(e){return function(t,i){var u=i||{},s=u.safe,c=u.autoGenerateObjectIDIfNotExist,f=u.batchSize,d=n(u,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),h=function(t,r,n,a){return l(e.transporter.write({method:q,path:m("1/indexes/%s/operation",t),data:{operation:n,destination:r}},a),(function(t,r){return lt(e)(t.taskID,r)}))},p=Math.random().toString(36).substring(7),g="".concat(e.indexName,"_tmp_").concat(p),y=rt({appId:e.appId,transporter:e.transporter,indexName:g}),v=[],b=h(e.indexName,g,"copy",r(r({},d),{},{scope:["settings","synonyms","rules"]}));return v.push(b),l((s?b.wait(d):b).then((function(){var e=y(t,r(r({},d),{},{autoGenerateObjectIDIfNotExist:c,batchSize:f}));return v.push(e),s?e.wait(d):e})).then((function(){var t=h(g,e.indexName,"move",d);return v.push(t),s?t.wait(d):t})).then((function(){return Promise.all(v)})).then((function(e){var t=a(e,3),r=t[0],n=t[1],i=t[2];return{objectIDs:n.objectIDs,taskIDs:[r.taskID].concat(o(n.taskIDs),[i.taskID])}})).catch((function(t){return Ue({appId:e.appId,transporter:e.transporter,indexName:g})().catch((function(){})).then((function(){throw t}))})),(function(e,t){return Promise.all(v.map((function(e){return e.wait(t)})))}))}},$e=function(e){return function(t,n){return at(e)(t,r(r({},n),{},{clearExistingRules:!0}))}},et=function(e){return function(t,n){return it(e)(t,r(r({},n),{},{clearExistingSynonyms:!0}))}},tt=function(e){return function(t,r){return l(rt(e)([t],r).then((function(e){return{objectID:e.objectIDs[0],taskID:e.taskIDs[0]}})),(function(t,r){return lt(e)(t.taskID,r)}))}},rt=function(e){return function(t,r){var a=r||{},o=a.autoGenerateObjectIDIfNotExist,i=n(a,["autoGenerateObjectIDIfNotExist"]),u=o?ht.AddObject:ht.UpdateObject;if(u===ht.UpdateObject){var s=!0,c=!1,f=void 0;try{for(var d,h=t[Symbol.iterator]();!(s=(d=h.next()).done);s=!0){if(void 0===d.value.objectID)return l(Promise.reject({name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}))}}catch(e){c=!0,f=e}finally{try{s||null==h.return||h.return()}finally{if(c)throw f}}}return Ne(e)(t,u,i)}},nt=function(e){return function(t,r){return at(e)([t],r)}},at=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=a.clearExistingRules,u=y(n(a,["forwardToReplicas","clearExistingRules"]));return o&&(u.queryParameters.forwardToReplicas=1),i&&(u.queryParameters.clearExistingRules=1),l(e.transporter.write({method:q,path:m("1/indexes/%s/rules/batch",e.indexName),data:t},u),(function(t,r){return lt(e)(t.taskID,r)}))}},ot=function(e){return function(t,r){return it(e)([t],r)}},it=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=a.clearExistingSynonyms,u=a.replaceExistingSynonyms,s=y(n(a,["forwardToReplicas","clearExistingSynonyms","replaceExistingSynonyms"]));return o&&(s.queryParameters.forwardToReplicas=1),(u||i)&&(s.queryParameters.replaceExistingSynonyms=1),l(e.transporter.write({method:q,path:m("1/indexes/%s/synonyms/batch",e.indexName),data:t},s),(function(t,r){return lt(e)(t.taskID,r)}))}},ut=function(e){return function(t,r){return e.transporter.read({method:q,path:m("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},st=function(e){return function(t,r,n){return e.transporter.read({method:q,path:m("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},ct=function(e){return function(t,r){return e.transporter.read({method:q,path:m("1/indexes/%s/rules/search",e.indexName),data:{query:t}},r)}},ft=function(e){return function(t,r){return e.transporter.read({method:q,path:m("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},r)}},dt=function(e){return function(t,r){var a=r||{},o=a.forwardToReplicas,i=y(n(a,["forwardToReplicas"]));return o&&(i.queryParameters.forwardToReplicas=1),l(e.transporter.write({method:D,path:m("1/indexes/%s/settings",e.indexName),data:t},i),(function(t,r){return lt(e)(t.taskID,r)}))}},lt=function(e){return function(t,r){return d((function(n){return function(e){return function(t,r){return e.transporter.read({method:j,path:m("1/indexes/%s/task/%s",e.indexName,t.toString())},r)}}(e)(t,r).then((function(e){return"published"!==e.status?n():void 0}))}))}},ht={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},pt={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},mt=1,gt=2,yt=3;var vt=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{threshold:e.threshold||0})}));return e.transporter.read({method:q,path:"1/indexes/*/recommendations",data:{requests:a},cacheable:!0},n)}},bt=function(e){return function(t,n){return vt(e)(t.map((function(e){return r(r({},e),{},{fallbackParameters:{},model:"bought-together"})})),n)}},wt=function(e){return function(t,n){return vt(e)(t.map((function(e){return r(r({},e),{},{model:"related-products"})})),n)}},Pt=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{model:"trending-facets",threshold:e.threshold||0})}));return e.transporter.read({method:q,path:"1/indexes/*/recommendations",data:{requests:a},cacheable:!0},n)}},It=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{model:"trending-items",threshold:e.threshold||0})}));return e.transporter.read({method:q,path:"1/indexes/*/recommendations",data:{requests:a},cacheable:!0},n)}},Ot=function(e){return function(t,n){return vt(e)(t.map((function(e){return r(r({},e),{},{model:"looking-similar"})})),n)}},xt=function(e){return function(t,n){var a=t.map((function(e){return r(r({},e),{},{model:"recommended-for-you",threshold:e.threshold||0})}));return e.transporter.read({method:q,path:"1/indexes/*/recommendations",data:{requests:a},cacheable:!0},n)}};function jt(e,t){return function(r,a){if(!t)throw Dt("`options.transformation.region` must be provided at client instantiation before calling this method.");var o=a||{},i=o.autoGenerateObjectIDIfNotExist,u=o.watch,s=n(o,["autoGenerateObjectIDIfNotExist","watch"]),c=i?ht.AddObject:ht.UpdateObject;return t.push({indexName:e,pushTaskPayload:{action:c,records:r},watch:u},s)}}function qt(e,t){return function(r,a){if(!t)throw Dt("`options.transformation.region` must be provided at client instantiation before calling this method.");var o=a||{},i=o.createIfNotExists,u=o.watch,s=n(o,["createIfNotExists","watch"]),c=i?ht.PartialUpdateObject:ht.PartialUpdateObjectNoCreate;return t.push({indexName:e,pushTaskPayload:{action:c,records:r},watch:u},s)}}function Dt(e){return{name:"TransformationConfigurationError",message:e}}function Tt(e,t,n){var a,o,i={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,a=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},o=a(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(o),n=a(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(o),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(o),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(a=yt,{debug:function(e,t){return mt>=a&&console.debug(e,t),Promise.resolve()},info:function(e,t){return gt>=a&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:c(),requestsCache:c({serializable:!1}),hostsCache:s({caches:[u({key:"".concat("4.26.0","-").concat(e)}),c()]}),userAgent:N("4.26.0").add({segment:"Browser"})},d=r(r({},i),n),l=function(){return function(e){return function(e){var t=e.region||"us",n=f(g.WithinHeaders,e.appId,e.apiKey),a=S(r(r({hosts:[{url:"personalization.".concat(t,".algolia.com")}]},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/json"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return p({appId:e.appId,transporter:a},e.methods)}(r(r(r({},i),e),{},{methods:{getPersonalizationStrategy:H,setPersonalizationStrategy:K}}))}};if(n&&n.transformation){if(!n.transformation.region)throw Dt("`region` must be provided when leveraging the transformation pipeline");o=function(e){if(!e||!e.transformation||!e.transformation.region)throw Dt("`region` must be provided when leveraging the transformation pipeline");if("eu"!==e.transformation.region&&"us"!==e.transformation.region)throw Dt("`region` is required and must be one of the following: eu, us");var t=e.appId,n=f(g.WithinHeaders,t,e.apiKey),a=S(r(r({hosts:[{url:"data.".concat(e.transformation.region,".algolia.com"),accept:v.ReadWrite,protocol:"https"}]},e),{},{headers:r(r(r({},n.headers()),{"content-type":"text/plain"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return{transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t}),a.userAgent.add({segment:"Ingestion",version:t}),a.userAgent.add({segment:"Ingestion via Algoliasearch"})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))},push:function(e,t){var n=e.indexName,o=e.pushTaskPayload,i=e.watch;if(!n)throw Dt("Parameter `indexName` is required when calling `push`.");if(!o)throw Dt("Parameter `pushTaskPayload` is required when calling `push`.");if(!o.action)throw Dt("Parameter `pushTaskPayload.action` is required when calling `push`.");if(!o.records)throw Dt("Parameter `pushTaskPayload.records` is required when calling `push`.");var u=t||{queryParameters:{}};return a.write({method:q,path:m("1/push/%s",n),data:o},r(r({},u),{},{queryParameters:r(r({},u.queryParameters),{},{watch:void 0!==i})}))}}}(r(r({},n),i))}return function(e){var t=e.appId,n=f(void 0!==e.authMode?e.authMode:g.WithinHeaders,t,e.apiKey),a=S(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:v.Read},{url:"".concat(t,".algolia.net"),accept:v.Write}].concat(h([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return p({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)}(r(r({},d),{},{methods:{search:ge,searchForFacetValues:ye,multipleBatch:pe,multipleGetObjects:me,multipleQueries:ge,copyIndex:V,copySettings:X,copySynonyms:Y,copyRules:_,moveIndex:he,listIndices:de,getLogs:ae,listClusters:fe,multipleSearchForFacetValues:ye,getApiKey:te,addApiKey:B,listApiKeys:ce,updateApiKey:je,deleteApiKey:$,restoreApiKey:we,assignUserID:G,assignUserIDs:L,getUserID:ie,searchUserIDs:Oe,listUserIDs:le,getTopUserIDs:oe,removeUserID:ve,hasPendingMappings:ue,clearDictionaryEntries:Q,deleteDictionaryEntries:ee,getDictionarySettings:ne,getAppTask:re,replaceDictionaryEntries:be,saveDictionaryEntries:Pe,searchDictionaryEntries:Ie,setDictionarySettings:xe,waitAppTask:qe,customRequest:Z,initIndex:function(e){return function(t){return r(r({},se(e)(t,{methods:{batch:De,delete:Ue,findAnswers:Ke,getObject:Be,getObjects:Le,saveObject:tt,saveObjects:rt,search:ut,searchForFacetValues:st,waitTask:lt,setSettings:dt,getSettings:Ve,partialUpdateObject:Xe,partialUpdateObjects:Ye,deleteObject:ze,deleteObjects:Fe,deleteBy:Ce,clearObjects:Ae,browseObjects:Te,getObjectPosition:Ge,findObject:Me,exists:He,saveSynonym:ot,saveSynonyms:it,getSynonym:_e,searchSynonyms:ft,browseSynonyms:Se,deleteSynonym:We,clearSynonyms:Re,replaceAllObjects:Ze,replaceAllSynonyms:et,searchRules:ct,getRule:Qe,deleteRule:Je,saveRule:nt,saveRules:at,replaceAllRules:$e,browseRules:ke,clearRules:Ee}})),{},{saveObjectsWithTransformation:jt(t,o),partialUpdateObjectsWithTransformation:qt(t,o)})}},initAnalytics:function(){return function(e){return function(e){var t=e.region||"us",n=f(g.WithinHeaders,e.appId,e.apiKey),a=S(r(r({hosts:[{url:"analytics.".concat(t,".algolia.com")}]},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/json"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return p({appId:e.appId,transporter:a},e.methods)}(r(r(r({},i),e),{},{methods:{addABTest:U,getABTest:F,getABTests:J,stopABTest:W,deleteABTest:z}}))}},initPersonalization:l,initRecommendation:function(){return function(e){return d.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),l()(e)}},getRecommendations:vt,getFrequentlyBoughtTogether:bt,getLookingSimilar:Ot,getRecommendedForYou:xt,getRelatedProducts:wt,getTrendingFacets:Pt,getTrendingItems:It}}))}return Tt.version="4.26.0",Tt}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "algoliasearch",
3
- "version": "4.25.3",
3
+ "version": "4.27.0",
4
4
  "private": false,
5
5
  "description": "A fully-featured and blazing-fast JavaScript API client to interact with Algolia API.",
6
6
  "repository": {
@@ -28,20 +28,20 @@
28
28
  "test:exports": "node --experimental-modules test/module/is-es-module.mjs && node test/module/is-cjs-module.cjs"
29
29
  },
30
30
  "dependencies": {
31
- "@algolia/cache-browser-local-storage": "4.25.3",
32
- "@algolia/cache-common": "4.25.3",
33
- "@algolia/cache-in-memory": "4.25.3",
34
- "@algolia/client-account": "4.25.3",
35
- "@algolia/client-analytics": "4.25.3",
36
- "@algolia/client-common": "4.25.3",
37
- "@algolia/client-personalization": "4.25.3",
38
- "@algolia/client-search": "4.25.3",
39
- "@algolia/logger-common": "4.25.3",
40
- "@algolia/logger-console": "4.25.3",
41
- "@algolia/recommend": "4.25.3",
42
- "@algolia/requester-browser-xhr": "4.25.3",
43
- "@algolia/requester-common": "4.25.3",
44
- "@algolia/requester-node-http": "4.25.3",
45
- "@algolia/transporter": "4.25.3"
31
+ "@algolia/cache-browser-local-storage": "4.27.0",
32
+ "@algolia/cache-common": "4.27.0",
33
+ "@algolia/cache-in-memory": "4.27.0",
34
+ "@algolia/client-account": "4.27.0",
35
+ "@algolia/client-analytics": "4.27.0",
36
+ "@algolia/client-common": "4.27.0",
37
+ "@algolia/client-personalization": "4.27.0",
38
+ "@algolia/client-search": "4.27.0",
39
+ "@algolia/logger-common": "4.27.0",
40
+ "@algolia/logger-console": "4.27.0",
41
+ "@algolia/recommend": "4.27.0",
42
+ "@algolia/requester-browser-xhr": "4.27.0",
43
+ "@algolia/requester-common": "4.27.0",
44
+ "@algolia/requester-node-http": "4.27.0",
45
+ "@algolia/transporter": "4.27.0"
46
46
  }
47
47
  }