@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,60 +1,45 @@
1
- import { useCallback } from "react";
2
1
  import { useShop } from "./ShopifyProvider.mjs";
3
- import { SHOPIFY_STOREFRONT_ID_HEADER, SHOPIFY_STOREFRONT_Y_HEADER, SHOPIFY_STOREFRONT_S_HEADER } from "./cart-constants.mjs";
4
- import { getTrackingValues, SHOPIFY_UNIQUE_TOKEN_HEADER, SHOPIFY_VISIT_TOKEN_HEADER } from "./tracking-utils.mjs";
2
+ import { SHOPIFY_STOREFRONT_ID_HEADER, SHOPIFY_STOREFRONT_S_HEADER, SHOPIFY_STOREFRONT_Y_HEADER } from "./cart-constants.mjs";
3
+ import { SHOPIFY_UNIQUE_TOKEN_HEADER, SHOPIFY_VISIT_TOKEN_HEADER, getTrackingValues } from "./tracking-utils.mjs";
4
+ import { useCallback } from "react";
5
+ //#region src/cart-hooks.tsx
5
6
  function useCartFetch() {
6
- const {
7
- storefrontId,
8
- getPublicTokenHeaders,
9
- getStorefrontApiUrl,
10
- sameDomainForStorefrontApi
11
- } = useShop();
12
- return useCallback(
13
- ({
14
- query,
15
- variables
16
- }) => {
17
- const headers = getPublicTokenHeaders({ contentType: "json" });
18
- if (storefrontId) {
19
- headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
20
- }
21
- if (!sameDomainForStorefrontApi) {
22
- const { uniqueToken, visitToken } = getTrackingValues();
23
- if (uniqueToken) {
24
- headers[SHOPIFY_STOREFRONT_Y_HEADER] = uniqueToken;
25
- headers[SHOPIFY_UNIQUE_TOKEN_HEADER] = uniqueToken;
26
- }
27
- if (visitToken) {
28
- headers[SHOPIFY_STOREFRONT_S_HEADER] = visitToken;
29
- headers[SHOPIFY_VISIT_TOKEN_HEADER] = visitToken;
30
- }
31
- }
32
- return fetch(getStorefrontApiUrl(), {
33
- method: "POST",
34
- headers,
35
- body: JSON.stringify({
36
- query: query.toString(),
37
- variables
38
- })
39
- }).then(
40
- (res) => res.json()
41
- ).catch((error) => {
42
- return {
43
- data: void 0,
44
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
45
- errors: error == null ? void 0 : error.toString()
46
- };
47
- });
48
- },
49
- [
50
- getPublicTokenHeaders,
51
- storefrontId,
52
- getStorefrontApiUrl,
53
- sameDomainForStorefrontApi
54
- ]
55
- );
7
+ const { storefrontId, getPublicTokenHeaders, getStorefrontApiUrl, sameDomainForStorefrontApi } = useShop();
8
+ return useCallback(({ query, variables }) => {
9
+ const headers = getPublicTokenHeaders({ contentType: "json" });
10
+ if (storefrontId) headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
11
+ if (!sameDomainForStorefrontApi) {
12
+ const { uniqueToken, visitToken } = getTrackingValues();
13
+ if (uniqueToken) {
14
+ headers[SHOPIFY_STOREFRONT_Y_HEADER] = uniqueToken;
15
+ headers[SHOPIFY_UNIQUE_TOKEN_HEADER] = uniqueToken;
16
+ }
17
+ if (visitToken) {
18
+ headers[SHOPIFY_STOREFRONT_S_HEADER] = visitToken;
19
+ headers[SHOPIFY_VISIT_TOKEN_HEADER] = visitToken;
20
+ }
21
+ }
22
+ return fetch(getStorefrontApiUrl(), {
23
+ method: "POST",
24
+ headers,
25
+ body: JSON.stringify({
26
+ query: query.toString(),
27
+ variables
28
+ })
29
+ }).then((res) => res.json()).catch((error) => {
30
+ return {
31
+ data: void 0,
32
+ errors: error?.toString()
33
+ };
34
+ });
35
+ }, [
36
+ getPublicTokenHeaders,
37
+ storefrontId,
38
+ getStorefrontApiUrl,
39
+ sameDomainForStorefrontApi
40
+ ]);
56
41
  }
