@athoscommerce/beacon 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (590) hide show
  1. package/.github/workflows/merge.yml +28 -0
  2. package/.github/workflows/publish.yml +45 -0
  3. package/.github/workflows/tests.yml +22 -0
  4. package/.versionrc +18 -0
  5. package/CHANGELOG.md +249 -0
  6. package/README.md +970 -0
  7. package/beacon.v2.snap.types.oas.yaml +3213 -0
  8. package/dist/cdn/beacon.js +2 -0
  9. package/dist/cdn/beacon.js.LICENSE.txt +1 -0
  10. package/dist/cjs/package.json +78 -0
  11. package/dist/cjs/src/Beacon.d.ts +181 -0
  12. package/dist/cjs/src/Beacon.d.ts.map +1 -0
  13. package/dist/cjs/src/Beacon.js +1153 -0
  14. package/dist/cjs/src/client/apis/AutocompleteApi.d.ts +89 -0
  15. package/dist/cjs/src/client/apis/AutocompleteApi.d.ts.map +1 -0
  16. package/dist/cjs/src/client/apis/AutocompleteApi.js +378 -0
  17. package/dist/cjs/src/client/apis/CartApi.d.ts +47 -0
  18. package/dist/cjs/src/client/apis/CartApi.d.ts.map +1 -0
  19. package/dist/cjs/src/client/apis/CartApi.js +219 -0
  20. package/dist/cjs/src/client/apis/CategoryApi.d.ts +75 -0
  21. package/dist/cjs/src/client/apis/CategoryApi.d.ts.map +1 -0
  22. package/dist/cjs/src/client/apis/CategoryApi.js +325 -0
  23. package/dist/cjs/src/client/apis/ErrorLogsApi.d.ts +61 -0
  24. package/dist/cjs/src/client/apis/ErrorLogsApi.d.ts.map +1 -0
  25. package/dist/cjs/src/client/apis/ErrorLogsApi.js +272 -0
  26. package/dist/cjs/src/client/apis/MessagingRecommendationsApi.d.ts +75 -0
  27. package/dist/cjs/src/client/apis/MessagingRecommendationsApi.d.ts.map +1 -0
  28. package/dist/cjs/src/client/apis/MessagingRecommendationsApi.js +325 -0
  29. package/dist/cjs/src/client/apis/OrderApi.d.ts +33 -0
  30. package/dist/cjs/src/client/apis/OrderApi.d.ts.map +1 -0
  31. package/dist/cjs/src/client/apis/OrderApi.js +166 -0
  32. package/dist/cjs/src/client/apis/ProductApi.d.ts +33 -0
  33. package/dist/cjs/src/client/apis/ProductApi.d.ts.map +1 -0
  34. package/dist/cjs/src/client/apis/ProductApi.js +166 -0
  35. package/dist/cjs/src/client/apis/RecommendationsApi.d.ts +75 -0
  36. package/dist/cjs/src/client/apis/RecommendationsApi.d.ts.map +1 -0
  37. package/dist/cjs/src/client/apis/RecommendationsApi.js +325 -0
  38. package/dist/cjs/src/client/apis/SearchApi.d.ts +89 -0
  39. package/dist/cjs/src/client/apis/SearchApi.d.ts.map +1 -0
  40. package/dist/cjs/src/client/apis/SearchApi.js +378 -0
  41. package/dist/cjs/src/client/apis/ShopperApi.d.ts +33 -0
  42. package/dist/cjs/src/client/apis/ShopperApi.d.ts.map +1 -0
  43. package/dist/cjs/src/client/apis/ShopperApi.js +166 -0
  44. package/dist/cjs/src/client/apis/index.d.ts +11 -0
  45. package/dist/cjs/src/client/apis/index.d.ts.map +1 -0
  46. package/dist/cjs/src/client/apis/index.js +28 -0
  47. package/dist/cjs/src/client/index.d.ts +4 -0
  48. package/dist/cjs/src/client/index.d.ts.map +1 -0
  49. package/dist/cjs/src/client/index.js +21 -0
  50. package/dist/cjs/src/client/models/AddtocartSchema.d.ts +41 -0
  51. package/dist/cjs/src/client/models/AddtocartSchema.d.ts.map +1 -0
  52. package/dist/cjs/src/client/models/AddtocartSchema.js +57 -0
  53. package/dist/cjs/src/client/models/AddtocartSchemaData.d.ts +40 -0
  54. package/dist/cjs/src/client/models/AddtocartSchemaData.d.ts.map +1 -0
  55. package/dist/cjs/src/client/models/AddtocartSchemaData.js +56 -0
  56. package/dist/cjs/src/client/models/AttributionInner.d.ts +39 -0
  57. package/dist/cjs/src/client/models/AttributionInner.d.ts.map +1 -0
  58. package/dist/cjs/src/client/models/AttributionInner.js +55 -0
  59. package/dist/cjs/src/client/models/BannersInner.d.ts +33 -0
  60. package/dist/cjs/src/client/models/BannersInner.d.ts.map +1 -0
  61. package/dist/cjs/src/client/models/BannersInner.js +51 -0
  62. package/dist/cjs/src/client/models/CartSchema.d.ts +41 -0
  63. package/dist/cjs/src/client/models/CartSchema.d.ts.map +1 -0
  64. package/dist/cjs/src/client/models/CartSchema.js +57 -0
  65. package/dist/cjs/src/client/models/CartSchemaData.d.ts +40 -0
  66. package/dist/cjs/src/client/models/CartSchemaData.d.ts.map +1 -0
  67. package/dist/cjs/src/client/models/CartSchemaData.js +56 -0
  68. package/dist/cjs/src/client/models/ClickthroughBannersInner.d.ts +33 -0
  69. package/dist/cjs/src/client/models/ClickthroughBannersInner.d.ts.map +1 -0
  70. package/dist/cjs/src/client/models/ClickthroughBannersInner.js +51 -0
  71. package/dist/cjs/src/client/models/ClickthroughBannersSchema.d.ts +40 -0
  72. package/dist/cjs/src/client/models/ClickthroughBannersSchema.d.ts.map +1 -0
  73. package/dist/cjs/src/client/models/ClickthroughBannersSchema.js +56 -0
  74. package/dist/cjs/src/client/models/ClickthroughBannersSchema1.d.ts +46 -0
  75. package/dist/cjs/src/client/models/ClickthroughBannersSchema1.d.ts.map +1 -0
  76. package/dist/cjs/src/client/models/ClickthroughBannersSchema1.js +60 -0
  77. package/dist/cjs/src/client/models/ClickthroughResultsInner.d.ts +24 -0
  78. package/dist/cjs/src/client/models/ClickthroughResultsInner.d.ts.map +1 -0
  79. package/dist/cjs/src/client/models/ClickthroughResultsInner.js +58 -0
  80. package/dist/cjs/src/client/models/ClickthroughResultsSchema.d.ts +40 -0
  81. package/dist/cjs/src/client/models/ClickthroughResultsSchema.d.ts.map +1 -0
  82. package/dist/cjs/src/client/models/ClickthroughResultsSchema.js +56 -0
  83. package/dist/cjs/src/client/models/ClickthroughResultsSchema1.d.ts +46 -0
  84. package/dist/cjs/src/client/models/ClickthroughResultsSchema1.d.ts.map +1 -0
  85. package/dist/cjs/src/client/models/ClickthroughResultsSchema1.js +60 -0
  86. package/dist/cjs/src/client/models/ClickthroughSchema.d.ts +41 -0
  87. package/dist/cjs/src/client/models/ClickthroughSchema.d.ts.map +1 -0
  88. package/dist/cjs/src/client/models/ClickthroughSchema.js +57 -0
  89. package/dist/cjs/src/client/models/ClickthroughSchemaData.d.ts +24 -0
  90. package/dist/cjs/src/client/models/ClickthroughSchemaData.d.ts.map +1 -0
  91. package/dist/cjs/src/client/models/ClickthroughSchemaData.js +58 -0
  92. package/dist/cjs/src/client/models/Context.d.ts +101 -0
  93. package/dist/cjs/src/client/models/Context.d.ts.map +1 -0
  94. package/dist/cjs/src/client/models/Context.js +85 -0
  95. package/dist/cjs/src/client/models/Currency.d.ts +33 -0
  96. package/dist/cjs/src/client/models/Currency.d.ts.map +1 -0
  97. package/dist/cjs/src/client/models/Currency.js +49 -0
  98. package/dist/cjs/src/client/models/ErrorResponseBody.d.ts +45 -0
  99. package/dist/cjs/src/client/models/ErrorResponseBody.d.ts.map +1 -0
  100. package/dist/cjs/src/client/models/ErrorResponseBody.js +53 -0
  101. package/dist/cjs/src/client/models/ImpressionSchema.d.ts +41 -0
  102. package/dist/cjs/src/client/models/ImpressionSchema.d.ts.map +1 -0
  103. package/dist/cjs/src/client/models/ImpressionSchema.js +57 -0
  104. package/dist/cjs/src/client/models/ImpressionSchemaData.d.ts +47 -0
  105. package/dist/cjs/src/client/models/ImpressionSchemaData.d.ts.map +1 -0
  106. package/dist/cjs/src/client/models/ImpressionSchemaData.js +61 -0
  107. package/dist/cjs/src/client/models/InlineObject.d.ts +33 -0
  108. package/dist/cjs/src/client/models/InlineObject.d.ts.map +1 -0
  109. package/dist/cjs/src/client/models/InlineObject.js +49 -0
  110. package/dist/cjs/src/client/models/InlineObject1.d.ts +51 -0
  111. package/dist/cjs/src/client/models/InlineObject1.d.ts.map +1 -0
  112. package/dist/cjs/src/client/models/InlineObject1.js +55 -0
  113. package/dist/cjs/src/client/models/LogSchema.d.ts +41 -0
  114. package/dist/cjs/src/client/models/LogSchema.d.ts.map +1 -0
  115. package/dist/cjs/src/client/models/LogSchema.js +57 -0
  116. package/dist/cjs/src/client/models/LogSchemaData.d.ts +45 -0
  117. package/dist/cjs/src/client/models/LogSchemaData.d.ts.map +1 -0
  118. package/dist/cjs/src/client/models/LogSchemaData.js +55 -0
  119. package/dist/cjs/src/client/models/MessagingSchema.d.ts +41 -0
  120. package/dist/cjs/src/client/models/MessagingSchema.d.ts.map +1 -0
  121. package/dist/cjs/src/client/models/MessagingSchema.js +57 -0
  122. package/dist/cjs/src/client/models/MessagingSchemaContext.d.ts +45 -0
  123. package/dist/cjs/src/client/models/MessagingSchemaContext.d.ts.map +1 -0
  124. package/dist/cjs/src/client/models/MessagingSchemaContext.js +57 -0
  125. package/dist/cjs/src/client/models/MessagingSchemaData.d.ts +39 -0
  126. package/dist/cjs/src/client/models/MessagingSchemaData.d.ts.map +1 -0
  127. package/dist/cjs/src/client/models/MessagingSchemaData.js +55 -0
  128. package/dist/cjs/src/client/models/OrderTransactionSchema.d.ts +41 -0
  129. package/dist/cjs/src/client/models/OrderTransactionSchema.d.ts.map +1 -0
  130. package/dist/cjs/src/client/models/OrderTransactionSchema.js +57 -0
  131. package/dist/cjs/src/client/models/OrderTransactionSchemaData.d.ts +76 -0
  132. package/dist/cjs/src/client/models/OrderTransactionSchemaData.d.ts.map +1 -0
  133. package/dist/cjs/src/client/models/OrderTransactionSchemaData.js +72 -0
  134. package/dist/cjs/src/client/models/PersonalizationLogContext.d.ts +39 -0
  135. package/dist/cjs/src/client/models/PersonalizationLogContext.d.ts.map +1 -0
  136. package/dist/cjs/src/client/models/PersonalizationLogContext.js +53 -0
  137. package/dist/cjs/src/client/models/PersonalizationLogSchema.d.ts +41 -0
  138. package/dist/cjs/src/client/models/PersonalizationLogSchema.d.ts.map +1 -0
  139. package/dist/cjs/src/client/models/PersonalizationLogSchema.js +57 -0
  140. package/dist/cjs/src/client/models/PersonalizationLogSchemaData.d.ts +45 -0
  141. package/dist/cjs/src/client/models/PersonalizationLogSchemaData.d.ts.map +1 -0
  142. package/dist/cjs/src/client/models/PersonalizationLogSchemaData.js +53 -0
  143. package/dist/cjs/src/client/models/Product.d.ts +57 -0
  144. package/dist/cjs/src/client/models/Product.d.ts.map +1 -0
  145. package/dist/cjs/src/client/models/Product.js +65 -0
  146. package/dist/cjs/src/client/models/ProductPageviewSchema.d.ts +41 -0
  147. package/dist/cjs/src/client/models/ProductPageviewSchema.d.ts.map +1 -0
  148. package/dist/cjs/src/client/models/ProductPageviewSchema.js +57 -0
  149. package/dist/cjs/src/client/models/ProductPageviewSchemaData.d.ts +34 -0
  150. package/dist/cjs/src/client/models/ProductPageviewSchemaData.d.ts.map +1 -0
  151. package/dist/cjs/src/client/models/ProductPageviewSchemaData.js +52 -0
  152. package/dist/cjs/src/client/models/ProductPageviewSchemaDataResult.d.ts +45 -0
  153. package/dist/cjs/src/client/models/ProductPageviewSchemaDataResult.d.ts.map +1 -0
  154. package/dist/cjs/src/client/models/ProductPageviewSchemaDataResult.js +57 -0
  155. package/dist/cjs/src/client/models/RecommendationsAddtocartSchema.d.ts +41 -0
  156. package/dist/cjs/src/client/models/RecommendationsAddtocartSchema.d.ts.map +1 -0
  157. package/dist/cjs/src/client/models/RecommendationsAddtocartSchema.js +57 -0
  158. package/dist/cjs/src/client/models/RecommendationsAddtocartSchemaData.d.ts +46 -0
  159. package/dist/cjs/src/client/models/RecommendationsAddtocartSchemaData.d.ts.map +1 -0
  160. package/dist/cjs/src/client/models/RecommendationsAddtocartSchemaData.js +60 -0
  161. package/dist/cjs/src/client/models/RecommendationsClickthroughSchema.d.ts +41 -0
  162. package/dist/cjs/src/client/models/RecommendationsClickthroughSchema.d.ts.map +1 -0
  163. package/dist/cjs/src/client/models/RecommendationsClickthroughSchema.js +57 -0
  164. package/dist/cjs/src/client/models/RecommendationsClickthroughSchemaData.d.ts +24 -0
  165. package/dist/cjs/src/client/models/RecommendationsClickthroughSchemaData.d.ts.map +1 -0
  166. package/dist/cjs/src/client/models/RecommendationsClickthroughSchemaData.js +58 -0
  167. package/dist/cjs/src/client/models/RecommendationsImpressionSchema.d.ts +41 -0
  168. package/dist/cjs/src/client/models/RecommendationsImpressionSchema.d.ts.map +1 -0
  169. package/dist/cjs/src/client/models/RecommendationsImpressionSchema.js +57 -0
  170. package/dist/cjs/src/client/models/RecommendationsImpressionSchemaData.d.ts +53 -0
  171. package/dist/cjs/src/client/models/RecommendationsImpressionSchemaData.d.ts.map +1 -0
  172. package/dist/cjs/src/client/models/RecommendationsImpressionSchemaData.js +63 -0
  173. package/dist/cjs/src/client/models/RecommendationsRenderSchema.d.ts +41 -0
  174. package/dist/cjs/src/client/models/RecommendationsRenderSchema.d.ts.map +1 -0
  175. package/dist/cjs/src/client/models/RecommendationsRenderSchema.js +57 -0
  176. package/dist/cjs/src/client/models/RecommendationsRenderSchemaData.d.ts +39 -0
  177. package/dist/cjs/src/client/models/RecommendationsRenderSchemaData.d.ts.map +1 -0
  178. package/dist/cjs/src/client/models/RecommendationsRenderSchemaData.js +55 -0
  179. package/dist/cjs/src/client/models/RedirectSchema.d.ts +41 -0
  180. package/dist/cjs/src/client/models/RedirectSchema.d.ts.map +1 -0
  181. package/dist/cjs/src/client/models/RedirectSchema.js +57 -0
  182. package/dist/cjs/src/client/models/RedirectSchemaData.d.ts +39 -0
  183. package/dist/cjs/src/client/models/RedirectSchemaData.d.ts.map +1 -0
  184. package/dist/cjs/src/client/models/RedirectSchemaData.js +55 -0
  185. package/dist/cjs/src/client/models/RenderSchema.d.ts +41 -0
  186. package/dist/cjs/src/client/models/RenderSchema.d.ts.map +1 -0
  187. package/dist/cjs/src/client/models/RenderSchema.js +57 -0
  188. package/dist/cjs/src/client/models/RenderSchemaData.d.ts +33 -0
  189. package/dist/cjs/src/client/models/RenderSchemaData.d.ts.map +1 -0
  190. package/dist/cjs/src/client/models/RenderSchemaData.js +51 -0
  191. package/dist/cjs/src/client/models/ResultProduct.d.ts +52 -0
  192. package/dist/cjs/src/client/models/ResultProduct.d.ts.map +1 -0
  193. package/dist/cjs/src/client/models/ResultProduct.js +62 -0
  194. package/dist/cjs/src/client/models/ResultProductType.d.ts +26 -0
  195. package/dist/cjs/src/client/models/ResultProductType.d.ts.map +1 -0
  196. package/dist/cjs/src/client/models/ResultProductType.js +51 -0
  197. package/dist/cjs/src/client/models/ResultResultBanner.d.ts +40 -0
  198. package/dist/cjs/src/client/models/ResultResultBanner.d.ts.map +1 -0
  199. package/dist/cjs/src/client/models/ResultResultBanner.js +56 -0
  200. package/dist/cjs/src/client/models/ResultsInner.d.ts +24 -0
  201. package/dist/cjs/src/client/models/ResultsInner.d.ts.map +1 -0
  202. package/dist/cjs/src/client/models/ResultsInner.js +58 -0
  203. package/dist/cjs/src/client/models/ShopperContext.d.ts +101 -0
  204. package/dist/cjs/src/client/models/ShopperContext.d.ts.map +1 -0
  205. package/dist/cjs/src/client/models/ShopperContext.js +87 -0
  206. package/dist/cjs/src/client/models/ShopperLoginSchema.d.ts +34 -0
  207. package/dist/cjs/src/client/models/ShopperLoginSchema.d.ts.map +1 -0
  208. package/dist/cjs/src/client/models/ShopperLoginSchema.js +52 -0
  209. package/dist/cjs/src/client/models/ValidationErrorWithDataField.d.ts +51 -0
  210. package/dist/cjs/src/client/models/ValidationErrorWithDataField.d.ts.map +1 -0
  211. package/dist/cjs/src/client/models/ValidationErrorWithDataField.js +55 -0
  212. package/dist/cjs/src/client/models/index.d.ts +55 -0
  213. package/dist/cjs/src/client/models/index.d.ts.map +1 -0
  214. package/dist/cjs/src/client/models/index.js +72 -0
  215. package/dist/cjs/src/client/runtime.d.ts +185 -0
  216. package/dist/cjs/src/client/runtime.d.ts.map +1 -0
  217. package/dist/cjs/src/client/runtime.js +564 -0
  218. package/dist/cjs/src/index.d.ts +4 -0
  219. package/dist/cjs/src/index.d.ts.map +1 -0
  220. package/dist/cjs/src/index.js +21 -0
  221. package/dist/cjs/src/indexCDN.d.ts +2 -0
  222. package/dist/cjs/src/indexCDN.d.ts.map +1 -0
  223. package/dist/cjs/src/indexCDN.js +40 -0
  224. package/dist/cjs/src/utils/featureFlags.d.ts +11 -0
  225. package/dist/cjs/src/utils/featureFlags.d.ts.map +1 -0
  226. package/dist/cjs/src/utils/featureFlags.js +33 -0
  227. package/dist/esm/package.json +78 -0
  228. package/dist/esm/src/Beacon.d.ts +181 -0
  229. package/dist/esm/src/Beacon.d.ts.map +1 -0
  230. package/dist/esm/src/Beacon.js +1074 -0
  231. package/dist/esm/src/client/apis/AutocompleteApi.d.ts +89 -0
  232. package/dist/esm/src/client/apis/AutocompleteApi.d.ts.map +1 -0
  233. package/dist/esm/src/client/apis/AutocompleteApi.js +185 -0
  234. package/dist/esm/src/client/apis/CartApi.d.ts +47 -0
  235. package/dist/esm/src/client/apis/CartApi.d.ts.map +1 -0
  236. package/dist/esm/src/client/apis/CartApi.js +86 -0
  237. package/dist/esm/src/client/apis/CategoryApi.d.ts +75 -0
  238. package/dist/esm/src/client/apis/CategoryApi.d.ts.map +1 -0
  239. package/dist/esm/src/client/apis/CategoryApi.js +152 -0
  240. package/dist/esm/src/client/apis/ErrorLogsApi.d.ts +61 -0
  241. package/dist/esm/src/client/apis/ErrorLogsApi.d.ts.map +1 -0
  242. package/dist/esm/src/client/apis/ErrorLogsApi.js +119 -0
  243. package/dist/esm/src/client/apis/MessagingRecommendationsApi.d.ts +75 -0
  244. package/dist/esm/src/client/apis/MessagingRecommendationsApi.d.ts.map +1 -0
  245. package/dist/esm/src/client/apis/MessagingRecommendationsApi.js +152 -0
  246. package/dist/esm/src/client/apis/OrderApi.d.ts +33 -0
  247. package/dist/esm/src/client/apis/OrderApi.d.ts.map +1 -0
  248. package/dist/esm/src/client/apis/OrderApi.js +53 -0
  249. package/dist/esm/src/client/apis/ProductApi.d.ts +33 -0
  250. package/dist/esm/src/client/apis/ProductApi.d.ts.map +1 -0
  251. package/dist/esm/src/client/apis/ProductApi.js +53 -0
  252. package/dist/esm/src/client/apis/RecommendationsApi.d.ts +75 -0
  253. package/dist/esm/src/client/apis/RecommendationsApi.d.ts.map +1 -0
  254. package/dist/esm/src/client/apis/RecommendationsApi.js +152 -0
  255. package/dist/esm/src/client/apis/SearchApi.d.ts +89 -0
  256. package/dist/esm/src/client/apis/SearchApi.d.ts.map +1 -0
  257. package/dist/esm/src/client/apis/SearchApi.js +185 -0
  258. package/dist/esm/src/client/apis/ShopperApi.d.ts +33 -0
  259. package/dist/esm/src/client/apis/ShopperApi.d.ts.map +1 -0
  260. package/dist/esm/src/client/apis/ShopperApi.js +53 -0
  261. package/dist/esm/src/client/apis/index.d.ts +11 -0
  262. package/dist/esm/src/client/apis/index.d.ts.map +1 -0
  263. package/dist/esm/src/client/apis/index.js +12 -0
  264. package/dist/esm/src/client/index.d.ts +4 -0
  265. package/dist/esm/src/client/index.d.ts.map +1 -0
  266. package/dist/esm/src/client/index.js +5 -0
  267. package/dist/esm/src/client/models/AddtocartSchema.d.ts +41 -0
  268. package/dist/esm/src/client/models/AddtocartSchema.d.ts.map +1 -0
  269. package/dist/esm/src/client/models/AddtocartSchema.js +49 -0
  270. package/dist/esm/src/client/models/AddtocartSchemaData.d.ts +40 -0
  271. package/dist/esm/src/client/models/AddtocartSchemaData.d.ts.map +1 -0
  272. package/dist/esm/src/client/models/AddtocartSchemaData.js +48 -0
  273. package/dist/esm/src/client/models/AttributionInner.d.ts +39 -0
  274. package/dist/esm/src/client/models/AttributionInner.d.ts.map +1 -0
  275. package/dist/esm/src/client/models/AttributionInner.js +47 -0
  276. package/dist/esm/src/client/models/BannersInner.d.ts +33 -0
  277. package/dist/esm/src/client/models/BannersInner.d.ts.map +1 -0
  278. package/dist/esm/src/client/models/BannersInner.js +43 -0
  279. package/dist/esm/src/client/models/CartSchema.d.ts +41 -0
  280. package/dist/esm/src/client/models/CartSchema.d.ts.map +1 -0
  281. package/dist/esm/src/client/models/CartSchema.js +49 -0
  282. package/dist/esm/src/client/models/CartSchemaData.d.ts +40 -0
  283. package/dist/esm/src/client/models/CartSchemaData.d.ts.map +1 -0
  284. package/dist/esm/src/client/models/CartSchemaData.js +48 -0
  285. package/dist/esm/src/client/models/ClickthroughBannersInner.d.ts +33 -0
  286. package/dist/esm/src/client/models/ClickthroughBannersInner.d.ts.map +1 -0
  287. package/dist/esm/src/client/models/ClickthroughBannersInner.js +43 -0
  288. package/dist/esm/src/client/models/ClickthroughBannersSchema.d.ts +40 -0
  289. package/dist/esm/src/client/models/ClickthroughBannersSchema.d.ts.map +1 -0
  290. package/dist/esm/src/client/models/ClickthroughBannersSchema.js +48 -0
  291. package/dist/esm/src/client/models/ClickthroughBannersSchema1.d.ts +46 -0
  292. package/dist/esm/src/client/models/ClickthroughBannersSchema1.d.ts.map +1 -0
  293. package/dist/esm/src/client/models/ClickthroughBannersSchema1.js +52 -0
  294. package/dist/esm/src/client/models/ClickthroughResultsInner.d.ts +24 -0
  295. package/dist/esm/src/client/models/ClickthroughResultsInner.d.ts.map +1 -0
  296. package/dist/esm/src/client/models/ClickthroughResultsInner.js +51 -0
  297. package/dist/esm/src/client/models/ClickthroughResultsSchema.d.ts +40 -0
  298. package/dist/esm/src/client/models/ClickthroughResultsSchema.d.ts.map +1 -0
  299. package/dist/esm/src/client/models/ClickthroughResultsSchema.js +48 -0
  300. package/dist/esm/src/client/models/ClickthroughResultsSchema1.d.ts +46 -0
  301. package/dist/esm/src/client/models/ClickthroughResultsSchema1.d.ts.map +1 -0
  302. package/dist/esm/src/client/models/ClickthroughResultsSchema1.js +52 -0
  303. package/dist/esm/src/client/models/ClickthroughSchema.d.ts +41 -0
  304. package/dist/esm/src/client/models/ClickthroughSchema.d.ts.map +1 -0
  305. package/dist/esm/src/client/models/ClickthroughSchema.js +49 -0
  306. package/dist/esm/src/client/models/ClickthroughSchemaData.d.ts +24 -0
  307. package/dist/esm/src/client/models/ClickthroughSchemaData.d.ts.map +1 -0
  308. package/dist/esm/src/client/models/ClickthroughSchemaData.js +51 -0
  309. package/dist/esm/src/client/models/Context.d.ts +101 -0
  310. package/dist/esm/src/client/models/Context.d.ts.map +1 -0
  311. package/dist/esm/src/client/models/Context.js +77 -0
  312. package/dist/esm/src/client/models/Currency.d.ts +33 -0
  313. package/dist/esm/src/client/models/Currency.d.ts.map +1 -0
  314. package/dist/esm/src/client/models/Currency.js +41 -0
  315. package/dist/esm/src/client/models/ErrorResponseBody.d.ts +45 -0
  316. package/dist/esm/src/client/models/ErrorResponseBody.d.ts.map +1 -0
  317. package/dist/esm/src/client/models/ErrorResponseBody.js +45 -0
  318. package/dist/esm/src/client/models/ImpressionSchema.d.ts +41 -0
  319. package/dist/esm/src/client/models/ImpressionSchema.d.ts.map +1 -0
  320. package/dist/esm/src/client/models/ImpressionSchema.js +49 -0
  321. package/dist/esm/src/client/models/ImpressionSchemaData.d.ts +47 -0
  322. package/dist/esm/src/client/models/ImpressionSchemaData.d.ts.map +1 -0
  323. package/dist/esm/src/client/models/ImpressionSchemaData.js +53 -0
  324. package/dist/esm/src/client/models/InlineObject.d.ts +33 -0
  325. package/dist/esm/src/client/models/InlineObject.d.ts.map +1 -0
  326. package/dist/esm/src/client/models/InlineObject.js +41 -0
  327. package/dist/esm/src/client/models/InlineObject1.d.ts +51 -0
  328. package/dist/esm/src/client/models/InlineObject1.d.ts.map +1 -0
  329. package/dist/esm/src/client/models/InlineObject1.js +47 -0
  330. package/dist/esm/src/client/models/LogSchema.d.ts +41 -0
  331. package/dist/esm/src/client/models/LogSchema.d.ts.map +1 -0
  332. package/dist/esm/src/client/models/LogSchema.js +49 -0
  333. package/dist/esm/src/client/models/LogSchemaData.d.ts +45 -0
  334. package/dist/esm/src/client/models/LogSchemaData.d.ts.map +1 -0
  335. package/dist/esm/src/client/models/LogSchemaData.js +47 -0
  336. package/dist/esm/src/client/models/MessagingSchema.d.ts +41 -0
  337. package/dist/esm/src/client/models/MessagingSchema.d.ts.map +1 -0
  338. package/dist/esm/src/client/models/MessagingSchema.js +49 -0
  339. package/dist/esm/src/client/models/MessagingSchemaContext.d.ts +45 -0
  340. package/dist/esm/src/client/models/MessagingSchemaContext.d.ts.map +1 -0
  341. package/dist/esm/src/client/models/MessagingSchemaContext.js +49 -0
  342. package/dist/esm/src/client/models/MessagingSchemaData.d.ts +39 -0
  343. package/dist/esm/src/client/models/MessagingSchemaData.d.ts.map +1 -0
  344. package/dist/esm/src/client/models/MessagingSchemaData.js +47 -0
  345. package/dist/esm/src/client/models/OrderTransactionSchema.d.ts +41 -0
  346. package/dist/esm/src/client/models/OrderTransactionSchema.d.ts.map +1 -0
  347. package/dist/esm/src/client/models/OrderTransactionSchema.js +49 -0
  348. package/dist/esm/src/client/models/OrderTransactionSchemaData.d.ts +76 -0
  349. package/dist/esm/src/client/models/OrderTransactionSchemaData.d.ts.map +1 -0
  350. package/dist/esm/src/client/models/OrderTransactionSchemaData.js +64 -0
  351. package/dist/esm/src/client/models/PersonalizationLogContext.d.ts +39 -0
  352. package/dist/esm/src/client/models/PersonalizationLogContext.d.ts.map +1 -0
  353. package/dist/esm/src/client/models/PersonalizationLogContext.js +45 -0
  354. package/dist/esm/src/client/models/PersonalizationLogSchema.d.ts +41 -0
  355. package/dist/esm/src/client/models/PersonalizationLogSchema.d.ts.map +1 -0
  356. package/dist/esm/src/client/models/PersonalizationLogSchema.js +49 -0
  357. package/dist/esm/src/client/models/PersonalizationLogSchemaData.d.ts +45 -0
  358. package/dist/esm/src/client/models/PersonalizationLogSchemaData.d.ts.map +1 -0
  359. package/dist/esm/src/client/models/PersonalizationLogSchemaData.js +45 -0
  360. package/dist/esm/src/client/models/Product.d.ts +57 -0
  361. package/dist/esm/src/client/models/Product.d.ts.map +1 -0
  362. package/dist/esm/src/client/models/Product.js +57 -0
  363. package/dist/esm/src/client/models/ProductPageviewSchema.d.ts +41 -0
  364. package/dist/esm/src/client/models/ProductPageviewSchema.d.ts.map +1 -0
  365. package/dist/esm/src/client/models/ProductPageviewSchema.js +49 -0
  366. package/dist/esm/src/client/models/ProductPageviewSchemaData.d.ts +34 -0
  367. package/dist/esm/src/client/models/ProductPageviewSchemaData.d.ts.map +1 -0
  368. package/dist/esm/src/client/models/ProductPageviewSchemaData.js +44 -0
  369. package/dist/esm/src/client/models/ProductPageviewSchemaDataResult.d.ts +45 -0
  370. package/dist/esm/src/client/models/ProductPageviewSchemaDataResult.d.ts.map +1 -0
  371. package/dist/esm/src/client/models/ProductPageviewSchemaDataResult.js +49 -0
  372. package/dist/esm/src/client/models/RecommendationsAddtocartSchema.d.ts +41 -0
  373. package/dist/esm/src/client/models/RecommendationsAddtocartSchema.d.ts.map +1 -0
  374. package/dist/esm/src/client/models/RecommendationsAddtocartSchema.js +49 -0
  375. package/dist/esm/src/client/models/RecommendationsAddtocartSchemaData.d.ts +46 -0
  376. package/dist/esm/src/client/models/RecommendationsAddtocartSchemaData.d.ts.map +1 -0
  377. package/dist/esm/src/client/models/RecommendationsAddtocartSchemaData.js +52 -0
  378. package/dist/esm/src/client/models/RecommendationsClickthroughSchema.d.ts +41 -0
  379. package/dist/esm/src/client/models/RecommendationsClickthroughSchema.d.ts.map +1 -0
  380. package/dist/esm/src/client/models/RecommendationsClickthroughSchema.js +49 -0
  381. package/dist/esm/src/client/models/RecommendationsClickthroughSchemaData.d.ts +24 -0
  382. package/dist/esm/src/client/models/RecommendationsClickthroughSchemaData.d.ts.map +1 -0
  383. package/dist/esm/src/client/models/RecommendationsClickthroughSchemaData.js +51 -0
  384. package/dist/esm/src/client/models/RecommendationsImpressionSchema.d.ts +41 -0
  385. package/dist/esm/src/client/models/RecommendationsImpressionSchema.d.ts.map +1 -0
  386. package/dist/esm/src/client/models/RecommendationsImpressionSchema.js +49 -0
  387. package/dist/esm/src/client/models/RecommendationsImpressionSchemaData.d.ts +53 -0
  388. package/dist/esm/src/client/models/RecommendationsImpressionSchemaData.d.ts.map +1 -0
  389. package/dist/esm/src/client/models/RecommendationsImpressionSchemaData.js +55 -0
  390. package/dist/esm/src/client/models/RecommendationsRenderSchema.d.ts +41 -0
  391. package/dist/esm/src/client/models/RecommendationsRenderSchema.d.ts.map +1 -0
  392. package/dist/esm/src/client/models/RecommendationsRenderSchema.js +49 -0
  393. package/dist/esm/src/client/models/RecommendationsRenderSchemaData.d.ts +39 -0
  394. package/dist/esm/src/client/models/RecommendationsRenderSchemaData.d.ts.map +1 -0
  395. package/dist/esm/src/client/models/RecommendationsRenderSchemaData.js +47 -0
  396. package/dist/esm/src/client/models/RedirectSchema.d.ts +41 -0
  397. package/dist/esm/src/client/models/RedirectSchema.d.ts.map +1 -0
  398. package/dist/esm/src/client/models/RedirectSchema.js +49 -0
  399. package/dist/esm/src/client/models/RedirectSchemaData.d.ts +39 -0
  400. package/dist/esm/src/client/models/RedirectSchemaData.d.ts.map +1 -0
  401. package/dist/esm/src/client/models/RedirectSchemaData.js +47 -0
  402. package/dist/esm/src/client/models/RenderSchema.d.ts +41 -0
  403. package/dist/esm/src/client/models/RenderSchema.d.ts.map +1 -0
  404. package/dist/esm/src/client/models/RenderSchema.js +49 -0
  405. package/dist/esm/src/client/models/RenderSchemaData.d.ts +33 -0
  406. package/dist/esm/src/client/models/RenderSchemaData.d.ts.map +1 -0
  407. package/dist/esm/src/client/models/RenderSchemaData.js +43 -0
  408. package/dist/esm/src/client/models/ResultProduct.d.ts +52 -0
  409. package/dist/esm/src/client/models/ResultProduct.d.ts.map +1 -0
  410. package/dist/esm/src/client/models/ResultProduct.js +54 -0
  411. package/dist/esm/src/client/models/ResultProductType.d.ts +26 -0
  412. package/dist/esm/src/client/models/ResultProductType.d.ts.map +1 -0
  413. package/dist/esm/src/client/models/ResultProductType.js +43 -0
  414. package/dist/esm/src/client/models/ResultResultBanner.d.ts +40 -0
  415. package/dist/esm/src/client/models/ResultResultBanner.d.ts.map +1 -0
  416. package/dist/esm/src/client/models/ResultResultBanner.js +48 -0
  417. package/dist/esm/src/client/models/ResultsInner.d.ts +24 -0
  418. package/dist/esm/src/client/models/ResultsInner.d.ts.map +1 -0
  419. package/dist/esm/src/client/models/ResultsInner.js +51 -0
  420. package/dist/esm/src/client/models/ShopperContext.d.ts +101 -0
  421. package/dist/esm/src/client/models/ShopperContext.d.ts.map +1 -0
  422. package/dist/esm/src/client/models/ShopperContext.js +79 -0
  423. package/dist/esm/src/client/models/ShopperLoginSchema.d.ts +34 -0
  424. package/dist/esm/src/client/models/ShopperLoginSchema.d.ts.map +1 -0
  425. package/dist/esm/src/client/models/ShopperLoginSchema.js +44 -0
  426. package/dist/esm/src/client/models/ValidationErrorWithDataField.d.ts +51 -0
  427. package/dist/esm/src/client/models/ValidationErrorWithDataField.d.ts.map +1 -0
  428. package/dist/esm/src/client/models/ValidationErrorWithDataField.js +47 -0
  429. package/dist/esm/src/client/models/index.d.ts +55 -0
  430. package/dist/esm/src/client/models/index.d.ts.map +1 -0
  431. package/dist/esm/src/client/models/index.js +56 -0
  432. package/dist/esm/src/client/runtime.d.ts +185 -0
  433. package/dist/esm/src/client/runtime.d.ts.map +1 -0
  434. package/dist/esm/src/client/runtime.js +322 -0
  435. package/dist/esm/src/index.d.ts +4 -0
  436. package/dist/esm/src/index.d.ts.map +1 -0
  437. package/dist/esm/src/index.js +3 -0
  438. package/dist/esm/src/indexCDN.d.ts +2 -0
  439. package/dist/esm/src/indexCDN.d.ts.map +1 -0
  440. package/dist/esm/src/indexCDN.js +33 -0
  441. package/dist/esm/src/utils/featureFlags.d.ts +11 -0
  442. package/dist/esm/src/utils/featureFlags.d.ts.map +1 -0
  443. package/dist/esm/src/utils/featureFlags.js +27 -0
  444. package/jest.config.js +14 -0
  445. package/openapitools.json +7 -0
  446. package/package.json +78 -0
  447. package/public/index.html +18 -0
  448. package/src/Beacon.test.ts +1487 -0
  449. package/src/Beacon.ts +1322 -0
  450. package/src/client/.openapi-generator/FILES +133 -0
  451. package/src/client/.openapi-generator/VERSION +1 -0
  452. package/src/client/.openapi-generator-ignore +23 -0
  453. package/src/client/apis/AutocompleteApi.ts +321 -0
  454. package/src/client/apis/CartApi.ts +147 -0
  455. package/src/client/apis/CategoryApi.ts +264 -0
  456. package/src/client/apis/ErrorLogsApi.ts +204 -0
  457. package/src/client/apis/MessagingRecommendationsApi.ts +255 -0
  458. package/src/client/apis/OrderApi.ts +93 -0
  459. package/src/client/apis/ProductApi.ts +93 -0
  460. package/src/client/apis/RecommendationsApi.ts +264 -0
  461. package/src/client/apis/SearchApi.ts +321 -0
  462. package/src/client/apis/ShopperApi.ts +93 -0
  463. package/src/client/apis/index.ts +12 -0
  464. package/src/client/docs/AddtocartSchema.md +36 -0
  465. package/src/client/docs/AddtocartSchemaData.md +37 -0
  466. package/src/client/docs/AttributionInner.md +36 -0
  467. package/src/client/docs/AutocompleteApi.md +393 -0
  468. package/src/client/docs/BannersInner.md +34 -0
  469. package/src/client/docs/CartApi.md +162 -0
  470. package/src/client/docs/CartSchema.md +36 -0
  471. package/src/client/docs/CartSchemaData.md +37 -0
  472. package/src/client/docs/CategoryApi.md +316 -0
  473. package/src/client/docs/ClickthroughBannersInner.md +34 -0
  474. package/src/client/docs/ClickthroughBannersSchema.md +36 -0
  475. package/src/client/docs/ClickthroughBannersSchema1.md +38 -0
  476. package/src/client/docs/ClickthroughResultsInner.md +40 -0
  477. package/src/client/docs/ClickthroughResultsSchema.md +36 -0
  478. package/src/client/docs/ClickthroughResultsSchema1.md +38 -0
  479. package/src/client/docs/ClickthroughSchema.md +36 -0
  480. package/src/client/docs/ClickthroughSchemaData.md +39 -0
  481. package/src/client/docs/Context.md +57 -0
  482. package/src/client/docs/Currency.md +35 -0
  483. package/src/client/docs/ErrorLogsApi.md +239 -0
  484. package/src/client/docs/ErrorResponseBody.md +38 -0
  485. package/src/client/docs/ImpressionSchema.md +36 -0
  486. package/src/client/docs/ImpressionSchemaData.md +39 -0
  487. package/src/client/docs/InlineObject.md +34 -0
  488. package/src/client/docs/InlineObject1.md +40 -0
  489. package/src/client/docs/LogSchema.md +36 -0
  490. package/src/client/docs/LogSchemaData.md +39 -0
  491. package/src/client/docs/MessagingRecommendationsApi.md +316 -0
  492. package/src/client/docs/MessagingSchema.md +36 -0
  493. package/src/client/docs/MessagingSchemaContext.md +39 -0
  494. package/src/client/docs/MessagingSchemaData.md +37 -0
  495. package/src/client/docs/OrderApi.md +85 -0
  496. package/src/client/docs/OrderTransactionSchema.md +36 -0
  497. package/src/client/docs/OrderTransactionSchemaData.md +49 -0
  498. package/src/client/docs/PersonalizationLogContext.md +36 -0
  499. package/src/client/docs/PersonalizationLogSchema.md +36 -0
  500. package/src/client/docs/PersonalizationLogSchemaData.md +39 -0
  501. package/src/client/docs/Product.md +43 -0
  502. package/src/client/docs/ProductApi.md +85 -0
  503. package/src/client/docs/ProductPageviewSchema.md +36 -0
  504. package/src/client/docs/ProductPageviewSchemaData.md +35 -0
  505. package/src/client/docs/ProductPageviewSchemaDataResult.md +39 -0
  506. package/src/client/docs/RecommendationsAddtocartSchema.md +36 -0
  507. package/src/client/docs/RecommendationsAddtocartSchemaData.md +39 -0
  508. package/src/client/docs/RecommendationsApi.md +316 -0
  509. package/src/client/docs/RecommendationsClickthroughSchema.md +36 -0
  510. package/src/client/docs/RecommendationsClickthroughSchemaData.md +41 -0
  511. package/src/client/docs/RecommendationsImpressionSchema.md +36 -0
  512. package/src/client/docs/RecommendationsImpressionSchemaData.md +41 -0
  513. package/src/client/docs/RecommendationsRenderSchema.md +36 -0
  514. package/src/client/docs/RecommendationsRenderSchemaData.md +37 -0
  515. package/src/client/docs/RedirectSchema.md +36 -0
  516. package/src/client/docs/RedirectSchemaData.md +37 -0
  517. package/src/client/docs/RenderSchema.md +36 -0
  518. package/src/client/docs/RenderSchemaData.md +35 -0
  519. package/src/client/docs/ResultProduct.md +41 -0
  520. package/src/client/docs/ResultProductType.md +33 -0
  521. package/src/client/docs/ResultResultBanner.md +37 -0
  522. package/src/client/docs/ResultsInner.md +40 -0
  523. package/src/client/docs/SearchApi.md +393 -0
  524. package/src/client/docs/ShopperApi.md +85 -0
  525. package/src/client/docs/ShopperContext.md +57 -0
  526. package/src/client/docs/ShopperLoginSchema.md +34 -0
  527. package/src/client/docs/ValidationErrorWithDataField.md +40 -0
  528. package/src/client/index.ts +5 -0
  529. package/src/client/models/AddtocartSchema.ts +90 -0
  530. package/src/client/models/AddtocartSchemaData.ts +83 -0
  531. package/src/client/models/AttributionInner.ts +75 -0
  532. package/src/client/models/BannersInner.ts +66 -0
  533. package/src/client/models/CartSchema.ts +90 -0
  534. package/src/client/models/CartSchemaData.ts +83 -0
  535. package/src/client/models/ClickthroughBannersInner.ts +66 -0
  536. package/src/client/models/ClickthroughBannersSchema.ts +83 -0
  537. package/src/client/models/ClickthroughBannersSchema1.ts +92 -0
  538. package/src/client/models/ClickthroughResultsInner.ts +76 -0
  539. package/src/client/models/ClickthroughResultsSchema.ts +83 -0
  540. package/src/client/models/ClickthroughResultsSchema1.ts +92 -0
  541. package/src/client/models/ClickthroughSchema.ts +90 -0
  542. package/src/client/models/ClickthroughSchemaData.ts +76 -0
  543. package/src/client/models/Context.ts +174 -0
  544. package/src/client/models/Currency.ts +65 -0
  545. package/src/client/models/ErrorResponseBody.ts +81 -0
  546. package/src/client/models/ImpressionSchema.ts +90 -0
  547. package/src/client/models/ImpressionSchemaData.ts +99 -0
  548. package/src/client/models/InlineObject.ts +65 -0
  549. package/src/client/models/InlineObject1.ts +104 -0
  550. package/src/client/models/LogSchema.ts +90 -0
  551. package/src/client/models/LogSchemaData.ts +82 -0
  552. package/src/client/models/MessagingSchema.ts +90 -0
  553. package/src/client/models/MessagingSchemaContext.ts +83 -0
  554. package/src/client/models/MessagingSchemaData.ts +75 -0
  555. package/src/client/models/OrderTransactionSchema.ts +90 -0
  556. package/src/client/models/OrderTransactionSchemaData.ts +133 -0
  557. package/src/client/models/PersonalizationLogContext.ts +74 -0
  558. package/src/client/models/PersonalizationLogSchema.ts +90 -0
  559. package/src/client/models/PersonalizationLogSchemaData.ts +81 -0
  560. package/src/client/models/Product.ts +101 -0
  561. package/src/client/models/ProductPageviewSchema.ts +90 -0
  562. package/src/client/models/ProductPageviewSchemaData.ts +74 -0
  563. package/src/client/models/ProductPageviewSchemaDataResult.ts +83 -0
  564. package/src/client/models/RecommendationsAddtocartSchema.ts +90 -0
  565. package/src/client/models/RecommendationsAddtocartSchemaData.ts +92 -0
  566. package/src/client/models/RecommendationsClickthroughSchema.ts +90 -0
  567. package/src/client/models/RecommendationsClickthroughSchemaData.ts +76 -0
  568. package/src/client/models/RecommendationsImpressionSchema.ts +90 -0
  569. package/src/client/models/RecommendationsImpressionSchemaData.ts +107 -0
  570. package/src/client/models/RecommendationsRenderSchema.ts +90 -0
  571. package/src/client/models/RecommendationsRenderSchemaData.ts +75 -0
  572. package/src/client/models/RedirectSchema.ts +90 -0
  573. package/src/client/models/RedirectSchemaData.ts +75 -0
  574. package/src/client/models/RenderSchema.ts +90 -0
  575. package/src/client/models/RenderSchemaData.ts +66 -0
  576. package/src/client/models/ResultProduct.ts +102 -0
  577. package/src/client/models/ResultProductType.ts +53 -0
  578. package/src/client/models/ResultResultBanner.ts +85 -0
  579. package/src/client/models/ResultsInner.ts +76 -0
  580. package/src/client/models/ShopperContext.ts +175 -0
  581. package/src/client/models/ShopperLoginSchema.ts +74 -0
  582. package/src/client/models/ValidationErrorWithDataField.ts +89 -0
  583. package/src/client/models/index.ts +56 -0
  584. package/src/client/runtime.ts +432 -0
  585. package/src/index.ts +3 -0
  586. package/src/indexCDN.ts +34 -0
  587. package/src/utils/featureFlags.ts +35 -0
  588. package/tsconfig.cjs.json +31 -0
  589. package/tsconfig.json +34 -0
  590. package/webpack.prod.js +47 -0
