@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 +1 @@
1
- {"version":3,"file":"analytics.mjs","sources":["../../src/analytics.ts"],"sourcesContent":["import type {\n ClientBrowserParameters,\n ShopifyAddToCartPayload,\n ShopifyAnalytics,\n ShopifyPageViewPayload,\n ShopifyMonorailEvent,\n} from './analytics-types.js';\nimport {AnalyticsEventName} from './analytics-constants.js';\nimport {errorIfServer} from './analytics-utils.js';\n\nimport {pageView as trekkiePageView} from './analytics-schema-trekkie-storefront-page-view.js';\nimport {\n pageView as customerPageView,\n pageView2 as customerPageView2,\n collectionView as customerCollectionView,\n productView as customerProductView,\n searchView as customerSearchView,\n addToCart as customerAddToCart,\n} from './analytics-schema-custom-storefront-customer-tracking.js';\nimport {getTrackingValues} from './tracking-utils.js';\n\n/**\n * Set user and session cookies and refresh the expiry time. If `event.payload.hasUserConsent` is false, no analytics event will happen.\n * @param event - The analytics event.\n * @param shopDomain - The Online Store domain to sent Shopify analytics under the same\n * top level domain.\n * @publicDocs\n */\nexport function sendShopifyAnalytics(\n event: ShopifyAnalytics,\n shopDomain?: string,\n): Promise<void> {\n const {eventName, payload} = event;\n if (!payload.hasUserConsent) return Promise.resolve();\n\n let events: ShopifyMonorailEvent[] = [];\n const pageViewPayload = payload as ShopifyPageViewPayload;\n\n if (eventName === AnalyticsEventName.PAGE_VIEW) {\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView(pageViewPayload),\n );\n } else if (eventName === AnalyticsEventName.ADD_TO_CART) {\n events = events.concat(\n customerAddToCart(payload as ShopifyAddToCartPayload),\n );\n } else if (eventName === AnalyticsEventName.PAGE_VIEW_2) {\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView2(pageViewPayload),\n );\n } else if (eventName === AnalyticsEventName.COLLECTION_VIEW) {\n events = events.concat(customerCollectionView(pageViewPayload));\n } else if (eventName === AnalyticsEventName.PRODUCT_VIEW) {\n events = events.concat(customerProductView(pageViewPayload));\n } else if (eventName === AnalyticsEventName.SEARCH_VIEW) {\n events = events.concat(customerSearchView(pageViewPayload));\n }\n\n if (events.length) {\n return sendToShopify(events, shopDomain);\n } else {\n return Promise.resolve();\n }\n}\n\n// Shopify monorail return invalid agent for Lighthouse userAgents\nfunction isLighthouseUserAgent(): boolean {\n if (typeof window === 'undefined' || !window.navigator) return false;\n return /Chrome-Lighthouse/.test(window.navigator.userAgent);\n}\n\ntype MonorailResponse = {\n status: number;\n message: string;\n};\n\nconst ERROR_MESSAGE = 'sendShopifyAnalytics request is unsuccessful';\n\nfunction sendToShopify(\n events: ShopifyMonorailEvent[],\n shopDomain?: string,\n): Promise<void> {\n if (isLighthouseUserAgent()) {\n return Promise.resolve();\n }\n\n const eventsToBeSent = {\n events,\n metadata: {\n event_sent_at_ms: Date.now(),\n },\n };\n\n try {\n return fetch(\n shopDomain\n ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch`\n : 'https://monorail-edge.shopifysvc.com/unstable/produce_batch',\n {\n method: 'post',\n headers: {\n 'content-type': 'text/plain',\n },\n body: JSON.stringify(eventsToBeSent),\n },\n )\n .then((response) => {\n if (!response.ok) {\n throw new Error('Response failed');\n }\n return response.text();\n })\n .then((data) => {\n if (data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const jsonResponse = JSON.parse(data);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n jsonResponse.result.forEach((eventResponse: MonorailResponse) => {\n if (eventResponse.status !== 200) {\n console.error(ERROR_MESSAGE, '\\n\\n', eventResponse.message);\n }\n });\n }\n })\n .catch((err) => {\n console.error(ERROR_MESSAGE, err);\n if (__HYDROGEN_DEV__) {\n throw new Error(ERROR_MESSAGE);\n }\n });\n } catch (error) {\n // Do nothing\n return Promise.resolve();\n }\n}\n\n/**\n * If executed on server, this method will return empty string for each field.\n * @publicDocs\n */\nexport function getClientBrowserParameters(): ClientBrowserParameters {\n if (errorIfServer('getClientBrowserParameters')) {\n return {\n uniqueToken: '',\n visitToken: '',\n url: '',\n path: '',\n search: '',\n referrer: '',\n title: '',\n userAgent: '',\n navigationType: '',\n navigationApi: '',\n };\n }\n\n const [navigationType, navigationApi] = getNavigationType();\n const trackingValues = getTrackingValues();\n\n return {\n uniqueToken: trackingValues.uniqueToken,\n visitToken: trackingValues.visitToken,\n url: location.href,\n path: location.pathname,\n search: location.search,\n referrer: document.referrer,\n title: document.title,\n userAgent: navigator.userAgent,\n navigationType,\n navigationApi,\n };\n}\n\nfunction getNavigationTypeExperimental(): string | undefined {\n try {\n const navigationEntries =\n performance?.getEntriesByType &&\n performance?.getEntriesByType('navigation');\n\n if (navigationEntries && navigationEntries[0]) {\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n const rawType = (\n window.performance.getEntriesByType(\n 'navigation',\n )[0] as PerformanceNavigationTiming\n )['type'];\n const navType = rawType && rawType.toString();\n\n return navType;\n }\n } catch (err) {\n // Do nothing\n }\n return undefined;\n}\n\nfunction getNavigationTypeLegacy(): string | undefined {\n try {\n if (\n PerformanceNavigation &&\n performance?.navigation?.type !== null &&\n performance?.navigation?.type !== undefined\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation\n const rawType = performance.navigation.type;\n switch (rawType) {\n case PerformanceNavigation.TYPE_NAVIGATE:\n return 'navigate';\n case PerformanceNavigation.TYPE_RELOAD:\n return 'reload';\n case PerformanceNavigation.TYPE_BACK_FORWARD:\n return 'back_forward';\n default:\n return `unknown: ${rawType}`;\n }\n }\n } catch (err) {\n // do nothing\n }\n return undefined;\n}\n\nfunction getNavigationType(): [string, string] {\n try {\n let navApi = 'PerformanceNavigationTiming';\n let navType = getNavigationTypeExperimental();\n if (!navType) {\n navType = getNavigationTypeLegacy();\n navApi = 'performance.navigation';\n }\n if (navType) {\n return [navType, navApi];\n } else {\n return ['unknown', 'unknown'];\n }\n } catch (err) {\n // do nothing\n }\n return ['error', 'error'];\n}\n"],"names":["trekkiePageView","customerPageView","customerAddToCart","customerPageView2","customerCollectionView","customerProductView","customerSearchView"],"mappings":"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"}
1
+ {"version":3,"file":"analytics.mjs","names":[],"sources":["../../src/analytics.ts"],"sourcesContent":["import type {\n ClientBrowserParameters,\n ShopifyAddToCartPayload,\n ShopifyAnalytics,\n ShopifyPageViewPayload,\n ShopifyMonorailEvent,\n} from './analytics-types.js';\nimport {AnalyticsEventName} from './analytics-constants.js';\nimport {errorIfServer} from './analytics-utils.js';\n\nimport {pageView as trekkiePageView} from './analytics-schema-trekkie-storefront-page-view.js';\nimport {\n pageView as customerPageView,\n pageView2 as customerPageView2,\n collectionView as customerCollectionView,\n productView as customerProductView,\n searchView as customerSearchView,\n addToCart as customerAddToCart,\n} from './analytics-schema-custom-storefront-customer-tracking.js';\nimport {getTrackingValues} from './tracking-utils.js';\n\n/**\n * Set user and session cookies and refresh the expiry time. If `event.payload.hasUserConsent` is false, no analytics event will happen.\n * @param event - The analytics event.\n * @param shopDomain - The Online Store domain to sent Shopify analytics under the same\n * top level domain.\n * @publicDocs\n */\nexport function sendShopifyAnalytics(\n event: ShopifyAnalytics,\n shopDomain?: string,\n): Promise<void> {\n const {eventName, payload} = event;\n if (!payload.hasUserConsent) return Promise.resolve();\n\n let events: ShopifyMonorailEvent[] = [];\n const pageViewPayload = payload as ShopifyPageViewPayload;\n\n if (eventName === AnalyticsEventName.PAGE_VIEW) {\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView(pageViewPayload),\n );\n } else if (eventName === AnalyticsEventName.ADD_TO_CART) {\n events = events.concat(\n customerAddToCart(payload as ShopifyAddToCartPayload),\n );\n } else if (eventName === AnalyticsEventName.PAGE_VIEW_2) {\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView2(pageViewPayload),\n );\n } else if (eventName === AnalyticsEventName.COLLECTION_VIEW) {\n events = events.concat(customerCollectionView(pageViewPayload));\n } else if (eventName === AnalyticsEventName.PRODUCT_VIEW) {\n events = events.concat(customerProductView(pageViewPayload));\n } else if (eventName === AnalyticsEventName.SEARCH_VIEW) {\n events = events.concat(customerSearchView(pageViewPayload));\n }\n\n if (events.length) {\n return sendToShopify(events, shopDomain);\n } else {\n return Promise.resolve();\n }\n}\n\n// Shopify monorail return invalid agent for Lighthouse userAgents\nfunction isLighthouseUserAgent(): boolean {\n if (typeof window === 'undefined' || !window.navigator) return false;\n return /Chrome-Lighthouse/.test(window.navigator.userAgent);\n}\n\ntype MonorailResponse = {\n status: number;\n message: string;\n};\n\nconst ERROR_MESSAGE = 'sendShopifyAnalytics request is unsuccessful';\n\nfunction sendToShopify(\n events: ShopifyMonorailEvent[],\n shopDomain?: string,\n): Promise<void> {\n if (isLighthouseUserAgent()) {\n return Promise.resolve();\n }\n\n const eventsToBeSent = {\n events,\n metadata: {\n event_sent_at_ms: Date.now(),\n },\n };\n\n try {\n return fetch(\n shopDomain\n ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch`\n : 'https://monorail-edge.shopifysvc.com/unstable/produce_batch',\n {\n method: 'post',\n headers: {\n 'content-type': 'text/plain',\n },\n body: JSON.stringify(eventsToBeSent),\n },\n )\n .then((response) => {\n if (!response.ok) {\n throw new Error('Response failed');\n }\n return response.text();\n })\n .then((data) => {\n if (data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const jsonResponse = JSON.parse(data);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n jsonResponse.result.forEach((eventResponse: MonorailResponse) => {\n if (eventResponse.status !== 200) {\n console.error(ERROR_MESSAGE, '\\n\\n', eventResponse.message);\n }\n });\n }\n })\n .catch((err) => {\n console.error(ERROR_MESSAGE, err);\n if (__HYDROGEN_DEV__) {\n throw new Error(ERROR_MESSAGE);\n }\n });\n } catch (error) {\n // Do nothing\n return Promise.resolve();\n }\n}\n\n/**\n * If executed on server, this method will return empty string for each field.\n * @publicDocs\n */\nexport function getClientBrowserParameters(): ClientBrowserParameters {\n if (errorIfServer('getClientBrowserParameters')) {\n return {\n uniqueToken: '',\n visitToken: '',\n url: '',\n path: '',\n search: '',\n referrer: '',\n title: '',\n userAgent: '',\n navigationType: '',\n navigationApi: '',\n };\n }\n\n const [navigationType, navigationApi] = getNavigationType();\n const trackingValues = getTrackingValues();\n\n return {\n uniqueToken: trackingValues.uniqueToken,\n visitToken: trackingValues.visitToken,\n url: location.href,\n path: location.pathname,\n search: location.search,\n referrer: document.referrer,\n title: document.title,\n userAgent: navigator.userAgent,\n navigationType,\n navigationApi,\n };\n}\n\nfunction getNavigationTypeExperimental(): string | undefined {\n try {\n const navigationEntries =\n performance?.getEntriesByType &&\n performance?.getEntriesByType('navigation');\n\n if (navigationEntries && navigationEntries[0]) {\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n const rawType = (\n window.performance.getEntriesByType(\n 'navigation',\n )[0] as PerformanceNavigationTiming\n )['type'];\n const navType = rawType && rawType.toString();\n\n return navType;\n }\n } catch (err) {\n // Do nothing\n }\n return undefined;\n}\n\nfunction getNavigationTypeLegacy(): string | undefined {\n try {\n if (\n PerformanceNavigation &&\n performance?.navigation?.type !== null &&\n performance?.navigation?.type !== undefined\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation\n const rawType = performance.navigation.type;\n switch (rawType) {\n case PerformanceNavigation.TYPE_NAVIGATE:\n return 'navigate';\n case PerformanceNavigation.TYPE_RELOAD:\n return 'reload';\n case PerformanceNavigation.TYPE_BACK_FORWARD:\n return 'back_forward';\n default:\n return `unknown: ${rawType}`;\n }\n }\n } catch (err) {\n // do nothing\n }\n return undefined;\n}\n\nfunction getNavigationType(): [string, string] {\n try {\n let navApi = 'PerformanceNavigationTiming';\n let navType = getNavigationTypeExperimental();\n if (!navType) {\n navType = getNavigationTypeLegacy();\n navApi = 'performance.navigation';\n }\n if (navType) {\n return [navType, navApi];\n } else {\n return ['unknown', 'unknown'];\n }\n } catch (err) {\n // do nothing\n }\n return ['error', 'error'];\n}\n"],"mappings":"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"}
@@ -1,15 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const CART_ID_STORAGE_KEY = "shopifyCartId";
4
- const SHOPIFY_STOREFRONT_ID_HEADER = "Shopify-Storefront-Id";
5
- const SHOPIFY_STOREFRONT_Y_HEADER = "Shopify-Storefront-Y";
6
- const SHOPIFY_STOREFRONT_S_HEADER = "Shopify-Storefront-S";
7
- const SHOPIFY_Y = "_shopify_y";
8
- const SHOPIFY_S = "_shopify_s";
1
+ //#region src/cart-constants.ts
2
+ var CART_ID_STORAGE_KEY = "shopifyCartId";
3
+ var SHOPIFY_STOREFRONT_ID_HEADER = "Shopify-Storefront-Id";
4
+ var SHOPIFY_STOREFRONT_Y_HEADER = "Shopify-Storefront-Y";
5
+ var SHOPIFY_STOREFRONT_S_HEADER = "Shopify-Storefront-S";
6
+ var SHOPIFY_Y = "_shopify_y";
7
+ var SHOPIFY_S = "_shopify_s";
8
+ //#endregion
9
9
  exports.CART_ID_STORAGE_KEY = CART_ID_STORAGE_KEY;
