@shopify/hydrogen-react 2026.4.1 → 2026.4.2

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 (595) hide show
  1. package/dist/browser-dev/AddToCartButton.mjs +60 -71
  2. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  3. package/dist/browser-dev/BaseButton.mjs +20 -26
  4. package/dist/browser-dev/BaseButton.mjs.map +1 -1
  5. package/dist/browser-dev/BuyNowButton.mjs +40 -45
  6. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  7. package/dist/browser-dev/CartCheckoutButton.mjs +28 -23
  8. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  9. package/dist/browser-dev/CartCost.mjs +26 -22
  10. package/dist/browser-dev/CartCost.mjs.map +1 -1
  11. package/dist/browser-dev/CartLineProvider.mjs +23 -18
  12. package/dist/browser-dev/CartLineProvider.mjs.map +1 -1
  13. package/dist/browser-dev/CartLineQuantity.mjs +18 -9
  14. package/dist/browser-dev/CartLineQuantity.mjs.map +1 -1
  15. package/dist/browser-dev/CartLineQuantityAdjustButton.mjs +48 -45
  16. package/dist/browser-dev/CartLineQuantityAdjustButton.mjs.map +1 -1
  17. package/dist/browser-dev/CartProvider.mjs +315 -385
  18. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  19. package/dist/browser-dev/ExternalVideo.mjs +35 -47
  20. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  21. package/dist/browser-dev/Image.mjs +335 -340
  22. package/dist/browser-dev/Image.mjs.map +1 -1
  23. package/dist/browser-dev/MediaFile.mjs +39 -61
  24. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  25. package/dist/browser-dev/ModelViewer.mjs +115 -139
  26. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  27. package/dist/browser-dev/Money.mjs +53 -39
  28. package/dist/browser-dev/Money.mjs.map +1 -1
  29. package/dist/browser-dev/ProductPrice.mjs +44 -61
  30. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  31. package/dist/browser-dev/ProductProvider.mjs +147 -179
  32. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  33. package/dist/browser-dev/RichText.components.mjs +36 -46
  34. package/dist/browser-dev/RichText.components.mjs.map +1 -1
  35. package/dist/browser-dev/RichText.mjs +111 -154
  36. package/dist/browser-dev/RichText.mjs.map +1 -1
  37. package/dist/browser-dev/ShopPayButton.mjs +53 -81
  38. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  39. package/dist/browser-dev/ShopifyProvider.mjs +71 -84
  40. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  41. package/dist/browser-dev/Video.mjs +35 -52
  42. package/dist/browser-dev/Video.mjs.map +1 -1
  43. package/dist/browser-dev/analytics-constants.mjs +41 -43
  44. package/dist/browser-dev/analytics-constants.mjs.map +1 -1
  45. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +127 -214
  46. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  47. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +39 -50
  48. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  49. package/dist/browser-dev/analytics-utils.mjs +78 -56
  50. package/dist/browser-dev/analytics-utils.mjs.map +1 -1
  51. package/dist/browser-dev/analytics.mjs +112 -155
  52. package/dist/browser-dev/analytics.mjs.map +1 -1
  53. package/dist/browser-dev/cart-constants.mjs +11 -15
  54. package/dist/browser-dev/cart-constants.mjs.map +1 -1
  55. package/dist/browser-dev/cart-hooks.mjs +42 -57
  56. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  57. package/dist/browser-dev/cart-queries.mjs +28 -66
  58. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  59. package/dist/browser-dev/codegen.helpers.mjs +31 -20
  60. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  61. package/dist/browser-dev/cookies-utils.mjs +44 -42
  62. package/dist/browser-dev/cookies-utils.mjs.map +1 -1
  63. package/dist/browser-dev/flatten-connection.mjs +23 -29
  64. package/dist/browser-dev/flatten-connection.mjs.map +1 -1
  65. package/dist/browser-dev/getProductOptions.mjs +248 -226
  66. package/dist/browser-dev/getProductOptions.mjs.map +1 -1
  67. package/dist/browser-dev/index.mjs +15 -70
  68. package/dist/browser-dev/load-script.mjs +38 -49
  69. package/dist/browser-dev/load-script.mjs.map +1 -1
  70. package/dist/browser-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs +175 -123
  71. package/dist/browser-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  72. package/dist/browser-dev/optionValueDecoder.mjs +104 -86
  73. package/dist/browser-dev/optionValueDecoder.mjs.map +1 -1
  74. package/dist/browser-dev/packages/hydrogen-react/package.mjs +6 -0
  75. package/dist/browser-dev/packages/hydrogen-react/package.mjs.map +1 -0
  76. package/dist/browser-dev/parse-metafield.mjs +122 -134
  77. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  78. package/dist/browser-dev/storefront-api-constants.mjs +6 -5
  79. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  80. package/dist/browser-dev/storefront-client.mjs +62 -102
  81. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  82. package/dist/browser-dev/tracking-utils.mjs +68 -88
  83. package/dist/browser-dev/tracking-utils.mjs.map +1 -1
  84. package/dist/browser-dev/useCartAPIStateMachine.mjs +188 -346
  85. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  86. package/dist/browser-dev/useCartActions.mjs +197 -172
  87. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  88. package/dist/browser-dev/useMachine.mjs +50 -62
  89. package/dist/browser-dev/useMachine.mjs.map +1 -1
  90. package/dist/browser-dev/useMoney.mjs +176 -154
  91. package/dist/browser-dev/useMoney.mjs.map +1 -1
  92. package/dist/browser-dev/useSelectedOptionInUrlParam.mjs +17 -27
  93. package/dist/browser-dev/useSelectedOptionInUrlParam.mjs.map +1 -1
  94. package/dist/browser-dev/useShopifyCookies.mjs +123 -138
  95. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -1
  96. package/dist/browser-prod/AddToCartButton.mjs +60 -71
  97. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  98. package/dist/browser-prod/BaseButton.mjs +20 -26
  99. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  100. package/dist/browser-prod/BuyNowButton.mjs +40 -45
  101. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  102. package/dist/browser-prod/CartCheckoutButton.mjs +28 -23
  103. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  104. package/dist/browser-prod/CartCost.mjs +26 -22
  105. package/dist/browser-prod/CartCost.mjs.map +1 -1
  106. package/dist/browser-prod/CartLineProvider.mjs +23 -18
  107. package/dist/browser-prod/CartLineProvider.mjs.map +1 -1
  108. package/dist/browser-prod/CartLineQuantity.mjs +18 -9
  109. package/dist/browser-prod/CartLineQuantity.mjs.map +1 -1
  110. package/dist/browser-prod/CartLineQuantityAdjustButton.mjs +48 -45
  111. package/dist/browser-prod/CartLineQuantityAdjustButton.mjs.map +1 -1
  112. package/dist/browser-prod/CartProvider.mjs +315 -385
  113. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  114. package/dist/browser-prod/ExternalVideo.mjs +35 -47
  115. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  116. package/dist/browser-prod/Image.mjs +326 -325
  117. package/dist/browser-prod/Image.mjs.map +1 -1
  118. package/dist/browser-prod/MediaFile.mjs +44 -63
  119. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  120. package/dist/browser-prod/ModelViewer.mjs +117 -135
  121. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  122. package/dist/browser-prod/Money.mjs +53 -39
  123. package/dist/browser-prod/Money.mjs.map +1 -1
  124. package/dist/browser-prod/ProductPrice.mjs +44 -61
  125. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  126. package/dist/browser-prod/ProductProvider.mjs +147 -179
  127. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  128. package/dist/browser-prod/RichText.components.mjs +36 -46
  129. package/dist/browser-prod/RichText.components.mjs.map +1 -1
  130. package/dist/browser-prod/RichText.mjs +111 -154
  131. package/dist/browser-prod/RichText.mjs.map +1 -1
  132. package/dist/browser-prod/ShopPayButton.mjs +53 -81
  133. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  134. package/dist/browser-prod/ShopifyProvider.mjs +71 -84
  135. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  136. package/dist/browser-prod/Video.mjs +35 -52
  137. package/dist/browser-prod/Video.mjs.map +1 -1
  138. package/dist/browser-prod/analytics-constants.mjs +41 -43
  139. package/dist/browser-prod/analytics-constants.mjs.map +1 -1
  140. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +127 -214
  141. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  142. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +39 -50
  143. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  144. package/dist/browser-prod/analytics-utils.mjs +78 -56
  145. package/dist/browser-prod/analytics-utils.mjs.map +1 -1
  146. package/dist/browser-prod/analytics.mjs +111 -153
  147. package/dist/browser-prod/analytics.mjs.map +1 -1
  148. package/dist/browser-prod/cart-constants.mjs +11 -15
  149. package/dist/browser-prod/cart-constants.mjs.map +1 -1
  150. package/dist/browser-prod/cart-hooks.mjs +42 -57
  151. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  152. package/dist/browser-prod/cart-queries.mjs +28 -66
  153. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  154. package/dist/browser-prod/codegen.helpers.mjs +31 -20
  155. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  156. package/dist/browser-prod/cookies-utils.mjs +44 -42
  157. package/dist/browser-prod/cookies-utils.mjs.map +1 -1
  158. package/dist/browser-prod/flatten-connection.mjs +23 -25
  159. package/dist/browser-prod/flatten-connection.mjs.map +1 -1
  160. package/dist/browser-prod/getProductOptions.mjs +248 -226
  161. package/dist/browser-prod/getProductOptions.mjs.map +1 -1
  162. package/dist/browser-prod/index.mjs +15 -70
  163. package/dist/browser-prod/load-script.mjs +38 -49
  164. package/dist/browser-prod/load-script.mjs.map +1 -1
  165. package/dist/browser-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs +175 -123
  166. package/dist/browser-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  167. package/dist/browser-prod/optionValueDecoder.mjs +104 -86
  168. package/dist/browser-prod/optionValueDecoder.mjs.map +1 -1
  169. package/dist/browser-prod/packages/hydrogen-react/package.mjs +6 -0
  170. package/dist/browser-prod/packages/hydrogen-react/package.mjs.map +1 -0
  171. package/dist/browser-prod/parse-metafield.mjs +134 -146
  172. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  173. package/dist/browser-prod/storefront-api-constants.mjs +6 -5
  174. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  175. package/dist/browser-prod/storefront-client.mjs +56 -84
  176. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  177. package/dist/browser-prod/tracking-utils.mjs +68 -88
  178. package/dist/browser-prod/tracking-utils.mjs.map +1 -1
  179. package/dist/browser-prod/useCartAPIStateMachine.mjs +188 -346
  180. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  181. package/dist/browser-prod/useCartActions.mjs +197 -172
  182. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  183. package/dist/browser-prod/useMachine.mjs +50 -62
  184. package/dist/browser-prod/useMachine.mjs.map +1 -1
  185. package/dist/browser-prod/useMoney.mjs +176 -154
  186. package/dist/browser-prod/useMoney.mjs.map +1 -1
  187. package/dist/browser-prod/useSelectedOptionInUrlParam.mjs +17 -27
  188. package/dist/browser-prod/useSelectedOptionInUrlParam.mjs.map +1 -1
  189. package/dist/browser-prod/useShopifyCookies.mjs +123 -138
  190. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -1
  191. package/dist/node-dev/AddToCartButton.js +64 -73
  192. package/dist/node-dev/AddToCartButton.js.map +1 -1
  193. package/dist/node-dev/AddToCartButton.mjs +60 -71
  194. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  195. package/dist/node-dev/BaseButton.js +21 -26
  196. package/dist/node-dev/BaseButton.js.map +1 -1
  197. package/dist/node-dev/BaseButton.mjs +20 -26
  198. package/dist/node-dev/BaseButton.mjs.map +1 -1
  199. package/dist/node-dev/BuyNowButton.js +42 -46
  200. package/dist/node-dev/BuyNowButton.js.map +1 -1
  201. package/dist/node-dev/BuyNowButton.mjs +40 -45
  202. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  203. package/dist/node-dev/CartCheckoutButton.js +30 -24
  204. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  205. package/dist/node-dev/CartCheckoutButton.mjs +28 -23
  206. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  207. package/dist/node-dev/CartCost.js +27 -22
  208. package/dist/node-dev/CartCost.js.map +1 -1
  209. package/dist/node-dev/CartCost.mjs +26 -22
  210. package/dist/node-dev/CartCost.mjs.map +1 -1
  211. package/dist/node-dev/CartLineProvider.js +24 -17
  212. package/dist/node-dev/CartLineProvider.js.map +1 -1
  213. package/dist/node-dev/CartLineProvider.mjs +23 -18
  214. package/dist/node-dev/CartLineProvider.mjs.map +1 -1
  215. package/dist/node-dev/CartLineQuantity.js +19 -9
  216. package/dist/node-dev/CartLineQuantity.js.map +1 -1
  217. package/dist/node-dev/CartLineQuantity.mjs +18 -9
  218. package/dist/node-dev/CartLineQuantity.mjs.map +1 -1
  219. package/dist/node-dev/CartLineQuantityAdjustButton.js +50 -46
  220. package/dist/node-dev/CartLineQuantityAdjustButton.js.map +1 -1
  221. package/dist/node-dev/CartLineQuantityAdjustButton.mjs +48 -45
  222. package/dist/node-dev/CartLineQuantityAdjustButton.mjs.map +1 -1
  223. package/dist/node-dev/CartProvider.js +317 -385
  224. package/dist/node-dev/CartProvider.js.map +1 -1
  225. package/dist/node-dev/CartProvider.mjs +315 -385
  226. package/dist/node-dev/CartProvider.mjs.map +1 -1
  227. package/dist/node-dev/ExternalVideo.js +36 -47
  228. package/dist/node-dev/ExternalVideo.js.map +1 -1
  229. package/dist/node-dev/ExternalVideo.mjs +35 -47
  230. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  231. package/dist/node-dev/Image.js +337 -355
  232. package/dist/node-dev/Image.js.map +1 -1
  233. package/dist/node-dev/Image.mjs +335 -340
  234. package/dist/node-dev/Image.mjs.map +1 -1
  235. package/dist/node-dev/MediaFile.js +42 -63
  236. package/dist/node-dev/MediaFile.js.map +1 -1
  237. package/dist/node-dev/MediaFile.mjs +39 -61
  238. package/dist/node-dev/MediaFile.mjs.map +1 -1
  239. package/dist/node-dev/ModelViewer.js +116 -139
  240. package/dist/node-dev/ModelViewer.js.map +1 -1
  241. package/dist/node-dev/ModelViewer.mjs +115 -139
  242. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  243. package/dist/node-dev/Money.js +54 -39
  244. package/dist/node-dev/Money.js.map +1 -1
  245. package/dist/node-dev/Money.mjs +53 -39
  246. package/dist/node-dev/Money.mjs.map +1 -1
  247. package/dist/node-dev/ProductPrice.js +45 -61
  248. package/dist/node-dev/ProductPrice.js.map +1 -1
  249. package/dist/node-dev/ProductPrice.mjs +44 -61
  250. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  251. package/dist/node-dev/ProductProvider.js +148 -178
  252. package/dist/node-dev/ProductProvider.js.map +1 -1
  253. package/dist/node-dev/ProductProvider.mjs +147 -179
  254. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  255. package/dist/node-dev/RichText.components.js +37 -46
  256. package/dist/node-dev/RichText.components.js.map +1 -1
  257. package/dist/node-dev/RichText.components.mjs +36 -46
  258. package/dist/node-dev/RichText.components.mjs.map +1 -1
  259. package/dist/node-dev/RichText.js +112 -154
  260. package/dist/node-dev/RichText.js.map +1 -1
  261. package/dist/node-dev/RichText.mjs +111 -154
  262. package/dist/node-dev/RichText.mjs.map +1 -1
  263. package/dist/node-dev/ShopPayButton.js +54 -81
  264. package/dist/node-dev/ShopPayButton.js.map +1 -1
  265. package/dist/node-dev/ShopPayButton.mjs +53 -81
  266. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  267. package/dist/node-dev/ShopifyProvider.js +73 -83
  268. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  269. package/dist/node-dev/ShopifyProvider.mjs +71 -84
  270. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  271. package/dist/node-dev/Video.js +36 -52
  272. package/dist/node-dev/Video.js.map +1 -1
  273. package/dist/node-dev/Video.mjs +35 -52
  274. package/dist/node-dev/Video.mjs.map +1 -1
  275. package/dist/node-dev/_virtual/_rolldown/runtime.js +23 -0
  276. package/dist/node-dev/analytics-constants.js +40 -39
  277. package/dist/node-dev/analytics-constants.js.map +1 -1
  278. package/dist/node-dev/analytics-constants.mjs +41 -43
  279. package/dist/node-dev/analytics-constants.mjs.map +1 -1
  280. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +128 -210
  281. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  282. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +127 -214
  283. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  284. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +40 -51
  285. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  286. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +39 -50
  287. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  288. package/dist/node-dev/analytics-utils.js +77 -52
  289. package/dist/node-dev/analytics-utils.js.map +1 -1
  290. package/dist/node-dev/analytics-utils.mjs +78 -56
  291. package/dist/node-dev/analytics-utils.mjs.map +1 -1
  292. package/dist/node-dev/analytics.js +114 -156
  293. package/dist/node-dev/analytics.js.map +1 -1
  294. package/dist/node-dev/analytics.mjs +112 -155
  295. package/dist/node-dev/analytics.mjs.map +1 -1
  296. package/dist/node-dev/cart-constants.js +10 -9
  297. package/dist/node-dev/cart-constants.js.map +1 -1
  298. package/dist/node-dev/cart-constants.mjs +11 -15
  299. package/dist/node-dev/cart-constants.mjs.map +1 -1
  300. package/dist/node-dev/cart-hooks.js +43 -57
  301. package/dist/node-dev/cart-hooks.js.map +1 -1
  302. package/dist/node-dev/cart-hooks.mjs +42 -57
  303. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  304. package/dist/node-dev/cart-queries.js +27 -56
  305. package/dist/node-dev/cart-queries.js.map +1 -1
  306. package/dist/node-dev/cart-queries.mjs +28 -66
  307. package/dist/node-dev/cart-queries.mjs.map +1 -1
  308. package/dist/node-dev/codegen.helpers.js +30 -18
  309. package/dist/node-dev/codegen.helpers.js.map +1 -1
  310. package/dist/node-dev/codegen.helpers.mjs +31 -20
  311. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  312. package/dist/node-dev/cookies-utils.js +45 -42
  313. package/dist/node-dev/cookies-utils.js.map +1 -1
  314. package/dist/node-dev/cookies-utils.mjs +44 -42
  315. package/dist/node-dev/cookies-utils.mjs.map +1 -1
  316. package/dist/node-dev/flatten-connection.js +22 -28
  317. package/dist/node-dev/flatten-connection.js.map +1 -1
  318. package/dist/node-dev/flatten-connection.mjs +23 -29
  319. package/dist/node-dev/flatten-connection.mjs.map +1 -1
  320. package/dist/node-dev/getProductOptions.js +248 -224
  321. package/dist/node-dev/getProductOptions.js.map +1 -1
  322. package/dist/node-dev/getProductOptions.mjs +248 -226
  323. package/dist/node-dev/getProductOptions.mjs.map +1 -1
  324. package/dist/node-dev/index.js +88 -90
  325. package/dist/node-dev/index.mjs +15 -70
  326. package/dist/node-dev/load-script.js +38 -48
  327. package/dist/node-dev/load-script.js.map +1 -1
  328. package/dist/node-dev/load-script.mjs +38 -49
  329. package/dist/node-dev/load-script.mjs.map +1 -1
  330. package/dist/node-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js +185 -124
  331. package/dist/node-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js.map +1 -1
  332. package/dist/node-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs +175 -123
  333. package/dist/node-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  334. package/dist/node-dev/optionValueDecoder.js +103 -84
  335. package/dist/node-dev/optionValueDecoder.js.map +1 -1
  336. package/dist/node-dev/optionValueDecoder.mjs +104 -86
  337. package/dist/node-dev/optionValueDecoder.mjs.map +1 -1
  338. package/dist/node-dev/packages/hydrogen-react/package.js +6 -0
  339. package/dist/node-dev/packages/hydrogen-react/package.js.map +1 -0
  340. package/dist/node-dev/packages/hydrogen-react/package.mjs +6 -0
  341. package/dist/node-dev/packages/hydrogen-react/package.mjs.map +1 -0
  342. package/dist/node-dev/parse-metafield.js +122 -134
  343. package/dist/node-dev/parse-metafield.js.map +1 -1
  344. package/dist/node-dev/parse-metafield.mjs +122 -134
  345. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  346. package/dist/node-dev/storefront-api-constants.js +5 -4
  347. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  348. package/dist/node-dev/storefront-api-constants.mjs +6 -5
  349. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  350. package/dist/node-dev/storefront-client.js +62 -101
  351. package/dist/node-dev/storefront-client.js.map +1 -1
  352. package/dist/node-dev/storefront-client.mjs +62 -102
  353. package/dist/node-dev/storefront-client.mjs.map +1 -1
  354. package/dist/node-dev/tracking-utils.js +67 -85
  355. package/dist/node-dev/tracking-utils.js.map +1 -1
  356. package/dist/node-dev/tracking-utils.mjs +68 -88
  357. package/dist/node-dev/tracking-utils.mjs.map +1 -1
  358. package/dist/node-dev/useCartAPIStateMachine.js +192 -349
  359. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  360. package/dist/node-dev/useCartAPIStateMachine.mjs +188 -346
  361. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  362. package/dist/node-dev/useCartActions.js +198 -172
  363. package/dist/node-dev/useCartActions.js.map +1 -1
  364. package/dist/node-dev/useCartActions.mjs +197 -172
  365. package/dist/node-dev/useCartActions.mjs.map +1 -1
  366. package/dist/node-dev/useMachine.js +50 -61
  367. package/dist/node-dev/useMachine.js.map +1 -1
  368. package/dist/node-dev/useMachine.mjs +50 -62
  369. package/dist/node-dev/useMachine.mjs.map +1 -1
  370. package/dist/node-dev/useMoney.js +177 -154
  371. package/dist/node-dev/useMoney.js.map +1 -1
  372. package/dist/node-dev/useMoney.mjs +176 -154
  373. package/dist/node-dev/useMoney.mjs.map +1 -1
  374. package/dist/node-dev/useSelectedOptionInUrlParam.js +18 -27
  375. package/dist/node-dev/useSelectedOptionInUrlParam.js.map +1 -1
  376. package/dist/node-dev/useSelectedOptionInUrlParam.mjs +17 -27
  377. package/dist/node-dev/useSelectedOptionInUrlParam.mjs.map +1 -1
  378. package/dist/node-dev/useShopifyCookies.js +124 -138
  379. package/dist/node-dev/useShopifyCookies.js.map +1 -1
  380. package/dist/node-dev/useShopifyCookies.mjs +123 -138
  381. package/dist/node-dev/useShopifyCookies.mjs.map +1 -1
  382. package/dist/node-prod/AddToCartButton.js +64 -73
  383. package/dist/node-prod/AddToCartButton.js.map +1 -1
  384. package/dist/node-prod/AddToCartButton.mjs +60 -71
  385. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  386. package/dist/node-prod/BaseButton.js +21 -26
  387. package/dist/node-prod/BaseButton.js.map +1 -1
  388. package/dist/node-prod/BaseButton.mjs +20 -26
  389. package/dist/node-prod/BaseButton.mjs.map +1 -1
  390. package/dist/node-prod/BuyNowButton.js +42 -46
  391. package/dist/node-prod/BuyNowButton.js.map +1 -1
  392. package/dist/node-prod/BuyNowButton.mjs +40 -45
  393. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  394. package/dist/node-prod/CartCheckoutButton.js +30 -24
  395. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  396. package/dist/node-prod/CartCheckoutButton.mjs +28 -23
  397. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  398. package/dist/node-prod/CartCost.js +27 -22
  399. package/dist/node-prod/CartCost.js.map +1 -1
  400. package/dist/node-prod/CartCost.mjs +26 -22
  401. package/dist/node-prod/CartCost.mjs.map +1 -1
  402. package/dist/node-prod/CartLineProvider.js +24 -17
  403. package/dist/node-prod/CartLineProvider.js.map +1 -1
  404. package/dist/node-prod/CartLineProvider.mjs +23 -18
  405. package/dist/node-prod/CartLineProvider.mjs.map +1 -1
  406. package/dist/node-prod/CartLineQuantity.js +19 -9
  407. package/dist/node-prod/CartLineQuantity.js.map +1 -1
  408. package/dist/node-prod/CartLineQuantity.mjs +18 -9
  409. package/dist/node-prod/CartLineQuantity.mjs.map +1 -1
  410. package/dist/node-prod/CartLineQuantityAdjustButton.js +50 -46
  411. package/dist/node-prod/CartLineQuantityAdjustButton.js.map +1 -1
  412. package/dist/node-prod/CartLineQuantityAdjustButton.mjs +48 -45
  413. package/dist/node-prod/CartLineQuantityAdjustButton.mjs.map +1 -1
  414. package/dist/node-prod/CartProvider.js +317 -385
  415. package/dist/node-prod/CartProvider.js.map +1 -1
  416. package/dist/node-prod/CartProvider.mjs +315 -385
  417. package/dist/node-prod/CartProvider.mjs.map +1 -1
  418. package/dist/node-prod/ExternalVideo.js +36 -47
  419. package/dist/node-prod/ExternalVideo.js.map +1 -1
  420. package/dist/node-prod/ExternalVideo.mjs +35 -47
  421. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  422. package/dist/node-prod/Image.js +328 -340
  423. package/dist/node-prod/Image.js.map +1 -1
  424. package/dist/node-prod/Image.mjs +326 -325
  425. package/dist/node-prod/Image.mjs.map +1 -1
  426. package/dist/node-prod/MediaFile.js +47 -65
  427. package/dist/node-prod/MediaFile.js.map +1 -1
  428. package/dist/node-prod/MediaFile.mjs +44 -63
  429. package/dist/node-prod/MediaFile.mjs.map +1 -1
  430. package/dist/node-prod/ModelViewer.js +118 -135
  431. package/dist/node-prod/ModelViewer.js.map +1 -1
  432. package/dist/node-prod/ModelViewer.mjs +117 -135
  433. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  434. package/dist/node-prod/Money.js +54 -39
  435. package/dist/node-prod/Money.js.map +1 -1
  436. package/dist/node-prod/Money.mjs +53 -39
  437. package/dist/node-prod/Money.mjs.map +1 -1
  438. package/dist/node-prod/ProductPrice.js +45 -61
  439. package/dist/node-prod/ProductPrice.js.map +1 -1
  440. package/dist/node-prod/ProductPrice.mjs +44 -61
  441. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  442. package/dist/node-prod/ProductProvider.js +148 -178
  443. package/dist/node-prod/ProductProvider.js.map +1 -1
  444. package/dist/node-prod/ProductProvider.mjs +147 -179
  445. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  446. package/dist/node-prod/RichText.components.js +37 -46
  447. package/dist/node-prod/RichText.components.js.map +1 -1
  448. package/dist/node-prod/RichText.components.mjs +36 -46
  449. package/dist/node-prod/RichText.components.mjs.map +1 -1
  450. package/dist/node-prod/RichText.js +112 -154
  451. package/dist/node-prod/RichText.js.map +1 -1
  452. package/dist/node-prod/RichText.mjs +111 -154
  453. package/dist/node-prod/RichText.mjs.map +1 -1
  454. package/dist/node-prod/ShopPayButton.js +54 -81
  455. package/dist/node-prod/ShopPayButton.js.map +1 -1
  456. package/dist/node-prod/ShopPayButton.mjs +53 -81
  457. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  458. package/dist/node-prod/ShopifyProvider.js +73 -83
  459. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  460. package/dist/node-prod/ShopifyProvider.mjs +71 -84
  461. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  462. package/dist/node-prod/Video.js +36 -52
  463. package/dist/node-prod/Video.js.map +1 -1
  464. package/dist/node-prod/Video.mjs +35 -52
  465. package/dist/node-prod/Video.mjs.map +1 -1
  466. package/dist/node-prod/_virtual/_rolldown/runtime.js +23 -0
  467. package/dist/node-prod/analytics-constants.js +40 -39
  468. package/dist/node-prod/analytics-constants.js.map +1 -1
  469. package/dist/node-prod/analytics-constants.mjs +41 -43
  470. package/dist/node-prod/analytics-constants.mjs.map +1 -1
  471. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +128 -210
  472. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  473. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +127 -214
  474. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  475. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +40 -51
  476. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  477. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +39 -50
  478. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  479. package/dist/node-prod/analytics-utils.js +77 -52
  480. package/dist/node-prod/analytics-utils.js.map +1 -1
  481. package/dist/node-prod/analytics-utils.mjs +78 -56
  482. package/dist/node-prod/analytics-utils.mjs.map +1 -1
  483. package/dist/node-prod/analytics.js +113 -154
  484. package/dist/node-prod/analytics.js.map +1 -1
  485. package/dist/node-prod/analytics.mjs +111 -153
  486. package/dist/node-prod/analytics.mjs.map +1 -1
  487. package/dist/node-prod/cart-constants.js +10 -9
  488. package/dist/node-prod/cart-constants.js.map +1 -1
  489. package/dist/node-prod/cart-constants.mjs +11 -15
  490. package/dist/node-prod/cart-constants.mjs.map +1 -1
  491. package/dist/node-prod/cart-hooks.js +43 -57
  492. package/dist/node-prod/cart-hooks.js.map +1 -1
  493. package/dist/node-prod/cart-hooks.mjs +42 -57
  494. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  495. package/dist/node-prod/cart-queries.js +27 -56
  496. package/dist/node-prod/cart-queries.js.map +1 -1
  497. package/dist/node-prod/cart-queries.mjs +28 -66
  498. package/dist/node-prod/cart-queries.mjs.map +1 -1
  499. package/dist/node-prod/codegen.helpers.js +30 -18
  500. package/dist/node-prod/codegen.helpers.js.map +1 -1
  501. package/dist/node-prod/codegen.helpers.mjs +31 -20
  502. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  503. package/dist/node-prod/cookies-utils.js +45 -42
  504. package/dist/node-prod/cookies-utils.js.map +1 -1
  505. package/dist/node-prod/cookies-utils.mjs +44 -42
  506. package/dist/node-prod/cookies-utils.mjs.map +1 -1
  507. package/dist/node-prod/flatten-connection.js +22 -24
  508. package/dist/node-prod/flatten-connection.js.map +1 -1
  509. package/dist/node-prod/flatten-connection.mjs +23 -25
  510. package/dist/node-prod/flatten-connection.mjs.map +1 -1
  511. package/dist/node-prod/getProductOptions.js +248 -224
  512. package/dist/node-prod/getProductOptions.js.map +1 -1
  513. package/dist/node-prod/getProductOptions.mjs +248 -226
  514. package/dist/node-prod/getProductOptions.mjs.map +1 -1
  515. package/dist/node-prod/index.js +88 -90
  516. package/dist/node-prod/index.mjs +15 -70
  517. package/dist/node-prod/load-script.js +38 -48
  518. package/dist/node-prod/load-script.js.map +1 -1
  519. package/dist/node-prod/load-script.mjs +38 -49
  520. package/dist/node-prod/load-script.mjs.map +1 -1
  521. package/dist/node-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js +185 -124
  522. package/dist/node-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js.map +1 -1
  523. package/dist/node-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs +175 -123
  524. package/dist/node-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  525. package/dist/node-prod/optionValueDecoder.js +103 -84
  526. package/dist/node-prod/optionValueDecoder.js.map +1 -1
  527. package/dist/node-prod/optionValueDecoder.mjs +104 -86
  528. package/dist/node-prod/optionValueDecoder.mjs.map +1 -1
  529. package/dist/node-prod/packages/hydrogen-react/package.js +6 -0
  530. package/dist/node-prod/packages/hydrogen-react/package.js.map +1 -0
  531. package/dist/node-prod/packages/hydrogen-react/package.mjs +6 -0
  532. package/dist/node-prod/packages/hydrogen-react/package.mjs.map +1 -0
  533. package/dist/node-prod/parse-metafield.js +134 -146
  534. package/dist/node-prod/parse-metafield.js.map +1 -1
  535. package/dist/node-prod/parse-metafield.mjs +134 -146
  536. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  537. package/dist/node-prod/storefront-api-constants.js +5 -4
  538. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  539. package/dist/node-prod/storefront-api-constants.mjs +6 -5
  540. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  541. package/dist/node-prod/storefront-client.js +56 -83
  542. package/dist/node-prod/storefront-client.js.map +1 -1
  543. package/dist/node-prod/storefront-client.mjs +56 -84
  544. package/dist/node-prod/storefront-client.mjs.map +1 -1
  545. package/dist/node-prod/tracking-utils.js +67 -85
  546. package/dist/node-prod/tracking-utils.js.map +1 -1
  547. package/dist/node-prod/tracking-utils.mjs +68 -88
  548. package/dist/node-prod/tracking-utils.mjs.map +1 -1
  549. package/dist/node-prod/useCartAPIStateMachine.js +192 -349
  550. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  551. package/dist/node-prod/useCartAPIStateMachine.mjs +188 -346
  552. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  553. package/dist/node-prod/useCartActions.js +198 -172
  554. package/dist/node-prod/useCartActions.js.map +1 -1
  555. package/dist/node-prod/useCartActions.mjs +197 -172
  556. package/dist/node-prod/useCartActions.mjs.map +1 -1
  557. package/dist/node-prod/useMachine.js +50 -61
  558. package/dist/node-prod/useMachine.js.map +1 -1
  559. package/dist/node-prod/useMachine.mjs +50 -62
  560. package/dist/node-prod/useMachine.mjs.map +1 -1
  561. package/dist/node-prod/useMoney.js +177 -154
  562. package/dist/node-prod/useMoney.js.map +1 -1
  563. package/dist/node-prod/useMoney.mjs +176 -154
  564. package/dist/node-prod/useMoney.mjs.map +1 -1
  565. package/dist/node-prod/useSelectedOptionInUrlParam.js +18 -27
  566. package/dist/node-prod/useSelectedOptionInUrlParam.js.map +1 -1
  567. package/dist/node-prod/useSelectedOptionInUrlParam.mjs +17 -27
  568. package/dist/node-prod/useSelectedOptionInUrlParam.mjs.map +1 -1
  569. package/dist/node-prod/useShopifyCookies.js +124 -138
  570. package/dist/node-prod/useShopifyCookies.js.map +1 -1
  571. package/dist/node-prod/useShopifyCookies.mjs +123 -138
  572. package/dist/node-prod/useShopifyCookies.mjs.map +1 -1
  573. package/dist/umd/hydrogen-react.dev.js +3930 -4418
  574. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  575. package/dist/umd/hydrogen-react.prod.js +35 -49
  576. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  577. package/package.json +5 -5
  578. package/dist/browser-dev/index.mjs.map +0 -1
  579. package/dist/browser-dev/packages/hydrogen-react/package.json.mjs +0 -5
  580. package/dist/browser-dev/packages/hydrogen-react/package.json.mjs.map +0 -1
  581. package/dist/browser-prod/index.mjs.map +0 -1
  582. package/dist/browser-prod/packages/hydrogen-react/package.json.mjs +0 -5
  583. package/dist/browser-prod/packages/hydrogen-react/package.json.mjs.map +0 -1
  584. package/dist/node-dev/index.js.map +0 -1
  585. package/dist/node-dev/index.mjs.map +0 -1
  586. package/dist/node-dev/packages/hydrogen-react/package.json.js +0 -5
  587. package/dist/node-dev/packages/hydrogen-react/package.json.js.map +0 -1
  588. package/dist/node-dev/packages/hydrogen-react/package.json.mjs +0 -5
  589. package/dist/node-dev/packages/hydrogen-react/package.json.mjs.map +0 -1
  590. package/dist/node-prod/index.js.map +0 -1
  591. package/dist/node-prod/index.mjs.map +0 -1
  592. package/dist/node-prod/packages/hydrogen-react/package.json.js +0 -5
  593. package/dist/node-prod/packages/hydrogen-react/package.json.js.map +0 -1
  594. package/dist/node-prod/packages/hydrogen-react/package.json.mjs +0 -5
  595. package/dist/node-prod/packages/hydrogen-react/package.json.mjs.map +0 -1
