@sunrise-upc/sales-static-components 4.1.1 → 4.1.3

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 (193) hide show
  1. package/README.md +8 -8
  2. package/dist/cjs/components/ButtonGroup/ButtonGroup.css +95 -95
  3. package/dist/cjs/components/FalconButton/falconButton.js.map +1 -1
  4. package/dist/cjs/components/FalconButtonV3/FalconButtonV3.css +12 -0
  5. package/dist/cjs/components/FalconButtonV3/FalconButtonV3.js +1 -1
  6. package/dist/cjs/components/FalconButtonV3/FalconButtonV3.js.map +1 -1
  7. package/dist/cjs/components/FalconButtonV3/FalconButtonV3.module.scss.css +12 -0
  8. package/dist/cjs/components/FalconButtonV3/FalconButtonV3.module.scss.js +1 -1
  9. package/dist/cjs/components/FalconMainNavigation/CartOverlay/CartFooter/CartFooter.js +1 -1
  10. package/dist/cjs/components/FalconMainNavigation/CartOverlay/CartFooter/CartFooter.js.map +1 -1
  11. package/dist/cjs/components/FalconMainNavigation/CartOverlay/CartItems/CartItems.js +1 -1
  12. package/dist/cjs/components/FalconMainNavigation/CartOverlay/CartItems/CartItems.js.map +1 -1
  13. package/dist/cjs/components/FalconMainNavigation/CartOverlay/CartOverlay.js +1 -1
  14. package/dist/cjs/components/FalconMainNavigation/CartOverlay/CartOverlay.js.map +1 -1
  15. package/dist/cjs/components/FalconMainNavigation/CartOverlay/useCartData.js +1 -1
  16. package/dist/cjs/components/FalconMainNavigation/CartOverlay/useCartData.js.map +1 -1
  17. package/dist/cjs/components/FalconMainNavigation/FalconHeader/BusinessCustomerLinkOut/BusinessCustomerLinkOut.js.map +1 -1
  18. package/dist/cjs/components/FalconMainNavigation/FalconMainNavigation.js +1 -1
  19. package/dist/cjs/components/FalconMainNavigation/FalconMainNavigation.js.map +1 -1
  20. package/dist/cjs/components/FalconMainNavigation/MobileNavigation/MobileMenuItem/MobileMenuItem.js.map +1 -1
  21. package/dist/cjs/components/FalconMainNavigation/ProfileLinkOut/ProfileLinkOut.js +1 -1
  22. package/dist/cjs/components/FalconMainNavigation/ProfileLinkOut/ProfileLinkOut.js.map +1 -1
  23. package/dist/cjs/components/InternetAndTvCardsBenefits/InternetAndTvCardItemBenefits.js.map +1 -1
  24. package/dist/cjs/components/RibbonComponent/RibbonComponent.css +389 -389
  25. package/dist/cjs/components/RibbonComponent/RibbonComponentTimer/RibbonComponentTimer.css +68 -68
  26. package/dist/cjs/components/StageTeaserComponent/DoubleGrid/DoubleGridComponent.css +937 -937
  27. package/dist/cjs/components/StageTeaserComponent/SingleGrid/SingleGridRedefined.js.map +1 -1
  28. package/dist/cjs/components/StageTeaserV3/DoubleGrid/DoubleGridComponent.css +87 -87
  29. package/dist/cjs/components/StageTeaserV3/SingleGrid/SingleGridComponent.css +87 -87
  30. package/dist/cjs/components/linecheck/AutoComplete.css +515 -515
  31. package/dist/cjs/components/linecheck/FiberUpgradeInfo.css +515 -515
  32. package/dist/cjs/components/linecheck/LineCheckV2.css +515 -515
  33. package/dist/cjs/components/linecheck/Success.css +515 -515
  34. package/dist/cjs/node_modules/@algolia/client-common/dist/common.js +1 -1
  35. package/dist/cjs/node_modules/@algolia/client-common/dist/common.js.map +1 -1
  36. package/dist/cjs/node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js +1 -1
  37. package/dist/cjs/node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js.map +1 -1
  38. package/dist/cjs/node_modules/algoliasearch/dist/lite/builds/browser.js +1 -1
  39. package/dist/cjs/node_modules/algoliasearch/dist/lite/builds/browser.js.map +1 -1
  40. package/dist/cjs/node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js.map +1 -1
  41. package/dist/cjs/node_modules/algoliasearch-helper/src/SearchParameters/index.js.map +1 -1
  42. package/dist/cjs/node_modules/algoliasearch-helper/src/SearchResults/index.js.map +1 -1
  43. package/dist/cjs/node_modules/algoliasearch-helper/src/algoliasearch.helper.js.map +1 -1
  44. package/dist/cjs/node_modules/algoliasearch-helper/src/utils/sortAndMergeRecommendations.js.map +1 -1
  45. package/dist/cjs/node_modules/algoliasearch-helper/src/version.js +1 -1
  46. package/dist/cjs/node_modules/algoliasearch-helper/src/version.js.map +1 -1
  47. package/dist/cjs/node_modules/immer/dist/immer.js +1 -1
  48. package/dist/cjs/node_modules/immer/dist/immer.js.map +1 -1
  49. package/dist/cjs/node_modules/instantsearch.js/es/helpers/insights.js +1 -1
  50. package/dist/cjs/node_modules/instantsearch.js/es/helpers/insights.js.map +1 -1
  51. package/dist/cjs/node_modules/instantsearch.js/es/lib/InstantSearch.js +1 -1
  52. package/dist/cjs/node_modules/instantsearch.js/es/lib/InstantSearch.js.map +1 -1
  53. package/dist/cjs/node_modules/instantsearch.js/es/lib/chat/openChat.js +1 -1
  54. package/dist/cjs/node_modules/instantsearch.js/es/lib/chat/openChat.js.map +1 -1
  55. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/defer.js +1 -1
  56. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/defer.js.map +1 -1
  57. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js +1 -1
  58. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js.map +1 -1
  59. package/dist/cjs/node_modules/instantsearch.js/es/lib/version.js +1 -1
  60. package/dist/cjs/node_modules/instantsearch.js/es/lib/version.js.map +1 -1
  61. package/dist/cjs/node_modules/instantsearch.js/es/middlewares/createInsightsMiddleware.js +1 -1
  62. package/dist/cjs/node_modules/instantsearch.js/es/middlewares/createInsightsMiddleware.js.map +1 -1
  63. package/dist/cjs/node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js +1 -1
  64. package/dist/cjs/node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js.map +1 -1
  65. package/dist/cjs/node_modules/instantsearch.js/es/widgets/index/index.js +1 -1
  66. package/dist/cjs/node_modules/instantsearch.js/es/widgets/index/index.js.map +1 -1
  67. package/dist/cjs/node_modules/qs/lib/parse.js +1 -1
  68. package/dist/cjs/node_modules/qs/lib/parse.js.map +1 -1
  69. package/dist/cjs/node_modules/qs/lib/stringify.js +1 -1
  70. package/dist/cjs/node_modules/qs/lib/stringify.js.map +1 -1
  71. package/dist/cjs/node_modules/qs/lib/utils.js +1 -1
  72. package/dist/cjs/node_modules/qs/lib/utils.js.map +1 -1
  73. package/dist/cjs/node_modules/react-instantsearch/dist/es/ui/SearchBox.js +1 -1
  74. package/dist/cjs/node_modules/react-instantsearch/dist/es/ui/SearchBox.js.map +1 -1
  75. package/dist/cjs/node_modules/react-instantsearch-core/dist/es/hooks/useConnector.js +1 -1
  76. package/dist/cjs/node_modules/react-instantsearch-core/dist/es/hooks/useConnector.js.map +1 -1
  77. package/dist/cjs/node_modules/react-instantsearch-core/dist/es/lib/InstantSearchRSCContext.js +1 -1
  78. package/dist/cjs/node_modules/react-instantsearch-core/dist/es/lib/InstantSearchRSCContext.js.map +1 -1
  79. package/dist/cjs/node_modules/react-instantsearch-core/dist/es/lib/useWidget.js +1 -1
  80. package/dist/cjs/node_modules/react-instantsearch-core/dist/es/lib/useWidget.js.map +1 -1
  81. package/dist/cjs/node_modules/react-instantsearch-core/dist/es/version.js +1 -1
  82. package/dist/cjs/node_modules/react-instantsearch-core/dist/es/version.js.map +1 -1
  83. package/dist/cjs/services/api-constants.js +1 -1
  84. package/dist/cjs/services/api-constants.js.map +1 -1
  85. package/dist/cjs/utils/utilities.js +1 -1
  86. package/dist/cjs/utils/utilities.js.map +1 -1
  87. package/dist/cjs/utils/wonderfulChat.js +2 -0
  88. package/dist/cjs/utils/wonderfulChat.js.map +1 -0
  89. package/dist/esm/components/ButtonGroup/ButtonGroup.css +95 -95
  90. package/dist/esm/components/FalconButtonV3/FalconButtonV3.css +12 -0
  91. package/dist/esm/components/FalconButtonV3/FalconButtonV3.js +1 -1
  92. package/dist/esm/components/FalconButtonV3/FalconButtonV3.js.map +1 -1
  93. package/dist/esm/components/FalconButtonV3/FalconButtonV3.module.scss.css +12 -0
  94. package/dist/esm/components/FalconButtonV3/FalconButtonV3.module.scss.js +1 -1
  95. package/dist/esm/components/FalconMainNavigation/CartOverlay/CartFooter/CartFooter.js +1 -1
  96. package/dist/esm/components/FalconMainNavigation/CartOverlay/CartFooter/CartFooter.js.map +1 -1
  97. package/dist/esm/components/FalconMainNavigation/CartOverlay/CartItems/CartItems.js +1 -1
  98. package/dist/esm/components/FalconMainNavigation/CartOverlay/CartItems/CartItems.js.map +1 -1
  99. package/dist/esm/components/FalconMainNavigation/CartOverlay/CartOverlay.js +1 -1
  100. package/dist/esm/components/FalconMainNavigation/CartOverlay/CartOverlay.js.map +1 -1
  101. package/dist/esm/components/FalconMainNavigation/CartOverlay/useCartData.js +1 -1
  102. package/dist/esm/components/FalconMainNavigation/CartOverlay/useCartData.js.map +1 -1
  103. package/dist/esm/components/FalconMainNavigation/FalconMainNavigation.js +1 -1
  104. package/dist/esm/components/FalconMainNavigation/FalconMainNavigation.js.map +1 -1
  105. package/dist/esm/components/FalconMainNavigation/ProfileLinkOut/ProfileLinkOut.js +1 -1
  106. package/dist/esm/components/FalconMainNavigation/ProfileLinkOut/ProfileLinkOut.js.map +1 -1
  107. package/dist/esm/components/RibbonComponent/RibbonComponent.css +389 -389
  108. package/dist/esm/components/RibbonComponent/RibbonComponentTimer/RibbonComponentTimer.css +68 -68
  109. package/dist/esm/components/StageTeaserComponent/DoubleGrid/DoubleGridComponent.css +937 -937
  110. package/dist/esm/components/StageTeaserV3/DoubleGrid/DoubleGridComponent.css +87 -87
  111. package/dist/esm/components/StageTeaserV3/SingleGrid/SingleGridComponent.css +87 -87
  112. package/dist/esm/components/linecheck/AutoComplete.css +515 -515
  113. package/dist/esm/components/linecheck/FiberUpgradeInfo.css +515 -515
  114. package/dist/esm/components/linecheck/LineCheckV2.css +515 -515
  115. package/dist/esm/components/linecheck/Success.css +515 -515
  116. package/dist/esm/node_modules/@algolia/client-common/dist/common.js +1 -1
  117. package/dist/esm/node_modules/@algolia/client-common/dist/common.js.map +1 -1
  118. package/dist/esm/node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js +1 -1
  119. package/dist/esm/node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js.map +1 -1
  120. package/dist/esm/node_modules/algoliasearch/dist/lite/builds/browser.js +1 -1
  121. package/dist/esm/node_modules/algoliasearch/dist/lite/builds/browser.js.map +1 -1
  122. package/dist/esm/node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js.map +1 -1
  123. package/dist/esm/node_modules/algoliasearch-helper/src/SearchParameters/index.js.map +1 -1
  124. package/dist/esm/node_modules/algoliasearch-helper/src/SearchResults/index.js.map +1 -1
  125. package/dist/esm/node_modules/algoliasearch-helper/src/algoliasearch.helper.js.map +1 -1
  126. package/dist/esm/node_modules/algoliasearch-helper/src/utils/sortAndMergeRecommendations.js.map +1 -1
  127. package/dist/esm/node_modules/algoliasearch-helper/src/version.js +1 -1
  128. package/dist/esm/node_modules/algoliasearch-helper/src/version.js.map +1 -1
  129. package/dist/esm/node_modules/immer/dist/immer.js +1 -1
  130. package/dist/esm/node_modules/immer/dist/immer.js.map +1 -1
  131. package/dist/esm/node_modules/instantsearch.js/es/helpers/insights.js +1 -1
  132. package/dist/esm/node_modules/instantsearch.js/es/helpers/insights.js.map +1 -1
  133. package/dist/esm/node_modules/instantsearch.js/es/lib/InstantSearch.js +1 -1
  134. package/dist/esm/node_modules/instantsearch.js/es/lib/InstantSearch.js.map +1 -1
  135. package/dist/esm/node_modules/instantsearch.js/es/lib/chat/openChat.js +1 -1
  136. package/dist/esm/node_modules/instantsearch.js/es/lib/chat/openChat.js.map +1 -1
  137. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/defer.js +1 -1
  138. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/defer.js.map +1 -1
  139. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js +1 -1
  140. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js.map +1 -1
  141. package/dist/esm/node_modules/instantsearch.js/es/lib/version.js +1 -1
  142. package/dist/esm/node_modules/instantsearch.js/es/lib/version.js.map +1 -1
  143. package/dist/esm/node_modules/instantsearch.js/es/middlewares/createInsightsMiddleware.js +1 -1
  144. package/dist/esm/node_modules/instantsearch.js/es/middlewares/createInsightsMiddleware.js.map +1 -1
  145. package/dist/esm/node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js +1 -1
  146. package/dist/esm/node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js.map +1 -1
  147. package/dist/esm/node_modules/instantsearch.js/es/widgets/index/index.js +1 -1
  148. package/dist/esm/node_modules/instantsearch.js/es/widgets/index/index.js.map +1 -1
  149. package/dist/esm/node_modules/qs/lib/parse.js +1 -1
  150. package/dist/esm/node_modules/qs/lib/parse.js.map +1 -1
  151. package/dist/esm/node_modules/qs/lib/stringify.js +1 -1
  152. package/dist/esm/node_modules/qs/lib/stringify.js.map +1 -1
  153. package/dist/esm/node_modules/qs/lib/utils.js +1 -1
  154. package/dist/esm/node_modules/qs/lib/utils.js.map +1 -1
  155. package/dist/esm/node_modules/react-instantsearch/dist/es/ui/SearchBox.js +1 -1
  156. package/dist/esm/node_modules/react-instantsearch/dist/es/ui/SearchBox.js.map +1 -1
  157. package/dist/esm/node_modules/react-instantsearch-core/dist/es/hooks/useConnector.js +1 -1
  158. package/dist/esm/node_modules/react-instantsearch-core/dist/es/hooks/useConnector.js.map +1 -1
  159. package/dist/esm/node_modules/react-instantsearch-core/dist/es/lib/InstantSearchRSCContext.js +1 -1
  160. package/dist/esm/node_modules/react-instantsearch-core/dist/es/lib/InstantSearchRSCContext.js.map +1 -1
  161. package/dist/esm/node_modules/react-instantsearch-core/dist/es/lib/useWidget.js +1 -1
  162. package/dist/esm/node_modules/react-instantsearch-core/dist/es/lib/useWidget.js.map +1 -1
  163. package/dist/esm/node_modules/react-instantsearch-core/dist/es/version.js +1 -1
  164. package/dist/esm/node_modules/react-instantsearch-core/dist/es/version.js.map +1 -1
  165. package/dist/esm/services/api-constants.js +1 -1
  166. package/dist/esm/services/api-constants.js.map +1 -1
  167. package/dist/esm/utils/utilities.js +1 -1
  168. package/dist/esm/utils/utilities.js.map +1 -1
  169. package/dist/esm/utils/wonderfulChat.js +2 -0
  170. package/dist/esm/utils/wonderfulChat.js.map +1 -0
  171. package/dist/index.d.ts +2 -3
  172. package/dist/navigation.css +160 -160
  173. package/package.json +115 -115
  174. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/addInsightsToRecommendParameters.js +0 -2
  175. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/addInsightsToRecommendParameters.js.map +0 -1
  176. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/buildWidgetTree.js +0 -2
  177. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/buildWidgetTree.js.map +0 -1
  178. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/extractWidgetPayload.js +0 -2
  179. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/extractWidgetPayload.js.map +0 -1
  180. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/now.js +0 -2
  181. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/now.js.map +0 -1
  182. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/omit.js +0 -2
  183. package/dist/cjs/node_modules/instantsearch.js/es/lib/utils/omit.js.map +0 -1
  184. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/addInsightsToRecommendParameters.js +0 -2
  185. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/addInsightsToRecommendParameters.js.map +0 -1
  186. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/buildWidgetTree.js +0 -2
  187. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/buildWidgetTree.js.map +0 -1
  188. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/extractWidgetPayload.js +0 -2
  189. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/extractWidgetPayload.js.map +0 -1
  190. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/now.js +0 -2
  191. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/now.js.map +0 -1
  192. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/omit.js +0 -2
  193. package/dist/esm/node_modules/instantsearch.js/es/lib/utils/omit.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";function e(){return{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()}}function t(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}async function*r(e){const t=new TextDecoder("utf-8"),r=[];let s=0,o=!1,n=!0;for await(const a of function(e){return Symbol.asyncIterator in e?e:async function*(e){const t=e.getReader();try{for(;;){const{done:e,value:r}=await t.read();if(e)return;yield r}}finally{t.releaseLock()}}(e)}(e)){const e=t.decode(a,{stream:!0});let i=0;for(o&&(o=!1,e.length>0&&"\n"===e[0]&&(i=1));i<e.length;){const t=e.indexOf("\r",i),a=e.indexOf("\n",i);if(-1===t&&-1===a){const t=e.slice(i);if(r.push(t),s+=t.length,s>10485760)throw new Error("SSE line buffer exceeded 10MB");break}let c,l;-1!==t&&(-1===a||t<a)?(c=t,t+1<e.length?l="\n"===e[t+1]?2:1:(o=!0,l=1)):(c=a,l=1);const u=e.slice(i,c);r.push(u);let d=1===r.length?r[0]:r.join("");r.length=0,s=0,n&&(d.startsWith("\ufeff")&&(d=d.slice(1)),n=!1),yield d,i=c+l}}const a=t.decode();if(a&&r.push(a),r.length>0){let e=r.join("");n&&e.startsWith("\ufeff")&&(e=e.slice(1)),yield e}}var s=class{data=[];eventType="";lastEventId=null;retry=null;decode(e){if(""===e)return this.dispatch();if(":"===e[0])return null;const t=e.indexOf(":");let r,s;switch(-1===t?(r=e,s=""):(r=e.slice(0,t),s=e.slice(t+1)," "===s[0]&&(s=s.slice(1))),r){case"data":this.data.push(s);break;case"event":this.eventType=s;break;case"id":s.includes("\0")||(this.lastEventId=s);break;case"retry":/^[0-9]+$/.test(s)&&(this.retry=parseInt(s,10))}return null}dispatch(){const e=this.eventType;if(this.eventType="",0===this.data.length)return null;const t={data:this.data.join("\n"),event:e,id:this.lastEventId,retry:this.retry};return this.data=[],t}};async function*o(e){const t=new s;for await(const s of r(e)){const e=t.decode(s);null!==e&&(yield e)}}var n=12e4;function a(e,t="up"){const r=Date.now();return{...e,status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>n},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=n}}}var i=class extends Error{name="AlgoliaError";constructor(e,t){super(e),t&&(this.name=t)}},c=class extends i{stackTrace;correlationId;constructor(e,t,r,s){super(s?`${e} (Correlation-ID: ${s})`:e,r),this.stackTrace=t,this.correlationId=s}},l=class extends c{constructor(e,t){super("Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support",e,"RetryError",t)}},u=class extends c{status;constructor(e,t,r,s="ApiError",o){super(e,r,s,o),this.status=t}},d=class extends i{response;correlationId;constructor(e,t,r){super(r?`${e} (Correlation-ID: ${r})`:e,"DeserializationError"),this.response=t,this.correlationId=r}},h=class extends u{error;constructor(e,t,r,s,o){super(e,t,s,"DetailedApiError",o),this.error=r}};function p(e,t,r){const s=f(r);let o=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${"/"===t.charAt(0)?t.substring(1):t}`;return s.length&&(o+=`?${s}`),o}function f(e){return Object.keys(e).filter(t=>void 0!==e[t]).sort().map(t=>`${t}=${encodeURIComponent("[object Array]"===Object.prototype.toString.call(e[t])?e[t].join(","):e[t]).replace(/\+/g,"%20")}`).join("&")}function m(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)}function g(e,t,r){const s={Accept:"application/json",...e,...t,...r},o={};return Object.keys(s).forEach(e=>{const t=s[e];o[e.toLowerCase()]=t}),o}function y(e){if(204!==e.status&&0!==e.content.length)try{return JSON.parse(e.content)}catch(t){throw new d(t.message,e,x(e.headers))}}function v(e){return{status:e.status,headers:e.headers,content:e.content,data:y(e)}}function x(e){if(!e)return;if(void 0!==e["correlation-id"])return e["correlation-id"];const t=Object.keys(e).find(e=>"correlation-id"===e.toLowerCase());return void 0===t?void 0:e[t]}function w(e){for(let t=e.length-1;t>=0;t--){const r=x(e[t].response.headers);if(void 0!==r)return r}}function b(e,t){const{content:r,status:s}=e,o=x(e.headers);try{const e=JSON.parse(r);return"error"in e?new h(e.message,s,e.error,t,o):new u(e.message,s,t,"ApiError",o)}catch{}return new u(r,s,t,"ApiError",o)}var P="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";function T(){var e;let t="";if("function"==typeof(null==(e=globalThis.crypto)?void 0:e.getRandomValues)){const e=new Uint8Array(11);globalThis.crypto.getRandomValues(e);for(const r of e)t+=P[r%62];return t}for(let e=0;e<11;e++)t+=P[Math.floor(62*Math.random())];return t}var O=1e3;function S({isTimedOut:e,status:t}){return!e&&0===~~t}function q({isTimedOut:e,status:t}){return e||S({isTimedOut:e,status:t})||2!=~~(t/100)&&4!=~~(t/100)}function E({status:e}){return 2==~~(e/100)}function I({status:e}){return 429===~~e}var j=/^HTTP 429(?:\D|$)/;function R(e){return"object"==typeof e&&null!==e&&"status"in e?I(e):e instanceof Error&&j.test(e.message)}function A(e){if("object"==typeof e&&null!==e&&"headers"in e)return e.headers}function C(e){var t;const r=null==(t=null==e?void 0:e["retry-after"])?void 0:t.trim();if(void 0===r||0===r.length)return O;if(!/^\d+$/.test(r))return O;const s=Number.parseInt(r,10);return s<=0?O:1e3*s}function $(e){return e.map(e=>k(e))}function k(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}exports.AlgoliaError=i,exports.ApiError=u,exports.COMPRESSION_THRESHOLD=750,exports.DeserializationError=d,exports.DetailedApiError=h,exports.ErrorWithStackTrace=c,exports.RetryError=l,exports.createAlgoliaAgent=t,exports.createAuth=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:{}}},exports.createBrowserLocalStorageCache=function(e){let t;const r=`algolia-client-js-${e.key}`;function s(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(s().getItem(r)||"{}")}function n(){return new Promise(e=>setTimeout(e,0))}return{get:(t,a,i={miss:()=>Promise.resolve()})=>n().then(()=>{const{namespace:n,changed:c}=function(){const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),s=(new Date).getTime();let n=!1;return{namespace:Object.fromEntries(Object.entries(r).filter(([,e])=>e&&void 0!==e.timestamp?!(t&&e.timestamp+t<s&&(n=!0,1)):(n=!0,!1))),changed:n}}(),l=n[JSON.stringify(t)];return c&&function(e){s().setItem(r,JSON.stringify(e))}(n),l?l.value:a().then(e=>i.miss(e).then(()=>e))}),set:(e,t)=>n().then(()=>{const n=o();return n[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},s().setItem(r,JSON.stringify(n)),t}),delete:e=>n().then(()=>{const t=o();delete t[JSON.stringify(e)],s().setItem(r,JSON.stringify(t))}),clear:()=>Promise.resolve().then(()=>{s().removeItem(r)})}},exports.createFallbackableCache=function t(r){const s=[...r.caches],o=s.shift();return void 0===o?e():{get:(e,r,n={miss:()=>Promise.resolve()})=>o.get(e,r,n).catch(()=>t({caches:s}).get(e,r,n)),set:(e,r)=>o.set(e,r).catch(()=>t({caches:s}).set(e,r)),delete:e=>o.delete(e).catch(()=>t({caches:s}).delete(e)),clear:()=>o.clear().catch(()=>t({caches:s}).clear())}},exports.createMemoryCache=function(e={serializable:!0}){let t={};return{get(r,s,o={miss:()=>Promise.resolve()}){const n=JSON.stringify(r);if(n in t)return Promise.resolve(e.serializable?JSON.parse(t[n]):t[n]);const a=s();return a.then(e=>o.miss(e)).then(()=>a)},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())}},exports.createNullCache=e,exports.createNullLogger=function(){return{debug:(e,t)=>Promise.resolve(),info:(e,t)=>Promise.resolve(),error:(e,t)=>Promise.resolve()}},exports.createStatefulHost=a,exports.createTransporter=function({hosts:e,hostsCache:t,baseHeaders:r,logger:s,baseQueryParameters:n,algoliaAgent:i,timeouts:c,requester:u,requestsCache:d,responsesCache:h,compress:f,compression:x,requestIdChannel:P,maxRateLimitRetries:O=3}){function S(e,t){void 0===P||void 0!==e["request-id"]||Object.keys(t).some(e=>"x-algolia-request-id"===e.toLowerCase())||("headers"===P?e["request-id"]=T():t["x-algolia-request-id"]=T())}const j=e=>new Promise(t=>{setTimeout(t,e)});async function N(e){const r=await Promise.all(e.map(e=>t.get(e,()=>Promise.resolve(a(e))))),s=r.filter(e=>e.isUp()),o=r.filter(e=>e.isTimedOut()),n=[...s,...o];return{hosts:n.length>0?n:e,getTimeout:(e,t)=>(0===o.length&&0===e?1:o.length+3+e)*t}}async function L(o,d,h){const y=[],v=m(o,d),P=g(r,o.headers,d.headers),T="gzip"===x&&void 0!==v&&v.length>750&&("POST"===o.method||"PUT"===o.method);T&&void 0===f&&s.info("Compression is disabled because no compress method is available.");const R=T&&void 0!==f,A=R?await f(v):v;R&&(P["content-encoding"]="gzip");const L="GET"===o.method?{...o.data,...d.data}:{},J={...n,...o.queryParameters,...L};if(i.value&&(J["x-algolia-agent"]=i.value),d&&d.queryParameters)for(const e of Object.keys(d.queryParameters))d.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(d.queryParameters[e])?J[e]=d.queryParameters[e].toString():J[e]=d.queryParameters[e];S(P,J);let D=0,z=O;const W=async(e,r)=>{const n=e.pop();if(void 0===n)throw new l($(y),w(y));const i={...c,...d.timeouts},f={data:A,headers:P,method:o.method,url:p(n,o.path,J),connectTimeout:r(D,i.connect),responseTimeout:r(D,h?i.read:i.write)},m=t=>{const r={request:f,response:t,host:n,triesLeft:e.length};return y.push(r),r},g=await u.send(f);if(I(g)&&z>0){z--,e.push(n);const t=m(g),o=C(g.headers);return s.info("Retryable failure",{...k(t),wait:o,rateLimitRetriesLeft:z}),await j(o),W(e,r)}if(q(g)){const o=m(g);return g.isTimedOut&&D++,s.info("Retryable failure",k(o)),await t.set(n,a(n,g.isTimedOut?"timed out":"down")),W(e,r)}if(E(g))return g;throw m(g),b(g,y)},H=e.filter(e=>"readWrite"===e.accept||(h?"read"===e.accept:"write"===e.accept)),M=await N(H);return W([...M.hosts].reverse(),M.getTimeout)}return{hostsCache:t,requester:u,timeouts:c,logger:s,algoliaAgent:i,baseHeaders:r,baseQueryParameters:n,requestIdChannel:P,hosts:e,maxRateLimitRetries:O,request:function(e,t={}){const s=()=>L(e,t,o).then(e=>y(e)),o=e.useReadTransporter||"GET"===e.method;if(!0!==(t.cacheable||e.cacheable))return s();const a={request:e,requestOptions:t,transporter:{queryParameters:n,headers:r}};return h.get(a,()=>d.get(a,()=>d.set(a,s()).then(e=>Promise.all([d.delete(a),e]),e=>Promise.all([d.delete(a),Promise.reject(e)])).then(([e,t])=>t)),{miss:e=>h.set(a,e)})},requestWithHttpInfo:function(e,t={}){return L(e,t,e.useReadTransporter||"GET"===e.method).then(e=>v(e))},requestStream:async function*(t,a={}){if(!u.sendStream)throw new Error("This requester does not support streaming");const d=m(t,a),h=g(r,t.headers,a.headers);h.accept="text/event-stream";const f="GET"===t.method?{...t.data,...a.data}:{},y={...n,...t.queryParameters,...f};if(i.value&&(y["x-algolia-agent"]=i.value),a&&a.queryParameters)for(const e of Object.keys(a.queryParameters))a.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(a.queryParameters[e])?y[e]=a.queryParameters[e].toString():y[e]=a.queryParameters[e];S(h,y);const v=t.useReadTransporter||"GET"===t.method,x=e.filter(e=>"readWrite"===e.accept||(v?"read"===e.accept:"write"===e.accept)),w=(await N(x)).hosts[0];if(!w)throw new l([]);const b={...c,...a.timeouts},P={data:d,headers:h,method:t.method,url:p(w,t.path,y),connectTimeout:b.connect,responseTimeout:v?b.read:b.write};let T=O;for(;;){let e;try{e=await u.sendStream(P)}catch(e){if(R(e)&&T>0){T--;const t=C(A(e));s.info("Retryable failure",{wait:t,rateLimitRetriesLeft:T,host:w}),await j(t);continue}throw e}return void(yield*o(e))}},requestsCache:d,responsesCache:h}},exports.deserializeFailure=b,exports.deserializeSuccess=y,exports.deserializeSuccessWithHttpInfo=v,exports.generateRequestId=T,exports.getAlgoliaAgent=function({algoliaAgents:e,client:r,version:s}){const o=t(s).add({segment:r,version:s});return e.forEach(e=>o.add(e)),o},exports.getCorrelationId=x,exports.getLastCorrelationId=w,exports.headersFromError=A,exports.isNetworkError=S,exports.isRateLimited=I,exports.isRateLimitedError=R,exports.isRetryable=q,exports.isSuccess=E,exports.iterSSEEvents=o,exports.parseRetryAfterMs=C,exports.serializeData=m,exports.serializeHeaders=g,exports.serializeQueryParameters=f,exports.serializeUrl=p,exports.shuffle=function(e){const t=e;for(let r=e.length-1;r>0;r--){const s=Math.floor(Math.random()*(r+1)),o=e[r];t[r]=e[s],t[s]=o}return t},exports.stackFrameWithoutCredentials=k,exports.stackTraceWithoutCredentials=$,exports.validateRequired=function(e,t,r){if(null==r||"string"==typeof r&&0===r.length)throw new Error(`Parameter \`${e}\` is required when calling \`${t}\`.`)};