@@ -0,0 +1,1153 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
58
+ var __importDefault = (this && this.__importDefault) || function (mod) {
59
+ return (mod && mod.__esModule) ? mod : { "default": mod };
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ exports.Beacon = exports.COOKIE_DOMAIN = exports.PAGE_LOAD_ID_EXPIRATION = exports.COOKIE_SAMESITE = exports.CART_KEY = exports.PAGE_LOAD_ID_KEY = exports.PREFLIGHT_DEBOUNCE_TIMEOUT = exports.REQUEST_GROUPING_TIMEOUT = exports.version = void 0;
63
+ exports.appendResults = appendResults;
64
+ exports.additionalRequestKeys = additionalRequestKeys;
65
+ var package_json_1 = __importDefault(require("../package.json"));
66
+ exports.version = package_json_1.default.version;
67
+ var featureFlags_1 = require("./utils/featureFlags");
68
+ var uuid_1 = require("uuid");
69
+ var client_1 = require("./client");
70
+ exports.REQUEST_GROUPING_TIMEOUT = 300;
71
+ exports.PREFLIGHT_DEBOUNCE_TIMEOUT = 300;
72
+ var USER_ID_KEY = 'ssUserId';
73
+ exports.PAGE_LOAD_ID_KEY = 'ssPageLoadId';
74
+ var SESSION_ID_KEY = 'ssSessionId';
75
+ var SHOPPER_ID_KEY = 'ssShopperId';
76
+ exports.CART_KEY = 'ssCartProducts';
77
+ var VIEWED_KEY = 'ssViewedProducts';
78
+ exports.COOKIE_SAMESITE = 'Lax';
79
+ var ATTRIBUTION_QUERY_PARAM = 'ss_attribution';
80
+ var ATTRIBUTION_KEY = 'ssAttribution';
81
+ var MAX_EXPIRATION = 47304000000; // 18 months
82
+ var THIRTY_MINUTES = 1800000; // 30 minutes
83
+ exports.PAGE_LOAD_ID_EXPIRATION = 10000; // 10 seconds
84
+ var MAX_VIEWED_COUNT = 20;
85
+ var EXPIRED_COOKIE = -1;
86
+ exports.COOKIE_DOMAIN = (typeof window !== 'undefined' && window.location.hostname && '.' + window.location.hostname.replace(/^www\./, '')) || undefined;
87
+ var Beacon = /** @class */ (function () {
88
+ function Beacon(globals, config) {
89
+ var _this = this;
90
+ var _a, _b, _c, _d;
91
+ this.mode = 'production';
92
+ this.pageLoadId = '';
93
+ this.userId = '';
94
+ this.sessionId = '';
95
+ this.shopperId = '';
96
+ this.currency = {
97
+ code: '',
98
+ };
99
+ this.initiator = '';
100
+ this.batchIntervalTimeout = 0;
101
+ this.preflightTimeout = 0;
102
+ this.requests = [];
103
+ this.storage = {
104
+ cart: {
105
+ get: function () {
106
+ // perhaps... always get from storage and return Product[] - storage always has Product[]
107
+ var storedProducts = _this.getLocalStorageItem(exports.CART_KEY);
108
+ if (storedProducts) {
109
+ try {
110
+ if (Array.isArray(storedProducts)) {
111
+ return storedProducts;
112
+ }
113
+ }
114
+ catch (_a) {
115
+ // corrupted - delete entry
116
+ window === null || window === void 0 ? void 0 : window.localStorage.removeItem(exports.CART_KEY);
117
+ _this.setCookie(exports.CART_KEY, '', exports.COOKIE_SAMESITE, 0, exports.COOKIE_DOMAIN);
118
+ }
119
+ }
120
+ else {
121
+ var storedSkus = _this.getCookie(exports.CART_KEY);
122
+ // split on ',' and remap to Product[], setting qty and price to unknowns (0?)
123
+ return storedSkus
124
+ .split(',')
125
+ .filter(function (sku) { return sku; })
126
+ .map(function (sku) { return ({ parentId: sku, uid: sku, sku: sku, qty: 1, price: 0 }); });
127
+ }
128
+ return [];
129
+ },
130
+ set: function (products) {
131
+ // store Product[] into storage + store mapped string[] into cookie (for legacy purposes)
132
+ var currentCartProducts = _this.storage.cart.get();
133
+ var stringifiedProducts = JSON.stringify(products);
134
+ try {
135
+ _this.setLocalStorageItem(exports.CART_KEY, products);
136
+ }
137
+ catch (e) {
138
+ sendStorageError(e, _this, exports.CART_KEY, stringifiedProducts);
139
+ }
140
+ // also set cookie with re-mapping - favoring the more specific variant
141
+ var storedProductsCookie = products.map(function (product) { return _this.getProductId(product); }).join(',');
142
+ _this.setCookie(exports.CART_KEY, storedProductsCookie, exports.COOKIE_SAMESITE, 0, exports.COOKIE_DOMAIN);
143
+ var productsHaveChanged = JSON.stringify(currentCartProducts) !== stringifiedProducts;
144
+ if (productsHaveChanged) {
145
+ _this._sendPreflight();
146
+ }
147
+ },
148
+ add: function (products) {
149
+ if (products.length) {
150
+ var existingCartProducts = _this.storage.cart.get();
151
+ var cartProducts_1 = __spreadArray([], existingCartProducts, true);
152
+ products
153
+ .filter(function (product) { return typeof product === 'object' && product.uid; })
154
+ .reverse()
155
+ .forEach(function (product) {
156
+ // ensure objects have properties
157
+ var isSkuAlreadyInCart = cartProducts_1.find(function (cartProduct) { return cartProduct.uid === product.uid; });
158
+ if (!isSkuAlreadyInCart) {
159
+ cartProducts_1.unshift(product);
160
+ }
161
+ else {
162
+ isSkuAlreadyInCart.qty += product.qty;
163
+ isSkuAlreadyInCart.price = product.price || isSkuAlreadyInCart.price;
164
+ if (product.parentId !== isSkuAlreadyInCart.parentId || product.sku !== isSkuAlreadyInCart.sku) {
165
+ // parentId or sku are set to the same values if fallback (due to localstorage disabled/full) to storing in cookie.
166
+ isSkuAlreadyInCart.parentId = product.parentId;
167
+ isSkuAlreadyInCart.sku = product.sku;
168
+ }
169
+ }
170
+ });
171
+ _this.storage.cart.set(cartProducts_1);
172
+ }
173
+ },
174
+ remove: function (products) {
175
+ if (products.length) {
176
+ var existingCartProducts = _this.storage.cart.get();
177
+ var cartProducts_2 = __spreadArray([], existingCartProducts, true);
178
+ products.forEach(function (product) {
179
+ var isSkuAlreadyInCart = cartProducts_2.find(function (cartProduct) {
180
+ return cartProduct.uid === product.uid;
181
+ });
182
+ if (isSkuAlreadyInCart) {
183
+ if (isSkuAlreadyInCart.qty > 0) {
184
+ isSkuAlreadyInCart.qty -= product.qty || 1;
185
+ if (product.parentId !== isSkuAlreadyInCart.parentId || product.sku !== isSkuAlreadyInCart.sku) {
186
+ // parentId or sku are set to the same values if fallback (due to localstorage disabled/full) to storing in cookie.
187
+ isSkuAlreadyInCart.parentId = product.parentId;
188
+ isSkuAlreadyInCart.sku = product.sku;
189
+ }
190
+ }
191
+ }
192
+ });
193
+ // keep products with qty > 0
194
+ var updatedCartProducts = cartProducts_2.filter(function (product) { return product.qty > 0; });
195
+ _this.storage.cart.set(updatedCartProducts);
196
+ }
197
+ },
198
+ clear: function () {
199
+ _this.storage.cart.set([]);
200
+ },
201
+ },
202
+ viewed: {
203
+ get: function () {
204
+ var storedItems = _this.getLocalStorageItem(VIEWED_KEY);
205
+ if (storedItems) {
206
+ try {
207
+ if (Array.isArray(storedItems)) {
208
+ return storedItems;
209
+ }
210
+ }
211
+ catch (_a) {
212
+ // corrupted - delete entry
213
+ window === null || window === void 0 ? void 0 : window.localStorage.removeItem(VIEWED_KEY);
214
+ _this.setCookie(VIEWED_KEY, '', exports.COOKIE_SAMESITE, MAX_EXPIRATION, exports.COOKIE_DOMAIN);
215
+ }
216
+ }
217
+ else {
218
+ var storedSkus = _this.getCookie(VIEWED_KEY);
219
+ // split on ',' and remap to Product[], setting qty and price to unknowns (0?)
220
+ return storedSkus
221
+ .split(',')
222
+ .filter(function (sku) { return sku; })
223
+ .map(function (sku) { return ({ parentId: sku, uid: sku, sku: sku }); });
224
+ }
225
+ return [];
226
+ },
227
+ set: function (products) {
228
+ var currentViewedItems = _this.storage.viewed.get();
229
+ // remove qty and price if product is provided
230
+ var normalizedItems = products
231
+ .map(function (item) { return ({ sku: item.sku, parentId: item.parentId, uid: item.uid }); })
232
+ .slice(0, MAX_VIEWED_COUNT);
233
+ var stringifiedNormalizedItems = JSON.stringify(normalizedItems);
234
+ try {
235
+ _this.setLocalStorageItem(VIEWED_KEY, normalizedItems);
236
+ }
237
+ catch (e) {
238
+ sendStorageError(e, _this, VIEWED_KEY, stringifiedNormalizedItems);
239
+ }
240
+ // also set cookie with re-mapping - favoring the more specific variant
241
+ var storedProductsCookie = normalizedItems.map(function (item) { return _this.getProductId(item); }).join(',');
242
+ _this.setCookie(VIEWED_KEY, storedProductsCookie, exports.COOKIE_SAMESITE, MAX_EXPIRATION, exports.COOKIE_DOMAIN);
243
+ var productsHaveChanged = JSON.stringify(currentViewedItems) !== stringifiedNormalizedItems;
244
+ if (productsHaveChanged) {
245
+ _this._sendPreflight();
246
+ }
247
+ },
248
+ add: function (products) {
249
+ // the order of the stored items matters - most recently viewed should be in front of array?
250
+ if (products.length) {
251
+ var viewedProducts_1 = _this.storage.viewed.get();
252
+ products.forEach(function (product) {
253
+ var item = {
254
+ sku: product.sku,
255
+ parentId: product.parentId,
256
+ uid: product.uid,
257
+ };
258
+ var isItemAlreadyViewed = viewedProducts_1.find(function (viewedProduct) { return viewedProduct.uid === item.uid; });
259
+ if (isItemAlreadyViewed) {
260
+ // item has been viewed remove it from array
261
+ var index = viewedProducts_1.indexOf(isItemAlreadyViewed);
262
+ viewedProducts_1.splice(index, 1);
263
+ }
264
+ // add item to front of array
265
+ viewedProducts_1.unshift(item);
266
+ });
267
+ _this.storage.viewed.set(viewedProducts_1);
268
+ }
269
+ },
270
+ },
271
+ };
272
+ this.events = {
273
+ shopper: {
274
+ login: function (event) {
275
+ var _a, _b;
276
+ var context = _this.getContext();
277
+ context.shopperId = (_a = event.data) === null || _a === void 0 ? void 0 : _a.id;
278
+ if ((_b = event.data) === null || _b === void 0 ? void 0 : _b.id) {
279
+ var payload = {
280
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
281
+ shopperLoginSchema: {
282
+ context: context,
283
+ },
284
+ };
285
+ var request = _this.createRequest('shopper', 'login', payload);
286
+ _this.sendRequests([request]);
287
+ }
288
+ },
289
+ },
290
+ autocomplete: {
291
+ render: function (event) {
292
+ var payload = {
293
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
294
+ renderSchema: {
295
+ context: _this.getContext(),
296
+ data: event.data,
297
+ },
298
+ };
299
+ var request = _this.createRequest('autocomplete', 'autocompleteRender', payload);
300
+ _this.queueRequest(request);
301
+ },
302
+ impression: function (event) {
303
+ var payload = {
304
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
305
+ impressionSchema: {
306
+ context: _this.getContext(),
307
+ data: event.data,
308
+ },
309
+ };
310
+ var request = _this.createRequest('autocomplete', 'autocompleteImpression', payload);
311
+ _this.queueRequest(request);
312
+ },
313
+ addToCart: function (event) {
314
+ if (event.data.results) {
315
+ _this.storage.cart.add(event.data.results);
316
+ }
317
+ var payload = {
318
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
319
+ addtocartSchema: {
320
+ context: _this.getContext(),
321
+ data: event.data,
322
+ },
323
+ };
324
+ var request = _this.createRequest('autocomplete', 'autocompleteAddtocart', payload);
325
+ _this.queueRequest(request);
326
+ },
327
+ clickThrough: function (event) {
328
+ var payload = {
329
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
330
+ clickthroughSchema: {
331
+ context: _this.getContext(),
332
+ data: event.data,
333
+ },
334
+ };
335
+ var request = _this.createRequest('autocomplete', 'autocompleteClickthrough', payload);
336
+ _this.sendRequests([request]);
337
+ },
338
+ redirect: function (event) {
339
+ var payload = {
340
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
341
+ redirectSchema: {
342
+ context: _this.getContext(),
343
+ data: event.data,
344
+ },
345
+ };
346
+ var request = _this.createRequest('autocomplete', 'autocompleteRedirect', payload);
347
+ _this.sendRequests([request]);
348
+ },
349
+ },
350
+ search: {
351
+ render: function (event) {
352
+ var payload = {
353
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
354
+ renderSchema: {
355
+ context: _this.getContext(),
356
+ data: event.data,
357
+ },
358
+ };
359
+ var request = _this.createRequest('search', 'searchRender', payload);
360
+ _this.queueRequest(request);
361
+ },
362
+ impression: function (event) {
363
+ var payload = {
364
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
365
+ impressionSchema: {
366
+ context: _this.getContext(),
367
+ data: event.data,
368
+ },
369
+ };
370
+ var request = _this.createRequest('search', 'searchImpression', payload);
371
+ _this.queueRequest(request);
372
+ },
373
+ addToCart: function (event) {
374
+ if (event.data.results) {
375
+ _this.storage.cart.add(event.data.results);
376
+ }
377
+ var payload = {
378
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
379
+ addtocartSchema: {
380
+ context: _this.getContext(),
381
+ data: event.data,
382
+ },
383
+ };
384
+ var request = _this.createRequest('search', 'searchAddtocart', payload);
385
+ _this.queueRequest(request);
386
+ },
387
+ clickThrough: function (event) {
388
+ var payload = {
389
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
390
+ clickthroughSchema: {
391
+ context: _this.getContext(),
392
+ data: event.data,
393
+ },
394
+ };
395
+ var request = _this.createRequest('search', 'searchClickthrough', payload);
396
+ _this.sendRequests([request]);
397
+ },
398
+ redirect: function (event) {
399
+ var payload = {
400
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
401
+ redirectSchema: {
402
+ context: _this.getContext(),
403
+ data: event.data,
404
+ },
405
+ };
406
+ var request = _this.createRequest('search', 'searchRedirect', payload);
407
+ _this.sendRequests([request]);
408
+ },
409
+ },
410
+ category: {
411
+ render: function (event) {
412
+ var payload = {
413
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
414
+ renderSchema: {
415
+ context: _this.getContext(),
416
+ data: event.data,
417
+ },
418
+ };
419
+ var request = _this.createRequest('category', 'categoryRender', payload);
420
+ _this.queueRequest(request);
421
+ },
422
+ impression: function (event) {
423
+ var payload = {
424
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
425
+ impressionSchema: {
426
+ context: _this.getContext(),
427
+ data: event.data,
428
+ },
429
+ };
430
+ var request = _this.createRequest('category', 'categoryImpression', payload);
431
+ _this.queueRequest(request);
432
+ },
433
+ addToCart: function (event) {
434
+ if (event.data.results) {
435
+ _this.storage.cart.add(event.data.results);
436
+ }
437
+ var payload = {
438
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
439
+ addtocartSchema: {
440
+ context: _this.getContext(),
441
+ data: event.data,
442
+ },
443
+ };
444
+ var request = _this.createRequest('category', 'categoryAddtocart', payload);
445
+ _this.queueRequest(request);
446
+ },
447
+ clickThrough: function (event) {
448
+ var payload = {
449
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
450
+ clickthroughSchema: {
451
+ context: _this.getContext(),
452
+ data: event.data,
453
+ },
454
+ };
455
+ var request = _this.createRequest('category', 'categoryClickthrough', payload);
456
+ _this.sendRequests([request]);
457
+ },
458
+ },
459
+ recommendations: {
460
+ render: function (event) {
461
+ var payload = {
462
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
463
+ recommendationsRenderSchema: {
464
+ context: _this.getContext(),
465
+ data: event.data,
466
+ },
467
+ };
468
+ var request = _this.createRequest('recommendations', 'recommendationsRender', payload);
469
+ _this.queueRequest(request);
470
+ },
471
+ impression: function (event) {
472
+ var payload = {
473
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
474
+ recommendationsImpressionSchema: {
475
+ context: _this.getContext(),
476
+ data: event.data,
477
+ },
478
+ };
479
+ var request = _this.createRequest('recommendations', 'recommendationsImpression', payload);
480
+ _this.queueRequest(request);
481
+ },
482
+ addToCart: function (event) {
483
+ if (event.data.results) {
484
+ _this.storage.cart.add(event.data.results);
485
+ }
486
+ var payload = {
487
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
488
+ recommendationsAddtocartSchema: {
489
+ context: _this.getContext(),
490
+ data: event.data,
491
+ },
492
+ };
493
+ var request = _this.createRequest('recommendations', 'recommendationsAddtocart', payload);
494
+ _this.queueRequest(request);
495
+ },
496
+ clickThrough: function (event) {
497
+ var payload = {
498
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
499
+ recommendationsClickthroughSchema: {
500
+ context: _this.getContext(),
501
+ data: event.data,
502
+ },
503
+ };
504
+ var request = _this.createRequest('recommendations', 'recommendationsClickthrough', payload);
505
+ _this.sendRequests([request]);
506
+ },
507
+ },
508
+ product: {
509
+ pageView: function (event) {
510
+ var payload = {
511
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
512
+ productPageviewSchema: {
513
+ context: _this.getContext(),
514
+ data: event.data,
515
+ },
516
+ };
517
+ var request = _this.createRequest('product', 'productPageview', payload);
518
+ _this.sendRequests([request]);
519
+ var item = event.data.result;
520
+ _this.storage.viewed.add([item]);
521
+ },
522
+ },
523
+ cart: {
524
+ add: function (event) {
525
+ var data = __assign({}, event.data);
526
+ if (!data.cart) {
527
+ if (data.results) {
528
+ _this.storage.cart.add(data.results);
529
+ }
530
+ data.cart = _this.storage.cart.get();
531
+ }
532
+ else {
533
+ _this.storage.cart.set(data.cart);
534
+ }
535
+ var payload = {
536
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
537
+ cartSchema: {
538
+ context: _this.getContext(),
539
+ data: data,
540
+ },
541
+ };
542
+ var request = _this.createRequest('cart', 'cartAdd', payload);
543
+ _this.sendRequests([request]);
544
+ },
545
+ remove: function (event) {
546
+ var data = __assign({}, event.data);
547
+ if (!data.cart) {
548
+ if (data.results) {
549
+ _this.storage.cart.remove(data.results);
550
+ }
551
+ data.cart = _this.storage.cart.get();
552
+ }
553
+ else {
554
+ _this.storage.cart.set(data.cart);
555
+ }
556
+ var payload = {
557
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
558
+ cartSchema: {
559
+ context: _this.getContext(),
560
+ data: data,
561
+ },
562
+ };
563
+ var request = _this.createRequest('cart', 'cartRemove', payload);
564
+ _this.sendRequests([request]);
565
+ },
566
+ },
567
+ order: {
568
+ transaction: function (event) {
569
+ var payload = {
570
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
571
+ orderTransactionSchema: {
572
+ context: _this.getContext(),
573
+ data: event.data,
574
+ },
575
+ };
576
+ var request = _this.createRequest('order', 'orderTransaction', payload);
577
+ _this.sendRequests([request]);
578
+ _this.storage.cart.clear();
579
+ },
580
+ },
581
+ error: {
582
+ shopifypixel: function (event) {
583
+ var payload = {
584
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
585
+ logSchema: {
586
+ context: _this.getContext(),
587
+ data: event.data,
588
+ },
589
+ };
590
+ var request = _this.createRequest('error', 'logShopifypixel', payload);
591
+ _this.sendRequests([request]);
592
+ },
593
+ snap: function (event) {
594
+ var payload = {
595
+ siteId: (event === null || event === void 0 ? void 0 : event.siteId) || _this.globals.siteId,
596
+ logSchema: {
597
+ context: _this.getContext(),
598
+ data: event.data,
599
+ },
600
+ };
601
+ var request = _this.createRequest('error', 'logSnap', payload);
602
+ _this.sendRequests([request]);
603
+ },
604
+ },
605
+ };
606
+ if (typeof globals != 'object' || typeof globals.siteId != 'string') {
607
+ throw new Error("Invalid config passed to tracker. The \"siteId\" attribute must be provided.");
608
+ }
609
+ this.config = __assign({ mode: 'production' }, (config || {}));
610
+ if (this.config.mode && ['production', 'development'].includes(this.config.mode)) {
611
+ this.mode = this.config.mode;
612
+ }
613
+ var fetchApi = (_a = this.config.apis) === null || _a === void 0 ? void 0 : _a.fetch;
614
+ var domain = "".concat(globals.siteId).trim().toLowerCase().startsWith('at') ? 'athos' : 'searchspring';
615
+ var basePath = domain === 'searchspring' ? "https://analytics.searchspring.net/beacon/v2" : undefined;
616
+ var apiConfig = new client_1.Configuration({ fetchApi: fetchApi, basePath: ((_c = (_b = this.config.requesters) === null || _b === void 0 ? void 0 : _b.beacon) === null || _c === void 0 ? void 0 : _c.origin) || basePath, headers: { 'Content-Type': 'text/plain' } });
617
+ this.apis = {
618
+ shopper: new client_1.ShopperApi(apiConfig),
619
+ autocomplete: new client_1.AutocompleteApi(apiConfig),
620
+ search: new client_1.SearchApi(apiConfig),
621
+ category: new client_1.CategoryApi(apiConfig),
622
+ recommendations: new client_1.RecommendationsApi(apiConfig),
623
+ product: new client_1.ProductApi(apiConfig),
624
+ cart: new client_1.CartApi(apiConfig),
625
+ order: new client_1.OrderApi(apiConfig),
626
+ error: new client_1.ErrorLogsApi(apiConfig),
627
+ };
628
+ this.initiator = this.config.initiator || "".concat(domain, "/beaconjs/").concat(exports.version);
629
+ this.globals = globals;
630
+ this.pageLoadId = this.getPageLoadId();
631
+ if (!((_d = this.globals) === null || _d === void 0 ? void 0 : _d.siteId)) {
632
+ throw new Error('Beacon: No siteId found in globals. Beacon will not initialize.');
633
+ }
634
+ else {
635
+ this.globals.siteId = "".concat(this.globals.siteId).trim().toLowerCase();
636
+ }
637
+ }
638
+ Beacon.prototype.getCookie = function (name) {
639
+ if (typeof window !== 'undefined' && featureFlags_1.featureFlags.cookies) {
640
+ var cookieName = name + '=';
641
+ var cookiesList = window.document.cookie.split(';');
642
+ for (var i = 0; i < cookiesList.length; i++) {
643
+ var cookie = cookiesList[i];
644
+ while (cookie.charAt(0) == ' ') {
645
+ cookie = cookie.substring(1);
646
+ }
647
+ if (cookie.indexOf(cookieName) == 0) {
648
+ return decodeURIComponent(cookie.substring(cookieName.length, cookie.length));
649
+ }
650
+ }
651
+ return '';
652
+ }
653
+ return '';
654
+ };
655
+ Beacon.prototype.setCookie = function (name, value, samesite, expiration, domain) {
656
+ var _a;
657
+ if (featureFlags_1.featureFlags.cookies) {
658
+ try {
659
+ var secureString = window.location.protocol == 'https:' ? 'Secure;' : '';
660
+ var sameSiteString = 'SameSite=' + (samesite || 'Lax') + ';';
661
+ var expiresString = '';
662
+ if (expiration) {
663
+ var d = new Date();
664
+ d.setTime(d.getTime() + expiration);
665
+ expiresString = 'expires=' + d['toUTCString']() + ';';
666
+ }
667
+ var valueString = encodeURIComponent(value) + ';';
668
+ if (domain) {
669
+ window.document.cookie = name + "=" + valueString + expiresString + sameSiteString + secureString + "path=/; domain=" + domain;
670
+ }
671
+ else {
672
+ var host = (_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.hostname;
673
+ if (!host || host.split('.').length === 1) {
674
+ window.document.cookie = name + "=" + valueString + expiresString + sameSiteString + secureString + "path=/";
675
+ }
676
+ else {
677
+ var domainParts = host.split('.');
678
+ domainParts.shift();
679
+ domain = '.' + domainParts.join('.');
680
+ window.document.cookie = name + "=" + valueString + expiresString + sameSiteString + secureString + "path=/; domain=" + domain;
681
+ if (this.getCookie(name) == null || this.getCookie(name) != value) {
682
+ domain = '.' + host;
683
+ window.document.cookie = name + "=" + valueString + expiresString + sameSiteString + secureString + "path=/; domain=" + domain;
684
+ }
685
+ }
686
+ }
687
+ }
688
+ catch (e) {
689
+ console.error("Failed to set '".concat(name, "' cookie:"), e);
690
+ }
691
+ }
692
+ };
693
+ Beacon.prototype.getLocalStorageItem = function (name) {
694
+ var _a;
695
+ if (typeof window !== 'undefined' && featureFlags_1.featureFlags.storage) {
696
+ var rawData = ((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(name)) || '';
697
+ try {
698
+ var data = JSON.parse(rawData);
699
+ if (data && data.value) {
700
+ return data.value;
701
+ }
702
+ else {
703
+ // corrupted - delete entry
704
+ window.localStorage.removeItem(name);
705
+ }
706
+ }
707
+ catch (_b) {
708
+ // noop - failed to parse stored value
709
+ }
710
+ }
711
+ };
712
+ Beacon.prototype.setLocalStorageItem = function (name, value) {
713
+ if (typeof window !== 'undefined' && featureFlags_1.featureFlags.storage) {
714
+ try {
715
+ window.localStorage.setItem(name, JSON.stringify({ value: value }));
716
+ }
717
+ catch (e) {
718
+ console.warn("Something went wrong setting '".concat(name, "' to local storage:"), e);
719
+ throw e;
720
+ }
721
+ }
722
+ };
723
+ Beacon.prototype.queueRequest = function (request) {
724
+ var _this = this;
725
+ this.requests.push(request);
726
+ clearTimeout(this.batchIntervalTimeout);
727
+ this.batchIntervalTimeout = setTimeout(function () {
728
+ _this.processRequests();
729
+ }, exports.REQUEST_GROUPING_TIMEOUT);
730
+ };
731
+ Beacon.prototype.updateContext = function (key, value) {
732
+ if (value === undefined) {
733
+ return;
734
+ }
735
+ switch (key) {
736
+ case 'userId':
737
+ case 'sessionId':
738
+ case 'shopperId':
739
+ case 'pageLoadId':
740
+ case 'attribution':
741
+ this[key] = value;
742
+ break;
743
+ case 'pageUrl':
744
+ this.config.href = value;
745
+ break;
746
+ case 'userAgent':
747
+ this.config.userAgent = value;
748
+ break;
749
+ case 'dev':
750
+ if (['production', 'development'].includes(value))
751
+ this.mode = value;
752
+ break;
753
+ default:
754
+ break;
755
+ }
756
+ };
757
+ Beacon.prototype.getContext = function () {
758
+ var context = {
759
+ userAgent: this.config.userAgent,
760
+ timestamp: this.getTimestamp(),
761
+ pageUrl: this.config.href || (typeof window !== 'undefined' && window.location.href) || '',
762
+ userId: this.userId || this.getUserId(),
763
+ sessionId: this.sessionId || this.getSessionId(),
764
+ pageLoadId: this.pageLoadId,
765
+ shopperId: this.shopperId || this.getShopperId(),
766
+ initiator: this.initiator,
767
+ dev: this.mode === 'development' ? true : undefined,
768
+ attribution: this.attribution || this.getAttribution(),
769
+ };
770
+ if (this.currency.code) {
771
+ context.currency = __assign({}, this.currency);
772
+ }
773
+ return context;
774
+ };
775
+ Beacon.prototype.getStoredId = function (key, storageKey, expiration) {
776
+ var keys = ['userId', 'sessionId'];
777
+ var uuid = '';
778
+ var storedCookieValue = '';
779
+ try {
780
+ // try to get the value from the cookie
781
+ storedCookieValue = this.getCookie(storageKey);
782
+ // try to get the value from the local storage
783
+ var data = this.getLocalStorageItem(storageKey);
784
+ if (data.timestamp && new Date(data.timestamp).getTime() < Date.now() - expiration) {
785
+ uuid = this.generateId();
786
+ /**
787
+ * TODO: move this expiration to setLocalStorageItem at value level instead of data.value level and
788
+ * then create a new return type getLocalStorageItem with Product[], Item[],
789
+ * AttributionInner[], and { timestamp: string; value: string }
790
+ */
791
+ this.attribution = undefined;
792
+ }
793
+ else {
794
+ uuid = data.value;
795
+ }
796
+ }
797
+ catch (_a) {
798
+ // noop - Either no value or failed to parse stored, create new id
799
+ }
800
+ finally {
801
+ var data = {
802
+ value: storedCookieValue || uuid || this.generateId(),
803
+ timestamp: this.getTimestamp(),
804
+ };
805
+ if (keys.includes(key)) {
806
+ this[key] = data.value;
807
+ }
808
+ // set cookie
809
+ this.setCookie(storageKey, data.value, exports.COOKIE_SAMESITE, EXPIRED_COOKIE, exports.COOKIE_DOMAIN); // clear old subdomain cookie
810
+ this.setCookie(storageKey, data.value, exports.COOKIE_SAMESITE, expiration); // attempt to store in cookie
811
+ // set local storage
812
+ try {
813
+ this.setLocalStorageItem(storageKey, data);
814
+ }
815
+ catch (e) {
816
+ // failed to save value - storage may be disabled
817
+ sendStorageError(e, this, storageKey, data.value);
818
+ }
819
+ return data.value;
820
+ }
821
+ };
822
+ Beacon.prototype.getPageLoadId = function () {
823
+ if (this.pageLoadId) {
824
+ return this.pageLoadId;
825
+ }
826
+ var pageLoadId = this.generateId();
827
+ var pageLoadData = this.getLocalStorageItem(exports.PAGE_LOAD_ID_KEY);
828
+ var currentHref = this.config.href || (typeof window !== 'undefined' && window.location.href) || '';
829
+ if (pageLoadData) {
830
+ var href = pageLoadData.href, value = pageLoadData.value, timestamp = pageLoadData.timestamp;
831
+ if (href === currentHref && value && timestamp && new Date(timestamp).getTime() > Date.now() - exports.PAGE_LOAD_ID_EXPIRATION) {
832
+ pageLoadId = value;
833
+ }
834
+ }
835
+ this.pageLoadId = pageLoadId;
836
+ try {
837
+ this.setLocalStorageItem(exports.PAGE_LOAD_ID_KEY, { href: currentHref, value: pageLoadId, timestamp: this.getTimestamp() });
838
+ }
839
+ catch (e) {
840
+ // failed to save value - storage may be disabled
841
+ sendStorageError(e, this, exports.PAGE_LOAD_ID_KEY, pageLoadId);
842
+ }
843
+ return pageLoadId;
844
+ };
845
+ Beacon.prototype.getUserId = function () {
846
+ return this.userId || this.getStoredId('userId', USER_ID_KEY, MAX_EXPIRATION);
847
+ };
848
+ Beacon.prototype.getSessionId = function () {
849
+ return this.sessionId || this.getStoredId('sessionId', SESSION_ID_KEY, THIRTY_MINUTES);
850
+ };
851
+ Beacon.prototype.getShopperId = function () {
852
+ try {
853
+ // cookie value is always a string, but localstorage could be a number
854
+ var cookieValue = this.getCookie(SHOPPER_ID_KEY);
855
+ var storageValue = this.getLocalStorageItem(SHOPPER_ID_KEY);
856
+ // set the shopperId to the cookie value if it exists, otherwise use the local storage value and then convert to string if they exist
857
+ var shopperId = cookieValue || (storageValue ? '' + storageValue : undefined);
858
+ if (shopperId) {
859
+ this.shopperId = shopperId;
860
+ }
861
+ }
862
+ catch (_a) {
863
+ // noop
864
+ }
865
+ return this.shopperId || '';
866
+ };
867
+ Beacon.prototype.setShopperId = function (shopperId) {
868
+ if (!shopperId) {
869
+ return;
870
+ }
871
+ var existingShopperId = this.getShopperId();
872
+ if (existingShopperId !== shopperId) {
873
+ this.shopperId = '' + shopperId; // ensure string
874
+ this.setCookie(SHOPPER_ID_KEY, this.shopperId, exports.COOKIE_SAMESITE, MAX_EXPIRATION, exports.COOKIE_DOMAIN);
875
+ try {
876
+ this.setLocalStorageItem(SHOPPER_ID_KEY, this.shopperId);
877
+ }
878
+ catch (e) {
879
+ sendStorageError(e, this, SHOPPER_ID_KEY, this.shopperId);
880
+ }
881
+ this.events.shopper.login({ data: { id: this.shopperId } });
882
+ this._sendPreflight();
883
+ }
884
+ };
885
+ Beacon.prototype.getAttribution = function () {
886
+ var attribution = [];
887
+ var urlAttribution = null;
888
+ try {
889
+ var url = new URL(this.config.href || (typeof window !== 'undefined' && window.location.href) || '');
890
+ urlAttribution = url.searchParams.get(ATTRIBUTION_QUERY_PARAM);
891
+ }
892
+ catch (e) {
893
+ // noop - URL failed to parse empty url
894
+ }
895
+ var storedAttribution = this.getCookie(ATTRIBUTION_KEY) || this.getLocalStorageItem(ATTRIBUTION_KEY);
896
+ if (storedAttribution) {
897
+ try {
898
+ if (typeof storedAttribution === 'string') {
899
+ // from cookie
900
+ attribution = JSON.parse(storedAttribution);
901
+ }
902
+ else if (Array.isArray(storedAttribution)) {
903
+ attribution = storedAttribution;
904
+ }
905
+ }
906
+ catch (e) {
907
+ // noop - failed to parse stored attribution
908
+ }
909
+ }
910
+ if (urlAttribution) {
911
+ try {
912
+ var _a = decodeURIComponent(urlAttribution).split(':'), type_1 = _a[0], id_1 = _a[1];
913
+ if (type_1 && id_1 && !attribution.find(function (attr) { return attr.type === type_1 && attr.id === id_1; })) {
914
+ attribution.unshift({ type: type_1, id: id_1 });
915
+ }
916
+ }
917
+ catch (_b) {
918
+ // noop - failed to decode url attribution
919
+ }
920
+ }
921
+ if (attribution.length) {
922
+ var stringifiedAttribution = JSON.stringify(attribution);
923
+ this.setCookie(ATTRIBUTION_KEY, stringifiedAttribution, exports.COOKIE_SAMESITE, THIRTY_MINUTES, exports.COOKIE_DOMAIN);
924
+ try {
925
+ this.setLocalStorageItem(ATTRIBUTION_KEY, attribution);
926
+ }
927
+ catch (e) {
928
+ sendStorageError(e, this, ATTRIBUTION_KEY, stringifiedAttribution);
929
+ }
930
+ this.attribution = attribution;
931
+ return __spreadArray([], attribution, true);
932
+ }
933
+ };
934
+ Beacon.prototype.generateId = function () {
935
+ return (0, uuid_1.v4)();
936
+ };
937
+ Beacon.prototype.getTimestamp = function () {
938
+ return new Date().toISOString();
939
+ };
940
+ Beacon.prototype.setCurrency = function (currency) {
941
+ var _a;
942
+ if (currency && currency.code && ((_a = this.currency) === null || _a === void 0 ? void 0 : _a.code) !== currency.code) {
943
+ this.currency = currency;
944
+ }
945
+ };
946
+ Beacon.prototype.pageLoad = function () {
947
+ this.pageLoadId = this.generateId();
948
+ return this.pageLoadId;
949
+ };
950
+ // TODO: add resetSession method - clear cookies, local storage
951
+ Beacon.prototype.createRequest = function (apiType, endpoint, payload) {
952
+ var request = {
953
+ apiType: apiType,
954
+ endpoint: endpoint,
955
+ payload: payload,
956
+ };
957
+ return request;
958
+ };
959
+ Beacon.prototype.getApiClient = function (apiType) {
960
+ return this.apis[apiType];
961
+ };
962
+ Beacon.prototype.sendRequests = function (requests) {
963
+ var _this = this;
964
+ for (var _i = 0, requests_1 = requests; _i < requests_1.length; _i++) {
965
+ var request = requests_1[_i];
966
+ var api = this.getApiClient(request.apiType);
967
+ var apiMethod = request.endpoint;
968
+ var initOverrides = function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
969
+ var headers, isJSON;
970
+ var _c, _d;
971
+ var init = _b.init;
972
+ return __generator(this, function (_e) {
973
+ headers = __assign(__assign({}, init.headers), ((_d = (_c = this.config.requesters) === null || _c === void 0 ? void 0 : _c.beacon) === null || _d === void 0 ? void 0 : _d.headers) || {});
974
+ isJSON = headers && 'Content-Type' in headers && headers['Content-Type'] === 'application/json';
975
+ return [2 /*return*/, {
976
+ // Cypress intecepts does not support keepalive
977
+ keepalive: this.mode === 'production' ? true : undefined,
978
+ body: isJSON ? init.body : JSON.stringify(init.body),
979
+ headers: headers,
980
+ }];
981
+ });
982
+ }); };
983
+ // typing is difficult due to dynamic API and method call
984
+ api[apiMethod](request.payload, initOverrides).catch(function (e) {
985
+ // noop - do not throw errors
986
+ if (_this.mode === 'development') {
987
+ console.debug(e);
988
+ }
989
+ });
990
+ }
991
+ };
992
+ Beacon.prototype.processRequests = function () {
993
+ var data = this.requests.reduce(function (acc, request) {
994
+ var key = "".concat(request.payload.siteId, "||").concat(request.endpoint);
995
+ switch (request.endpoint) {
996
+ case 'recommendationsAddtocart':
997
+ var recommendationsAddtocart = request.payload.recommendationsAddtocartSchema;
998
+ key += additionalRequestKeys(key, 'recommendation', recommendationsAddtocart);
999
+ appendResults(acc, key, 'recommendationsAddtocartSchema', request);
1000
+ break;
1001
+ case 'recommendationsImpression':
1002
+ var recommendationsImpression = request.payload.recommendationsImpressionSchema;
1003
+ key += additionalRequestKeys(key, 'recommendation', recommendationsImpression);
1004
+ appendResults(acc, key, 'recommendationsImpressionSchema', request);
1005
+ break;
1006
+ case 'searchAddtocart':
1007
+ var searchAddtocart = request.payload.addtocartSchema;
1008
+ key += additionalRequestKeys(key, 'search', searchAddtocart);
1009
+ appendResults(acc, key, 'addtocartSchema', request);
1010
+ break;
1011
+ case 'searchImpression':
1012
+ var searchImpression = request.payload.impressionSchema;
1013
+ key += additionalRequestKeys(key, 'search', searchImpression);
1014
+ appendResults(acc, key, 'impressionSchema', request);
1015
+ break;
1016
+ case 'autocompleteAddtocart':
1017
+ var autocompleteAddtocart = request.payload.addtocartSchema;
1018
+ key += additionalRequestKeys(key, 'autocomplete', autocompleteAddtocart);
1019
+ appendResults(acc, key, 'addtocartSchema', request);
1020
+ break;
1021
+ case 'autocompleteImpression':
1022
+ var autocompleteImpression = request.payload.impressionSchema;
1023
+ key += additionalRequestKeys(key, 'autocomplete', autocompleteImpression);
1024
+ appendResults(acc, key, 'impressionSchema', request);
1025
+ break;
1026
+ case 'categoryAddtocart':
1027
+ var categoryAddtocart = request.payload.addtocartSchema;
1028
+ key += additionalRequestKeys(key, 'category', categoryAddtocart);
1029
+ appendResults(acc, key, 'addtocartSchema', request);
1030
+ break;
1031
+ case 'categoryImpression':
1032
+ var categoryImpression = request.payload.impressionSchema;
1033
+ key += additionalRequestKeys(key, 'category', categoryImpression);
1034
+ appendResults(acc, key, 'impressionSchema', request);
1035
+ break;
1036
+ default:
1037
+ // non-batched requests
1038
+ acc.nonBatched.push(request);
1039
+ break;
1040
+ }
1041
+ return acc;
1042
+ }, {
1043
+ nonBatched: [],
1044
+ batches: {},
1045
+ });
1046
+ this.requests = [];
1047
+ // combine batches and non-batched requests
1048
+ var requestsToSend = Object.values(data.batches).reduce(function (acc, batch) {
1049
+ acc.push(batch);
1050
+ return acc;
1051
+ }, data.nonBatched);
1052
+ this.sendRequests(requestsToSend);
1053
+ };
1054
+ Beacon.prototype._sendPreflight = function () {
1055
+ var _this = this;
1056
+ clearTimeout(this.preflightTimeout);
1057
+ this.preflightTimeout = setTimeout(function () {
1058
+ _this.sendPreflight();
1059
+ }, exports.PREFLIGHT_DEBOUNCE_TIMEOUT);
1060
+ };
1061
+ Beacon.prototype.sendPreflight = function (overrides) {
1062
+ var _this = this;
1063
+ var _a, _b, _c, _d, _e, _f;
1064
+ var userId = (overrides === null || overrides === void 0 ? void 0 : overrides.userId) || this.getUserId();
1065
+ var siteId = (overrides === null || overrides === void 0 ? void 0 : overrides.siteId) || this.globals.siteId;
1066
+ var shopper = (overrides === null || overrides === void 0 ? void 0 : overrides.shopper) || this.getShopperId();
1067
+ var cart = (overrides === null || overrides === void 0 ? void 0 : overrides.cart) || this.storage.cart.get();
1068
+ var lastViewed = (overrides === null || overrides === void 0 ? void 0 : overrides.lastViewed) || this.storage.viewed.get();
1069
+ if (userId && typeof userId == 'string' && siteId) {
1070
+ var preflightParams = {
1071
+ userId: userId,
1072
+ siteId: siteId,
1073
+ };
1074
+ if (shopper) {
1075
+ preflightParams.shopper = shopper;
1076
+ }
1077
+ if (cart.length) {
1078
+ preflightParams.cart = cart.map(function (item) { return _this.getProductId(item); });
1079
+ }
1080
+ if (lastViewed.length) {
1081
+ preflightParams.lastViewed = lastViewed.map(function (item) { return _this.getProductId(item); });
1082
+ }
1083
+ var domain = "".concat(siteId).toLowerCase().startsWith('at') ? 'athoscommerce.io' : 'searchspring.io';
1084
+ var origin_1 = ((_b = (_a = this.config.requesters) === null || _a === void 0 ? void 0 : _a.personalization) === null || _b === void 0 ? void 0 : _b.origin) || "https://".concat(siteId, ".a.").concat(domain);
1085
+ var endpoint = "".concat(origin_1, "/api/personalization/preflightCache");
1086
+ if (((_c = this.config.apis) === null || _c === void 0 ? void 0 : _c.fetch) || typeof fetch !== 'undefined') {
1087
+ (((_d = this.config.apis) === null || _d === void 0 ? void 0 : _d.fetch) || fetch)(endpoint, {
1088
+ method: 'POST',
1089
+ headers: __assign({ 'Content-Type': 'text/plain' }, ((_f = (_e = this.config.requesters) === null || _e === void 0 ? void 0 : _e.personalization) === null || _f === void 0 ? void 0 : _f.headers) || {}),
1090
+ body: JSON.stringify(preflightParams),
1091
+ keepalive: true,
1092
+ });
1093
+ }
1094
+ }
1095
+ };
1096
+ Beacon.prototype.getProductId = function (product) {
1097
+ return "".concat(product.sku || product.uid || '').trim();
1098
+ };
1099
+ return Beacon;
1100
+ }());
1101
+ exports.Beacon = Beacon;
1102
+ function appendResults(acc, key, schemaName, request) {
1103
+ var _a, _b, _c;
1104
+ if (!acc.batches[key]) {
1105
+ // first request for this batch will contain context data
1106
+ acc.batches[key] = JSON.parse(JSON.stringify(request));
1107
+ }
1108
+ else {
1109
+ // append results
1110
+ var batchPayload = acc.batches[key].payload;
1111
+ var requestPayload = request.payload;
1112
+ var batchSchema = batchPayload[schemaName];
1113
+ var requestSchema = requestPayload[schemaName];
1114
+ if ((_a = requestSchema === null || requestSchema === void 0 ? void 0 : requestSchema.data) === null || _a === void 0 ? void 0 : _a.results) {
1115
+ var results = batchSchema.data.results || [];
1116
+ var resultsToAdd = requestSchema.data.results;
1117
+ var newResults = __spreadArray(__spreadArray([], results, true), resultsToAdd, true);
1118
+ batchSchema.data.results = newResults;
1119
+ }
1120
+ // also do this for banners
1121
+ if ((_b = requestSchema === null || requestSchema === void 0 ? void 0 : requestSchema.data) === null || _b === void 0 ? void 0 : _b.banners) {
1122
+ var banners = ((_c = batchSchema === null || batchSchema === void 0 ? void 0 : batchSchema.data) === null || _c === void 0 ? void 0 : _c.banners) || [];
1123
+ var bannersToAdd = requestSchema.data.banners;
1124
+ var newBanners = __spreadArray(__spreadArray([], banners, true), bannersToAdd, true);
1125
+ batchSchema.data.banners = newBanners;
1126
+ }
1127
+ }
1128
+ }
1129
+ function additionalRequestKeys(key, type, schema) {
1130
+ var value = key;
1131
+ value += "||".concat(schema.context.pageLoadId);
1132
+ value += "||".concat(schema.context.sessionId);
1133
+ if (schema.data.responseId) {
1134
+ value += "||responseId=".concat(schema.data.responseId);
1135
+ }
1136
+ if (type === 'recommendation') {
1137
+ value += "||tag=".concat(schema.data.tag);
1138
+ }
1139
+ return value;
1140
+ }
1141
+ function sendStorageError(e, beacon, storageKey, value) {
1142
+ if (e.name === 'QuotaExceededError') {
1143
+ beacon.events.error.snap({
1144
+ data: {
1145
+ message: 'QuotaExceededError',
1146
+ details: {
1147
+ key: storageKey,
1148
+ value: value,
1149
+ },
1150
+ },
1151
+ });
1152
+ }
1153
+ }