algoliasearch 5.0.0-alpha.91 → 5.0.0-alpha.98

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.
Files changed (71) hide show
  1. package/builds/browser.ts +3 -9
  2. package/builds/models.ts +11 -5
  3. package/builds/node.ts +3 -9
  4. package/dist/algoliasearch/builds/browser.d.ts +10 -10
  5. package/dist/algoliasearch/builds/browser.d.ts.map +1 -1
  6. package/dist/algoliasearch/builds/models.d.ts +2 -2
  7. package/dist/algoliasearch/builds/models.d.ts.map +1 -1
  8. package/dist/algoliasearch/builds/node.d.ts +10 -10
  9. package/dist/algoliasearch/builds/node.d.ts.map +1 -1
  10. package/dist/algoliasearch.cjs +319 -327
  11. package/dist/algoliasearch.esm.browser.js +362 -346
  12. package/dist/algoliasearch.esm.node.js +319 -327
  13. package/dist/algoliasearch.umd.js +2 -2
  14. package/dist/client-abtesting/model/clientMethodProps.d.ts +42 -42
  15. package/dist/client-abtesting/model/clientMethodProps.d.ts.map +1 -1
  16. package/dist/client-abtesting/model/variant.d.ts +4 -0
  17. package/dist/client-abtesting/model/variant.d.ts.map +1 -1
  18. package/dist/client-abtesting/src/abtestingClient.d.ts +37 -37
  19. package/dist/client-abtesting/src/abtestingClient.d.ts.map +1 -1
  20. package/dist/client-analytics/model/clientMethodProps.d.ts +38 -38
  21. package/dist/client-analytics/model/clientMethodProps.d.ts.map +1 -1
  22. package/dist/client-analytics/src/analyticsClient.d.ts +32 -32
  23. package/dist/client-analytics/src/analyticsClient.d.ts.map +1 -1
  24. package/dist/client-personalization/model/clientMethodProps.d.ts +26 -26
  25. package/dist/client-personalization/model/clientMethodProps.d.ts.map +1 -1
  26. package/dist/client-personalization/src/personalizationClient.d.ts +37 -37
  27. package/dist/client-personalization/src/personalizationClient.d.ts.map +1 -1
  28. package/dist/client-search/model/clientMethodProps.d.ts +59 -72
  29. package/dist/client-search/model/clientMethodProps.d.ts.map +1 -1
  30. package/dist/client-search/model/highlightResult.d.ts +1 -1
  31. package/dist/client-search/model/highlightResult.d.ts.map +1 -1
  32. package/dist/client-search/model/searchForFacetValuesResponse.d.ts +8 -0
  33. package/dist/client-search/model/searchForFacetValuesResponse.d.ts.map +1 -1
  34. package/dist/client-search/model/searchResponses.d.ts +2 -2
  35. package/dist/client-search/model/searchResponses.d.ts.map +1 -1
  36. package/dist/client-search/model/searchResult.d.ts +1 -1
  37. package/dist/client-search/model/searchResult.d.ts.map +1 -1
  38. package/dist/client-search/model/searchSynonymsParams.d.ts +10 -0
  39. package/dist/client-search/model/searchSynonymsParams.d.ts.map +1 -1
  40. package/dist/client-search/model/snippetResult.d.ts +1 -1
  41. package/dist/client-search/model/snippetResult.d.ts.map +1 -1
  42. package/dist/client-search/model/userHighlightResult.d.ts +2 -8
  43. package/dist/client-search/model/userHighlightResult.d.ts.map +1 -1
  44. package/dist/client-search/src/searchClient.d.ts +53 -55
  45. package/dist/client-search/src/searchClient.d.ts.map +1 -1
  46. package/dist/lite/lite.cjs +7 -7
  47. package/dist/lite/lite.esm.browser.js +50 -26
  48. package/dist/lite/lite.esm.node.js +7 -7
  49. package/dist/lite/lite.umd.js +2 -2
  50. package/dist/lite/model/clientMethodProps.d.ts +2 -2
  51. package/dist/lite/model/clientMethodProps.d.ts.map +1 -1
  52. package/dist/lite/model/highlightResult.d.ts +1 -1
  53. package/dist/lite/model/highlightResult.d.ts.map +1 -1
  54. package/dist/lite/model/searchForFacetValuesResponse.d.ts +8 -0
  55. package/dist/lite/model/searchForFacetValuesResponse.d.ts.map +1 -1
  56. package/dist/lite/model/searchResponses.d.ts +2 -2
  57. package/dist/lite/model/searchResponses.d.ts.map +1 -1
  58. package/dist/lite/model/searchResult.d.ts +1 -1
  59. package/dist/lite/model/searchResult.d.ts.map +1 -1
  60. package/dist/lite/model/snippetResult.d.ts +1 -1
  61. package/dist/lite/model/snippetResult.d.ts.map +1 -1
  62. package/dist/lite/src/liteClient.d.ts +8 -8
  63. package/dist/lite/src/liteClient.d.ts.map +1 -1
  64. package/lite/model/clientMethodProps.ts +2 -2
  65. package/lite/model/highlightResult.ts +3 -1
  66. package/lite/model/searchForFacetValuesResponse.ts +10 -0
  67. package/lite/model/searchResponses.ts +2 -2
  68. package/lite/model/searchResult.ts +3 -1
  69. package/lite/model/snippetResult.ts +3 -1
  70. package/lite/src/liteClient.ts +13 -11
  71. package/package.json +13 -13