10
10
  exports.SHOPIFY_S = SHOPIFY_S;
11
11
  exports.SHOPIFY_STOREFRONT_ID_HEADER = SHOPIFY_STOREFRONT_ID_HEADER;
12
12
  exports.SHOPIFY_STOREFRONT_S_HEADER = SHOPIFY_STOREFRONT_S_HEADER;
13
13
  exports.SHOPIFY_STOREFRONT_Y_HEADER = SHOPIFY_STOREFRONT_Y_HEADER;
14
14
  exports.SHOPIFY_Y = SHOPIFY_Y;
15
- //# sourceMappingURL=cart-constants.js.map
15
+
16
+ //# sourceMappingURL=cart-constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart-constants.js","sources":["../../src/cart-constants.ts"],"sourcesContent":["export const CART_ID_STORAGE_KEY = 'shopifyCartId';\nexport const CART_COOKIE_TTL_DAYS = 14;\n\n// Needed for cart analytics within Shopify\nexport const SHOPIFY_STOREFRONT_ID_HEADER = 'Shopify-Storefront-Id';\nexport const SHOPIFY_STOREFRONT_Y_HEADER = 'Shopify-Storefront-Y';\nexport const SHOPIFY_STOREFRONT_S_HEADER = 'Shopify-Storefront-S';\nexport const SHOPIFY_Y = '_shopify_y';\nexport const SHOPIFY_S = '_shopify_s';\n"],"names":[],"mappings":";;AAAO,MAAM,sBAAsB;AAI5B,MAAM,+BAA+B;AACrC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,YAAY;AAClB,MAAM,YAAY;;;;;;;"}
1
+ {"version":3,"file":"cart-constants.js","names":[],"sources":["../../src/cart-constants.ts"],"sourcesContent":["export const CART_ID_STORAGE_KEY = 'shopifyCartId';\nexport const CART_COOKIE_TTL_DAYS = 14;\n\n// Needed for cart analytics within Shopify\nexport const SHOPIFY_STOREFRONT_ID_HEADER = 'Shopify-Storefront-Id';\nexport const SHOPIFY_STOREFRONT_Y_HEADER = 'Shopify-Storefront-Y';\nexport const SHOPIFY_STOREFRONT_S_HEADER = 'Shopify-Storefront-S';\nexport const SHOPIFY_Y = '_shopify_y';\nexport const SHOPIFY_S = '_shopify_s';\n"],"mappings":";AAAA,IAAa,sBAAsB;AAInC,IAAa,+BAA+B;AAC5C,IAAa,8BAA8B;AAC3C,IAAa,8BAA8B;AAC3C,IAAa,YAAY;AACzB,IAAa,YAAY"}
@@ -1,15 +1,11 @@
1
- const CART_ID_STORAGE_KEY = "shopifyCartId";
2
- const SHOPIFY_STOREFRONT_ID_HEADER = "Shopify-Storefront-Id";
3
- const SHOPIFY_STOREFRONT_Y_HEADER = "Shopify-Storefront-Y";
4
- const SHOPIFY_STOREFRONT_S_HEADER = "Shopify-Storefront-S";
5
- const SHOPIFY_Y = "_shopify_y";
6
- const SHOPIFY_S = "_shopify_s";
7
- export {
8
- CART_ID_STORAGE_KEY,
9
- SHOPIFY_S,
10
- SHOPIFY_STOREFRONT_ID_HEADER,
11
- SHOPIFY_STOREFRONT_S_HEADER,
12
- SHOPIFY_STOREFRONT_Y_HEADER,
13
- SHOPIFY_Y
14
- };
15
- //# sourceMappingURL=cart-constants.mjs.map
1
+ //#region src/cart-constants.ts
2
+ var CART_ID_STORAGE_KEY = "shopifyCartId";
3
+ var SHOPIFY_STOREFRONT_ID_HEADER = "Shopify-Storefront-Id";
4
+ var SHOPIFY_STOREFRONT_Y_HEADER = "Shopify-Storefront-Y";
5
+ var SHOPIFY_STOREFRONT_S_HEADER = "Shopify-Storefront-S";
6
+ var SHOPIFY_Y = "_shopify_y";
7
+ var SHOPIFY_S = "_shopify_s";
8
+ //#endregion
9
+ export { CART_ID_STORAGE_KEY, SHOPIFY_S, SHOPIFY_STOREFRONT_ID_HEADER, SHOPIFY_STOREFRONT_S_HEADER, SHOPIFY_STOREFRONT_Y_HEADER, SHOPIFY_Y };
10
+
11
+ //# sourceMappingURL=cart-constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart-constants.mjs","sources":["../../src/cart-constants.ts"],"sourcesContent":["export const CART_ID_STORAGE_KEY = 'shopifyCartId';\nexport const CART_COOKIE_TTL_DAYS = 14;\n\n// Needed for cart analytics within Shopify\nexport const SHOPIFY_STOREFRONT_ID_HEADER = 'Shopify-Storefront-Id';\nexport const SHOPIFY_STOREFRONT_Y_HEADER = 'Shopify-Storefront-Y';\nexport const SHOPIFY_STOREFRONT_S_HEADER = 'Shopify-Storefront-S';\nexport const SHOPIFY_Y = '_shopify_y';\nexport const SHOPIFY_S = '_shopify_s';\n"],"names":[],"mappings":"AAAO,MAAM,sBAAsB;AAI5B,MAAM,+BAA+B;AACrC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,YAAY;AAClB,MAAM,YAAY;"}
1
+ {"version":3,"file":"cart-constants.mjs","names":[],"sources":["../../src/cart-constants.ts"],"sourcesContent":["export const CART_ID_STORAGE_KEY = 'shopifyCartId';\nexport const CART_COOKIE_TTL_DAYS = 14;\n\n// Needed for cart analytics within Shopify\nexport const SHOPIFY_STOREFRONT_ID_HEADER = 'Shopify-Storefront-Id';\nexport const SHOPIFY_STOREFRONT_Y_HEADER = 'Shopify-Storefront-Y';\nexport const SHOPIFY_STOREFRONT_S_HEADER = 'Shopify-Storefront-S';\nexport const SHOPIFY_Y = '_shopify_y';\nexport const SHOPIFY_S = '_shopify_s';\n"],"mappings":";AAAA,IAAa,sBAAsB;AAInC,IAAa,+BAA+B;AAC5C,IAAa,8BAA8B;AAC3C,IAAa,8BAA8B;AAC3C,IAAa,YAAY;AACzB,IAAa,YAAY"}
@@ -1,60 +1,46 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const ShopifyProvider = require("./ShopifyProvider.js");
5
- const cartConstants = require("./cart-constants.js");
6
- const trackingUtils = require("./tracking-utils.js");
1
+ require("./_virtual/_rolldown/runtime.js");
2
+ const require_ShopifyProvider = require("./ShopifyProvider.js");
3
+ const require_cart_constants = require("./cart-constants.js");
4
+ const require_tracking_utils = require("./tracking-utils.js");
5
+ let react = require("react");
6
+ //#region src/cart-hooks.tsx
7
7
  function useCartFetch() {
8
- const {
9
- storefrontId,
10
- getPublicTokenHeaders,
11
- getStorefrontApiUrl,
12
- sameDomainForStorefrontApi
13
- } = ShopifyProvider.useShop();
14
- return React.useCallback(
15
- ({
16
- query,
17
- variables
18
- }) => {
19
- const headers = getPublicTokenHeaders({ contentType: "json" });
20
- if (storefrontId) {
21
- headers[cartConstants.SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
22
- }
23
- if (!sameDomainForStorefrontApi) {
24
- const { uniqueToken, visitToken } = trackingUtils.getTrackingValues();
25
- if (uniqueToken) {
26
- headers[cartConstants.SHOPIFY_STOREFRONT_Y_HEADER] = uniqueToken;
27
- headers[trackingUtils.SHOPIFY_UNIQUE_TOKEN_HEADER] = uniqueToken;
28
- }
29
- if (visitToken) {
30
- headers[cartConstants.SHOPIFY_STOREFRONT_S_HEADER] = visitToken;
31
- headers[trackingUtils.SHOPIFY_VISIT_TOKEN_HEADER] = visitToken;
32
- }
33
- }
34
- return fetch(getStorefrontApiUrl(), {
35
- method: "POST",
36
- headers,
37
- body: JSON.stringify({
38
- query: query.toString(),
39
- variables
40
- })
41
- }).then(
42
- (res) => res.json()
43
- ).catch((error) => {
44
- return {
45
- data: void 0,
46
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
47
- errors: error == null ? void 0 : error.toString()
48
- };
49
- });
50
- },
51
- [
52
- getPublicTokenHeaders,
53
- storefrontId,
54
- getStorefrontApiUrl,
55
- sameDomainForStorefrontApi
56
- ]
57
- );
8
+ const { storefrontId, getPublicTokenHeaders, getStorefrontApiUrl, sameDomainForStorefrontApi } = require_ShopifyProvider.useShop();
9
+ return (0, react.useCallback)(({ query, variables }) => {
10
+ const headers = getPublicTokenHeaders({ contentType: "json" });
11
+ if (storefrontId) headers[require_cart_constants.SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
12
+ if (!sameDomainForStorefrontApi) {
13
+ const { uniqueToken, visitToken } = require_tracking_utils.getTrackingValues();
14
+ if (uniqueToken) {
15
+ headers[require_cart_constants.SHOPIFY_STOREFRONT_Y_HEADER] = uniqueToken;
16
+ headers[require_tracking_utils.SHOPIFY_UNIQUE_TOKEN_HEADER] = uniqueToken;
17
+ }
18
+ if (visitToken) {
19
+ headers[require_cart_constants.SHOPIFY_STOREFRONT_S_HEADER] = visitToken;
20
+ headers[require_tracking_utils.SHOPIFY_VISIT_TOKEN_HEADER] = visitToken;
21
+ }
22
+ }
23
+ return fetch(getStorefrontApiUrl(), {
24
+ method: "POST",
25
+ headers,
26
+ body: JSON.stringify({
27
+ query: query.toString(),
28
+ variables
29
+ })
30
+ }).then((res) => res.json()).catch((error) => {
31
+ return {
32
+ data: void 0,
33
+ errors: error?.toString()
34
+ };
35
+ });
36
+ }, [
37
+ getPublicTokenHeaders,
38
+ storefrontId,
39
+ getStorefrontApiUrl,
40
+ sameDomainForStorefrontApi
41
+ ]);
58
42
  }
43
+ //#endregion
59
44
  exports.useCartFetch = useCartFetch;
60
- //# sourceMappingURL=cart-hooks.js.map
45
+
46
+ //# sourceMappingURL=cart-hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart-hooks.js","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":["useShop","useCallback","SHOPIFY_STOREFRONT_ID_HEADER","getTrackingValues","SHOPIFY_STOREFRONT_Y_HEADER","SHOPIFY_UNIQUE_TOKEN_HEADER","SHOPIFY_STOREFRONT_S_HEADER","SHOPIFY_VISIT_TOKEN_HEADER"],"mappings":";;;;;;AAmBO,SAAS,eAAe;AAC7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACEA,wBAAA;AAEJ,SAAOC,MAAAA;AAAAA,IACL,CAAqB;AAAA,MACnB;AAAA,MACA;AAAA,IAAA,MAIgE;AAChE,YAAM,UAAU,sBAAsB,EAAC,aAAa,QAAO;AAE3D,UAAI,cAAc;AAChB,gBAAQC,cAAAA,4BAA4B,IAAI;AAAA,MAC1C;AAEA,UAAI,CAAC,4BAA4B;AAG/B,cAAM,EAAC,aAAa,WAAA,IAAcC,gCAAA;AAClC,YAAI,aAAa;AACf,kBAAQC,cAAAA,2BAA2B,IAAI;AACvC,kBAAQC,cAAAA,2BAA2B,IAAI;AAAA,QACzC;AACA,YAAI,YAAY;AACd,kBAAQC,cAAAA,2BAA2B,IAAI;AACvC,kBAAQC,cAAAA,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.js","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,wBAAA,SAAS;AAEb,SAAA,GAAA,MAAA,cACuB,EACnB,OACA,gBAIgE;EAChE,MAAM,UAAU,sBAAsB,EAAC,aAAa,QAAO,CAAC;AAE5D,MAAI,aACF,SAAQ,uBAAA,gCAAgC;AAG1C,MAAI,CAAC,4BAA4B;GAG/B,MAAM,EAAC,aAAa,eAAc,uBAAA,mBAAmB;AACrD,OAAI,aAAa;AACf,YAAQ,uBAAA,+BAA+B;AACvC,YAAQ,uBAAA,+BAA+B;;AAEzC,OAAI,YAAY;AACd,YAAQ,uBAAA,+BAA+B;AACvC,YAAQ,uBAAA,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,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,13 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
1
+ //#region src/cart-queries.ts
3
2
  function getInContextVariables(includeVisitorConsent) {
4
- const base = `$country: CountryCode = ZZ
3
+ const base = `$country: CountryCode = ZZ
5
4
  $language: LanguageCode`;
6
- return includeVisitorConsent ? `${base}
5
+ return includeVisitorConsent ? `${base}
7
6
  $visitorConsent: VisitorConsent` : base;
8
7
  }
9
8
  function getInContextDirective(includeVisitorConsent) {
10
- return includeVisitorConsent ? `@inContext(
9
+ return includeVisitorConsent ? `@inContext(
11
10
  country: $country
12
11
  language: $language
13
12
  visitorConsent: $visitorConsent
@@ -16,9 +15,7 @@ function getInContextDirective(includeVisitorConsent) {
16
15
  language: $language
17
16
  )`;
18
17
  }
19
- const CartLineAdd = (cartFragment, options = {}) => (
20
- /* GraphQL */
21
- `
18
+ var CartLineAdd = (cartFragment, options = {}) => `
22
19
  mutation CartLineAdd(
23
20
  $cartId: ID!
24
21
  $lines: [CartLineInput!]!
@@ -34,11 +31,8 @@ const CartLineAdd = (cartFragment, options = {}) => (
34
31
  }
35
32
 
36
33
  ${cartFragment}
37
- `
38
- );
39
- const CartCreate = (cartFragment, options = {}) => (
40
- /* GraphQL */
41
- `
34
+ `;
35
+ var CartCreate = (cartFragment, options = {}) => `
42
36
  mutation CartCreate(
43
37
  $input: CartInput!
44
38
  $numCartLines: Int = 250
@@ -53,11 +47,8 @@ const CartCreate = (cartFragment, options = {}) => (
53
47
  }
54
48
 
55
49
  ${cartFragment}
56
- `
57
- );
58
- const CartLineRemove = (cartFragment, options = {}) => (
59
- /* GraphQL */
60
- `
50
+ `;
51
+ var CartLineRemove = (cartFragment, options = {}) => `
61
52
  mutation CartLineRemove(
62
53
  $cartId: ID!
63
54
  $lines: [ID!]!
@@ -73,11 +64,8 @@ const CartLineRemove = (cartFragment, options = {}) => (
73
64
  }
74
65
 
75
66
  ${cartFragment}
76
- `
77
- );
78
- const CartLineUpdate = (cartFragment, options = {}) => (
79
- /* GraphQL */
80
- `
67
+ `;
68
+ var CartLineUpdate = (cartFragment, options = {}) => `
81
69
  mutation CartLineUpdate(
82
70
  $cartId: ID!
83
71
  $lines: [CartLineUpdateInput!]!
@@ -93,11 +81,8 @@ const CartLineUpdate = (cartFragment, options = {}) => (
93
81
  }
94
82
 
95
83
  ${cartFragment}
96
- `
97
- );
98
- const CartNoteUpdate = (cartFragment, options = {}) => (
99
- /* GraphQL */
100
- `
84
+ `;
85
+ var CartNoteUpdate = (cartFragment, options = {}) => `
101
86
  mutation CartNoteUpdate(
102
87
  $cartId: ID!
103
88
  $note: String!
@@ -113,11 +98,8 @@ const CartNoteUpdate = (cartFragment, options = {}) => (
113
98
  }
114
99
 
115
100
  ${cartFragment}
116
- `
117
- );
118
- const CartBuyerIdentityUpdate = (cartFragment, options = {}) => (
119
- /* GraphQL */
120
- `
101
+ `;
102
+ var CartBuyerIdentityUpdate = (cartFragment, options = {}) => `
121
103
  mutation CartBuyerIdentityUpdate(
122
104
  $cartId: ID!
123
105
  $buyerIdentity: CartBuyerIdentityInput!
@@ -133,11 +115,8 @@ const CartBuyerIdentityUpdate = (cartFragment, options = {}) => (
133
115
  }
134
116
 
135
117
  ${cartFragment}
136
- `
137
- );
138
- const CartAttributesUpdate = (cartFragment, options = {}) => (
139
- /* GraphQL */
140
- `
118
+ `;
119
+ var CartAttributesUpdate = (cartFragment, options = {}) => `
141
120
  mutation CartAttributesUpdate(
142
121
  $attributes: [AttributeInput!]!
143
122
  $cartId: ID!
@@ -153,11 +132,8 @@ const CartAttributesUpdate = (cartFragment, options = {}) => (
153
132
  }
154
133
 
155
134
  ${cartFragment}
156
- `
157
- );
158
- const CartDiscountCodesUpdate = (cartFragment, options = {}) => (
159
- /* GraphQL */
160
- `
135
+ `;
136
+ var CartDiscountCodesUpdate = (cartFragment, options = {}) => `
161
137
  mutation CartDiscountCodesUpdate(
162
138
  $cartId: ID!
163
139
  $discountCodes: [String!]!
@@ -173,11 +149,8 @@ const CartDiscountCodesUpdate = (cartFragment, options = {}) => (
173
149
  }
174
150
 
175
151
  ${cartFragment}
176
- `
177
- );
178
- const CartQuery = (cartFragment, options = {}) => (
179
- /* GraphQL */
180
- `
152
+ `;
153
+ var CartQuery = (cartFragment, options = {}) => `
181
154
  query CartQuery(
182
155
  $id: ID!
183
156
  $numCartLines: Int = 250
@@ -190,11 +163,8 @@ const CartQuery = (cartFragment, options = {}) => (
190
163
  }
191
164
 
192
165
  ${cartFragment}
193
- `
194
- );
195
- const defaultCartFragment = (
196
- /* GraphQL */
197
- `
166
+ `;
167
+ var defaultCartFragment = `
198
168
  fragment CartFragment on Cart {
199
169
  id
200
170
  checkoutUrl
@@ -295,8 +265,8 @@ const defaultCartFragment = (
295
265
  width
296
266
  height
297
267
  }
298
- `
299
- );
268
+ `;
269
+ //#endregion
300
270
  exports.CartAttributesUpdate = CartAttributesUpdate;
301
271
  exports.CartBuyerIdentityUpdate = CartBuyerIdentityUpdate;
302
272
  exports.CartCreate = CartCreate;
@@ -307,4 +277,5 @@ exports.CartLineUpdate = CartLineUpdate;
307
277
  exports.CartNoteUpdate = CartNoteUpdate;
308
278
  exports.CartQuery = CartQuery;
309
279
  exports.defaultCartFragment = defaultCartFragment;
310
- //# sourceMappingURL=cart-queries.js.map
280
+
281
+ //# sourceMappingURL=cart-queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart-queries.js","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":"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"}
1
+ {"version":3,"file":"cart-queries.js","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"}