@@ -1,172 +1,130 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const analyticsConstants = require("./analytics-constants.js");
4
- const analyticsUtils = require("./analytics-utils.js");
5
- const analyticsSchemaTrekkieStorefrontPageView = require("./analytics-schema-trekkie-storefront-page-view.js");
6
- const analyticsSchemaCustomStorefrontCustomerTracking = require("./analytics-schema-custom-storefront-customer-tracking.js");
7
- const trackingUtils = require("./tracking-utils.js");
1
+ const require_tracking_utils = require("./tracking-utils.js");
2
+ const require_analytics_constants = require("./analytics-constants.js");
3
+ const require_analytics_utils = require("./analytics-utils.js");
4
+ const require_analytics_schema_trekkie_storefront_page_view = require("./analytics-schema-trekkie-storefront-page-view.js");
5
+ const require_analytics_schema_custom_storefront_customer_tracking = require("./analytics-schema-custom-storefront-customer-tracking.js");
6
+ //#region src/analytics.ts
7
+ /**
8
+ * Set user and session cookies and refresh the expiry time. If `event.payload.hasUserConsent` is false, no analytics event will happen.
9
+ * @param event - The analytics event.
10
+ * @param shopDomain - The Online Store domain to sent Shopify analytics under the same
11
+ * top level domain.
12
+ * @publicDocs
13
+ */
8
14
  function sendShopifyAnalytics(event, shopDomain) {
9
- const { eventName, payload } = event;
10
- if (!payload.hasUserConsent) return Promise.resolve();
11
- let events = [];
12
- const pageViewPayload = payload;
13
- if (eventName === analyticsConstants.AnalyticsEventName.PAGE_VIEW) {
14
- events = events.concat(
15
- analyticsSchemaTrekkieStorefrontPageView.pageView(pageViewPayload),
16
- analyticsSchemaCustomStorefrontCustomerTracking.pageView(pageViewPayload)
17
- );
18
- } else if (eventName === analyticsConstants.AnalyticsEventName.ADD_TO_CART) {
19
- events = events.concat(
20
- analyticsSchemaCustomStorefrontCustomerTracking.addToCart(payload)
21
- );
22
- } else if (eventName === analyticsConstants.AnalyticsEventName.PAGE_VIEW_2) {
23
- events = events.concat(
24
- analyticsSchemaTrekkieStorefrontPageView.pageView(pageViewPayload),
25
- analyticsSchemaCustomStorefrontCustomerTracking.pageView2(pageViewPayload)
26
- );
27
- } else if (eventName === analyticsConstants.AnalyticsEventName.COLLECTION_VIEW) {
28
- events = events.concat(analyticsSchemaCustomStorefrontCustomerTracking.collectionView(pageViewPayload));
29
- } else if (eventName === analyticsConstants.AnalyticsEventName.PRODUCT_VIEW) {
30
- events = events.concat(analyticsSchemaCustomStorefrontCustomerTracking.productView(pageViewPayload));
31
- } else if (eventName === analyticsConstants.AnalyticsEventName.SEARCH_VIEW) {
32
- events = events.concat(analyticsSchemaCustomStorefrontCustomerTracking.searchView(pageViewPayload));
33
- }
34
- if (events.length) {
35
- return sendToShopify(events, shopDomain);
36
- } else {
37
- return Promise.resolve();
38
- }
15
+ const { eventName, payload } = event;
16
+ if (!payload.hasUserConsent) return Promise.resolve();
17
+ let events = [];
18
+ const pageViewPayload = payload;
19
+ if (eventName === require_analytics_constants.AnalyticsEventName.PAGE_VIEW) events = events.concat(require_analytics_schema_trekkie_storefront_page_view.pageView(pageViewPayload), require_analytics_schema_custom_storefront_customer_tracking.pageView(pageViewPayload));
20
+ else if (eventName === require_analytics_constants.AnalyticsEventName.ADD_TO_CART) events = events.concat(require_analytics_schema_custom_storefront_customer_tracking.addToCart(payload));
21
+ else if (eventName === require_analytics_constants.AnalyticsEventName.PAGE_VIEW_2) events = events.concat(require_analytics_schema_trekkie_storefront_page_view.pageView(pageViewPayload), require_analytics_schema_custom_storefront_customer_tracking.pageView2(pageViewPayload));
22
+ else if (eventName === require_analytics_constants.AnalyticsEventName.COLLECTION_VIEW) events = events.concat(require_analytics_schema_custom_storefront_customer_tracking.collectionView(pageViewPayload));
23
+ else if (eventName === require_analytics_constants.AnalyticsEventName.PRODUCT_VIEW) events = events.concat(require_analytics_schema_custom_storefront_customer_tracking.productView(pageViewPayload));
24
+ else if (eventName === require_analytics_constants.AnalyticsEventName.SEARCH_VIEW) events = events.concat(require_analytics_schema_custom_storefront_customer_tracking.searchView(pageViewPayload));
25
+ if (events.length) return sendToShopify(events, shopDomain);
26
+ else return Promise.resolve();
39
27
  }