@@ -26,14 +26,35 @@ function createBrowserLocalStorageCache(options) {
26
26
  function getNamespace() {
27
27
  return JSON.parse(getStorage().getItem(namespaceKey) || '{}');
28
28
  }
29
+ function setNamespace(namespace) {
30
+ getStorage().setItem(namespaceKey, JSON.stringify(namespace));
31
+ }
32
+ function removeOutdatedCacheItems() {
33
+ const timeToLive = options.timeToLive ? options.timeToLive * 1000 : null;
34
+ const namespace = getNamespace();
35
+ const filteredNamespaceWithoutOldFormattedCacheItems = Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {
36
+ return cacheItem.timestamp !== undefined;
37
+ }));
38
+ setNamespace(filteredNamespaceWithoutOldFormattedCacheItems);
39
+ if (!timeToLive) {
40
+ return;
41
+ }
42
+ const filteredNamespaceWithoutExpiredItems = Object.fromEntries(Object.entries(filteredNamespaceWithoutOldFormattedCacheItems).filter(([, cacheItem]) => {
43
+ const currentTimestamp = new Date().getTime();
44
+ const isExpired = cacheItem.timestamp + timeToLive < currentTimestamp;
45
+ return !isExpired;
46
+ }));
47
+ setNamespace(filteredNamespaceWithoutExpiredItems);
48
+ }
29
49
  return {
30
50
  get(key, defaultValue, events = {
31
51
  miss: () => Promise.resolve()
32
52
  }) {
33
53
  return Promise.resolve().then(() => {
34
- const keyAsString = JSON.stringify(key);
35
- const value = getNamespace()[keyAsString];
36
- return Promise.all([value || defaultValue(), value !== undefined]);
54
+ removeOutdatedCacheItems();
55
+ return getNamespace()[JSON.stringify(key)];
56
+ }).then(value => {
57
+ return Promise.all([value ? value.value : defaultValue(), value !== undefined]);
37
58
  }).then(([value, exists]) => {
38
59
  return Promise.all([value, exists || events.miss(value)]);
39
60
  }).then(([value]) => value);
@@ -41,7 +62,10 @@ function createBrowserLocalStorageCache(options) {
41
62
  set(key, value) {
42
63
  return Promise.resolve().then(() => {
43
64
  const namespace = getNamespace();
44
- namespace[JSON.stringify(key)] = value;
65
+ namespace[JSON.stringify(key)] = {
66
+ timestamp: new Date().getTime(),
67
+ value
68
+ };
45
69
  getStorage().setItem(namespaceKey, JSON.stringify(namespace));
46
70
  return value;
47
71
  });
@@ -171,6 +195,20 @@ function createStatefulHost(host, status = 'up') {
171
195
  };
172
196
  }
173
197
 
198
+ function _toPrimitive(t, r) {
199
+ if ("object" != typeof t || !t) return t;
200
+ var e = t[Symbol.toPrimitive];
201
+ if (void 0 !== e) {
202
+ var i = e.call(t, r || "default");
203
+ if ("object" != typeof i) return i;
204
+ throw new TypeError("@@toPrimitive must return a primitive value.");
205
+ }
206
+ return ("string" === r ? String : Number)(t);
207
+ }
208
+ function _toPropertyKey(t) {
209
+ var i = _toPrimitive(t, "string");
210
+ return "symbol" == typeof i ? i : String(i);
211
+ }
174
212
  function _defineProperty(obj, key, value) {
175
213
  key = _toPropertyKey(key);
176
214
  if (key in obj) {
@@ -185,20 +223,6 @@ function _defineProperty(obj, key, value) {
185
223
  }
186
224
  return obj;
187
225
  }
188
- function _toPrimitive(input, hint) {
189
- if (typeof input !== "object" || input === null) return input;
190
- var prim = input[Symbol.toPrimitive];
191
- if (prim !== undefined) {
192
- var res = prim.call(input, hint || "default");
193
- if (typeof res !== "object") return res;
194
- throw new TypeError("@@toPrimitive must return a primitive value.");
195
- }
196
- return (hint === "string" ? String : Number)(input);
197
- }
198
- function _toPropertyKey(arg) {
199
- var key = _toPrimitive(arg, "string");
200
- return typeof key === "symbol" ? key : String(key);
201
- }
202
226
 
203
227
  class AlgoliaError extends Error {
204
228
  constructor(message, name) {
@@ -219,7 +243,7 @@ class ErrorWithStackTrace extends AlgoliaError {
219
243
  }
220
244
  class RetryError extends ErrorWithStackTrace {
221
245
  constructor(stackTrace) {
222
- super('Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.', stackTrace, 'RetryError');
246
+ super('Unreachable hosts - your application id may be incorrect. If the error persists, please create a ticket at https://support.algolia.com/ sharing steps we can use to reproduce the issue.', stackTrace, 'RetryError');
223
247
  }
224
248
  }
225
249
  class ApiError extends ErrorWithStackTrace {
@@ -673,7 +697,7 @@ function createXhrRequester() {
673
697
  }
674
698
 
675
699
  // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
676
- const apiClientVersion = '5.0.0-alpha.91';
700
+ const apiClientVersion = '5.0.0-alpha.98';
677
701
  function getDefaultHosts(appId) {
678
702
  return [
679
703
  {
@@ -759,15 +783,15 @@ function createLiteClient({ appId: appIdOption, apiKey: apiKeyOption, authMode,
759
783
  * This method allow you to send requests to the Algolia REST API.
760
784
  *
761
785
  * @summary Send requests to the Algolia REST API.
762
- * @param post - The post object.
763
- * @param post.path - Path of the endpoint, anything after \"/1\" must be specified.
764
- * @param post.parameters - Query parameters to apply to the current query.
765
- * @param post.body - Parameters to send with the custom request.
786
+ * @param customPost - The customPost object.
787
+ * @param customPost.path - Path of the endpoint, anything after \"/1\" must be specified.
788
+ * @param customPost.parameters - Query parameters to apply to the current query.
789
+ * @param customPost.body - Parameters to send with the custom request.
766
790
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
767
791
  */
768
- post({ path, parameters, body }, requestOptions) {
792
+ customPost({ path, parameters, body }, requestOptions) {
769
793
  if (!path) {
770
- throw new Error('Parameter `path` is required when calling `post`.');
794
+ throw new Error('Parameter `path` is required when calling `customPost`.');
771
795
  }
772
796
  const requestPath = '/1{path}'.replace('{path}', path);
773
797
  const headers = {};
@@ -2,7 +2,7 @@ import { createAuth, createTransporter, getAlgoliaAgent, shuffle, DEFAULT_CONNEC
2
2
  import { createHttpRequester } from '@algolia/requester-node-http';
3
3
 
4
4
  // Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
5
- const apiClientVersion = '5.0.0-alpha.91';
5
+ const apiClientVersion = '5.0.0-alpha.98';
6
6
  function getDefaultHosts(appId) {
7
7
  return [
8
8
  {
@@ -88,15 +88,15 @@ function createLiteClient({ appId: appIdOption, apiKey: apiKeyOption, authMode,
88
88
  * This method allow you to send requests to the Algolia REST API.
89
89
  *
90
90
  * @summary Send requests to the Algolia REST API.
91
- * @param post - The post object.
92
- * @param post.path - Path of the endpoint, anything after \"/1\" must be specified.
93
- * @param post.parameters - Query parameters to apply to the current query.
94
- * @param post.body - Parameters to send with the custom request.
91
+ * @param customPost - The customPost object.
92
+ * @param customPost.path - Path of the endpoint, anything after \"/1\" must be specified.
93
+ * @param customPost.parameters - Query parameters to apply to the current query.
94
+ * @param customPost.body - Parameters to send with the custom request.
95
95
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
96
96
  */
97
- post({ path, parameters, body }, requestOptions) {
97
+ customPost({ path, parameters, body }, requestOptions) {
98
98
  if (!path) {
99
- throw new Error('Parameter `path` is required when calling `post`.');
99
+ throw new Error('Parameter `path` is required when calling `customPost`.');
100
100
  }
101
101
  const requestPath = '/1{path}'.replace('{path}', path);
102
102
  const headers = {};
@@ -1,2 +1,2 @@
1
- /*! algoliasearch/lite.umd.js | 5.0.0-alpha.91 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["algoliasearch/lite"]={})}(this,(function(e){"use strict";function t(e){let t;const r=`algolia-client-js-${e.key}`;function s(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function a(){return JSON.parse(s().getItem(r)||"{}")}return{get:(e,t,r={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{const r=JSON.stringify(e),s=a()[r];return Promise.all([s||t(),void 0!==s])})).then((([e,t])=>Promise.all([e,t||r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve().then((()=>{const o=a();return o[JSON.stringify(e)]=t,s().setItem(r,JSON.stringify(o)),t})),delete:e=>Promise.resolve().then((()=>{const t=a();delete t[JSON.stringify(e)],s().setItem(r,JSON.stringify(t))})),clear:()=>Promise.resolve().then((()=>{s().removeItem(r)}))}}function r(e){const t=[...e.caches],s=t.shift();return void 0===s?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,a,o={miss:()=>Promise.resolve()})=>s.get(e,a,o).catch((()=>r({caches:t}).get(e,a,o))),set:(e,a)=>s.set(e,a).catch((()=>r({caches:t}).set(e,a))),delete:e=>s.delete(e).catch((()=>r({caches:t}).delete(e))),clear:()=>s.clear().catch((()=>r({caches:t}).clear()))}}function s(e={serializable:!0}){let t={};return{get(r,s,a={miss:()=>Promise.resolve()}){const o=JSON.stringify(r);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);const n=s();return n.then((e=>a.miss(e))).then((()=>n))},set:(r,s)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(s):s,Promise.resolve(s)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}const a=12e4;function o(e,t="up"){const r=Date.now();return{...e,status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>a},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=a}}}function n(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var s=r.call(e,t||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class i extends Error{constructor(e,t){super(e),n(this,"name","AlgoliaError"),t&&(this.name=t)}}class c extends i{constructor(e,t,r){super(e,r),n(this,"stackTrace",void 0),this.stackTrace=t}}class u extends c{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",e,"RetryError")}}class l extends c{constructor(e,t,r,s="ApiError"){super(e,r,s),n(this,"status",void 0),this.status=t}}class d extends i{constructor(e,t){super(e,"DeserializationError"),n(this,"response",void 0),this.response=t}}class h extends l{constructor(e,t,r,s){super(e,t,s,"DetailedApiError"),n(this,"error",void 0),this.error=r}}function m(e,t,r){const s=function(e){const t=e=>"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e);return Object.keys(e).map((r=>`${r}=${encodeURIComponent(t(e[r])?JSON.stringify(e[r]):e[r])}`)).join("&")}(r);let a=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return s.length&&(a+=`?${s}`),a}function p(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function f({hosts:e,hostsCache:t,baseHeaders:r,baseQueryParameters:s,algoliaAgent:a,timeouts:n,requester:i,requestsCache:c,responsesCache:f}){async function g(c,f,g=!0){const y=[],v=function(e,t){if("GET"===e.method||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(c,f),P=function(e,t,r){const s={Accept:"application/json",...e,...t,...r},a={};return Object.keys(s).forEach((e=>{const t=s[e];a[e.toLowerCase()]=t})),a}(r,c.headers,f.headers),b="GET"===c.method?{...c.data,...f.data}:{},w={...s,...c.queryParameters,...b};if(a.value&&(w["x-algolia-agent"]=a.value),f&&f.queryParameters)for(const e of Object.keys(f.queryParameters))f.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(f.queryParameters[e])?w[e]=f.queryParameters[e].toString():w[e]=f.queryParameters[e];let O=0;const q=async(e,r)=>{const s=e.pop();if(void 0===s)throw new u(function(e){return e.map((e=>p(e)))}(y));let a=f.timeout;void 0===a&&(a=g?n.read:n.write);const b={data:v,headers:P,method:c.method,url:m(s,c.path,w),connectTimeout:r(O,n.connect),responseTimeout:r(O,a)},T=t=>{const r={request:b,response:t,host:s,triesLeft:e.length};return y.push(r),r},S=await i.send(b);if(function({isTimedOut:e,status:t}){return e||function({isTimedOut:e,status:t}){return!e&&0==~~t}({isTimedOut:e,status:t})||2!=~~(t/100)&&4!=~~(t/100)}(S)){const a=T(S);return S.isTimedOut&&O++,console.log("Retryable failure",p(a)),await t.set(s,o(s,S.isTimedOut?"timed out":"down")),q(e,r)}if(function({status:e}){return 2==~~(e/100)}(S))return function(e){try{return JSON.parse(e.content)}catch(t){throw new d(t.message,e)}}(S);throw T(S),function({content:e,status:t},r){try{const s=JSON.parse(e);return"error"in s?new h(s.message,t,s.error,r):new l(s.message,t,r)}catch(e){}return new l(e,t,r)}(S,y)},T=e.filter((e=>"readWrite"===e.accept||(g?"read"===e.accept:"write"===e.accept))),S=await async function(e){const r=await Promise.all(e.map((e=>t.get(e,(()=>Promise.resolve(o(e))))))),s=r.filter((e=>e.isUp())),a=r.filter((e=>e.isTimedOut())),n=[...s,...a];return{hosts:n.length>0?n:e,getTimeout:(e,t)=>(0===a.length&&0===e?1:a.length+3+e)*t}}(T);return q([...S.hosts].reverse(),S.getTimeout)}return{hostsCache:t,requester:i,timeouts:n,algoliaAgent:a,baseHeaders:r,baseQueryParameters:s,hosts:e,request:function(e,t={}){const a=e.useReadTransporter||"GET"===e.method;if(!a)return g(e,t,a);const o=()=>g(e,t);if(!0!==(t.cacheable||e.cacheable))return o();const n={request:e,requestOptions:t,transporter:{queryParameters:s,headers:r}};return f.get(n,(()=>c.get(n,(()=>c.set(n,o()).then((e=>Promise.all([c.delete(n),e])),(e=>Promise.all([c.delete(n),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>f.set(n,e)})},requestsCache:c,responsesCache:f}}function g({algoliaAgents:e,client:t,version:r}){const s=function(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}(r).add({segment:t,version:r});return e.forEach((e=>s.add(e))),s}const y="5.0.0-alpha.91";function v(e){return[{url:`${e}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${e}.algolia.net`,accept:"write",protocol:"https"}].concat(function(e){const t=e;for(let r=e.length-1;r>0;r--){const s=Math.floor(Math.random()*(r+1)),a=e[r];t[r]=e[s],t[s]=a}return t}([{url:`${e}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-3.algolianet.com`,accept:"readWrite",protocol:"https"}]))}e.apiClientVersion=y,e.liteClient=function(e,a,o){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!a||"string"!=typeof a)throw new Error("`apiKey` is missing.");return function({appId:e,apiKey:t,authMode:r,algoliaAgents:s,...a}){const o=function(e,t,r="WithinHeaders"){const s={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===r?s:{},queryParameters:()=>"WithinQueryParameters"===r?s:{}}}(e,t,r),n=f({hosts:v(e),...a,algoliaAgent:g({algoliaAgents:s,client:"Lite",version:y}),baseHeaders:{"content-type":"text/plain",...o.headers(),...a.baseHeaders},baseQueryParameters:{...o.queryParameters(),...a.baseQueryParameters}});return{transporter:n,appId:e,clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{})),get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(e,t){n.algoliaAgent.add({segment:e,version:t})},post({path:e,parameters:t,body:r},s){if(!e)throw new Error("Parameter `path` is required when calling `post`.");const a={method:"POST",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{},data:r||{}};return n.request(a,s)},search(e,t){if(e&&Array.isArray(e)){const t={requests:e.map((({params:e,...t})=>"facet"===t.type?{...t,...e,type:"facet"}:{...t,...e,facet:void 0,maxFacetHits:void 0,facetQuery:void 0}))};e=t}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");const r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return n.request(r,t)}}}({appId:e,apiKey:a,timeouts:{connect:1e3,read:2e3,write:3e4},requester:{send:function(e){return new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const s=(e,s)=>setTimeout((()=>{r.abort(),t({status:0,content:s,isTimedOut:!0})}),e),a=s(e.connectTimeout,"Connection timeout");let o;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===o&&(clearTimeout(a),o=s(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(a),clearTimeout(o),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(a),clearTimeout(o),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:r({caches:[t({key:`${y}-${e}`}),s()]}),...o})}}));
1
+ /*! algoliasearch/lite.umd.js | 5.0.0-alpha.98 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["algoliasearch/lite"]={})}(this,(function(e){"use strict";function t(e){let t;const r=`algolia-client-js-${e.key}`;function s(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function a(){return JSON.parse(s().getItem(r)||"{}")}function o(e){s().setItem(r,JSON.stringify(e))}return{get:(t,r,s={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>(function(){const t=e.timeToLive?1e3*e.timeToLive:null,r=a(),s=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(o(s),!t)return;o(Object.fromEntries(Object.entries(s).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+t<r)}))))}(),a()[JSON.stringify(t)]))).then((e=>Promise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||s.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve().then((()=>{const o=a();return o[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},s().setItem(r,JSON.stringify(o)),t})),delete:e=>Promise.resolve().then((()=>{const t=a();delete t[JSON.stringify(e)],s().setItem(r,JSON.stringify(t))})),clear:()=>Promise.resolve().then((()=>{s().removeItem(r)}))}}function r(e){const t=[...e.caches],s=t.shift();return void 0===s?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,a,o={miss:()=>Promise.resolve()})=>s.get(e,a,o).catch((()=>r({caches:t}).get(e,a,o))),set:(e,a)=>s.set(e,a).catch((()=>r({caches:t}).set(e,a))),delete:e=>s.delete(e).catch((()=>r({caches:t}).delete(e))),clear:()=>s.clear().catch((()=>r({caches:t}).clear()))}}function s(e={serializable:!0}){let t={};return{get(r,s,a={miss:()=>Promise.resolve()}){const o=JSON.stringify(r);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);const n=s();return n.then((e=>a.miss(e))).then((()=>n))},set:(r,s)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(s):s,Promise.resolve(s)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}const a=12e4;function o(e,t="up"){const r=Date.now();return{...e,status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>a},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=a}}}function n(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var s=r.call(e,t||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function i(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class c extends Error{constructor(e,t){super(e),i(this,"name","AlgoliaError"),t&&(this.name=t)}}class u extends c{constructor(e,t,r){super(e,r),i(this,"stackTrace",void 0),this.stackTrace=t}}class l extends u{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, please create a ticket at https://support.algolia.com/ sharing steps we can use to reproduce the issue.",e,"RetryError")}}class m extends u{constructor(e,t,r,s="ApiError"){super(e,r,s),i(this,"status",void 0),this.status=t}}class d extends c{constructor(e,t){super(e,"DeserializationError"),i(this,"response",void 0),this.response=t}}class h extends m{constructor(e,t,r,s){super(e,t,s,"DetailedApiError"),i(this,"error",void 0),this.error=r}}function p(e,t,r){const s=function(e){const t=e=>"[object Object]"===Object.prototype.toString.call(e)||"[object Array]"===Object.prototype.toString.call(e);return Object.keys(e).map((r=>`${r}=${encodeURIComponent(t(e[r])?JSON.stringify(e[r]):e[r])}`)).join("&")}(r);let a=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return s.length&&(a+=`?${s}`),a}function f(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function g({hosts:e,hostsCache:t,baseHeaders:r,baseQueryParameters:s,algoliaAgent:a,timeouts:n,requester:i,requestsCache:c,responsesCache:u}){async function g(c,u,g=!0){const y=[],v=function(e,t){if("GET"===e.method||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(c,u),P=function(e,t,r){const s={Accept:"application/json",...e,...t,...r},a={};return Object.keys(s).forEach((e=>{const t=s[e];a[e.toLowerCase()]=t})),a}(r,c.headers,u.headers),b="GET"===c.method?{...c.data,...u.data}:{},w={...s,...c.queryParameters,...b};if(a.value&&(w["x-algolia-agent"]=a.value),u&&u.queryParameters)for(const e of Object.keys(u.queryParameters))u.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(u.queryParameters[e])?w[e]=u.queryParameters[e].toString():w[e]=u.queryParameters[e];let O=0;const T=async(e,r)=>{const s=e.pop();if(void 0===s)throw new l(function(e){return e.map((e=>f(e)))}(y));let a=u.timeout;void 0===a&&(a=g?n.read:n.write);const b={data:v,headers:P,method:c.method,url:p(s,c.path,w),connectTimeout:r(O,n.connect),responseTimeout:r(O,a)},q=t=>{const r={request:b,response:t,host:s,triesLeft:e.length};return y.push(r),r},S=await i.send(b);if(function({isTimedOut:e,status:t}){return e||function({isTimedOut:e,status:t}){return!e&&0==~~t}({isTimedOut:e,status:t})||2!=~~(t/100)&&4!=~~(t/100)}(S)){const a=q(S);return S.isTimedOut&&O++,console.log("Retryable failure",f(a)),await t.set(s,o(s,S.isTimedOut?"timed out":"down")),T(e,r)}if(function({status:e}){return 2==~~(e/100)}(S))return function(e){try{return JSON.parse(e.content)}catch(t){throw new d(t.message,e)}}(S);throw q(S),function({content:e,status:t},r){try{const s=JSON.parse(e);return"error"in s?new h(s.message,t,s.error,r):new m(s.message,t,r)}catch(e){}return new m(e,t,r)}(S,y)},q=e.filter((e=>"readWrite"===e.accept||(g?"read"===e.accept:"write"===e.accept))),S=await async function(e){const r=await Promise.all(e.map((e=>t.get(e,(()=>Promise.resolve(o(e))))))),s=r.filter((e=>e.isUp())),a=r.filter((e=>e.isTimedOut())),n=[...s,...a];return{hosts:n.length>0?n:e,getTimeout:(e,t)=>(0===a.length&&0===e?1:a.length+3+e)*t}}(q);return T([...S.hosts].reverse(),S.getTimeout)}return{hostsCache:t,requester:i,timeouts:n,algoliaAgent:a,baseHeaders:r,baseQueryParameters:s,hosts:e,request:function(e,t={}){const a=e.useReadTransporter||"GET"===e.method;if(!a)return g(e,t,a);const o=()=>g(e,t);if(!0!==(t.cacheable||e.cacheable))return o();const n={request:e,requestOptions:t,transporter:{queryParameters:s,headers:r}};return u.get(n,(()=>c.get(n,(()=>c.set(n,o()).then((e=>Promise.all([c.delete(n),e])),(e=>Promise.all([c.delete(n),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>u.set(n,e)})},requestsCache:c,responsesCache:u}}function y({algoliaAgents:e,client:t,version:r}){const s=function(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}(r).add({segment:t,version:r});return e.forEach((e=>s.add(e))),s}const v="5.0.0-alpha.98";function P(e){return[{url:`${e}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${e}.algolia.net`,accept:"write",protocol:"https"}].concat(function(e){const t=e;for(let r=e.length-1;r>0;r--){const s=Math.floor(Math.random()*(r+1)),a=e[r];t[r]=e[s],t[s]=a}return t}([{url:`${e}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${e}-3.algolianet.com`,accept:"readWrite",protocol:"https"}]))}e.apiClientVersion=v,e.liteClient=function(e,a,o){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!a||"string"!=typeof a)throw new Error("`apiKey` is missing.");return function({appId:e,apiKey:t,authMode:r,algoliaAgents:s,...a}){const o=function(e,t,r="WithinHeaders"){const s={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:()=>"WithinHeaders"===r?s:{},queryParameters:()=>"WithinQueryParameters"===r?s:{}}}(e,t,r),n=g({hosts:P(e),...a,algoliaAgent:y({algoliaAgents:s,client:"Lite",version:v}),baseHeaders:{"content-type":"text/plain",...o.headers(),...a.baseHeaders},baseQueryParameters:{...o.queryParameters(),...a.baseQueryParameters}});return{transporter:n,appId:e,clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{})),get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(e,t){n.algoliaAgent.add({segment:e,version:t})},customPost({path:e,parameters:t,body:r},s){if(!e)throw new Error("Parameter `path` is required when calling `customPost`.");const a={method:"POST",path:"/1{path}".replace("{path}",e),queryParameters:t||{},headers:{},data:r||{}};return n.request(a,s)},search(e,t){if(e&&Array.isArray(e)){const t={requests:e.map((({params:e,...t})=>"facet"===t.type?{...t,...e,type:"facet"}:{...t,...e,facet:void 0,maxFacetHits:void 0,facetQuery:void 0}))};e=t}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");const r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return n.request(r,t)}}}({appId:e,apiKey:a,timeouts:{connect:1e3,read:2e3,write:3e4},requester:{send:function(e){return new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const s=(e,s)=>setTimeout((()=>{r.abort(),t({status:0,content:s,isTimedOut:!0})}),e),a=s(e.connectTimeout,"Connection timeout");let o;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===o&&(clearTimeout(a),o=s(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(a),clearTimeout(o),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(a),clearTimeout(o),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:r({caches:[t({key:`${v}-${e}`}),s()]}),...o})}}));
@@ -2,9 +2,9 @@ import type { SearchForFacetsOptions } from './searchForFacetsOptions';
2
2
  import type { SearchForHitsOptions } from './searchForHitsOptions';
3
3
  import type { SearchParamsObject } from './searchParamsObject';
4
4
  /**
5
- * Properties for the `post` method.
5
+ * Properties for the `customPost` method.
6
6
  */
7
- export type PostProps = {
7
+ export type CustomPostProps = {
8
8
  /**
9
9
  * Path of the endpoint, anything after \"/1\" must be specified.
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"clientMethodProps.d.ts","sourceRoot":"","sources":["../../../lite/model/clientMethodProps.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,KAAK,kBAAkB,GAAG;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;AAEzE;;;;GAIG;AACH,KAAK,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAErE,KAAK,iBAAiB,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"clientMethodProps.d.ts","sourceRoot":"","sources":["../../../lite/model/clientMethodProps.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,KAAK,kBAAkB,GAAG;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,sBAAsB,CAAC;AAEzE;;;;GAIG;AACH,KAAK,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAErE,KAAK,iBAAiB,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,EAAE,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { HighlightResultOption } from './highlightResultOption';
2
- export type HighlightResult = HighlightResultOption | HighlightResultOption[];
2
+ export type HighlightResult = HighlightResultOption | Record<string, HighlightResultOption>;
3
3
  //# sourceMappingURL=highlightResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"highlightResult.d.ts","sourceRoot":"","sources":["../../../lite/model/highlightResult.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"highlightResult.d.ts","sourceRoot":"","sources":["../../../lite/model/highlightResult.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,MAAM,eAAe,GACvB,qBAAqB,GACrB,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC"}
@@ -1,5 +1,13 @@
1
1
  import type { FacetHits } from './facetHits';
2
2
  export type SearchForFacetValuesResponse = {
3
3
  facetHits: FacetHits[];
4
+ /**
5
+ * See the `facetsCount` field of the `exhaustive` object in the response.
6
+ */
7
+ exhaustiveFacetsCount: boolean;
8
+ /**
9
+ * Time the server took to process the request, in milliseconds.
10
+ */
11
+ processingTimeMS?: number;
4
12
  };
5
13
  //# sourceMappingURL=searchForFacetValuesResponse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchForFacetValuesResponse.d.ts","sourceRoot":"","sources":["../../../lite/model/searchForFacetValuesResponse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"searchForFacetValuesResponse.d.ts","sourceRoot":"","sources":["../../../lite/model/searchForFacetValuesResponse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,SAAS,EAAE,CAAC;IAEvB;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { SearchResult } from './searchResult';
2
- export type SearchResponses = {
3
- results: SearchResult[];
2
+ export type SearchResponses<T = Record<string, any>> = {
3
+ results: Array<SearchResult<T>>;
4
4
  };
5
5
  //# sourceMappingURL=searchResponses.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchResponses.d.ts","sourceRoot":"","sources":["../../../lite/model/searchResponses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC"}
1
+ {"version":3,"file":"searchResponses.d.ts","sourceRoot":"","sources":["../../../lite/model/searchResponses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACrD,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { SearchForFacetValuesResponse } from './searchForFacetValuesResponse';
2
2
  import type { SearchResponse } from './searchResponse';
3
- export type SearchResult = SearchForFacetValuesResponse | SearchResponse;
3
+ export type SearchResult<T = Record<string, any>> = SearchForFacetValuesResponse | SearchResponse<T>;
4
4
  //# sourceMappingURL=searchResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchResult.d.ts","sourceRoot":"","sources":["../../../lite/model/searchResult.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,4BAA4B,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"searchResult.d.ts","sourceRoot":"","sources":["../../../lite/model/searchResult.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAC5C,4BAA4B,GAC5B,cAAc,CAAC,CAAC,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { SnippetResultOption } from './snippetResultOption';
2
- export type SnippetResult = SnippetResultOption | SnippetResultOption[];
2
+ export type SnippetResult = Record<string, SnippetResultOption> | SnippetResultOption;
3
3
  //# sourceMappingURL=snippetResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snippetResult.d.ts","sourceRoot":"","sources":["../../../lite/model/snippetResult.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"snippetResult.d.ts","sourceRoot":"","sources":["../../../lite/model/snippetResult.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,MAAM,aAAa,GACrB,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GACnC,mBAAmB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { CreateClientOptions, RequestOptions } from '@algolia/client-common';
2
- import type { PostProps, LegacySearchMethodProps } from '../model/clientMethodProps';
2
+ import type { CustomPostProps, LegacySearchMethodProps } from '../model/clientMethodProps';
3
3
  import type { SearchMethodParams } from '../model/searchMethodParams';
4
4
  import type { SearchResponses } from '../model/searchResponses';
5
- export declare const apiClientVersion = "5.0.0-alpha.91";
5
+ export declare const apiClientVersion = "5.0.0-alpha.98";
6
6
  export declare function createLiteClient({ appId: appIdOption, apiKey: apiKeyOption, authMode, algoliaAgents, ...options }: CreateClientOptions): {
7
7
  transporter: import("@algolia/client-common").Transporter;
8
8
  /**
@@ -28,13 +28,13 @@ export declare function createLiteClient({ appId: appIdOption, apiKey: apiKeyOpt
28
28
  * This method allow you to send requests to the Algolia REST API.
29
29
  *
30
30
  * @summary Send requests to the Algolia REST API.
31
- * @param post - The post object.
32
- * @param post.path - Path of the endpoint, anything after \"/1\" must be specified.
33
- * @param post.parameters - Query parameters to apply to the current query.
34
- * @param post.body - Parameters to send with the custom request.
31
+ * @param customPost - The customPost object.
32
+ * @param customPost.path - Path of the endpoint, anything after \"/1\" must be specified.
33
+ * @param customPost.parameters - Query parameters to apply to the current query.
34
+ * @param customPost.body - Parameters to send with the custom request.
35
35
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
36
36
  */
37
- post({ path, parameters, body }: PostProps, requestOptions?: RequestOptions): Promise<Record<string, any>>;
37
+ customPost({ path, parameters, body }: CustomPostProps, requestOptions?: RequestOptions): Promise<Record<string, any>>;
38
38
  /**
39
39
  * Send multiple search queries to one or more indices.
40
40
  *
@@ -42,7 +42,7 @@ export declare function createLiteClient({ appId: appIdOption, apiKey: apiKeyOpt
42
42
  * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.
43
43
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
44
44
  */
45
- search(searchMethodParams: LegacySearchMethodProps | SearchMethodParams, requestOptions?: RequestOptions): Promise<SearchResponses>;
45
+ search<T>(searchMethodParams: LegacySearchMethodProps | SearchMethodParams, requestOptions?: RequestOptions): Promise<SearchResponses<T>>;
46
46
  };
47
47
  /**
48
48
  * The client type.
@@ -1 +1 @@
1
- {"version":3,"file":"liteClient.d.ts","sourceRoot":"","sources":["../../../lite/src/liteClient.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EAInB,cAAc,EAEf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAsCjD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,QAAQ,EACR,aAAa,EACb,GAAG,OAAO,EACX,EAAE,mBAAmB;;IAwBlB;;OAEG;;IAGH;;OAEG;kBACW,QAAQ,IAAI,CAAC;IAO3B;;OAEG;;IAKH;;;;;OAKG;6BACsB,MAAM,YAAY,MAAM,GAAG,IAAI;IAIxD;;;;;;;;;OASG;qCAE2B,SAAS,mBACpB,cAAc,GAC9B,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,CAAC;IAoB/B;;;;;;OAMG;+BAEmB,uBAAuB,GAAG,kBAAkB,mBAC/C,cAAc,GAC9B,QAAQ,eAAe,CAAC;EAuD9B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"liteClient.d.ts","sourceRoot":"","sources":["../../../lite/src/liteClient.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EAInB,cAAc,EAEf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAsCjD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,QAAQ,EACR,aAAa,EACb,GAAG,OAAO,EACX,EAAE,mBAAmB;;IAwBlB;;OAEG;;IAGH;;OAEG;kBACW,QAAQ,IAAI,CAAC;IAO3B;;OAEG;;IAKH;;;;;OAKG;6BACsB,MAAM,YAAY,MAAM,GAAG,IAAI;IAIxD;;;;;;;;;OASG;2CAE2B,eAAe,mBAC1B,cAAc,GAC9B,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,CAAC;IAsB/B;;;;;;OAMG;kCAEmB,uBAAuB,GAAG,kBAAkB,mBAC/C,cAAc;EAwDpC;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -5,9 +5,9 @@ import type { SearchForHitsOptions } from './searchForHitsOptions';
5
5
  import type { SearchParamsObject } from './searchParamsObject';
6
6
 
7
7
  /**
8
- * Properties for the `post` method.
8
+ * Properties for the `customPost` method.
9
9
  */
10
- export type PostProps = {
10
+ export type CustomPostProps = {
11
11
  /**
12
12
  * Path of the endpoint, anything after \"/1\" must be specified.
13
13
  */
@@ -2,4 +2,6 @@
2
2
 
3
3
  import type { HighlightResultOption } from './highlightResultOption';
4
4
 
5
- export type HighlightResult = HighlightResultOption | HighlightResultOption[];
5
+ export type HighlightResult =
6
+ | HighlightResultOption
7
+ | Record<string, HighlightResultOption>;
@@ -4,4 +4,14 @@ import type { FacetHits } from './facetHits';
4
4
 
5
5
  export type SearchForFacetValuesResponse = {
6
6
  facetHits: FacetHits[];
7
+
8
+ /**
9
+ * See the `facetsCount` field of the `exhaustive` object in the response.
10
+ */
11
+ exhaustiveFacetsCount: boolean;
12
+
13
+ /**
14
+ * Time the server took to process the request, in milliseconds.
15
+ */
16
+ processingTimeMS?: number;
7
17
  };
@@ -2,6 +2,6 @@
2
2
 
3
3
  import type { SearchResult } from './searchResult';
4
4
 
5
- export type SearchResponses = {
6
- results: SearchResult[];
5
+ export type SearchResponses<T = Record<string, any>> = {
6
+ results: Array<SearchResult<T>>;
7
7
  };
@@ -3,4 +3,6 @@
3
3
  import type { SearchForFacetValuesResponse } from './searchForFacetValuesResponse';
4
4
  import type { SearchResponse } from './searchResponse';
5
5
 
6
- export type SearchResult = SearchForFacetValuesResponse | SearchResponse;
6
+ export type SearchResult<T = Record<string, any>> =
7
+ | SearchForFacetValuesResponse
8
+ | SearchResponse<T>;
@@ -2,4 +2,6 @@
2
2
 
3
3
  import type { SnippetResultOption } from './snippetResultOption';
4
4
 
5
- export type SnippetResult = SnippetResultOption | SnippetResultOption[];
5
+ export type SnippetResult =
6
+ | Record<string, SnippetResultOption>
7
+ | SnippetResultOption;
@@ -16,13 +16,13 @@ import type {
16
16
  } from '@algolia/client-common';
17
17
 
18
18
  import type {
19
- PostProps,
19
+ CustomPostProps,
20
20
  LegacySearchMethodProps,
21
21
  } from '../model/clientMethodProps';
22
22
  import type { SearchMethodParams } from '../model/searchMethodParams';
23
23
  import type { SearchResponses } from '../model/searchResponses';
24
24
 
25
- export const apiClientVersion = '5.0.0-alpha.91';
25
+ export const apiClientVersion = '5.0.0-alpha.98';
26
26
 
27
27
  function getDefaultHosts(appId: string): Host[] {
28
28
  return (
@@ -126,18 +126,20 @@ export function createLiteClient({
126
126
  * This method allow you to send requests to the Algolia REST API.
127
127
  *
128
128
  * @summary Send requests to the Algolia REST API.
129
- * @param post - The post object.
130
- * @param post.path - Path of the endpoint, anything after \"/1\" must be specified.
131
- * @param post.parameters - Query parameters to apply to the current query.
132
- * @param post.body - Parameters to send with the custom request.
129
+ * @param customPost - The customPost object.
130
+ * @param customPost.path - Path of the endpoint, anything after \"/1\" must be specified.
131
+ * @param customPost.parameters - Query parameters to apply to the current query.
132
+ * @param customPost.body - Parameters to send with the custom request.
133
133
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
134
134
  */
135
- post(
136
- { path, parameters, body }: PostProps,
135
+ customPost(
136
+ { path, parameters, body }: CustomPostProps,
137
137
  requestOptions?: RequestOptions
138
138
  ): Promise<Record<string, any>> {
139
139
  if (!path) {
140
- throw new Error('Parameter `path` is required when calling `post`.');
140
+ throw new Error(
141
+ 'Parameter `path` is required when calling `customPost`.'
142
+ );
141
143
  }
142
144
 
143
145
  const requestPath = '/1{path}'.replace('{path}', path);
@@ -162,10 +164,10 @@ export function createLiteClient({
162
164
  * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.
163
165
  * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
164
166
  */
165
- search(
167
+ search<T>(
166
168
  searchMethodParams: LegacySearchMethodProps | SearchMethodParams,
167
169
  requestOptions?: RequestOptions
168
- ): Promise<SearchResponses> {
170
+ ): Promise<SearchResponses<T>> {
169
171
  if (searchMethodParams && Array.isArray(searchMethodParams)) {
170
172
  const newSignatureRequest: SearchMethodParams = {
171
173
  requests: searchMethodParams.map(({ params, ...legacyRequest }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "algoliasearch",
3
- "version": "5.0.0-alpha.91",
3
+ "version": "5.0.0-alpha.98",
4
4
  "description": "A fully-featured and blazing-fast JavaScript API client to interact with Algolia API.",
5
5
  "repository": "algolia/algoliasearch-client-javascript",
6
6
  "license": "MIT",
@@ -60,22 +60,22 @@
60
60
  "test": "jest"
61
61
  },
62
62
  "dependencies": {
63
- "@algolia/client-abtesting": "5.0.0-alpha.91",
64
- "@algolia/client-analytics": "5.0.0-alpha.91",
65
- "@algolia/client-common": "5.0.0-alpha.92",
66
- "@algolia/client-personalization": "5.0.0-alpha.91",
67
- "@algolia/client-search": "5.0.0-alpha.91",
68
- "@algolia/requester-browser-xhr": "5.0.0-alpha.92",
69
- "@algolia/requester-node-http": "5.0.0-alpha.92"
63
+ "@algolia/client-abtesting": "5.0.0-alpha.98",
64
+ "@algolia/client-analytics": "5.0.0-alpha.98",
65
+ "@algolia/client-common": "5.0.0-alpha.99",
66
+ "@algolia/client-personalization": "5.0.0-alpha.98",
67
+ "@algolia/client-search": "5.0.0-alpha.98",
68
+ "@algolia/requester-browser-xhr": "5.0.0-alpha.99",
69
+ "@algolia/requester-node-http": "5.0.0-alpha.99"
70
70
  },
71
71
  "devDependencies": {
72
- "@babel/preset-env": "7.23.3",
72
+ "@babel/preset-env": "7.23.8",
73
73
  "@babel/preset-typescript": "7.23.3",
74
- "@types/jest": "29.5.8",
75
- "@types/node": "20.9.0",
74
+ "@types/jest": "29.5.11",
75
+ "@types/node": "20.11.5",
76
76
  "jest": "29.7.0",
77
- "rollup": "4.3.0",
78
- "typescript": "5.2.2"
77
+ "rollup": "4.9.5",
78
+ "typescript": "5.3.3"
79
79
  },
80
80
  "engines": {
81
81
  "node": ">= 14.0.0"