@picked/analytics 0.0.117-next.2 → 0.0.117

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 (399) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cjs/events/app_close.d.ts +4 -0
  3. package/dist/cjs/events/app_close.d.ts.map +1 -0
  4. package/dist/cjs/events/app_initialize.d.ts +4 -0
  5. package/dist/cjs/events/app_initialize.d.ts.map +1 -0
  6. package/dist/cjs/events/app_load.d.ts +4 -0
  7. package/dist/cjs/events/app_load.d.ts.map +1 -0
  8. package/dist/cjs/events/app_open.d.ts +4 -0
  9. package/dist/cjs/events/app_open.d.ts.map +1 -0
  10. package/dist/cjs/events/cart_add.d.ts +13 -0
  11. package/dist/cjs/events/cart_add.d.ts.map +1 -0
  12. package/dist/cjs/events/cart_remove.d.ts +13 -0
  13. package/dist/cjs/events/cart_remove.d.ts.map +1 -0
  14. package/dist/cjs/events/checkout_complete.d.ts +13 -0
  15. package/dist/cjs/events/checkout_complete.d.ts.map +1 -0
  16. package/dist/cjs/events/checkout_start.d.ts +13 -0
  17. package/dist/cjs/events/checkout_start.d.ts.map +1 -0
  18. package/dist/cjs/events/custom.d.ts +31 -0
  19. package/dist/cjs/events/custom.d.ts.map +1 -0
  20. package/dist/cjs/events/experience_load.d.ts +4 -0
  21. package/dist/cjs/events/experience_load.d.ts.map +1 -0
  22. package/dist/cjs/events/feature_decide.d.ts +4 -0
  23. package/dist/cjs/events/feature_decide.d.ts.map +1 -0
  24. package/dist/cjs/events/field_validation_error.d.ts +4 -0
  25. package/dist/cjs/events/field_validation_error.d.ts.map +1 -0
  26. package/dist/cjs/events/form_submit.d.ts +4 -0
  27. package/dist/cjs/events/form_submit.d.ts.map +1 -0
  28. package/dist/cjs/events/form_submit_error.d.ts +4 -0
  29. package/dist/cjs/events/form_submit_error.d.ts.map +1 -0
  30. package/dist/cjs/events/form_submit_success.d.ts +4 -0
  31. package/dist/cjs/events/form_submit_success.d.ts.map +1 -0
  32. package/dist/cjs/events/identify.d.ts +13 -0
  33. package/dist/cjs/events/identify.d.ts.map +1 -0
  34. package/dist/cjs/events/index.d.ts +38 -0
  35. package/dist/cjs/events/index.d.ts.map +1 -0
  36. package/dist/cjs/events/interaction/back.d.ts +7 -0
  37. package/dist/cjs/events/interaction/back.d.ts.map +1 -0
  38. package/dist/cjs/events/interaction/backspace.d.ts +7 -0
  39. package/dist/cjs/events/interaction/backspace.d.ts.map +1 -0
  40. package/dist/cjs/events/interaction/click.d.ts +7 -0
  41. package/dist/cjs/events/interaction/click.d.ts.map +1 -0
  42. package/dist/cjs/events/interaction/copy.d.ts +7 -0
  43. package/dist/cjs/events/interaction/copy.d.ts.map +1 -0
  44. package/dist/cjs/events/interaction/drag.d.ts +7 -0
  45. package/dist/cjs/events/interaction/drag.d.ts.map +1 -0
  46. package/dist/cjs/events/interaction/forward.d.ts +7 -0
  47. package/dist/cjs/events/interaction/forward.d.ts.map +1 -0
  48. package/dist/cjs/events/interaction/mouse_shake.d.ts +7 -0
  49. package/dist/cjs/events/interaction/mouse_shake.d.ts.map +1 -0
  50. package/dist/cjs/events/interaction/offline.d.ts +7 -0
  51. package/dist/cjs/events/interaction/offline.d.ts.map +1 -0
  52. package/dist/cjs/events/interaction/online.d.ts +7 -0
  53. package/dist/cjs/events/interaction/online.d.ts.map +1 -0
  54. package/dist/cjs/events/interaction/page_hidden.d.ts +7 -0
  55. package/dist/cjs/events/interaction/page_hidden.d.ts.map +1 -0
  56. package/dist/cjs/events/interaction/page_hide.d.ts +7 -0
  57. package/dist/cjs/events/interaction/page_hide.d.ts.map +1 -0
  58. package/dist/cjs/events/interaction/page_show.d.ts +7 -0
  59. package/dist/cjs/events/interaction/page_show.d.ts.map +1 -0
  60. package/dist/cjs/events/interaction/page_visible.d.ts +7 -0
  61. package/dist/cjs/events/interaction/page_visible.d.ts.map +1 -0
  62. package/dist/cjs/events/interaction/paste.d.ts +7 -0
  63. package/dist/cjs/events/interaction/paste.d.ts.map +1 -0
  64. package/dist/cjs/events/interaction/rapid_click.d.ts +7 -0
  65. package/dist/cjs/events/interaction/rapid_click.d.ts.map +1 -0
  66. package/dist/cjs/events/interaction/rapid_scroll.d.ts +7 -0
  67. package/dist/cjs/events/interaction/rapid_scroll.d.ts.map +1 -0
  68. package/dist/cjs/events/interaction/resize.d.ts +7 -0
  69. package/dist/cjs/events/interaction/resize.d.ts.map +1 -0
  70. package/dist/cjs/events/interaction/right_click.d.ts +7 -0
  71. package/dist/cjs/events/interaction/right_click.d.ts.map +1 -0
  72. package/dist/cjs/events/interaction/scroll.d.ts +7 -0
  73. package/dist/cjs/events/interaction/scroll.d.ts.map +1 -0
  74. package/dist/cjs/events/interaction/unload.d.ts +7 -0
  75. package/dist/cjs/events/interaction/unload.d.ts.map +1 -0
  76. package/dist/cjs/events/lead_capture.d.ts +4 -0
  77. package/dist/cjs/events/lead_capture.d.ts.map +1 -0
  78. package/dist/cjs/events/lead_created.d.ts +13 -0
  79. package/dist/cjs/events/lead_created.d.ts.map +1 -0
  80. package/dist/cjs/events/lead_updated.d.ts +13 -0
  81. package/dist/cjs/events/lead_updated.d.ts.map +1 -0
  82. package/dist/cjs/events/modal_close.d.ts +4 -0
  83. package/dist/cjs/events/modal_close.d.ts.map +1 -0
  84. package/dist/cjs/events/modal_open.d.ts +4 -0
  85. package/dist/cjs/events/modal_open.d.ts.map +1 -0
  86. package/dist/cjs/events/order_create.d.ts +13 -0
  87. package/dist/cjs/events/order_create.d.ts.map +1 -0
  88. package/dist/cjs/events/page_view.d.ts +13 -0
  89. package/dist/cjs/events/page_view.d.ts.map +1 -0
  90. package/dist/cjs/events/product_list_view.d.ts +13 -0
  91. package/dist/cjs/events/product_list_view.d.ts.map +1 -0
  92. package/dist/cjs/events/product_select.d.ts +4 -0
  93. package/dist/cjs/events/product_select.d.ts.map +1 -0
  94. package/dist/cjs/events/product_view_details.d.ts +13 -0
  95. package/dist/cjs/events/product_view_details.d.ts.map +1 -0
  96. package/dist/cjs/events/recommendation_present.d.ts +4 -0
  97. package/dist/cjs/events/recommendation_present.d.ts.map +1 -0
  98. package/dist/cjs/events/search_results_list_view.d.ts +4 -0
  99. package/dist/cjs/events/search_results_list_view.d.ts.map +1 -0
  100. package/dist/cjs/events/step_complete.d.ts +4 -0
  101. package/dist/cjs/events/step_complete.d.ts.map +1 -0
  102. package/dist/cjs/events/step_enter.d.ts +4 -0
  103. package/dist/cjs/events/step_enter.d.ts.map +1 -0
  104. package/dist/cjs/events/step_submit.d.ts +4 -0
  105. package/dist/cjs/events/step_submit.d.ts.map +1 -0
  106. package/dist/cjs/events/step_submit_error.d.ts +4 -0
  107. package/dist/cjs/events/step_submit_error.d.ts.map +1 -0
  108. package/dist/cjs/events/step_submit_success.d.ts +4 -0
  109. package/dist/cjs/events/step_submit_success.d.ts.map +1 -0
  110. package/dist/cjs/events/waitlist_join.d.ts +4 -0
  111. package/dist/cjs/events/waitlist_join.d.ts.map +1 -0
  112. package/dist/cjs/events/wishlist_add.d.ts +4 -0
  113. package/dist/cjs/events/wishlist_add.d.ts.map +1 -0
  114. package/dist/cjs/helpers/element.d.ts +31 -0
  115. package/dist/cjs/helpers/element.d.ts.map +1 -0
  116. package/dist/cjs/helpers/text.d.ts +2 -0
  117. package/dist/cjs/helpers/text.d.ts.map +1 -0
  118. package/dist/cjs/index.d.ts +6 -0
  119. package/dist/cjs/index.d.ts.map +1 -0
  120. package/dist/cjs/interaction-events.d.ts +22 -0
  121. package/dist/cjs/interaction-events.d.ts.map +1 -0
  122. package/dist/cjs/interactions/document.d.ts +46 -0
  123. package/dist/cjs/interactions/document.d.ts.map +1 -0
  124. package/dist/cjs/listeners/backspace.d.ts +3 -0
  125. package/dist/cjs/listeners/backspace.d.ts.map +1 -0
  126. package/dist/cjs/listeners/click.d.ts +3 -0
  127. package/dist/cjs/listeners/click.d.ts.map +1 -0
  128. package/dist/cjs/listeners/copy.d.ts +3 -0
  129. package/dist/cjs/listeners/copy.d.ts.map +1 -0
  130. package/dist/cjs/listeners/drag.d.ts +3 -0
  131. package/dist/cjs/listeners/drag.d.ts.map +1 -0
  132. package/dist/cjs/listeners/mouse_shake.d.ts +3 -0
  133. package/dist/cjs/listeners/mouse_shake.d.ts.map +1 -0
  134. package/dist/cjs/listeners/offline.d.ts +3 -0
  135. package/dist/cjs/listeners/offline.d.ts.map +1 -0
  136. package/dist/cjs/listeners/online.d.ts +3 -0
  137. package/dist/cjs/listeners/online.d.ts.map +1 -0
  138. package/dist/cjs/listeners/pagehide.d.ts +3 -0
  139. package/dist/cjs/listeners/pagehide.d.ts.map +1 -0
  140. package/dist/cjs/listeners/pageshow.d.ts +3 -0
  141. package/dist/cjs/listeners/pageshow.d.ts.map +1 -0
  142. package/dist/cjs/listeners/paste.d.ts +3 -0
  143. package/dist/cjs/listeners/paste.d.ts.map +1 -0
  144. package/dist/cjs/listeners/rapid_click.d.ts +3 -0
  145. package/dist/cjs/listeners/rapid_click.d.ts.map +1 -0
  146. package/dist/cjs/listeners/rapid_scroll.d.ts +3 -0
  147. package/dist/cjs/listeners/rapid_scroll.d.ts.map +1 -0
  148. package/dist/cjs/listeners/resize.d.ts +3 -0
  149. package/dist/cjs/listeners/resize.d.ts.map +1 -0
  150. package/dist/cjs/listeners/right_click.d.ts +3 -0
  151. package/dist/cjs/listeners/right_click.d.ts.map +1 -0
  152. package/dist/cjs/listeners/scroll.d.ts +3 -0
  153. package/dist/cjs/listeners/scroll.d.ts.map +1 -0
  154. package/dist/cjs/listeners/unload.d.ts +3 -0
  155. package/dist/cjs/listeners/unload.d.ts.map +1 -0
  156. package/dist/cjs/listeners/visibility.d.ts +3 -0
  157. package/dist/cjs/listeners/visibility.d.ts.map +1 -0
  158. package/dist/cjs/package.json +3 -0
  159. package/dist/cjs/plugins/analytics/index.d.ts +8 -0
  160. package/dist/cjs/plugins/analytics/index.d.ts.map +1 -0
  161. package/dist/cjs/plugins/analytics/plugin.d.ts +34 -0
  162. package/dist/cjs/plugins/analytics/plugin.d.ts.map +1 -0
  163. package/dist/cjs/schemas/answer_list/1-0-0.d.ts +64 -0
  164. package/dist/cjs/schemas/answer_list/1-0-0.d.ts.map +1 -0
  165. package/dist/cjs/schemas/answer_list/index.d.ts +68 -0
  166. package/dist/cjs/schemas/answer_list/index.d.ts.map +1 -0
  167. package/dist/cjs/schemas/app/1-0-0.d.ts +33 -0
  168. package/dist/cjs/schemas/app/1-0-0.d.ts.map +1 -0
  169. package/dist/cjs/schemas/app/1-1-0.d.ts +31 -0
  170. package/dist/cjs/schemas/app/1-1-0.d.ts.map +1 -0
  171. package/dist/cjs/schemas/app/index.d.ts +67 -0
  172. package/dist/cjs/schemas/app/index.d.ts.map +1 -0
  173. package/dist/cjs/schemas/cvly_funnel/1-0-0.d.ts +30 -0
  174. package/dist/cjs/schemas/cvly_funnel/1-0-0.d.ts.map +1 -0
  175. package/dist/cjs/schemas/cvly_funnel/index.d.ts +35 -0
  176. package/dist/cjs/schemas/cvly_funnel/index.d.ts.map +1 -0
  177. package/dist/cjs/schemas/cvly_x/1-0-0.d.ts +43 -0
  178. package/dist/cjs/schemas/cvly_x/1-0-0.d.ts.map +1 -0
  179. package/dist/cjs/schemas/cvly_x/1-0-1.d.ts +45 -0
  180. package/dist/cjs/schemas/cvly_x/1-0-1.d.ts.map +1 -0
  181. package/dist/cjs/schemas/cvly_x/index.d.ts +91 -0
  182. package/dist/cjs/schemas/cvly_x/index.d.ts.map +1 -0
  183. package/dist/cjs/schemas/deployment/1-0-0.d.ts +43 -0
  184. package/dist/cjs/schemas/deployment/1-0-0.d.ts.map +1 -0
  185. package/dist/cjs/schemas/deployment/1-0-1.d.ts +45 -0
  186. package/dist/cjs/schemas/deployment/1-0-1.d.ts.map +1 -0
  187. package/dist/cjs/schemas/deployment/index.d.ts +91 -0
  188. package/dist/cjs/schemas/deployment/index.d.ts.map +1 -0
  189. package/dist/cjs/schemas/element/1-0-0.d.ts +45 -0
  190. package/dist/cjs/schemas/element/1-0-0.d.ts.map +1 -0
  191. package/dist/cjs/schemas/element/index.d.ts +50 -0
  192. package/dist/cjs/schemas/element/index.d.ts.map +1 -0
  193. package/dist/cjs/schemas/event/1-0-0.d.ts +30 -0
  194. package/dist/cjs/schemas/event/1-0-0.d.ts.map +1 -0
  195. package/dist/cjs/schemas/event/index.d.ts +35 -0
  196. package/dist/cjs/schemas/event/index.d.ts.map +1 -0
  197. package/dist/cjs/schemas/exception/1-0-0.d.ts +30 -0
  198. package/dist/cjs/schemas/exception/1-0-0.d.ts.map +1 -0
  199. package/dist/cjs/schemas/exception/index.d.ts +35 -0
  200. package/dist/cjs/schemas/exception/index.d.ts.map +1 -0
  201. package/dist/cjs/schemas/experience/1-0-0.d.ts +38 -0
  202. package/dist/cjs/schemas/experience/1-0-0.d.ts.map +1 -0
  203. package/dist/cjs/schemas/experience/1-0-1.d.ts +38 -0
  204. package/dist/cjs/schemas/experience/1-0-1.d.ts.map +1 -0
  205. package/dist/cjs/schemas/experience/1-0-2.d.ts +46 -0
  206. package/dist/cjs/schemas/experience/1-0-2.d.ts.map +1 -0
  207. package/dist/cjs/schemas/experience/index.d.ts +123 -0
  208. package/dist/cjs/schemas/experience/index.d.ts.map +1 -0
  209. package/dist/cjs/schemas/feature_list/1-0-0.d.ts +60 -0
  210. package/dist/cjs/schemas/feature_list/1-0-0.d.ts.map +1 -0
  211. package/dist/cjs/schemas/feature_list/2-0-0.d.ts +61 -0
  212. package/dist/cjs/schemas/feature_list/2-0-0.d.ts.map +1 -0
  213. package/dist/cjs/schemas/feature_list/index.d.ts +124 -0
  214. package/dist/cjs/schemas/feature_list/index.d.ts.map +1 -0
  215. package/dist/cjs/schemas/field_list/1-0-0.d.ts +89 -0
  216. package/dist/cjs/schemas/field_list/1-0-0.d.ts.map +1 -0
  217. package/dist/cjs/schemas/field_list/index.d.ts +94 -0
  218. package/dist/cjs/schemas/field_list/index.d.ts.map +1 -0
  219. package/dist/cjs/schemas/form/1-0-0.d.ts +35 -0
  220. package/dist/cjs/schemas/form/1-0-0.d.ts.map +1 -0
  221. package/dist/cjs/schemas/form/index.d.ts +40 -0
  222. package/dist/cjs/schemas/form/index.d.ts.map +1 -0
  223. package/dist/cjs/schemas/index.d.ts +46 -0
  224. package/dist/cjs/schemas/index.d.ts.map +1 -0
  225. package/dist/cjs/schemas/modal/1-0-0.d.ts +35 -0
  226. package/dist/cjs/schemas/modal/1-0-0.d.ts.map +1 -0
  227. package/dist/cjs/schemas/modal/index.d.ts +40 -0
  228. package/dist/cjs/schemas/modal/index.d.ts.map +1 -0
  229. package/dist/cjs/schemas/order/1-0-0.d.ts +45 -0
  230. package/dist/cjs/schemas/order/1-0-0.d.ts.map +1 -0
  231. package/dist/cjs/schemas/order/index.d.ts +50 -0
  232. package/dist/cjs/schemas/order/index.d.ts.map +1 -0
  233. package/dist/cjs/schemas/picked/1-0-0.d.ts +30 -0
  234. package/dist/cjs/schemas/picked/1-0-0.d.ts.map +1 -0
  235. package/dist/cjs/schemas/picked/index.d.ts +35 -0
  236. package/dist/cjs/schemas/picked/index.d.ts.map +1 -0
  237. package/dist/cjs/schemas/product_list/1-0-0.d.ts +81 -0
  238. package/dist/cjs/schemas/product_list/1-0-0.d.ts.map +1 -0
  239. package/dist/cjs/schemas/product_list/2-0-0.d.ts +162 -0
  240. package/dist/cjs/schemas/product_list/2-0-0.d.ts.map +1 -0
  241. package/dist/cjs/schemas/product_list/2-0-1.d.ts +168 -0
  242. package/dist/cjs/schemas/product_list/2-0-1.d.ts.map +1 -0
  243. package/dist/cjs/schemas/product_list/index.d.ts +412 -0
  244. package/dist/cjs/schemas/product_list/index.d.ts.map +1 -0
  245. package/dist/cjs/schemas/question_list/1-0-0.d.ts +89 -0
  246. package/dist/cjs/schemas/question_list/1-0-0.d.ts.map +1 -0
  247. package/dist/cjs/schemas/question_list/index.d.ts +93 -0
  248. package/dist/cjs/schemas/question_list/index.d.ts.map +1 -0
  249. package/dist/cjs/schemas/recommendation_list/1-0-0.d.ts +57 -0
  250. package/dist/cjs/schemas/recommendation_list/1-0-0.d.ts.map +1 -0
  251. package/dist/cjs/schemas/recommendation_list/index.d.ts +61 -0
  252. package/dist/cjs/schemas/recommendation_list/index.d.ts.map +1 -0
  253. package/dist/cjs/schemas/response_list/1-0-0.d.ts +64 -0
  254. package/dist/cjs/schemas/response_list/1-0-0.d.ts.map +1 -0
  255. package/dist/cjs/schemas/response_list/index.d.ts +69 -0
  256. package/dist/cjs/schemas/response_list/index.d.ts.map +1 -0
  257. package/dist/cjs/schemas/session/1-0-0.d.ts +28 -0
  258. package/dist/cjs/schemas/session/1-0-0.d.ts.map +1 -0
  259. package/dist/cjs/schemas/session/1-0-1.d.ts +32 -0
  260. package/dist/cjs/schemas/session/1-0-1.d.ts.map +1 -0
  261. package/dist/cjs/schemas/session/1-0-2.d.ts +37 -0
  262. package/dist/cjs/schemas/session/1-0-2.d.ts.map +1 -0
  263. package/dist/cjs/schemas/session/1-0-3.d.ts +51 -0
  264. package/dist/cjs/schemas/session/1-0-3.d.ts.map +1 -0
  265. package/dist/cjs/schemas/session/1-0-4.d.ts +58 -0
  266. package/dist/cjs/schemas/session/1-0-4.d.ts.map +1 -0
  267. package/dist/cjs/schemas/session/2-0-0.d.ts +59 -0
  268. package/dist/cjs/schemas/session/2-0-0.d.ts.map +1 -0
  269. package/dist/cjs/schemas/session/index.d.ts +258 -0
  270. package/dist/cjs/schemas/session/index.d.ts.map +1 -0
  271. package/dist/cjs/schemas/step/1-0-0.d.ts +33 -0
  272. package/dist/cjs/schemas/step/1-0-0.d.ts.map +1 -0
  273. package/dist/cjs/schemas/step/1-0-1.d.ts +41 -0
  274. package/dist/cjs/schemas/step/1-0-1.d.ts.map +1 -0
  275. package/dist/cjs/schemas/step/index.d.ts +77 -0
  276. package/dist/cjs/schemas/step/index.d.ts.map +1 -0
  277. package/dist/cjs/schemas/workspace/1-0-0.d.ts +35 -0
  278. package/dist/cjs/schemas/workspace/1-0-0.d.ts.map +1 -0
  279. package/dist/cjs/schemas/workspace/index.d.ts +40 -0
  280. package/dist/cjs/schemas/workspace/index.d.ts.map +1 -0
  281. package/dist/cjs/snowplow-plugins/event-meta.d.ts +25 -0
  282. package/dist/cjs/snowplow-plugins/event-meta.d.ts.map +1 -0
  283. package/dist/cjs/snowplow-plugins/url-scrub.d.ts +84 -0
  284. package/dist/cjs/snowplow-plugins/url-scrub.d.ts.map +1 -0
  285. package/dist/cjs/tracker.d.ts +17 -0
  286. package/dist/cjs/tracker.d.ts.map +1 -0
  287. package/dist/cjs/types.d.ts +327 -0
  288. package/dist/cjs/types.d.ts.map +1 -0
  289. package/dist/cjs/user-interaction.d.ts +35 -0
  290. package/dist/cjs/user-interaction.d.ts.map +1 -0
  291. package/dist/cjs/utils.d.ts +268 -0
  292. package/dist/cjs/utils.d.ts.map +1 -0
  293. package/dist/types/events/app_close.d.ts +2 -2
  294. package/dist/types/events/app_initialize.d.ts +2 -2
  295. package/dist/types/events/app_load.d.ts +2 -2
  296. package/dist/types/events/app_open.d.ts +2 -2
  297. package/dist/types/events/cart_add.d.ts +3 -3
  298. package/dist/types/events/cart_remove.d.ts +3 -3
  299. package/dist/types/events/checkout_complete.d.ts +3 -3
  300. package/dist/types/events/checkout_start.d.ts +3 -3
  301. package/dist/types/events/custom.d.ts +2 -2
  302. package/dist/types/events/experience_load.d.ts +2 -2
  303. package/dist/types/events/feature_decide.d.ts +2 -2
  304. package/dist/types/events/field_validation_error.d.ts +2 -2
  305. package/dist/types/events/form_submit.d.ts +2 -2
  306. package/dist/types/events/form_submit_error.d.ts +2 -2
  307. package/dist/types/events/form_submit_success.d.ts +2 -2
  308. package/dist/types/events/identify.d.ts +3 -3
  309. package/dist/types/events/index.d.ts +36 -36
  310. package/dist/types/events/interaction/back.d.ts +2 -2
  311. package/dist/types/events/interaction/backspace.d.ts +2 -2
  312. package/dist/types/events/interaction/click.d.ts +2 -2
  313. package/dist/types/events/interaction/copy.d.ts +2 -2
  314. package/dist/types/events/interaction/drag.d.ts +2 -2
  315. package/dist/types/events/interaction/forward.d.ts +2 -2
  316. package/dist/types/events/interaction/mouse_shake.d.ts +2 -2
  317. package/dist/types/events/interaction/offline.d.ts +2 -2
  318. package/dist/types/events/interaction/online.d.ts +2 -2
  319. package/dist/types/events/interaction/page_hidden.d.ts +2 -2
  320. package/dist/types/events/interaction/page_hide.d.ts +2 -2
  321. package/dist/types/events/interaction/page_show.d.ts +2 -2
  322. package/dist/types/events/interaction/page_visible.d.ts +2 -2
  323. package/dist/types/events/interaction/paste.d.ts +2 -2
  324. package/dist/types/events/interaction/rapid_click.d.ts +2 -2
  325. package/dist/types/events/interaction/rapid_scroll.d.ts +2 -2
  326. package/dist/types/events/interaction/resize.d.ts +2 -2
  327. package/dist/types/events/interaction/right_click.d.ts +2 -2
  328. package/dist/types/events/interaction/scroll.d.ts +2 -2
  329. package/dist/types/events/interaction/unload.d.ts +2 -2
  330. package/dist/types/events/lead_capture.d.ts +2 -2
  331. package/dist/types/events/lead_created.d.ts +2 -2
  332. package/dist/types/events/lead_updated.d.ts +2 -2
  333. package/dist/types/events/modal_close.d.ts +2 -2
  334. package/dist/types/events/modal_open.d.ts +2 -2
  335. package/dist/types/events/order_create.d.ts +3 -3
  336. package/dist/types/events/page_view.d.ts +3 -3
  337. package/dist/types/events/product_list_view.d.ts +3 -3
  338. package/dist/types/events/product_select.d.ts +2 -2
  339. package/dist/types/events/product_view_details.d.ts +3 -3
  340. package/dist/types/events/recommendation_present.d.ts +2 -2
  341. package/dist/types/events/search_results_list_view.d.ts +2 -2
  342. package/dist/types/events/step_complete.d.ts +2 -2
  343. package/dist/types/events/step_enter.d.ts +2 -2
  344. package/dist/types/events/step_submit.d.ts +2 -2
  345. package/dist/types/events/step_submit_error.d.ts +2 -2
  346. package/dist/types/events/step_submit_success.d.ts +2 -2
  347. package/dist/types/events/waitlist_join.d.ts +2 -2
  348. package/dist/types/events/wishlist_add.d.ts +2 -2
  349. package/dist/types/index.d.ts +4 -4
  350. package/dist/types/interaction-events.d.ts +1 -1
  351. package/dist/types/interactions/document.d.ts +1 -1
  352. package/dist/types/listeners/backspace.d.ts +1 -1
  353. package/dist/types/listeners/click.d.ts +1 -1
  354. package/dist/types/listeners/copy.d.ts +1 -1
  355. package/dist/types/listeners/drag.d.ts +1 -1
  356. package/dist/types/listeners/mouse_shake.d.ts +1 -1
  357. package/dist/types/listeners/offline.d.ts +1 -1
  358. package/dist/types/listeners/online.d.ts +1 -1
  359. package/dist/types/listeners/pagehide.d.ts +1 -1
  360. package/dist/types/listeners/pageshow.d.ts +1 -1
  361. package/dist/types/listeners/paste.d.ts +1 -1
  362. package/dist/types/listeners/rapid_click.d.ts +1 -1
  363. package/dist/types/listeners/rapid_scroll.d.ts +1 -1
  364. package/dist/types/listeners/resize.d.ts +1 -1
  365. package/dist/types/listeners/right_click.d.ts +1 -1
  366. package/dist/types/listeners/scroll.d.ts +1 -1
  367. package/dist/types/listeners/unload.d.ts +1 -1
  368. package/dist/types/listeners/visibility.d.ts +1 -1
  369. package/dist/types/plugins/analytics/index.d.ts +3 -3
  370. package/dist/types/plugins/analytics/plugin.d.ts +2 -2
  371. package/dist/types/schemas/answer_list/index.d.ts +2 -2
  372. package/dist/types/schemas/app/index.d.ts +2 -2
  373. package/dist/types/schemas/cvly_funnel/index.d.ts +2 -2
  374. package/dist/types/schemas/cvly_x/index.d.ts +2 -2
  375. package/dist/types/schemas/deployment/index.d.ts +2 -2
  376. package/dist/types/schemas/element/index.d.ts +2 -2
  377. package/dist/types/schemas/event/index.d.ts +2 -2
  378. package/dist/types/schemas/exception/index.d.ts +2 -2
  379. package/dist/types/schemas/experience/index.d.ts +2 -2
  380. package/dist/types/schemas/feature_list/index.d.ts +2 -2
  381. package/dist/types/schemas/field_list/index.d.ts +2 -2
  382. package/dist/types/schemas/form/index.d.ts +2 -2
  383. package/dist/types/schemas/index.d.ts +44 -44
  384. package/dist/types/schemas/modal/index.d.ts +2 -2
  385. package/dist/types/schemas/order/index.d.ts +2 -2
  386. package/dist/types/schemas/picked/index.d.ts +2 -2
  387. package/dist/types/schemas/product_list/index.d.ts +2 -2
  388. package/dist/types/schemas/question_list/index.d.ts +2 -2
  389. package/dist/types/schemas/recommendation_list/index.d.ts +2 -2
  390. package/dist/types/schemas/response_list/index.d.ts +2 -2
  391. package/dist/types/schemas/session/index.d.ts +2 -2
  392. package/dist/types/schemas/step/index.d.ts +2 -2
  393. package/dist/types/schemas/workspace/index.d.ts +2 -2
  394. package/dist/types/snowplow-plugins/event-meta.d.ts +1 -1
  395. package/dist/types/tracker.d.ts +1 -1
  396. package/dist/types/types.d.ts +1 -1
  397. package/dist/types/user-interaction.d.ts +2 -2
  398. package/dist/types/utils.d.ts +2 -2
  399. package/package.json +28 -13