40
28
  function isLighthouseUserAgent() {
41
- if (typeof window === "undefined" || !window.navigator) return false;
42
- return /Chrome-Lighthouse/.test(window.navigator.userAgent);
29
+ if (typeof window === "undefined" || !window.navigator) return false;
30
+ return /Chrome-Lighthouse/.test(window.navigator.userAgent);
43
31
  }
44
- const ERROR_MESSAGE = "sendShopifyAnalytics request is unsuccessful";
32
+ var ERROR_MESSAGE = "sendShopifyAnalytics request is unsuccessful";
45
33
  function sendToShopify(events, shopDomain) {
46
- if (isLighthouseUserAgent()) {
47
- return Promise.resolve();
48
- }
49
- const eventsToBeSent = {
50
- events,
51
- metadata: {
52
- event_sent_at_ms: Date.now()
53
- }
54
- };
55
- try {
56
- return fetch(
57
- shopDomain ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch` : "https://monorail-edge.shopifysvc.com/unstable/produce_batch",
58
- {
59
- method: "post",
60
- headers: {
61
- "content-type": "text/plain"
62
- },
63
- body: JSON.stringify(eventsToBeSent)
64
- }
65
- ).then((response) => {
66
- if (!response.ok) {
67
- throw new Error("Response failed");
68
- }
69
- return response.text();
70
- }).then((data) => {
71
- if (data) {
72
- const jsonResponse = JSON.parse(data);
73
- jsonResponse.result.forEach((eventResponse) => {
74
- if (eventResponse.status !== 200) {
75
- console.error(ERROR_MESSAGE, "\n\n", eventResponse.message);
76
- }
77
- });
78
- }
79
- }).catch((err) => {
80
- console.error(ERROR_MESSAGE, err);
81
- if (true) {
82
- throw new Error(ERROR_MESSAGE);
83
- }
84
- });
85
- } catch (error) {
86
- return Promise.resolve();
87
- }
34
+ if (isLighthouseUserAgent()) return Promise.resolve();
35
+ const eventsToBeSent = {
36
+ events,
37
+ metadata: { event_sent_at_ms: Date.now() }
38
+ };
39
+ try {
40
+ return fetch(shopDomain ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch` : "https://monorail-edge.shopifysvc.com/unstable/produce_batch", {
41
+ method: "post",
42
+ headers: { "content-type": "text/plain" },
43
+ body: JSON.stringify(eventsToBeSent)
44
+ }).then((response) => {
45
+ if (!response.ok) throw new Error("Response failed");
46
+ return response.text();
47
+ }).then((data) => {
48
+ if (data) JSON.parse(data).result.forEach((eventResponse) => {
49
+ if (eventResponse.status !== 200) console.error(ERROR_MESSAGE, "\n\n", eventResponse.message);
50
+ });
51
+ }).catch((err) => {
52
+ console.error(ERROR_MESSAGE, err);
53
+ throw new Error(ERROR_MESSAGE);
54
+ });
55
+ } catch (error) {
56
+ return Promise.resolve();
57
+ }
88
58
  }
