@selwise/widget 0.0.2 → 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 (643) hide show
  1. package/README.md +2 -1
  2. package/dist/npm/cjs/index.cjs +2 -0
  3. package/dist/npm/cjs/index.cjs.LICENSE.txt +1 -0
  4. package/dist/npm/cjs/index.d.ts +59 -0
  5. package/dist/npm/esm/index.d.ts +59 -4
  6. package/dist/npm/esm/index.mjs +2 -0
  7. package/dist/npm/esm/index.mjs.LICENSE.txt +1 -0
  8. package/package.json +14 -16
  9. package/dist/npm/cjs/constants.js +0 -167
  10. package/dist/npm/cjs/constants.js.map +0 -1
  11. package/dist/npm/cjs/core/conflict-resolver.js +0 -203
  12. package/dist/npm/cjs/core/conflict-resolver.js.map +0 -1
  13. package/dist/npm/cjs/core/event-batcher.js +0 -977
  14. package/dist/npm/cjs/core/event-batcher.js.map +0 -1
  15. package/dist/npm/cjs/core/experiment-overrides.js +0 -178
  16. package/dist/npm/cjs/core/experiment-overrides.js.map +0 -1
  17. package/dist/npm/cjs/core/experiments.js +0 -317
  18. package/dist/npm/cjs/core/experiments.js.map +0 -1
  19. package/dist/npm/cjs/core/frequency-caps.js +0 -297
  20. package/dist/npm/cjs/core/frequency-caps.js.map +0 -1
  21. package/dist/npm/cjs/core/index.js +0 -27
  22. package/dist/npm/cjs/core/index.js.map +0 -1
  23. package/dist/npm/cjs/core/indexeddb-queue.js +0 -333
  24. package/dist/npm/cjs/core/indexeddb-queue.js.map +0 -1
  25. package/dist/npm/cjs/core/journey-tracker.js +0 -243
  26. package/dist/npm/cjs/core/journey-tracker.js.map +0 -1
  27. package/dist/npm/cjs/core/page-targeting/index.js +0 -72
  28. package/dist/npm/cjs/core/page-targeting/index.js.map +0 -1
  29. package/dist/npm/cjs/core/script-executor.js +0 -80
  30. package/dist/npm/cjs/core/script-executor.js.map +0 -1
  31. package/dist/npm/cjs/core/segments.js +0 -172
  32. package/dist/npm/cjs/core/segments.js.map +0 -1
  33. package/dist/npm/cjs/core/tracker.js +0 -798
  34. package/dist/npm/cjs/core/tracker.js.map +0 -1
  35. package/dist/npm/cjs/datalayer/basket.js +0 -385
  36. package/dist/npm/cjs/datalayer/basket.js.map +0 -1
  37. package/dist/npm/cjs/datalayer/cart-association.js +0 -226
  38. package/dist/npm/cjs/datalayer/cart-association.js.map +0 -1
  39. package/dist/npm/cjs/datalayer/checkout.js +0 -382
  40. package/dist/npm/cjs/datalayer/checkout.js.map +0 -1
  41. package/dist/npm/cjs/datalayer/constants.js +0 -163
  42. package/dist/npm/cjs/datalayer/constants.js.map +0 -1
  43. package/dist/npm/cjs/datalayer/index.js +0 -1010
  44. package/dist/npm/cjs/datalayer/index.js.map +0 -1
  45. package/dist/npm/cjs/datalayer/listener.js +0 -416
  46. package/dist/npm/cjs/datalayer/listener.js.map +0 -1
  47. package/dist/npm/cjs/datalayer/page.js +0 -343
  48. package/dist/npm/cjs/datalayer/page.js.map +0 -1
  49. package/dist/npm/cjs/datalayer/product.js +0 -517
  50. package/dist/npm/cjs/datalayer/product.js.map +0 -1
  51. package/dist/npm/cjs/datalayer/reverse-mappings.js +0 -139
  52. package/dist/npm/cjs/datalayer/reverse-mappings.js.map +0 -1
  53. package/dist/npm/cjs/datalayer/search.js +0 -363
  54. package/dist/npm/cjs/datalayer/search.js.map +0 -1
  55. package/dist/npm/cjs/datalayer/types.js +0 -134
  56. package/dist/npm/cjs/datalayer/types.js.map +0 -1
  57. package/dist/npm/cjs/datalayer/user.js +0 -372
  58. package/dist/npm/cjs/datalayer/user.js.map +0 -1
  59. package/dist/npm/cjs/debug/index.js +0 -679
  60. package/dist/npm/cjs/debug/index.js.map +0 -1
  61. package/dist/npm/cjs/entries/cdn.js +0 -72
  62. package/dist/npm/cjs/entries/cdn.js.map +0 -1
  63. package/dist/npm/cjs/index.js +0 -10
  64. package/dist/npm/cjs/index.js.map +0 -1
  65. package/dist/npm/cjs/modules/contract/recommendation-contract.js +0 -119
  66. package/dist/npm/cjs/modules/contract/recommendation-contract.js.map +0 -1
  67. package/dist/npm/cjs/modules/contract/search-contract.js +0 -18
  68. package/dist/npm/cjs/modules/contract/search-contract.js.map +0 -1
  69. package/dist/npm/cjs/modules/contract/tracking-contract.js +0 -16
  70. package/dist/npm/cjs/modules/contract/tracking-contract.js.map +0 -1
  71. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js +0 -164
  72. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js.map +0 -1
  73. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js +0 -21
  74. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js.map +0 -1
  75. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js +0 -3
  76. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js.map +0 -1
  77. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js +0 -107
  78. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js.map +0 -1
  79. package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js +0 -404
  80. package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js.map +0 -1
  81. package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js +0 -21
  82. package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js.map +0 -1
  83. package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js +0 -8
  84. package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js.map +0 -1
  85. package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js +0 -126
  86. package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js.map +0 -1
  87. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js +0 -133
  88. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js.map +0 -1
  89. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js +0 -21
  90. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js.map +0 -1
  91. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js +0 -3
  92. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js.map +0 -1
  93. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js +0 -154
  94. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js.map +0 -1
  95. package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js +0 -1481
  96. package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js.map +0 -1
  97. package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js +0 -22
  98. package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js.map +0 -1
  99. package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js +0 -21
  100. package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js.map +0 -1
  101. package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js +0 -8
  102. package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js.map +0 -1
  103. package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js +0 -139
  104. package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js.map +0 -1
  105. package/dist/npm/cjs/modules/contract/widget-contract.js +0 -10
  106. package/dist/npm/cjs/modules/contract/widget-contract.js.map +0 -1
  107. package/dist/npm/cjs/modules/products/tracking.js +0 -214
  108. package/dist/npm/cjs/modules/products/tracking.js.map +0 -1
  109. package/dist/npm/cjs/modules/recommendation/cart-handlers.js +0 -52
  110. package/dist/npm/cjs/modules/recommendation/cart-handlers.js.map +0 -1
  111. package/dist/npm/cjs/modules/recommendation/components/product-card-renderer.js +0 -287
  112. package/dist/npm/cjs/modules/recommendation/components/product-card-renderer.js.map +0 -1
  113. package/dist/npm/cjs/modules/recommendation/index.js +0 -678
  114. package/dist/npm/cjs/modules/recommendation/index.js.map +0 -1
  115. package/dist/npm/cjs/modules/recommendation/renderers/grid.js +0 -21
  116. package/dist/npm/cjs/modules/recommendation/renderers/grid.js.map +0 -1
  117. package/dist/npm/cjs/modules/recommendation/renderers/list.js +0 -22
  118. package/dist/npm/cjs/modules/recommendation/renderers/list.js.map +0 -1
  119. package/dist/npm/cjs/modules/recommendation/renderers/masonry.js +0 -22
  120. package/dist/npm/cjs/modules/recommendation/renderers/masonry.js.map +0 -1
  121. package/dist/npm/cjs/modules/recommendation/renderers/slider-renderer.js +0 -145
  122. package/dist/npm/cjs/modules/recommendation/renderers/slider-renderer.js.map +0 -1
  123. package/dist/npm/cjs/modules/recommendation/slider-controls.js +0 -201
  124. package/dist/npm/cjs/modules/recommendation/slider-controls.js.map +0 -1
  125. package/dist/npm/cjs/modules/recommendation/tracking.js +0 -247
  126. package/dist/npm/cjs/modules/recommendation/tracking.js.map +0 -1
  127. package/dist/npm/cjs/modules/recommendation/utils/dom.js +0 -70
  128. package/dist/npm/cjs/modules/recommendation/utils/dom.js.map +0 -1
  129. package/dist/npm/cjs/modules/recommendation/utils/format.js +0 -13
  130. package/dist/npm/cjs/modules/recommendation/utils/format.js.map +0 -1
  131. package/dist/npm/cjs/modules/recommendation/utils/index.js +0 -22
  132. package/dist/npm/cjs/modules/recommendation/utils/index.js.map +0 -1
  133. package/dist/npm/cjs/modules/renderer/helpers.js +0 -16
  134. package/dist/npm/cjs/modules/renderer/helpers.js.map +0 -1
  135. package/dist/npm/cjs/modules/renderer/index.js +0 -52
  136. package/dist/npm/cjs/modules/renderer/index.js.map +0 -1
  137. package/dist/npm/cjs/modules/renderer/style-resolver.js +0 -11
  138. package/dist/npm/cjs/modules/renderer/style-resolver.js.map +0 -1
  139. package/dist/npm/cjs/modules/renderer/styles/index.js +0 -254
  140. package/dist/npm/cjs/modules/renderer/styles/index.js.map +0 -1
  141. package/dist/npm/cjs/modules/renderer/styles.js +0 -7
  142. package/dist/npm/cjs/modules/renderer/styles.js.map +0 -1
  143. package/dist/npm/cjs/modules/renderer/utils/helpers.js +0 -243
  144. package/dist/npm/cjs/modules/renderer/utils/helpers.js.map +0 -1
  145. package/dist/npm/cjs/modules/renderer/utils/image-renderer.js +0 -65
  146. package/dist/npm/cjs/modules/renderer/utils/image-renderer.js.map +0 -1
  147. package/dist/npm/cjs/modules/renderer/utils/placement.js +0 -34
  148. package/dist/npm/cjs/modules/renderer/utils/placement.js.map +0 -1
  149. package/dist/npm/cjs/modules/renderer/utils.js +0 -61
  150. package/dist/npm/cjs/modules/renderer/utils.js.map +0 -1
  151. package/dist/npm/cjs/modules/renderer/widgets/announcement-bar.js +0 -84
  152. package/dist/npm/cjs/modules/renderer/widgets/announcement-bar.js.map +0 -1
  153. package/dist/npm/cjs/modules/renderer/widgets/cart-count.js +0 -211
  154. package/dist/npm/cjs/modules/renderer/widgets/cart-count.js.map +0 -1
  155. package/dist/npm/cjs/modules/renderer/widgets/cookie-consent.js +0 -459
  156. package/dist/npm/cjs/modules/renderer/widgets/cookie-consent.js.map +0 -1
  157. package/dist/npm/cjs/modules/renderer/widgets/countdown-timer.js +0 -132
  158. package/dist/npm/cjs/modules/renderer/widgets/countdown-timer.js.map +0 -1
  159. package/dist/npm/cjs/modules/renderer/widgets/custom.js +0 -58
  160. package/dist/npm/cjs/modules/renderer/widgets/custom.js.map +0 -1
  161. package/dist/npm/cjs/modules/renderer/widgets/embedded-card.js +0 -97
  162. package/dist/npm/cjs/modules/renderer/widgets/embedded-card.js.map +0 -1
  163. package/dist/npm/cjs/modules/renderer/widgets/exit-intent-popup.js +0 -151
  164. package/dist/npm/cjs/modules/renderer/widgets/exit-intent-popup.js.map +0 -1
  165. package/dist/npm/cjs/modules/renderer/widgets/floating-button.js +0 -70
  166. package/dist/npm/cjs/modules/renderer/widgets/floating-button.js.map +0 -1
  167. package/dist/npm/cjs/modules/renderer/widgets/helpers.js +0 -87
  168. package/dist/npm/cjs/modules/renderer/widgets/helpers.js.map +0 -1
  169. package/dist/npm/cjs/modules/renderer/widgets/index.js +0 -39
  170. package/dist/npm/cjs/modules/renderer/widgets/index.js.map +0 -1
  171. package/dist/npm/cjs/modules/renderer/widgets/inline-banner.js +0 -124
  172. package/dist/npm/cjs/modules/renderer/widgets/inline-banner.js.map +0 -1
  173. package/dist/npm/cjs/modules/renderer/widgets/newsletter.js +0 -280
  174. package/dist/npm/cjs/modules/renderer/widgets/newsletter.js.map +0 -1
  175. package/dist/npm/cjs/modules/renderer/widgets/product-view-count.js +0 -197
  176. package/dist/npm/cjs/modules/renderer/widgets/product-view-count.js.map +0 -1
  177. package/dist/npm/cjs/modules/renderer/widgets/slide-in.js +0 -105
  178. package/dist/npm/cjs/modules/renderer/widgets/slide-in.js.map +0 -1
  179. package/dist/npm/cjs/modules/renderer/widgets/sticky-footer.js +0 -47
  180. package/dist/npm/cjs/modules/renderer/widgets/sticky-footer.js.map +0 -1
  181. package/dist/npm/cjs/modules/search/cart/index.js +0 -42
  182. package/dist/npm/cjs/modules/search/cart/index.js.map +0 -1
  183. package/dist/npm/cjs/modules/search/components/index.js +0 -13
  184. package/dist/npm/cjs/modules/search/components/index.js.map +0 -1
  185. package/dist/npm/cjs/modules/search/components/search-box.js +0 -28
  186. package/dist/npm/cjs/modules/search/components/search-box.js.map +0 -1
  187. package/dist/npm/cjs/modules/search/components/search-item.js +0 -197
  188. package/dist/npm/cjs/modules/search/components/search-item.js.map +0 -1
  189. package/dist/npm/cjs/modules/search/components/suggestions.js +0 -132
  190. package/dist/npm/cjs/modules/search/components/suggestions.js.map +0 -1
  191. package/dist/npm/cjs/modules/search/index.js +0 -646
  192. package/dist/npm/cjs/modules/search/index.js.map +0 -1
  193. package/dist/npm/cjs/modules/search/renderers/position-renderers.js +0 -229
  194. package/dist/npm/cjs/modules/search/renderers/position-renderers.js.map +0 -1
  195. package/dist/npm/cjs/modules/search/renderers/results-renderer.js +0 -180
  196. package/dist/npm/cjs/modules/search/renderers/results-renderer.js.map +0 -1
  197. package/dist/npm/cjs/modules/search/services/api-service.js +0 -121
  198. package/dist/npm/cjs/modules/search/services/api-service.js.map +0 -1
  199. package/dist/npm/cjs/modules/search/services/tracking-service.js +0 -263
  200. package/dist/npm/cjs/modules/search/services/tracking-service.js.map +0 -1
  201. package/dist/npm/cjs/modules/search/styles.js +0 -864
  202. package/dist/npm/cjs/modules/search/styles.js.map +0 -1
  203. package/dist/npm/cjs/modules/search/utils/helpers.js +0 -100
  204. package/dist/npm/cjs/modules/search/utils/helpers.js.map +0 -1
  205. package/dist/npm/cjs/modules/search/utils/icons.js +0 -41
  206. package/dist/npm/cjs/modules/search/utils/icons.js.map +0 -1
  207. package/dist/npm/cjs/modules/search/utils/index.js +0 -22
  208. package/dist/npm/cjs/modules/search/utils/index.js.map +0 -1
  209. package/dist/npm/cjs/modules/search/utils/storage.js +0 -58
  210. package/dist/npm/cjs/modules/search/utils/storage.js.map +0 -1
  211. package/dist/npm/cjs/selwise.js +0 -1160
  212. package/dist/npm/cjs/selwise.js.map +0 -1
  213. package/dist/npm/cjs/sentry-test.js +0 -118
  214. package/dist/npm/cjs/sentry-test.js.map +0 -1
  215. package/dist/npm/cjs/sentry.js +0 -451
  216. package/dist/npm/cjs/sentry.js.map +0 -1
  217. package/dist/npm/cjs/shared/cart/handlers.js +0 -259
  218. package/dist/npm/cjs/shared/cart/handlers.js.map +0 -1
  219. package/dist/npm/cjs/shared/cart/index.js +0 -23
  220. package/dist/npm/cjs/shared/cart/index.js.map +0 -1
  221. package/dist/npm/cjs/shared/cart/types.js +0 -7
  222. package/dist/npm/cjs/shared/cart/types.js.map +0 -1
  223. package/dist/npm/cjs/shared/product-card/index.js +0 -24
  224. package/dist/npm/cjs/shared/product-card/index.js.map +0 -1
  225. package/dist/npm/cjs/shared/product-card/renderer.js +0 -341
  226. package/dist/npm/cjs/shared/product-card/renderer.js.map +0 -1
  227. package/dist/npm/cjs/shared/product-card/styles.js +0 -195
  228. package/dist/npm/cjs/shared/product-card/styles.js.map +0 -1
  229. package/dist/npm/cjs/shared/product-card/types.js +0 -67
  230. package/dist/npm/cjs/shared/product-card/types.js.map +0 -1
  231. package/dist/npm/cjs/types/config.js +0 -6
  232. package/dist/npm/cjs/types/config.js.map +0 -1
  233. package/dist/npm/cjs/types/experiments.js +0 -17
  234. package/dist/npm/cjs/types/experiments.js.map +0 -1
  235. package/dist/npm/cjs/types/global-api.js +0 -3
  236. package/dist/npm/cjs/types/global-api.js.map +0 -1
  237. package/dist/npm/cjs/types/index.js +0 -27
  238. package/dist/npm/cjs/types/index.js.map +0 -1
  239. package/dist/npm/cjs/types/recommendation.js +0 -6
  240. package/dist/npm/cjs/types/recommendation.js.map +0 -1
  241. package/dist/npm/cjs/types/renderer.js +0 -6
  242. package/dist/npm/cjs/types/renderer.js.map +0 -1
  243. package/dist/npm/cjs/types/search.js +0 -6
  244. package/dist/npm/cjs/types/search.js.map +0 -1
  245. package/dist/npm/cjs/utils/api-url.js +0 -35
  246. package/dist/npm/cjs/utils/api-url.js.map +0 -1
  247. package/dist/npm/cjs/utils/debounce.js +0 -74
  248. package/dist/npm/cjs/utils/debounce.js.map +0 -1
  249. package/dist/npm/cjs/utils/event-id.js +0 -23
  250. package/dist/npm/cjs/utils/event-id.js.map +0 -1
  251. package/dist/npm/cjs/utils/index.js +0 -28
  252. package/dist/npm/cjs/utils/index.js.map +0 -1
  253. package/dist/npm/cjs/utils/logger.js +0 -74
  254. package/dist/npm/cjs/utils/logger.js.map +0 -1
  255. package/dist/npm/cjs/utils/sanitize.js +0 -159
  256. package/dist/npm/cjs/utils/sanitize.js.map +0 -1
  257. package/dist/npm/cjs/utils/storage.js +0 -285
  258. package/dist/npm/cjs/utils/storage.js.map +0 -1
  259. package/dist/npm/cjs/utils/tracking-metadata.js +0 -18
  260. package/dist/npm/cjs/utils/tracking-metadata.js.map +0 -1
  261. package/dist/npm/cjs/utils/url-matcher.js +0 -11
  262. package/dist/npm/cjs/utils/url-matcher.js.map +0 -1
  263. package/dist/npm/esm/constants.d.ts +0 -130
  264. package/dist/npm/esm/constants.js +0 -164
  265. package/dist/npm/esm/constants.js.map +0 -1
  266. package/dist/npm/esm/core/conflict-resolver.d.ts +0 -96
  267. package/dist/npm/esm/core/conflict-resolver.js +0 -198
  268. package/dist/npm/esm/core/conflict-resolver.js.map +0 -1
  269. package/dist/npm/esm/core/event-batcher.d.ts +0 -253
  270. package/dist/npm/esm/core/event-batcher.js +0 -973
  271. package/dist/npm/esm/core/event-batcher.js.map +0 -1
  272. package/dist/npm/esm/core/experiment-overrides.d.ts +0 -7
  273. package/dist/npm/esm/core/experiment-overrides.js +0 -172
  274. package/dist/npm/esm/core/experiment-overrides.js.map +0 -1
  275. package/dist/npm/esm/core/experiments.d.ts +0 -90
  276. package/dist/npm/esm/core/experiments.js +0 -313
  277. package/dist/npm/esm/core/experiments.js.map +0 -1
  278. package/dist/npm/esm/core/frequency-caps.d.ts +0 -124
  279. package/dist/npm/esm/core/frequency-caps.js +0 -292
  280. package/dist/npm/esm/core/frequency-caps.js.map +0 -1
  281. package/dist/npm/esm/core/index.d.ts +0 -10
  282. package/dist/npm/esm/core/index.js +0 -11
  283. package/dist/npm/esm/core/index.js.map +0 -1
  284. package/dist/npm/esm/core/indexeddb-queue.d.ts +0 -83
  285. package/dist/npm/esm/core/indexeddb-queue.js +0 -328
  286. package/dist/npm/esm/core/indexeddb-queue.js.map +0 -1
  287. package/dist/npm/esm/core/journey-tracker.d.ts +0 -102
  288. package/dist/npm/esm/core/journey-tracker.js +0 -237
  289. package/dist/npm/esm/core/journey-tracker.js.map +0 -1
  290. package/dist/npm/esm/core/page-targeting/index.d.ts +0 -8
  291. package/dist/npm/esm/core/page-targeting/index.js +0 -67
  292. package/dist/npm/esm/core/page-targeting/index.js.map +0 -1
  293. package/dist/npm/esm/core/script-executor.d.ts +0 -31
  294. package/dist/npm/esm/core/script-executor.js +0 -76
  295. package/dist/npm/esm/core/script-executor.js.map +0 -1
  296. package/dist/npm/esm/core/segments.d.ts +0 -39
  297. package/dist/npm/esm/core/segments.js +0 -168
  298. package/dist/npm/esm/core/segments.js.map +0 -1
  299. package/dist/npm/esm/core/tracker.d.ts +0 -182
  300. package/dist/npm/esm/core/tracker.js +0 -794
  301. package/dist/npm/esm/core/tracker.js.map +0 -1
  302. package/dist/npm/esm/datalayer/basket.d.ts +0 -104
  303. package/dist/npm/esm/datalayer/basket.js +0 -381
  304. package/dist/npm/esm/datalayer/basket.js.map +0 -1
  305. package/dist/npm/esm/datalayer/cart-association.d.ts +0 -65
  306. package/dist/npm/esm/datalayer/cart-association.js +0 -222
  307. package/dist/npm/esm/datalayer/cart-association.js.map +0 -1
  308. package/dist/npm/esm/datalayer/checkout.d.ts +0 -96
  309. package/dist/npm/esm/datalayer/checkout.js +0 -378
  310. package/dist/npm/esm/datalayer/checkout.js.map +0 -1
  311. package/dist/npm/esm/datalayer/constants.d.ts +0 -77
  312. package/dist/npm/esm/datalayer/constants.js +0 -160
  313. package/dist/npm/esm/datalayer/constants.js.map +0 -1
  314. package/dist/npm/esm/datalayer/index.d.ts +0 -212
  315. package/dist/npm/esm/datalayer/index.js +0 -991
  316. package/dist/npm/esm/datalayer/index.js.map +0 -1
  317. package/dist/npm/esm/datalayer/listener.d.ts +0 -108
  318. package/dist/npm/esm/datalayer/listener.js +0 -411
  319. package/dist/npm/esm/datalayer/listener.js.map +0 -1
  320. package/dist/npm/esm/datalayer/page.d.ts +0 -94
  321. package/dist/npm/esm/datalayer/page.js +0 -339
  322. package/dist/npm/esm/datalayer/page.js.map +0 -1
  323. package/dist/npm/esm/datalayer/product.d.ts +0 -133
  324. package/dist/npm/esm/datalayer/product.js +0 -513
  325. package/dist/npm/esm/datalayer/product.js.map +0 -1
  326. package/dist/npm/esm/datalayer/reverse-mappings.d.ts +0 -62
  327. package/dist/npm/esm/datalayer/reverse-mappings.js +0 -135
  328. package/dist/npm/esm/datalayer/reverse-mappings.js.map +0 -1
  329. package/dist/npm/esm/datalayer/search.d.ts +0 -108
  330. package/dist/npm/esm/datalayer/search.js +0 -359
  331. package/dist/npm/esm/datalayer/search.js.map +0 -1
  332. package/dist/npm/esm/datalayer/types.d.ts +0 -292
  333. package/dist/npm/esm/datalayer/types.js +0 -131
  334. package/dist/npm/esm/datalayer/types.js.map +0 -1
  335. package/dist/npm/esm/datalayer/user.d.ts +0 -104
  336. package/dist/npm/esm/datalayer/user.js +0 -368
  337. package/dist/npm/esm/datalayer/user.js.map +0 -1
  338. package/dist/npm/esm/debug/index.d.ts +0 -173
  339. package/dist/npm/esm/debug/index.js +0 -673
  340. package/dist/npm/esm/debug/index.js.map +0 -1
  341. package/dist/npm/esm/entries/cdn.d.ts +0 -1
  342. package/dist/npm/esm/entries/cdn.js +0 -35
  343. package/dist/npm/esm/entries/cdn.js.map +0 -1
  344. package/dist/npm/esm/index.js +0 -4
  345. package/dist/npm/esm/index.js.map +0 -1
  346. package/dist/npm/esm/modules/contract/recommendation-contract.d.ts +0 -5
  347. package/dist/npm/esm/modules/contract/recommendation-contract.js +0 -107
  348. package/dist/npm/esm/modules/contract/recommendation-contract.js.map +0 -1
  349. package/dist/npm/esm/modules/contract/search-contract.d.ts +0 -1
  350. package/dist/npm/esm/modules/contract/search-contract.js +0 -2
  351. package/dist/npm/esm/modules/contract/search-contract.js.map +0 -1
  352. package/dist/npm/esm/modules/contract/tracking-contract.d.ts +0 -1
  353. package/dist/npm/esm/modules/contract/tracking-contract.js +0 -2
  354. package/dist/npm/esm/modules/contract/tracking-contract.js.map +0 -1
  355. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.d.ts +0 -8
  356. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js +0 -160
  357. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js.map +0 -1
  358. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.d.ts +0 -3
  359. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js +0 -5
  360. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js.map +0 -1
  361. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.d.ts +0 -56
  362. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js +0 -2
  363. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js.map +0 -1
  364. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.d.ts +0 -3
  365. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js +0 -103
  366. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js.map +0 -1
  367. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.d.ts +0 -35
  368. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js +0 -396
  369. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js.map +0 -1
  370. package/dist/npm/esm/modules/contract/vendor/search-contract/index.d.ts +0 -3
  371. package/dist/npm/esm/modules/contract/vendor/search-contract/index.js +0 -5
  372. package/dist/npm/esm/modules/contract/vendor/search-contract/index.js.map +0 -1
  373. package/dist/npm/esm/modules/contract/vendor/search-contract/types.d.ts +0 -119
  374. package/dist/npm/esm/modules/contract/vendor/search-contract/types.js +0 -7
  375. package/dist/npm/esm/modules/contract/vendor/search-contract/types.js.map +0 -1
  376. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.d.ts +0 -22
  377. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js +0 -118
  378. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js.map +0 -1
  379. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.d.ts +0 -7
  380. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js +0 -130
  381. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js.map +0 -1
  382. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.d.ts +0 -3
  383. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js +0 -5
  384. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js.map +0 -1
  385. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.d.ts +0 -37
  386. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js +0 -2
  387. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js.map +0 -1
  388. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.d.ts +0 -6
  389. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js +0 -147
  390. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js.map +0 -1
  391. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.d.ts +0 -22
  392. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js +0 -1472
  393. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js.map +0 -1
  394. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.d.ts +0 -4
  395. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js +0 -6
  396. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js.map +0 -1
  397. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.d.ts +0 -14
  398. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js +0 -18
  399. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js.map +0 -1
  400. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.d.ts +0 -128
  401. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js +0 -7
  402. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js.map +0 -1
  403. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.d.ts +0 -11
  404. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js +0 -132
  405. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js.map +0 -1
  406. package/dist/npm/esm/modules/contract/widget-contract.d.ts +0 -1
  407. package/dist/npm/esm/modules/contract/widget-contract.js +0 -2
  408. package/dist/npm/esm/modules/contract/widget-contract.js.map +0 -1
  409. package/dist/npm/esm/modules/products/tracking.d.ts +0 -122
  410. package/dist/npm/esm/modules/products/tracking.js +0 -203
  411. package/dist/npm/esm/modules/products/tracking.js.map +0 -1
  412. package/dist/npm/esm/modules/recommendation/cart-handlers.d.ts +0 -10
  413. package/dist/npm/esm/modules/recommendation/cart-handlers.js +0 -49
  414. package/dist/npm/esm/modules/recommendation/cart-handlers.js.map +0 -1
  415. package/dist/npm/esm/modules/recommendation/components/product-card-renderer.d.ts +0 -37
  416. package/dist/npm/esm/modules/recommendation/components/product-card-renderer.js +0 -281
  417. package/dist/npm/esm/modules/recommendation/components/product-card-renderer.js.map +0 -1
  418. package/dist/npm/esm/modules/recommendation/index.d.ts +0 -11
  419. package/dist/npm/esm/modules/recommendation/index.js +0 -674
  420. package/dist/npm/esm/modules/recommendation/index.js.map +0 -1
  421. package/dist/npm/esm/modules/recommendation/renderers/grid.d.ts +0 -5
  422. package/dist/npm/esm/modules/recommendation/renderers/grid.js +0 -18
  423. package/dist/npm/esm/modules/recommendation/renderers/grid.js.map +0 -1
  424. package/dist/npm/esm/modules/recommendation/renderers/list.d.ts +0 -5
  425. package/dist/npm/esm/modules/recommendation/renderers/list.js +0 -19
  426. package/dist/npm/esm/modules/recommendation/renderers/list.js.map +0 -1
  427. package/dist/npm/esm/modules/recommendation/renderers/masonry.d.ts +0 -5
  428. package/dist/npm/esm/modules/recommendation/renderers/masonry.js +0 -19
  429. package/dist/npm/esm/modules/recommendation/renderers/masonry.js.map +0 -1
  430. package/dist/npm/esm/modules/recommendation/renderers/slider-renderer.d.ts +0 -10
  431. package/dist/npm/esm/modules/recommendation/renderers/slider-renderer.js +0 -140
  432. package/dist/npm/esm/modules/recommendation/renderers/slider-renderer.js.map +0 -1
  433. package/dist/npm/esm/modules/recommendation/slider-controls.d.ts +0 -17
  434. package/dist/npm/esm/modules/recommendation/slider-controls.js +0 -187
  435. package/dist/npm/esm/modules/recommendation/slider-controls.js.map +0 -1
  436. package/dist/npm/esm/modules/recommendation/tracking.d.ts +0 -28
  437. package/dist/npm/esm/modules/recommendation/tracking.js +0 -237
  438. package/dist/npm/esm/modules/recommendation/tracking.js.map +0 -1
  439. package/dist/npm/esm/modules/recommendation/utils/dom.d.ts +0 -10
  440. package/dist/npm/esm/modules/recommendation/utils/dom.js +0 -63
  441. package/dist/npm/esm/modules/recommendation/utils/dom.js.map +0 -1
  442. package/dist/npm/esm/modules/recommendation/utils/format.d.ts +0 -4
  443. package/dist/npm/esm/modules/recommendation/utils/format.js +0 -10
  444. package/dist/npm/esm/modules/recommendation/utils/format.js.map +0 -1
  445. package/dist/npm/esm/modules/recommendation/utils/index.d.ts +0 -5
  446. package/dist/npm/esm/modules/recommendation/utils/index.js +0 -6
  447. package/dist/npm/esm/modules/recommendation/utils/index.js.map +0 -1
  448. package/dist/npm/esm/modules/renderer/helpers.d.ts +0 -5
  449. package/dist/npm/esm/modules/renderer/helpers.js +0 -6
  450. package/dist/npm/esm/modules/renderer/helpers.js.map +0 -1
  451. package/dist/npm/esm/modules/renderer/index.d.ts +0 -8
  452. package/dist/npm/esm/modules/renderer/index.js +0 -48
  453. package/dist/npm/esm/modules/renderer/index.js.map +0 -1
  454. package/dist/npm/esm/modules/renderer/style-resolver.d.ts +0 -1
  455. package/dist/npm/esm/modules/renderer/style-resolver.js +0 -8
  456. package/dist/npm/esm/modules/renderer/style-resolver.js.map +0 -1
  457. package/dist/npm/esm/modules/renderer/styles/index.d.ts +0 -12
  458. package/dist/npm/esm/modules/renderer/styles/index.js +0 -250
  459. package/dist/npm/esm/modules/renderer/styles/index.js.map +0 -1
  460. package/dist/npm/esm/modules/renderer/styles.d.ts +0 -1
  461. package/dist/npm/esm/modules/renderer/styles.js +0 -2
  462. package/dist/npm/esm/modules/renderer/styles.js.map +0 -1
  463. package/dist/npm/esm/modules/renderer/utils/helpers.d.ts +0 -58
  464. package/dist/npm/esm/modules/renderer/utils/helpers.js +0 -225
  465. package/dist/npm/esm/modules/renderer/utils/helpers.js.map +0 -1
  466. package/dist/npm/esm/modules/renderer/utils/image-renderer.d.ts +0 -17
  467. package/dist/npm/esm/modules/renderer/utils/image-renderer.js +0 -60
  468. package/dist/npm/esm/modules/renderer/utils/image-renderer.js.map +0 -1
  469. package/dist/npm/esm/modules/renderer/utils/placement.d.ts +0 -6
  470. package/dist/npm/esm/modules/renderer/utils/placement.js +0 -31
  471. package/dist/npm/esm/modules/renderer/utils/placement.js.map +0 -1
  472. package/dist/npm/esm/modules/renderer/utils.d.ts +0 -11
  473. package/dist/npm/esm/modules/renderer/utils.js +0 -44
  474. package/dist/npm/esm/modules/renderer/utils.js.map +0 -1
  475. package/dist/npm/esm/modules/renderer/widgets/announcement-bar.d.ts +0 -5
  476. package/dist/npm/esm/modules/renderer/widgets/announcement-bar.js +0 -81
  477. package/dist/npm/esm/modules/renderer/widgets/announcement-bar.js.map +0 -1
  478. package/dist/npm/esm/modules/renderer/widgets/cart-count.d.ts +0 -6
  479. package/dist/npm/esm/modules/renderer/widgets/cart-count.js +0 -208
  480. package/dist/npm/esm/modules/renderer/widgets/cart-count.js.map +0 -1
  481. package/dist/npm/esm/modules/renderer/widgets/cookie-consent.d.ts +0 -18
  482. package/dist/npm/esm/modules/renderer/widgets/cookie-consent.js +0 -454
  483. package/dist/npm/esm/modules/renderer/widgets/cookie-consent.js.map +0 -1
  484. package/dist/npm/esm/modules/renderer/widgets/countdown-timer.d.ts +0 -5
  485. package/dist/npm/esm/modules/renderer/widgets/countdown-timer.js +0 -129
  486. package/dist/npm/esm/modules/renderer/widgets/countdown-timer.js.map +0 -1
  487. package/dist/npm/esm/modules/renderer/widgets/custom.d.ts +0 -5
  488. package/dist/npm/esm/modules/renderer/widgets/custom.js +0 -55
  489. package/dist/npm/esm/modules/renderer/widgets/custom.js.map +0 -1
  490. package/dist/npm/esm/modules/renderer/widgets/embedded-card.d.ts +0 -5
  491. package/dist/npm/esm/modules/renderer/widgets/embedded-card.js +0 -94
  492. package/dist/npm/esm/modules/renderer/widgets/embedded-card.js.map +0 -1
  493. package/dist/npm/esm/modules/renderer/widgets/exit-intent-popup.d.ts +0 -6
  494. package/dist/npm/esm/modules/renderer/widgets/exit-intent-popup.js +0 -147
  495. package/dist/npm/esm/modules/renderer/widgets/exit-intent-popup.js.map +0 -1
  496. package/dist/npm/esm/modules/renderer/widgets/floating-button.d.ts +0 -5
  497. package/dist/npm/esm/modules/renderer/widgets/floating-button.js +0 -67
  498. package/dist/npm/esm/modules/renderer/widgets/floating-button.js.map +0 -1
  499. package/dist/npm/esm/modules/renderer/widgets/helpers.d.ts +0 -29
  500. package/dist/npm/esm/modules/renderer/widgets/helpers.js +0 -82
  501. package/dist/npm/esm/modules/renderer/widgets/helpers.js.map +0 -1
  502. package/dist/npm/esm/modules/renderer/widgets/index.d.ts +0 -17
  503. package/dist/npm/esm/modules/renderer/widgets/index.js +0 -19
  504. package/dist/npm/esm/modules/renderer/widgets/index.js.map +0 -1
  505. package/dist/npm/esm/modules/renderer/widgets/inline-banner.d.ts +0 -5
  506. package/dist/npm/esm/modules/renderer/widgets/inline-banner.js +0 -121
  507. package/dist/npm/esm/modules/renderer/widgets/inline-banner.js.map +0 -1
  508. package/dist/npm/esm/modules/renderer/widgets/newsletter.d.ts +0 -6
  509. package/dist/npm/esm/modules/renderer/widgets/newsletter.js +0 -277
  510. package/dist/npm/esm/modules/renderer/widgets/newsletter.js.map +0 -1
  511. package/dist/npm/esm/modules/renderer/widgets/product-view-count.d.ts +0 -6
  512. package/dist/npm/esm/modules/renderer/widgets/product-view-count.js +0 -194
  513. package/dist/npm/esm/modules/renderer/widgets/product-view-count.js.map +0 -1
  514. package/dist/npm/esm/modules/renderer/widgets/slide-in.d.ts +0 -5
  515. package/dist/npm/esm/modules/renderer/widgets/slide-in.js +0 -102
  516. package/dist/npm/esm/modules/renderer/widgets/slide-in.js.map +0 -1
  517. package/dist/npm/esm/modules/renderer/widgets/sticky-footer.d.ts +0 -5
  518. package/dist/npm/esm/modules/renderer/widgets/sticky-footer.js +0 -44
  519. package/dist/npm/esm/modules/renderer/widgets/sticky-footer.js.map +0 -1
  520. package/dist/npm/esm/modules/search/cart/index.d.ts +0 -26
  521. package/dist/npm/esm/modules/search/cart/index.js +0 -39
  522. package/dist/npm/esm/modules/search/cart/index.js.map +0 -1
  523. package/dist/npm/esm/modules/search/components/index.d.ts +0 -6
  524. package/dist/npm/esm/modules/search/components/index.js +0 -7
  525. package/dist/npm/esm/modules/search/components/index.js.map +0 -1
  526. package/dist/npm/esm/modules/search/components/search-box.d.ts +0 -11
  527. package/dist/npm/esm/modules/search/components/search-box.js +0 -25
  528. package/dist/npm/esm/modules/search/components/search-box.js.map +0 -1
  529. package/dist/npm/esm/modules/search/components/search-item.d.ts +0 -20
  530. package/dist/npm/esm/modules/search/components/search-item.js +0 -193
  531. package/dist/npm/esm/modules/search/components/search-item.js.map +0 -1
  532. package/dist/npm/esm/modules/search/components/suggestions.d.ts +0 -10
  533. package/dist/npm/esm/modules/search/components/suggestions.js +0 -129
  534. package/dist/npm/esm/modules/search/components/suggestions.js.map +0 -1
  535. package/dist/npm/esm/modules/search/index.d.ts +0 -67
  536. package/dist/npm/esm/modules/search/index.js +0 -642
  537. package/dist/npm/esm/modules/search/index.js.map +0 -1
  538. package/dist/npm/esm/modules/search/renderers/position-renderers.d.ts +0 -23
  539. package/dist/npm/esm/modules/search/renderers/position-renderers.js +0 -221
  540. package/dist/npm/esm/modules/search/renderers/position-renderers.js.map +0 -1
  541. package/dist/npm/esm/modules/search/renderers/results-renderer.d.ts +0 -20
  542. package/dist/npm/esm/modules/search/renderers/results-renderer.js +0 -176
  543. package/dist/npm/esm/modules/search/renderers/results-renderer.js.map +0 -1
  544. package/dist/npm/esm/modules/search/services/api-service.d.ts +0 -18
  545. package/dist/npm/esm/modules/search/services/api-service.js +0 -115
  546. package/dist/npm/esm/modules/search/services/api-service.js.map +0 -1
  547. package/dist/npm/esm/modules/search/services/tracking-service.d.ts +0 -16
  548. package/dist/npm/esm/modules/search/services/tracking-service.js +0 -250
  549. package/dist/npm/esm/modules/search/services/tracking-service.js.map +0 -1
  550. package/dist/npm/esm/modules/search/styles.d.ts +0 -13
  551. package/dist/npm/esm/modules/search/styles.js +0 -860
  552. package/dist/npm/esm/modules/search/styles.js.map +0 -1
  553. package/dist/npm/esm/modules/search/utils/helpers.d.ts +0 -24
  554. package/dist/npm/esm/modules/search/utils/helpers.js +0 -93
  555. package/dist/npm/esm/modules/search/utils/helpers.js.map +0 -1
  556. package/dist/npm/esm/modules/search/utils/icons.d.ts +0 -16
  557. package/dist/npm/esm/modules/search/utils/icons.js +0 -36
  558. package/dist/npm/esm/modules/search/utils/icons.js.map +0 -1
  559. package/dist/npm/esm/modules/search/utils/index.d.ts +0 -6
  560. package/dist/npm/esm/modules/search/utils/index.js +0 -7
  561. package/dist/npm/esm/modules/search/utils/index.js.map +0 -1
  562. package/dist/npm/esm/modules/search/utils/storage.d.ts +0 -7
  563. package/dist/npm/esm/modules/search/utils/storage.js +0 -52
  564. package/dist/npm/esm/modules/search/utils/storage.js.map +0 -1
  565. package/dist/npm/esm/package.json +0 -1
  566. package/dist/npm/esm/selwise.d.ts +0 -209
  567. package/dist/npm/esm/selwise.js +0 -1123
  568. package/dist/npm/esm/selwise.js.map +0 -1
  569. package/dist/npm/esm/sentry-test.d.ts +0 -45
  570. package/dist/npm/esm/sentry-test.js +0 -109
  571. package/dist/npm/esm/sentry-test.js.map +0 -1
  572. package/dist/npm/esm/sentry.d.ts +0 -86
  573. package/dist/npm/esm/sentry.js +0 -441
  574. package/dist/npm/esm/sentry.js.map +0 -1
  575. package/dist/npm/esm/shared/cart/handlers.d.ts +0 -46
  576. package/dist/npm/esm/shared/cart/handlers.js +0 -249
  577. package/dist/npm/esm/shared/cart/handlers.js.map +0 -1
  578. package/dist/npm/esm/shared/cart/index.d.ts +0 -6
  579. package/dist/npm/esm/shared/cart/index.js +0 -7
  580. package/dist/npm/esm/shared/cart/index.js.map +0 -1
  581. package/dist/npm/esm/shared/cart/types.d.ts +0 -30
  582. package/dist/npm/esm/shared/cart/types.js +0 -6
  583. package/dist/npm/esm/shared/cart/types.js.map +0 -1
  584. package/dist/npm/esm/shared/product-card/index.d.ts +0 -7
  585. package/dist/npm/esm/shared/product-card/index.js +0 -8
  586. package/dist/npm/esm/shared/product-card/index.js.map +0 -1
  587. package/dist/npm/esm/shared/product-card/renderer.d.ts +0 -35
  588. package/dist/npm/esm/shared/product-card/renderer.js +0 -334
  589. package/dist/npm/esm/shared/product-card/renderer.js.map +0 -1
  590. package/dist/npm/esm/shared/product-card/styles.d.ts +0 -17
  591. package/dist/npm/esm/shared/product-card/styles.js +0 -190
  592. package/dist/npm/esm/shared/product-card/styles.js.map +0 -1
  593. package/dist/npm/esm/shared/product-card/types.d.ts +0 -84
  594. package/dist/npm/esm/shared/product-card/types.js +0 -63
  595. package/dist/npm/esm/shared/product-card/types.js.map +0 -1
  596. package/dist/npm/esm/types/config.d.ts +0 -26
  597. package/dist/npm/esm/types/config.js +0 -5
  598. package/dist/npm/esm/types/config.js.map +0 -1
  599. package/dist/npm/esm/types/experiments.d.ts +0 -47
  600. package/dist/npm/esm/types/experiments.js +0 -14
  601. package/dist/npm/esm/types/experiments.js.map +0 -1
  602. package/dist/npm/esm/types/global-api.d.ts +0 -40
  603. package/dist/npm/esm/types/global-api.js +0 -2
  604. package/dist/npm/esm/types/global-api.js.map +0 -1
  605. package/dist/npm/esm/types/index.d.ts +0 -9
  606. package/dist/npm/esm/types/index.js +0 -11
  607. package/dist/npm/esm/types/index.js.map +0 -1
  608. package/dist/npm/esm/types/recommendation.d.ts +0 -186
  609. package/dist/npm/esm/types/recommendation.js +0 -5
  610. package/dist/npm/esm/types/recommendation.js.map +0 -1
  611. package/dist/npm/esm/types/renderer.d.ts +0 -99
  612. package/dist/npm/esm/types/renderer.js +0 -5
  613. package/dist/npm/esm/types/renderer.js.map +0 -1
  614. package/dist/npm/esm/types/search.d.ts +0 -186
  615. package/dist/npm/esm/types/search.js +0 -5
  616. package/dist/npm/esm/types/search.js.map +0 -1
  617. package/dist/npm/esm/utils/api-url.d.ts +0 -1
  618. package/dist/npm/esm/utils/api-url.js +0 -32
  619. package/dist/npm/esm/utils/api-url.js.map +0 -1
  620. package/dist/npm/esm/utils/debounce.d.ts +0 -27
  621. package/dist/npm/esm/utils/debounce.js +0 -70
  622. package/dist/npm/esm/utils/debounce.js.map +0 -1
  623. package/dist/npm/esm/utils/event-id.d.ts +0 -5
  624. package/dist/npm/esm/utils/event-id.js +0 -20
  625. package/dist/npm/esm/utils/event-id.js.map +0 -1
  626. package/dist/npm/esm/utils/index.d.ts +0 -11
  627. package/dist/npm/esm/utils/index.js +0 -12
  628. package/dist/npm/esm/utils/index.js.map +0 -1
  629. package/dist/npm/esm/utils/logger.d.ts +0 -31
  630. package/dist/npm/esm/utils/logger.js +0 -66
  631. package/dist/npm/esm/utils/logger.js.map +0 -1
  632. package/dist/npm/esm/utils/sanitize.d.ts +0 -38
  633. package/dist/npm/esm/utils/sanitize.js +0 -148
  634. package/dist/npm/esm/utils/sanitize.js.map +0 -1
  635. package/dist/npm/esm/utils/storage.d.ts +0 -72
  636. package/dist/npm/esm/utils/storage.js +0 -271
  637. package/dist/npm/esm/utils/storage.js.map +0 -1
  638. package/dist/npm/esm/utils/tracking-metadata.d.ts +0 -1
  639. package/dist/npm/esm/utils/tracking-metadata.js +0 -15
  640. package/dist/npm/esm/utils/tracking-metadata.js.map +0 -1
  641. package/dist/npm/esm/utils/url-matcher.d.ts +0 -4
  642. package/dist/npm/esm/utils/url-matcher.js +0 -8
  643. package/dist/npm/esm/utils/url-matcher.js.map +0 -1