@@ -0,0 +1,327 @@
1
+ /** @file Analytics event types and interfaces for Snowplow tracking. */
2
+ import type { ActivityCallbackData, AnonymousTrackingOptions, CommonEventProperties, SelfDescribingEvent } from '@snowplow/browser-tracker';
3
+ import type { ExperienceStep, Field, FieldValue, Picked, ValidationError as FieldValidationError } from '@picked/client';
4
+ import type { AppSchema, AppUrl, CvlyFunnelSchema, CvlyFunnelUrl, CvlyXSchema, CvlyXUrl, DeploymentSchema, DeploymentUrl, ElementSchema, ElementUrl, EventSchema, EventUrl, ExceptionSchema, ExceptionUrl, ExperienceSchema, ExperienceUrl, FeatureListSchema, FeatureListUrl, FieldListSchema, FieldListUrl, FormSchema, FormUrl, ModalSchema, ModalUrl, OrderSchema, OrderUrl, PickedSchema, PickedUrl, ProductListSchema, ProductListUrl, ResponseListSchema, ResponseListUrl, SessionSchema, SessionUrl, StepSchema, StepUrl, WorkspaceSchema, WorkspaceUrl } from './schemas/index.js';
5
+ export type SnowplowSelfDescribingEvent = SelfDescribingEvent & CommonEventProperties;
6
+ export type SchemaUrl<Schema extends string, Version extends string> = `iglu:dev.pckd/${Schema}/jsonschema/${Version}`;
7
+ export interface Context<Url extends string, Schema extends Record<string, unknown>> {
8
+ schema: Url;
9
+ data: Schema;
10
+ }
11
+ type EventContext<T extends EventSchema> = Context<EventUrl, T>;
12
+ type TopLevelEvent<Type extends string> = EventContext<{
13
+ type: Type;
14
+ meta: EventSchema['meta'];
15
+ }>;
16
+ export type ContextItem = Context<string, Record<string, unknown>>;
17
+ export type ContextArray = ContextItem[];
18
+ /**
19
+ * Type representing an event with its required and conditional context.
20
+ *
21
+ * @template EventType - The event type.
22
+ * @template RequiredContext - The required context for the event.
23
+ * @template ConditionalContext - The conditional context for the event which should be supplied when available.
24
+ */
25
+ export interface SnowplowEventWithContext<EventType extends string, RequiredContext extends ContextArray, ConditionalContext extends ContextArray = []> {
26
+ event: TopLevelEvent<EventType>;
27
+ context: ConditionalContext extends ContextArray ? [...RequiredContext, ...Partial<ConditionalContext>[number][]] : RequiredContext;
28
+ }
29
+ export type AppContext = Context<AppUrl, AppSchema>;
30
+ export type CvlyFunnelContext = Context<CvlyFunnelUrl, CvlyFunnelSchema>;
31
+ export type CvlyXContext = Context<CvlyXUrl, CvlyXSchema>;
32
+ export type ElementContext = Context<ElementUrl, ElementSchema>;
33
+ export type ExceptionContext = Context<ExceptionUrl, ExceptionSchema>;
34
+ export type ExperienceContext = Context<ExperienceUrl, ExperienceSchema>;
35
+ export type FeatureListContext = Context<FeatureListUrl, FeatureListSchema>;
36
+ export type FieldListContext = Context<FieldListUrl, FieldListSchema>;
37
+ export type FormContext = Context<FormUrl, FormSchema>;
38
+ export type ModalContext = Context<ModalUrl, ModalSchema>;
39
+ export type OrderContext = Context<OrderUrl, OrderSchema>;
40
+ export type PickedContext = Context<PickedUrl, PickedSchema>;
41
+ export type ProductListContext = Context<ProductListUrl, ProductListSchema>;
42
+ export type ResponseListContext = Context<ResponseListUrl, ResponseListSchema>;
43
+ export type SessionContext = Context<SessionUrl, SessionSchema>;
44
+ export type StepContext = Context<StepUrl, StepSchema>;
45
+ export type WorkspaceContext = Context<WorkspaceUrl, WorkspaceSchema>;
46
+ export type DeploymentContext = Context<DeploymentUrl, DeploymentSchema>;
47
+ /** Flat key-value meta a tracker stamps into every Picked event it sends. */
48
+ export type EventMeta = Readonly<Record<string, string | number | boolean>>;
49
+ /**
50
+ * A tracker's event meta: fixed keys, or a function returning the keys, which the tracker
51
+ * calls when each event is sent.
52
+ */
53
+ export type EventMetaSource = EventMeta | (() => EventMeta);
54
+ export interface CreateTrackerOptions {
55
+ /**
56
+ * @deprecated The organization ID is no longer used by the analytics tracker. The
57
+ * field is accepted for backwards compatibility but the value is ignored.
58
+ */
59
+ organizationId?: string;
60
+ /**
61
+ * The project ID.
62
+ */
63
+ projectId?: string;
64
+ /**
65
+ * The application ID. Defaults to `'picked-analytics'`.
66
+ *
67
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracker-setup/initialization-options/
68
+ */
69
+ appId?: string;
70
+ /**
71
+ * The collector host. Defaults to `'evnts.pckd.dev'`, Picked's production
72
+ * collector. The host is resolved by the caller — `createTracker` reads no
73
+ * environment variables — so an embedder that must not reach production passes
74
+ * its own value.
75
+ *
76
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracker-setup/initialization-options/
77
+ */
78
+ collectorUrl?: string;
79
+ /**
80
+ * Path on `collectorUrl` that receives events, in place of Snowplow's
81
+ * `/com.snowplowanalytics.snowplow/tp2`. Set it when `collectorUrl` is the site's own
82
+ * origin fronting the collector through a reverse proxy, which re-attaches the canonical
83
+ * path upstream. Supplying a path also pins the transport to POST, since a GET would
84
+ * address the collector's `/i` endpoint, which the proxy does not carry.
85
+ *
86
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracker-setup/initialization-options/
87
+ */
88
+ collectorPath?: string;
89
+ /**
90
+ * Enable activity tracking page pings.
91
+ *
92
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/previous-versions/javascript-tracker-v3/tracking-events/#activity-tracking-page-pings
93
+ */
94
+ trackActivity?: boolean;
95
+ /**
96
+ * Callback for activity tracking.
97
+ *
98
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/previous-versions/javascript-tracker-v3/tracking-events/#enableactivitytrackingcallback
99
+ */
100
+ trackActivityCallback?: (data: ActivityCallbackData) => void;
101
+ /**
102
+ * Attach the page view ID to all events.
103
+ *
104
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/page-views/#webpage-page-view-id-context-entity
105
+ */
106
+ trackWebPage?: boolean;
107
+ /**
108
+ * Attach the session to all events.
109
+ *
110
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/session/
111
+ */
112
+ trackSessions?: boolean;
113
+ /**
114
+ * Attach the browser context to all events.
115
+ *
116
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/browsers/
117
+ */
118
+ trackBrowser?: boolean;
119
+ /**
120
+ * Enable the error tracking plugin.
121
+ *
122
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/errors/
123
+ */
124
+ trackErrors?: boolean;
125
+ /**
126
+ * Enable the core web vitals tracking plugin.
127
+ *
128
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/web-vitals/
129
+ */
130
+ trackVitals?: boolean;
131
+ /**
132
+ * Enable the navigation performance tracking plugin.
133
+ *
134
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/timings/
135
+ */
136
+ trackPerformance?: boolean;
137
+ /**
138
+ * Class-name allowlist for button click tracking. Setting it enables button click tracking.
139
+ *
140
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/button-click/#filter-function
141
+ */
142
+ trackButtonClickAllowList?: string[];
143
+ /**
144
+ * Filter function for button click tracking. Setting it enables button click tracking; the
145
+ * filter applies when `trackButtonClickAllowList` is absent.
146
+ *
147
+ * @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/button-click/#filter-function
148
+ */
149
+ trackButtonClickFilter?: (element: HTMLElement) => boolean;
150
+ /**
151
+ * Keys stamped into the `meta` of every Picked event this tracker sends, and set as the
152
+ * `meta` of its global `app` context so native Snowplow events carry them too. A key here
153
+ * wins over a per-event key of the same name. Other trackers on the page are unaffected.
154
+ *
155
+ * A function is called when each event is sent, for the event's `meta` and again for its
156
+ * `app` context, so a key such as `signed_in` follows state that changes without a page load.
157
+ *
158
+ * @example { surface: 'marketing', env: 'production', signed_in: false }
159
+ * @example () => ({ surface: 'dashboard', env: 'production', signed_in: isSignedIn() })
160
+ */
161
+ eventMeta?: EventMetaSource;
162
+ /**
163
+ * Snowplow's `anonymousTracking` tracker option, passed through unchanged. Absent,
164
+ * Snowplow's default (identified tracking) applies.
165
+ */
166
+ anonymousTracking?: AnonymousTrackingOptions;
167
+ /**
168
+ * Parameters related to the CVLY-X environment.
169
+ *
170
+ * @deprecated
171
+ */
172
+ cvlyX?: {
173
+ /**
174
+ * The Git commit SHA of the current deployment (GIT_COMMIT_SHA).
175
+ */
176
+ gitCommitSha?: string;
177
+ /**
178
+ * The Vercel deployment ID (VERCEL_DEPLOYMENT_ID).
179
+ */
180
+ vercelDeploymentId: string;
181
+ /**
182
+ * The Vercel environment in which the application is running (e.g., production, preview, development) (VERCEL_ENV).
183
+ */
184
+ vercelEnv: string;
185
+ /**
186
+ * The Vercel URL of the current deployment (VERCEL_URL).
187
+ */
188
+ vercelUrl: string;
189
+ };
190
+ /**
191
+ * Parameters related to the application deployment environment.
192
+ */
193
+ deployment: {
194
+ /**
195
+ * The deployment environment.
196
+ */
197
+ env: string;
198
+ /**
199
+ * The Git commit SHA of the current deployment.
200
+ */
201
+ sha?: string;
202
+ /**
203
+ * The deployment ID.
204
+ */
205
+ id?: string;
206
+ /**
207
+ * The host address for the deployment.
208
+ */
209
+ host?: string;
210
+ };
211
+ }
212
+ export interface AnalyticsExperience {
213
+ id: string;
214
+ title: string;
215
+ /** The stable experience key. */
216
+ key?: string;
217
+ }
218
+ export interface AnalyticsStep {
219
+ id: string;
220
+ title: string;
221
+ }
222
+ interface AnalyticsForm {
223
+ id: string;
224
+ title: string;
225
+ }
226
+ export interface AnalyticsQuestionOption {
227
+ id: string;
228
+ title: string;
229
+ value: string | number | Record<string, unknown> | boolean;
230
+ }
231
+ interface AnalyticsModal {
232
+ id: string;
233
+ title: string;
234
+ }
235
+ export interface AnalyticsQuestion {
236
+ id: string;
237
+ type: 'input' | 'multiple-choice' | 'text';
238
+ title: string;
239
+ options?: AnalyticsQuestionOption[];
240
+ }
241
+ export type AnalyticsField = Field;
242
+ export interface AnalyticsResponse {
243
+ fieldKey: string;
244
+ value: FieldValue | undefined;
245
+ }
246
+ export interface AnalyticsFeature {
247
+ feature: string;
248
+ name: string;
249
+ key: string;
250
+ bucket: boolean | string;
251
+ }
252
+ export type AnalyticsException = FieldValidationError | string;
253
+ export interface AnalyticsOrder {
254
+ id: string;
255
+ checkoutToken?: string;
256
+ customerId?: string;
257
+ cartToken?: string;
258
+ }
259
+ export interface AnalyticsProduct {
260
+ itemId?: string;
261
+ itemName?: string;
262
+ affiliation?: string;
263
+ coupon?: string;
264
+ currency?: string;
265
+ creativeName?: string;
266
+ creativeSlot?: string;
267
+ discount?: number | string;
268
+ index?: number | string;
269
+ itemBrand?: string;
270
+ itemCategory?: string;
271
+ itemCategory2?: string;
272
+ itemCategory3?: string;
273
+ itemCategory4?: string;
274
+ itemCategory5?: string;
275
+ itemListId?: string;
276
+ itemListName?: string;
277
+ itemVariant?: string;
278
+ locationId?: string;
279
+ price?: number | string;
280
+ promotionId?: string;
281
+ promotionName?: string;
282
+ quantity?: number | string;
283
+ inStock?: boolean;
284
+ }
285
+ export type AnalyticsProductList = AnalyticsProduct[] | {
286
+ title?: string;
287
+ items: AnalyticsProduct[];
288
+ };
289
+ export interface AnalyticsShopifySession {
290
+ clientId?: string;
291
+ customerId?: string;
292
+ checkoutToken?: string;
293
+ }
294
+ /** The workspace that served the project config. */
295
+ export interface AnalyticsWorkspace {
296
+ id?: string;
297
+ /** The published workspace version id; `null` when the workspace has no published version. */
298
+ versionId?: string | null;
299
+ status?: string;
300
+ }
301
+ export interface AnalyticsContext {
302
+ /** The Picked ID: the SDK's per-browser id of the visitor. */
303
+ pickedId?: string;
304
+ /** @deprecated Use `pickedId`. */
305
+ sessionId?: string;
306
+ isUser?: boolean;
307
+ projectId: string;
308
+ workspace?: AnalyticsWorkspace;
309
+ features?: AnalyticsFeature[];
310
+ experience?: AnalyticsExperience;
311
+ step?: ExperienceStep;
312
+ form?: AnalyticsForm;
313
+ fields?: AnalyticsField[];
314
+ responses?: AnalyticsResponse[];
315
+ modal?: AnalyticsModal;
316
+ productList?: AnalyticsProductList;
317
+ exception?: AnalyticsException;
318
+ shopifySession?: AnalyticsShopifySession;
319
+ order?: AnalyticsOrder;
320
+ identifiers?: Record<string, string>;
321
+ }
322
+ /** A capability `analyticsPlugin` sets up with the client and a reader of its analytics context. */
323
+ export interface AnalyticsPluginCapability {
324
+ setup: (client: Picked, readContext: () => AnalyticsContext) => void;
325
+ }
326
+ export {};
327
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,UAAU,EACV,MAAM,EACN,eAAe,IAAI,oBAAoB,EACxC,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EACV,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,OAAO,EACP,eAAe,EACf,YAAY,EACb,MAAM,WAAW,CAAA;AAElB,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG,qBAAqB,CAAA;AAErF,MAAM,MAAM,SAAS,CACnB,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,IACpB,iBAAiB,MAAM,eAAe,OAAO,EAAE,CAAA;AAEnD,MAAM,WAAW,OAAO,CAAC,GAAG,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjF,MAAM,EAAE,GAAG,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED,KAAK,YAAY,CAAC,CAAC,SAAS,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAE/D,KAAK,aAAa,CAAC,IAAI,SAAS,MAAM,IAAI,YAAY,CAAC;IACrD,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC1B,CAAC,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAClE,MAAM,MAAM,YAAY,GAAG,WAAW,EAAE,CAAA;AAExC;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB,CACvC,SAAS,SAAS,MAAM,EACxB,eAAe,SAAS,YAAY,EACpC,kBAAkB,SAAS,YAAY,GAAG,EAAE;IAE5C,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC/B,OAAO,EAAE,kBAAkB,SAAS,YAAY,GAC5C,CAAC,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAC9D,eAAe,CAAA;CACpB;AAGD,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AACnD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;AACxE,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AACzD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;AACrE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;AACxE,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;AAC3E,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;AACrE,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;AACtD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;AAC5D,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;AAG3E,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAA;AAC9E,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;AAC/D,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;AACtD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;AACrE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;AAExE,6EAA6E;AAC7E,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAA;AAE3E;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,CAAC,MAAM,SAAS,CAAC,CAAA;AAE3D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAE5D;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAA;IAEpC;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAA;IAE1D;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,eAAe,CAAA;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAA;IAE5C;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN;;WAEG;QACH,YAAY,CAAC,EAAE,MAAM,CAAA;QAErB;;WAEG;QACH,kBAAkB,EAAE,MAAM,CAAA;QAE1B;;WAEG;QACH,SAAS,EAAE,MAAM,CAAA;QAEjB;;WAEG;QACH,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IAED;;OAEG;IACH,UAAU,EAAE;QACV;;WAEG;QACH,GAAG,EAAE,MAAM,CAAA;QAEX;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAA;QAEZ;;WAEG;QACH,EAAE,CAAC,EAAE,MAAM,CAAA;QAEX;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;CAC3D;AAED,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,MAAM,CAAA;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAA;CACpC;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,CAAA;AAElC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;CACzB;AAED,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG,MAAM,CAAA;AAE9D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,oBAAoB,GAC5B,gBAAgB,EAAE,GAClB;IACE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B,CAAA;AAEL,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,mBAAmB,CAAA;IAChC,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAClC,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,cAAc,CAAC,EAAE,uBAAuB,CAAA;IACxC,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAED,oGAAoG;AACpG,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gBAAgB,KAAK,IAAI,CAAA;CACrE"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @file Wires Picked experience targets to opt-in DOM interaction listeners and
3
+ * window/document level listeners.
4
+ */
5
+ import { type InteractionEventName } from './interaction-events.js';
6
+ import type { AnalyticsContext } from './types.js';
7
+ /**
8
+ * Bind the listed DOM interaction listeners to the given target. Listeners not
9
+ * named in `enabledEvents` are not bound; the empty list is a no-op.
10
+ *
11
+ * @param {() => AnalyticsContext} createAnalyticsContext - Factory the bound
12
+ * listeners call to read the current analytics context at the moment an
13
+ * event fires.
14
+ * @param {EventTarget | null} target - Event target the listeners attach to
15
+ * (typically an experience shadow root). When `null`, no listeners are bound.
16
+ * @param {readonly InteractionEventName[]} enabledEvents - Names of interaction
17
+ * events to enable. Defaults to every known event for backwards compatibility
18
+ * with direct callers that pre-date the opt-in plugin option.
19
+ * @example
20
+ * bindUserInteractionListeners(createCtx, shadowRoot, ['click', 'scroll'])
21
+ */
22
+ export declare function bindUserInteractionListeners(createAnalyticsContext: () => AnalyticsContext, target: EventTarget | null, enabledEvents?: readonly InteractionEventName[]): void;
23
+ /**
24
+ * Bind window/document-level listeners (page visibility, online/offline, resize,
25
+ * unload, etc.). Caller decides when to invoke this; it is gated by the plugin's
26
+ * `enableDocumentListeners` option.
27
+ *
28
+ * @param {() => AnalyticsContext} createAnalyticsContext - Factory the
29
+ * listeners call to read the current analytics context at the moment an
30
+ * event fires.
31
+ * @example
32
+ * bindGlobalEventListeners(createCtx)
33
+ */
34
+ export declare function bindGlobalEventListeners(createAnalyticsContext: () => AnalyticsContext): void;
35
+ //# sourceMappingURL=user-interaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-interaction.d.ts","sourceRoot":"","sources":["../../src/user-interaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,sBAAsB,EAAE,MAAM,gBAAgB,EAC9C,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,aAAa,GAAE,SAAS,oBAAoB,EAA4B,QAMzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,sBAAsB,EAAE,MAAM,gBAAgB,QAQtF"}
@@ -0,0 +1,268 @@
1
+ import type { ExperienceInstance } from '@picked/client';
2
+ import type { AnalyticsContext, AnalyticsExperience, AppContext, Context, ContextArray, ExceptionContext, ExperienceContext, FeatureListContext, FieldListContext, FormContext, ModalContext, OrderContext, ProductListContext, ResponseListContext, SchemaUrl, SessionContext, SnowplowEventWithContext, SnowplowSelfDescribingEvent, StepContext, WorkspaceContext } from './types.js';
3
+ import type { EventSchema } from './schemas/index.js';
4
+ /**
5
+ * Builds the Iglu URI that identifies a Snowplow schema and version.
6
+ *
7
+ * @param {string} schema - Schema name, such as `event` or `response_list`.
8
+ * @param {string} version - Schema version in Iglu's dash form, such as `1-0-0`.
9
+ * @returns {SchemaUrl} The fully qualified Iglu schema URI.
10
+ * @example schemaUrl('event', '1-0-0') // 'iglu:dev.pckd/event/jsonschema/1-0-0'
11
+ */
12
+ export declare function schemaUrl<T extends string, U extends string>(schema: T, version: U): SchemaUrl<T, U>;
13
+ /**
14
+ * Records a debug message. The body is a stub until debug mode is wired up.
15
+ *
16
+ * @param {string} _message - The message to record.
17
+ * @param {...unknown} _data - Values to record alongside the message.
18
+ * @example log('tracked', event)
19
+ */
20
+ export declare function log(_message: string, ..._data: unknown[]): void;
21
+ /**
22
+ * Records a warning. The body is a stub until debug mode is wired up.
23
+ *
24
+ * @param {string} _message - The message to record.
25
+ * @param {...unknown} _data - Values to record alongside the message.
26
+ * @example warn('"form" is required for this event', event)
27
+ */
28
+ export declare function warn(_message: string, ..._data: unknown[]): void;
29
+ /**
30
+ * Records an error. The body is a stub until debug mode is wired up.
31
+ *
32
+ * @param {string} _message - The message to record.
33
+ * @param {...unknown} _data - Values to record alongside the message.
34
+ * @example error('tracker failed', reason)
35
+ */
36
+ export declare function error(_message: string, ..._data: unknown[]): void;
37
+ /**
38
+ * Assembles a self-describing Snowplow event from a type, its contexts and its meta.
39
+ * Contexts that resolved to `undefined` are dropped, so a caller can pass an optional
40
+ * context inline.
41
+ *
42
+ * @param {string} type - The event type carried in the event's `data`.
43
+ * @param {ContextArray} context - The contexts to attach, `undefined` entries included.
44
+ * @param {EventSchema['meta']} [meta] - Event meta; defaults to an empty object.
45
+ * @returns {SnowplowSelfDescribingEvent} The event ready to hand to the tracker.
46
+ * @example createEvent('step_submit', [createContext('step', '1-0-1', step)])
47
+ */
48
+ export declare function createEvent<E extends SnowplowEventWithContext<string, ContextArray, ContextArray>>(type: E['event']['data']['type'], context: E['context'], meta?: E['event']['data']['meta']): SnowplowSelfDescribingEvent;
49
+ /**
50
+ * Wraps context data in its Iglu schema envelope.
51
+ *
52
+ * @param {string} schema - Schema name for the context.
53
+ * @param {string} version - Schema version in Iglu's dash form.
54
+ * @param {Record<string, unknown>} data - The context payload.
55
+ * @returns {Context} The context with its `schema` and `data` members.
56
+ * @example createContext('app', '1-0-0', { project_id: 'proj1' })
57
+ */
58
+ export declare function createContext<S extends string, V extends string, D extends Record<string, unknown>>(schema: S, version: V, data: D): Context<SchemaUrl<S, V>, D>;
59
+ /**
60
+ * Builds a tracking function for one event type. The returned function formats its
61
+ * payload through `formatter` and hands the result to the Snowplow tracker.
62
+ *
63
+ * @param {string} eventName - The event type the returned function tracks.
64
+ * @param {(payload: never, meta?: EventSchema['meta']) => SnowplowSelfDescribingEvent} formatter - Formats a payload into a self-describing event.
65
+ * @returns {(payload: never, meta?: EventSchema['meta']) => void} A function that formats and tracks one event.
66
+ * @example const trackStepSubmit = createTrackEvent('step_submit', formatEvent)
67
+ */
68
+ export declare function createTrackEvent(eventName: string, formatter: (_: null, eventMeta?: EventSchema['meta']) => SnowplowSelfDescribingEvent): (eventMeta?: EventSchema['meta']) => void;
69
+ export declare function createTrackEvent<P>(eventName: string, formatter: (eventPayload: P, eventMeta?: EventSchema['meta']) => SnowplowSelfDescribingEvent): (eventPayload: P, eventMeta?: EventSchema['meta']) => void;
70
+ /**
71
+ * Builds a binder for one DOM event type. The returned function attaches the handler to
72
+ * a target at most once per type, and reads a fresh analytics context on every
73
+ * interaction.
74
+ *
75
+ * @param {string} type - The DOM event type to listen for.
76
+ * @param {(interaction: { analyticsContext: AnalyticsContext; event: Event }) => void} handler - Receives the event and the analytics context read at interaction time.
77
+ * @param {AddEventListenerOptions | boolean} [options] - Listener options; defaults to `{ passive: true }`.
78
+ * @returns {(target: EventTarget, createAnalyticsContext: () => AnalyticsContext) => void} A binder taking the target and a context factory.
79
+ * @example const bindClick = createBindListener('click', onClick)
80
+ */
81
+ export declare function createBindListener<T extends Event = Event>(type: string, handler: (interaction: {
82
+ analyticsContext: AnalyticsContext;
83
+ event: T;
84
+ }) => void, options?: AddEventListenerOptions | boolean): (target: EventTarget, createAnalyticsContext: () => AnalyticsContext) => void;
85
+ /**
86
+ * Builds a binder that attaches the handler to `document` at most once per event type.
87
+ * The binder is inert where there is no document.
88
+ *
89
+ * @param {string} type - The DOM event type to listen for.
90
+ * @param {(interaction: { analyticsContext: AnalyticsContext; event: Event }) => void} handler - Receives the event and the analytics context read at interaction time.
91
+ * @returns {(createAnalyticsContext: () => AnalyticsContext) => void} A binder taking a context factory.
92
+ * @example const bindVisibility = createDocumentBindListener('visibilitychange', onHide)
93
+ */
94
+ export declare function createDocumentBindListener<T extends Event = Event>(type: string, handler: (interaction: {
95
+ analyticsContext: AnalyticsContext;
96
+ event: T;
97
+ }) => void): (createAnalyticsContext: () => AnalyticsContext) => void;
98
+ /**
99
+ * Builds a binder that attaches the handler to `window` at most once per event type.
100
+ * The binder is inert where there is no window.
101
+ *
102
+ * @param {string} type - The DOM event type to listen for.
103
+ * @param {(interaction: { analyticsContext: AnalyticsContext; event: Event }) => void} handler - Receives the event and the analytics context read at interaction time.
104
+ * @returns {(createAnalyticsContext: () => AnalyticsContext) => void} A binder taking a context factory.
105
+ * @example const bindUnload = createWindowBindListener('beforeunload', onLeave)
106
+ */
107
+ export declare function createWindowBindListener<T extends Event = Event>(type: string, handler: (interaction: {
108
+ analyticsContext: AnalyticsContext;
109
+ event: T;
110
+ }) => void): (createAnalyticsContext: () => AnalyticsContext) => void;
111
+ /**
112
+ * Builds the Snowplow `feature_list` context from the features the session resolved.
113
+ * A context with no features carries an empty list.
114
+ *
115
+ * @param {AnalyticsContext} event - Analytics context carrying the resolved features.
116
+ * @returns {FeatureListContext['data']} The feature list context data.
117
+ * @example formatFeatureListContextData({ projectId: 'p', features: [] }) // { items: [] }
118
+ */
119
+ export declare function formatFeatureListContextData(event: AnalyticsContext): FeatureListContext['data'];
120
+ /**
121
+ * Builds the Snowplow `app` context. A missing project id is reported and replaced with
122
+ * an `unknown` placeholder, so the event still reaches the collector.
123
+ *
124
+ * @param {AnalyticsContext} event - Analytics context carrying the project id.
125
+ * @returns {AppContext['data']} The app context data.
126
+ * @example formatAppContextData({ projectId: 'proj1' }) // { project_id: 'proj1' }
127
+ */
128
+ export declare function formatAppContextData(event: AnalyticsContext): AppContext['data'];
129
+ /**
130
+ * Builds the Snowplow `workspace` context from the workspace that served the project config.
131
+ *
132
+ * @param {AnalyticsContext} event - Analytics context carrying the workspace.
133
+ * @returns {WorkspaceContext['data'] | undefined} The workspace context data, or `undefined` when the context carries no workspace.
134
+ * @example formatWorkspaceContextData({ projectId: 'p', workspace: { id: 'wsp_1', versionId: 'wspv_1', status: 'live' } }) // { id: 'wsp_1', version_id: 'wspv_1', status: 'live' }
135
+ */
136
+ export declare function formatWorkspaceContextData(event: AnalyticsContext): WorkspaceContext['data'] | undefined;
137
+ /**
138
+ * Builds the Snowplow `session` context, folding in the session identifiers, the Google
139
+ * Analytics client id read from the `_ga` cookie, and any Shopify session tokens.
140
+ *
141
+ * @param {AnalyticsContext} event - Analytics context carrying the session.
142
+ * @returns {SessionContext['data']} The session context data.
143
+ * @example formatSessionContextData({ projectId: 'p', pickedId: 'v1' }) // { id: 'v1' }
144
+ */
145
+ export declare function formatSessionContextData(event: AnalyticsContext): SessionContext['data'];
146
+ /**
147
+ * Builds the Snowplow `field_list` context from the fields on the current step. The
148
+ * context describes the fields themselves — their type, label and options — and carries
149
+ * no captured value.
150
+ *
151
+ * @param {AnalyticsContext} event - Analytics context carrying the fields.
152
+ * @returns {FieldListContext['data'] | undefined} The field list context data, or `undefined` when no fields are present.
153
+ * @example formatFieldListContextData({ projectId: 'p', fields }) // { items: [...] }
154
+ */
155
+ export declare function formatFieldListContextData(event: AnalyticsContext): FieldListContext['data'] | undefined;
156
+ /**
157
+ * Builds the Snowplow `response_list` context from the responses whose fields carry
158
+ * `policies.trackValue`. Every event that carries this context passes through here, so
159
+ * this is the single point at which a field's tracking policy is enforced. The context
160
+ * is omitted when no response survives the filter.
161
+ *
162
+ * @param {AnalyticsContext} event - Analytics context carrying the responses and the fields they belong to.
163
+ * @returns {ResponseListContext['data'] | undefined} The response list context data, or `undefined` when nothing is trackable.
164
+ * @example
165
+ * const fields = [{ key: 'colour', policies: { trackValue: true }, ... }]
166
+ * formatResponseListContextData({ projectId: 'p', fields, responses: [{ fieldKey: 'colour', value: 'blue' }] })
167
+ * // { items: [{ field_id: 'colour', values: [{ value: 'blue' }] }] }
168
+ */
169
+ export declare function formatResponseListContextData(event: AnalyticsContext): ResponseListContext['data'] | undefined;
170
+ /**
171
+ * Builds the Snowplow `step` context, emitting the stable `key` alongside the
172
+ * workspace-specific `id` so steps stay correlatable across workspaces.
173
+ *
174
+ * @param {AnalyticsContext} event - Analytics context carrying the current step.
175
+ * @param {boolean} [required] - When `true`, returns `unknown` placeholders instead of `undefined` if no step is present.
176
+ * @returns {StepContext['data'] | undefined} The step context data, or `undefined` when no step is present and not required.
177
+ * @example
178
+ * const step = { id: 'uuid', key: 'welcome', name: 'Welcome', fieldKeys: [] }
179
+ * formatStepContextData({ projectId: 'p', step }, true) // { id: 'uuid', title: 'Welcome', key: 'welcome' }
180
+ */
181
+ export declare function formatStepContextData(event: AnalyticsContext, required: true): StepContext['data'];
182
+ export declare function formatStepContextData(event: AnalyticsContext, required?: false): StepContext['data'] | undefined;
183
+ /**
184
+ * Builds the Snowplow `product_list` context, accepting either a bare item array or an
185
+ * object carrying a title alongside its items. When the list is absent and `required` is
186
+ * set, the absence is reported and an `unknown` placeholder is returned.
187
+ *
188
+ * @param {AnalyticsContext} event - Analytics context carrying the product list.
189
+ * @param {boolean} [required] - When `true`, returns a placeholder instead of `undefined`.
190
+ * @returns {ProductListContext['data'] | undefined} The product list context data, or `undefined` when absent and not required.
191
+ * @example formatProductListContextData({ projectId: 'p', productList: [] }, true)
192
+ */
193
+ export declare function formatProductListContextData(event: AnalyticsContext, required: true): ProductListContext['data'];
194
+ export declare function formatProductListContextData(event: AnalyticsContext, required?: false): ProductListContext['data'] | undefined;
195
+ /**
196
+ * Builds the Snowplow `order` context. When the order is absent and `required` is set,
197
+ * the absence is reported and an `unknown` placeholder is returned.
198
+ *
199
+ * @param {AnalyticsContext} event - Analytics context carrying the order.
200
+ * @param {boolean} [required] - When `true`, returns a placeholder instead of `undefined`.
201
+ * @returns {OrderContext['data'] | undefined} The order context data, or `undefined` when absent and not required.
202
+ * @example formatOrderContextData({ projectId: 'p', order: { id: 'o1' } })
203
+ */
204
+ export declare function formatOrderContextData(event: AnalyticsContext, required: true): OrderContext['data'];
205
+ export declare function formatOrderContextData(event: AnalyticsContext, required?: false): OrderContext['data'] | undefined;
206
+ /**
207
+ * Builds the Snowplow `experience` context, emitting the stable `key` alongside the id
208
+ * and title. When the experience is absent and
209
+ * `required` is set, the absence is reported and an `unknown` placeholder is returned.
210
+ *
211
+ * @param {AnalyticsContext} event - Analytics context carrying the experience.
212
+ * @param {boolean} [required] - When `true`, returns a placeholder instead of `undefined`.
213
+ * @returns {ExperienceContext['data'] | undefined} The experience context data, or `undefined` when absent and not required.
214
+ * @example formatExperienceContextData({ projectId: 'p', experience })
215
+ */
216
+ export declare function formatExperienceContextData(event: AnalyticsContext, required: true): ExperienceContext['data'];
217
+ export declare function formatExperienceContextData(event: AnalyticsContext, required?: false): ExperienceContext['data'] | undefined;
218
+ /**
219
+ * Reads the analytics view of an experience instance: its id, title and key.
220
+ *
221
+ * @param {Pick<ExperienceInstance, 'experienceId' | 'experienceName' | 'experienceKey'>} instance - The experience instance.
222
+ * @returns {AnalyticsExperience} The experience as the analytics context carries it.
223
+ * @example toAnalyticsExperience(instance) // { id: 'exp-1', title: 'Exp 1', key: 'exp-key' }
224
+ */
225
+ export declare const toAnalyticsExperience: (instance: Pick<ExperienceInstance, 'experienceId' | 'experienceName' | 'experienceKey'>) => AnalyticsExperience;
226
+ /**
227
+ * Builds the Snowplow `exception` context from either a bare reason string or a field
228
+ * validation error. When the exception is absent and `required` is set, the absence is
229
+ * reported and an `unknown` placeholder is returned.
230
+ *
231
+ * @param {AnalyticsContext} event - Analytics context carrying the exception.
232
+ * @param {boolean} [required] - When `true`, returns a placeholder instead of `undefined`.
233
+ * @returns {ExceptionContext['data'] | undefined} The exception context data, or `undefined` when absent and not required.
234
+ * @example formatExceptionContextData({ projectId: 'p', exception: 'timeout' })
235
+ */
236
+ export declare function formatExceptionContextData(event: AnalyticsContext, required: true): ExceptionContext['data'];
237
+ export declare function formatExceptionContextData(event: AnalyticsContext, required?: false): ExceptionContext['data'] | undefined;
238
+ /**
239
+ * Builds the Snowplow `form` context. A missing form is reported and replaced with an
240
+ * `unknown` placeholder, because every event carrying this context requires one.
241
+ *
242
+ * @param {AnalyticsContext} event - Analytics context carrying the form.
243
+ * @returns {FormContext['data']} The form context data.
244
+ * @example formatFormContextData({ projectId: 'p', form: { id: 'f1', title: 'Quote' } })
245
+ */
246
+ export declare function formatFormContextData(event: AnalyticsContext): FormContext['data'];
247
+ /**
248
+ * Builds the Snowplow `modal` context. A missing modal is reported and replaced with an
249
+ * `unknown` placeholder, because every event carrying this context requires one.
250
+ *
251
+ * @param {AnalyticsContext} event - Analytics context carrying the modal.
252
+ * @returns {ModalContext['data']} The modal context data.
253
+ * @example formatModalContextData({ projectId: 'p', modal: { id: 'm1', title: 'Offer' } })
254
+ */
255
+ export declare function formatModalContextData(event: AnalyticsContext): ModalContext['data'];
256
+ /**
257
+ * Creates a debounced version of the supplied function that will only invoke
258
+ * the original after `ms` milliseconds have elapsed since the last call.
259
+ *
260
+ * @template Fn
261
+ * @param {Fn} fn - The function to debounce.
262
+ * @param {number} ms - The debounce window in milliseconds.
263
+ * @returns {(...args: Parameters<Fn>) => void} A debounced wrapper around `fn`.
264
+ * @example
265
+ * const log = debounce((value: string) => console.log(value), 200)
266
+ */
267
+ export declare function debounce<Fn extends (...args: never[]) => unknown>(fn: Fn, ms?: number): (...args: Parameters<Fn>) => void;
268
+ //# sourceMappingURL=utils.d.ts.map