57
- export {
58
- useCartFetch
59
- };
60
- //# sourceMappingURL=cart-hooks.mjs.map
42
+ //#endregion
43
+ export { useCartFetch };
44
+
45
+ //# sourceMappingURL=cart-hooks.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart-hooks.mjs","sources":["../../src/cart-hooks.tsx"],"sourcesContent":["import {useState, useCallback} from 'react';\nimport {useShop} from './ShopifyProvider.js';\nimport {flattenConnection} from './flatten-connection.js';\nimport {CartInput, Cart as CartType} from './storefront-api-types.js';\nimport {CartCreate, defaultCartFragment} from './cart-queries.js';\nimport {Cart} from './cart-types.js';\nimport {\n SHOPIFY_STOREFRONT_ID_HEADER,\n SHOPIFY_STOREFRONT_Y_HEADER,\n SHOPIFY_STOREFRONT_S_HEADER,\n} from './cart-constants.js';\nimport type {StorefrontApiResponseOkPartial} from './storefront-api-response.types.js';\nimport {\n getTrackingValues,\n SHOPIFY_UNIQUE_TOKEN_HEADER,\n SHOPIFY_VISIT_TOKEN_HEADER,\n} from './tracking-utils.js';\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useCartFetch() {\n const {\n storefrontId,\n getPublicTokenHeaders,\n getStorefrontApiUrl,\n sameDomainForStorefrontApi,\n } = useShop();\n\n return useCallback(\n <ReturnDataGeneric,>({\n query,\n variables,\n }: {\n query: string;\n variables: Record<string, unknown>;\n }): Promise<StorefrontApiResponseOkPartial<ReturnDataGeneric>> => {\n const headers = getPublicTokenHeaders({contentType: 'json'});\n\n if (storefrontId) {\n headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;\n }\n\n if (!sameDomainForStorefrontApi) {\n // If we are in cross-domain mode, add tracking headers manually.\n // Otherwise, for same-domain we rely on the browser to attach cookies automatically.\n const {uniqueToken, visitToken} = getTrackingValues();\n if (uniqueToken) {\n headers[SHOPIFY_STOREFRONT_Y_HEADER] = uniqueToken;\n headers[SHOPIFY_UNIQUE_TOKEN_HEADER] = uniqueToken;\n }\n if (visitToken) {\n headers[SHOPIFY_STOREFRONT_S_HEADER] = visitToken;\n headers[SHOPIFY_VISIT_TOKEN_HEADER] = visitToken;\n }\n }\n\n return fetch(getStorefrontApiUrl(), {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query: query.toString(),\n variables,\n }),\n })\n .then(\n (res) =>\n res.json() as StorefrontApiResponseOkPartial<ReturnDataGeneric>,\n )\n .catch((error) => {\n return {\n data: undefined,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n errors: error?.toString(),\n };\n });\n },\n [\n getPublicTokenHeaders,\n storefrontId,\n getStorefrontApiUrl,\n sameDomainForStorefrontApi,\n ],\n );\n}\n\nexport function useInstantCheckout(): {\n cart: Cart | undefined;\n checkoutUrl: Cart['checkoutUrl'];\n error: string | undefined;\n createInstantCheckout: (cartInput: CartInput) => Promise<void>;\n} {\n const [cart, updateCart] = useState<Cart | undefined>();\n const [checkoutUrl, updateCheckoutUrl] = useState<Cart['checkoutUrl']>();\n const [error, updateError] = useState<string | undefined>();\n\n const fetch = useCartFetch();\n\n const createInstantCheckout = useCallback(\n async (cartInput: CartInput) => {\n const {data, errors} = await fetch<{\n cartCreate: {cart: CartType};\n }>({\n query: CartCreate(defaultCartFragment),\n variables: {\n input: cartInput,\n },\n });\n\n if (errors) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n updateError(errors.toString());\n updateCart(undefined);\n updateCheckoutUrl(undefined);\n }\n\n if (data?.cartCreate?.cart) {\n const dataCart = data.cartCreate.cart;\n updateCart({\n ...dataCart,\n lines: flattenConnection(dataCart.lines),\n note: dataCart.note ?? undefined,\n });\n updateCheckoutUrl(dataCart.checkoutUrl);\n }\n },\n [fetch],\n );\n\n return {cart, checkoutUrl, error, createInstantCheckout};\n}\n"],"names":[],"mappings":";;;;AAmBO,SAAS,eAAe;AAC7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,QAAA;AAEJ,SAAO;AAAA,IACL,CAAqB;AAAA,MACnB;AAAA,MACA;AAAA,IAAA,MAIgE;AAChE,YAAM,UAAU,sBAAsB,EAAC,aAAa,QAAO;AAE3D,UAAI,cAAc;AAChB,gBAAQ,4BAA4B,IAAI;AAAA,MAC1C;AAEA,UAAI,CAAC,4BAA4B;AAG/B,cAAM,EAAC,aAAa,WAAA,IAAc,kBAAA;AAClC,YAAI,aAAa;AACf,kBAAQ,2BAA2B,IAAI;AACvC,kBAAQ,2BAA2B,IAAI;AAAA,QACzC;AACA,YAAI,YAAY;AACd,kBAAQ,2BAA2B,IAAI;AACvC,kBAAQ,0BAA0B,IAAI;AAAA,QACxC;AAAA,MACF;AAEA,aAAO,MAAM,uBAAuB;AAAA,QAClC,QAAQ;AAAA,QACR;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,OAAO,MAAM,SAAA;AAAA,UACb;AAAA,QAAA,CACD;AAAA,MAAA,CACF,EACE;AAAA,QACC,CAAC,QACC,IAAI,KAAA;AAAA,MAAK,EAEZ,MAAM,CAAC,UAAU;AAChB,eAAO;AAAA,UACL,MAAM;AAAA;AAAA,UAEN,QAAQ,+BAAO;AAAA,QAAS;AAAA,MAE5B,CAAC;AAAA,IACL;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"cart-hooks.mjs","names":[],"sources":["../../src/cart-hooks.tsx"],"sourcesContent":["import {useState, useCallback} from 'react';\nimport {useShop} from './ShopifyProvider.js';\nimport {flattenConnection} from './flatten-connection.js';\nimport {CartInput, Cart as CartType} from './storefront-api-types.js';\nimport {CartCreate, defaultCartFragment} from './cart-queries.js';\nimport {Cart} from './cart-types.js';\nimport {\n SHOPIFY_STOREFRONT_ID_HEADER,\n SHOPIFY_STOREFRONT_Y_HEADER,\n SHOPIFY_STOREFRONT_S_HEADER,\n} from './cart-constants.js';\nimport type {StorefrontApiResponseOkPartial} from './storefront-api-response.types.js';\nimport {\n getTrackingValues,\n SHOPIFY_UNIQUE_TOKEN_HEADER,\n SHOPIFY_VISIT_TOKEN_HEADER,\n} from './tracking-utils.js';\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useCartFetch() {\n const {\n storefrontId,\n getPublicTokenHeaders,\n getStorefrontApiUrl,\n sameDomainForStorefrontApi,\n } = useShop();\n\n return useCallback(\n <ReturnDataGeneric,>({\n query,\n variables,\n }: {\n query: string;\n variables: Record<string, unknown>;\n }): Promise<StorefrontApiResponseOkPartial<ReturnDataGeneric>> => {\n const headers = getPublicTokenHeaders({contentType: 'json'});\n\n if (storefrontId) {\n headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;\n }\n\n if (!sameDomainForStorefrontApi) {\n // If we are in cross-domain mode, add tracking headers manually.\n // Otherwise, for same-domain we rely on the browser to attach cookies automatically.\n const {uniqueToken, visitToken} = getTrackingValues();\n if (uniqueToken) {\n headers[SHOPIFY_STOREFRONT_Y_HEADER] = uniqueToken;\n headers[SHOPIFY_UNIQUE_TOKEN_HEADER] = uniqueToken;\n }\n if (visitToken) {\n headers[SHOPIFY_STOREFRONT_S_HEADER] = visitToken;\n headers[SHOPIFY_VISIT_TOKEN_HEADER] = visitToken;\n }\n }\n\n return fetch(getStorefrontApiUrl(), {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query: query.toString(),\n variables,\n }),\n })\n .then(\n (res) =>\n res.json() as StorefrontApiResponseOkPartial<ReturnDataGeneric>,\n )\n .catch((error) => {\n return {\n data: undefined,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n errors: error?.toString(),\n };\n });\n },\n [\n getPublicTokenHeaders,\n storefrontId,\n getStorefrontApiUrl,\n sameDomainForStorefrontApi,\n ],\n );\n}\n\nexport function useInstantCheckout(): {\n cart: Cart | undefined;\n checkoutUrl: Cart['checkoutUrl'];\n error: string | undefined;\n createInstantCheckout: (cartInput: CartInput) => Promise<void>;\n} {\n const [cart, updateCart] = useState<Cart | undefined>();\n const [checkoutUrl, updateCheckoutUrl] = useState<Cart['checkoutUrl']>();\n const [error, updateError] = useState<string | undefined>();\n\n const fetch = useCartFetch();\n\n const createInstantCheckout = useCallback(\n async (cartInput: CartInput) => {\n const {data, errors} = await fetch<{\n cartCreate: {cart: CartType};\n }>({\n query: CartCreate(defaultCartFragment),\n variables: {\n input: cartInput,\n },\n });\n\n if (errors) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n updateError(errors.toString());\n updateCart(undefined);\n updateCheckoutUrl(undefined);\n }\n\n if (data?.cartCreate?.cart) {\n const dataCart = data.cartCreate.cart;\n updateCart({\n ...dataCart,\n lines: flattenConnection(dataCart.lines),\n note: dataCart.note ?? undefined,\n });\n updateCheckoutUrl(dataCart.checkoutUrl);\n }\n },\n [fetch],\n );\n\n return {cart, checkoutUrl, error, createInstantCheckout};\n}\n"],"mappings":";;;;;AAmBA,SAAgB,eAAe;CAC7B,MAAM,EACJ,cACA,uBACA,qBACA,+BACE,SAAS;AAEb,QAAO,aACgB,EACnB,OACA,gBAIgE;EAChE,MAAM,UAAU,sBAAsB,EAAC,aAAa,QAAO,CAAC;AAE5D,MAAI,aACF,SAAQ,gCAAgC;AAG1C,MAAI,CAAC,4BAA4B;GAG/B,MAAM,EAAC,aAAa,eAAc,mBAAmB;AACrD,OAAI,aAAa;AACf,YAAQ,+BAA+B;AACvC,YAAQ,+BAA+B;;AAEzC,OAAI,YAAY;AACd,YAAQ,+BAA+B;AACvC,YAAQ,8BAA8B;;;AAI1C,SAAO,MAAM,qBAAqB,EAAE;GAClC,QAAQ;GACR;GACA,MAAM,KAAK,UAAU;IACnB,OAAO,MAAM,UAAU;IACvB;IACD,CAAC;GACH,CAAC,CACC,MACE,QACC,IAAI,MAAM,CACb,CACA,OAAO,UAAU;AAChB,UAAO;IACL,MAAM,KAAA;IAEN,QAAQ,OAAO,UAAU;IAC1B;IACD;IAEN;EACE;EACA;EACA;EACA;EACD,CACF"}
@@ -1,11 +1,12 @@
1
+ //#region src/cart-queries.ts
1
2
  function getInContextVariables(includeVisitorConsent) {
2
- const base = `$country: CountryCode = ZZ
3
+ const base = `$country: CountryCode = ZZ
3
4
  $language: LanguageCode`;
4
- return includeVisitorConsent ? `${base}
5
+ return includeVisitorConsent ? `${base}
5
6
  $visitorConsent: VisitorConsent` : base;
6
7
  }
