@shopify/hydrogen-react 2022.7.0 → 2022.7.1

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 (261) hide show
  1. package/README.md +6 -4
  2. package/dist/dev/CartProvider.cjs +485 -0
  3. package/dist/dev/CartProvider.cjs.map +1 -0
  4. package/dist/dev/CartProvider.js +485 -0
  5. package/dist/dev/CartProvider.js.map +1 -0
  6. package/dist/dev/MediaFile.cjs.map +1 -1
  7. package/dist/dev/MediaFile.js.map +1 -1
  8. package/dist/dev/Metafield.cjs +2 -2
  9. package/dist/dev/Metafield.cjs.map +1 -1
  10. package/dist/dev/ModelViewer.cjs +4 -4
  11. package/dist/dev/ModelViewer.cjs.map +1 -1
  12. package/dist/dev/Money.cjs.map +1 -1
  13. package/dist/dev/Money.js.map +1 -1
  14. package/dist/dev/ProductPrice.cjs.map +1 -1
  15. package/dist/dev/ProductPrice.js.map +1 -1
  16. package/dist/dev/ProductProvider.cjs +14 -14
  17. package/dist/dev/ProductProvider.cjs.map +1 -1
  18. package/dist/dev/ShopPayButton.cjs.map +1 -1
  19. package/dist/dev/ShopPayButton.js.map +1 -1
  20. package/dist/dev/ShopifyProvider.cjs +4 -4
  21. package/dist/dev/ShopifyProvider.cjs.map +1 -1
  22. package/dist/dev/Video.cjs +2 -2
  23. package/dist/dev/_virtual/index.cjs +5 -0
  24. package/dist/dev/_virtual/index.cjs.map +1 -0
  25. package/dist/dev/_virtual/index.js +5 -0
  26. package/dist/dev/_virtual/index.js.map +1 -0
  27. package/dist/dev/_virtual/use-sync-external-store-shim.development.cjs +5 -0
  28. package/dist/dev/_virtual/use-sync-external-store-shim.development.cjs.map +1 -0
  29. package/dist/dev/_virtual/use-sync-external-store-shim.development.js +5 -0
  30. package/dist/dev/_virtual/use-sync-external-store-shim.development.js.map +1 -0
  31. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.cjs +5 -0
  32. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.cjs.map +1 -0
  33. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.js +5 -0
  34. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.js.map +1 -0
  35. package/dist/dev/_virtual/with-selector.cjs +5 -0
  36. package/dist/dev/_virtual/with-selector.cjs.map +1 -0
  37. package/dist/dev/_virtual/with-selector.development.cjs +5 -0
  38. package/dist/dev/_virtual/with-selector.development.cjs.map +1 -0
  39. package/dist/dev/_virtual/with-selector.development.js +5 -0
  40. package/dist/dev/_virtual/with-selector.development.js.map +1 -0
  41. package/dist/dev/_virtual/with-selector.js +5 -0
  42. package/dist/dev/_virtual/with-selector.js.map +1 -0
  43. package/dist/dev/_virtual/with-selector.production.min.cjs +5 -0
  44. package/dist/dev/_virtual/with-selector.production.min.cjs.map +1 -0
  45. package/dist/dev/_virtual/with-selector.production.min.js +5 -0
  46. package/dist/dev/_virtual/with-selector.production.min.js.map +1 -0
  47. package/dist/dev/cart-constants.cjs +17 -0
  48. package/dist/dev/cart-constants.cjs.map +1 -0
  49. package/dist/dev/cart-constants.js +17 -0
  50. package/dist/dev/cart-constants.js.map +1 -0
  51. package/dist/dev/cart-hooks.cjs +89 -0
  52. package/dist/dev/cart-hooks.cjs.map +1 -0
  53. package/dist/dev/cart-hooks.js +89 -0
  54. package/dist/dev/cart-hooks.js.map +1 -0
  55. package/dist/dev/cart-queries.cjs +216 -0
  56. package/dist/dev/cart-queries.cjs.map +1 -0
  57. package/dist/dev/cart-queries.js +216 -0
  58. package/dist/dev/cart-queries.js.map +1 -0
  59. package/dist/dev/flatten-connection.cjs +6 -0
  60. package/dist/dev/flatten-connection.cjs.map +1 -1
  61. package/dist/dev/flatten-connection.js +6 -0
  62. package/dist/dev/flatten-connection.js.map +1 -1
  63. package/dist/dev/index.cjs +6 -0
  64. package/dist/dev/index.cjs.map +1 -1
  65. package/dist/dev/index.js +6 -0
  66. package/dist/dev/index.js.map +1 -1
  67. package/dist/dev/load-script.cjs +3 -3
  68. package/dist/dev/load-script.cjs.map +1 -1
  69. package/dist/dev/node_modules/@xstate/fsm/es/index.cjs +158 -0
  70. package/dist/dev/node_modules/@xstate/fsm/es/index.cjs.map +1 -0
  71. package/dist/dev/node_modules/@xstate/fsm/es/index.js +159 -0
  72. package/dist/dev/node_modules/@xstate/fsm/es/index.js.map +1 -0
  73. package/dist/dev/node_modules/@xstate/react/es/fsm.cjs +94 -0
  74. package/dist/dev/node_modules/@xstate/react/es/fsm.cjs.map +1 -0
  75. package/dist/dev/node_modules/@xstate/react/es/fsm.js +94 -0
  76. package/dist/dev/node_modules/@xstate/react/es/fsm.js.map +1 -0
  77. package/dist/dev/node_modules/@xstate/react/es/useConstant.cjs +30 -0
  78. package/dist/dev/node_modules/@xstate/react/es/useConstant.cjs.map +1 -0
  79. package/dist/dev/node_modules/@xstate/react/es/useConstant.js +12 -0
  80. package/dist/dev/node_modules/@xstate/react/es/useConstant.js.map +1 -0
  81. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.cjs +5 -0
  82. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.cjs.map +1 -0
  83. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +6 -0
  84. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +1 -0
  85. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.cjs +107 -0
  86. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.cjs.map +1 -0
  87. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +105 -0
  88. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -0
  89. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.cjs +74 -0
  90. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.cjs.map +1 -0
  91. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +72 -0
  92. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -0
  93. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs +138 -0
  94. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.map +1 -0
  95. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +136 -0
  96. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -0
  97. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.cjs +60 -0
  98. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.cjs.map +1 -0
  99. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +58 -0
  100. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -0
  101. package/dist/dev/node_modules/use-sync-external-store/shim/index.cjs +21 -0
  102. package/dist/dev/node_modules/use-sync-external-store/shim/index.cjs.map +1 -0
  103. package/dist/dev/node_modules/use-sync-external-store/shim/index.js +21 -0
  104. package/dist/dev/node_modules/use-sync-external-store/shim/index.js.map +1 -0
  105. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.cjs +12 -0
  106. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.cjs.map +1 -0
  107. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.js +11 -0
  108. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -0
  109. package/dist/dev/node_modules/worktop/cookie/index.cjs +27 -0
  110. package/dist/dev/node_modules/worktop/cookie/index.cjs.map +1 -0
  111. package/dist/dev/node_modules/worktop/cookie/index.js +27 -0
  112. package/dist/dev/node_modules/worktop/cookie/index.js.map +1 -0
  113. package/dist/dev/useCartAPIStateMachine.cjs +326 -0
  114. package/dist/dev/useCartAPIStateMachine.cjs.map +1 -0
  115. package/dist/dev/useCartAPIStateMachine.js +326 -0
  116. package/dist/dev/useCartAPIStateMachine.js.map +1 -0
  117. package/dist/dev/useCartActions.cjs +123 -0
  118. package/dist/dev/useCartActions.cjs.map +1 -0
  119. package/dist/dev/useCartActions.js +123 -0
  120. package/dist/dev/useCartActions.js.map +1 -0
  121. package/dist/dev/useMoney.cjs +5 -5
  122. package/dist/dev/useMoney.cjs.map +1 -1
  123. package/dist/prod/CartProvider.cjs +485 -0
  124. package/dist/prod/CartProvider.cjs.map +1 -0
  125. package/dist/prod/CartProvider.js +485 -0
  126. package/dist/prod/CartProvider.js.map +1 -0
  127. package/dist/prod/MediaFile.cjs.map +1 -1
  128. package/dist/prod/MediaFile.js.map +1 -1
  129. package/dist/prod/Metafield.cjs +2 -2
  130. package/dist/prod/Metafield.cjs.map +1 -1
  131. package/dist/prod/ModelViewer.cjs +4 -4
  132. package/dist/prod/ModelViewer.cjs.map +1 -1
  133. package/dist/prod/Money.cjs.map +1 -1
  134. package/dist/prod/Money.js.map +1 -1
  135. package/dist/prod/ProductPrice.cjs.map +1 -1
  136. package/dist/prod/ProductPrice.js.map +1 -1
  137. package/dist/prod/ProductProvider.cjs +14 -14
  138. package/dist/prod/ProductProvider.cjs.map +1 -1
  139. package/dist/prod/ShopPayButton.cjs.map +1 -1
  140. package/dist/prod/ShopPayButton.js.map +1 -1
  141. package/dist/prod/ShopifyProvider.cjs +4 -4
  142. package/dist/prod/ShopifyProvider.cjs.map +1 -1
  143. package/dist/prod/Video.cjs +2 -2
  144. package/dist/prod/_virtual/index.cjs +5 -0
  145. package/dist/prod/_virtual/index.cjs.map +1 -0
  146. package/dist/prod/_virtual/index.js +5 -0
  147. package/dist/prod/_virtual/index.js.map +1 -0
  148. package/dist/prod/_virtual/use-sync-external-store-shim.development.cjs +5 -0
  149. package/dist/prod/_virtual/use-sync-external-store-shim.development.cjs.map +1 -0
  150. package/dist/prod/_virtual/use-sync-external-store-shim.development.js +5 -0
  151. package/dist/prod/_virtual/use-sync-external-store-shim.development.js.map +1 -0
  152. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.cjs +5 -0
  153. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.cjs.map +1 -0
  154. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.js +5 -0
  155. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.js.map +1 -0
  156. package/dist/prod/_virtual/with-selector.cjs +5 -0
  157. package/dist/prod/_virtual/with-selector.cjs.map +1 -0
  158. package/dist/prod/_virtual/with-selector.development.cjs +5 -0
  159. package/dist/prod/_virtual/with-selector.development.cjs.map +1 -0
  160. package/dist/prod/_virtual/with-selector.development.js +5 -0
  161. package/dist/prod/_virtual/with-selector.development.js.map +1 -0
  162. package/dist/prod/_virtual/with-selector.js +5 -0
  163. package/dist/prod/_virtual/with-selector.js.map +1 -0
  164. package/dist/prod/_virtual/with-selector.production.min.cjs +5 -0
  165. package/dist/prod/_virtual/with-selector.production.min.cjs.map +1 -0
  166. package/dist/prod/_virtual/with-selector.production.min.js +5 -0
  167. package/dist/prod/_virtual/with-selector.production.min.js.map +1 -0
  168. package/dist/prod/cart-constants.cjs +17 -0
  169. package/dist/prod/cart-constants.cjs.map +1 -0
  170. package/dist/prod/cart-constants.js +17 -0
  171. package/dist/prod/cart-constants.js.map +1 -0
  172. package/dist/prod/cart-hooks.cjs +89 -0
  173. package/dist/prod/cart-hooks.cjs.map +1 -0
  174. package/dist/prod/cart-hooks.js +89 -0
  175. package/dist/prod/cart-hooks.js.map +1 -0
  176. package/dist/prod/cart-queries.cjs +216 -0
  177. package/dist/prod/cart-queries.cjs.map +1 -0
  178. package/dist/prod/cart-queries.js +216 -0
  179. package/dist/prod/cart-queries.js.map +1 -0
  180. package/dist/prod/flatten-connection.cjs +7 -0
  181. package/dist/prod/flatten-connection.cjs.map +1 -1
  182. package/dist/prod/flatten-connection.js +7 -0
  183. package/dist/prod/flatten-connection.js.map +1 -1
  184. package/dist/prod/index.cjs +6 -0
  185. package/dist/prod/index.cjs.map +1 -1
  186. package/dist/prod/index.js +6 -0
  187. package/dist/prod/index.js.map +1 -1
  188. package/dist/prod/load-script.cjs +3 -3
  189. package/dist/prod/load-script.cjs.map +1 -1
  190. package/dist/prod/node_modules/@xstate/fsm/es/index.cjs +158 -0
  191. package/dist/prod/node_modules/@xstate/fsm/es/index.cjs.map +1 -0
  192. package/dist/prod/node_modules/@xstate/fsm/es/index.js +159 -0
  193. package/dist/prod/node_modules/@xstate/fsm/es/index.js.map +1 -0
  194. package/dist/prod/node_modules/@xstate/react/es/fsm.cjs +94 -0
  195. package/dist/prod/node_modules/@xstate/react/es/fsm.cjs.map +1 -0
  196. package/dist/prod/node_modules/@xstate/react/es/fsm.js +94 -0
  197. package/dist/prod/node_modules/@xstate/react/es/fsm.js.map +1 -0
  198. package/dist/prod/node_modules/@xstate/react/es/useConstant.cjs +30 -0
  199. package/dist/prod/node_modules/@xstate/react/es/useConstant.cjs.map +1 -0
  200. package/dist/prod/node_modules/@xstate/react/es/useConstant.js +12 -0
  201. package/dist/prod/node_modules/@xstate/react/es/useConstant.js.map +1 -0
  202. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.cjs +5 -0
  203. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.cjs.map +1 -0
  204. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +6 -0
  205. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +1 -0
  206. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.cjs +107 -0
  207. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.cjs.map +1 -0
  208. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +105 -0
  209. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -0
  210. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.cjs +74 -0
  211. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.cjs.map +1 -0
  212. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +72 -0
  213. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -0
  214. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs +138 -0
  215. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.map +1 -0
  216. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +136 -0
  217. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -0
  218. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.cjs +60 -0
  219. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.cjs.map +1 -0
  220. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +58 -0
  221. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -0
  222. package/dist/prod/node_modules/use-sync-external-store/shim/index.cjs +21 -0
  223. package/dist/prod/node_modules/use-sync-external-store/shim/index.cjs.map +1 -0
  224. package/dist/prod/node_modules/use-sync-external-store/shim/index.js +21 -0
  225. package/dist/prod/node_modules/use-sync-external-store/shim/index.js.map +1 -0
  226. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.cjs +12 -0
  227. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.cjs.map +1 -0
  228. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.js +11 -0
  229. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -0
  230. package/dist/prod/node_modules/worktop/cookie/index.cjs +27 -0
  231. package/dist/prod/node_modules/worktop/cookie/index.cjs.map +1 -0
  232. package/dist/prod/node_modules/worktop/cookie/index.js +27 -0
  233. package/dist/prod/node_modules/worktop/cookie/index.js.map +1 -0
  234. package/dist/prod/useCartAPIStateMachine.cjs +326 -0
  235. package/dist/prod/useCartAPIStateMachine.cjs.map +1 -0
  236. package/dist/prod/useCartAPIStateMachine.js +326 -0
  237. package/dist/prod/useCartAPIStateMachine.js.map +1 -0
  238. package/dist/prod/useCartActions.cjs +123 -0
  239. package/dist/prod/useCartActions.cjs.map +1 -0
  240. package/dist/prod/useCartActions.js +123 -0
  241. package/dist/prod/useCartActions.js.map +1 -0
  242. package/dist/prod/useMoney.cjs +5 -5
  243. package/dist/prod/useMoney.cjs.map +1 -1
  244. package/dist/types/CartProvider.d.ts +61 -0
  245. package/dist/types/MediaFile.d.ts +0 -1
  246. package/dist/types/Money.d.ts +1 -1
  247. package/dist/types/ProductPrice.d.ts +0 -1
  248. package/dist/types/cart-constants.d.ts +8 -0
  249. package/dist/types/cart-hooks.d.ts +24 -0
  250. package/dist/types/cart-queries.d.ts +10 -0
  251. package/dist/types/cart-types.d.ts +289 -0
  252. package/dist/types/flatten-connection.d.ts +3 -1
  253. package/dist/types/index.d.cts +3 -0
  254. package/dist/types/index.d.ts +3 -0
  255. package/dist/types/useCartAPIStateMachine.d.ts +25 -0
  256. package/dist/types/useCartActions.d.ts +64 -0
  257. package/dist/umd/hydrogen-react.dev.js +1949 -102
  258. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  259. package/dist/umd/hydrogen-react.prod.js +339 -2
  260. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  261. package/package.json +23 -12
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const fsm = require("./node_modules/@xstate/react/es/fsm.cjs");
4
+ const index = require("./node_modules/@xstate/fsm/es/index.cjs");
5
+ const flattenConnection = require("./flatten-connection.cjs");
6
+ const useCartActions = require("./useCartActions.cjs");
7
+ const require$$0 = require("react");
8
+ function invokeCart(action, options) {
9
+ return {
10
+ entry: [...(options == null ? void 0 : options.entryActions) || [], "onCartActionEntry", "onCartActionOptimisticUI", action],
11
+ on: {
12
+ RESOLVE: {
13
+ target: (options == null ? void 0 : options.resolveTarget) || "idle",
14
+ actions: [index.assign({
15
+ prevCart: (context) => context == null ? void 0 : context.cart,
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
+ })]
26
+ },
27
+ ERROR: {
28
+ target: (options == null ? void 0 : options.errorTarget) || "error",
29
+ actions: [index.assign({
30
+ prevCart: (context) => context == null ? void 0 : context.cart,
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
+ })]
37
+ },
38
+ CART_COMPLETED: {
39
+ target: "cartCompleted",
40
+ actions: index.assign({
41
+ prevCart: (_) => void 0,
42
+ cart: (_) => void 0,
43
+ lastValidCart: (_) => void 0,
44
+ errors: (_) => void 0
45
+ })
46
+ }
47
+ },
48
+ exit: ["onCartActionComplete", ...(options == null ? void 0 : options.exitActions) || []]
49
+ };
50
+ }
51
+ const INITIALIZING_CART_EVENTS = {
52
+ CART_FETCH: {
53
+ target: "cartFetching"
54
+ },
55
+ CART_CREATE: {
56
+ target: "cartCreating"
57
+ },
58
+ CART_SET: {
59
+ target: "idle",
60
+ actions: [index.assign({
61
+ rawCartResult: (_, event) => event.payload.cart,
62
+ cart: (_, event) => cartFromGraphQL(event.payload.cart)
63
+ })]
64
+ }
65
+ };
66
+ const UPDATING_CART_EVENTS = {
67
+ CARTLINE_ADD: {
68
+ target: "cartLineAdding"
69
+ },
70
+ CARTLINE_UPDATE: {
71
+ target: "cartLineUpdating"
72
+ },
73
+ CARTLINE_REMOVE: {
74
+ target: "cartLineRemoving"
75
+ },
76
+ NOTE_UPDATE: {
77
+ target: "noteUpdating"
78
+ },
79
+ BUYER_IDENTITY_UPDATE: {
80
+ target: "buyerIdentityUpdating"
81
+ },
82
+ CART_ATTRIBUTES_UPDATE: {
83
+ target: "cartAttributesUpdating"
84
+ },
85
+ DISCOUNT_CODES_UPDATE: {
86
+ target: "discountCodesUpdating"
87
+ }
88
+ };
89
+ function createCartMachine(initialCart) {
90
+ return index.createMachine({
91
+ id: "Cart",
92
+ initial: initialCart ? "idle" : "uninitialized",
93
+ context: {
94
+ cart: initialCart && cartFromGraphQL(initialCart)
95
+ },
96
+ states: {
97
+ uninitialized: {
98
+ on: INITIALIZING_CART_EVENTS
99
+ },
100
+ cartCompleted: {
101
+ on: INITIALIZING_CART_EVENTS
102
+ },
103
+ initializationError: {
104
+ on: INITIALIZING_CART_EVENTS
105
+ },
106
+ idle: {
107
+ on: {
108
+ ...INITIALIZING_CART_EVENTS,
109
+ ...UPDATING_CART_EVENTS
110
+ }
111
+ },
112
+ error: {
113
+ on: {
114
+ ...INITIALIZING_CART_EVENTS,
115
+ ...UPDATING_CART_EVENTS
116
+ }
117
+ },
118
+ cartFetching: invokeCart("cartFetchAction", {
119
+ errorTarget: "initializationError"
120
+ }),
121
+ cartCreating: invokeCart("cartCreateAction", {
122
+ errorTarget: "initializationError"
123
+ }),
124
+ cartLineRemoving: invokeCart("cartLineRemoveAction"),
125
+ cartLineUpdating: invokeCart("cartLineUpdateAction"),
126
+ cartLineAdding: invokeCart("cartLineAddAction"),
127
+ noteUpdating: invokeCart("noteUpdateAction"),
128
+ buyerIdentityUpdating: invokeCart("buyerIdentityUpdateAction"),
129
+ cartAttributesUpdating: invokeCart("cartAttributesUpdateAction"),
130
+ discountCodesUpdating: invokeCart("discountCodesUpdateAction")
131
+ }
132
+ });
133
+ }
134
+ function useCartAPIStateMachine({
135
+ numCartLines,
136
+ onCartActionEntry,
137
+ onCartActionOptimisticUI,
138
+ onCartActionComplete,
139
+ data: cart,
140
+ cartFragment,
141
+ countryCode
142
+ }) {
143
+ const {
144
+ cartFetch,
145
+ cartCreate,
146
+ cartLineAdd,
147
+ cartLineUpdate,
148
+ cartLineRemove,
149
+ noteUpdate,
150
+ buyerIdentityUpdate,
151
+ cartAttributesUpdate,
152
+ discountCodesUpdate
153
+ } = useCartActions.useCartActions({
154
+ numCartLines,
155
+ cartFragment,
156
+ countryCode
157
+ });
158
+ const cartMachine = require$$0.useMemo(() => createCartMachine(cart), [cart]);
159
+ const [state, send, service] = fsm.useMachine(cartMachine, {
160
+ actions: {
161
+ cartFetchAction: async (_, event) => {
162
+ var _a;
163
+ if (event.type !== "CART_FETCH")
164
+ return;
165
+ const {
166
+ data,
167
+ errors
168
+ } = await cartFetch((_a = event == null ? void 0 : event.payload) == null ? void 0 : _a.cartId);
169
+ const resultEvent = eventFromFetchResult(event, data == null ? void 0 : data.cart, errors);
170
+ send(resultEvent);
171
+ },
172
+ cartCreateAction: async (_, event) => {
173
+ var _a;
174
+ if (event.type !== "CART_CREATE")
175
+ return;
176
+ const {
177
+ data,
178
+ errors
179
+ } = await cartCreate(event == null ? void 0 : event.payload);
180
+ const resultEvent = eventFromFetchResult(event, (_a = data == null ? void 0 : data.cartCreate) == null ? void 0 : _a.cart, errors);
181
+ send(resultEvent);
182
+ },
183
+ cartLineAddAction: async (context, event) => {
184
+ var _a, _b;
185
+ if (event.type !== "CARTLINE_ADD" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
186
+ return;
187
+ const {
188
+ data,
189
+ errors
190
+ } = await cartLineAdd(context.cart.id, event.payload.lines);
191
+ const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartLinesAdd) == null ? void 0 : _b.cart, errors);
192
+ send(resultEvent);
193
+ },
194
+ cartLineUpdateAction: async (context, event) => {
195
+ var _a, _b;
196
+ if (event.type !== "CARTLINE_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
197
+ return;
198
+ const {
199
+ data,
200
+ errors
201
+ } = await cartLineUpdate(context.cart.id, event.payload.lines);
202
+ const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartLinesUpdate) == null ? void 0 : _b.cart, errors);
203
+ send(resultEvent);
204
+ },
205
+ cartLineRemoveAction: async (context, event) => {
206
+ var _a, _b;
207
+ if (event.type !== "CARTLINE_REMOVE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
208
+ return;
209
+ const {
210
+ data,
211
+ errors
212
+ } = await cartLineRemove(context.cart.id, event.payload.lines);
213
+ const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartLinesRemove) == null ? void 0 : _b.cart, errors);
214
+ send(resultEvent);
215
+ },
216
+ noteUpdateAction: async (context, event) => {
217
+ var _a, _b;
218
+ if (event.type !== "NOTE_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
219
+ return;
220
+ const {
221
+ data,
222
+ errors
223
+ } = await noteUpdate(context.cart.id, event.payload.note);
224
+ const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartNoteUpdate) == null ? void 0 : _b.cart, errors);
225
+ send(resultEvent);
226
+ },
227
+ buyerIdentityUpdateAction: async (context, event) => {
228
+ var _a, _b;
229
+ if (event.type !== "BUYER_IDENTITY_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
230
+ return;
231
+ const {
232
+ data,
233
+ errors
234
+ } = await buyerIdentityUpdate(context.cart.id, event.payload.buyerIdentity);
235
+ const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartBuyerIdentityUpdate) == null ? void 0 : _b.cart, errors);
236
+ send(resultEvent);
237
+ },
238
+ cartAttributesUpdateAction: async (context, event) => {
239
+ var _a, _b;
240
+ if (event.type !== "CART_ATTRIBUTES_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
241
+ return;
242
+ const {
243
+ data,
244
+ errors
245
+ } = await cartAttributesUpdate(context.cart.id, event.payload.attributes);
246
+ const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartAttributesUpdate) == null ? void 0 : _b.cart, errors);
247
+ send(resultEvent);
248
+ },
249
+ discountCodesUpdateAction: async (context, event) => {
250
+ var _a, _b;
251
+ if (event.type !== "DISCOUNT_CODES_UPDATE" || !((_a = context == null ? void 0 : context.cart) == null ? void 0 : _a.id))
252
+ return;
253
+ const {
254
+ data,
255
+ errors
256
+ } = await discountCodesUpdate(context.cart.id, event.payload.discountCodes);
257
+ const resultEvent = eventFromFetchResult(event, (_b = data == null ? void 0 : data.cartDiscountCodesUpdate) == null ? void 0 : _b.cart, errors);
258
+ send(resultEvent);
259
+ },
260
+ ...onCartActionEntry && {
261
+ onCartActionEntry: (context, event) => {
262
+ if (isCartActionEvent(event)) {
263
+ onCartActionEntry(context, event);
264
+ }
265
+ }
266
+ },
267
+ ...onCartActionOptimisticUI && {
268
+ onCartActionOptimisticUI: index.assign((context, event) => {
269
+ return onCartActionOptimisticUI(context, event);
270
+ })
271
+ },
272
+ ...onCartActionComplete && {
273
+ onCartActionComplete: (context, event) => {
274
+ if (isCartFetchResultEvent(event)) {
275
+ onCartActionComplete(context, event);
276
+ }
277
+ }
278
+ }
279
+ }
280
+ });
281
+ return require$$0.useMemo(() => [state, send, service], [state, send, service]);
282
+ }
283
+ function cartFromGraphQL(cart) {
284
+ var _a;
285
+ return {
286
+ ...cart,
287
+ lines: flattenConnection.flattenConnection(cart == null ? void 0 : cart.lines),
288
+ note: (_a = cart.note) != null ? _a : void 0
289
+ };
290
+ }
291
+ function eventFromFetchResult(cartActionEvent, cart, errors) {
292
+ if (errors) {
293
+ return {
294
+ type: "ERROR",
295
+ payload: {
296
+ errors,
297
+ cartActionEvent
298
+ }
299
+ };
300
+ }
301
+ if (!cart) {
302
+ return {
303
+ type: "CART_COMPLETED",
304
+ payload: {
305
+ cartActionEvent
306
+ }
307
+ };
308
+ }
309
+ return {
310
+ type: "RESOLVE",
311
+ payload: {
312
+ cart: cartFromGraphQL(cart),
313
+ rawCartResult: cart,
314
+ cartActionEvent
315
+ }
316
+ };
317
+ }
318
+ function isCartActionEvent(event) {
319
+ return event.type === "CART_CREATE" || event.type === "CARTLINE_ADD" || event.type === "CARTLINE_UPDATE" || event.type === "CARTLINE_REMOVE" || event.type === "NOTE_UPDATE" || event.type === "BUYER_IDENTITY_UPDATE" || event.type === "CART_ATTRIBUTES_UPDATE" || event.type === "DISCOUNT_CODES_UPDATE";
320
+ }
321
+ function isCartFetchResultEvent(event) {
322
+ return event.type === "RESOLVE" || event.type === "ERROR" || event.type === "CART_COMPLETED";
323
+ }
324
+ exports.cartFromGraphQL = cartFromGraphQL;
325
+ exports.useCartAPIStateMachine = useCartAPIStateMachine;
326
+ //# sourceMappingURL=useCartAPIStateMachine.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCartAPIStateMachine.cjs","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 'onCartActionEntry',\n 'onCartActionOptimisticUI',\n action,\n ],\n on: {\n RESOLVE: {\n target: options?.resolveTarget || 'idle',\n actions: [\n assign({\n prevCart: (context) => context?.cart,\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?.cart,\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 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","on","RESOLVE","target","resolveTarget","actions","assign","prevCart","context","cart","_","event","payload","rawCartResult","errors","undefined","ERROR","errorTarget","lastValidCart","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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"}