@@ -1,794 +0,0 @@
1
- /**
2
- * Event Tracker
3
- * Comprehensive tracking for impressions, clicks, views, and conversions
4
- *
5
- * Now with optional EventBatcher for advanced batching capabilities:
6
- * - Configurable batch size (default: 50 events)
7
- * - Configurable flush interval (default: 30 seconds)
8
- * - Page hide/send beacon support
9
- * - Offline persistence (localStorage)
10
- * - Event deduplication
11
- * - Retry logic with exponential backoff
12
- */
13
- import { getOrCreateSessionId, getOrCreateVisitorId, getStoredSiteUserId, setSiteUserId as storageSetSiteUserId, getOrCreateJourneyId, resetCorrelation, generateEventId, resolveApiUrl, sanitizeTrackingMetadata, } from '../utils/index.js';
14
- import { STORAGE_KEYS } from '../constants.js';
15
- import { EventBatcher } from './event-batcher.js';
16
- import { testModeDebug } from '../utils/logger.js';
17
- export class Tracker {
18
- constructor(apiUrl = resolveApiUrl(), siteKey = '', batchingConfig) {
19
- this.queue = [];
20
- this.flushTimeout = null;
21
- this.viewObservers = new Map();
22
- this.viewedElements = new Set();
23
- this.hoverStartTimes = new Map();
24
- this.useAdvancedBatching = false;
25
- // SPA cleanup flag
26
- this.spaCleanupSetup = false;
27
- this.apiUrl = apiUrl;
28
- this.siteKey = siteKey;
29
- this.sessionId = getOrCreateSessionId();
30
- this.visitorId = getOrCreateVisitorId();
31
- this.siteUserId = getStoredSiteUserId();
32
- // Initialize EventBatcher if enabled
33
- if (batchingConfig?.enabled !== false && batchingConfig) {
34
- this.useAdvancedBatching = true;
35
- this.batcher = new EventBatcher({
36
- ...batchingConfig,
37
- apiUrl: this.apiUrl,
38
- siteKey: this.siteKey,
39
- sessionId: this.sessionId,
40
- visitorId: this.visitorId,
41
- siteUserId: this.siteUserId,
42
- });
43
- }
44
- // Setup SPA navigation cleanup (lazy - only once)
45
- // This is called lazily to avoid overriding history methods before the app is ready
46
- }
47
- /**
48
- * Enable SPA cleanup (call this if your app uses client-side routing)
49
- * This should be called once during initialization
50
- */
51
- enableSPACleanup() {
52
- if (!this.spaCleanupSetup) {
53
- this.setupSPACleanup();
54
- this.spaCleanupSetup = true;
55
- }
56
- }
57
- setSiteKey(siteKey) {
58
- this.siteKey = siteKey;
59
- if (this.batcher) {
60
- this.batcher.setSiteKey(siteKey);
61
- }
62
- }
63
- /**
64
- * Configure or enable advanced batching
65
- * Can be called to update configuration dynamically after fetching from server
66
- */
67
- setBatcherConfig(config) {
68
- if (config.enabled === false) {
69
- // Disable advanced batching
70
- this.useAdvancedBatching = false;
71
- this.batcher?.destroy();
72
- this.batcher = undefined;
73
- return;
74
- }
75
- // Enable advanced batching if not already enabled
76
- if (config.enabled === true && !this.useAdvancedBatching) {
77
- this.useAdvancedBatching = true;
78
- }
79
- if (!this.batcher) {
80
- // Create new batcher with full config
81
- this.batcher = new EventBatcher({
82
- ...config,
83
- apiUrl: this.apiUrl,
84
- siteKey: this.siteKey,
85
- sessionId: this.sessionId,
86
- visitorId: this.visitorId,
87
- siteUserId: this.siteUserId,
88
- });
89
- this.useAdvancedBatching = true;
90
- }
91
- else {
92
- // Update existing batcher configuration
93
- this.batcher.updateConfig(config);
94
- }
95
- }
96
- setSiteUserId(siteUserId) {
97
- this.siteUserId = siteUserId;
98
- storageSetSiteUserId(siteUserId);
99
- }
100
- getSessionId() {
101
- return this.sessionId;
102
- }
103
- getVisitorId() {
104
- return this.visitorId;
105
- }
106
- getSiteUserId() {
107
- return this.siteUserId;
108
- }
109
- /**
110
- * Get the current journey ID
111
- * Returns the active journey ID or null if no journey is active
112
- */
113
- getJourneyId() {
114
- try {
115
- const journeyId = localStorage.getItem(STORAGE_KEYS.JOURNEY_ID);
116
- const createdStr = localStorage.getItem(STORAGE_KEYS.JOURNEY_CREATED);
117
- if (journeyId && createdStr) {
118
- const created = parseInt(createdStr, 10);
119
- const age = Date.now() - created;
120
- // Journey is valid for 30 minutes
121
- if (age < 30 * 60 * 1000) {
122
- return journeyId;
123
- }
124
- }
125
- return null;
126
- }
127
- catch {
128
- return null;
129
- }
130
- }
131
- /**
132
- * End the current journey
133
- * Clears the journey ID and starts a new one on next event
134
- */
135
- endJourney() {
136
- try {
137
- localStorage.removeItem(STORAGE_KEYS.JOURNEY_ID);
138
- localStorage.removeItem(STORAGE_KEYS.JOURNEY_CREATED);
139
- }
140
- catch {
141
- // Ignore storage errors
142
- }
143
- }
144
- /**
145
- * Get the journey state for debugging
146
- */
147
- getJourneyState() {
148
- try {
149
- const journeyId = localStorage.getItem(STORAGE_KEYS.JOURNEY_ID);
150
- const createdStr = localStorage.getItem(STORAGE_KEYS.JOURNEY_CREATED);
151
- if (!journeyId || !createdStr) {
152
- return { journeyId: null, age: null, isValid: false };
153
- }
154
- const created = parseInt(createdStr, 10);
155
- const age = Date.now() - created;
156
- const isValid = age < 30 * 60 * 1000; // 30 minutes
157
- return { journeyId, age, isValid };
158
- }
159
- catch {
160
- return { journeyId: null, age: null, isValid: false };
161
- }
162
- }
163
- /**
164
- * Get the internal SiteUser profile ID (UUID) for segment evaluation
165
- * This is set after identify() and persists for merged behavior lookup
166
- */
167
- getSiteUserProfileId() {
168
- try {
169
- return localStorage.getItem(STORAGE_KEYS.SITE_USER_PROFILE_ID) || undefined;
170
- }
171
- catch {
172
- return undefined;
173
- }
174
- }
175
- /**
176
- * Identify a user and merge anonymous visitor data
177
- * Calls the backend API to perform identity merge
178
- */
179
- async identify(userId, metadata) {
180
- const previousId = this.siteUserId;
181
- this.setSiteUserId(userId);
182
- // Update batcher with new siteUserId
183
- if (this.batcher) {
184
- this.batcher.setSessionData(this.sessionId, this.visitorId, userId);
185
- }
186
- // Try to call backend API for identity merge
187
- try {
188
- const response = await fetch(`${this.apiUrl}/public/sites/${this.siteKey}/users/identify`, {
189
- method: 'POST',
190
- headers: { 'Content-Type': 'application/json' },
191
- body: JSON.stringify({
192
- externalId: userId,
193
- visitorId: this.visitorId,
194
- sessionId: this.sessionId,
195
- traits: metadata,
196
- pageUrl: window.location.href,
197
- userAgent: navigator.userAgent,
198
- }),
199
- keepalive: true,
200
- });
201
- if (response.ok) {
202
- const result = await response.json();
203
- // Track merged visitor IDs for cross-reference
204
- if (result.merged || result.aliases) {
205
- this.updateMergedVisitorIds(result.aliases || [this.visitorId]);
206
- }
207
- // Store the internal SiteUser profile ID (UUID) for segment evaluation
208
- // This allows finding merged behaviors even after localStorage is cleared
209
- if (result.user?.id) {
210
- try {
211
- localStorage.setItem(STORAGE_KEYS.SITE_USER_PROFILE_ID, result.user.id);
212
- }
213
- catch {
214
- // Ignore storage errors
215
- }
216
- }
217
- // Track identify event after successful merge
218
- if (previousId !== userId || result.merged) {
219
- this.track('identify', {
220
- entityType: 'user',
221
- entityId: userId,
222
- metadata: {
223
- ...metadata,
224
- previousId,
225
- visitorId: this.visitorId,
226
- merged: result.merged,
227
- },
228
- });
229
- }
230
- return { success: true, merged: result.merged };
231
- }
232
- }
233
- catch (error) {
234
- // Fallback to local tracking only
235
- testModeDebug('Selwise', 'Identity merge API call failed, using local tracking:', error);
236
- }
237
- // Fallback: track locally if API call fails
238
- if (previousId !== userId) {
239
- this.track('identify', {
240
- entityType: 'user',
241
- entityId: userId,
242
- metadata: {
243
- ...metadata,
244
- previousId,
245
- visitorId: this.visitorId,
246
- merged: false,
247
- },
248
- });
249
- }
250
- return { success: false, merged: false };
251
- }
252
- /**
253
- * Set user traits without changing identity
254
- * Calls the backend API to update user attributes
255
- */
256
- async setTraits(traits) {
257
- if (!this.siteKey)
258
- return false;
259
- // Cache traits locally
260
- try {
261
- const cached = JSON.parse(localStorage.getItem(STORAGE_KEYS.USER_TRAITS) || '{}');
262
- // Validate that cached data is an object
263
- if (cached && typeof cached === 'object' && !Array.isArray(cached)) {
264
- localStorage.setItem(STORAGE_KEYS.USER_TRAITS, JSON.stringify({ ...cached, ...traits }));
265
- }
266
- else {
267
- // Data corrupted, start fresh
268
- localStorage.setItem(STORAGE_KEYS.USER_TRAITS, JSON.stringify(traits));
269
- }
270
- }
271
- catch (e) {
272
- testModeDebug('Selwise', 'Failed to cache traits:', e);
273
- }
274
- // Try to call backend API
275
- try {
276
- const response = await fetch(`${this.apiUrl}/public/sites/${this.siteKey}/users/traits`, {
277
- method: 'POST',
278
- headers: { 'Content-Type': 'application/json' },
279
- body: JSON.stringify({
280
- externalId: this.siteUserId,
281
- visitorId: !this.siteUserId ? this.visitorId : undefined,
282
- traits,
283
- }),
284
- keepalive: true,
285
- });
286
- if (response.ok) {
287
- const result = await response.json();
288
- return result.success === true;
289
- }
290
- }
291
- catch (error) {
292
- testModeDebug('Selwise', 'Set traits API call failed:', error);
293
- }
294
- return false;
295
- }
296
- /**
297
- * Track merged visitor IDs for cross-device reference
298
- */
299
- updateMergedVisitorIds(visitorIds) {
300
- try {
301
- const stored = JSON.parse(localStorage.getItem(STORAGE_KEYS.MERGED_VISITOR_IDS) || '[]');
302
- // Validate that parsed data is an array
303
- if (Array.isArray(stored)) {
304
- const merged = new Set([...stored, ...visitorIds]);
305
- localStorage.setItem(STORAGE_KEYS.MERGED_VISITOR_IDS, JSON.stringify([...merged]));
306
- }
307
- else {
308
- // Data corrupted, start fresh
309
- const merged = new Set(visitorIds);
310
- localStorage.setItem(STORAGE_KEYS.MERGED_VISITOR_IDS, JSON.stringify([...merged]));
311
- }
312
- }
313
- catch (e) {
314
- testModeDebug('Selwise', 'Failed to update merged visitor IDs:', e);
315
- }
316
- }
317
- /**
318
- * Get all merged visitor IDs for this user
319
- */
320
- getMergedVisitorIds() {
321
- try {
322
- const parsed = JSON.parse(localStorage.getItem(STORAGE_KEYS.MERGED_VISITOR_IDS) || '[]');
323
- // Validate that parsed data is an array
324
- if (Array.isArray(parsed)) {
325
- return parsed;
326
- }
327
- return [];
328
- }
329
- catch (e) {
330
- testModeDebug('Selwise', 'Failed to get merged visitor IDs:', e);
331
- return [];
332
- }
333
- }
334
- track(name, args) {
335
- const now = Date.now();
336
- const eventId = generateEventId();
337
- const metadata = sanitizeTrackingMetadata(args?.metadata);
338
- const event = {
339
- eventId,
340
- eventSchemaVersion: 1,
341
- eventTs: now,
342
- name,
343
- entityType: args?.entityType,
344
- entityId: args?.entityId,
345
- metadata,
346
- };
347
- if (name === 'click' && (args?.entityType === 'campaign' || args?.entityType === 'widget')) {
348
- try {
349
- sessionStorage.setItem(STORAGE_KEYS.LAST_TOUCH, JSON.stringify({
350
- ts: Date.now(),
351
- campaignId: args.entityType === 'campaign' ? args.entityId || null : null,
352
- widgetId: args.entityType === 'widget' ? args.entityId || null : null,
353
- }));
354
- }
355
- catch {
356
- // ignore
357
- }
358
- }
359
- // Use EventBatcher if enabled
360
- if (this.useAdvancedBatching && this.batcher) {
361
- this.batcher.add({
362
- ...event,
363
- timestamp: Date.now(),
364
- }); // EventBatch type with timestamp
365
- }
366
- else {
367
- // Local queue batching
368
- this.queue.push(event);
369
- this.scheduleFlush();
370
- }
371
- }
372
- trackView(element, entityType, entityId, metadata) {
373
- const key = `${entityType}_${entityId}`;
374
- // Don't track same element twice
375
- if (this.viewedElements.has(key))
376
- return;
377
- let viewStartTime = null;
378
- let viewTimer = null;
379
- const observer = new IntersectionObserver((entries) => {
380
- entries.forEach((entry) => {
381
- if (entry.isIntersecting && entry.intersectionRatio >= 0.5) {
382
- // Element is 50%+ visible
383
- if (!viewStartTime) {
384
- viewStartTime = Date.now();
385
- viewTimer = window.setTimeout(() => {
386
- // Element visible for 1+ second
387
- if (!this.viewedElements.has(key)) {
388
- this.viewedElements.add(key);
389
- this.track('view', {
390
- entityType,
391
- entityId,
392
- metadata: {
393
- ...metadata,
394
- viewDuration: Date.now() - (viewStartTime || Date.now()),
395
- scrollDepth: Math.round((window.scrollY / document.body.scrollHeight) * 100),
396
- },
397
- });
398
- }
399
- }, 1000);
400
- }
401
- }
402
- else {
403
- // Element no longer visible
404
- if (viewTimer) {
405
- clearTimeout(viewTimer);
406
- viewTimer = null;
407
- }
408
- viewStartTime = null;
409
- }
410
- });
411
- }, { threshold: 0.5 });
412
- observer.observe(element);
413
- this.viewObservers.set(key, observer);
414
- }
415
- trackProductImpression(element, widgetId, productItemCode, position) {
416
- const key = `product_${widgetId}_${productItemCode}`;
417
- if (this.viewedElements.has(key))
418
- return;
419
- const observer = new IntersectionObserver((entries) => {
420
- entries.forEach((entry) => {
421
- if (entry.isIntersecting && entry.intersectionRatio >= 0.5) {
422
- if (!this.viewedElements.has(key)) {
423
- this.viewedElements.add(key);
424
- this.track('product_impression', {
425
- entityType: 'recommendation',
426
- entityId: widgetId,
427
- metadata: { productItemCode, position },
428
- });
429
- observer.disconnect();
430
- }
431
- }
432
- });
433
- }, { threshold: 0.5 });
434
- observer.observe(element);
435
- }
436
- trackHoverStart(entityType, entityId) {
437
- const key = `${entityType}_${entityId}`;
438
- this.hoverStartTimes.set(key, Date.now());
439
- }
440
- trackHoverEnd(entityType, entityId, metadata) {
441
- const key = `${entityType}_${entityId}`;
442
- const startTime = this.hoverStartTimes.get(key);
443
- if (startTime) {
444
- const duration = Date.now() - startTime;
445
- this.hoverStartTimes.delete(key);
446
- // Only track if hover was longer than 500ms
447
- if (duration >= 500) {
448
- this.track('hover', {
449
- entityType,
450
- entityId,
451
- metadata: { ...metadata, hoverDuration: duration },
452
- });
453
- }
454
- }
455
- }
456
- trackScroll(entityType, entityId, scrollPercent) {
457
- this.track('scroll', {
458
- entityType,
459
- entityId,
460
- metadata: { scrollPercent },
461
- });
462
- }
463
- trackSliderNavigate(widgetId, direction, fromSlide, toSlide) {
464
- this.track('slider_navigate', {
465
- entityType: 'recommendation',
466
- entityId: widgetId,
467
- metadata: { direction, fromSlide, toSlide },
468
- });
469
- }
470
- trackSliderSwipe(widgetId, direction) {
471
- this.track('slider_swipe', {
472
- entityType: 'recommendation',
473
- entityId: widgetId,
474
- metadata: { direction },
475
- });
476
- }
477
- // ================================
478
- // Search-specific tracking
479
- // ================================
480
- trackSearchOpen(trigger = 'click') {
481
- this.track('search_instant_open', {
482
- entityType: 'search',
483
- metadata: { trigger },
484
- });
485
- }
486
- trackSearchClose(query, resultCount, dwellTime) {
487
- this.track('search_close', {
488
- entityType: 'search',
489
- metadata: { query, resultCount, dwellTime },
490
- });
491
- }
492
- trackCategoryFilter(categoryName, resultCount) {
493
- this.track('category_filter', {
494
- entityType: 'search',
495
- metadata: { categoryName, resultCount },
496
- });
497
- }
498
- trackRecentSearchClick(query) {
499
- this.track('recent_search_click', {
500
- entityType: 'search',
501
- metadata: { query },
502
- });
503
- }
504
- trackPopularSearchClick(query) {
505
- this.track('popular_search_click', {
506
- entityType: 'search',
507
- metadata: { query },
508
- });
509
- }
510
- trackPopularCategoryClick(categoryName) {
511
- this.track('popular_category_click', {
512
- entityType: 'search',
513
- metadata: { categoryName },
514
- });
515
- }
516
- trackPopularProductClick(productItemCode) {
517
- this.track('popular_product_click', {
518
- entityType: 'search',
519
- metadata: { productItemCode },
520
- });
521
- }
522
- trackZeroResults(query) {
523
- this.track('search_zero_results', {
524
- entityType: 'search',
525
- metadata: { query },
526
- });
527
- }
528
- // ================================
529
- // Order/Conversion tracking
530
- // ================================
531
- async trackOrder(order) {
532
- if (!this.siteKey)
533
- return;
534
- const normalizedOrderId = (order.orderId || '').toString().trim();
535
- if (!normalizedOrderId)
536
- return;
537
- const normalizedOrder = {
538
- ...order,
539
- orderId: normalizedOrderId,
540
- };
541
- const lastTouch = (() => {
542
- try {
543
- const a = JSON.parse(sessionStorage.getItem(STORAGE_KEYS.LAST_TOUCH) || 'null');
544
- const r = JSON.parse(sessionStorage.getItem(STORAGE_KEYS.LAST_TOUCH_RECO) || 'null');
545
- const s = JSON.parse(sessionStorage.getItem(STORAGE_KEYS.LAST_TOUCH_SEARCH) || 'null');
546
- const aTs = a?.ts ? Number(a.ts) : 0;
547
- const rTs = r?.ts ? Number(r.ts) : 0;
548
- const sTs = s?.ts ? Number(s.ts) : 0;
549
- // Find the most recent touch
550
- const maxTs = Math.max(aTs, rTs, sTs);
551
- if (maxTs === 0)
552
- return {};
553
- if (sTs === maxTs) {
554
- return {
555
- source: 'search',
556
- searchProductId: s.productItemCode,
557
- searchQuery: s.query,
558
- };
559
- }
560
- if (rTs === maxTs) {
561
- return {
562
- source: 'recommendation',
563
- recommendationWidgetId: r.recommendationWidgetId,
564
- };
565
- }
566
- return {
567
- source: 'campaign',
568
- campaignId: a?.campaignId || undefined,
569
- widgetId: a?.widgetId || undefined,
570
- };
571
- }
572
- catch {
573
- return {};
574
- }
575
- })();
576
- // Get experiment assignments from localStorage for conversion tracking
577
- const experimentAssignments = (() => {
578
- try {
579
- const stored = localStorage.getItem(STORAGE_KEYS.EXPERIMENTS);
580
- if (stored) {
581
- const parsed = JSON.parse(stored);
582
- return parsed;
583
- }
584
- return {};
585
- }
586
- catch (e) {
587
- return {};
588
- }
589
- })();
590
- try {
591
- const response = await fetch(`${this.apiUrl}/public/sites/${this.siteKey}/orders`, {
592
- method: 'POST',
593
- headers: { 'Content-Type': 'application/json' },
594
- body: JSON.stringify({
595
- ...normalizedOrder,
596
- sessionId: this.sessionId,
597
- pageUrl: window.location.href,
598
- referrer: document.referrer || undefined,
599
- attribution: lastTouch,
600
- visitorId: normalizedOrder.visitorId || this.visitorId,
601
- siteUserId: normalizedOrder.siteUserId || this.siteUserId,
602
- experimentAssignments, // Include experiment data for revenue tracking
603
- }),
604
- keepalive: true,
605
- });
606
- // After successful order tracking, reset correlation for new attribution journey
607
- if (response.ok) {
608
- resetCorrelation();
609
- this.batcher?.resetCorrelation();
610
- }
611
- }
612
- catch (e) { }
613
- }
614
- // ================================
615
- // Internal methods
616
- // ================================
617
- scheduleFlush() {
618
- if (this.flushTimeout) {
619
- clearTimeout(this.flushTimeout);
620
- }
621
- this.flushTimeout = window.setTimeout(() => this.flush(), 1000);
622
- }
623
- async flush() {
624
- if (this.queue.length === 0)
625
- return;
626
- if (!this.siteKey) {
627
- // No siteKey; drop events to avoid poisoning shared endpoints
628
- this.queue = [];
629
- return;
630
- }
631
- const events = this.queue.splice(0).map((event) => ({
632
- ...event,
633
- eventSchemaVersion: event.eventSchemaVersion || 1,
634
- eventTs: event.eventTs || Date.now(),
635
- metadata: sanitizeTrackingMetadata(event.metadata),
636
- }));
637
- try {
638
- await fetch(`${this.apiUrl}/public/sites/${this.siteKey}/events/batch`, {
639
- method: 'POST',
640
- headers: { 'Content-Type': 'application/json' },
641
- body: JSON.stringify({
642
- sessionId: this.sessionId,
643
- visitorId: this.visitorId,
644
- journeyId: getOrCreateJourneyId(),
645
- siteUserId: this.siteUserId,
646
- pageUrl: window.location.href,
647
- referrer: document.referrer || undefined,
648
- events,
649
- }),
650
- keepalive: true,
651
- });
652
- }
653
- catch (error) {
654
- // Fail silently, re-queue for retry
655
- this.queue.push(...events);
656
- }
657
- }
658
- cleanup() {
659
- // Disconnect all IntersectionObservers
660
- this.viewObservers.forEach((observer) => observer.disconnect());
661
- this.viewObservers.clear();
662
- this.viewedElements.clear();
663
- this.hoverStartTimes.clear();
664
- // Clear flush timeout to prevent pending callbacks
665
- if (this.flushTimeout) {
666
- clearTimeout(this.flushTimeout);
667
- this.flushTimeout = null;
668
- }
669
- // Cleanup batcher
670
- if (this.batcher) {
671
- this.batcher.destroy();
672
- this.batcher = undefined;
673
- }
674
- }
675
- /**
676
- * Setup SPA navigation cleanup listener
677
- * Automatically cleans up observers when page navigation is detected
678
- * This prevents memory leaks in single-page applications
679
- */
680
- setupSPACleanup() {
681
- // Listen for navigation events common in SPAs
682
- const originalPushState = history.pushState;
683
- const originalReplaceState = history.replaceState;
684
- // Override pushState
685
- history.pushState = (...args) => {
686
- originalPushState.apply(history, args);
687
- this.scheduleDeferredCleanup();
688
- };
689
- // Override replaceState
690
- history.replaceState = (...args) => {
691
- originalReplaceState.apply(history, args);
692
- this.scheduleDeferredCleanup();
693
- };
694
- // Listen for popstate (back/forward navigation)
695
- window.addEventListener('popstate', () => {
696
- this.scheduleDeferredCleanup();
697
- });
698
- // Also listen for hash changes
699
- window.addEventListener('hashchange', () => {
700
- this.scheduleDeferredCleanup();
701
- });
702
- }
703
- /**
704
- * Schedule deferred cleanup with a small delay
705
- * This allows the new page to settle before cleaning up
706
- */
707
- scheduleDeferredCleanup() {
708
- setTimeout(() => {
709
- // Only cleanup if no new observers have been added recently
710
- if (this.viewObservers.size > 0 && this.queue.length === 0) {
711
- this.cleanup();
712
- }
713
- }, 1000); // 1 second delay
714
- }
715
- /**
716
- * Manually flush pending events (useful for testing or before page unload)
717
- */
718
- async flushBatcher() {
719
- if (this.batcher) {
720
- await this.batcher.flush();
721
- }
722
- else {
723
- await this.flush();
724
- }
725
- }
726
- /**
727
- * Get batcher stats (useful for debugging)
728
- */
729
- getBatcherStats() {
730
- return this.batcher
731
- ? {
732
- queueSize: this.batcher.getQueueSize(),
733
- consentQueueSize: this.batcher.getConsentQueueSize(),
734
- processedCount: this.batcher.getProcessedCount(),
735
- enabled: this.useAdvancedBatching,
736
- }
737
- : {
738
- queueSize: this.queue.length,
739
- consentQueueSize: 0,
740
- processedCount: 0,
741
- enabled: false,
742
- };
743
- }
744
- /**
745
- * Initialize the batcher (must be called after construction)
746
- * This loads overflow events from IndexedDB and flushes them immediately
747
- */
748
- async initialize() {
749
- if (this.batcher) {
750
- await this.batcher.initialize();
751
- }
752
- }
753
- /**
754
- * Check if the batcher has been initialized
755
- */
756
- isReady() {
757
- return this.batcher ? this.batcher.isReady() : true;
758
- }
759
- /**
760
- * Flush consent queue - called when user grants consent
761
- * Re-evaluates all queued events and sends those that now have consent
762
- */
763
- flushConsentQueue() {
764
- if (this.batcher) {
765
- this.batcher.flushConsentQueue();
766
- }
767
- }
768
- /**
769
- * Set up the global consent queue flush callback
770
- * This allows the cookie consent widget to trigger queue flush when consent is granted
771
- */
772
- setupConsentCallback() {
773
- if (typeof window !== 'undefined') {
774
- // Set up global Selwise object if it doesn't exist
775
- window.Selwise = window.Selwise || {};
776
- // Store reference to this tracker's flush method
777
- window.Selwise._flushConsentQueue = () => this.flushConsentQueue();
778
- // Also expose getConsentState method for external access
779
- window.Selwise.getConsentState = () => {
780
- try {
781
- if (!this.siteKey)
782
- return null;
783
- const key = `${STORAGE_KEYS.CONSENT}_${this.siteKey}`;
784
- const data = localStorage.getItem(key);
785
- return data ? JSON.parse(data) : null;
786
- }
787
- catch {
788
- return null;
789
- }
790
- };
791
- }
792
- }
793
- }
794
- //# sourceMappingURL=tracker.js.map