1
+ "use strict";function e(){return{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()}}function t(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}async function*r(e){const t=new TextDecoder("utf-8"),r=[];let s=0,a=!1,o=!0;for await(const n of function(e){return Symbol.asyncIterator in e?e:async function*(e){const t=e.getReader();try{for(;;){const{done:e,value:r}=await t.read();if(e)return;yield r}}finally{t.releaseLock()}}(e)}(e)){const e=t.decode(n,{stream:!0});let i=0;for(a&&(a=!1,e.length>0&&"\n"===e[0]&&(i=1));i<e.length;){const t=e.indexOf("\r",i),n=e.indexOf("\n",i);if(-1===t&&-1===n){const t=e.slice(i);if(r.push(t),s+=t.length,s>10485760)throw new Error("SSE line buffer exceeded 10MB");break}let c,l;-1!==t&&(-1===n||t<n)?(c=t,t+1<e.length?l="\n"===e[t+1]?2:1:(a=!0,l=1)):(c=n,l=1);const u=e.slice(i,c);r.push(u);let d=1===r.length?r[0]:r.join("");r.length=0,s=0,o&&(d.startsWith("\ufeff")&&(d=d.slice(1)),o=!1),yield d,i=c+l}}const n=t.decode();if(n&&r.push(n),r.length>0){let e=r.join("");o&&e.startsWith("\ufeff")&&(e=e.slice(1)),yield e}}var s=class{data=[];eventType="";lastEventId=null;retry=null;decode(e){if(""===e)return this.dispatch();if(":"===e[0])return null;const t=e.indexOf(":");let r,s;switch(-1===t?(r=e,s=""):(r=e.slice(0,t),s=e.slice(t+1)," "===s[0]&&(s=s.slice(1))),r){case"data":this.data.push(s);break;case"event":this.eventType=s;break;case"id":s.includes("\0")||(this.lastEventId=s);break;case"retry":/^[0-9]+$/.test(s)&&(this.retry=parseInt(s,10))}return null}dispatch(){const e=this.eventType;if(this.eventType="",0===this.data.length)return null;const t={data:this.data.join("\n"),event:e,id:this.lastEventId,retry:this.retry};return this.data=[],t}};async function*a(e){const t=new s;for await(const s of r(e)){const e=t.decode(s);null!==e&&(yield e)}}var o=12e4;function n(e,t="up"){const r=Date.now();return{...e,status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>o},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=o}}}var i=class extends Error{name="AlgoliaError";constructor(e,t){super(e),t&&(this.name=t)}},c=class extends i{stackTrace;constructor(e,t,r){super(e,r),this.stackTrace=t}},l=class extends c{constructor(e){super("Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support",e,"RetryError")}},u=class extends c{status;constructor(e,t,r,s="ApiError"){super(e,r,s),this.status=t}},d=class extends i{response;constructor(e,t){super(e,"DeserializationError"),this.response=t}},h=class extends u{error;constructor(e,t,r,s){super(e,t,s,"DetailedApiError"),this.error=r}};function p(e,t,r){const s=m(r);let a=`${e.protocol}://${e.url}${e.port?`:${e.port}`:""}/${"/"===t.charAt(0)?t.substring(1):t}`;return s.length&&(a+=`?${s}`),a}function m(e){return Object.keys(e).filter(t=>void 0!==e[t]).sort().map(t=>`${t}=${encodeURIComponent("[object Array]"===Object.prototype.toString.call(e[t])?e[t].join(","):e[t]).replace(/\+/g,"%20")}`).join("&")}function f(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)}function g(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}function y(e){if(204!==e.status&&0!==e.content.length)try{return JSON.parse(e.content)}catch(t){throw new d(t.message,e)}}function v({content:e,status:t},r){try{const s=JSON.parse(e);return"error"in s?new h(s.message,t,s.error,r):new u(s.message,t,r)}catch{}return new u(e,t,r)}function x({isTimedOut:e,status:t}){return!e&&0===~~t}function w({isTimedOut:e,status:t}){return e||x({isTimedOut:e,status:t})||2!=~~(t/100)&&4!=~~(t/100)}function P({status:e}){return 2==~~(e/100)}function O(e){return e.map(e=>b(e))}function b(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}exports.AlgoliaError=i,exports.ApiError=u,exports.COMPRESSION_THRESHOLD=750,exports.DeserializationError=d,exports.DetailedApiError=h,exports.ErrorWithStackTrace=c,exports.RetryError=l,exports.createAlgoliaAgent=t,exports.createAuth=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:{}}},exports.createBrowserLocalStorageCache=function(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(){return new Promise(e=>setTimeout(e,0))}return{get:(t,n,i={miss:()=>Promise.resolve()})=>o().then(()=>{const{namespace:o,changed:c}=function(){const t=e.timeToLive?1e3*e.timeToLive:null,r=a(),s=(new Date).getTime();let o=!1;return{namespace:Object.fromEntries(Object.entries(r).filter(([,e])=>e&&void 0!==e.timestamp?!(t&&e.timestamp+t<s&&(o=!0,1)):(o=!0,!1))),changed:o}}(),l=o[JSON.stringify(t)];return c&&function(e){s().setItem(r,JSON.stringify(e))}(o),l?l.value:n().then(e=>i.miss(e).then(()=>e))}),set:(e,t)=>o().then(()=>{const o=a();return o[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},s().setItem(r,JSON.stringify(o)),t}),delete:e=>o().then(()=>{const t=a();delete t[JSON.stringify(e)],s().setItem(r,JSON.stringify(t))}),clear:()=>Promise.resolve().then(()=>{s().removeItem(r)})}},exports.createFallbackableCache=function t(r){const s=[...r.caches],a=s.shift();return void 0===a?e():{get:(e,r,o={miss:()=>Promise.resolve()})=>a.get(e,r,o).catch(()=>t({caches:s}).get(e,r,o)),set:(e,r)=>a.set(e,r).catch(()=>t({caches:s}).set(e,r)),delete:e=>a.delete(e).catch(()=>t({caches:s}).delete(e)),clear:()=>a.clear().catch(()=>t({caches:s}).clear())}},exports.createMemoryCache=function(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())}},exports.createNullCache=e,exports.createNullLogger=function(){return{debug:(e,t)=>Promise.resolve(),info:(e,t)=>Promise.resolve(),error:(e,t)=>Promise.resolve()}},exports.createStatefulHost=n,exports.createTransporter=function({hosts:e,hostsCache:t,baseHeaders:r,logger:s,baseQueryParameters:o,algoliaAgent:i,timeouts:c,requester:u,requestsCache:d,responsesCache:h,compress:m,compression:x}){async function S(e){const r=await Promise.all(e.map(e=>t.get(e,()=>Promise.resolve(n(e))))),s=r.filter(e=>e.isUp()),a=r.filter(e=>e.isTimedOut()),o=[...s,...a];return{hosts:o.length>0?o:e,getTimeout:(e,t)=>(0===a.length&&0===e?1:a.length+3+e)*t}}return{hostsCache:t,requester:u,timeouts:c,logger:s,algoliaAgent:i,baseHeaders:r,baseQueryParameters:o,hosts:e,request:function(a,T={}){const q=()=>async function(a,d,h){const T=[],q=f(a,d),E=g(r,a.headers,d.headers),j="gzip"===x&&void 0!==q&&q.length>750&&("POST"===a.method||"PUT"===a.method);j&&void 0===m&&s.info("Compression is disabled because no compress method is available.");const A=j&&void 0!==m,k=A?await m(q):q;A&&(E["content-encoding"]="gzip");const N="GET"===a.method?{...a.data,...d.data}:{},$={...o,...a.queryParameters,...N};if(i.value&&($["x-algolia-agent"]=i.value),d&&d.queryParameters)for(const e of Object.keys(d.queryParameters))d.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(d.queryParameters[e])?$[e]=d.queryParameters[e].toString():$[e]=d.queryParameters[e];let C=0;const J=async(e,r)=>{const o=e.pop();if(void 0===o)throw new l(O(T));const i={...c,...d.timeouts},m={data:k,headers:E,method:a.method,url:p(o,a.path,$),connectTimeout:r(C,i.connect),responseTimeout:r(C,h?i.read:i.write)},f=t=>{const r={request:m,response:t,host:o,triesLeft:e.length};return T.push(r),r},g=await u.send(m);if(w(g)){const a=f(g);return g.isTimedOut&&C++,s.info("Retryable failure",b(a)),await t.set(o,n(o,g.isTimedOut?"timed out":"down")),J(e,r)}if(P(g))return y(g);throw f(g),v(g,T)},z=e.filter(e=>"readWrite"===e.accept||(h?"read"===e.accept:"write"===e.accept)),I=await S(z);return J([...I.hosts].reverse(),I.getTimeout)}(a,T,E),E=a.useReadTransporter||"GET"===a.method;if(!0!==(T.cacheable||a.cacheable))return q();const j={request:a,requestOptions:T,transporter:{queryParameters:o,headers:r}};return h.get(j,()=>d.get(j,()=>d.set(j,q()).then(e=>Promise.all([d.delete(j),e]),e=>Promise.all([d.delete(j),Promise.reject(e)])).then(([e,t])=>t)),{miss:e=>h.set(j,e)})},requestStream:async function*(t,s={}){if(!u.sendStream)throw new Error("This requester does not support streaming");const n=f(t,s),d=g(r,t.headers,s.headers);d.accept="text/event-stream";const h="GET"===t.method?{...t.data,...s.data}:{},m={...o,...t.queryParameters,...h};if(i.value&&(m["x-algolia-agent"]=i.value),s&&s.queryParameters)for(const e of Object.keys(s.queryParameters))s.queryParameters[e]&&"[object Object]"!==Object.prototype.toString.call(s.queryParameters[e])?m[e]=s.queryParameters[e].toString():m[e]=s.queryParameters[e];const y=t.useReadTransporter||"GET"===t.method,v=e.filter(e=>"readWrite"===e.accept||(y?"read"===e.accept:"write"===e.accept)),x=(await S(v)).hosts[0];if(!x)throw new l([]);const w={...c,...s.timeouts},P={data:n,headers:d,method:t.method,url:p(x,t.path,m),connectTimeout:w.connect,responseTimeout:y?w.read:w.write},O=await u.sendStream(P);yield*a(O)},requestsCache:d,responsesCache:h}},exports.deserializeFailure=v,exports.deserializeSuccess=y,exports.getAlgoliaAgent=function({algoliaAgents:e,client:r,version:s}){const a=t(s).add({segment:r,version:s});return e.forEach(e=>a.add(e)),a},exports.isNetworkError=x,exports.isRetryable=w,exports.isSuccess=P,exports.iterSSEEvents=a,exports.serializeData=f,exports.serializeHeaders=g,exports.serializeQueryParameters=m,exports.serializeUrl=p,exports.shuffle=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},exports.stackFrameWithoutCredentials=b,exports.stackTraceWithoutCredentials=O,exports.validateRequired=function(e,t,r){if(null==r||"string"==typeof r&&0===r.length)throw new Error(`Parameter \`${e}\` is required when calling \`${t}\`.`)};
2
2
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sources":["../../../../../../node_modules/@algolia/client-common/dist/common.js"],"sourcesContent":["// src/cache/createBrowserLocalStorageCache.ts\nfunction createBrowserLocalStorageCache(options) {\n let storage;\n const namespaceKey = `algolia-client-js-${options.key}`;\n function getStorage() {\n if (storage === void 0) {\n storage = options.localStorage || window.localStorage;\n }\n return storage;\n }\n function getNamespace() {\n return JSON.parse(getStorage().getItem(namespaceKey) || \"{}\");\n }\n function setNamespace(namespace) {\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\n }\n function yieldToMain() {\n return new Promise((resolve) => setTimeout(resolve, 0));\n }\n function getFilteredNamespace() {\n const timeToLive = options.timeToLive ? options.timeToLive * 1e3 : null;\n const namespace = getNamespace();\n const currentTime = (/* @__PURE__ */ new Date()).getTime();\n let changed = false;\n const filtered = Object.fromEntries(\n Object.entries(namespace).filter(([, cacheItem]) => {\n if (!cacheItem || cacheItem.timestamp === void 0) {\n changed = true;\n return false;\n }\n if (!timeToLive) {\n return true;\n }\n if (cacheItem.timestamp + timeToLive < currentTime) {\n changed = true;\n return false;\n }\n return true;\n })\n );\n return { namespace: filtered, changed };\n }\n return {\n get(key, defaultValue, events = {\n miss: () => Promise.resolve()\n }) {\n return yieldToMain().then(() => {\n const { namespace, changed } = getFilteredNamespace();\n const cachedItem = namespace[JSON.stringify(key)];\n if (changed) {\n setNamespace(namespace);\n }\n if (cachedItem) {\n return cachedItem.value;\n }\n return defaultValue().then((value) => events.miss(value).then(() => value));\n });\n },\n set(key, value) {\n return yieldToMain().then(() => {\n const namespace = getNamespace();\n namespace[JSON.stringify(key)] = {\n timestamp: (/* @__PURE__ */ new Date()).getTime(),\n value\n };\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\n return value;\n });\n },\n delete(key) {\n return yieldToMain().then(() => {\n const namespace = getNamespace();\n delete namespace[JSON.stringify(key)];\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\n });\n },\n clear() {\n return Promise.resolve().then(() => {\n getStorage().removeItem(namespaceKey);\n });\n }\n };\n}\n\n// src/cache/createNullCache.ts\nfunction createNullCache() {\n return {\n get(_key, defaultValue, events = {\n miss: () => Promise.resolve()\n }) {\n const value = defaultValue();\n return value.then((result) => Promise.all([result, events.miss(result)])).then(([result]) => result);\n },\n set(_key, value) {\n return Promise.resolve(value);\n },\n delete(_key) {\n return Promise.resolve();\n },\n clear() {\n return Promise.resolve();\n }\n };\n}\n\n// src/cache/createFallbackableCache.ts\nfunction createFallbackableCache(options) {\n const caches = [...options.caches];\n const current = caches.shift();\n if (current === void 0) {\n return createNullCache();\n }\n return {\n get(key, defaultValue, events = {\n miss: () => Promise.resolve()\n }) {\n return current.get(key, defaultValue, events).catch(() => {\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\n });\n },\n set(key, value) {\n return current.set(key, value).catch(() => {\n return createFallbackableCache({ caches }).set(key, value);\n });\n },\n delete(key) {\n return current.delete(key).catch(() => {\n return createFallbackableCache({ caches }).delete(key);\n });\n },\n clear() {\n return current.clear().catch(() => {\n return createFallbackableCache({ caches }).clear();\n });\n }\n };\n}\n\n// src/cache/createMemoryCache.ts\nfunction createMemoryCache(options = { serializable: true }) {\n let cache = {};\n return {\n get(key, defaultValue, events = {\n miss: () => Promise.resolve()\n }) {\n const keyAsString = JSON.stringify(key);\n if (keyAsString in cache) {\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\n }\n const promise = defaultValue();\n return promise.then((value) => events.miss(value)).then(() => promise);\n },\n set(key, value) {\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\n return Promise.resolve(value);\n },\n delete(key) {\n delete cache[JSON.stringify(key)];\n return Promise.resolve();\n },\n clear() {\n cache = {};\n return Promise.resolve();\n }\n };\n}\n\n// src/constants.ts\nvar DEFAULT_CONNECT_TIMEOUT_BROWSER = 1e3;\nvar DEFAULT_READ_TIMEOUT_BROWSER = 2e3;\nvar DEFAULT_WRITE_TIMEOUT_BROWSER = 3e4;\nvar DEFAULT_CONNECT_TIMEOUT_NODE = 2e3;\nvar DEFAULT_READ_TIMEOUT_NODE = 5e3;\nvar DEFAULT_WRITE_TIMEOUT_NODE = 3e4;\nvar DEFAULT_REPLACE_ALL_OBJECTS_MAX_RETRIES = 800;\n\n// src/createAlgoliaAgent.ts\nfunction createAlgoliaAgent(version) {\n const algoliaAgent = {\n value: `Algolia for JavaScript (${version})`,\n add(options) {\n const addedAlgoliaAgent = `; ${options.segment}${options.version !== void 0 ? ` (${options.version})` : \"\"}`;\n if (algoliaAgent.value.indexOf(addedAlgoliaAgent) === -1) {\n algoliaAgent.value = `${algoliaAgent.value}${addedAlgoliaAgent}`;\n }\n return algoliaAgent;\n }\n };\n return algoliaAgent;\n}\n\n// src/createAuth.ts\nfunction createAuth(appId, apiKey, authMode = \"WithinHeaders\") {\n const credentials = {\n \"x-algolia-api-key\": apiKey,\n \"x-algolia-application-id\": appId\n };\n return {\n headers() {\n return authMode === \"WithinHeaders\" ? credentials : {};\n },\n queryParameters() {\n return authMode === \"WithinQueryParameters\" ? credentials : {};\n }\n };\n}\n\n// src/createIterablePromise.ts\nfunction createIterablePromise({\n func,\n validate,\n aggregator,\n error,\n timeout = () => 0\n}) {\n const retry = (previousResponse) => {\n return new Promise((resolve, reject) => {\n func(previousResponse).then(async (response) => {\n if (aggregator) {\n await aggregator(response);\n }\n if (await validate(response)) {\n return resolve(response);\n }\n if (error && await error.validate(response)) {\n return reject(new Error(await error.message(response)));\n }\n return setTimeout(\n () => {\n retry(response).then(resolve).catch(reject);\n },\n await timeout()\n );\n }).catch((err) => {\n reject(err);\n });\n });\n };\n return retry();\n}\n\n// src/getAlgoliaAgent.ts\nfunction getAlgoliaAgent({ algoliaAgents, client, version }) {\n const defaultAlgoliaAgent = createAlgoliaAgent(version).add({\n segment: client,\n version\n });\n algoliaAgents.forEach((algoliaAgent) => defaultAlgoliaAgent.add(algoliaAgent));\n return defaultAlgoliaAgent;\n}\n\n// src/logger/createNullLogger.ts\nfunction createNullLogger() {\n return {\n debug(_message, _args) {\n return Promise.resolve();\n },\n info(_message, _args) {\n return Promise.resolve();\n },\n error(_message, _args) {\n return Promise.resolve();\n }\n };\n}\n\n// src/logger/logWarning.ts\nfunction logWarning(logger, message) {\n if (logger.warn) {\n void Promise.resolve(logger.warn(message)).catch(() => {\n });\n } else {\n console.warn(message);\n }\n}\n\n// src/sse.ts\nvar MAX_LINE_BUFFER_SIZE = 10 * 1024 * 1024;\nasync function* readableStreamToAsyncIterable(stream) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) return;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n}\nfunction toAsyncIterable(stream) {\n if (Symbol.asyncIterator in stream) {\n return stream;\n }\n return readableStreamToAsyncIterable(stream);\n}\nasync function* iterLines(stream) {\n const decoder = new TextDecoder(\"utf-8\");\n const buffer = [];\n let bufferSize = 0;\n let trailingCR = false;\n let isFirstLine = true;\n for await (const chunk of toAsyncIterable(stream)) {\n const text = decoder.decode(chunk, { stream: true });\n let offset = 0;\n if (trailingCR) {\n trailingCR = false;\n if (text.length > 0 && text[0] === \"\\n\") {\n offset = 1;\n }\n }\n while (offset < text.length) {\n const crIdx = text.indexOf(\"\\r\", offset);\n const lfIdx = text.indexOf(\"\\n\", offset);\n if (crIdx === -1 && lfIdx === -1) {\n const remaining2 = text.slice(offset);\n buffer.push(remaining2);\n bufferSize += remaining2.length;\n if (bufferSize > MAX_LINE_BUFFER_SIZE) {\n throw new Error(\"SSE line buffer exceeded 10MB\");\n }\n break;\n }\n let endIdx;\n let skipLen;\n if (crIdx !== -1 && (lfIdx === -1 || crIdx < lfIdx)) {\n endIdx = crIdx;\n if (crIdx + 1 < text.length) {\n skipLen = text[crIdx + 1] === \"\\n\" ? 2 : 1;\n } else {\n trailingCR = true;\n skipLen = 1;\n }\n } else {\n endIdx = lfIdx;\n skipLen = 1;\n }\n const segment = text.slice(offset, endIdx);\n buffer.push(segment);\n let line = buffer.length === 1 ? buffer[0] : buffer.join(\"\");\n buffer.length = 0;\n bufferSize = 0;\n if (isFirstLine) {\n if (line.startsWith(\"\\uFEFF\")) {\n line = line.slice(1);\n }\n isFirstLine = false;\n }\n yield line;\n offset = endIdx + skipLen;\n }\n }\n const remaining = decoder.decode();\n if (remaining) {\n buffer.push(remaining);\n }\n if (buffer.length > 0) {\n let line = buffer.join(\"\");\n if (isFirstLine && line.startsWith(\"\\uFEFF\")) {\n line = line.slice(1);\n }\n yield line;\n }\n}\nvar SSEDecoder = class {\n data = [];\n eventType = \"\";\n lastEventId = null;\n retry = null;\n decode(line) {\n if (line === \"\") {\n return this.dispatch();\n }\n if (line[0] === \":\") {\n return null;\n }\n const colonIdx = line.indexOf(\":\");\n let field;\n let value;\n if (colonIdx === -1) {\n field = line;\n value = \"\";\n } else {\n field = line.slice(0, colonIdx);\n value = line.slice(colonIdx + 1);\n if (value[0] === \" \") {\n value = value.slice(1);\n }\n }\n switch (field) {\n case \"data\":\n this.data.push(value);\n break;\n case \"event\":\n this.eventType = value;\n break;\n case \"id\":\n if (!value.includes(\"\\0\")) {\n this.lastEventId = value;\n }\n break;\n case \"retry\":\n if (/^[0-9]+$/.test(value)) {\n this.retry = parseInt(value, 10);\n }\n break;\n }\n return null;\n }\n dispatch() {\n const currentEventType = this.eventType;\n this.eventType = \"\";\n if (this.data.length === 0) {\n return null;\n }\n const event = {\n data: this.data.join(\"\\n\"),\n event: currentEventType,\n id: this.lastEventId,\n retry: this.retry\n };\n this.data = [];\n return event;\n }\n};\nasync function* iterSSEEvents(stream) {\n const decoder = new SSEDecoder();\n for await (const line of iterLines(stream)) {\n const event = decoder.decode(line);\n if (event !== null) {\n yield event;\n }\n }\n}\n\n// src/transporter/compress.ts\nvar COMPRESSION_THRESHOLD = 750;\n\n// src/transporter/createStatefulHost.ts\nvar EXPIRATION_DELAY = 2 * 60 * 1e3;\nfunction createStatefulHost(host, status = \"up\") {\n const lastUpdate = Date.now();\n function isUp() {\n return status === \"up\" || Date.now() - lastUpdate > EXPIRATION_DELAY;\n }\n function isTimedOut() {\n return status === \"timed out\" && Date.now() - lastUpdate <= EXPIRATION_DELAY;\n }\n return { ...host, status, lastUpdate, isUp, isTimedOut };\n}\n\n// src/transporter/errors.ts\nvar AlgoliaError = class extends Error {\n name = \"AlgoliaError\";\n constructor(message, name) {\n super(message);\n if (name) {\n this.name = name;\n }\n }\n};\nvar IndexNotFoundError = class extends AlgoliaError {\n constructor(indexName) {\n super(`${indexName} does not exist`, \"IndexNotFoundError\");\n }\n};\nvar IndicesInSameAppError = class extends AlgoliaError {\n constructor() {\n super(\"Indices are in the same application. Use operationIndex instead.\", \"IndicesInSameAppError\");\n }\n};\nvar IndexAlreadyExistsError = class extends AlgoliaError {\n constructor(indexName) {\n super(`${indexName} index already exists.`, \"IndexAlreadyExistsError\");\n }\n};\nvar ErrorWithStackTrace = class extends AlgoliaError {\n stackTrace;\n correlationId;\n constructor(message, stackTrace, name, correlationId) {\n super(correlationId ? `${message} (Correlation-ID: ${correlationId})` : message, name);\n this.stackTrace = stackTrace;\n this.correlationId = correlationId;\n }\n};\nvar RetryError = class extends ErrorWithStackTrace {\n constructor(stackTrace, correlationId) {\n super(\n \"Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support\",\n stackTrace,\n \"RetryError\",\n correlationId\n );\n }\n};\nvar ApiError = class extends ErrorWithStackTrace {\n status;\n constructor(message, status, stackTrace, name = \"ApiError\", correlationId) {\n super(message, stackTrace, name, correlationId);\n this.status = status;\n }\n};\nvar StreamRequestError = class extends AlgoliaError {\n status;\n headers;\n constructor(status, body, headers) {\n super(`HTTP ${status}: ${body}`, \"StreamRequestError\");\n this.status = status;\n this.headers = headers;\n }\n};\nvar DeserializationError = class extends AlgoliaError {\n response;\n correlationId;\n constructor(message, response, correlationId) {\n super(correlationId ? `${message} (Correlation-ID: ${correlationId})` : message, \"DeserializationError\");\n this.response = response;\n this.correlationId = correlationId;\n }\n};\nvar DetailedApiError = class extends ApiError {\n error;\n constructor(message, status, error, stackTrace, correlationId) {\n super(message, status, stackTrace, \"DetailedApiError\", correlationId);\n this.error = error;\n }\n};\n\n// src/transporter/helpers.ts\nfunction shuffle(array) {\n const shuffledArray = array;\n for (let c = array.length - 1; c > 0; c--) {\n const b = Math.floor(Math.random() * (c + 1));\n const a = array[c];\n shuffledArray[c] = array[b];\n shuffledArray[b] = a;\n }\n return shuffledArray;\n}\nfunction serializeUrl(host, path, queryParameters) {\n const queryParametersAsString = serializeQueryParameters(queryParameters);\n let url = `${host.protocol}://${host.url}${host.port ? `:${host.port}` : \"\"}/${path.charAt(0) === \"/\" ? path.substring(1) : path}`;\n if (queryParametersAsString.length) {\n url += `?${queryParametersAsString}`;\n }\n return url;\n}\nfunction serializeQueryParameters(parameters) {\n return Object.keys(parameters).filter((key) => parameters[key] !== void 0).sort().map(\n (key) => `${key}=${encodeURIComponent(\n Object.prototype.toString.call(parameters[key]) === \"[object Array]\" ? parameters[key].join(\",\") : parameters[key]\n ).replace(/\\+/g, \"%20\")}`\n ).join(\"&\");\n}\nfunction serializeData(request, requestOptions) {\n if (request.method === \"GET\" || request.data === void 0 && requestOptions.data === void 0) {\n return void 0;\n }\n const data = Array.isArray(request.data) ? request.data : { ...request.data, ...requestOptions.data };\n return JSON.stringify(data);\n}\nfunction serializeHeaders(baseHeaders, requestHeaders, requestOptionsHeaders) {\n const headers = {\n Accept: \"application/json\",\n ...baseHeaders,\n ...requestHeaders,\n ...requestOptionsHeaders\n };\n const serializedHeaders = {};\n Object.keys(headers).forEach((header) => {\n const value = headers[header];\n serializedHeaders[header.toLowerCase()] = value;\n });\n return serializedHeaders;\n}\nfunction deserializeSuccess(response) {\n if (response.status === 204 || response.content.length === 0) {\n return void 0;\n }\n try {\n return JSON.parse(response.content);\n } catch (e) {\n throw new DeserializationError(e.message, response, getCorrelationId(response.headers));\n }\n}\nfunction deserializeSuccessWithHttpInfo(response) {\n return {\n status: response.status,\n headers: response.headers,\n content: response.content,\n data: deserializeSuccess(response)\n };\n}\nfunction getCorrelationId(headers) {\n if (!headers) {\n return void 0;\n }\n if (headers[\"correlation-id\"] !== void 0) {\n return headers[\"correlation-id\"];\n }\n const header = Object.keys(headers).find((key) => key.toLowerCase() === \"correlation-id\");\n return header === void 0 ? void 0 : headers[header];\n}\nfunction getLastCorrelationId(stackTrace) {\n for (let i = stackTrace.length - 1; i >= 0; i--) {\n const correlationId = getCorrelationId(stackTrace[i].response.headers);\n if (correlationId !== void 0) {\n return correlationId;\n }\n }\n return void 0;\n}\nfunction deserializeFailure(response, stackFrame) {\n const { content, status } = response;\n const correlationId = getCorrelationId(response.headers);\n try {\n const parsed = JSON.parse(content);\n if (\"error\" in parsed) {\n return new DetailedApiError(parsed.message, status, parsed.error, stackFrame, correlationId);\n }\n return new ApiError(parsed.message, status, stackFrame, \"ApiError\", correlationId);\n } catch {\n }\n return new ApiError(content, status, stackFrame, \"ApiError\", correlationId);\n}\n\n// src/transporter/requestId.ts\nvar BASE62_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\nvar REQUEST_ID_LENGTH = 11;\nfunction generateRequestId() {\n var _a;\n let requestId = \"\";\n if (typeof ((_a = globalThis.crypto) == null ? void 0 : _a.getRandomValues) === \"function\") {\n const bytes = new Uint8Array(REQUEST_ID_LENGTH);\n globalThis.crypto.getRandomValues(bytes);\n for (const byte of bytes) {\n requestId += BASE62_CHARS[byte % BASE62_CHARS.length];\n }\n return requestId;\n }\n for (let i = 0; i < REQUEST_ID_LENGTH; i++) {\n requestId += BASE62_CHARS[Math.floor(Math.random() * BASE62_CHARS.length)];\n }\n return requestId;\n}\nfunction hasRequestId(headers, queryParameters) {\n return headers !== void 0 && Object.keys(headers).some((header) => header.toLowerCase() === \"request-id\") || queryParameters !== void 0 && Object.keys(queryParameters).some((parameter) => parameter.toLowerCase() === \"x-algolia-request-id\");\n}\nfunction withRequestId(transporter, requestOptions) {\n if (transporter.requestIdChannel === void 0 || hasRequestId(transporter.baseHeaders, transporter.baseQueryParameters) || hasRequestId(requestOptions == null ? void 0 : requestOptions.headers, requestOptions == null ? void 0 : requestOptions.queryParameters)) {\n return requestOptions;\n }\n if (transporter.requestIdChannel === \"headers\") {\n return { ...requestOptions, headers: { ...requestOptions == null ? void 0 : requestOptions.headers, \"request-id\": generateRequestId() } };\n }\n return {\n ...requestOptions,\n queryParameters: { ...requestOptions == null ? void 0 : requestOptions.queryParameters, \"x-algolia-request-id\": generateRequestId() }\n };\n}\n\n// src/transporter/responses.ts\nvar DEFAULT_RATE_LIMIT_WAIT_MS = 1e3;\nfunction isNetworkError({ isTimedOut, status }) {\n return !isTimedOut && ~~status === 0;\n}\nfunction isRetryable({ isTimedOut, status }) {\n return isTimedOut || isNetworkError({ isTimedOut, status }) || ~~(status / 100) !== 2 && ~~(status / 100) !== 4;\n}\nfunction isSuccess({ status }) {\n return ~~(status / 100) === 2;\n}\nfunction isRateLimited({ status }) {\n return ~~status === 429;\n}\nvar HTTP_429_MESSAGE = /^HTTP 429(?:\\D|$)/;\nfunction isRateLimitedError(error) {\n if (typeof error === \"object\" && error !== null && \"status\" in error) {\n return isRateLimited(error);\n }\n return error instanceof Error && HTTP_429_MESSAGE.test(error.message);\n}\nfunction headersFromError(error) {\n if (typeof error === \"object\" && error !== null && \"headers\" in error) {\n return error.headers;\n }\n return void 0;\n}\nfunction parseRetryAfterMs(headers) {\n var _a;\n const raw = (_a = headers == null ? void 0 : headers[\"retry-after\"]) == null ? void 0 : _a.trim();\n if (raw === void 0 || raw.length === 0) {\n return DEFAULT_RATE_LIMIT_WAIT_MS;\n }\n if (!/^\\d+$/.test(raw)) {\n return DEFAULT_RATE_LIMIT_WAIT_MS;\n }\n const seconds = Number.parseInt(raw, 10);\n if (seconds <= 0) {\n return DEFAULT_RATE_LIMIT_WAIT_MS;\n }\n return seconds * 1e3;\n}\n\n// src/transporter/stackTrace.ts\nfunction stackTraceWithoutCredentials(stackTrace) {\n return stackTrace.map((stackFrame) => stackFrameWithoutCredentials(stackFrame));\n}\nfunction stackFrameWithoutCredentials(stackFrame) {\n const modifiedHeaders = stackFrame.request.headers[\"x-algolia-api-key\"] ? { \"x-algolia-api-key\": \"*****\" } : {};\n return {\n ...stackFrame,\n request: {\n ...stackFrame.request,\n headers: {\n ...stackFrame.request.headers,\n ...modifiedHeaders\n }\n }\n };\n}\n\n// src/transporter/createTransporter.ts\nfunction createTransporter({\n hosts,\n hostsCache,\n baseHeaders,\n logger,\n baseQueryParameters,\n algoliaAgent,\n timeouts,\n requester,\n requestsCache,\n responsesCache,\n compress,\n compression,\n requestIdChannel,\n maxRateLimitRetries = 3\n}) {\n function injectRequestId(headers, queryParameters) {\n if (requestIdChannel === void 0 || headers[\"request-id\"] !== void 0 || Object.keys(queryParameters).some((parameter) => parameter.toLowerCase() === \"x-algolia-request-id\")) {\n return;\n }\n if (requestIdChannel === \"headers\") {\n headers[\"request-id\"] = generateRequestId();\n } else {\n queryParameters[\"x-algolia-request-id\"] = generateRequestId();\n }\n }\n const wait = (ms) => new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n async function createRetryableOptions(compatibleHosts) {\n const statefulHosts = await Promise.all(\n compatibleHosts.map((compatibleHost) => {\n return hostsCache.get(compatibleHost, () => {\n return Promise.resolve(createStatefulHost(compatibleHost));\n });\n })\n );\n const hostsUp = statefulHosts.filter((host) => host.isUp());\n const hostsTimedOut = statefulHosts.filter((host) => host.isTimedOut());\n const hostsAvailable = [...hostsUp, ...hostsTimedOut];\n const compatibleHostsAvailable = hostsAvailable.length > 0 ? hostsAvailable : compatibleHosts;\n return {\n hosts: compatibleHostsAvailable,\n getTimeout(timeoutsCount, baseTimeout) {\n const timeoutMultiplier = hostsTimedOut.length === 0 && timeoutsCount === 0 ? 1 : hostsTimedOut.length + 3 + timeoutsCount;\n return timeoutMultiplier * baseTimeout;\n }\n };\n }\n async function retryableRequest(request, requestOptions, isRead) {\n const stackTrace = [];\n const serializedData = serializeData(request, requestOptions);\n const headers = serializeHeaders(baseHeaders, request.headers, requestOptions.headers);\n const wantsCompression = compression === \"gzip\" && serializedData !== void 0 && serializedData.length > COMPRESSION_THRESHOLD && (request.method === \"POST\" || request.method === \"PUT\");\n if (wantsCompression && compress === void 0) {\n logger.info(\"Compression is disabled because no compress method is available.\");\n }\n const shouldCompress = wantsCompression && compress !== void 0;\n const data = shouldCompress ? await compress(serializedData) : serializedData;\n if (shouldCompress) {\n headers[\"content-encoding\"] = \"gzip\";\n }\n const dataQueryParameters = request.method === \"GET\" ? {\n ...request.data,\n ...requestOptions.data\n } : {};\n const queryParameters = {\n ...baseQueryParameters,\n ...request.queryParameters,\n ...dataQueryParameters\n };\n if (algoliaAgent.value) {\n queryParameters[\"x-algolia-agent\"] = algoliaAgent.value;\n }\n if (requestOptions && requestOptions.queryParameters) {\n for (const key of Object.keys(requestOptions.queryParameters)) {\n if (!requestOptions.queryParameters[key] || Object.prototype.toString.call(requestOptions.queryParameters[key]) === \"[object Object]\") {\n queryParameters[key] = requestOptions.queryParameters[key];\n } else {\n queryParameters[key] = requestOptions.queryParameters[key].toString();\n }\n }\n }\n injectRequestId(headers, queryParameters);\n let timeoutsCount = 0;\n let rateLimitRetriesLeft = maxRateLimitRetries;\n const retry = async (retryableHosts, getTimeout) => {\n const host = retryableHosts.pop();\n if (host === void 0) {\n throw new RetryError(stackTraceWithoutCredentials(stackTrace), getLastCorrelationId(stackTrace));\n }\n const timeout = { ...timeouts, ...requestOptions.timeouts };\n const payload = {\n data,\n headers,\n method: request.method,\n url: serializeUrl(host, request.path, queryParameters),\n connectTimeout: getTimeout(timeoutsCount, timeout.connect),\n responseTimeout: getTimeout(timeoutsCount, isRead ? timeout.read : timeout.write)\n };\n const pushToStackTrace = (response2) => {\n const stackFrame = {\n request: payload,\n response: response2,\n host,\n triesLeft: retryableHosts.length\n };\n stackTrace.push(stackFrame);\n return stackFrame;\n };\n const response = await requester.send(payload);\n if (isRateLimited(response) && rateLimitRetriesLeft > 0) {\n rateLimitRetriesLeft--;\n retryableHosts.push(host);\n const stackFrame = pushToStackTrace(response);\n const waitMs = parseRetryAfterMs(response.headers);\n logger.info(\"Retryable failure\", {\n ...stackFrameWithoutCredentials(stackFrame),\n wait: waitMs,\n rateLimitRetriesLeft\n });\n await wait(waitMs);\n return retry(retryableHosts, getTimeout);\n }\n if (isRetryable(response)) {\n const stackFrame = pushToStackTrace(response);\n if (response.isTimedOut) {\n timeoutsCount++;\n }\n logger.info(\"Retryable failure\", stackFrameWithoutCredentials(stackFrame));\n await hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? \"timed out\" : \"down\"));\n return retry(retryableHosts, getTimeout);\n }\n if (isSuccess(response)) {\n return response;\n }\n pushToStackTrace(response);\n throw deserializeFailure(response, stackTrace);\n };\n const compatibleHosts = hosts.filter(\n (host) => host.accept === \"readWrite\" || (isRead ? host.accept === \"read\" : host.accept === \"write\")\n );\n const options = await createRetryableOptions(compatibleHosts);\n return retry([...options.hosts].reverse(), options.getTimeout);\n }\n function createRequest(request, requestOptions = {}) {\n const createRetryableRequest = () => {\n return retryableRequest(request, requestOptions, isRead).then(\n (response) => deserializeSuccess(response)\n );\n };\n const isRead = request.useReadTransporter || request.method === \"GET\";\n const cacheable = requestOptions.cacheable || request.cacheable;\n if (cacheable !== true) {\n return createRetryableRequest();\n }\n const key = {\n request,\n requestOptions,\n transporter: {\n queryParameters: baseQueryParameters,\n headers: baseHeaders\n }\n };\n return responsesCache.get(\n key,\n () => {\n return requestsCache.get(\n key,\n () => (\n /**\n * Finally, if there is no request in progress with the same key,\n * this `createRetryableRequest()` will actually trigger the\n * retryable request.\n */\n requestsCache.set(key, createRetryableRequest()).then(\n (response) => Promise.all([requestsCache.delete(key), response]),\n (err) => Promise.all([requestsCache.delete(key), Promise.reject(err)])\n ).then(([_, response]) => response)\n )\n );\n },\n {\n /**\n * Of course, once we get this response back from the server, we\n * tell response cache to actually store the received response\n * to be used later.\n */\n miss: (response) => responsesCache.set(key, response)\n }\n );\n }\n function createRequestWithHttpInfo(request, requestOptions = {}) {\n const isRead = request.useReadTransporter || request.method === \"GET\";\n return retryableRequest(request, requestOptions, isRead).then(\n (response) => deserializeSuccessWithHttpInfo(response)\n );\n }\n async function* requestStream(request, requestOptions = {}) {\n if (!requester.sendStream) {\n throw new Error(\"This requester does not support streaming\");\n }\n const data = serializeData(request, requestOptions);\n const headers = serializeHeaders(baseHeaders, request.headers, requestOptions.headers);\n headers[\"accept\"] = \"text/event-stream\";\n const dataQueryParameters = request.method === \"GET\" ? {\n ...request.data,\n ...requestOptions.data\n } : {};\n const queryParameters = {\n ...baseQueryParameters,\n ...request.queryParameters,\n ...dataQueryParameters\n };\n if (algoliaAgent.value) {\n queryParameters[\"x-algolia-agent\"] = algoliaAgent.value;\n }\n if (requestOptions && requestOptions.queryParameters) {\n for (const key of Object.keys(requestOptions.queryParameters)) {\n if (!requestOptions.queryParameters[key] || Object.prototype.toString.call(requestOptions.queryParameters[key]) === \"[object Object]\") {\n queryParameters[key] = requestOptions.queryParameters[key];\n } else {\n queryParameters[key] = requestOptions.queryParameters[key].toString();\n }\n }\n }\n injectRequestId(headers, queryParameters);\n const isRead = request.useReadTransporter || request.method === \"GET\";\n const compatibleHosts = hosts.filter(\n (host2) => host2.accept === \"readWrite\" || (isRead ? host2.accept === \"read\" : host2.accept === \"write\")\n );\n const options = await createRetryableOptions(compatibleHosts);\n const host = options.hosts[0];\n if (!host) {\n throw new RetryError([]);\n }\n const timeout = { ...timeouts, ...requestOptions.timeouts };\n const payload = {\n data,\n headers,\n method: request.method,\n url: serializeUrl(host, request.path, queryParameters),\n connectTimeout: timeout.connect,\n responseTimeout: isRead ? timeout.read : timeout.write\n };\n let rateLimitRetriesLeft = maxRateLimitRetries;\n while (true) {\n let stream;\n try {\n stream = await requester.sendStream(payload);\n } catch (error) {\n if (isRateLimitedError(error) && rateLimitRetriesLeft > 0) {\n rateLimitRetriesLeft--;\n const waitMs = parseRetryAfterMs(headersFromError(error));\n logger.info(\"Retryable failure\", {\n wait: waitMs,\n rateLimitRetriesLeft,\n host\n });\n await wait(waitMs);\n continue;\n }\n throw error;\n }\n yield* iterSSEEvents(stream);\n return;\n }\n }\n return {\n hostsCache,\n requester,\n timeouts,\n logger,\n algoliaAgent,\n baseHeaders,\n baseQueryParameters,\n requestIdChannel,\n hosts,\n maxRateLimitRetries,\n request: createRequest,\n requestWithHttpInfo: createRequestWithHttpInfo,\n requestStream,\n requestsCache,\n responsesCache\n };\n}\n\n// src/types/logger.ts\nvar LogLevelEnum = {\n Debug: 1,\n Info: 2,\n Error: 3\n};\n\n// src/validateParam.ts\nfunction validateRequired(field, method, value) {\n if (value == null || typeof value === \"string\" && value.length === 0) {\n throw new Error(`Parameter \\`${field}\\` is required when calling \\`${method}\\`.`);\n }\n}\nexport {\n AlgoliaError,\n ApiError,\n COMPRESSION_THRESHOLD,\n DEFAULT_CONNECT_TIMEOUT_BROWSER,\n DEFAULT_CONNECT_TIMEOUT_NODE,\n DEFAULT_READ_TIMEOUT_BROWSER,\n DEFAULT_READ_TIMEOUT_NODE,\n DEFAULT_REPLACE_ALL_OBJECTS_MAX_RETRIES,\n DEFAULT_WRITE_TIMEOUT_BROWSER,\n DEFAULT_WRITE_TIMEOUT_NODE,\n DeserializationError,\n DetailedApiError,\n ErrorWithStackTrace,\n IndexAlreadyExistsError,\n IndexNotFoundError,\n IndicesInSameAppError,\n LogLevelEnum,\n RetryError,\n StreamRequestError,\n createAlgoliaAgent,\n createAuth,\n createBrowserLocalStorageCache,\n createFallbackableCache,\n createIterablePromise,\n createMemoryCache,\n createNullCache,\n createNullLogger,\n createStatefulHost,\n createTransporter,\n deserializeFailure,\n deserializeSuccess,\n deserializeSuccessWithHttpInfo,\n generateRequestId,\n getAlgoliaAgent,\n getCorrelationId,\n getLastCorrelationId,\n headersFromError,\n isNetworkError,\n isRateLimited,\n isRateLimitedError,\n isRetryable,\n isSuccess,\n iterSSEEvents,\n logWarning,\n parseRetryAfterMs,\n serializeData,\n serializeHeaders,\n serializeQueryParameters,\n serializeUrl,\n shuffle,\n stackFrameWithoutCredentials,\n stackTraceWithoutCredentials,\n validateRequired,\n withRequestId\n};\n//# sourceMappingURL=common.js.map"],"names":["createNullCache","get","_key","defaultValue","events","miss","Promise","resolve","then","result","all","set","value","delete","clear","createAlgoliaAgent","version","algoliaAgent","add","options","addedAlgoliaAgent","segment","indexOf","async","iterLines","stream","decoder","TextDecoder","buffer","bufferSize","trailingCR","isFirstLine","chunk","Symbol","asyncIterator","reader","getReader","done","read","releaseLock","readableStreamToAsyncIterable","toAsyncIterable","text","decode","offset","length","crIdx","lfIdx","remaining2","slice","push","Error","endIdx","skipLen","line","join","startsWith","remaining","SSEDecoder","data","eventType","lastEventId","retry","this","dispatch","colonIdx","field","includes","test","parseInt","currentEventType","event","id","iterSSEEvents","EXPIRATION_DELAY","createStatefulHost","host","status","lastUpdate","Date","now","isUp","isTimedOut","AlgoliaError","name","constructor","message","super","ErrorWithStackTrace","stackTrace","correlationId","RetryError","ApiError","DeserializationError","response","DetailedApiError","error","serializeUrl","path","queryParameters","queryParametersAsString","serializeQueryParameters","url","protocol","port","charAt","substring","parameters","Object","keys","filter","key","sort","map","encodeURIComponent","prototype","toString","call","replace","serializeData","request","requestOptions","method","Array","isArray","JSON","stringify","serializeHeaders","baseHeaders","requestHeaders","requestOptionsHeaders","headers","Accept","serializedHeaders","forEach","header","toLowerCase","deserializeSuccess","content","parse","e","getCorrelationId","deserializeSuccessWithHttpInfo","find","getLastCorrelationId","i","deserializeFailure","stackFrame","parsed","BASE62_CHARS","generateRequestId","_a","requestId","globalThis","crypto","getRandomValues","bytes","Uint8Array","byte","Math","floor","random","DEFAULT_RATE_LIMIT_WAIT_MS","isNetworkError","isRetryable","isSuccess","isRateLimited","HTTP_429_MESSAGE","isRateLimitedError","headersFromError","parseRetryAfterMs","raw","trim","seconds","Number","stackTraceWithoutCredentials","stackFrameWithoutCredentials","modifiedHeaders","appId","apiKey","authMode","credentials","storage","namespaceKey","getStorage","localStorage","window","getNamespace","getItem","yieldToMain","setTimeout","namespace","changed","timeToLive","currentTime","getTime","fromEntries","entries","cacheItem","timestamp","getFilteredNamespace","cachedItem","setItem","setNamespace","removeItem","createFallbackableCache","caches","current","shift","catch","serializable","cache","keyAsString","promise","debug","_message","_args","info","hosts","hostsCache","logger","baseQueryParameters","timeouts","requester","requestsCache","responsesCache","compress","compression","requestIdChannel","maxRateLimitRetries","injectRequestId","some","parameter","wait","ms","createRetryableOptions","compatibleHosts","statefulHosts","compatibleHost","hostsUp","hostsTimedOut","hostsAvailable","getTimeout","timeoutsCount","baseTimeout","retryableRequest","isRead","serializedData","wantsCompression","shouldCompress","dataQueryParameters","rateLimitRetriesLeft","retryableHosts","pop","timeout","payload","connectTimeout","connect","responseTimeout","write","pushToStackTrace","response2","triesLeft","send","waitMs","accept","reverse","createRetryableRequest","useReadTransporter","cacheable","transporter","err","reject","_","requestWithHttpInfo","requestStream","sendStream","host2","algoliaAgents","client","defaultAlgoliaAgent","array","shuffledArray","c","b","a"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"common.js","sources":["../../../../../../node_modules/@algolia/client-common/dist/common.js"],"sourcesContent":["// src/cache/createBrowserLocalStorageCache.ts\nfunction createBrowserLocalStorageCache(options) {\n let storage;\n const namespaceKey = `algolia-client-js-${options.key}`;\n function getStorage() {\n if (storage === void 0) {\n storage = options.localStorage || window.localStorage;\n }\n return storage;\n }\n function getNamespace() {\n return JSON.parse(getStorage().getItem(namespaceKey) || \"{}\");\n }\n function setNamespace(namespace) {\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\n }\n function yieldToMain() {\n return new Promise((resolve) => setTimeout(resolve, 0));\n }\n function getFilteredNamespace() {\n const timeToLive = options.timeToLive ? options.timeToLive * 1e3 : null;\n const namespace = getNamespace();\n const currentTime = (/* @__PURE__ */ new Date()).getTime();\n let changed = false;\n const filtered = Object.fromEntries(\n Object.entries(namespace).filter(([, cacheItem]) => {\n if (!cacheItem || cacheItem.timestamp === void 0) {\n changed = true;\n return false;\n }\n if (!timeToLive) {\n return true;\n }\n if (cacheItem.timestamp + timeToLive < currentTime) {\n changed = true;\n return false;\n }\n return true;\n })\n );\n return { namespace: filtered, changed };\n }\n return {\n get(key, defaultValue, events = {\n miss: () => Promise.resolve()\n }) {\n return yieldToMain().then(() => {\n const { namespace, changed } = getFilteredNamespace();\n const cachedItem = namespace[JSON.stringify(key)];\n if (changed) {\n setNamespace(namespace);\n }\n if (cachedItem) {\n return cachedItem.value;\n }\n return defaultValue().then((value) => events.miss(value).then(() => value));\n });\n },\n set(key, value) {\n return yieldToMain().then(() => {\n const namespace = getNamespace();\n namespace[JSON.stringify(key)] = {\n timestamp: (/* @__PURE__ */ new Date()).getTime(),\n value\n };\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\n return value;\n });\n },\n delete(key) {\n return yieldToMain().then(() => {\n const namespace = getNamespace();\n delete namespace[JSON.stringify(key)];\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\n });\n },\n clear() {\n return Promise.resolve().then(() => {\n getStorage().removeItem(namespaceKey);\n });\n }\n };\n}\n\n// src/cache/createNullCache.ts\nfunction createNullCache() {\n return {\n get(_key, defaultValue, events = {\n miss: () => Promise.resolve()\n }) {\n const value = defaultValue();\n return value.then((result) => Promise.all([result, events.miss(result)])).then(([result]) => result);\n },\n set(_key, value) {\n return Promise.resolve(value);\n },\n delete(_key) {\n return Promise.resolve();\n },\n clear() {\n return Promise.resolve();\n }\n };\n}\n\n// src/cache/createFallbackableCache.ts\nfunction createFallbackableCache(options) {\n const caches = [...options.caches];\n const current = caches.shift();\n if (current === void 0) {\n return createNullCache();\n }\n return {\n get(key, defaultValue, events = {\n miss: () => Promise.resolve()\n }) {\n return current.get(key, defaultValue, events).catch(() => {\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\n });\n },\n set(key, value) {\n return current.set(key, value).catch(() => {\n return createFallbackableCache({ caches }).set(key, value);\n });\n },\n delete(key) {\n return current.delete(key).catch(() => {\n return createFallbackableCache({ caches }).delete(key);\n });\n },\n clear() {\n return current.clear().catch(() => {\n return createFallbackableCache({ caches }).clear();\n });\n }\n };\n}\n\n// src/cache/createMemoryCache.ts\nfunction createMemoryCache(options = { serializable: true }) {\n let cache = {};\n return {\n get(key, defaultValue, events = {\n miss: () => Promise.resolve()\n }) {\n const keyAsString = JSON.stringify(key);\n if (keyAsString in cache) {\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\n }\n const promise = defaultValue();\n return promise.then((value) => events.miss(value)).then(() => promise);\n },\n set(key, value) {\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\n return Promise.resolve(value);\n },\n delete(key) {\n delete cache[JSON.stringify(key)];\n return Promise.resolve();\n },\n clear() {\n cache = {};\n return Promise.resolve();\n }\n };\n}\n\n// src/constants.ts\nvar DEFAULT_CONNECT_TIMEOUT_BROWSER = 1e3;\nvar DEFAULT_READ_TIMEOUT_BROWSER = 2e3;\nvar DEFAULT_WRITE_TIMEOUT_BROWSER = 3e4;\nvar DEFAULT_CONNECT_TIMEOUT_NODE = 2e3;\nvar DEFAULT_READ_TIMEOUT_NODE = 5e3;\nvar DEFAULT_WRITE_TIMEOUT_NODE = 3e4;\n\n// src/createAlgoliaAgent.ts\nfunction createAlgoliaAgent(version) {\n const algoliaAgent = {\n value: `Algolia for JavaScript (${version})`,\n add(options) {\n const addedAlgoliaAgent = `; ${options.segment}${options.version !== void 0 ? ` (${options.version})` : \"\"}`;\n if (algoliaAgent.value.indexOf(addedAlgoliaAgent) === -1) {\n algoliaAgent.value = `${algoliaAgent.value}${addedAlgoliaAgent}`;\n }\n return algoliaAgent;\n }\n };\n return algoliaAgent;\n}\n\n// src/createAuth.ts\nfunction createAuth(appId, apiKey, authMode = \"WithinHeaders\") {\n const credentials = {\n \"x-algolia-api-key\": apiKey,\n \"x-algolia-application-id\": appId\n };\n return {\n headers() {\n return authMode === \"WithinHeaders\" ? credentials : {};\n },\n queryParameters() {\n return authMode === \"WithinQueryParameters\" ? credentials : {};\n }\n };\n}\n\n// src/createIterablePromise.ts\nfunction createIterablePromise({\n func,\n validate,\n aggregator,\n error,\n timeout = () => 0\n}) {\n const retry = (previousResponse) => {\n return new Promise((resolve, reject) => {\n func(previousResponse).then(async (response) => {\n if (aggregator) {\n await aggregator(response);\n }\n if (await validate(response)) {\n return resolve(response);\n }\n if (error && await error.validate(response)) {\n return reject(new Error(await error.message(response)));\n }\n return setTimeout(\n () => {\n retry(response).then(resolve).catch(reject);\n },\n await timeout()\n );\n }).catch((err) => {\n reject(err);\n });\n });\n };\n return retry();\n}\n\n// src/getAlgoliaAgent.ts\nfunction getAlgoliaAgent({ algoliaAgents, client, version }) {\n const defaultAlgoliaAgent = createAlgoliaAgent(version).add({\n segment: client,\n version\n });\n algoliaAgents.forEach((algoliaAgent) => defaultAlgoliaAgent.add(algoliaAgent));\n return defaultAlgoliaAgent;\n}\n\n// src/logger/createNullLogger.ts\nfunction createNullLogger() {\n return {\n debug(_message, _args) {\n return Promise.resolve();\n },\n info(_message, _args) {\n return Promise.resolve();\n },\n error(_message, _args) {\n return Promise.resolve();\n }\n };\n}\n\n// src/sse.ts\nvar MAX_LINE_BUFFER_SIZE = 10 * 1024 * 1024;\nasync function* readableStreamToAsyncIterable(stream) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) return;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n}\nfunction toAsyncIterable(stream) {\n if (Symbol.asyncIterator in stream) {\n return stream;\n }\n return readableStreamToAsyncIterable(stream);\n}\nasync function* iterLines(stream) {\n const decoder = new TextDecoder(\"utf-8\");\n const buffer = [];\n let bufferSize = 0;\n let trailingCR = false;\n let isFirstLine = true;\n for await (const chunk of toAsyncIterable(stream)) {\n const text = decoder.decode(chunk, { stream: true });\n let offset = 0;\n if (trailingCR) {\n trailingCR = false;\n if (text.length > 0 && text[0] === \"\\n\") {\n offset = 1;\n }\n }\n while (offset < text.length) {\n const crIdx = text.indexOf(\"\\r\", offset);\n const lfIdx = text.indexOf(\"\\n\", offset);\n if (crIdx === -1 && lfIdx === -1) {\n const remaining2 = text.slice(offset);\n buffer.push(remaining2);\n bufferSize += remaining2.length;\n if (bufferSize > MAX_LINE_BUFFER_SIZE) {\n throw new Error(\"SSE line buffer exceeded 10MB\");\n }\n break;\n }\n let endIdx;\n let skipLen;\n if (crIdx !== -1 && (lfIdx === -1 || crIdx < lfIdx)) {\n endIdx = crIdx;\n if (crIdx + 1 < text.length) {\n skipLen = text[crIdx + 1] === \"\\n\" ? 2 : 1;\n } else {\n trailingCR = true;\n skipLen = 1;\n }\n } else {\n endIdx = lfIdx;\n skipLen = 1;\n }\n const segment = text.slice(offset, endIdx);\n buffer.push(segment);\n let line = buffer.length === 1 ? buffer[0] : buffer.join(\"\");\n buffer.length = 0;\n bufferSize = 0;\n if (isFirstLine) {\n if (line.startsWith(\"\\uFEFF\")) {\n line = line.slice(1);\n }\n isFirstLine = false;\n }\n yield line;\n offset = endIdx + skipLen;\n }\n }\n const remaining = decoder.decode();\n if (remaining) {\n buffer.push(remaining);\n }\n if (buffer.length > 0) {\n let line = buffer.join(\"\");\n if (isFirstLine && line.startsWith(\"\\uFEFF\")) {\n line = line.slice(1);\n }\n yield line;\n }\n}\nvar SSEDecoder = class {\n data = [];\n eventType = \"\";\n lastEventId = null;\n retry = null;\n decode(line) {\n if (line === \"\") {\n return this.dispatch();\n }\n if (line[0] === \":\") {\n return null;\n }\n const colonIdx = line.indexOf(\":\");\n let field;\n let value;\n if (colonIdx === -1) {\n field = line;\n value = \"\";\n } else {\n field = line.slice(0, colonIdx);\n value = line.slice(colonIdx + 1);\n if (value[0] === \" \") {\n value = value.slice(1);\n }\n }\n switch (field) {\n case \"data\":\n this.data.push(value);\n break;\n case \"event\":\n this.eventType = value;\n break;\n case \"id\":\n if (!value.includes(\"\\0\")) {\n this.lastEventId = value;\n }\n break;\n case \"retry\":\n if (/^[0-9]+$/.test(value)) {\n this.retry = parseInt(value, 10);\n }\n break;\n }\n return null;\n }\n dispatch() {\n const currentEventType = this.eventType;\n this.eventType = \"\";\n if (this.data.length === 0) {\n return null;\n }\n const event = {\n data: this.data.join(\"\\n\"),\n event: currentEventType,\n id: this.lastEventId,\n retry: this.retry\n };\n this.data = [];\n return event;\n }\n};\nasync function* iterSSEEvents(stream) {\n const decoder = new SSEDecoder();\n for await (const line of iterLines(stream)) {\n const event = decoder.decode(line);\n if (event !== null) {\n yield event;\n }\n }\n}\n\n// src/transporter/compress.ts\nvar COMPRESSION_THRESHOLD = 750;\n\n// src/transporter/createStatefulHost.ts\nvar EXPIRATION_DELAY = 2 * 60 * 1e3;\nfunction createStatefulHost(host, status = \"up\") {\n const lastUpdate = Date.now();\n function isUp() {\n return status === \"up\" || Date.now() - lastUpdate > EXPIRATION_DELAY;\n }\n function isTimedOut() {\n return status === \"timed out\" && Date.now() - lastUpdate <= EXPIRATION_DELAY;\n }\n return { ...host, status, lastUpdate, isUp, isTimedOut };\n}\n\n// src/transporter/errors.ts\nvar AlgoliaError = class extends Error {\n name = \"AlgoliaError\";\n constructor(message, name) {\n super(message);\n if (name) {\n this.name = name;\n }\n }\n};\nvar IndexNotFoundError = class extends AlgoliaError {\n constructor(indexName) {\n super(`${indexName} does not exist`, \"IndexNotFoundError\");\n }\n};\nvar IndicesInSameAppError = class extends AlgoliaError {\n constructor() {\n super(\"Indices are in the same application. Use operationIndex instead.\", \"IndicesInSameAppError\");\n }\n};\nvar IndexAlreadyExistsError = class extends AlgoliaError {\n constructor(indexName) {\n super(`${indexName} index already exists.`, \"IndexAlreadyExistsError\");\n }\n};\nvar ErrorWithStackTrace = class extends AlgoliaError {\n stackTrace;\n constructor(message, stackTrace, name) {\n super(message, name);\n this.stackTrace = stackTrace;\n }\n};\nvar RetryError = class extends ErrorWithStackTrace {\n constructor(stackTrace) {\n super(\n \"Unreachable hosts - your application id may be incorrect. If the error persists, please visit our help center https://alg.li/support-unreachable-hosts or reach out to the Algolia Support team: https://alg.li/support\",\n stackTrace,\n \"RetryError\"\n );\n }\n};\nvar ApiError = class extends ErrorWithStackTrace {\n status;\n constructor(message, status, stackTrace, name = \"ApiError\") {\n super(message, stackTrace, name);\n this.status = status;\n }\n};\nvar DeserializationError = class extends AlgoliaError {\n response;\n constructor(message, response) {\n super(message, \"DeserializationError\");\n this.response = response;\n }\n};\nvar DetailedApiError = class extends ApiError {\n error;\n constructor(message, status, error, stackTrace) {\n super(message, status, stackTrace, \"DetailedApiError\");\n this.error = error;\n }\n};\n\n// src/transporter/helpers.ts\nfunction shuffle(array) {\n const shuffledArray = array;\n for (let c = array.length - 1; c > 0; c--) {\n const b = Math.floor(Math.random() * (c + 1));\n const a = array[c];\n shuffledArray[c] = array[b];\n shuffledArray[b] = a;\n }\n return shuffledArray;\n}\nfunction serializeUrl(host, path, queryParameters) {\n const queryParametersAsString = serializeQueryParameters(queryParameters);\n let url = `${host.protocol}://${host.url}${host.port ? `:${host.port}` : \"\"}/${path.charAt(0) === \"/\" ? path.substring(1) : path}`;\n if (queryParametersAsString.length) {\n url += `?${queryParametersAsString}`;\n }\n return url;\n}\nfunction serializeQueryParameters(parameters) {\n return Object.keys(parameters).filter((key) => parameters[key] !== void 0).sort().map(\n (key) => `${key}=${encodeURIComponent(\n Object.prototype.toString.call(parameters[key]) === \"[object Array]\" ? parameters[key].join(\",\") : parameters[key]\n ).replace(/\\+/g, \"%20\")}`\n ).join(\"&\");\n}\nfunction serializeData(request, requestOptions) {\n if (request.method === \"GET\" || request.data === void 0 && requestOptions.data === void 0) {\n return void 0;\n }\n const data = Array.isArray(request.data) ? request.data : { ...request.data, ...requestOptions.data };\n return JSON.stringify(data);\n}\nfunction serializeHeaders(baseHeaders, requestHeaders, requestOptionsHeaders) {\n const headers = {\n Accept: \"application/json\",\n ...baseHeaders,\n ...requestHeaders,\n ...requestOptionsHeaders\n };\n const serializedHeaders = {};\n Object.keys(headers).forEach((header) => {\n const value = headers[header];\n serializedHeaders[header.toLowerCase()] = value;\n });\n return serializedHeaders;\n}\nfunction deserializeSuccess(response) {\n if (response.status === 204 || response.content.length === 0) {\n return void 0;\n }\n try {\n return JSON.parse(response.content);\n } catch (e) {\n throw new DeserializationError(e.message, response);\n }\n}\nfunction deserializeFailure({ content, status }, stackFrame) {\n try {\n const parsed = JSON.parse(content);\n if (\"error\" in parsed) {\n return new DetailedApiError(parsed.message, status, parsed.error, stackFrame);\n }\n return new ApiError(parsed.message, status, stackFrame);\n } catch {\n }\n return new ApiError(content, status, stackFrame);\n}\n\n// src/transporter/responses.ts\nfunction isNetworkError({ isTimedOut, status }) {\n return !isTimedOut && ~~status === 0;\n}\nfunction isRetryable({ isTimedOut, status }) {\n return isTimedOut || isNetworkError({ isTimedOut, status }) || ~~(status / 100) !== 2 && ~~(status / 100) !== 4;\n}\nfunction isSuccess({ status }) {\n return ~~(status / 100) === 2;\n}\n\n// src/transporter/stackTrace.ts\nfunction stackTraceWithoutCredentials(stackTrace) {\n return stackTrace.map((stackFrame) => stackFrameWithoutCredentials(stackFrame));\n}\nfunction stackFrameWithoutCredentials(stackFrame) {\n const modifiedHeaders = stackFrame.request.headers[\"x-algolia-api-key\"] ? { \"x-algolia-api-key\": \"*****\" } : {};\n return {\n ...stackFrame,\n request: {\n ...stackFrame.request,\n headers: {\n ...stackFrame.request.headers,\n ...modifiedHeaders\n }\n }\n };\n}\n\n// src/transporter/createTransporter.ts\nfunction createTransporter({\n hosts,\n hostsCache,\n baseHeaders,\n logger,\n baseQueryParameters,\n algoliaAgent,\n timeouts,\n requester,\n requestsCache,\n responsesCache,\n compress,\n compression\n}) {\n async function createRetryableOptions(compatibleHosts) {\n const statefulHosts = await Promise.all(\n compatibleHosts.map((compatibleHost) => {\n return hostsCache.get(compatibleHost, () => {\n return Promise.resolve(createStatefulHost(compatibleHost));\n });\n })\n );\n const hostsUp = statefulHosts.filter((host) => host.isUp());\n const hostsTimedOut = statefulHosts.filter((host) => host.isTimedOut());\n const hostsAvailable = [...hostsUp, ...hostsTimedOut];\n const compatibleHostsAvailable = hostsAvailable.length > 0 ? hostsAvailable : compatibleHosts;\n return {\n hosts: compatibleHostsAvailable,\n getTimeout(timeoutsCount, baseTimeout) {\n const timeoutMultiplier = hostsTimedOut.length === 0 && timeoutsCount === 0 ? 1 : hostsTimedOut.length + 3 + timeoutsCount;\n return timeoutMultiplier * baseTimeout;\n }\n };\n }\n async function retryableRequest(request, requestOptions, isRead) {\n const stackTrace = [];\n const serializedData = serializeData(request, requestOptions);\n const headers = serializeHeaders(baseHeaders, request.headers, requestOptions.headers);\n const wantsCompression = compression === \"gzip\" && serializedData !== void 0 && serializedData.length > COMPRESSION_THRESHOLD && (request.method === \"POST\" || request.method === \"PUT\");\n if (wantsCompression && compress === void 0) {\n logger.info(\"Compression is disabled because no compress method is available.\");\n }\n const shouldCompress = wantsCompression && compress !== void 0;\n const data = shouldCompress ? await compress(serializedData) : serializedData;\n if (shouldCompress) {\n headers[\"content-encoding\"] = \"gzip\";\n }\n const dataQueryParameters = request.method === \"GET\" ? {\n ...request.data,\n ...requestOptions.data\n } : {};\n const queryParameters = {\n ...baseQueryParameters,\n ...request.queryParameters,\n ...dataQueryParameters\n };\n if (algoliaAgent.value) {\n queryParameters[\"x-algolia-agent\"] = algoliaAgent.value;\n }\n if (requestOptions && requestOptions.queryParameters) {\n for (const key of Object.keys(requestOptions.queryParameters)) {\n if (!requestOptions.queryParameters[key] || Object.prototype.toString.call(requestOptions.queryParameters[key]) === \"[object Object]\") {\n queryParameters[key] = requestOptions.queryParameters[key];\n } else {\n queryParameters[key] = requestOptions.queryParameters[key].toString();\n }\n }\n }\n let timeoutsCount = 0;\n const retry = async (retryableHosts, getTimeout) => {\n const host = retryableHosts.pop();\n if (host === void 0) {\n throw new RetryError(stackTraceWithoutCredentials(stackTrace));\n }\n const timeout = { ...timeouts, ...requestOptions.timeouts };\n const payload = {\n data,\n headers,\n method: request.method,\n url: serializeUrl(host, request.path, queryParameters),\n connectTimeout: getTimeout(timeoutsCount, timeout.connect),\n responseTimeout: getTimeout(timeoutsCount, isRead ? timeout.read : timeout.write)\n };\n const pushToStackTrace = (response2) => {\n const stackFrame = {\n request: payload,\n response: response2,\n host,\n triesLeft: retryableHosts.length\n };\n stackTrace.push(stackFrame);\n return stackFrame;\n };\n const response = await requester.send(payload);\n if (isRetryable(response)) {\n const stackFrame = pushToStackTrace(response);\n if (response.isTimedOut) {\n timeoutsCount++;\n }\n logger.info(\"Retryable failure\", stackFrameWithoutCredentials(stackFrame));\n await hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? \"timed out\" : \"down\"));\n return retry(retryableHosts, getTimeout);\n }\n if (isSuccess(response)) {\n return deserializeSuccess(response);\n }\n pushToStackTrace(response);\n throw deserializeFailure(response, stackTrace);\n };\n const compatibleHosts = hosts.filter(\n (host) => host.accept === \"readWrite\" || (isRead ? host.accept === \"read\" : host.accept === \"write\")\n );\n const options = await createRetryableOptions(compatibleHosts);\n return retry([...options.hosts].reverse(), options.getTimeout);\n }\n function createRequest(request, requestOptions = {}) {\n const createRetryableRequest = () => {\n return retryableRequest(request, requestOptions, isRead);\n };\n const isRead = request.useReadTransporter || request.method === \"GET\";\n const cacheable = requestOptions.cacheable || request.cacheable;\n if (cacheable !== true) {\n return createRetryableRequest();\n }\n const key = {\n request,\n requestOptions,\n transporter: {\n queryParameters: baseQueryParameters,\n headers: baseHeaders\n }\n };\n return responsesCache.get(\n key,\n () => {\n return requestsCache.get(\n key,\n () => (\n /**\n * Finally, if there is no request in progress with the same key,\n * this `createRetryableRequest()` will actually trigger the\n * retryable request.\n */\n requestsCache.set(key, createRetryableRequest()).then(\n (response) => Promise.all([requestsCache.delete(key), response]),\n (err) => Promise.all([requestsCache.delete(key), Promise.reject(err)])\n ).then(([_, response]) => response)\n )\n );\n },\n {\n /**\n * Of course, once we get this response back from the server, we\n * tell response cache to actually store the received response\n * to be used later.\n */\n miss: (response) => responsesCache.set(key, response)\n }\n );\n }\n async function* requestStream(request, requestOptions = {}) {\n if (!requester.sendStream) {\n throw new Error(\"This requester does not support streaming\");\n }\n const data = serializeData(request, requestOptions);\n const headers = serializeHeaders(baseHeaders, request.headers, requestOptions.headers);\n headers[\"accept\"] = \"text/event-stream\";\n const dataQueryParameters = request.method === \"GET\" ? {\n ...request.data,\n ...requestOptions.data\n } : {};\n const queryParameters = {\n ...baseQueryParameters,\n ...request.queryParameters,\n ...dataQueryParameters\n };\n if (algoliaAgent.value) {\n queryParameters[\"x-algolia-agent\"] = algoliaAgent.value;\n }\n if (requestOptions && requestOptions.queryParameters) {\n for (const key of Object.keys(requestOptions.queryParameters)) {\n if (!requestOptions.queryParameters[key] || Object.prototype.toString.call(requestOptions.queryParameters[key]) === \"[object Object]\") {\n queryParameters[key] = requestOptions.queryParameters[key];\n } else {\n queryParameters[key] = requestOptions.queryParameters[key].toString();\n }\n }\n }\n const isRead = request.useReadTransporter || request.method === \"GET\";\n const compatibleHosts = hosts.filter(\n (host2) => host2.accept === \"readWrite\" || (isRead ? host2.accept === \"read\" : host2.accept === \"write\")\n );\n const options = await createRetryableOptions(compatibleHosts);\n const host = options.hosts[0];\n if (!host) {\n throw new RetryError([]);\n }\n const timeout = { ...timeouts, ...requestOptions.timeouts };\n const payload = {\n data,\n headers,\n method: request.method,\n url: serializeUrl(host, request.path, queryParameters),\n connectTimeout: timeout.connect,\n responseTimeout: isRead ? timeout.read : timeout.write\n };\n const stream = await requester.sendStream(payload);\n yield* iterSSEEvents(stream);\n }\n return {\n hostsCache,\n requester,\n timeouts,\n logger,\n algoliaAgent,\n baseHeaders,\n baseQueryParameters,\n hosts,\n request: createRequest,\n requestStream,\n requestsCache,\n responsesCache\n };\n}\n\n// src/types/logger.ts\nvar LogLevelEnum = {\n Debug: 1,\n Info: 2,\n Error: 3\n};\n\n// src/validateParam.ts\nfunction validateRequired(field, method, value) {\n if (value == null || typeof value === \"string\" && value.length === 0) {\n throw new Error(`Parameter \\`${field}\\` is required when calling \\`${method}\\`.`);\n }\n}\nexport {\n AlgoliaError,\n ApiError,\n COMPRESSION_THRESHOLD,\n DEFAULT_CONNECT_TIMEOUT_BROWSER,\n DEFAULT_CONNECT_TIMEOUT_NODE,\n DEFAULT_READ_TIMEOUT_BROWSER,\n DEFAULT_READ_TIMEOUT_NODE,\n DEFAULT_WRITE_TIMEOUT_BROWSER,\n DEFAULT_WRITE_TIMEOUT_NODE,\n DeserializationError,\n DetailedApiError,\n ErrorWithStackTrace,\n IndexAlreadyExistsError,\n IndexNotFoundError,\n IndicesInSameAppError,\n LogLevelEnum,\n RetryError,\n createAlgoliaAgent,\n createAuth,\n createBrowserLocalStorageCache,\n createFallbackableCache,\n createIterablePromise,\n createMemoryCache,\n createNullCache,\n createNullLogger,\n createStatefulHost,\n createTransporter,\n deserializeFailure,\n deserializeSuccess,\n getAlgoliaAgent,\n isNetworkError,\n isRetryable,\n isSuccess,\n iterSSEEvents,\n serializeData,\n serializeHeaders,\n serializeQueryParameters,\n serializeUrl,\n shuffle,\n stackFrameWithoutCredentials,\n stackTraceWithoutCredentials,\n validateRequired\n};\n//# sourceMappingURL=common.js.map"],"names":["createNullCache","get","_key","defaultValue","events","miss","Promise","resolve","then","result","all","set","value","delete","clear","createAlgoliaAgent","version","algoliaAgent","add","options","addedAlgoliaAgent","segment","indexOf","async","iterLines","stream","decoder","TextDecoder","buffer","bufferSize","trailingCR","isFirstLine","chunk","Symbol","asyncIterator","reader","getReader","done","read","releaseLock","readableStreamToAsyncIterable","toAsyncIterable","text","decode","offset","length","crIdx","lfIdx","remaining2","slice","push","Error","endIdx","skipLen","line","join","startsWith","remaining","SSEDecoder","data","eventType","lastEventId","retry","this","dispatch","colonIdx","field","includes","test","parseInt","currentEventType","event","id","iterSSEEvents","EXPIRATION_DELAY","createStatefulHost","host","status","lastUpdate","Date","now","isUp","isTimedOut","AlgoliaError","name","constructor","message","super","ErrorWithStackTrace","stackTrace","RetryError","ApiError","DeserializationError","response","DetailedApiError","error","serializeUrl","path","queryParameters","queryParametersAsString","serializeQueryParameters","url","protocol","port","charAt","substring","parameters","Object","keys","filter","key","sort","map","encodeURIComponent","prototype","toString","call","replace","serializeData","request","requestOptions","method","Array","isArray","JSON","stringify","serializeHeaders","baseHeaders","requestHeaders","requestOptionsHeaders","headers","Accept","serializedHeaders","forEach","header","toLowerCase","deserializeSuccess","content","parse","e","deserializeFailure","stackFrame","parsed","isNetworkError","isRetryable","isSuccess","stackTraceWithoutCredentials","stackFrameWithoutCredentials","modifiedHeaders","appId","apiKey","authMode","credentials","storage","namespaceKey","getStorage","localStorage","window","getNamespace","getItem","yieldToMain","setTimeout","namespace","changed","timeToLive","currentTime","getTime","fromEntries","entries","cacheItem","timestamp","getFilteredNamespace","cachedItem","setItem","setNamespace","removeItem","createFallbackableCache","caches","current","shift","catch","serializable","cache","keyAsString","promise","debug","_message","_args","info","hosts","hostsCache","logger","baseQueryParameters","timeouts","requester","requestsCache","responsesCache","compress","compression","createRetryableOptions","compatibleHosts","statefulHosts","compatibleHost","hostsUp","hostsTimedOut","hostsAvailable","getTimeout","timeoutsCount","baseTimeout","createRetryableRequest","isRead","serializedData","wantsCompression","shouldCompress","dataQueryParameters","retryableHosts","pop","timeout","payload","connectTimeout","connect","responseTimeout","write","pushToStackTrace","response2","triesLeft","send","accept","reverse","retryableRequest","useReadTransporter","cacheable","transporter","err","reject","_","requestStream","sendStream","host2","algoliaAgents","client","defaultAlgoliaAgent","array","shuffledArray","c","b","Math","floor","random","a"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){let t={};for(let s of e.trim().split(/[\r\n]+/)){let e=s.indexOf(": ");e>0&&(t[s.slice(0,e).toLowerCase()]=s.slice(e+2))}return t}exports.createXhrRequester=function(){return{send:function(t){return new Promise(s=>{let o=new XMLHttpRequest;o.open(t.method,t.url,!0),Object.keys(t.headers).forEach(e=>o.setRequestHeader(e,t.headers[e]));let r,n=(e,t)=>setTimeout(()=>{o.abort(),s({status:0,content:t,isTimedOut:!0})},e),u=n(t.connectTimeout,"Connection timeout");o.onreadystatechange=()=>{o.readyState>o.OPENED&&void 0===r&&(clearTimeout(u),r=n(t.responseTimeout,"Socket timeout"))},o.onerror=()=>{0===o.status&&(clearTimeout(u),clearTimeout(r),s({content:o.responseText||"Network request failed",status:o.status,isTimedOut:!1}))},o.onload=()=>{clearTimeout(u),clearTimeout(r),s({content:o.responseText,headers:e(o.getAllResponseHeaders()),status:o.status,isTimedOut:!1})},o.send(t.data)})}}};
1
+ "use strict";exports.createXhrRequester=function(){return{send:function(e){return new Promise(t=>{let s=new XMLHttpRequest;s.open(e.method,e.url,!0),Object.keys(e.headers).forEach(t=>s.setRequestHeader(t,e.headers[t]));let o,r=(e,o)=>setTimeout(()=>{s.abort(),t({status:0,content:o,isTimedOut:!0})},e),n=r(e.connectTimeout,"Connection timeout");s.onreadystatechange=()=>{s.readyState>s.OPENED&&void 0===o&&(clearTimeout(n),o=r(e.responseTimeout,"Socket timeout"))},s.onerror=()=>{0===s.status&&(clearTimeout(n),clearTimeout(o),t({content:s.responseText||"Network request failed",status:s.status,isTimedOut:!1}))},s.onload=()=>{clearTimeout(n),clearTimeout(o),t({content:s.responseText,status:s.status,isTimedOut:!1})},s.send(e.data)})}}};
2
2
  //# sourceMappingURL=requester.xhr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requester.xhr.js","sources":["../../../../../../node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js"],"sourcesContent":["function d(r){let t={};for(let o of r.trim().split(/[\\r\\n]+/)){let e=o.indexOf(\": \");e>0&&(t[o.slice(0,e).toLowerCase()]=o.slice(e+2))}return t}function c(){function r(t){return new Promise(o=>{let e=new XMLHttpRequest;e.open(t.method,t.url,!0),Object.keys(t.headers).forEach(n=>e.setRequestHeader(n,t.headers[n]));let u=(n,a)=>setTimeout(()=>{e.abort(),o({status:0,content:a,isTimedOut:!0})},n),i=u(t.connectTimeout,\"Connection timeout\"),s;e.onreadystatechange=()=>{e.readyState>e.OPENED&&s===void 0&&(clearTimeout(i),s=u(t.responseTimeout,\"Socket timeout\"))},e.onerror=()=>{e.status===0&&(clearTimeout(i),clearTimeout(s),o({content:e.responseText||\"Network request failed\",status:e.status,isTimedOut:!1}))},e.onload=()=>{clearTimeout(i),clearTimeout(s),o({content:e.responseText,headers:d(e.getAllResponseHeaders()),status:e.status,isTimedOut:!1})},e.send(t.data)})}return{send:r}}export{c as createXhrRequester};\n//# sourceMappingURL=requester.xhr.js.map"],"names":["d","r","t","o","trim","split","e","indexOf","slice","toLowerCase","send","Promise","XMLHttpRequest","open","method","url","Object","keys","headers","forEach","n","setRequestHeader","s","u","a","setTimeout","abort","status","content","isTimedOut","i","connectTimeout","onreadystatechange","readyState","OPENED","clearTimeout","responseTimeout","onerror","responseText","onload","getAllResponseHeaders","data"],"mappings":"aAAA,SAASA,EAAEC,GAAG,IAAIC,EAAE,CAAA,EAAG,IAAI,IAAIC,KAAKF,EAAEG,OAAOC,MAAM,WAAW,CAAC,IAAIC,EAAEH,EAAEI,QAAQ,MAAMD,EAAE,IAAIJ,EAAEC,EAAEK,MAAM,EAAEF,GAAGG,eAAeN,EAAEK,MAAMF,EAAE,GAAG,CAAC,OAAOJ,CAAC,4BAAC,WAAotB,MAAM,CAACQ,KAA9sB,SAAWR,GAAG,OAAO,IAAIS,QAAQR,IAAI,IAAIG,EAAE,IAAIM,eAAeN,EAAEO,KAAKX,EAAEY,OAAOZ,EAAEa,KAAI,GAAIC,OAAOC,KAAKf,EAAEgB,SAASC,QAAQC,GAAGd,EAAEe,iBAAiBD,EAAElB,EAAEgB,QAAQE,KAAK,IAA4HE,EAAxHC,EAAE,CAACH,EAAEI,IAAIC,WAAW,KAAKnB,EAAEoB,QAAQvB,EAAE,CAACwB,OAAO,EAAEC,QAAQJ,EAAEK,YAAW,KAAMT,GAAGU,EAAEP,EAAErB,EAAE6B,eAAe,sBAAwBzB,EAAE0B,mBAAmB,KAAK1B,EAAE2B,WAAW3B,EAAE4B,aAAY,IAAJZ,IAAaa,aAAaL,GAAGR,EAAEC,EAAErB,EAAEkC,gBAAgB,oBAAoB9B,EAAE+B,QAAQ,KAAgB,IAAX/B,EAAEqB,SAAaQ,aAAaL,GAAGK,aAAab,GAAGnB,EAAE,CAACyB,QAAQtB,EAAEgC,cAAc,yBAAyBX,OAAOrB,EAAEqB,OAAOE,YAAW,MAAOvB,EAAEiC,OAAO,KAAKJ,aAAaL,GAAGK,aAAab,GAAGnB,EAAE,CAACyB,QAAQtB,EAAEgC,aAAapB,QAAQlB,EAAEM,EAAEkC,yBAAyBb,OAAOrB,EAAEqB,OAAOE,YAAW,KAAMvB,EAAEI,KAAKR,EAAEuC,OAAO,EAAe","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"requester.xhr.js","sources":["../../../../../../node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js"],"sourcesContent":["function m(){function r(t){return new Promise(s=>{let e=new XMLHttpRequest;e.open(t.method,t.url,!0),Object.keys(t.headers).forEach(n=>e.setRequestHeader(n,t.headers[n]));let i=(n,a)=>setTimeout(()=>{e.abort(),s({status:0,content:a,isTimedOut:!0})},n),u=i(t.connectTimeout,\"Connection timeout\"),o;e.onreadystatechange=()=>{e.readyState>e.OPENED&&o===void 0&&(clearTimeout(u),o=i(t.responseTimeout,\"Socket timeout\"))},e.onerror=()=>{e.status===0&&(clearTimeout(u),clearTimeout(o),s({content:e.responseText||\"Network request failed\",status:e.status,isTimedOut:!1}))},e.onload=()=>{clearTimeout(u),clearTimeout(o),s({content:e.responseText,status:e.status,isTimedOut:!1})},e.send(t.data)})}return{send:r}}export{m as createXhrRequester};\n//# sourceMappingURL=requester.xhr.js.map"],"names":["send","t","Promise","s","e","XMLHttpRequest","open","method","url","Object","keys","headers","forEach","n","setRequestHeader","o","i","a","setTimeout","abort","status","content","isTimedOut","u","connectTimeout","onreadystatechange","readyState","OPENED","clearTimeout","responseTimeout","onerror","responseText","onload","data"],"mappings":"wCAAA,WAA+qB,MAAM,CAACA,KAAzqB,SAAWC,GAAG,OAAO,IAAIC,QAAQC,IAAI,IAAIC,EAAE,IAAIC,eAAeD,EAAEE,KAAKL,EAAEM,OAAON,EAAEO,KAAI,GAAIC,OAAOC,KAAKT,EAAEU,SAASC,QAAQC,GAAGT,EAAEU,iBAAiBD,EAAEZ,EAAEU,QAAQE,KAAK,IAA4HE,EAAxHC,EAAE,CAACH,EAAEI,IAAIC,WAAW,KAAKd,EAAEe,QAAQhB,EAAE,CAACiB,OAAO,EAAEC,QAAQJ,EAAEK,YAAW,KAAMT,GAAGU,EAAEP,EAAEf,EAAEuB,eAAe,sBAAwBpB,EAAEqB,mBAAmB,KAAKrB,EAAEsB,WAAWtB,EAAEuB,aAAY,IAAJZ,IAAaa,aAAaL,GAAGR,EAAEC,EAAEf,EAAE4B,gBAAgB,oBAAoBzB,EAAE0B,QAAQ,KAAgB,IAAX1B,EAAEgB,SAAaQ,aAAaL,GAAGK,aAAab,GAAGZ,EAAE,CAACkB,QAAQjB,EAAE2B,cAAc,yBAAyBX,OAAOhB,EAAEgB,OAAOE,YAAW,MAAOlB,EAAE4B,OAAO,KAAKJ,aAAaL,GAAGK,aAAab,GAAGZ,EAAE,CAACkB,QAAQjB,EAAE2B,aAAaX,OAAOhB,EAAEgB,OAAOE,YAAW,KAAMlB,EAAEJ,KAAKC,EAAEgC,OAAO,EAAe","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../../@algolia/client-common/dist/common.js"),a=require("../../../../@algolia/requester-browser-xhr/dist/requester.xhr.js"),t="5.59.0";exports.apiClientVersion=t,exports.liteClient=function(r,s,o){if("string"!=typeof r)throw new Error("`appId` is missing.");if("string"!=typeof s)throw new Error("`apiKey` is missing.");const{compression:i,...c}={};return function({appId:a,apiKey:r,authMode:s,algoliaAgents:o,...i}){const c=e.createAuth(a,r,s),n=e.createTransporter({hosts:(d=a,[{url:`${d}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${d}.algolia.net`,accept:"write",protocol:"https"}].concat(e.shuffle([{url:`${d}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${d}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${d}-3.algolianet.com`,accept:"readWrite",protocol:"https"}]))),...i,algoliaAgent:e.getAlgoliaAgent({algoliaAgents:o,client:"Lite",version:t}),baseHeaders:{"content-type":"text/plain",...c.headers(),...i.baseHeaders},baseQueryParameters:{...c.queryParameters(),...i.baseQueryParameters}});var d;return{transporter:n,appId:a,apiKey:r,clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{}),get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(e,a){n.algoliaAgent.add({segment:e,version:a})},setClientApiKey({apiKey:e}){s&&"WithinHeaders"!==s?n.baseQueryParameters["x-algolia-api-key"]=e:n.baseHeaders["x-algolia-api-key"]=e},searchForHits(e,a){return this.search(e,a)},searchForFacets(e,a){return this.search(e,a)},customPost({path:a,parameters:t,body:r},s){e.validateRequired("path","customPost",a);const o={method:"POST",path:"/{path}".replace("{path}",a),queryParameters:t||{},headers:{},data:r||{}};return n.request(o,s)},customPostWithHTTPInfo({path:a,parameters:t,body:r},s){e.validateRequired("path","customPostWithHTTPInfo",a);const o={method:"POST",path:"/{path}".replace("{path}",a),queryParameters:t||{},headers:{},data:r||{}};return n.requestWithHttpInfo(o,s)},getRecommendations(a,t){a&&Array.isArray(a)&&(a={requests:a}),e.validateRequired("getRecommendationsParams","getRecommendations",a),e.validateRequired("getRecommendationsParams.requests","getRecommendations",a.requests);const r={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return n.request(r,t)},getRecommendationsWithHTTPInfo(a,t){a&&Array.isArray(a)&&(a={requests:a}),e.validateRequired("getRecommendationsParams","getRecommendationsWithHTTPInfo",a),e.validateRequired("getRecommendationsParams.requests","getRecommendationsWithHTTPInfo",a.requests);const r={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return n.requestWithHttpInfo(r,t)},search(a,t){if(a&&Array.isArray(a)){const e={requests:a.map(({params:e,...a})=>"facet"===a.type?{...a,...e,type:"facet"}:{...a,...e,facet:void 0,maxFacetHits:void 0,facetQuery:void 0})};a=e}e.validateRequired("searchMethodParams","search",a),e.validateRequired("searchMethodParams.requests","search",a.requests);const r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return n.request(r,t)},searchWithHTTPInfo(a,t){if(a&&Array.isArray(a)){const e={requests:a.map(({params:e,...a})=>"facet"===a.type?{...a,...e,type:"facet"}:{...a,...e,facet:void 0,maxFacetHits:void 0,facetQuery:void 0})};a=e}e.validateRequired("searchMethodParams","searchWithHTTPInfo",a),e.validateRequired("searchMethodParams.requests","searchWithHTTPInfo",a.requests);const r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return n.requestWithHttpInfo(r,t)}}}({appId:r,apiKey:s,timeouts:{connect:1e3,read:2e3,write:3e4},logger:e.createNullLogger(),requester:a.createXhrRequester(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",requestIdChannel:"queryParameters",responsesCache:e.createMemoryCache(),requestsCache:e.createMemoryCache({serializable:!1}),hostsCache:e.createFallbackableCache({caches:[e.createBrowserLocalStorageCache({key:`${t}-${r}`}),e.createMemoryCache()]}),...c})};