59
+ /**
60
+ * If executed on server, this method will return empty string for each field.
61
+ * @publicDocs
62
+ */
89
63
  function getClientBrowserParameters() {
90
- if (analyticsUtils.errorIfServer("getClientBrowserParameters")) {
91
- return {
92
- uniqueToken: "",
93
- visitToken: "",
94
- url: "",
95
- path: "",
96
- search: "",
97
- referrer: "",
98
- title: "",
99
- userAgent: "",
100
- navigationType: "",
101
- navigationApi: ""
102
- };
103
- }
104
- const [navigationType, navigationApi] = getNavigationType();
105
- const trackingValues = trackingUtils.getTrackingValues();
106
- return {
107
- uniqueToken: trackingValues.uniqueToken,
108
- visitToken: trackingValues.visitToken,
109
- url: location.href,
110
- path: location.pathname,
111
- search: location.search,
112
- referrer: document.referrer,
113
- title: document.title,
114
- userAgent: navigator.userAgent,
115
- navigationType,
116
- navigationApi
117
- };
64
+ if (require_analytics_utils.errorIfServer("getClientBrowserParameters")) return {
65
+ uniqueToken: "",
66
+ visitToken: "",
67
+ url: "",
68
+ path: "",
69
+ search: "",
70
+ referrer: "",
71
+ title: "",
72
+ userAgent: "",
73
+ navigationType: "",
74
+ navigationApi: ""
75
+ };
76
+ const [navigationType, navigationApi] = getNavigationType();
77
+ const trackingValues = require_tracking_utils.getTrackingValues();
78
+ return {
79
+ uniqueToken: trackingValues.uniqueToken,
80
+ visitToken: trackingValues.visitToken,
81
+ url: location.href,
82
+ path: location.pathname,
83
+ search: location.search,
84
+ referrer: document.referrer,
85
+ title: document.title,
86
+ userAgent: navigator.userAgent,
87
+ navigationType,
88
+ navigationApi
89
+ };
118
90
  }