7
8
  function getInContextDirective(includeVisitorConsent) {
8
- return includeVisitorConsent ? `@inContext(
9
+ return includeVisitorConsent ? `@inContext(
9
10
  country: $country
10
11
  language: $language
11
12
  visitorConsent: $visitorConsent
@@ -14,9 +15,7 @@ function getInContextDirective(includeVisitorConsent) {
14
15
  language: $language
15
16
  )`;
16
17
  }
17
- const CartLineAdd = (cartFragment, options = {}) => (
18
- /* GraphQL */
19
- `
18
+ var CartLineAdd = (cartFragment, options = {}) => `
20
19
  mutation CartLineAdd(
21
20
  $cartId: ID!
22
21
  $lines: [CartLineInput!]!
@@ -32,11 +31,8 @@ const CartLineAdd = (cartFragment, options = {}) => (
32
31
  }
33
32
 
34
33
  ${cartFragment}
35
- `
36
- );
37
- const CartCreate = (cartFragment, options = {}) => (
38
- /* GraphQL */
39
- `
34
+ `;
35
+ var CartCreate = (cartFragment, options = {}) => `
40
36
  mutation CartCreate(
41
37
  $input: CartInput!
42
38
  $numCartLines: Int = 250
@@ -51,11 +47,8 @@ const CartCreate = (cartFragment, options = {}) => (
51
47
  }
52
48
 
53
49
  ${cartFragment}
54
- `
55
- );
56
- const CartLineRemove = (cartFragment, options = {}) => (
57
- /* GraphQL */
58
- `
50
+ `;
51
+ var CartLineRemove = (cartFragment, options = {}) => `
59
52
  mutation CartLineRemove(
60
53
  $cartId: ID!
61
54
  $lines: [ID!]!
@@ -71,11 +64,8 @@ const CartLineRemove = (cartFragment, options = {}) => (
71
64
  }
72
65
 
73
66
  ${cartFragment}
74
- `
75
- );
76
- const CartLineUpdate = (cartFragment, options = {}) => (
77
- /* GraphQL */
78
- `
67
+ `;
68
+ var CartLineUpdate = (cartFragment, options = {}) => `
79
69
  mutation CartLineUpdate(
80
70
  $cartId: ID!
81
71
  $lines: [CartLineUpdateInput!]!
@@ -91,11 +81,8 @@ const CartLineUpdate = (cartFragment, options = {}) => (
91
81
  }
92
82
 
93
83
  ${cartFragment}
94
- `
95
- );
96
- const CartNoteUpdate = (cartFragment, options = {}) => (
97
- /* GraphQL */
98
- `
84
+ `;
85
+ var CartNoteUpdate = (cartFragment, options = {}) => `
99
86
  mutation CartNoteUpdate(
100
87
  $cartId: ID!
101
88
  $note: String!
@@ -111,11 +98,8 @@ const CartNoteUpdate = (cartFragment, options = {}) => (
111
98
  }
112
99
 
113
100
  ${cartFragment}
114
- `
115
- );
116
- const CartBuyerIdentityUpdate = (cartFragment, options = {}) => (
117
- /* GraphQL */
118
- `
101
+ `;
102
+ var CartBuyerIdentityUpdate = (cartFragment, options = {}) => `
119
103
  mutation CartBuyerIdentityUpdate(
120
104
  $cartId: ID!
121
105
  $buyerIdentity: CartBuyerIdentityInput!
@@ -131,11 +115,8 @@ const CartBuyerIdentityUpdate = (cartFragment, options = {}) => (
131
115
  }
132
116
 
133
117
  ${cartFragment}
134
- `
135
- );
136
- const CartAttributesUpdate = (cartFragment, options = {}) => (
137
- /* GraphQL */
138
- `
118
+ `;
119
+ var CartAttributesUpdate = (cartFragment, options = {}) => `
139
120
  mutation CartAttributesUpdate(
140
121
  $attributes: [AttributeInput!]!
141
122
  $cartId: ID!
@@ -151,11 +132,8 @@ const CartAttributesUpdate = (cartFragment, options = {}) => (
151
132
  }
152
133
 
153
134
  ${cartFragment}
154
- `
155
- );
156
- const CartDiscountCodesUpdate = (cartFragment, options = {}) => (
157
- /* GraphQL */
158
- `
135
+ `;
136
+ var CartDiscountCodesUpdate = (cartFragment, options = {}) => `
159
137
  mutation CartDiscountCodesUpdate(
160
138
  $cartId: ID!
161
139
  $discountCodes: [String!]!
@@ -171,11 +149,8 @@ const CartDiscountCodesUpdate = (cartFragment, options = {}) => (
171
149
  }
172
150
 
173
151
  ${cartFragment}
174
- `
175
- );
176
- const CartQuery = (cartFragment, options = {}) => (
177
- /* GraphQL */
178
- `
152
+ `;
153
+ var CartQuery = (cartFragment, options = {}) => `
179
154
  query CartQuery(
180
155
  $id: ID!
181
156
  $numCartLines: Int = 250
@@ -188,11 +163,8 @@ const CartQuery = (cartFragment, options = {}) => (
188
163
  }
189
164
 
190
165
  ${cartFragment}
191
- `
192
- );
193
- const defaultCartFragment = (
194
- /* GraphQL */
195
- `
166
+ `;
167
+ var defaultCartFragment = `
196
168
  fragment CartFragment on Cart {
197
169
  id
198
170
  checkoutUrl
@@ -293,18 +265,8 @@ const defaultCartFragment = (
293
265
  width
294
266
  height
295
267
  }
296
- `
297
- );
298
- export {
299
- CartAttributesUpdate,
300
- CartBuyerIdentityUpdate,
301
- CartCreate,
302
- CartDiscountCodesUpdate,
303
- CartLineAdd,
304
- CartLineRemove,
305
- CartLineUpdate,
306
- CartNoteUpdate,
307
- CartQuery,
308
- defaultCartFragment
309
- };
310
- //# sourceMappingURL=cart-queries.mjs.map
268
+ `;
269
+ //#endregion
270
+ export { CartAttributesUpdate, CartBuyerIdentityUpdate, CartCreate, CartDiscountCodesUpdate, CartLineAdd, CartLineRemove, CartLineUpdate, CartNoteUpdate, CartQuery, defaultCartFragment };
271
+
272
+ //# sourceMappingURL=cart-queries.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart-queries.mjs","sources":["../../src/cart-queries.ts"],"sourcesContent":["type CartQueryOptions = {\n includeVisitorConsent?: boolean;\n};\n\nfunction getInContextVariables(includeVisitorConsent: boolean): string {\n const base = `$country: CountryCode = ZZ\n $language: LanguageCode`;\n\n return includeVisitorConsent\n ? `${base}\n $visitorConsent: VisitorConsent`\n : base;\n}\n\nfunction getInContextDirective(includeVisitorConsent: boolean): string {\n return includeVisitorConsent\n ? `@inContext(\n country: $country\n language: $language\n visitorConsent: $visitorConsent\n )`\n : `@inContext(\n country: $country\n language: $language\n )`;\n}\n\nexport const CartLineAdd = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartLineAdd(\n $cartId: ID!\n $lines: [CartLineInput!]!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartCreate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartCreate(\n $input: CartInput!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartCreate(input: $input) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartLineRemove = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartLineRemove(\n $cartId: ID!\n $lines: [ID!]!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartLinesRemove(cartId: $cartId, lineIds: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartLineUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartLineUpdate(\n $cartId: ID!\n $lines: [CartLineUpdateInput!]!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartNoteUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartNoteUpdate(\n $cartId: ID!\n $note: String!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartNoteUpdate(cartId: $cartId, note: $note) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartBuyerIdentityUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartBuyerIdentityUpdate(\n $cartId: ID!\n $buyerIdentity: CartBuyerIdentityInput!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: $buyerIdentity) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartAttributesUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartAttributesUpdate(\n $attributes: [AttributeInput!]!\n $cartId: ID!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartDiscountCodesUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartDiscountCodesUpdate(\n $cartId: ID!\n $discountCodes: [String!]!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartQuery = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n query CartQuery(\n $id: ID!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cart(id: $id) {\n ...CartFragment\n }\n }\n\n ${cartFragment}\n`;\n\nexport const defaultCartFragment = /* GraphQL */ `\n fragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPrice {\n ...MoneyFragment\n }\n price {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n id\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n applicable\n }\n }\n\n fragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n }\n fragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n }\n`;\n"],"names":[],"mappings":"AAIA,SAAS,sBAAsB,uBAAwC;AACrE,QAAM,OAAO;AAAA;AAGb,SAAO,wBACH,GAAG,IAAI;AAAA,uCAEP;AACN;AAEA,SAAS,sBAAsB,uBAAwC;AACrE,SAAO,wBACH;AAAA;AAAA;AAAA;AAAA,OAKA;AAAA;AAAA;AAAA;AAIN;AAEO,MAAM,cAAc,CACzB,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ7D,YAAY;AAAA;AAAA;AAGT,MAAM,aAAa,CACxB,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,MAIrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ7D,YAAY;AAAA;AAAA;AAGT,MAAM,iBAAiB,CAC5B,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ7D,YAAY;AAAA;AAAA;AAGT,MAAM,iBAAiB,CAC5B,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ7D,YAAY;AAAA;AAAA;AAGT,MAAM,iBAAiB,CAC5B,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ7D,YAAY;AAAA;AAAA;AAGT,MAAM,0BAA0B,CACrC,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ7D,YAAY;AAAA;AAAA;AAGT,MAAM,uBAAuB,CAClC,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ7D,YAAY;AAAA;AAAA;AAGT,MAAM,0BAA0B,CACrC,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ7D,YAAY;AAAA;AAAA;AAGT,MAAM,YAAY,CACvB,cACA,UAA4B,CAAA;AAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,MAIrB,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA,IAE/D,sBAAsB,QAAQ,yBAAyB,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAM7D,YAAY;AAAA;AAAA;AAGT,MAAM;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"cart-queries.mjs","names":[],"sources":["../../src/cart-queries.ts"],"sourcesContent":["type CartQueryOptions = {\n includeVisitorConsent?: boolean;\n};\n\nfunction getInContextVariables(includeVisitorConsent: boolean): string {\n const base = `$country: CountryCode = ZZ\n $language: LanguageCode`;\n\n return includeVisitorConsent\n ? `${base}\n $visitorConsent: VisitorConsent`\n : base;\n}\n\nfunction getInContextDirective(includeVisitorConsent: boolean): string {\n return includeVisitorConsent\n ? `@inContext(\n country: $country\n language: $language\n visitorConsent: $visitorConsent\n )`\n : `@inContext(\n country: $country\n language: $language\n )`;\n}\n\nexport const CartLineAdd = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartLineAdd(\n $cartId: ID!\n $lines: [CartLineInput!]!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartCreate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartCreate(\n $input: CartInput!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartCreate(input: $input) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartLineRemove = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartLineRemove(\n $cartId: ID!\n $lines: [ID!]!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartLinesRemove(cartId: $cartId, lineIds: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartLineUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartLineUpdate(\n $cartId: ID!\n $lines: [CartLineUpdateInput!]!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartNoteUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartNoteUpdate(\n $cartId: ID!\n $note: String!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartNoteUpdate(cartId: $cartId, note: $note) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartBuyerIdentityUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartBuyerIdentityUpdate(\n $cartId: ID!\n $buyerIdentity: CartBuyerIdentityInput!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: $buyerIdentity) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartAttributesUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartAttributesUpdate(\n $attributes: [AttributeInput!]!\n $cartId: ID!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartDiscountCodesUpdate = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n mutation CartDiscountCodesUpdate(\n $cartId: ID!\n $discountCodes: [String!]!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartQuery = (\n cartFragment: string,\n options: CartQueryOptions = {},\n): string => /* GraphQL */ `\n query CartQuery(\n $id: ID!\n $numCartLines: Int = 250\n ${getInContextVariables(options.includeVisitorConsent ?? false)}\n )\n ${getInContextDirective(options.includeVisitorConsent ?? false)} {\n cart(id: $id) {\n ...CartFragment\n }\n }\n\n ${cartFragment}\n`;\n\nexport const defaultCartFragment = /* GraphQL */ `\n fragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPrice {\n ...MoneyFragment\n }\n price {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n id\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n applicable\n }\n }\n\n fragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n }\n fragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n }\n`;\n"],"mappings":";AAIA,SAAS,sBAAsB,uBAAwC;CACrE,MAAM,OAAO;;AAGb,QAAO,wBACH,GAAG,KAAK;uCAER;;AAGN,SAAS,sBAAsB,uBAAwC;AACrE,QAAO,wBACH;;;;OAKA;;;;;AAMN,IAAa,eACX,cACA,UAA4B,EAAE,KACL;;;;;MAKrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;;;IAQ9D,aAAa;;AAGjB,IAAa,cACX,cACA,UAA4B,EAAE,KACL;;;;MAIrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;;;IAQ9D,aAAa;;AAGjB,IAAa,kBACX,cACA,UAA4B,EAAE,KACL;;;;;MAKrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;;;IAQ9D,aAAa;;AAGjB,IAAa,kBACX,cACA,UAA4B,EAAE,KACL;;;;;MAKrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;;;IAQ9D,aAAa;;AAGjB,IAAa,kBACX,cACA,UAA4B,EAAE,KACL;;;;;MAKrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;;;IAQ9D,aAAa;;AAGjB,IAAa,2BACX,cACA,UAA4B,EAAE,KACL;;;;;MAKrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;;;IAQ9D,aAAa;;AAGjB,IAAa,wBACX,cACA,UAA4B,EAAE,KACL;;;;;MAKrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;;;IAQ9D,aAAa;;AAGjB,IAAa,2BACX,cACA,UAA4B,EAAE,KACL;;;;;MAKrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;;;IAQ9D,aAAa;;AAGjB,IAAa,aACX,cACA,UAA4B,EAAE,KACL;;;;MAIrB,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;IAEhE,sBAAsB,QAAQ,yBAAyB,MAAM,CAAC;;;;;;IAM9D,aAAa;;AAGjB,IAAa,sBAAoC"}
@@ -1,22 +1,33 @@
1
- const storefrontApiCustomScalars = {
2
- // Keep in sync with the definitions in the app/nextjs/codegen.ts!
3
- DateTime: "string",
4
- Decimal: "string",
5
- HTML: "string",
6
- URL: "string",
7
- Color: "string",
8
- UnsignedInt64: "string"
1
+ //#region src/codegen.helpers.ts
2
+ /**
3
+ * Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly.
4
+ * Reference for the GraphQL types: https://shopify.dev/docs/api/storefront/2026-04/scalars/HTML
5
+ * Note: JSON is generated as 'unknown' by default.
6
+ * @publicDocs
7
+ */
8
+ var storefrontApiCustomScalars = {
9
+ DateTime: "string",
10
+ Decimal: "string",
11
+ HTML: "string",
12
+ URL: "string",
13
+ Color: "string",
14
+ UnsignedInt64: "string"
9
15
  };
10
- const customerAccountApiCustomScalars = {
11
- DateTime: "string",
12
- Decimal: "string",
13
- HTML: "string",
14
- ISO8601DateTime: "string",
15
- URL: "string",
16
- UnsignedInt64: "string"
16
+ /**
17
+ * Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly.
18
+ * Reference for the GraphQL types: https://shopify.dev/docs/api/customer/2026-04/scalars/HTML
19
+ * Note: JSON is generated as 'unknown' by default.
20
+ * @publicDocs
21
+ */
22
+ var customerAccountApiCustomScalars = {
23
+ DateTime: "string",
24
+ Decimal: "string",
25
+ HTML: "string",
26
+ ISO8601DateTime: "string",
27
+ URL: "string",
28
+ UnsignedInt64: "string"
17
29
  };
18
- export {
19
- customerAccountApiCustomScalars,
20
- storefrontApiCustomScalars
21
- };
22
- //# sourceMappingURL=codegen.helpers.mjs.map
30
+ //#endregion
31
+ export { customerAccountApiCustomScalars, storefrontApiCustomScalars };
32
+
33
+ //# sourceMappingURL=codegen.helpers.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.helpers.mjs","sources":["../../src/codegen.helpers.ts"],"sourcesContent":["/**\n * Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly.\n * Reference for the GraphQL types: https://shopify.dev/docs/api/storefront/2026-04/scalars/HTML\n * Note: JSON is generated as 'unknown' by default.\n * @publicDocs\n */\nexport const storefrontApiCustomScalars = {\n // Keep in sync with the definitions in the app/nextjs/codegen.ts!\n DateTime: 'string',\n Decimal: 'string',\n HTML: 'string',\n URL: 'string',\n Color: 'string',\n UnsignedInt64: 'string',\n};\n\n/**\n * Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly.\n * Reference for the GraphQL types: https://shopify.dev/docs/api/customer/2026-04/scalars/HTML\n * Note: JSON is generated as 'unknown' by default.\n * @publicDocs\n */\nexport const customerAccountApiCustomScalars = {\n DateTime: 'string',\n Decimal: 'string',\n HTML: 'string',\n ISO8601DateTime: 'string',\n URL: 'string',\n UnsignedInt64: 'string',\n};\n"],"names":[],"mappings":"AAMO,MAAM,6BAA6B;AAAA;AAAA,EAExC,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,eAAe;AACjB;AAQO,MAAM,kCAAkC;AAAA,EAC7C,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,KAAK;AAAA,EACL,eAAe;AACjB;"}
1
+ {"version":3,"file":"codegen.helpers.mjs","names":[],"sources":["../../src/codegen.helpers.ts"],"sourcesContent":["/**\n * Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly.\n * Reference for the GraphQL types: https://shopify.dev/docs/api/storefront/2026-04/scalars/HTML\n * Note: JSON is generated as 'unknown' by default.\n * @publicDocs\n */\nexport const storefrontApiCustomScalars = {\n // Keep in sync with the definitions in the app/nextjs/codegen.ts!\n DateTime: 'string',\n Decimal: 'string',\n HTML: 'string',\n URL: 'string',\n Color: 'string',\n UnsignedInt64: 'string',\n};\n\n/**\n * Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly.\n * Reference for the GraphQL types: https://shopify.dev/docs/api/customer/2026-04/scalars/HTML\n * Note: JSON is generated as 'unknown' by default.\n * @publicDocs\n */\nexport const customerAccountApiCustomScalars = {\n DateTime: 'string',\n Decimal: 'string',\n HTML: 'string',\n ISO8601DateTime: 'string',\n URL: 'string',\n UnsignedInt64: 'string',\n};\n"],"mappings":";;;;;;;AAMA,IAAa,6BAA6B;CAExC,UAAU;CACV,SAAS;CACT,MAAM;CACN,KAAK;CACL,OAAO;CACP,eAAe;CAChB;;;;;;;AAQD,IAAa,kCAAkC;CAC7C,UAAU;CACV,SAAS;CACT,MAAM;CACN,iBAAiB;CACjB,KAAK;CACL,eAAe;CAChB"}
@@ -1,50 +1,52 @@
1
1
  import { SHOPIFY_S, SHOPIFY_Y } from "./cart-constants.mjs";
2
2
  import { getTrackingValues } from "./tracking-utils.mjs";
3
- const tokenHash = "xxxx-4xxx-xxxx-xxxxxxxxxxxx";
3
+ //#region src/cookies-utils.tsx
4
+ var tokenHash = "xxxx-4xxx-xxxx-xxxxxxxxxxxx";
4
5
  function buildUUID() {
5
- let hash = "";
6
- try {
7
- const crypto = window.crypto;
8
- const randomValuesArray = new Uint16Array(31);
9
- crypto.getRandomValues(randomValuesArray);
10
- let i = 0;
11
- hash = tokenHash.replace(/[x]/g, (c) => {
12
- const r = randomValuesArray[i] % 16;
13
- const v = c === "x" ? r : r & 3 | 8;
14
- i++;
15
- return v.toString(16);
16
- }).toUpperCase();
17
- } catch (err) {
18
- hash = tokenHash.replace(/[x]/g, (c) => {
19
- const r = Math.random() * 16 | 0;
20
- const v = c === "x" ? r : r & 3 | 8;
21
- return v.toString(16);
22
- }).toUpperCase();
23
- }
24
- return `${hexTime()}-${hash}`;
6
+ let hash = "";
7
+ try {
8
+ const crypto = window.crypto;
9
+ const randomValuesArray = new Uint16Array(31);
10
+ crypto.getRandomValues(randomValuesArray);
11
+ let i = 0;
12
+ hash = tokenHash.replace(/[x]/g, (c) => {
13
+ const r = randomValuesArray[i] % 16;
14
+ const v = c === "x" ? r : r & 3 | 8;
15
+ i++;
16
+ return v.toString(16);
17
+ }).toUpperCase();
18
+ } catch (err) {
19
+ hash = tokenHash.replace(/[x]/g, (c) => {
20
+ const r = Math.random() * 16 | 0;
21
+ return (c === "x" ? r : r & 3 | 8).toString(16);
22
+ }).toUpperCase();
23
+ }
24
+ return `${hexTime()}-${hash}`;
25
25
  }
26
26
  function hexTime() {
27
- let dateNumber = 0;
28
- let perfNumber = 0;
29
- dateNumber = (/* @__PURE__ */ new Date()).getTime() >>> 0;
30
- try {
31
- perfNumber = performance.now() >>> 0;
32
- } catch (err) {
33
- perfNumber = 0;
34
- }
35
- const output = Math.abs(dateNumber + perfNumber).toString(16).toLowerCase();
36
- return output.padStart(8, "0");
27
+ let dateNumber = 0;
28
+ let perfNumber = 0;
29
+ dateNumber = (/* @__PURE__ */ new Date()).getTime() >>> 0;
30
+ try {
31
+ perfNumber = performance.now() >>> 0;
32
+ } catch (err) {
33
+ perfNumber = 0;
34
+ }
35
+ return Math.abs(dateNumber + perfNumber).toString(16).toLowerCase().padStart(8, "0");
37
36
  }
37
+ /**
38
+ * Gets the values of _shopify_y and _shopify_s cookies from the provided cookie string. If the Shopify cookies doesn't exist, this method will return an empty string for each missing cookie.
39
+ * @deprecated Use getTrackingValues instead.
40
+ * @publicDocs
41
+ */
38
42
  function getShopifyCookies(cookies) {
39
- const trackingValues = getTrackingValues(cookies);
40
- return {
41
- [SHOPIFY_Y]: trackingValues.uniqueToken,
42
- [SHOPIFY_S]: trackingValues.visitToken
43
- };
43
+ const trackingValues = getTrackingValues(cookies);
44
+ return {
45
+ [SHOPIFY_Y]: trackingValues.uniqueToken,
46
+ [SHOPIFY_S]: trackingValues.visitToken
47
+ };
44
48
  }
45
- export {
46
- buildUUID,
47
- getShopifyCookies,
48
- hexTime
49
- };
50
- //# sourceMappingURL=cookies-utils.mjs.map
49
+ //#endregion
50
+ export { buildUUID, getShopifyCookies };
51
+
52
+ //# sourceMappingURL=cookies-utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookies-utils.mjs","sources":["../../src/cookies-utils.tsx"],"sourcesContent":["import {ShopifyCookies} from './analytics-types.js';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\nimport {getTrackingValues} from './tracking-utils.js';\n\nconst tokenHash = 'xxxx-4xxx-xxxx-xxxxxxxxxxxx';\n\nexport function buildUUID(): string {\n let hash = '';\n\n try {\n const crypto: Crypto = window.crypto;\n const randomValuesArray = new Uint16Array(31);\n crypto.getRandomValues(randomValuesArray);\n\n // Generate a strong UUID\n let i = 0;\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = randomValuesArray[i] % 16;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n i++;\n return v.toString(16);\n })\n .toUpperCase();\n } catch (err) {\n // crypto not available, generate weak UUID\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n })\n .toUpperCase();\n }\n\n return `${hexTime()}-${hash}`;\n}\n\nexport function hexTime(): string {\n // 32 bit representations of new Date().getTime() and performance.now()\n let dateNumber = 0;\n let perfNumber = 0;\n\n // Result of zero-fill right shift is always positive\n dateNumber = new Date().getTime() >>> 0;\n\n try {\n perfNumber = performance.now() >>> 0;\n } catch (err) {\n perfNumber = 0;\n }\n\n const output = Math.abs(dateNumber + perfNumber)\n .toString(16)\n .toLowerCase();\n\n // Ensure the output is exactly 8 characters\n return output.padStart(8, '0');\n}\n\n/**\n * Gets the values of _shopify_y and _shopify_s cookies from the provided cookie string. If the Shopify cookies doesn't exist, this method will return an empty string for each missing cookie.\n * @deprecated Use getTrackingValues instead.\n * @publicDocs\n */\nexport function getShopifyCookies(cookies: string): ShopifyCookies {\n // @ts-expect-error - Undeclared argument type\n const trackingValues = getTrackingValues(cookies);\n\n return {\n [SHOPIFY_Y]: trackingValues.uniqueToken,\n [SHOPIFY_S]: trackingValues.visitToken,\n };\n}\n"],"names":[],"mappings":";;AAIA,MAAM,YAAY;AAEX,SAAS,YAAoB;AAClC,MAAI,OAAO;AAEX,MAAI;AACF,UAAM,SAAiB,OAAO;AAC9B,UAAM,oBAAoB,IAAI,YAAY,EAAE;AAC5C,WAAO,gBAAgB,iBAAiB;AAGxC,QAAI,IAAI;AACR,WAAO,UACJ,QAAQ,QAAQ,CAAC,MAAsB;AACtC,YAAM,IAAI,kBAAkB,CAAC,IAAI;AACjC,YAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AACtC;AACA,aAAO,EAAE,SAAS,EAAE;AAAA,IACtB,CAAC,EACA,YAAA;AAAA,EACL,SAAS,KAAK;AAEZ,WAAO,UACJ,QAAQ,QAAQ,CAAC,MAAsB;AACtC,YAAM,IAAK,KAAK,OAAA,IAAW,KAAM;AACjC,YAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AACtC,aAAO,EAAE,SAAS,EAAE;AAAA,IACtB,CAAC,EACA,YAAA;AAAA,EACL;AAEA,SAAO,GAAG,QAAA,CAAS,IAAI,IAAI;AAC7B;AAEO,SAAS,UAAkB;AAEhC,MAAI,aAAa;AACjB,MAAI,aAAa;AAGjB,gBAAa,oBAAI,QAAO,QAAA,MAAc;AAEtC,MAAI;AACF,iBAAa,YAAY,UAAU;AAAA,EACrC,SAAS,KAAK;AACZ,iBAAa;AAAA,EACf;AAEA,QAAM,SAAS,KAAK,IAAI,aAAa,UAAU,EAC5C,SAAS,EAAE,EACX,YAAA;AAGH,SAAO,OAAO,SAAS,GAAG,GAAG;AAC/B;AAOO,SAAS,kBAAkB,SAAiC;AAEjE,QAAM,iBAAiB,kBAAkB,OAAO;AAEhD,SAAO;AAAA,IACL,CAAC,SAAS,GAAG,eAAe;AAAA,IAC5B,CAAC,SAAS,GAAG,eAAe;AAAA,EAAA;AAEhC;"}
1
+ {"version":3,"file":"cookies-utils.mjs","names":[],"sources":["../../src/cookies-utils.tsx"],"sourcesContent":["import {ShopifyCookies} from './analytics-types.js';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\nimport {getTrackingValues} from './tracking-utils.js';\n\nconst tokenHash = 'xxxx-4xxx-xxxx-xxxxxxxxxxxx';\n\nexport function buildUUID(): string {\n let hash = '';\n\n try {\n const crypto: Crypto = window.crypto;\n const randomValuesArray = new Uint16Array(31);\n crypto.getRandomValues(randomValuesArray);\n\n // Generate a strong UUID\n let i = 0;\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = randomValuesArray[i] % 16;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n i++;\n return v.toString(16);\n })\n .toUpperCase();\n } catch (err) {\n // crypto not available, generate weak UUID\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n })\n .toUpperCase();\n }\n\n return `${hexTime()}-${hash}`;\n}\n\nexport function hexTime(): string {\n // 32 bit representations of new Date().getTime() and performance.now()\n let dateNumber = 0;\n let perfNumber = 0;\n\n // Result of zero-fill right shift is always positive\n dateNumber = new Date().getTime() >>> 0;\n\n try {\n perfNumber = performance.now() >>> 0;\n } catch (err) {\n perfNumber = 0;\n }\n\n const output = Math.abs(dateNumber + perfNumber)\n .toString(16)\n .toLowerCase();\n\n // Ensure the output is exactly 8 characters\n return output.padStart(8, '0');\n}\n\n/**\n * Gets the values of _shopify_y and _shopify_s cookies from the provided cookie string. If the Shopify cookies doesn't exist, this method will return an empty string for each missing cookie.\n * @deprecated Use getTrackingValues instead.\n * @publicDocs\n */\nexport function getShopifyCookies(cookies: string): ShopifyCookies {\n // @ts-expect-error - Undeclared argument type\n const trackingValues = getTrackingValues(cookies);\n\n return {\n [SHOPIFY_Y]: trackingValues.uniqueToken,\n [SHOPIFY_S]: trackingValues.visitToken,\n };\n}\n"],"mappings":";;;AAIA,IAAM,YAAY;AAElB,SAAgB,YAAoB;CAClC,IAAI,OAAO;AAEX,KAAI;EACF,MAAM,SAAiB,OAAO;EAC9B,MAAM,oBAAoB,IAAI,YAAY,GAAG;AAC7C,SAAO,gBAAgB,kBAAkB;EAGzC,IAAI,IAAI;AACR,SAAO,UACJ,QAAQ,SAAS,MAAsB;GACtC,MAAM,IAAI,kBAAkB,KAAK;GACjC,MAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AACtC;AACA,UAAO,EAAE,SAAS,GAAG;IACrB,CACD,aAAa;UACT,KAAK;AAEZ,SAAO,UACJ,QAAQ,SAAS,MAAsB;GACtC,MAAM,IAAK,KAAK,QAAQ,GAAG,KAAM;AAEjC,WADU,MAAM,MAAM,IAAK,IAAI,IAAO,GAC7B,SAAS,GAAG;IACrB,CACD,aAAa;;AAGlB,QAAO,GAAG,SAAS,CAAC,GAAG;;AAGzB,SAAgB,UAAkB;CAEhC,IAAI,aAAa;CACjB,IAAI,aAAa;AAGjB,+BAAa,IAAI,MAAM,EAAC,SAAS,KAAK;AAEtC,KAAI;AACF,eAAa,YAAY,KAAK,KAAK;UAC5B,KAAK;AACZ,eAAa;;AAQf,QALe,KAAK,IAAI,aAAa,WAAW,CAC7C,SAAS,GAAG,CACZ,aAAa,CAGF,SAAS,GAAG,IAAI;;;;;;;AAQhC,SAAgB,kBAAkB,SAAiC;CAEjE,MAAM,iBAAiB,kBAAkB,QAAQ;AAEjD,QAAO;GACJ,YAAY,eAAe;GAC3B,YAAY,eAAe;EAC7B"}
@@ -1,31 +1,25 @@
1
+ //#region src/flatten-connection.ts
2
+ /**
3
+ * The `flattenConnection` utility transforms a connection object from the Storefront API (for example, [Product-related connections](https://shopify.dev/api/storefront/reference/products/product)) into a flat array of nodes.
4
+ * The utility works with either `nodes` or `edges.node`.
5
+ *
6
+ * If `connection` is null or undefined, will return an empty array instead in production. In development, an error will be thrown.
7
+ * @publicDocs
8
+ */
1
9
  function flattenConnection(connection) {
2
- if (!connection) {
3
- const noConnectionErr = `flattenConnection(): needs a 'connection' to flatten, but received '${connection ?? ""}' instead.`;
4
- {
5
- throw new Error(noConnectionErr);
6
- }
7
- }
8
- if ("nodes" in connection) {
9
- return connection.nodes;
10
- }
11
- if ("edges" in connection && Array.isArray(connection.edges)) {
12
- return connection.edges.map((edge) => {
13
- if (!(edge == null ? void 0 : edge.node)) {
14
- throw new Error(
15
- "flattenConnection(): Connection edges must contain nodes"
16
- );
17
- }
18
- return edge.node;
19
- });
20
- }
21
- {
22
- console.warn(
23
- `flattenConnection(): The connection did not contain either "nodes" or "edges.node". Returning an empty array.`
24
- );
25
- }
26
- return [];
10
+ if (!connection) {
11
+ const noConnectionErr = `flattenConnection(): needs a 'connection' to flatten, but received '${connection ?? ""}' instead.`;
12
+ throw new Error(noConnectionErr);
13
+ }
14
+ if ("nodes" in connection) return connection.nodes;
15
+ if ("edges" in connection && Array.isArray(connection.edges)) return connection.edges.map((edge) => {
16
+ if (!edge?.node) throw new Error("flattenConnection(): Connection edges must contain nodes");
17
+ return edge.node;
18
+ });
19
+ console.warn(`flattenConnection(): The connection did not contain either "nodes" or "edges.node". Returning an empty array.`);
20
+ return [];
27
21
  }
28
- export {
29
- flattenConnection
30
- };
31
- //# sourceMappingURL=flatten-connection.mjs.map
22
+ //#endregion
23
+ export { flattenConnection };
24
+
25
+ //# sourceMappingURL=flatten-connection.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"flatten-connection.mjs","sources":["../../src/flatten-connection.ts"],"sourcesContent":["import type {PartialDeep} from 'type-fest';\n\n/**\n * The `flattenConnection` utility transforms a connection object from the Storefront API (for example, [Product-related connections](https://shopify.dev/api/storefront/reference/products/product)) into a flat array of nodes.\n * The utility works with either `nodes` or `edges.node`.\n *\n * If `connection` is null or undefined, will return an empty array instead in production. In development, an error will be thrown.\n * @publicDocs\n */\nexport function flattenConnection<\n ConnectionGeneric extends\n | PartialDeep<ConnectionEdges, {recurseIntoArrays: true}>\n | PartialDeep<ConnectionNodes, {recurseIntoArrays: true}>\n | ConnectionEdges\n | ConnectionNodes,\n>(\n connection?: ConnectionGeneric,\n): ConnectionGeneric extends\n | {\n edges: Array<{node: infer ConnectionBaseType}>;\n }\n | {\n nodes: Array<infer ConnectionBaseType>;\n }\n ? // if it's not a PartialDeep, then return the infered type\n ConnectionBaseType[]\n : ConnectionGeneric extends\n | PartialDeep<\n {edges: {node: Array<infer ConnectionBaseType>}},\n {recurseIntoArrays: true}\n >\n | PartialDeep<\n {\n nodes: Array<infer ConnectionBaseType>;\n },\n {recurseIntoArrays: true}\n >\n ? // if it is a PartialDeep, return a PartialDeep inferred type\n PartialDeep<ConnectionBaseType[], {recurseIntoArrays: true}>\n : never {\n if (!connection) {\n const noConnectionErr = `flattenConnection(): needs a 'connection' to flatten, but received '${\n connection ?? ''\n }' instead.`;\n if (__HYDROGEN_DEV__) {\n throw new Error(noConnectionErr);\n } else {\n console.error(noConnectionErr + ` Returning an empty array`);\n // @ts-expect-error We don't want to crash prod, so return an empty array\n return [];\n }\n }\n\n if ('nodes' in connection) {\n // @ts-expect-error return type is failing\n return connection.nodes;\n }\n\n if ('edges' in connection && Array.isArray(connection.edges)) {\n // @ts-expect-error return type is failing\n return connection.edges.map((edge) => {\n if (!edge?.node) {\n throw new Error(\n 'flattenConnection(): Connection edges must contain nodes',\n );\n }\n return edge.node;\n }) as Array<unknown>;\n }\n\n if (__HYDROGEN_DEV__) {\n console.warn(\n `flattenConnection(): The connection did not contain either \"nodes\" or \"edges.node\". Returning an empty array.`,\n );\n }\n\n // @ts-expect-error We don't want to crash prod, so return an empty array\n return [];\n}\n\ntype ConnectionEdges = {\n edges: Array<{node: unknown}>;\n};\n\ntype ConnectionNodes = {\n nodes: Array<unknown>;\n};\n\n// This is only for documentation purposes, and it is not used in the code.\n/** @publicDocs */\nexport interface ConnectionGenericForDoc {\n connection?: ConnectionEdges | ConnectionNodes;\n}\n/** @publicDocs */\nexport type FlattenConnectionReturnForDoc = unknown[];\n"],"names":[],"mappings":"AASO,SAAS,kBAOd,YAuBU;AACV,MAAI,CAAC,YAAY;AACf,UAAM,kBAAkB,uEACtB,cAAc,EAChB;AACsB;AACpB,YAAM,IAAI,MAAM,eAAe;AAAA,IACjC;AAAA,EAKF;AAEA,MAAI,WAAW,YAAY;AAEzB,WAAO,WAAW;AAAA,EACpB;AAEA,MAAI,WAAW,cAAc,MAAM,QAAQ,WAAW,KAAK,GAAG;AAE5D,WAAO,WAAW,MAAM,IAAI,CAAC,SAAS;AACpC,UAAI,EAAC,6BAAM,OAAM;AACf,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAAA,MAEJ;AACA,aAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH;AAEsB;AACpB,YAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAGA,SAAO,CAAA;AACT;"}
1
+ {"version":3,"file":"flatten-connection.mjs","names":[],"sources":["../../src/flatten-connection.ts"],"sourcesContent":["import type {PartialDeep} from 'type-fest';\n\n/**\n * The `flattenConnection` utility transforms a connection object from the Storefront API (for example, [Product-related connections](https://shopify.dev/api/storefront/reference/products/product)) into a flat array of nodes.\n * The utility works with either `nodes` or `edges.node`.\n *\n * If `connection` is null or undefined, will return an empty array instead in production. In development, an error will be thrown.\n * @publicDocs\n */\nexport function flattenConnection<\n ConnectionGeneric extends\n | PartialDeep<ConnectionEdges, {recurseIntoArrays: true}>\n | PartialDeep<ConnectionNodes, {recurseIntoArrays: true}>\n | ConnectionEdges\n | ConnectionNodes,\n>(\n connection?: ConnectionGeneric,\n): ConnectionGeneric extends\n | {\n edges: Array<{node: infer ConnectionBaseType}>;\n }\n | {\n nodes: Array<infer ConnectionBaseType>;\n }\n ? // if it's not a PartialDeep, then return the infered type\n ConnectionBaseType[]\n : ConnectionGeneric extends\n | PartialDeep<\n {edges: {node: Array<infer ConnectionBaseType>}},\n {recurseIntoArrays: true}\n >\n | PartialDeep<\n {\n nodes: Array<infer ConnectionBaseType>;\n },\n {recurseIntoArrays: true}\n >\n ? // if it is a PartialDeep, return a PartialDeep inferred type\n PartialDeep<ConnectionBaseType[], {recurseIntoArrays: true}>\n : never {\n if (!connection) {\n const noConnectionErr = `flattenConnection(): needs a 'connection' to flatten, but received '${\n connection ?? ''\n }' instead.`;\n if (__HYDROGEN_DEV__) {\n throw new Error(noConnectionErr);\n } else {\n console.error(noConnectionErr + ` Returning an empty array`);\n // @ts-expect-error We don't want to crash prod, so return an empty array\n return [];\n }\n }\n\n if ('nodes' in connection) {\n // @ts-expect-error return type is failing\n return connection.nodes;\n }\n\n if ('edges' in connection && Array.isArray(connection.edges)) {\n // @ts-expect-error return type is failing\n return connection.edges.map((edge) => {\n if (!edge?.node) {\n throw new Error(\n 'flattenConnection(): Connection edges must contain nodes',\n );\n }\n return edge.node;\n }) as Array<unknown>;\n }\n\n if (__HYDROGEN_DEV__) {\n console.warn(\n `flattenConnection(): The connection did not contain either \"nodes\" or \"edges.node\". Returning an empty array.`,\n );\n }\n\n // @ts-expect-error We don't want to crash prod, so return an empty array\n return [];\n}\n\ntype ConnectionEdges = {\n edges: Array<{node: unknown}>;\n};\n\ntype ConnectionNodes = {\n nodes: Array<unknown>;\n};\n\n// This is only for documentation purposes, and it is not used in the code.\n/** @publicDocs */\nexport interface ConnectionGenericForDoc {\n connection?: ConnectionEdges | ConnectionNodes;\n}\n/** @publicDocs */\nexport type FlattenConnectionReturnForDoc = unknown[];\n"],"mappings":";;;;;;;;AASA,SAAgB,kBAOd,YAuBU;AACV,KAAI,CAAC,YAAY;EACf,MAAM,kBAAkB,uEACtB,cAAc,GACf;AAEC,QAAM,IAAI,MAAM,gBAAgB;;AAQpC,KAAI,WAAW,WAEb,QAAO,WAAW;AAGpB,KAAI,WAAW,cAAc,MAAM,QAAQ,WAAW,MAAM,CAE1D,QAAO,WAAW,MAAM,KAAK,SAAS;AACpC,MAAI,CAAC,MAAM,KACT,OAAM,IAAI,MACR,2DACD;AAEH,SAAO,KAAK;GACZ;AAIF,SAAQ,KACN,gHACD;AAIH,QAAO,EAAE"}