@shopify/hydrogen-react 2022.10.8 → 2023.1.5

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 (646) hide show
  1. package/README.md +41 -47
  2. package/dist/browser-dev/AddToCartButton.mjs +43 -40
  3. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  4. package/dist/browser-dev/BaseButton.mjs +13 -15
  5. package/dist/browser-dev/BaseButton.mjs.map +1 -1
  6. package/dist/browser-dev/BuyNowButton.mjs +19 -17
  7. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  8. package/dist/browser-dev/CartCheckoutButton.mjs +12 -15
  9. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  10. package/dist/browser-dev/CartCost.mjs +25 -0
  11. package/dist/browser-dev/CartCost.mjs.map +1 -0
  12. package/dist/browser-dev/CartLinePrice.mjs +21 -0
  13. package/dist/browser-dev/CartLinePrice.mjs.map +1 -0
  14. package/dist/browser-dev/CartLineProvider.mjs +22 -0
  15. package/dist/browser-dev/CartLineProvider.mjs.map +1 -0
  16. package/dist/browser-dev/CartLineQuantity.mjs +12 -0
  17. package/dist/browser-dev/CartLineQuantity.mjs.map +1 -0
  18. package/dist/browser-dev/CartLineQuantityAdjustButton.mjs +48 -0
  19. package/dist/browser-dev/CartLineQuantityAdjustButton.mjs.map +1 -0
  20. package/dist/browser-dev/CartProvider.mjs +74 -68
  21. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  22. package/dist/browser-dev/ExternalVideo.mjs +13 -11
  23. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  24. package/dist/browser-dev/Image.mjs +41 -30
  25. package/dist/browser-dev/Image.mjs.map +1 -1
  26. package/dist/browser-dev/MediaFile.mjs +29 -21
  27. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  28. package/dist/browser-dev/ModelViewer.mjs +138 -76
  29. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  30. package/dist/browser-dev/Money.mjs +12 -9
  31. package/dist/browser-dev/Money.mjs.map +1 -1
  32. package/dist/browser-dev/ProductPrice.mjs +12 -17
  33. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  34. package/dist/browser-dev/ProductProvider.mjs +102 -73
  35. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  36. package/dist/browser-dev/ShopPayButton.mjs +14 -24
  37. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  38. package/dist/browser-dev/ShopifyProvider.mjs +22 -38
  39. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  40. package/dist/browser-dev/Video.mjs +30 -21
  41. package/dist/browser-dev/Video.mjs.map +1 -1
  42. package/dist/browser-dev/_virtual/index.mjs +11 -2
  43. package/dist/browser-dev/_virtual/index.mjs.map +1 -1
  44. package/dist/browser-dev/_virtual/with-selector.mjs +11 -2
  45. package/dist/browser-dev/_virtual/with-selector.mjs.map +1 -1
  46. package/dist/browser-dev/analytics-constants.mjs +43 -0
  47. package/dist/browser-dev/analytics-constants.mjs.map +1 -0
  48. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  49. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  50. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  51. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  52. package/dist/browser-dev/analytics-utils.mjs +49 -0
  53. package/dist/browser-dev/analytics-utils.mjs.map +1 -0
  54. package/dist/browser-dev/analytics.mjs +159 -0
  55. package/dist/browser-dev/analytics.mjs.map +1 -0
  56. package/dist/browser-dev/cart-hooks.mjs +32 -34
  57. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  58. package/dist/browser-dev/cart-queries.mjs +50 -28
  59. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  60. package/dist/browser-dev/codegen.helpers.mjs +1 -0
  61. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  62. package/dist/browser-dev/cookies-utils.mjs +50 -0
  63. package/dist/browser-dev/cookies-utils.mjs.map +1 -0
  64. package/dist/browser-dev/flatten-connection.mjs +7 -5
  65. package/dist/browser-dev/flatten-connection.mjs.map +1 -1
  66. package/dist/browser-dev/image-size.mjs +8 -8
  67. package/dist/browser-dev/image-size.mjs.map +1 -1
  68. package/dist/browser-dev/index.mjs +24 -6
  69. package/dist/browser-dev/index.mjs.map +1 -1
  70. package/dist/browser-dev/load-script.mjs +3 -1
  71. package/dist/browser-dev/load-script.mjs.map +1 -1
  72. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  73. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  74. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  75. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  76. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  77. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  78. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  79. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  80. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  81. package/dist/browser-dev/{metafield-parser.mjs → parse-metafield.mjs} +20 -12
  82. package/dist/browser-dev/parse-metafield.mjs.map +1 -0
  83. package/dist/browser-dev/storefront-api-constants.mjs +1 -1
  84. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  85. package/dist/browser-dev/storefront-client.mjs +27 -27
  86. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  87. package/dist/browser-dev/useCartAPIStateMachine.mjs +120 -80
  88. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  89. package/dist/browser-dev/useCartActions.mjs +150 -109
  90. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  91. package/dist/browser-dev/useMoney.mjs +63 -36
  92. package/dist/browser-dev/useMoney.mjs.map +1 -1
  93. package/dist/browser-dev/useShopifyCookies.mjs +41 -0
  94. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -0
  95. package/dist/browser-prod/AddToCartButton.mjs +43 -40
  96. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  97. package/dist/browser-prod/BaseButton.mjs +13 -15
  98. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  99. package/dist/browser-prod/BuyNowButton.mjs +19 -17
  100. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  101. package/dist/browser-prod/CartCheckoutButton.mjs +12 -15
  102. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  103. package/dist/browser-prod/CartCost.mjs +25 -0
  104. package/dist/browser-prod/CartCost.mjs.map +1 -0
  105. package/dist/browser-prod/CartLinePrice.mjs +18 -0
  106. package/dist/browser-prod/CartLinePrice.mjs.map +1 -0
  107. package/dist/browser-prod/CartLineProvider.mjs +22 -0
  108. package/dist/browser-prod/CartLineProvider.mjs.map +1 -0
  109. package/dist/browser-prod/CartLineQuantity.mjs +12 -0
  110. package/dist/browser-prod/CartLineQuantity.mjs.map +1 -0
  111. package/dist/browser-prod/CartLineQuantityAdjustButton.mjs +48 -0
  112. package/dist/browser-prod/CartLineQuantityAdjustButton.mjs.map +1 -0
  113. package/dist/browser-prod/CartProvider.mjs +74 -68
  114. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  115. package/dist/browser-prod/ExternalVideo.mjs +13 -11
  116. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  117. package/dist/browser-prod/Image.mjs +35 -28
  118. package/dist/browser-prod/Image.mjs.map +1 -1
  119. package/dist/browser-prod/MediaFile.mjs +29 -21
  120. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  121. package/dist/browser-prod/ModelViewer.mjs +135 -75
  122. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  123. package/dist/browser-prod/Money.mjs +12 -9
  124. package/dist/browser-prod/Money.mjs.map +1 -1
  125. package/dist/browser-prod/ProductPrice.mjs +12 -17
  126. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  127. package/dist/browser-prod/ProductProvider.mjs +102 -73
  128. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  129. package/dist/browser-prod/ShopPayButton.mjs +14 -24
  130. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  131. package/dist/browser-prod/ShopifyProvider.mjs +22 -32
  132. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  133. package/dist/browser-prod/Video.mjs +30 -21
  134. package/dist/browser-prod/Video.mjs.map +1 -1
  135. package/dist/browser-prod/_virtual/index.mjs +11 -2
  136. package/dist/browser-prod/_virtual/index.mjs.map +1 -1
  137. package/dist/browser-prod/_virtual/with-selector.mjs +11 -2
  138. package/dist/browser-prod/_virtual/with-selector.mjs.map +1 -1
  139. package/dist/browser-prod/analytics-constants.mjs +43 -0
  140. package/dist/browser-prod/analytics-constants.mjs.map +1 -0
  141. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  142. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  143. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  144. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  145. package/dist/browser-prod/analytics-utils.mjs +49 -0
  146. package/dist/browser-prod/analytics-utils.mjs.map +1 -0
  147. package/dist/browser-prod/analytics.mjs +158 -0
  148. package/dist/browser-prod/analytics.mjs.map +1 -0
  149. package/dist/browser-prod/cart-hooks.mjs +32 -34
  150. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  151. package/dist/browser-prod/cart-queries.mjs +50 -28
  152. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  153. package/dist/browser-prod/codegen.helpers.mjs +1 -0
  154. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  155. package/dist/browser-prod/cookies-utils.mjs +50 -0
  156. package/dist/browser-prod/cookies-utils.mjs.map +1 -0
  157. package/dist/browser-prod/flatten-connection.mjs +7 -5
  158. package/dist/browser-prod/flatten-connection.mjs.map +1 -1
  159. package/dist/browser-prod/image-size.mjs +8 -8
  160. package/dist/browser-prod/image-size.mjs.map +1 -1
  161. package/dist/browser-prod/index.mjs +24 -6
  162. package/dist/browser-prod/index.mjs.map +1 -1
  163. package/dist/browser-prod/load-script.mjs +3 -1
  164. package/dist/browser-prod/load-script.mjs.map +1 -1
  165. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  166. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  167. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  168. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  169. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  170. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  171. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  172. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  173. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  174. package/dist/browser-prod/{metafield-parser.mjs → parse-metafield.mjs} +20 -12
  175. package/dist/browser-prod/parse-metafield.mjs.map +1 -0
  176. package/dist/browser-prod/storefront-api-constants.mjs +1 -1
  177. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  178. package/dist/browser-prod/storefront-client.mjs +27 -27
  179. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  180. package/dist/browser-prod/useCartAPIStateMachine.mjs +120 -80
  181. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  182. package/dist/browser-prod/useCartActions.mjs +150 -109
  183. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  184. package/dist/browser-prod/useMoney.mjs +63 -36
  185. package/dist/browser-prod/useMoney.mjs.map +1 -1
  186. package/dist/browser-prod/useShopifyCookies.mjs +41 -0
  187. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -0
  188. package/dist/node-dev/AddToCartButton.js +44 -41
  189. package/dist/node-dev/AddToCartButton.js.map +1 -1
  190. package/dist/node-dev/AddToCartButton.mjs +43 -40
  191. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  192. package/dist/node-dev/BaseButton.js +14 -16
  193. package/dist/node-dev/BaseButton.js.map +1 -1
  194. package/dist/node-dev/BaseButton.mjs +13 -15
  195. package/dist/node-dev/BaseButton.mjs.map +1 -1
  196. package/dist/node-dev/BuyNowButton.js +20 -18
  197. package/dist/node-dev/BuyNowButton.js.map +1 -1
  198. package/dist/node-dev/BuyNowButton.mjs +19 -17
  199. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  200. package/dist/node-dev/CartCheckoutButton.js +13 -16
  201. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  202. package/dist/node-dev/CartCheckoutButton.mjs +12 -15
  203. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  204. package/dist/node-dev/CartCost.js +25 -0
  205. package/dist/node-dev/CartCost.js.map +1 -0
  206. package/dist/node-dev/CartCost.mjs +25 -0
  207. package/dist/node-dev/CartCost.mjs.map +1 -0
  208. package/dist/node-dev/CartLinePrice.js +21 -0
  209. package/dist/node-dev/CartLinePrice.js.map +1 -0
  210. package/dist/node-dev/CartLinePrice.mjs +21 -0
  211. package/dist/node-dev/CartLinePrice.mjs.map +1 -0
  212. package/dist/node-dev/CartLineProvider.js +22 -0
  213. package/dist/node-dev/CartLineProvider.js.map +1 -0
  214. package/dist/node-dev/CartLineProvider.mjs +22 -0
  215. package/dist/node-dev/CartLineProvider.mjs.map +1 -0
  216. package/dist/node-dev/CartLineQuantity.js +12 -0
  217. package/dist/node-dev/CartLineQuantity.js.map +1 -0
  218. package/dist/node-dev/CartLineQuantity.mjs +12 -0
  219. package/dist/node-dev/CartLineQuantity.mjs.map +1 -0
  220. package/dist/node-dev/CartLineQuantityAdjustButton.js +48 -0
  221. package/dist/node-dev/CartLineQuantityAdjustButton.js.map +1 -0
  222. package/dist/node-dev/CartLineQuantityAdjustButton.mjs +48 -0
  223. package/dist/node-dev/CartLineQuantityAdjustButton.mjs.map +1 -0
  224. package/dist/node-dev/CartProvider.js +75 -69
  225. package/dist/node-dev/CartProvider.js.map +1 -1
  226. package/dist/node-dev/CartProvider.mjs +74 -68
  227. package/dist/node-dev/CartProvider.mjs.map +1 -1
  228. package/dist/node-dev/ExternalVideo.js +14 -12
  229. package/dist/node-dev/ExternalVideo.js.map +1 -1
  230. package/dist/node-dev/ExternalVideo.mjs +13 -11
  231. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  232. package/dist/node-dev/Image.js +42 -31
  233. package/dist/node-dev/Image.js.map +1 -1
  234. package/dist/node-dev/Image.mjs +41 -30
  235. package/dist/node-dev/Image.mjs.map +1 -1
  236. package/dist/node-dev/MediaFile.js +30 -22
  237. package/dist/node-dev/MediaFile.js.map +1 -1
  238. package/dist/node-dev/MediaFile.mjs +29 -21
  239. package/dist/node-dev/MediaFile.mjs.map +1 -1
  240. package/dist/node-dev/ModelViewer.js +139 -77
  241. package/dist/node-dev/ModelViewer.js.map +1 -1
  242. package/dist/node-dev/ModelViewer.mjs +138 -76
  243. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  244. package/dist/node-dev/Money.js +13 -10
  245. package/dist/node-dev/Money.js.map +1 -1
  246. package/dist/node-dev/Money.mjs +12 -9
  247. package/dist/node-dev/Money.mjs.map +1 -1
  248. package/dist/node-dev/ProductPrice.js +13 -18
  249. package/dist/node-dev/ProductPrice.js.map +1 -1
  250. package/dist/node-dev/ProductPrice.mjs +12 -17
  251. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  252. package/dist/node-dev/ProductProvider.js +103 -74
  253. package/dist/node-dev/ProductProvider.js.map +1 -1
  254. package/dist/node-dev/ProductProvider.mjs +102 -73
  255. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  256. package/dist/node-dev/ShopPayButton.js +14 -24
  257. package/dist/node-dev/ShopPayButton.js.map +1 -1
  258. package/dist/node-dev/ShopPayButton.mjs +14 -24
  259. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  260. package/dist/node-dev/ShopifyProvider.js +23 -39
  261. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  262. package/dist/node-dev/ShopifyProvider.mjs +22 -38
  263. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  264. package/dist/node-dev/Video.js +31 -22
  265. package/dist/node-dev/Video.js.map +1 -1
  266. package/dist/node-dev/Video.mjs +30 -21
  267. package/dist/node-dev/Video.mjs.map +1 -1
  268. package/dist/node-dev/_virtual/index.js +11 -3
  269. package/dist/node-dev/_virtual/index.js.map +1 -1
  270. package/dist/node-dev/_virtual/index.mjs +11 -2
  271. package/dist/node-dev/_virtual/index.mjs.map +1 -1
  272. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.js +1 -1
  273. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  274. package/dist/node-dev/_virtual/with-selector.development.js +1 -1
  275. package/dist/node-dev/_virtual/with-selector.js +11 -3
  276. package/dist/node-dev/_virtual/with-selector.js.map +1 -1
  277. package/dist/node-dev/_virtual/with-selector.mjs +11 -2
  278. package/dist/node-dev/_virtual/with-selector.mjs.map +1 -1
  279. package/dist/node-dev/_virtual/with-selector.production.min.js +1 -1
  280. package/dist/node-dev/analytics-constants.js +43 -0
  281. package/dist/node-dev/analytics-constants.js.map +1 -0
  282. package/dist/node-dev/analytics-constants.mjs +43 -0
  283. package/dist/node-dev/analytics-constants.mjs.map +1 -0
  284. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  285. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  286. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  287. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  288. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +58 -0
  289. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  290. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  291. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  292. package/dist/node-dev/analytics-utils.js +49 -0
  293. package/dist/node-dev/analytics-utils.js.map +1 -0
  294. package/dist/node-dev/analytics-utils.mjs +49 -0
  295. package/dist/node-dev/analytics-utils.mjs.map +1 -0
  296. package/dist/node-dev/analytics.js +159 -0
  297. package/dist/node-dev/analytics.js.map +1 -0
  298. package/dist/node-dev/analytics.mjs +159 -0
  299. package/dist/node-dev/analytics.mjs.map +1 -0
  300. package/dist/node-dev/cart-constants.js +1 -1
  301. package/dist/node-dev/cart-hooks.js +32 -34
  302. package/dist/node-dev/cart-hooks.js.map +1 -1
  303. package/dist/node-dev/cart-hooks.mjs +32 -34
  304. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  305. package/dist/node-dev/cart-queries.js +51 -29
  306. package/dist/node-dev/cart-queries.js.map +1 -1
  307. package/dist/node-dev/cart-queries.mjs +50 -28
  308. package/dist/node-dev/cart-queries.mjs.map +1 -1
  309. package/dist/node-dev/codegen.helpers.js +2 -1
  310. package/dist/node-dev/codegen.helpers.js.map +1 -1
  311. package/dist/node-dev/codegen.helpers.mjs +1 -0
  312. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  313. package/dist/node-dev/cookies-utils.js +50 -0
  314. package/dist/node-dev/cookies-utils.js.map +1 -0
  315. package/dist/node-dev/cookies-utils.mjs +50 -0
  316. package/dist/node-dev/cookies-utils.mjs.map +1 -0
  317. package/dist/node-dev/flatten-connection.js +8 -6
  318. package/dist/node-dev/flatten-connection.js.map +1 -1
  319. package/dist/node-dev/flatten-connection.mjs +7 -5
  320. package/dist/node-dev/flatten-connection.mjs.map +1 -1
  321. package/dist/node-dev/image-size.js +9 -9
  322. package/dist/node-dev/image-size.js.map +1 -1
  323. package/dist/node-dev/image-size.mjs +8 -8
  324. package/dist/node-dev/image-size.mjs.map +1 -1
  325. package/dist/node-dev/index.js +25 -7
  326. package/dist/node-dev/index.js.map +1 -1
  327. package/dist/node-dev/index.mjs +24 -6
  328. package/dist/node-dev/index.mjs.map +1 -1
  329. package/dist/node-dev/load-script.js +4 -2
  330. package/dist/node-dev/load-script.js.map +1 -1
  331. package/dist/node-dev/load-script.mjs +3 -1
  332. package/dist/node-dev/load-script.mjs.map +1 -1
  333. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +1 -1
  334. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
  335. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  336. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +2 -2
  337. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
  338. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  339. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  340. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js +2 -4
  341. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  342. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  343. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  344. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  345. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  346. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  347. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  348. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  349. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  350. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  351. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  352. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  353. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  354. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +4 -4
  355. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  356. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  357. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  358. package/dist/node-dev/{metafield-parser.js → parse-metafield.js} +21 -13
  359. package/dist/node-dev/parse-metafield.js.map +1 -0
  360. package/dist/node-dev/{metafield-parser.mjs → parse-metafield.mjs} +20 -12
  361. package/dist/node-dev/parse-metafield.mjs.map +1 -0
  362. package/dist/node-dev/storefront-api-constants.js +2 -2
  363. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  364. package/dist/node-dev/storefront-api-constants.mjs +1 -1
  365. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  366. package/dist/node-dev/storefront-client.js +28 -28
  367. package/dist/node-dev/storefront-client.js.map +1 -1
  368. package/dist/node-dev/storefront-client.mjs +27 -27
  369. package/dist/node-dev/storefront-client.mjs.map +1 -1
  370. package/dist/node-dev/useCartAPIStateMachine.js +121 -81
  371. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  372. package/dist/node-dev/useCartAPIStateMachine.mjs +120 -80
  373. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  374. package/dist/node-dev/useCartActions.js +151 -110
  375. package/dist/node-dev/useCartActions.js.map +1 -1
  376. package/dist/node-dev/useCartActions.mjs +150 -109
  377. package/dist/node-dev/useCartActions.mjs.map +1 -1
  378. package/dist/node-dev/useMoney.js +64 -37
  379. package/dist/node-dev/useMoney.js.map +1 -1
  380. package/dist/node-dev/useMoney.mjs +63 -36
  381. package/dist/node-dev/useMoney.mjs.map +1 -1
  382. package/dist/node-dev/useShopifyCookies.js +41 -0
  383. package/dist/node-dev/useShopifyCookies.js.map +1 -0
  384. package/dist/node-dev/useShopifyCookies.mjs +41 -0
  385. package/dist/node-dev/useShopifyCookies.mjs.map +1 -0
  386. package/dist/node-prod/AddToCartButton.js +44 -41
  387. package/dist/node-prod/AddToCartButton.js.map +1 -1
  388. package/dist/node-prod/AddToCartButton.mjs +43 -40
  389. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  390. package/dist/node-prod/BaseButton.js +14 -16
  391. package/dist/node-prod/BaseButton.js.map +1 -1
  392. package/dist/node-prod/BaseButton.mjs +13 -15
  393. package/dist/node-prod/BaseButton.mjs.map +1 -1
  394. package/dist/node-prod/BuyNowButton.js +20 -18
  395. package/dist/node-prod/BuyNowButton.js.map +1 -1
  396. package/dist/node-prod/BuyNowButton.mjs +19 -17
  397. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  398. package/dist/node-prod/CartCheckoutButton.js +13 -16
  399. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  400. package/dist/node-prod/CartCheckoutButton.mjs +12 -15
  401. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  402. package/dist/node-prod/CartCost.js +25 -0
  403. package/dist/node-prod/CartCost.js.map +1 -0
  404. package/dist/node-prod/CartCost.mjs +25 -0
  405. package/dist/node-prod/CartCost.mjs.map +1 -0
  406. package/dist/node-prod/CartLinePrice.js +18 -0
  407. package/dist/node-prod/CartLinePrice.js.map +1 -0
  408. package/dist/node-prod/CartLinePrice.mjs +18 -0
  409. package/dist/node-prod/CartLinePrice.mjs.map +1 -0
  410. package/dist/node-prod/CartLineProvider.js +22 -0
  411. package/dist/node-prod/CartLineProvider.js.map +1 -0
  412. package/dist/node-prod/CartLineProvider.mjs +22 -0
  413. package/dist/node-prod/CartLineProvider.mjs.map +1 -0
  414. package/dist/node-prod/CartLineQuantity.js +12 -0
  415. package/dist/node-prod/CartLineQuantity.js.map +1 -0
  416. package/dist/node-prod/CartLineQuantity.mjs +12 -0
  417. package/dist/node-prod/CartLineQuantity.mjs.map +1 -0
  418. package/dist/node-prod/CartLineQuantityAdjustButton.js +48 -0
  419. package/dist/node-prod/CartLineQuantityAdjustButton.js.map +1 -0
  420. package/dist/node-prod/CartLineQuantityAdjustButton.mjs +48 -0
  421. package/dist/node-prod/CartLineQuantityAdjustButton.mjs.map +1 -0
  422. package/dist/node-prod/CartProvider.js +75 -69
  423. package/dist/node-prod/CartProvider.js.map +1 -1
  424. package/dist/node-prod/CartProvider.mjs +74 -68
  425. package/dist/node-prod/CartProvider.mjs.map +1 -1
  426. package/dist/node-prod/ExternalVideo.js +14 -12
  427. package/dist/node-prod/ExternalVideo.js.map +1 -1
  428. package/dist/node-prod/ExternalVideo.mjs +13 -11
  429. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  430. package/dist/node-prod/Image.js +36 -29
  431. package/dist/node-prod/Image.js.map +1 -1
  432. package/dist/node-prod/Image.mjs +35 -28
  433. package/dist/node-prod/Image.mjs.map +1 -1
  434. package/dist/node-prod/MediaFile.js +30 -22
  435. package/dist/node-prod/MediaFile.js.map +1 -1
  436. package/dist/node-prod/MediaFile.mjs +29 -21
  437. package/dist/node-prod/MediaFile.mjs.map +1 -1
  438. package/dist/node-prod/ModelViewer.js +136 -76
  439. package/dist/node-prod/ModelViewer.js.map +1 -1
  440. package/dist/node-prod/ModelViewer.mjs +135 -75
  441. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  442. package/dist/node-prod/Money.js +13 -10
  443. package/dist/node-prod/Money.js.map +1 -1
  444. package/dist/node-prod/Money.mjs +12 -9
  445. package/dist/node-prod/Money.mjs.map +1 -1
  446. package/dist/node-prod/ProductPrice.js +13 -18
  447. package/dist/node-prod/ProductPrice.js.map +1 -1
  448. package/dist/node-prod/ProductPrice.mjs +12 -17
  449. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  450. package/dist/node-prod/ProductProvider.js +103 -74
  451. package/dist/node-prod/ProductProvider.js.map +1 -1
  452. package/dist/node-prod/ProductProvider.mjs +102 -73
  453. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  454. package/dist/node-prod/ShopPayButton.js +14 -24
  455. package/dist/node-prod/ShopPayButton.js.map +1 -1
  456. package/dist/node-prod/ShopPayButton.mjs +14 -24
  457. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  458. package/dist/node-prod/ShopifyProvider.js +23 -33
  459. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  460. package/dist/node-prod/ShopifyProvider.mjs +22 -32
  461. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  462. package/dist/node-prod/Video.js +31 -22
  463. package/dist/node-prod/Video.js.map +1 -1
  464. package/dist/node-prod/Video.mjs +30 -21
  465. package/dist/node-prod/Video.mjs.map +1 -1
  466. package/dist/node-prod/_virtual/index.js +11 -3
  467. package/dist/node-prod/_virtual/index.js.map +1 -1
  468. package/dist/node-prod/_virtual/index.mjs +11 -2
  469. package/dist/node-prod/_virtual/index.mjs.map +1 -1
  470. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.js +1 -1
  471. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  472. package/dist/node-prod/_virtual/with-selector.development.js +1 -1
  473. package/dist/node-prod/_virtual/with-selector.js +11 -3
  474. package/dist/node-prod/_virtual/with-selector.js.map +1 -1
  475. package/dist/node-prod/_virtual/with-selector.mjs +11 -2
  476. package/dist/node-prod/_virtual/with-selector.mjs.map +1 -1
  477. package/dist/node-prod/_virtual/with-selector.production.min.js +1 -1
  478. package/dist/node-prod/analytics-constants.js +43 -0
  479. package/dist/node-prod/analytics-constants.js.map +1 -0
  480. package/dist/node-prod/analytics-constants.mjs +43 -0
  481. package/dist/node-prod/analytics-constants.mjs.map +1 -0
  482. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  483. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  484. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  485. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  486. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +58 -0
  487. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  488. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  489. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  490. package/dist/node-prod/analytics-utils.js +49 -0
  491. package/dist/node-prod/analytics-utils.js.map +1 -0
  492. package/dist/node-prod/analytics-utils.mjs +49 -0
  493. package/dist/node-prod/analytics-utils.mjs.map +1 -0
  494. package/dist/node-prod/analytics.js +158 -0
  495. package/dist/node-prod/analytics.js.map +1 -0
  496. package/dist/node-prod/analytics.mjs +158 -0
  497. package/dist/node-prod/analytics.mjs.map +1 -0
  498. package/dist/node-prod/cart-constants.js +1 -1
  499. package/dist/node-prod/cart-hooks.js +32 -34
  500. package/dist/node-prod/cart-hooks.js.map +1 -1
  501. package/dist/node-prod/cart-hooks.mjs +32 -34
  502. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  503. package/dist/node-prod/cart-queries.js +51 -29
  504. package/dist/node-prod/cart-queries.js.map +1 -1
  505. package/dist/node-prod/cart-queries.mjs +50 -28
  506. package/dist/node-prod/cart-queries.mjs.map +1 -1
  507. package/dist/node-prod/codegen.helpers.js +2 -1
  508. package/dist/node-prod/codegen.helpers.js.map +1 -1
  509. package/dist/node-prod/codegen.helpers.mjs +1 -0
  510. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  511. package/dist/node-prod/cookies-utils.js +50 -0
  512. package/dist/node-prod/cookies-utils.js.map +1 -0
  513. package/dist/node-prod/cookies-utils.mjs +50 -0
  514. package/dist/node-prod/cookies-utils.mjs.map +1 -0
  515. package/dist/node-prod/flatten-connection.js +8 -6
  516. package/dist/node-prod/flatten-connection.js.map +1 -1
  517. package/dist/node-prod/flatten-connection.mjs +7 -5
  518. package/dist/node-prod/flatten-connection.mjs.map +1 -1
  519. package/dist/node-prod/image-size.js +9 -9
  520. package/dist/node-prod/image-size.js.map +1 -1
  521. package/dist/node-prod/image-size.mjs +8 -8
  522. package/dist/node-prod/image-size.mjs.map +1 -1
  523. package/dist/node-prod/index.js +25 -7
  524. package/dist/node-prod/index.js.map +1 -1
  525. package/dist/node-prod/index.mjs +24 -6
  526. package/dist/node-prod/index.mjs.map +1 -1
  527. package/dist/node-prod/load-script.js +4 -2
  528. package/dist/node-prod/load-script.js.map +1 -1
  529. package/dist/node-prod/load-script.mjs +3 -1
  530. package/dist/node-prod/load-script.mjs.map +1 -1
  531. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +1 -1
  532. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
  533. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  534. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +2 -2
  535. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
  536. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  537. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  538. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js +2 -4
  539. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  540. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  541. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  542. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  543. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  544. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  545. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  546. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  547. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  548. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  549. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  550. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  551. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  552. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +4 -4
  553. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  554. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  555. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  556. package/dist/node-prod/{metafield-parser.js → parse-metafield.js} +21 -13
  557. package/dist/node-prod/parse-metafield.js.map +1 -0
  558. package/dist/node-prod/{metafield-parser.mjs → parse-metafield.mjs} +20 -12
  559. package/dist/node-prod/parse-metafield.mjs.map +1 -0
  560. package/dist/node-prod/storefront-api-constants.js +2 -2
  561. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  562. package/dist/node-prod/storefront-api-constants.mjs +1 -1
  563. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  564. package/dist/node-prod/storefront-client.js +28 -28
  565. package/dist/node-prod/storefront-client.js.map +1 -1
  566. package/dist/node-prod/storefront-client.mjs +27 -27
  567. package/dist/node-prod/storefront-client.mjs.map +1 -1
  568. package/dist/node-prod/useCartAPIStateMachine.js +121 -81
  569. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  570. package/dist/node-prod/useCartAPIStateMachine.mjs +120 -80
  571. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  572. package/dist/node-prod/useCartActions.js +151 -110
  573. package/dist/node-prod/useCartActions.js.map +1 -1
  574. package/dist/node-prod/useCartActions.mjs +150 -109
  575. package/dist/node-prod/useCartActions.mjs.map +1 -1
  576. package/dist/node-prod/useMoney.js +64 -37
  577. package/dist/node-prod/useMoney.js.map +1 -1
  578. package/dist/node-prod/useMoney.mjs +63 -36
  579. package/dist/node-prod/useMoney.mjs.map +1 -1
  580. package/dist/node-prod/useShopifyCookies.js +41 -0
  581. package/dist/node-prod/useShopifyCookies.js.map +1 -0
  582. package/dist/node-prod/useShopifyCookies.mjs +41 -0
  583. package/dist/node-prod/useShopifyCookies.mjs.map +1 -0
  584. package/dist/types/AddToCartButton.d.ts +7 -3
  585. package/dist/types/BaseButton.d.ts +2 -2
  586. package/dist/types/BuyNowButton.d.ts +10 -4
  587. package/dist/types/CartCheckoutButton.d.ts +9 -6
  588. package/dist/types/CartCost.d.ts +10 -6
  589. package/dist/types/CartLinePrice.d.ts +19 -5
  590. package/dist/types/CartLineProvider.d.ts +18 -10
  591. package/dist/types/CartLineQuantity.d.ts +13 -0
  592. package/dist/types/CartLineQuantityAdjustButton.d.ts +13 -0
  593. package/dist/types/CartProvider.d.ts +13 -3
  594. package/dist/types/ExternalVideo.d.ts +2 -3
  595. package/dist/types/Image.d.ts +5 -3
  596. package/dist/types/MediaFile.d.ts +12 -11
  597. package/dist/types/ModelViewer.d.ts +2 -2
  598. package/dist/types/Money.d.ts +2 -3
  599. package/dist/types/ProductPrice.d.ts +4 -2
  600. package/dist/types/ProductProvider.d.ts +1 -1
  601. package/dist/types/ShopPayButton.d.ts +10 -10
  602. package/dist/types/ShopifyProvider.d.ts +42 -43
  603. package/dist/types/analytics-constants.d.ts +48 -0
  604. package/dist/types/analytics-schema-custom-storefront-customer-tracking.d.ts +3 -0
  605. package/dist/types/analytics-schema-trekkie-storefront-page-view.d.ts +2 -0
  606. package/dist/types/analytics-types.d.ts +157 -0
  607. package/dist/types/analytics-utils.d.ts +36 -0
  608. package/dist/types/analytics.d.ts +9 -0
  609. package/dist/types/cart-queries.d.ts +1 -1
  610. package/dist/types/cookies-utils.d.ts +4 -0
  611. package/dist/types/flatten-connection.d.ts +32 -8
  612. package/dist/types/image-size.d.ts +1 -1
  613. package/dist/types/index.d.cts +13 -4
  614. package/dist/types/index.d.ts +13 -4
  615. package/dist/types/{metafield-parser.d.ts → parse-metafield.d.ts} +11 -9
  616. package/dist/types/storefront-api-constants.d.ts +1 -1
  617. package/dist/types/storefront-api-response.types.d.ts +1 -1
  618. package/dist/types/storefront-api-types.d.ts +121 -2
  619. package/dist/types/storefront-client.d.ts +14 -14
  620. package/dist/types/useCartActions.d.ts +1 -1
  621. package/dist/types/useShopifyCookies.d.ts +14 -0
  622. package/dist/umd/hydrogen-react.dev.js +1714 -1382
  623. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  624. package/dist/umd/hydrogen-react.prod.js +18 -25
  625. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  626. package/package.json +34 -19
  627. package/storefront.schema.json +1 -1
  628. package/dist/browser-dev/Metafield.mjs +0 -301
  629. package/dist/browser-dev/Metafield.mjs.map +0 -1
  630. package/dist/browser-dev/metafield-parser.mjs.map +0 -1
  631. package/dist/browser-prod/Metafield.mjs +0 -288
  632. package/dist/browser-prod/Metafield.mjs.map +0 -1
  633. package/dist/browser-prod/metafield-parser.mjs.map +0 -1
  634. package/dist/node-dev/Metafield.js +0 -301
  635. package/dist/node-dev/Metafield.js.map +0 -1
  636. package/dist/node-dev/Metafield.mjs +0 -301
  637. package/dist/node-dev/Metafield.mjs.map +0 -1
  638. package/dist/node-dev/metafield-parser.js.map +0 -1
  639. package/dist/node-dev/metafield-parser.mjs.map +0 -1
  640. package/dist/node-prod/Metafield.js +0 -288
  641. package/dist/node-prod/Metafield.js.map +0 -1
  642. package/dist/node-prod/Metafield.mjs +0 -288
  643. package/dist/node-prod/Metafield.mjs.map +0 -1
  644. package/dist/node-prod/metafield-parser.js.map +0 -1
  645. package/dist/node-prod/metafield-parser.mjs.map +0 -1
  646. package/dist/types/Metafield.d.ts +0 -61