119
91
  function getNavigationTypeExperimental() {
120
- try {
121
- const navigationEntries = (performance == null ? void 0 : performance.getEntriesByType) && (performance == null ? void 0 : performance.getEntriesByType("navigation"));
122
- if (navigationEntries && navigationEntries[0]) {
123
- const rawType = window.performance.getEntriesByType(
124
- "navigation"
125
- )[0]["type"];
126
- const navType = rawType && rawType.toString();
127
- return navType;
128
- }
129
- } catch (err) {
130
- }
131
- return void 0;
92
+ try {
93
+ const navigationEntries = performance?.getEntriesByType && performance?.getEntriesByType("navigation");
94
+ if (navigationEntries && navigationEntries[0]) {
95
+ const rawType = window.performance.getEntriesByType("navigation")[0]["type"];
96
+ return rawType && rawType.toString();
97
+ }
98
+ } catch (err) {}
132
99
  }
133
100
  function getNavigationTypeLegacy() {
134
- var _a, _b;
135
- try {
136
- if (PerformanceNavigation && ((_a = performance == null ? void 0 : performance.navigation) == null ? void 0 : _a.type) !== null && ((_b = performance == null ? void 0 : performance.navigation) == null ? void 0 : _b.type) !== void 0) {
137
- const rawType = performance.navigation.type;
138
- switch (rawType) {
139
- case PerformanceNavigation.TYPE_NAVIGATE:
140
- return "navigate";
141
- case PerformanceNavigation.TYPE_RELOAD:
142
- return "reload";
143
- case PerformanceNavigation.TYPE_BACK_FORWARD:
144
- return "back_forward";
145
- default:
146
- return `unknown: ${rawType}`;
147
- }
148
- }
149
- } catch (err) {
150
- }
151
- return void 0;
101
+ try {
102
+ if (PerformanceNavigation && performance?.navigation?.type !== null && performance?.navigation?.type !== void 0) {
103
+ const rawType = performance.navigation.type;
104
+ switch (rawType) {
105
+ case PerformanceNavigation.TYPE_NAVIGATE: return "navigate";
106
+ case PerformanceNavigation.TYPE_RELOAD: return "reload";
107
+ case PerformanceNavigation.TYPE_BACK_FORWARD: return "back_forward";
108
+ default: return `unknown: ${rawType}`;
109
+ }
110
+ }
111
+ } catch (err) {}
152
112
  }
