@selwise/widget 0.0.3 → 1.0.1

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