@@ -5,43 +5,59 @@ import { useCartActions } from "./useCartActions.mjs";
5
5
  import { useMemo } from "react";
6
6
  function invokeCart(action, options) {
7
7
  return {
8
- entry: [...(options == null ? void 0 : options.entryActions) || [], i({
9
- lastValidCart: (context) => context == null ? void 0 : context.cart
10
- }), "onCartActionEntry", "onCartActionOptimisticUI", action],
8
+ entry: [
9
+ ...(options == null ? void 0 : options.entryActions) || [],
10
+ i({
11
+ lastValidCart: (context) => context == null ? void 0 : context.cart
12
+ }),
13
+ "onCartActionEntry",
14
+ "onCartActionOptimisticUI",
15
+ action
16
+ ],
11
17
  on: {
12
18
  RESOLVE: {
13
19
  target: (options == null ? void 0 : options.resolveTarget) || "idle",
14
- actions: [i({
15
- prevCart: (context) => context == null ? void 0 : context.lastValidCart,
16
- cart: (_, event) => {
17
- var _a;
18
- return (_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.cart;
19
- },
20
- rawCartResult: (_, event) => {
21
- var _a;
22
- return (_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.rawCartResult;
23
- },
24
- errors: (_) => void 0
25
- })]
20
+ actions: [
21
+ i({
22
+ prevCart: (context) => context == null ? void 0 : context.lastValidCart,
23
+ cart: (_, event) => {
24
+ var _a;
25
+ return (_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.cart;
26
+ },
27
+ rawCartResult: (_, event) => {
28
+ var _a;
29
+ return (_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.rawCartResult;
30
+ },
31
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
+ errors: (_) => void 0
33
+ })
34
+ ]
26
35
  },
27
36
  ERROR: {
28
37
  target: (options == null ? void 0 : options.errorTarget) || "error",
29
- actions: [i({
30
- prevCart: (context) => context == null ? void 0 : context.lastValidCart,
31
- cart: (context) => context == null ? void 0 : context.lastValidCart,
32
- errors: (_, event) => {
33
- var _a;
34
- return (_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.errors;
35
- }
36
- })]
38
+ actions: [
39
+ i({
40
+ prevCart: (context) => context == null ? void 0 : context.lastValidCart,
41
+ cart: (context) => context == null ? void 0 : context.lastValidCart,
42
+ errors: (_, event) => {
43
+ var _a;
44
+ return (_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.errors;
45
+ }
46
+ })
47
+ ]
37
48
  },
38
49
  CART_COMPLETED: {
39
50
  target: "cartCompleted",
40
51
  actions: i({
52
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
41
53
  prevCart: (_) => void 0,
54
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
55
  cart: (_) => void 0,
56
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
57
  lastValidCart: (_) => void 0,
58
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
44
59
  rawCartResult: (_) => void 0,
60
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
45
61
  errors: (_) => void 0
46
62
  })
47
63
  }
@@ -58,10 +74,12 @@ const INITIALIZING_CART_EVENTS = {
58
74
  },
59
75
  CART_SET: {
60
76
  target: "idle",
61
- actions: [i({
62
- rawCartResult: (_, event) => event.payload.cart,
63
- cart: (_, event) => cartFromGraphQL(event.payload.cart)
64
- })]
77
+ actions: [
78
+ i({
79
+ rawCartResult: (_, event) => event.payload.cart,
80
+ cart: (_, event) => cartFromGraphQL(event.payload.cart)
81
+ })
82
+ ]
65
83
  }
66
84
  };
67
85
  const UPDATING_CART_EVENTS = {
@@ -105,16 +123,10 @@ function createCartMachine(initialCart) {
105
123
  on: INITIALIZING_CART_EVENTS
106
124
  },
107
125
  idle: {
108
- on: {
109
- ...INITIALIZING_CART_EVENTS,
110
- ...UPDATING_CART_EVENTS
111
- }
126
+ on: { ...INITIALIZING_CART_EVENTS, ...UPDATING_CART_EVENTS }
112
127
  },
113
128
  error: {
114
- on: {
115
- ...INITIALIZING_CART_EVENTS,
116
- ...UPDATING_CART_EVENTS
117
- }
129
+ on: { ...INITIALIZING_CART_EVENTS, ...UPDATING_CART_EVENTS }
118
130
  },
119
131
  cartFetching: invokeCart("cartFetchAction", {
120
132
  errorTarget: "initializationError"
@@ -159,103 +171,138 @@ function useCartAPIStateMachine({
159
171
  const cartMachine = useMemo(() => createCartMachine(cart), [cart]);
160
172
  const [state, send, service] = useMachine(cartMachine, {
161
173
  actions: {
174
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
162
175
  cartFetchAction: async (_, event) => {
163
176
  var _a;
164
177
  if (event.type !== "CART_FETCH")
165
178
  return;
166
- const {
167
- data,
168
- errors
169
- } = await cartFetch((_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.cartId);
179
+ const { data, errors } = await cartFetch((_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.cartId);
170
180
  const resultEvent = eventFromFetchResult(event, data == null ? void 0 : data.cart, errors);
171
181
  send(resultEvent);
172
182
  },
183
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
173
184
  cartCreateAction: async (_, event) => {
174
185
  var _a;
175
186
  if (event.type !== "CART_CREATE")
176
187
  return;
177
- const {
178
- data,
188
+ const { data, errors } = await cartCreate(event == null ? void 0 : event.payload);
189
+ const resultEvent = eventFromFetchResult(
190
+ event,
191
+ (_a = data == null ? void 0 : data.cartCreate) == null ? void 0 : _a.cart,
179
192
  errors
180
- } = await cartCreate(event == null ? void 0 : event.payload);
181
- const resultEvent = eventFromFetchResult(event, (_a = data == null ? void 0 : data.cartCreate) == null ? void 0 : _a.cart, errors);
193
+ );
182
194
  send(resultEvent);
183
195
  },
196
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
184
197
  cartLineAddAction: async (context, event) => {
185
198
  var _a, _b;
186
199
  if (event.type !== "CARTLINE_ADD" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
187
200
  return;
188
- const {
189
- data,
201
+ const { data, errors } = await cartLineAdd(
202
+ context.cart.id,
203
+ event.payload.lines
204
+ );
205
+ const resultEvent = eventFromFetchResult(
206
+ event,
207
+ (_b = data == null ? void 0 : data.cartLinesAdd) == null ? void 0 : _b.cart,
190
208
  errors
191
- } = await cartLineAdd(context.cart.id, event.payload.lines);
192
- const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartLinesAdd) == null ? void 0 : _b.cart, errors);
209
+ );
193
210
  send(resultEvent);
194
211
  },
212
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
195
213
  cartLineUpdateAction: async (context, event) => {
196
214
  var _a, _b;
197
215
  if (event.type !== "CARTLINE_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
198
216
  return;
199
- const {
200
- data,
217
+ const { data, errors } = await cartLineUpdate(
218
+ context.cart.id,
219
+ event.payload.lines
220
+ );
221
+ const resultEvent = eventFromFetchResult(
222
+ event,
223
+ (_b = data == null ? void 0 : data.cartLinesUpdate) == null ? void 0 : _b.cart,
201
224
  errors
202
- } = await cartLineUpdate(context.cart.id, event.payload.lines);
203
- const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartLinesUpdate) == null ? void 0 : _b.cart, errors);
225
+ );
204
226
  send(resultEvent);
205
227
  },
228
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
206
229
  cartLineRemoveAction: async (context, event) => {
207
230
  var _a, _b;
208
231
  if (event.type !== "CARTLINE_REMOVE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
209
232
  return;
210
- const {
211
- data,
233
+ const { data, errors } = await cartLineRemove(
234
+ context.cart.id,
235
+ event.payload.lines
236
+ );
237
+ const resultEvent = eventFromFetchResult(
238
+ event,
239
+ (_b = data == null ? void 0 : data.cartLinesRemove) == null ? void 0 : _b.cart,
212
240
  errors
213
- } = await cartLineRemove(context.cart.id, event.payload.lines);
214
- const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartLinesRemove) == null ? void 0 : _b.cart, errors);
241
+ );
215
242
  send(resultEvent);
216
243
  },
244
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
217
245
  noteUpdateAction: async (context, event) => {
218
246
  var _a, _b;
219
247
  if (event.type !== "NOTE_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
220
248
  return;
221
- const {
222
- data,
249
+ const { data, errors } = await noteUpdate(
250
+ context.cart.id,
251
+ event.payload.note
252
+ );
253
+ const resultEvent = eventFromFetchResult(
254
+ event,
255
+ (_b = data == null ? void 0 : data.cartNoteUpdate) == null ? void 0 : _b.cart,
223
256
  errors
224
- } = await noteUpdate(context.cart.id, event.payload.note);
225
- const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartNoteUpdate) == null ? void 0 : _b.cart, errors);
257
+ );
226
258
  send(resultEvent);
227
259
  },
260
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
228
261
  buyerIdentityUpdateAction: async (context, event) => {
229
262
  var _a, _b;
230
263
  if (event.type !== "BUYER_IDENTITY_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
231
264
  return;
232
- const {
233
- data,
265
+ const { data, errors } = await buyerIdentityUpdate(
266
+ context.cart.id,
267
+ event.payload.buyerIdentity
268
+ );
269
+ const resultEvent = eventFromFetchResult(
270
+ event,
271
+ (_b = data == null ? void 0 : data.cartBuyerIdentityUpdate) == null ? void 0 : _b.cart,
234
272
  errors
235
- } = await buyerIdentityUpdate(context.cart.id, event.payload.buyerIdentity);
236
- const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartBuyerIdentityUpdate) == null ? void 0 : _b.cart, errors);
273
+ );
237
274
  send(resultEvent);
238
275
  },
276
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
239
277
  cartAttributesUpdateAction: async (context, event) => {
240
278
  var _a, _b;
241
279
  if (event.type !== "CART_ATTRIBUTES_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
242
280
  return;
243
- const {
244
- data,
281
+ const { data, errors } = await cartAttributesUpdate(
282
+ context.cart.id,
283
+ event.payload.attributes
284
+ );
285
+ const resultEvent = eventFromFetchResult(
286
+ event,
287
+ (_b = data == null ? void 0 : data.cartAttributesUpdate) == null ? void 0 : _b.cart,
245
288
  errors
246
- } = await cartAttributesUpdate(context.cart.id, event.payload.attributes);
247
- const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartAttributesUpdate) == null ? void 0 : _b.cart, errors);
289
+ );
248
290
  send(resultEvent);
249
291
  },
292
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
250
293
  discountCodesUpdateAction: async (context, event) => {
251
294
  var _a, _b;
252
295
  if (event.type !== "DISCOUNT_CODES_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
253
296
  return;
254
- const {
255
- data,
297
+ const { data, errors } = await discountCodesUpdate(
298
+ context.cart.id,
299
+ event.payload.discountCodes
300
+ );
301
+ const resultEvent = eventFromFetchResult(
302
+ event,
303
+ (_b = data == null ? void 0 : data.cartDiscountCodesUpdate) == null ? void 0 : _b.cart,
256
304
  errors
257
- } = await discountCodesUpdate(context.cart.id, event.payload.discountCodes);
258
- const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartDiscountCodesUpdate) == null ? void 0 : _b.cart, errors);
305
+ );
259
306
  send(resultEvent);
260
307
  },
261
308
  ...onCartActionEntry && {
@@ -282,22 +329,15 @@ function useCartAPIStateMachine({
282
329
  return useMemo(() => [state, send, service], [state, send, service]);
283
330
  }
284
331
  function cartFromGraphQL(cart) {
285
- var _a;
286
332
  return {
287
333
  ...cart,
288
334
  lines: flattenConnection(cart == null ? void 0 : cart.lines),
289
- note: (_a = cart.note) != null ? _a : void 0
335
+ note: cart.note ?? void 0
290
336
  };
291
337
  }
292
338
  function eventFromFetchResult(cartActionEvent, cart, errors) {
293
339
  if (errors) {
294
- return {
295
- type: "ERROR",
296
- payload: {
297
- errors,
298
- cartActionEvent
299
- }
300
- };
340
+ return { type: "ERROR", payload: { errors, cartActionEvent } };
301
341
  }
302
342
  if (!cart) {
303
343
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"useCartAPIStateMachine.mjs","sources":["../../src/useCartAPIStateMachine.tsx"],"sourcesContent":["import {useMachine} from '@xstate/react/fsm';\nimport {createMachine, assign, StateMachine} from '@xstate/fsm';\nimport {\n Cart,\n CartMachineActionEvent,\n CartMachineActions,\n CartMachineContext,\n CartMachineEvent,\n CartMachineFetchResultEvent,\n CartMachineTypeState,\n} from './cart-types.js';\nimport {flattenConnection} from './flatten-connection.js';\nimport {useCartActions} from './useCartActions.js';\nimport {useMemo} from 'react';\nimport {InitEvent} from '@xstate/fsm/lib/types.js';\nimport {CountryCode, Cart as CartType} from './storefront-api-types.js';\nimport type {PartialDeep} from 'type-fest';\n\nfunction invokeCart(\n action: keyof CartMachineActions,\n options?: {\n entryActions?: [keyof CartMachineActions];\n resolveTarget?: CartMachineTypeState['value'];\n errorTarget?: CartMachineTypeState['value'];\n exitActions?: [keyof CartMachineActions];\n }\n): StateMachine.Config<CartMachineContext, CartMachineEvent>['states']['on'] {\n return {\n entry: [\n ...(options?.entryActions || []),\n assign({\n lastValidCart: (context) => context?.cart,\n }),\n 'onCartActionEntry',\n 'onCartActionOptimisticUI',\n action,\n ],\n on: {\n RESOLVE: {\n target: options?.resolveTarget || 'idle',\n actions: [\n assign({\n prevCart: (context) => context?.lastValidCart,\n cart: (_, event) => event?.payload?.cart,\n rawCartResult: (_, event) => event?.payload?.rawCartResult,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n errors: (_) => undefined,\n }),\n ],\n },\n ERROR: {\n target: options?.errorTarget || 'error',\n actions: [\n assign({\n prevCart: (context) => context?.lastValidCart,\n cart: (context) => context?.lastValidCart,\n errors: (_, event) => event?.payload?.errors,\n }),\n ],\n },\n CART_COMPLETED: {\n target: 'cartCompleted',\n actions: assign({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n prevCart: (_) => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n cart: (_) => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n lastValidCart: (_) => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rawCartResult: (_) => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n errors: (_) => undefined,\n }),\n },\n },\n exit: ['onCartActionComplete', ...(options?.exitActions || [])],\n };\n}\n\nconst INITIALIZING_CART_EVENTS: StateMachine.Machine<\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState\n>['config']['states']['uninitialized']['on'] = {\n CART_FETCH: {\n target: 'cartFetching',\n },\n CART_CREATE: {\n target: 'cartCreating',\n },\n CART_SET: {\n target: 'idle',\n actions: [\n assign({\n rawCartResult: (_, event) => event.payload.cart,\n cart: (_, event) => cartFromGraphQL(event.payload.cart),\n }),\n ],\n },\n};\n\nconst UPDATING_CART_EVENTS: StateMachine.Machine<\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState\n>['config']['states']['idle']['on'] = {\n CARTLINE_ADD: {\n target: 'cartLineAdding',\n },\n CARTLINE_UPDATE: {\n target: 'cartLineUpdating',\n },\n CARTLINE_REMOVE: {\n target: 'cartLineRemoving',\n },\n NOTE_UPDATE: {\n target: 'noteUpdating',\n },\n BUYER_IDENTITY_UPDATE: {\n target: 'buyerIdentityUpdating',\n },\n CART_ATTRIBUTES_UPDATE: {\n target: 'cartAttributesUpdating',\n },\n DISCOUNT_CODES_UPDATE: {\n target: 'discountCodesUpdating',\n },\n};\n\nfunction createCartMachine(\n initialCart?: PartialDeep<CartType, {recurseIntoArrays: true}>\n) {\n return createMachine<\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState\n >({\n id: 'Cart',\n initial: initialCart ? 'idle' : 'uninitialized',\n context: {\n cart: initialCart && cartFromGraphQL(initialCart),\n },\n states: {\n uninitialized: {\n on: INITIALIZING_CART_EVENTS,\n },\n cartCompleted: {\n on: INITIALIZING_CART_EVENTS,\n },\n initializationError: {\n on: INITIALIZING_CART_EVENTS,\n },\n idle: {\n on: {...INITIALIZING_CART_EVENTS, ...UPDATING_CART_EVENTS},\n },\n error: {\n on: {...INITIALIZING_CART_EVENTS, ...UPDATING_CART_EVENTS},\n },\n cartFetching: invokeCart('cartFetchAction', {\n errorTarget: 'initializationError',\n }),\n cartCreating: invokeCart('cartCreateAction', {\n errorTarget: 'initializationError',\n }),\n cartLineRemoving: invokeCart('cartLineRemoveAction'),\n cartLineUpdating: invokeCart('cartLineUpdateAction'),\n cartLineAdding: invokeCart('cartLineAddAction'),\n noteUpdating: invokeCart('noteUpdateAction'),\n buyerIdentityUpdating: invokeCart('buyerIdentityUpdateAction'),\n cartAttributesUpdating: invokeCart('cartAttributesUpdateAction'),\n discountCodesUpdating: invokeCart('discountCodesUpdateAction'),\n },\n });\n}\n\nexport function useCartAPIStateMachine({\n numCartLines,\n onCartActionEntry,\n onCartActionOptimisticUI,\n onCartActionComplete,\n data: cart,\n cartFragment,\n countryCode,\n}: {\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A callback that is invoked just before a Cart API action executes. */\n onCartActionEntry?: (\n context: CartMachineContext,\n event: CartMachineActionEvent\n ) => void;\n /** A callback that is invoked after executing the entry actions for optimistic UI changes. */\n onCartActionOptimisticUI?: (\n context: CartMachineContext,\n event: CartMachineEvent\n ) => Partial<CartMachineContext>;\n /** A callback that is invoked after a Cart API completes. */\n onCartActionComplete?: (\n context: CartMachineContext,\n event: CartMachineFetchResultEvent\n ) => void;\n /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart). */\n data?: PartialDeep<CartType, {recurseIntoArrays: true}>;\n /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */\n cartFragment: string;\n /** The ISO country code for i18n. */\n countryCode?: CountryCode;\n}) {\n const {\n cartFetch,\n cartCreate,\n cartLineAdd,\n cartLineUpdate,\n cartLineRemove,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n } = useCartActions({\n numCartLines,\n cartFragment,\n countryCode,\n });\n\n const cartMachine = useMemo(() => createCartMachine(cart), [cart]);\n\n const [state, send, service] = useMachine(cartMachine, {\n actions: {\n cartFetchAction: async (_, event): Promise<void> => {\n if (event.type !== 'CART_FETCH') return;\n\n const {data, errors} = await cartFetch(event?.payload?.cartId);\n const resultEvent = eventFromFetchResult(event, data?.cart, errors);\n send(resultEvent);\n },\n cartCreateAction: async (_, event): Promise<void> => {\n if (event.type !== 'CART_CREATE') return;\n\n const {data, errors} = await cartCreate(event?.payload);\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartCreate?.cart,\n errors\n );\n send(resultEvent);\n },\n cartLineAddAction: async (context, event): Promise<void> => {\n if (event.type !== 'CARTLINE_ADD' || !context?.cart?.id) return;\n\n const {data, errors} = await cartLineAdd(\n context.cart.id,\n event.payload.lines\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartLinesAdd?.cart,\n errors\n );\n\n send(resultEvent);\n },\n cartLineUpdateAction: async (context, event): Promise<void> => {\n if (event.type !== 'CARTLINE_UPDATE' || !context?.cart?.id) return;\n const {data, errors} = await cartLineUpdate(\n context.cart.id,\n event.payload.lines\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartLinesUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n cartLineRemoveAction: async (context, event): Promise<void> => {\n if (event.type !== 'CARTLINE_REMOVE' || !context?.cart?.id) return;\n const {data, errors} = await cartLineRemove(\n context.cart.id,\n event.payload.lines\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartLinesRemove?.cart,\n errors\n );\n\n send(resultEvent);\n },\n noteUpdateAction: async (context, event): Promise<void> => {\n if (event.type !== 'NOTE_UPDATE' || !context?.cart?.id) return;\n const {data, errors} = await noteUpdate(\n context.cart.id,\n event.payload.note\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartNoteUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n buyerIdentityUpdateAction: async (context, event): Promise<void> => {\n if (event.type !== 'BUYER_IDENTITY_UPDATE' || !context?.cart?.id)\n return;\n const {data, errors} = await buyerIdentityUpdate(\n context.cart.id,\n event.payload.buyerIdentity\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartBuyerIdentityUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n cartAttributesUpdateAction: async (context, event): Promise<void> => {\n if (event.type !== 'CART_ATTRIBUTES_UPDATE' || !context?.cart?.id)\n return;\n const {data, errors} = await cartAttributesUpdate(\n context.cart.id,\n event.payload.attributes\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartAttributesUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n discountCodesUpdateAction: async (context, event): Promise<void> => {\n if (event.type !== 'DISCOUNT_CODES_UPDATE' || !context?.cart?.id)\n return;\n const {data, errors} = await discountCodesUpdate(\n context.cart.id,\n event.payload.discountCodes\n );\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartDiscountCodesUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n ...(onCartActionEntry && {\n onCartActionEntry: (context, event) => {\n if (isCartActionEvent(event)) {\n onCartActionEntry(context, event);\n }\n },\n }),\n ...(onCartActionOptimisticUI && {\n onCartActionOptimisticUI: assign((context, event) => {\n return onCartActionOptimisticUI(context, event);\n }),\n }),\n ...(onCartActionComplete && {\n onCartActionComplete: (context, event) => {\n if (isCartFetchResultEvent(event)) {\n onCartActionComplete(context, event);\n }\n },\n }),\n } as CartMachineActions,\n });\n\n return useMemo(() => [state, send, service] as const, [state, send, service]);\n}\n\nexport function cartFromGraphQL(\n cart: PartialDeep<CartType, {recurseIntoArrays: true}>\n): Cart {\n return {\n ...cart,\n lines: flattenConnection(cart?.lines),\n note: cart.note ?? undefined,\n };\n}\n\nfunction eventFromFetchResult(\n cartActionEvent: CartMachineActionEvent,\n cart?: PartialDeep<CartType, {recurseIntoArrays: true}> | null,\n errors?: unknown\n): CartMachineFetchResultEvent {\n if (errors) {\n return {type: 'ERROR', payload: {errors, cartActionEvent}};\n }\n\n if (!cart) {\n return {\n type: 'CART_COMPLETED',\n payload: {\n cartActionEvent,\n },\n };\n }\n\n return {\n type: 'RESOLVE',\n payload: {\n cart: cartFromGraphQL(cart),\n rawCartResult: cart,\n cartActionEvent,\n },\n };\n}\n\nfunction isCartActionEvent(\n event: CartMachineEvent | InitEvent\n): event is CartMachineActionEvent {\n return (\n event.type === 'CART_CREATE' ||\n event.type === 'CARTLINE_ADD' ||\n event.type === 'CARTLINE_UPDATE' ||\n event.type === 'CARTLINE_REMOVE' ||\n event.type === 'NOTE_UPDATE' ||\n event.type === 'BUYER_IDENTITY_UPDATE' ||\n event.type === 'CART_ATTRIBUTES_UPDATE' ||\n event.type === 'DISCOUNT_CODES_UPDATE'\n );\n}\n\nfunction isCartFetchResultEvent(\n event: CartMachineEvent | InitEvent\n): event is CartMachineFetchResultEvent {\n return (\n event.type === 'RESOLVE' ||\n event.type === 'ERROR' ||\n event.type === 'CART_COMPLETED'\n );\n}\n"],"names":["invokeCart","action","options","entry","entryActions","assign","lastValidCart","context","cart","on","RESOLVE","target","resolveTarget","actions","prevCart","_","event","payload","rawCartResult","errors","undefined","ERROR","errorTarget","CART_COMPLETED","exit","exitActions","INITIALIZING_CART_EVENTS","CART_FETCH","CART_CREATE","CART_SET","cartFromGraphQL","UPDATING_CART_EVENTS","CARTLINE_ADD","CARTLINE_UPDATE","CARTLINE_REMOVE","NOTE_UPDATE","BUYER_IDENTITY_UPDATE","CART_ATTRIBUTES_UPDATE","DISCOUNT_CODES_UPDATE","createCartMachine","initialCart","createMachine","id","initial","states","uninitialized","cartCompleted","initializationError","idle","error","cartFetching","cartCreating","cartLineRemoving","cartLineUpdating","cartLineAdding","noteUpdating","buyerIdentityUpdating","cartAttributesUpdating","discountCodesUpdating","useCartAPIStateMachine","numCartLines","onCartActionEntry","onCartActionOptimisticUI","onCartActionComplete","data","cartFragment","countryCode","cartFetch","cartCreate","cartLineAdd","cartLineUpdate","cartLineRemove","noteUpdate","buyerIdentityUpdate","cartAttributesUpdate","discountCodesUpdate","useCartActions","cartMachine","useMemo","state","send","service","useMachine","cartFetchAction","type","cartId","resultEvent","eventFromFetchResult","cartCreateAction","cartLineAddAction","lines","cartLinesAdd","cartLineUpdateAction","cartLinesUpdate","cartLineRemoveAction","cartLinesRemove","noteUpdateAction","note","cartNoteUpdate","buyerIdentityUpdateAction","buyerIdentity","cartBuyerIdentityUpdate","cartAttributesUpdateAction","attributes","discountCodesUpdateAction","discountCodes","cartDiscountCodesUpdate","isCartActionEvent","isCartFetchResultEvent","flattenConnection","cartActionEvent"],"mappings":"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"}
1
+ {"version":3,"file":"useCartAPIStateMachine.mjs","sources":["../../src/useCartAPIStateMachine.tsx"],"sourcesContent":["import {useMachine} from '@xstate/react/fsm';\nimport {createMachine, assign, StateMachine} from '@xstate/fsm';\nimport {\n Cart,\n CartMachineActionEvent,\n CartMachineActions,\n CartMachineContext,\n CartMachineEvent,\n CartMachineFetchResultEvent,\n CartMachineTypeState,\n} from './cart-types.js';\nimport {flattenConnection} from './flatten-connection.js';\nimport {useCartActions} from './useCartActions.js';\nimport {useMemo} from 'react';\nimport {InitEvent} from '@xstate/fsm/lib/types.js';\nimport {CountryCode, Cart as CartType} from './storefront-api-types.js';\nimport type {PartialDeep} from 'type-fest';\n\nfunction invokeCart(\n action: keyof CartMachineActions,\n options?: {\n entryActions?: [keyof CartMachineActions];\n resolveTarget?: CartMachineTypeState['value'];\n errorTarget?: CartMachineTypeState['value'];\n exitActions?: [keyof CartMachineActions];\n }\n): StateMachine.Config<CartMachineContext, CartMachineEvent>['states']['on'] {\n return {\n entry: [\n ...(options?.entryActions || []),\n assign({\n lastValidCart: (context) => context?.cart,\n }),\n 'onCartActionEntry',\n 'onCartActionOptimisticUI',\n action,\n ],\n on: {\n RESOLVE: {\n target: options?.resolveTarget || 'idle',\n actions: [\n assign({\n prevCart: (context) => context?.lastValidCart,\n cart: (_, event) => event?.payload?.cart,\n rawCartResult: (_, event) => event?.payload?.rawCartResult,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n errors: (_) => undefined,\n }),\n ],\n },\n ERROR: {\n target: options?.errorTarget || 'error',\n actions: [\n assign({\n prevCart: (context) => context?.lastValidCart,\n cart: (context) => context?.lastValidCart,\n errors: (_, event) => event?.payload?.errors,\n }),\n ],\n },\n CART_COMPLETED: {\n target: 'cartCompleted',\n actions: assign({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n prevCart: (_) => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n cart: (_) => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n lastValidCart: (_) => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rawCartResult: (_) => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n errors: (_) => undefined,\n }),\n },\n },\n exit: ['onCartActionComplete', ...(options?.exitActions || [])],\n };\n}\n\nconst INITIALIZING_CART_EVENTS: StateMachine.Machine<\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState\n>['config']['states']['uninitialized']['on'] = {\n CART_FETCH: {\n target: 'cartFetching',\n },\n CART_CREATE: {\n target: 'cartCreating',\n },\n CART_SET: {\n target: 'idle',\n actions: [\n assign({\n rawCartResult: (_, event) => event.payload.cart,\n cart: (_, event) => cartFromGraphQL(event.payload.cart),\n }),\n ],\n },\n};\n\nconst UPDATING_CART_EVENTS: StateMachine.Machine<\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState\n>['config']['states']['idle']['on'] = {\n CARTLINE_ADD: {\n target: 'cartLineAdding',\n },\n CARTLINE_UPDATE: {\n target: 'cartLineUpdating',\n },\n CARTLINE_REMOVE: {\n target: 'cartLineRemoving',\n },\n NOTE_UPDATE: {\n target: 'noteUpdating',\n },\n BUYER_IDENTITY_UPDATE: {\n target: 'buyerIdentityUpdating',\n },\n CART_ATTRIBUTES_UPDATE: {\n target: 'cartAttributesUpdating',\n },\n DISCOUNT_CODES_UPDATE: {\n target: 'discountCodesUpdating',\n },\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction createCartMachine(\n initialCart?: PartialDeep<CartType, {recurseIntoArrays: true}>\n) {\n return createMachine<\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState\n >({\n id: 'Cart',\n initial: initialCart ? 'idle' : 'uninitialized',\n context: {\n cart: initialCart && cartFromGraphQL(initialCart),\n },\n states: {\n uninitialized: {\n on: INITIALIZING_CART_EVENTS,\n },\n cartCompleted: {\n on: INITIALIZING_CART_EVENTS,\n },\n initializationError: {\n on: INITIALIZING_CART_EVENTS,\n },\n idle: {\n on: {...INITIALIZING_CART_EVENTS, ...UPDATING_CART_EVENTS},\n },\n error: {\n on: {...INITIALIZING_CART_EVENTS, ...UPDATING_CART_EVENTS},\n },\n cartFetching: invokeCart('cartFetchAction', {\n errorTarget: 'initializationError',\n }),\n cartCreating: invokeCart('cartCreateAction', {\n errorTarget: 'initializationError',\n }),\n cartLineRemoving: invokeCart('cartLineRemoveAction'),\n cartLineUpdating: invokeCart('cartLineUpdateAction'),\n cartLineAdding: invokeCart('cartLineAddAction'),\n noteUpdating: invokeCart('noteUpdateAction'),\n buyerIdentityUpdating: invokeCart('buyerIdentityUpdateAction'),\n cartAttributesUpdating: invokeCart('cartAttributesUpdateAction'),\n discountCodesUpdating: invokeCart('discountCodesUpdateAction'),\n },\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useCartAPIStateMachine({\n numCartLines,\n onCartActionEntry,\n onCartActionOptimisticUI,\n onCartActionComplete,\n data: cart,\n cartFragment,\n countryCode,\n}: {\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A callback that is invoked just before a Cart API action executes. */\n onCartActionEntry?: (\n context: CartMachineContext,\n event: CartMachineActionEvent\n ) => void;\n /** A callback that is invoked after executing the entry actions for optimistic UI changes. */\n onCartActionOptimisticUI?: (\n context: CartMachineContext,\n event: CartMachineEvent\n ) => Partial<CartMachineContext>;\n /** A callback that is invoked after a Cart API completes. */\n onCartActionComplete?: (\n context: CartMachineContext,\n event: CartMachineFetchResultEvent\n ) => void;\n /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart). */\n data?: PartialDeep<CartType, {recurseIntoArrays: true}>;\n /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */\n cartFragment: string;\n /** The ISO country code for i18n. */\n countryCode?: CountryCode;\n}) {\n const {\n cartFetch,\n cartCreate,\n cartLineAdd,\n cartLineUpdate,\n cartLineRemove,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n } = useCartActions({\n numCartLines,\n cartFragment,\n countryCode,\n });\n\n const cartMachine = useMemo(() => createCartMachine(cart), [cart]);\n\n const [state, send, service] = useMachine(cartMachine, {\n actions: {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cartFetchAction: async (_, event) => {\n if (event.type !== 'CART_FETCH') return;\n\n const {data, errors} = await cartFetch(event?.payload?.cartId);\n const resultEvent = eventFromFetchResult(event, data?.cart, errors);\n send(resultEvent);\n },\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cartCreateAction: async (_, event) => {\n if (event.type !== 'CART_CREATE') return;\n\n const {data, errors} = await cartCreate(event?.payload);\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartCreate?.cart,\n errors\n );\n send(resultEvent);\n },\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cartLineAddAction: async (context, event) => {\n if (event.type !== 'CARTLINE_ADD' || !context?.cart?.id) return;\n\n const {data, errors} = await cartLineAdd(\n context.cart.id,\n event.payload.lines\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartLinesAdd?.cart,\n errors\n );\n\n send(resultEvent);\n },\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cartLineUpdateAction: async (context, event) => {\n if (event.type !== 'CARTLINE_UPDATE' || !context?.cart?.id) return;\n const {data, errors} = await cartLineUpdate(\n context.cart.id,\n event.payload.lines\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartLinesUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cartLineRemoveAction: async (context, event) => {\n if (event.type !== 'CARTLINE_REMOVE' || !context?.cart?.id) return;\n const {data, errors} = await cartLineRemove(\n context.cart.id,\n event.payload.lines\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartLinesRemove?.cart,\n errors\n );\n\n send(resultEvent);\n },\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n noteUpdateAction: async (context, event) => {\n if (event.type !== 'NOTE_UPDATE' || !context?.cart?.id) return;\n const {data, errors} = await noteUpdate(\n context.cart.id,\n event.payload.note\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartNoteUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n buyerIdentityUpdateAction: async (context, event) => {\n if (event.type !== 'BUYER_IDENTITY_UPDATE' || !context?.cart?.id)\n return;\n const {data, errors} = await buyerIdentityUpdate(\n context.cart.id,\n event.payload.buyerIdentity\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartBuyerIdentityUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n cartAttributesUpdateAction: async (context, event) => {\n if (event.type !== 'CART_ATTRIBUTES_UPDATE' || !context?.cart?.id)\n return;\n const {data, errors} = await cartAttributesUpdate(\n context.cart.id,\n event.payload.attributes\n );\n\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartAttributesUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n discountCodesUpdateAction: async (context, event) => {\n if (event.type !== 'DISCOUNT_CODES_UPDATE' || !context?.cart?.id)\n return;\n const {data, errors} = await discountCodesUpdate(\n context.cart.id,\n event.payload.discountCodes\n );\n const resultEvent = eventFromFetchResult(\n event,\n data?.cartDiscountCodesUpdate?.cart,\n errors\n );\n\n send(resultEvent);\n },\n ...(onCartActionEntry && {\n onCartActionEntry: (context, event): void => {\n if (isCartActionEvent(event)) {\n onCartActionEntry(context, event);\n }\n },\n }),\n ...(onCartActionOptimisticUI && {\n onCartActionOptimisticUI: assign((context, event) => {\n return onCartActionOptimisticUI(context, event);\n }),\n }),\n ...(onCartActionComplete && {\n onCartActionComplete: (context, event): void => {\n if (isCartFetchResultEvent(event)) {\n onCartActionComplete(context, event);\n }\n },\n }),\n } as CartMachineActions,\n });\n\n return useMemo(() => [state, send, service] as const, [state, send, service]);\n}\n\nexport function cartFromGraphQL(\n cart: PartialDeep<CartType, {recurseIntoArrays: true}>\n): Cart {\n return {\n ...cart,\n lines: flattenConnection(cart?.lines),\n note: cart.note ?? undefined,\n };\n}\n\nfunction eventFromFetchResult(\n cartActionEvent: CartMachineActionEvent,\n cart?: PartialDeep<CartType, {recurseIntoArrays: true}> | null,\n errors?: unknown\n): CartMachineFetchResultEvent {\n if (errors) {\n return {type: 'ERROR', payload: {errors, cartActionEvent}};\n }\n\n if (!cart) {\n return {\n type: 'CART_COMPLETED',\n payload: {\n cartActionEvent,\n },\n };\n }\n\n return {\n type: 'RESOLVE',\n payload: {\n cart: cartFromGraphQL(cart),\n rawCartResult: cart,\n cartActionEvent,\n },\n };\n}\n\nfunction isCartActionEvent(\n event: CartMachineEvent | InitEvent\n): event is CartMachineActionEvent {\n return (\n event.type === 'CART_CREATE' ||\n event.type === 'CARTLINE_ADD' ||\n event.type === 'CARTLINE_UPDATE' ||\n event.type === 'CARTLINE_REMOVE' ||\n event.type === 'NOTE_UPDATE' ||\n event.type === 'BUYER_IDENTITY_UPDATE' ||\n event.type === 'CART_ATTRIBUTES_UPDATE' ||\n event.type === 'DISCOUNT_CODES_UPDATE'\n );\n}\n\nfunction isCartFetchResultEvent(\n event: CartMachineEvent | InitEvent\n): event is CartMachineFetchResultEvent {\n return (\n event.type === 'RESOLVE' ||\n event.type === 'ERROR' ||\n event.type === 'CART_COMPLETED'\n );\n}\n"],"names":["assign","createMachine"],"mappings":"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"}