153
113
  function getNavigationType() {
154
- try {
155
- let navApi = "PerformanceNavigationTiming";
156
- let navType = getNavigationTypeExperimental();
157
- if (!navType) {
158
- navType = getNavigationTypeLegacy();
159
- navApi = "performance.navigation";
160
- }
161
- if (navType) {
162
- return [navType, navApi];
163
- } else {
164
- return ["unknown", "unknown"];
165
- }
166
- } catch (err) {
167
- }
168
- return ["error", "error"];
114
+ try {
115
+ let navApi = "PerformanceNavigationTiming";
116
+ let navType = getNavigationTypeExperimental();
117
+ if (!navType) {
118
+ navType = getNavigationTypeLegacy();
119
+ navApi = "performance.navigation";
120
+ }
121
+ if (navType) return [navType, navApi];
122
+ else return ["unknown", "unknown"];
123
+ } catch (err) {}
124
+ return ["error", "error"];
169
125
  }
126
+ //#endregion
170
127
  exports.getClientBrowserParameters = getClientBrowserParameters;
171
128
  exports.sendShopifyAnalytics = sendShopifyAnalytics;
172
- //# sourceMappingURL=analytics.js.map
129
+
130
+ //# sourceMappingURL=analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sources":["../../src/analytics.ts"],"sourcesContent":["import type {\n ClientBrowserParameters,\n ShopifyAddToCartPayload,\n ShopifyAnalytics,\n ShopifyPageViewPayload,\n ShopifyMonorailEvent,\n} from './analytics-types.js';\nimport {AnalyticsEventName} from './analytics-constants.js';\nimport {errorIfServer} from './analytics-utils.js';\n\nimport {pageView as trekkiePageView} from './analytics-schema-trekkie-storefront-page-view.js';\nimport {\n pageView as customerPageView,\n pageView2 as customerPageView2,\n collectionView as customerCollectionView,\n productView as customerProductView,\n searchView as customerSearchView,\n addToCart as customerAddToCart,\n} from './analytics-schema-custom-storefront-customer-tracking.js';\nimport {getTrackingValues} from './tracking-utils.js';\n\n/**\n * Set user and session cookies and refresh the expiry time. If `event.payload.hasUserConsent` is false, no analytics event will happen.\n * @param event - The analytics event.\n * @param shopDomain - The Online Store domain to sent Shopify analytics under the same\n * top level domain.\n * @publicDocs\n */\nexport function sendShopifyAnalytics(\n event: ShopifyAnalytics,\n shopDomain?: string,\n): Promise<void> {\n const {eventName, payload} = event;\n if (!payload.hasUserConsent) return Promise.resolve();\n\n let events: ShopifyMonorailEvent[] = [];\n const pageViewPayload = payload as ShopifyPageViewPayload;\n\n if (eventName === AnalyticsEventName.PAGE_VIEW) {\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView(pageViewPayload),\n );\n } else if (eventName === AnalyticsEventName.ADD_TO_CART) {\n events = events.concat(\n customerAddToCart(payload as ShopifyAddToCartPayload),\n );\n } else if (eventName === AnalyticsEventName.PAGE_VIEW_2) {\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView2(pageViewPayload),\n );\n } else if (eventName === AnalyticsEventName.COLLECTION_VIEW) {\n events = events.concat(customerCollectionView(pageViewPayload));\n } else if (eventName === AnalyticsEventName.PRODUCT_VIEW) {\n events = events.concat(customerProductView(pageViewPayload));\n } else if (eventName === AnalyticsEventName.SEARCH_VIEW) {\n events = events.concat(customerSearchView(pageViewPayload));\n }\n\n if (events.length) {\n return sendToShopify(events, shopDomain);\n } else {\n return Promise.resolve();\n }\n}\n\n// Shopify monorail return invalid agent for Lighthouse userAgents\nfunction isLighthouseUserAgent(): boolean {\n if (typeof window === 'undefined' || !window.navigator) return false;\n return /Chrome-Lighthouse/.test(window.navigator.userAgent);\n}\n\ntype MonorailResponse = {\n status: number;\n message: string;\n};\n\nconst ERROR_MESSAGE = 'sendShopifyAnalytics request is unsuccessful';\n\nfunction sendToShopify(\n events: ShopifyMonorailEvent[],\n shopDomain?: string,\n): Promise<void> {\n if (isLighthouseUserAgent()) {\n return Promise.resolve();\n }\n\n const eventsToBeSent = {\n events,\n metadata: {\n event_sent_at_ms: Date.now(),\n },\n };\n\n try {\n return fetch(\n shopDomain\n ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch`\n : 'https://monorail-edge.shopifysvc.com/unstable/produce_batch',\n {\n method: 'post',\n headers: {\n 'content-type': 'text/plain',\n },\n body: JSON.stringify(eventsToBeSent),\n },\n )\n .then((response) => {\n if (!response.ok) {\n throw new Error('Response failed');\n }\n return response.text();\n })\n .then((data) => {\n if (data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const jsonResponse = JSON.parse(data);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n jsonResponse.result.forEach((eventResponse: MonorailResponse) => {\n if (eventResponse.status !== 200) {\n console.error(ERROR_MESSAGE, '\\n\\n', eventResponse.message);\n }\n });\n }\n })\n .catch((err) => {\n console.error(ERROR_MESSAGE, err);\n if (__HYDROGEN_DEV__) {\n throw new Error(ERROR_MESSAGE);\n }\n });\n } catch (error) {\n // Do nothing\n return Promise.resolve();\n }\n}\n\n/**\n * If executed on server, this method will return empty string for each field.\n * @publicDocs\n */\nexport function getClientBrowserParameters(): ClientBrowserParameters {\n if (errorIfServer('getClientBrowserParameters')) {\n return {\n uniqueToken: '',\n visitToken: '',\n url: '',\n path: '',\n search: '',\n referrer: '',\n title: '',\n userAgent: '',\n navigationType: '',\n navigationApi: '',\n };\n }\n\n const [navigationType, navigationApi] = getNavigationType();\n const trackingValues = getTrackingValues();\n\n return {\n uniqueToken: trackingValues.uniqueToken,\n visitToken: trackingValues.visitToken,\n url: location.href,\n path: location.pathname,\n search: location.search,\n referrer: document.referrer,\n title: document.title,\n userAgent: navigator.userAgent,\n navigationType,\n navigationApi,\n };\n}\n\nfunction getNavigationTypeExperimental(): string | undefined {\n try {\n const navigationEntries =\n performance?.getEntriesByType &&\n performance?.getEntriesByType('navigation');\n\n if (navigationEntries && navigationEntries[0]) {\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n const rawType = (\n window.performance.getEntriesByType(\n 'navigation',\n )[0] as PerformanceNavigationTiming\n )['type'];\n const navType = rawType && rawType.toString();\n\n return navType;\n }\n } catch (err) {\n // Do nothing\n }\n return undefined;\n}\n\nfunction getNavigationTypeLegacy(): string | undefined {\n try {\n if (\n PerformanceNavigation &&\n performance?.navigation?.type !== null &&\n performance?.navigation?.type !== undefined\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation\n const rawType = performance.navigation.type;\n switch (rawType) {\n case PerformanceNavigation.TYPE_NAVIGATE:\n return 'navigate';\n case PerformanceNavigation.TYPE_RELOAD:\n return 'reload';\n case PerformanceNavigation.TYPE_BACK_FORWARD:\n return 'back_forward';\n default:\n return `unknown: ${rawType}`;\n }\n }\n } catch (err) {\n // do nothing\n }\n return undefined;\n}\n\nfunction getNavigationType(): [string, string] {\n try {\n let navApi = 'PerformanceNavigationTiming';\n let navType = getNavigationTypeExperimental();\n if (!navType) {\n navType = getNavigationTypeLegacy();\n navApi = 'performance.navigation';\n }\n if (navType) {\n return [navType, navApi];\n } else {\n return ['unknown', 'unknown'];\n }\n } catch (err) {\n // do nothing\n }\n return ['error', 'error'];\n}\n"],"names":["AnalyticsEventName","trekkiePageView","customerPageView","customerAddToCart","customerPageView2","customerCollectionView","customerProductView","customerSearchView","errorIfServer","getTrackingValues"],"mappings":"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"}
1
+ {"version":3,"file":"analytics.js","names":[],"sources":["../../src/analytics.ts"],"sourcesContent":["import type {\n ClientBrowserParameters,\n ShopifyAddToCartPayload,\n ShopifyAnalytics,\n ShopifyPageViewPayload,\n ShopifyMonorailEvent,\n} from './analytics-types.js';\nimport {AnalyticsEventName} from './analytics-constants.js';\nimport {errorIfServer} from './analytics-utils.js';\n\nimport {pageView as trekkiePageView} from './analytics-schema-trekkie-storefront-page-view.js';\nimport {\n pageView as customerPageView,\n pageView2 as customerPageView2,\n collectionView as customerCollectionView,\n productView as customerProductView,\n searchView as customerSearchView,\n addToCart as customerAddToCart,\n} from './analytics-schema-custom-storefront-customer-tracking.js';\nimport {getTrackingValues} from './tracking-utils.js';\n\n/**\n * Set user and session cookies and refresh the expiry time. If `event.payload.hasUserConsent` is false, no analytics event will happen.\n * @param event - The analytics event.\n * @param shopDomain - The Online Store domain to sent Shopify analytics under the same\n * top level domain.\n * @publicDocs\n */\nexport function sendShopifyAnalytics(\n event: ShopifyAnalytics,\n shopDomain?: string,\n): Promise<void> {\n const {eventName, payload} = event;\n if (!payload.hasUserConsent) return Promise.resolve();\n\n let events: ShopifyMonorailEvent[] = [];\n const pageViewPayload = payload as ShopifyPageViewPayload;\n\n if (eventName === AnalyticsEventName.PAGE_VIEW) {\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView(pageViewPayload),\n );\n } else if (eventName === AnalyticsEventName.ADD_TO_CART) {\n events = events.concat(\n customerAddToCart(payload as ShopifyAddToCartPayload),\n );\n } else if (eventName === AnalyticsEventName.PAGE_VIEW_2) {\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView2(pageViewPayload),\n );\n } else if (eventName === AnalyticsEventName.COLLECTION_VIEW) {\n events = events.concat(customerCollectionView(pageViewPayload));\n } else if (eventName === AnalyticsEventName.PRODUCT_VIEW) {\n events = events.concat(customerProductView(pageViewPayload));\n } else if (eventName === AnalyticsEventName.SEARCH_VIEW) {\n events = events.concat(customerSearchView(pageViewPayload));\n }\n\n if (events.length) {\n return sendToShopify(events, shopDomain);\n } else {\n return Promise.resolve();\n }\n}\n\n// Shopify monorail return invalid agent for Lighthouse userAgents\nfunction isLighthouseUserAgent(): boolean {\n if (typeof window === 'undefined' || !window.navigator) return false;\n return /Chrome-Lighthouse/.test(window.navigator.userAgent);\n}\n\ntype MonorailResponse = {\n status: number;\n message: string;\n};\n\nconst ERROR_MESSAGE = 'sendShopifyAnalytics request is unsuccessful';\n\nfunction sendToShopify(\n events: ShopifyMonorailEvent[],\n shopDomain?: string,\n): Promise<void> {\n if (isLighthouseUserAgent()) {\n return Promise.resolve();\n }\n\n const eventsToBeSent = {\n events,\n metadata: {\n event_sent_at_ms: Date.now(),\n },\n };\n\n try {\n return fetch(\n shopDomain\n ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch`\n : 'https://monorail-edge.shopifysvc.com/unstable/produce_batch',\n {\n method: 'post',\n headers: {\n 'content-type': 'text/plain',\n },\n body: JSON.stringify(eventsToBeSent),\n },\n )\n .then((response) => {\n if (!response.ok) {\n throw new Error('Response failed');\n }\n return response.text();\n })\n .then((data) => {\n if (data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const jsonResponse = JSON.parse(data);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n jsonResponse.result.forEach((eventResponse: MonorailResponse) => {\n if (eventResponse.status !== 200) {\n console.error(ERROR_MESSAGE, '\\n\\n', eventResponse.message);\n }\n });\n }\n })\n .catch((err) => {\n console.error(ERROR_MESSAGE, err);\n if (__HYDROGEN_DEV__) {\n throw new Error(ERROR_MESSAGE);\n }\n });\n } catch (error) {\n // Do nothing\n return Promise.resolve();\n }\n}\n\n/**\n * If executed on server, this method will return empty string for each field.\n * @publicDocs\n */\nexport function getClientBrowserParameters(): ClientBrowserParameters {\n if (errorIfServer('getClientBrowserParameters')) {\n return {\n uniqueToken: '',\n visitToken: '',\n url: '',\n path: '',\n search: '',\n referrer: '',\n title: '',\n userAgent: '',\n navigationType: '',\n navigationApi: '',\n };\n }\n\n const [navigationType, navigationApi] = getNavigationType();\n const trackingValues = getTrackingValues();\n\n return {\n uniqueToken: trackingValues.uniqueToken,\n visitToken: trackingValues.visitToken,\n url: location.href,\n path: location.pathname,\n search: location.search,\n referrer: document.referrer,\n title: document.title,\n userAgent: navigator.userAgent,\n navigationType,\n navigationApi,\n };\n}\n\nfunction getNavigationTypeExperimental(): string | undefined {\n try {\n const navigationEntries =\n performance?.getEntriesByType &&\n performance?.getEntriesByType('navigation');\n\n if (navigationEntries && navigationEntries[0]) {\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n const rawType = (\n window.performance.getEntriesByType(\n 'navigation',\n )[0] as PerformanceNavigationTiming\n )['type'];\n const navType = rawType && rawType.toString();\n\n return navType;\n }\n } catch (err) {\n // Do nothing\n }\n return undefined;\n}\n\nfunction getNavigationTypeLegacy(): string | undefined {\n try {\n if (\n PerformanceNavigation &&\n performance?.navigation?.type !== null &&\n performance?.navigation?.type !== undefined\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation\n const rawType = performance.navigation.type;\n switch (rawType) {\n case PerformanceNavigation.TYPE_NAVIGATE:\n return 'navigate';\n case PerformanceNavigation.TYPE_RELOAD:\n return 'reload';\n case PerformanceNavigation.TYPE_BACK_FORWARD:\n return 'back_forward';\n default:\n return `unknown: ${rawType}`;\n }\n }\n } catch (err) {\n // do nothing\n }\n return undefined;\n}\n\nfunction getNavigationType(): [string, string] {\n try {\n let navApi = 'PerformanceNavigationTiming';\n let navType = getNavigationTypeExperimental();\n if (!navType) {\n navType = getNavigationTypeLegacy();\n navApi = 'performance.navigation';\n }\n if (navType) {\n return [navType, navApi];\n } else {\n return ['unknown', 'unknown'];\n }\n } catch (err) {\n // do nothing\n }\n return ['error', 'error'];\n}\n"],"mappings":"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"}
@@ -1,172 +1,129 @@
1
+ import { getTrackingValues } from "./tracking-utils.mjs";
1
2
  import { AnalyticsEventName } from "./analytics-constants.mjs";