1
+ "use strict";var e=require("../../../../@algolia/client-common/dist/common.js"),a=require("../../../../@algolia/requester-browser-xhr/dist/requester.xhr.js"),r="5.55.0";exports.apiClientVersion=r,exports.liteClient=function(t,s,o){if("string"!=typeof t)throw new Error("`appId` is missing.");if("string"!=typeof s)throw new Error("`apiKey` is missing.");const{compression:i,...c}={};return function({appId:a,apiKey:t,authMode:s,algoliaAgents:o,...i}){const c=e.createAuth(a,t,s),n=e.createTransporter({hosts:(l=a,[{url:`${l}-dsn.algolia.net`,accept:"read",protocol:"https"},{url:`${l}.algolia.net`,accept:"write",protocol:"https"}].concat(e.shuffle([{url:`${l}-1.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${l}-2.algolianet.com`,accept:"readWrite",protocol:"https"},{url:`${l}-3.algolianet.com`,accept:"readWrite",protocol:"https"}]))),...i,algoliaAgent:e.getAlgoliaAgent({algoliaAgents:o,client:"Lite",version:r}),baseHeaders:{"content-type":"text/plain",...c.headers(),...i.baseHeaders},baseQueryParameters:{...c.queryParameters(),...i.baseQueryParameters}});var l;return{transporter:n,appId:a,apiKey:t,clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{}),get _ua(){return n.algoliaAgent.value},addAlgoliaAgent(e,a){n.algoliaAgent.add({segment:e,version:a})},setClientApiKey({apiKey:e}){s&&"WithinHeaders"!==s?n.baseQueryParameters["x-algolia-api-key"]=e:n.baseHeaders["x-algolia-api-key"]=e},searchForHits(e,a){return this.search(e,a)},searchForFacets(e,a){return this.search(e,a)},customPost({path:a,parameters:r,body:t},s){e.validateRequired("path","customPost",a);const o={method:"POST",path:"/{path}".replace("{path}",a),queryParameters:r||{},headers:{},data:t||{}};return n.request(o,s)},getRecommendations(a,r){a&&Array.isArray(a)&&(a={requests:a}),e.validateRequired("getRecommendationsParams","getRecommendations",a),e.validateRequired("getRecommendationsParams.requests","getRecommendations",a.requests);const t={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return n.request(t,r)},search(a,r){if(a&&Array.isArray(a)){const e={requests:a.map(({params:e,...a})=>"facet"===a.type?{...a,...e,type:"facet"}:{...a,...e,facet:void 0,maxFacetHits:void 0,facetQuery:void 0})};a=e}e.validateRequired("searchMethodParams","search",a),e.validateRequired("searchMethodParams.requests","search",a.requests);const t={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:a,useReadTransporter:!0,cacheable:!0};return n.request(t,r)}}}({appId:t,apiKey:s,timeouts:{connect:1e3,read:2e3,write:3e4},logger:e.createNullLogger(),requester:a.createXhrRequester(),algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:e.createMemoryCache(),requestsCache:e.createMemoryCache({serializable:!1}),hostsCache:e.createFallbackableCache({caches:[e.createBrowserLocalStorageCache({key:`${r}-${t}`}),e.createMemoryCache()]}),...c})};
2
2
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sources":["../../../../../../../node_modules/algoliasearch/dist/lite/builds/browser.js"],"sourcesContent":["// lite/builds/browser.ts\nimport {\n createBrowserLocalStorageCache,\n createFallbackableCache,\n createMemoryCache,\n createNullLogger\n} from \"@algolia/client-common\";\nimport { createXhrRequester } from \"@algolia/requester-browser-xhr\";\n\n// lite/src/liteClient.ts\nimport { createAuth, createTransporter, getAlgoliaAgent, shuffle, validateRequired } from \"@algolia/client-common\";\nvar apiClientVersion = \"5.59.0\";\nfunction getDefaultHosts(appId) {\n return [\n {\n url: `${appId}-dsn.algolia.net`,\n accept: \"read\",\n protocol: \"https\"\n },\n {\n url: `${appId}.algolia.net`,\n accept: \"write\",\n protocol: \"https\"\n }\n ].concat(\n shuffle([\n {\n url: `${appId}-1.algolianet.com`,\n accept: \"readWrite\",\n protocol: \"https\"\n },\n {\n url: `${appId}-2.algolianet.com`,\n accept: \"readWrite\",\n protocol: \"https\"\n },\n {\n url: `${appId}-3.algolianet.com`,\n accept: \"readWrite\",\n protocol: \"https\"\n }\n ])\n );\n}\nfunction createLiteClient({\n appId: appIdOption,\n apiKey: apiKeyOption,\n authMode,\n algoliaAgents,\n ...options\n}) {\n const auth = createAuth(appIdOption, apiKeyOption, authMode);\n const transporter = createTransporter({\n hosts: getDefaultHosts(appIdOption),\n ...options,\n algoliaAgent: getAlgoliaAgent({\n algoliaAgents,\n client: \"Lite\",\n version: apiClientVersion\n }),\n baseHeaders: {\n \"content-type\": \"text/plain\",\n ...auth.headers(),\n ...options.baseHeaders\n },\n baseQueryParameters: {\n ...auth.queryParameters(),\n ...options.baseQueryParameters\n }\n });\n return {\n transporter,\n /**\n * The `appId` currently in use.\n */\n appId: appIdOption,\n /**\n * The `apiKey` currently in use.\n */\n apiKey: apiKeyOption,\n /**\n * Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties.\n */\n clearCache() {\n return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => void 0);\n },\n /**\n * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.\n */\n get _ua() {\n return transporter.algoliaAgent.value;\n },\n /**\n * Adds a `segment` to the `x-algolia-agent` sent with every requests.\n *\n * @param segment - The algolia agent (user-agent) segment to add.\n * @param version - The version of the agent.\n */\n addAlgoliaAgent(segment, version) {\n transporter.algoliaAgent.add({ segment, version });\n },\n /**\n * Helper method to switch the API key used to authenticate the requests.\n *\n * @param params - Method params.\n * @param params.apiKey - The new API Key to use.\n */\n setClientApiKey({ apiKey }) {\n if (!authMode || authMode === \"WithinHeaders\") {\n transporter.baseHeaders[\"x-algolia-api-key\"] = apiKey;\n } else {\n transporter.baseQueryParameters[\"x-algolia-api-key\"] = apiKey;\n }\n },\n /**\n * Helper: calls the `search` method but with certainty that we will only request Algolia records (hits) and not facets.\n * Disclaimer: We don't assert that the parameters you pass to this method only contains `hits` requests to prevent impacting search performances, this helper is purely for typing purposes.\n *\n * @summary Search multiple indices for `hits`.\n * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n searchForHits(searchMethodParams, requestOptions) {\n return this.search(searchMethodParams, requestOptions);\n },\n /**\n * Helper: calls the `search` method but with certainty that we will only request Algolia facets and not records (hits).\n * Disclaimer: We don't assert that the parameters you pass to this method only contains `facets` requests to prevent impacting search performances, this helper is purely for typing purposes.\n *\n * @summary Search multiple indices for `facets`.\n * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n searchForFacets(searchMethodParams, requestOptions) {\n return this.search(searchMethodParams, requestOptions);\n },\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customPost - The customPost object.\n * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPost.parameters - Query parameters to apply to the current query.\n * @param customPost.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customPost({ path, parameters, body }, requestOptions) {\n validateRequired(\"path\", \"customPost\", path);\n const requestPath = \"/{path}\".replace(\"{path}\", path);\n const headers = {};\n const queryParameters = parameters ? parameters : {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {}\n };\n return transporter.request(request, requestOptions);\n },\n /**\n * This method lets you send requests to the Algolia REST API.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n * @param customPost - The customPost object.\n * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPost.parameters - Query parameters to apply to the current query.\n * @param customPost.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see customPost for the plain version.\n */\n customPostWithHTTPInfo({ path, parameters, body }, requestOptions) {\n validateRequired(\"path\", \"customPostWithHTTPInfo\", path);\n const requestPath = \"/{path}\".replace(\"{path}\", path);\n const headers = {};\n const queryParameters = parameters ? parameters : {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {}\n };\n return transporter.requestWithHttpInfo(request, requestOptions);\n },\n /**\n * Retrieves recommendations from selected AI models.\n *\n * Required API Key ACLs:\n * - search\n * @param getRecommendationsParams - The getRecommendationsParams object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n getRecommendations(getRecommendationsParams, requestOptions) {\n if (getRecommendationsParams && Array.isArray(getRecommendationsParams)) {\n const newSignatureRequest = {\n requests: getRecommendationsParams\n };\n getRecommendationsParams = newSignatureRequest;\n }\n validateRequired(\"getRecommendationsParams\", \"getRecommendations\", getRecommendationsParams);\n validateRequired(\"getRecommendationsParams.requests\", \"getRecommendations\", getRecommendationsParams.requests);\n const requestPath = \"/1/indexes/*/recommendations\";\n const headers = {};\n const queryParameters = {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: getRecommendationsParams,\n useReadTransporter: true,\n cacheable: true\n };\n return transporter.request(request, requestOptions);\n },\n /**\n * Retrieves recommendations from selected AI models.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n *\n * Required API Key ACLs:\n * - search\n * @param getRecommendationsParams - The getRecommendationsParams object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see getRecommendations for the plain version.\n */\n getRecommendationsWithHTTPInfo(getRecommendationsParams, requestOptions) {\n if (getRecommendationsParams && Array.isArray(getRecommendationsParams)) {\n const newSignatureRequest = {\n requests: getRecommendationsParams\n };\n getRecommendationsParams = newSignatureRequest;\n }\n validateRequired(\"getRecommendationsParams\", \"getRecommendationsWithHTTPInfo\", getRecommendationsParams);\n validateRequired(\n \"getRecommendationsParams.requests\",\n \"getRecommendationsWithHTTPInfo\",\n getRecommendationsParams.requests\n );\n const requestPath = \"/1/indexes/*/recommendations\";\n const headers = {};\n const queryParameters = {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: getRecommendationsParams,\n useReadTransporter: true,\n cacheable: true\n };\n return transporter.requestWithHttpInfo(request, requestOptions);\n },\n /**\n * Runs multiple search queries against one or more indices in a single API request. Use cases include: - Searching different indices, such as products and marketing content. - Run multiple queries on the same index with different parameters or filters. If you know the expected result type, use the `searchForHits` or `searchForFacets` helper to simplify the response format.\n *\n * Required API Key ACLs:\n * - search\n * @param searchMethodParams - Multi-query search request body. Results are returned in the same order as the requests.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n search(searchMethodParams, requestOptions) {\n if (searchMethodParams && Array.isArray(searchMethodParams)) {\n const newSignatureRequest = {\n requests: searchMethodParams.map(({ params, ...legacyRequest }) => {\n if (legacyRequest.type === \"facet\") {\n return {\n ...legacyRequest,\n ...params,\n type: \"facet\"\n };\n }\n return {\n ...legacyRequest,\n ...params,\n facet: void 0,\n maxFacetHits: void 0,\n facetQuery: void 0\n };\n })\n };\n searchMethodParams = newSignatureRequest;\n }\n validateRequired(\"searchMethodParams\", \"search\", searchMethodParams);\n validateRequired(\"searchMethodParams.requests\", \"search\", searchMethodParams.requests);\n const requestPath = \"/1/indexes/*/queries\";\n const headers = {};\n const queryParameters = {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: searchMethodParams,\n useReadTransporter: true,\n cacheable: true\n };\n return transporter.request(request, requestOptions);\n },\n /**\n * Runs multiple search queries against one or more indices in a single API request. Use cases include: - Searching different indices, such as products and marketing content. - Run multiple queries on the same index with different parameters or filters. If you know the expected result type, use the `searchForHits` or `searchForFacets` helper to simplify the response format.\n *\n * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n *\n * Required API Key ACLs:\n * - search\n * @param searchMethodParams - Multi-query search request body. Results are returned in the same order as the requests.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n * @see search for the plain version.\n */\n searchWithHTTPInfo(searchMethodParams, requestOptions) {\n if (searchMethodParams && Array.isArray(searchMethodParams)) {\n const newSignatureRequest = {\n requests: searchMethodParams.map(({ params, ...legacyRequest }) => {\n if (legacyRequest.type === \"facet\") {\n return {\n ...legacyRequest,\n ...params,\n type: \"facet\"\n };\n }\n return {\n ...legacyRequest,\n ...params,\n facet: void 0,\n maxFacetHits: void 0,\n facetQuery: void 0\n };\n })\n };\n searchMethodParams = newSignatureRequest;\n }\n validateRequired(\"searchMethodParams\", \"searchWithHTTPInfo\", searchMethodParams);\n validateRequired(\"searchMethodParams.requests\", \"searchWithHTTPInfo\", searchMethodParams.requests);\n const requestPath = \"/1/indexes/*/queries\";\n const headers = {};\n const queryParameters = {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: searchMethodParams,\n useReadTransporter: true,\n cacheable: true\n };\n return transporter.requestWithHttpInfo(request, requestOptions);\n }\n };\n}\n\n// lite/builds/browser.ts\nfunction liteClient(appId, apiKey, options) {\n if (!appId || typeof appId !== \"string\") {\n throw new Error(\"`appId` is missing.\");\n }\n if (!apiKey || typeof apiKey !== \"string\") {\n throw new Error(\"`apiKey` is missing.\");\n }\n const { compression: _compression, ...browserOptions } = options || {};\n return createLiteClient({\n appId,\n apiKey,\n timeouts: {\n connect: 1e3,\n read: 2e3,\n write: 3e4\n },\n logger: createNullLogger(),\n requester: createXhrRequester(),\n algoliaAgents: [{ segment: \"Browser\" }],\n authMode: \"WithinQueryParameters\",\n requestIdChannel: \"queryParameters\",\n responsesCache: createMemoryCache(),\n requestsCache: createMemoryCache({ serializable: false }),\n hostsCache: createFallbackableCache({\n caches: [createBrowserLocalStorageCache({ key: `${apiClientVersion}-${appId}` }), createMemoryCache()]\n }),\n ...browserOptions\n });\n}\nexport {\n apiClientVersion,\n liteClient\n};\n//# sourceMappingURL=browser.js.map"],"names":["apiClientVersion","appId","apiKey","options","Error","compression","_compression","browserOptions","appIdOption","apiKeyOption","authMode","algoliaAgents","auth","createAuth","transporter","createTransporter","hosts","url","accept","protocol","concat","shuffle","algoliaAgent","getAlgoliaAgent","client","version","baseHeaders","headers","baseQueryParameters","queryParameters","clearCache","Promise","all","requestsCache","clear","responsesCache","then","_ua","value","addAlgoliaAgent","segment","add","setClientApiKey","searchForHits","searchMethodParams","requestOptions","this","search","searchForFacets","customPost","path","parameters","body","validateRequired","request","method","replace","data","customPostWithHTTPInfo","requestWithHttpInfo","getRecommendations","getRecommendationsParams","Array","isArray","requests","useReadTransporter","cacheable","getRecommendationsWithHTTPInfo","newSignatureRequest","map","params","legacyRequest","type","facet","maxFacetHits","facetQuery","searchWithHTTPInfo","createLiteClient","timeouts","connect","read","write","logger","createNullLogger","requester","createXhrRequester","requestIdChannel","createMemoryCache","serializable","hostsCache","createFallbackableCache","caches","createBrowserLocalStorageCache","key"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"browser.js","sources":["../../../../../../../node_modules/algoliasearch/dist/lite/builds/browser.js"],"sourcesContent":["// lite/builds/browser.ts\nimport {\n createBrowserLocalStorageCache,\n createFallbackableCache,\n createMemoryCache,\n createNullLogger\n} from \"@algolia/client-common\";\nimport { createXhrRequester } from \"@algolia/requester-browser-xhr\";\n\n// lite/src/liteClient.ts\nimport { createAuth, createTransporter, getAlgoliaAgent, shuffle, validateRequired } from \"@algolia/client-common\";\nvar apiClientVersion = \"5.55.0\";\nfunction getDefaultHosts(appId) {\n return [\n {\n url: `${appId}-dsn.algolia.net`,\n accept: \"read\",\n protocol: \"https\"\n },\n {\n url: `${appId}.algolia.net`,\n accept: \"write\",\n protocol: \"https\"\n }\n ].concat(\n shuffle([\n {\n url: `${appId}-1.algolianet.com`,\n accept: \"readWrite\",\n protocol: \"https\"\n },\n {\n url: `${appId}-2.algolianet.com`,\n accept: \"readWrite\",\n protocol: \"https\"\n },\n {\n url: `${appId}-3.algolianet.com`,\n accept: \"readWrite\",\n protocol: \"https\"\n }\n ])\n );\n}\nfunction createLiteClient({\n appId: appIdOption,\n apiKey: apiKeyOption,\n authMode,\n algoliaAgents,\n ...options\n}) {\n const auth = createAuth(appIdOption, apiKeyOption, authMode);\n const transporter = createTransporter({\n hosts: getDefaultHosts(appIdOption),\n ...options,\n algoliaAgent: getAlgoliaAgent({\n algoliaAgents,\n client: \"Lite\",\n version: apiClientVersion\n }),\n baseHeaders: {\n \"content-type\": \"text/plain\",\n ...auth.headers(),\n ...options.baseHeaders\n },\n baseQueryParameters: {\n ...auth.queryParameters(),\n ...options.baseQueryParameters\n }\n });\n return {\n transporter,\n /**\n * The `appId` currently in use.\n */\n appId: appIdOption,\n /**\n * The `apiKey` currently in use.\n */\n apiKey: apiKeyOption,\n /**\n * Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties.\n */\n clearCache() {\n return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => void 0);\n },\n /**\n * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.\n */\n get _ua() {\n return transporter.algoliaAgent.value;\n },\n /**\n * Adds a `segment` to the `x-algolia-agent` sent with every requests.\n *\n * @param segment - The algolia agent (user-agent) segment to add.\n * @param version - The version of the agent.\n */\n addAlgoliaAgent(segment, version) {\n transporter.algoliaAgent.add({ segment, version });\n },\n /**\n * Helper method to switch the API key used to authenticate the requests.\n *\n * @param params - Method params.\n * @param params.apiKey - The new API Key to use.\n */\n setClientApiKey({ apiKey }) {\n if (!authMode || authMode === \"WithinHeaders\") {\n transporter.baseHeaders[\"x-algolia-api-key\"] = apiKey;\n } else {\n transporter.baseQueryParameters[\"x-algolia-api-key\"] = apiKey;\n }\n },\n /**\n * Helper: calls the `search` method but with certainty that we will only request Algolia records (hits) and not facets.\n * Disclaimer: We don't assert that the parameters you pass to this method only contains `hits` requests to prevent impacting search performances, this helper is purely for typing purposes.\n *\n * @summary Search multiple indices for `hits`.\n * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n searchForHits(searchMethodParams, requestOptions) {\n return this.search(searchMethodParams, requestOptions);\n },\n /**\n * Helper: calls the `search` method but with certainty that we will only request Algolia facets and not records (hits).\n * Disclaimer: We don't assert that the parameters you pass to this method only contains `facets` requests to prevent impacting search performances, this helper is purely for typing purposes.\n *\n * @summary Search multiple indices for `facets`.\n * @param searchMethodParams - Query requests and strategies. Results will be received in the same order as the queries.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n searchForFacets(searchMethodParams, requestOptions) {\n return this.search(searchMethodParams, requestOptions);\n },\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customPost - The customPost object.\n * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n * @param customPost.parameters - Query parameters to apply to the current query.\n * @param customPost.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customPost({ path, parameters, body }, requestOptions) {\n validateRequired(\"path\", \"customPost\", path);\n const requestPath = \"/{path}\".replace(\"{path}\", path);\n const headers = {};\n const queryParameters = parameters ? parameters : {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {}\n };\n return transporter.request(request, requestOptions);\n },\n /**\n * Retrieves recommendations from selected AI models.\n *\n * Required API Key ACLs:\n * - search\n * @param getRecommendationsParams - The getRecommendationsParams object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n getRecommendations(getRecommendationsParams, requestOptions) {\n if (getRecommendationsParams && Array.isArray(getRecommendationsParams)) {\n const newSignatureRequest = {\n requests: getRecommendationsParams\n };\n getRecommendationsParams = newSignatureRequest;\n }\n validateRequired(\"getRecommendationsParams\", \"getRecommendations\", getRecommendationsParams);\n validateRequired(\"getRecommendationsParams.requests\", \"getRecommendations\", getRecommendationsParams.requests);\n const requestPath = \"/1/indexes/*/recommendations\";\n const headers = {};\n const queryParameters = {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: getRecommendationsParams,\n useReadTransporter: true,\n cacheable: true\n };\n return transporter.request(request, requestOptions);\n },\n /**\n * Runs multiple search queries against one or more indices in a single API request. Use cases include: - Searching different indices, such as products and marketing content. - Run multiple queries on the same index with different parameters or filters. If you know the expected result type, use the `searchForHits` or `searchForFacets` helper to simplify the response format.\n *\n * Required API Key ACLs:\n * - search\n * @param searchMethodParams - Multi-query search request body. Results are returned in the same order as the requests.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n search(searchMethodParams, requestOptions) {\n if (searchMethodParams && Array.isArray(searchMethodParams)) {\n const newSignatureRequest = {\n requests: searchMethodParams.map(({ params, ...legacyRequest }) => {\n if (legacyRequest.type === \"facet\") {\n return {\n ...legacyRequest,\n ...params,\n type: \"facet\"\n };\n }\n return {\n ...legacyRequest,\n ...params,\n facet: void 0,\n maxFacetHits: void 0,\n facetQuery: void 0\n };\n })\n };\n searchMethodParams = newSignatureRequest;\n }\n validateRequired(\"searchMethodParams\", \"search\", searchMethodParams);\n validateRequired(\"searchMethodParams.requests\", \"search\", searchMethodParams.requests);\n const requestPath = \"/1/indexes/*/queries\";\n const headers = {};\n const queryParameters = {};\n const request = {\n method: \"POST\",\n path: requestPath,\n queryParameters,\n headers,\n data: searchMethodParams,\n useReadTransporter: true,\n cacheable: true\n };\n return transporter.request(request, requestOptions);\n }\n };\n}\n\n// lite/builds/browser.ts\nfunction liteClient(appId, apiKey, options) {\n if (!appId || typeof appId !== \"string\") {\n throw new Error(\"`appId` is missing.\");\n }\n if (!apiKey || typeof apiKey !== \"string\") {\n throw new Error(\"`apiKey` is missing.\");\n }\n const { compression: _compression, ...browserOptions } = options || {};\n return createLiteClient({\n appId,\n apiKey,\n timeouts: {\n connect: 1e3,\n read: 2e3,\n write: 3e4\n },\n logger: createNullLogger(),\n requester: createXhrRequester(),\n algoliaAgents: [{ segment: \"Browser\" }],\n authMode: \"WithinQueryParameters\",\n responsesCache: createMemoryCache(),\n requestsCache: createMemoryCache({ serializable: false }),\n hostsCache: createFallbackableCache({\n caches: [createBrowserLocalStorageCache({ key: `${apiClientVersion}-${appId}` }), createMemoryCache()]\n }),\n ...browserOptions\n });\n}\nexport {\n apiClientVersion,\n liteClient\n};\n//# sourceMappingURL=browser.js.map"],"names":["apiClientVersion","appId","apiKey","options","Error","compression","_compression","browserOptions","appIdOption","apiKeyOption","authMode","algoliaAgents","auth","createAuth","transporter","createTransporter","hosts","url","accept","protocol","concat","shuffle","algoliaAgent","getAlgoliaAgent","client","version","baseHeaders","headers","baseQueryParameters","queryParameters","clearCache","Promise","all","requestsCache","clear","responsesCache","then","_ua","value","addAlgoliaAgent","segment","add","setClientApiKey","searchForHits","searchMethodParams","requestOptions","this","search","searchForFacets","customPost","path","parameters","body","validateRequired","request","method","replace","data","getRecommendations","getRecommendationsParams","Array","isArray","requests","useReadTransporter","cacheable","newSignatureRequest","map","params","legacyRequest","type","facet","maxFacetHits","facetQuery","createLiteClient","timeouts","connect","read","write","logger","createNullLogger","requester","createXhrRequester","createMemoryCache","serializable","hostsCache","createFallbackableCache","caches","createBrowserLocalStorageCache","key"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"RefinementList.js","sources":["../../../../../../node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js"],"sourcesContent":["'use strict';\n\n/**\n * Functions to manipulate refinement lists\n *\n * The RefinementList is not formally defined through a prototype but is based\n * on a specific structure.\n *\n * @module SearchParameters.refinementList\n *\n * @typedef {string[]} SearchParameters.refinementList.Refinements\n * @typedef {Object.<string, SearchParameters.refinementList.Refinements>} SearchParameters.refinementList.RefinementList\n */\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar omit = require('../functions/omit');\n\nvar lib = {\n /**\n * Adds a refinement to a RefinementList\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement, if the value is not a string it will be converted\n * @return {RefinementList} a new and updated refinement list\n */\n addRefinement: function addRefinement(refinementList, attribute, value) {\n if (lib.isRefined(refinementList, attribute, value)) {\n return refinementList;\n }\n\n var valueAsString = '' + value;\n\n var facetRefinement = !refinementList[attribute]\n ? [valueAsString]\n : refinementList[attribute].concat(valueAsString);\n\n var mod = {};\n\n mod[attribute] = facetRefinement;\n\n return defaultsPure(mod, refinementList);\n },\n /**\n * Removes refinement(s) for an attribute:\n * - if the value is specified removes the refinement for the value on the attribute\n * - if no value is specified removes all the refinements for this attribute\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} [value] the value of the refinement\n * @return {RefinementList} a new and updated refinement lst\n */\n removeRefinement: function removeRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined) {\n // we use the \"filter\" form of clearRefinement, since it leaves empty values as-is\n // the form with a string will remove the attribute completely\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f;\n });\n }\n\n var valueAsString = '' + value;\n\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f && valueAsString === v;\n });\n },\n /**\n * Toggles the refinement value for an attribute.\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement\n * @return {RefinementList} a new and updated list\n */\n toggleRefinement: function toggleRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined)\n throw new Error('toggleRefinement should be used with a value');\n\n if (lib.isRefined(refinementList, attribute, value)) {\n return lib.removeRefinement(refinementList, attribute, value);\n }\n\n return lib.addRefinement(refinementList, attribute, value);\n },\n /**\n * Clear all or parts of a RefinementList. Depending on the arguments, three\n * kinds of behavior can happen:\n * - if no attribute is provided: clears the whole list\n * - if an attribute is provided as a string: clears the list for the specific attribute\n * - if an attribute is provided as a function: discards the elements for which the function returns true\n * @param {RefinementList} refinementList the initial list\n * @param {string} [attribute] the attribute or function to discard\n * @param {string} [refinementType] optional parameter to give more context to the attribute function\n * @return {RefinementList} a new and updated refinement list\n */\n clearRefinement: function clearRefinement(\n refinementList,\n attribute,\n refinementType\n ) {\n if (attribute === undefined) {\n // return the same object if the list is already empty\n // this is mainly for tests, as it doesn't have much impact on performance\n if (!objectHasKeys(refinementList)) {\n return refinementList;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(refinementList, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n\n var newRefinementList = Object.keys(refinementList).reduce(function (\n memo,\n key\n ) {\n var values = refinementList[key] || [];\n var facetList = values.filter(function (value) {\n return !attribute(value, key, refinementType);\n });\n\n if (facetList.length !== values.length) {\n hasChanged = true;\n }\n\n memo[key] = facetList;\n\n return memo;\n }, {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Test if the refinement value is used for the attribute. If no refinement value\n * is provided, test if the refinementList contains any refinement for the\n * given attribute.\n * @param {RefinementList} refinementList the list of refinement\n * @param {string} attribute name of the attribute\n * @param {string} [refinementValue] value of the filter/refinement\n * @return {boolean} true if the attribute is refined, false otherwise\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var containsRefinements =\n Boolean(refinementList[attribute]) &&\n refinementList[attribute].length > 0;\n\n if (refinementValue === undefined || !containsRefinements) {\n return containsRefinements;\n }\n\n var refinementValueAsString = '' + refinementValue;\n\n return refinementList[attribute].indexOf(refinementValueAsString) !== -1;\n },\n};\n\nmodule.exports = lib;\n"],"names":["defaultsPure","require$$0","objectHasKeys","require$$1","omit","require$$2","lib","addRefinement","refinementList","attribute","value","isRefined","valueAsString","facetRefinement","concat","mod","removeRefinement","undefined","clearRefinement","v","f","toggleRefinement","Error","refinementType","hasChanged","newRefinementList","Object","keys","reduce","memo","key","values","facetList","filter","length","refinementValue","containsRefinements","Boolean","refinementValueAsString","indexOf","RefinementList"],"mappings":"2LAcA,IAAIA,EAAeC,EAAAA,YACfC,EAAgBC,EAAAA,YAChBC,EAAOC,EAAAA,YAEPC,EAAM,CAQRC,cAAe,SAAuBC,EAAgBC,EAAWC,GAC/D,GAAIJ,EAAIK,UAAUH,EAAgBC,EAAWC,GAC3C,OAAOF,EAGT,IAAII,EAAgB,GAAKF,EAErBG,EAAmBL,EAAeC,GAElCD,EAAeC,GAAWK,OAAOF,GADjC,CAACA,GAGDG,EAAM,CAAA,EAIV,OAFAA,EAAIN,GAAaI,EAEVb,EAAae,EAAKP,EAC7B,EAUEQ,iBAAkB,SAChBR,EACAC,EACAC,GAEA,QAAcO,IAAVP,EAGF,OAAOJ,EAAIY,gBAAgBV,EAAgB,SAAUW,EAAGC,GACtD,OAAOX,IAAcW,CAC7B,GAGI,IAAIR,EAAgB,GAAKF,EAEzB,OAAOJ,EAAIY,gBAAgBV,EAAgB,SAAUW,EAAGC,GACtD,OAAOX,IAAcW,GAAKR,IAAkBO,CAClD,EACA,EAQEE,iBAAkB,SAChBb,EACAC,EACAC,GAEA,QAAcO,IAAVP,EACF,MAAM,IAAIY,MAAM,gDAElB,OAAIhB,EAAIK,UAAUH,EAAgBC,EAAWC,GACpCJ,EAAIU,iBAAiBR,EAAgBC,EAAWC,GAGlDJ,EAAIC,cAAcC,EAAgBC,EAAWC,EACxD,EAYEQ,gBAAiB,SACfV,EACAC,EACAc,GAEA,QAAkBN,IAAdR,EAGF,OAAKP,EAAcM,GAGZ,CAAA,EAFEA,EAGJ,GAAyB,iBAAdC,EAChB,OAAOL,EAAKI,EAAgB,CAACC,IACxB,GAAyB,mBAAdA,EAA0B,CAC1C,IAAIe,GAAa,EAEbC,EAAoBC,OAAOC,KAAKnB,GAAgBoB,OAAO,SACzDC,EACAC,GAEA,IAAIC,EAASvB,EAAesB,IAAQ,GAChCE,EAAYD,EAAOE,OAAO,SAAUvB,GACtC,OAAQD,EAAUC,EAAOoB,EAAKP,EACxC,GAQQ,OANIS,EAAUE,SAAWH,EAAOG,SAC9BV,GAAa,GAGfK,EAAKC,GAAOE,EAELH,CACf,EAAS,CAAA,GAEH,OAAIL,EAAmBC,EAChBjB,CACb,CAKA,EAUEG,UAAW,SAAmBH,EAAgBC,EAAW0B,GACvD,IAAIC,EACFC,QAAQ7B,EAAeC,KACvBD,EAAeC,GAAWyB,OAAS,EAErC,QAAwBjB,IAApBkB,IAAkCC,EACpC,OAAOA,EAGT,IAAIE,EAA0B,GAAKH,EAEnC,OAAsE,IAA/D3B,EAAeC,GAAW8B,QAAQD,EAC7C,UAGAE,EAAiBlC","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"RefinementList.js","sources":["../../../../../../node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js"],"sourcesContent":["'use strict';\n\n/**\n * Functions to manipulate refinement lists\n *\n * The RefinementList is not formally defined through a prototype but is based\n * on a specific structure.\n *\n * @module SearchParameters.refinementList\n *\n * @typedef {string[]} SearchParameters.refinementList.Refinements\n * @typedef {Object.<string, SearchParameters.refinementList.Refinements>} SearchParameters.refinementList.RefinementList\n */\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar omit = require('../functions/omit');\n\nvar lib = {\n /**\n * Adds a refinement to a RefinementList\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement, if the value is not a string it will be converted\n * @return {RefinementList} a new and updated refinement list\n */\n addRefinement: function addRefinement(refinementList, attribute, value) {\n if (lib.isRefined(refinementList, attribute, value)) {\n return refinementList;\n }\n\n var valueAsString = '' + value;\n\n var facetRefinement = !refinementList[attribute]\n ? [valueAsString]\n : refinementList[attribute].concat(valueAsString);\n\n var mod = {};\n\n mod[attribute] = facetRefinement;\n\n return defaultsPure(mod, refinementList);\n },\n /**\n * Removes refinement(s) for an attribute:\n * - if the value is specified removes the refinement for the value on the attribute\n * - if no value is specified removes all the refinements for this attribute\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} [value] the value of the refinement\n * @return {RefinementList} a new and updated refinement lst\n */\n removeRefinement: function removeRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined) {\n // we use the \"filter\" form of clearRefinement, since it leaves empty values as-is\n // the form with a string will remove the attribute completely\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f;\n });\n }\n\n var valueAsString = '' + value;\n\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f && valueAsString === v;\n });\n },\n /**\n * Toggles the refinement value for an attribute.\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement\n * @return {RefinementList} a new and updated list\n */\n toggleRefinement: function toggleRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined)\n throw new Error('toggleRefinement should be used with a value');\n\n if (lib.isRefined(refinementList, attribute, value)) {\n return lib.removeRefinement(refinementList, attribute, value);\n }\n\n return lib.addRefinement(refinementList, attribute, value);\n },\n /**\n * Clear all or parts of a RefinementList. Depending on the arguments, three\n * kinds of behavior can happen:\n * - if no attribute is provided: clears the whole list\n * - if an attribute is provided as a string: clears the list for the specific attribute\n * - if an attribute is provided as a function: discards the elements for which the function returns true\n * @param {RefinementList} refinementList the initial list\n * @param {string} [attribute] the attribute or function to discard\n * @param {string} [refinementType] optional parameter to give more context to the attribute function\n * @return {RefinementList} a new and updated refinement list\n */\n clearRefinement: function clearRefinement(\n refinementList,\n attribute,\n refinementType\n ) {\n if (attribute === undefined) {\n // return the same object if the list is already empty\n // this is mainly for tests, as it doesn't have much impact on performance\n if (!objectHasKeys(refinementList)) {\n return refinementList;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(refinementList, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n\n var newRefinementList = Object.keys(refinementList).reduce(function (\n memo,\n key\n ) {\n var values = refinementList[key] || [];\n var facetList = values.filter(function (value) {\n return !attribute(value, key, refinementType);\n });\n\n if (facetList.length !== values.length) {\n hasChanged = true;\n }\n\n memo[key] = facetList;\n\n return memo;\n },\n {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Test if the refinement value is used for the attribute. If no refinement value\n * is provided, test if the refinementList contains any refinement for the\n * given attribute.\n * @param {RefinementList} refinementList the list of refinement\n * @param {string} attribute name of the attribute\n * @param {string} [refinementValue] value of the filter/refinement\n * @return {boolean} true if the attribute is refined, false otherwise\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var containsRefinements =\n Boolean(refinementList[attribute]) &&\n refinementList[attribute].length > 0;\n\n if (refinementValue === undefined || !containsRefinements) {\n return containsRefinements;\n }\n\n var refinementValueAsString = '' + refinementValue;\n\n return refinementList[attribute].indexOf(refinementValueAsString) !== -1;\n },\n};\n\nmodule.exports = lib;\n"],"names":["defaultsPure","require$$0","objectHasKeys","require$$1","omit","require$$2","lib","addRefinement","refinementList","attribute","value","isRefined","valueAsString","facetRefinement","concat","mod","removeRefinement","undefined","clearRefinement","v","f","toggleRefinement","Error","refinementType","hasChanged","newRefinementList","Object","keys","reduce","memo","key","values","facetList","filter","length","refinementValue","containsRefinements","Boolean","refinementValueAsString","indexOf","RefinementList"],"mappings":"2LAcA,IAAIA,EAAeC,EAAAA,YACfC,EAAgBC,EAAAA,YAChBC,EAAOC,EAAAA,YAEPC,EAAM,CAQRC,cAAe,SAAuBC,EAAgBC,EAAWC,GAC/D,GAAIJ,EAAIK,UAAUH,EAAgBC,EAAWC,GAC3C,OAAOF,EAGT,IAAII,EAAgB,GAAKF,EAErBG,EAAmBL,EAAeC,GAElCD,EAAeC,GAAWK,OAAOF,GADjC,CAACA,GAGDG,EAAM,CAAA,EAIV,OAFAA,EAAIN,GAAaI,EAEVb,EAAae,EAAKP,EAC7B,EAUEQ,iBAAkB,SAChBR,EACAC,EACAC,GAEA,QAAcO,IAAVP,EAGF,OAAOJ,EAAIY,gBAAgBV,EAAgB,SAAUW,EAAGC,GACtD,OAAOX,IAAcW,CAC7B,GAGI,IAAIR,EAAgB,GAAKF,EAEzB,OAAOJ,EAAIY,gBAAgBV,EAAgB,SAAUW,EAAGC,GACtD,OAAOX,IAAcW,GAAKR,IAAkBO,CAClD,EACA,EAQEE,iBAAkB,SAChBb,EACAC,EACAC,GAEA,QAAcO,IAAVP,EACF,MAAM,IAAIY,MAAM,gDAElB,OAAIhB,EAAIK,UAAUH,EAAgBC,EAAWC,GACpCJ,EAAIU,iBAAiBR,EAAgBC,EAAWC,GAGlDJ,EAAIC,cAAcC,EAAgBC,EAAWC,EACxD,EAYEQ,gBAAiB,SACfV,EACAC,EACAc,GAEA,QAAkBN,IAAdR,EAGF,OAAKP,EAAcM,GAGZ,CAAA,EAFEA,EAGJ,GAAyB,iBAAdC,EAChB,OAAOL,EAAKI,EAAgB,CAACC,IACxB,GAAyB,mBAAdA,EAA0B,CAC1C,IAAIe,GAAa,EAEbC,EAAoBC,OAAOC,KAAKnB,GAAgBoB,OAAO,SACzDC,EACAC,GAEA,IAAIC,EAASvB,EAAesB,IAAQ,GAChCE,EAAYD,EAAOE,OAAO,SAAUvB,GACtC,OAAQD,EAAUC,EAAOoB,EAAKP,EACxC,GAQQ,OANIS,EAAUE,SAAWH,EAAOG,SAC9BV,GAAa,GAGfK,EAAKC,GAAOE,EAELH,CACf,EACM,IAEA,OAAIL,EAAmBC,EAChBjB,CACb,CAKA,EAUEG,UAAW,SAAmBH,EAAgBC,EAAW0B,GACvD,IAAIC,EACFC,QAAQ7B,EAAeC,KACvBD,EAAeC,GAAWyB,OAAS,EAErC,QAAwBjB,IAApBkB,IAAkCC,EACpC,OAAOA,EAGT,IAAIE,EAA0B,GAAKH,EAEnC,OAAsE,IAA/D3B,EAAeC,GAAW8B,QAAQD,EAC7C,UAGAE,EAAiBlC","x_google_ignoreList":[0]}