2
3
  import { errorIfServer } from "./analytics-utils.mjs";
3
4
  import { pageView } from "./analytics-schema-trekkie-storefront-page-view.mjs";
4
- import { pageView as pageView$1, addToCart, pageView2, collectionView, productView, searchView } from "./analytics-schema-custom-storefront-customer-tracking.mjs";
5
- import { getTrackingValues } from "./tracking-utils.mjs";
5
+ import { addToCart, collectionView, pageView as pageView$1, pageView2, productView, searchView } from "./analytics-schema-custom-storefront-customer-tracking.mjs";
6
+ //#region src/analytics.ts
7
+ /**
8
+ * Set user and session cookies and refresh the expiry time. If `event.payload.hasUserConsent` is false, no analytics event will happen.
9
+ * @param event - The analytics event.
10
+ * @param shopDomain - The Online Store domain to sent Shopify analytics under the same
11
+ * top level domain.
12
+ * @publicDocs
13
+ */
6
14
  function sendShopifyAnalytics(event, shopDomain) {
7
- const { eventName, payload } = event;
8
- if (!payload.hasUserConsent) return Promise.resolve();
9
- let events = [];
10
- const pageViewPayload = payload;
11
- if (eventName === AnalyticsEventName.PAGE_VIEW) {
12
- events = events.concat(
13
- pageView(pageViewPayload),
14
- pageView$1(pageViewPayload)
15
- );
16
- } else if (eventName === AnalyticsEventName.ADD_TO_CART) {
17
- events = events.concat(
18
- addToCart(payload)
19
- );
20
- } else if (eventName === AnalyticsEventName.PAGE_VIEW_2) {
21
- events = events.concat(
22
- pageView(pageViewPayload),
23
- pageView2(pageViewPayload)
24
- );
25
- } else if (eventName === AnalyticsEventName.COLLECTION_VIEW) {
26
- events = events.concat(collectionView(pageViewPayload));
27
- } else if (eventName === AnalyticsEventName.PRODUCT_VIEW) {
28
- events = events.concat(productView(pageViewPayload));
29
- } else if (eventName === AnalyticsEventName.SEARCH_VIEW) {
30
- events = events.concat(searchView(pageViewPayload));
31
- }
32
- if (events.length) {
33
- return sendToShopify(events, shopDomain);
34
- } else {
35
- return Promise.resolve();
36
- }
15
+ const { eventName, payload } = event;
16
+ if (!payload.hasUserConsent) return Promise.resolve();
17
+ let events = [];
18
+ const pageViewPayload = payload;
19
+ if (eventName === AnalyticsEventName.PAGE_VIEW) events = events.concat(pageView(pageViewPayload), pageView$1(pageViewPayload));
20
+ else if (eventName === AnalyticsEventName.ADD_TO_CART) events = events.concat(addToCart(payload));
21
+ else if (eventName === AnalyticsEventName.PAGE_VIEW_2) events = events.concat(pageView(pageViewPayload), pageView2(pageViewPayload));
22
+ else if (eventName === AnalyticsEventName.COLLECTION_VIEW) events = events.concat(collectionView(pageViewPayload));
23
+ else if (eventName === AnalyticsEventName.PRODUCT_VIEW) events = events.concat(productView(pageViewPayload));
24
+ else if (eventName === AnalyticsEventName.SEARCH_VIEW) events = events.concat(searchView(pageViewPayload));
25
+ if (events.length) return sendToShopify(events, shopDomain);
26
+ else return Promise.resolve();
37
27
  }
38
28
  function isLighthouseUserAgent() {
39
- if (typeof window === "undefined" || !window.navigator) return false;
40
- return /Chrome-Lighthouse/.test(window.navigator.userAgent);
29
+ if (typeof window === "undefined" || !window.navigator) return false;
30
+ return /Chrome-Lighthouse/.test(window.navigator.userAgent);
41
31
  }
42
- const ERROR_MESSAGE = "sendShopifyAnalytics request is unsuccessful";
32
+ var ERROR_MESSAGE = "sendShopifyAnalytics request is unsuccessful";
43
33
  function sendToShopify(events, shopDomain) {
44
- if (isLighthouseUserAgent()) {
45
- return Promise.resolve();
46
- }
47
- const eventsToBeSent = {
48
- events,
49
- metadata: {
50
- event_sent_at_ms: Date.now()
51
- }
52
- };
53
- try {
54
- return fetch(
55
- shopDomain ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch` : "https://monorail-edge.shopifysvc.com/unstable/produce_batch",
56
- {
57
- method: "post",
58
- headers: {
59
- "content-type": "text/plain"
60
- },
61
- body: JSON.stringify(eventsToBeSent)
62
- }
63
- ).then((response) => {
64
- if (!response.ok) {
65
- throw new Error("Response failed");
66
- }
67
- return response.text();
68
- }).then((data) => {
69
- if (data) {
70
- const jsonResponse = JSON.parse(data);
71
- jsonResponse.result.forEach((eventResponse) => {
72
- if (eventResponse.status !== 200) {
73
- console.error(ERROR_MESSAGE, "\n\n", eventResponse.message);
74
- }
75
- });
76
- }
77
- }).catch((err) => {
78
- console.error(ERROR_MESSAGE, err);
79
- if (true) {
80
- throw new Error(ERROR_MESSAGE);
81
- }
82
- });
83
- } catch (error) {
84
- return Promise.resolve();
85
- }
34
+ if (isLighthouseUserAgent()) return Promise.resolve();
35
+ const eventsToBeSent = {
36
+ events,
37
+ metadata: { event_sent_at_ms: Date.now() }
38
+ };
39
+ try {
40
+ return fetch(shopDomain ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch` : "https://monorail-edge.shopifysvc.com/unstable/produce_batch", {
41
+ method: "post",
42
+ headers: { "content-type": "text/plain" },
43
+ body: JSON.stringify(eventsToBeSent)
44
+ }).then((response) => {
45
+ if (!response.ok) throw new Error("Response failed");
46
+ return response.text();
47
+ }).then((data) => {
48
+ if (data) JSON.parse(data).result.forEach((eventResponse) => {
49
+ if (eventResponse.status !== 200) console.error(ERROR_MESSAGE, "\n\n", eventResponse.message);
50
+ });
51
+ }).catch((err) => {
52
+ console.error(ERROR_MESSAGE, err);
53
+ throw new Error(ERROR_MESSAGE);
54
+ });
55
+ } catch (error) {
56
+ return Promise.resolve();
57
+ }
86
58
  }
59
+ /**
60
+ * If executed on server, this method will return empty string for each field.
61
+ * @publicDocs
62
+ */
87
63
  function getClientBrowserParameters() {
88
- if (errorIfServer("getClientBrowserParameters")) {
89
- return {
90
- uniqueToken: "",
91
- visitToken: "",
92
- url: "",
93
- path: "",
94
- search: "",
95
- referrer: "",
96
- title: "",
97
- userAgent: "",
98
- navigationType: "",
99
- navigationApi: ""
100
- };
101
- }
102
- const [navigationType, navigationApi] = getNavigationType();
103
- const trackingValues = getTrackingValues();
104
- return {
105
- uniqueToken: trackingValues.uniqueToken,
106
- visitToken: trackingValues.visitToken,
107
- url: location.href,
108
- path: location.pathname,
109
- search: location.search,
110
- referrer: document.referrer,
111
- title: document.title,
112
- userAgent: navigator.userAgent,
113
- navigationType,
114
- navigationApi
115
- };
64
+ if (errorIfServer("getClientBrowserParameters")) return {
65
+ uniqueToken: "",
66
+ visitToken: "",
67
+ url: "",
68
+ path: "",
69
+ search: "",
70
+ referrer: "",
71
+ title: "",
72
+ userAgent: "",
73
+ navigationType: "",
74
+ navigationApi: ""
75
+ };
76
+ const [navigationType, navigationApi] = getNavigationType();
77
+ const trackingValues = getTrackingValues();
78
+ return {
79
+ uniqueToken: trackingValues.uniqueToken,
80
+ visitToken: trackingValues.visitToken,
81
+ url: location.href,
82
+ path: location.pathname,
83
+ search: location.search,
84
+ referrer: document.referrer,
85
+ title: document.title,
86
+ userAgent: navigator.userAgent,
87
+ navigationType,
88
+ navigationApi
89
+ };
116
90
  }
117
91
  function getNavigationTypeExperimental() {
118
- try {
119
- const navigationEntries = (performance == null ? void 0 : performance.getEntriesByType) && (performance == null ? void 0 : performance.getEntriesByType("navigation"));
120
- if (navigationEntries && navigationEntries[0]) {
121
- const rawType = window.performance.getEntriesByType(
122
- "navigation"
123
- )[0]["type"];
124
- const navType = rawType && rawType.toString();
125
- return navType;
126
- }
127
- } catch (err) {
128
- }
129
- return void 0;
92
+ try {
93
+ const navigationEntries = performance?.getEntriesByType && performance?.getEntriesByType("navigation");
94
+ if (navigationEntries && navigationEntries[0]) {
95
+ const rawType = window.performance.getEntriesByType("navigation")[0]["type"];
96
+ return rawType && rawType.toString();
97
+ }
98
+ } catch (err) {}
130
99
  }
131
100
  function getNavigationTypeLegacy() {
132
- var _a, _b;
133
- try {
134
- if (PerformanceNavigation && ((_a = performance == null ? void 0 : performance.navigation) == null ? void 0 : _a.type) !== null && ((_b = performance == null ? void 0 : performance.navigation) == null ? void 0 : _b.type) !== void 0) {
135
- const rawType = performance.navigation.type;
136
- switch (rawType) {
137
- case PerformanceNavigation.TYPE_NAVIGATE:
138
- return "navigate";
139
- case PerformanceNavigation.TYPE_RELOAD:
140
- return "reload";
141
- case PerformanceNavigation.TYPE_BACK_FORWARD:
142
- return "back_forward";
143
- default:
144
- return `unknown: ${rawType}`;
145
- }
146
- }
147
- } catch (err) {
148
- }
149
- return void 0;
101
+ try {
102
+ if (PerformanceNavigation && performance?.navigation?.type !== null && performance?.navigation?.type !== void 0) {
103
+ const rawType = performance.navigation.type;
104
+ switch (rawType) {
105
+ case PerformanceNavigation.TYPE_NAVIGATE: return "navigate";
106
+ case PerformanceNavigation.TYPE_RELOAD: return "reload";
107
+ case PerformanceNavigation.TYPE_BACK_FORWARD: return "back_forward";
108
+ default: return `unknown: ${rawType}`;
109
+ }
110
+ }
111
+ } catch (err) {}
150
112
  }
151
113
  function getNavigationType() {
152
- try {
153
- let navApi = "PerformanceNavigationTiming";
154
- let navType = getNavigationTypeExperimental();
155
- if (!navType) {
156
- navType = getNavigationTypeLegacy();
157
- navApi = "performance.navigation";
158
- }
159
- if (navType) {
160
- return [navType, navApi];
161
- } else {
162
- return ["unknown", "unknown"];
163
- }
164
- } catch (err) {
165
- }
166
- return ["error", "error"];
114
+ try {
115
+ let navApi = "PerformanceNavigationTiming";
116
+ let navType = getNavigationTypeExperimental();
117
+ if (!navType) {
118
+ navType = getNavigationTypeLegacy();
119
+ navApi = "performance.navigation";
120
+ }
121
+ if (navType) return [navType, navApi];
122
+ else return ["unknown", "unknown"];
123
+ } catch (err) {}
124
+ return ["error", "error"];
167
125
  }
168
- export {
169
- getClientBrowserParameters,
170
- sendShopifyAnalytics
171
- };
172
- //# sourceMappingURL=analytics.mjs.map
126
+ //#endregion
127
+ export { getClientBrowserParameters, sendShopifyAnalytics };
128
+
129
+ //# sourceMappingURL=analytics.mjs.map