@shopify/hydrogen-react 0.0.0-next-5c16c78 → 0.0.0-next-dada720

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 (567) hide show
  1. package/README.md +21 -21
  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 +18 -0
  13. package/dist/browser-dev/CartLinePrice.mjs.map +1 -0
  14. package/dist/browser-dev/CartLineProvider.mjs +19 -0
  15. package/dist/browser-dev/CartLineProvider.mjs.map +1 -0
  16. package/dist/browser-dev/CartProvider.mjs +73 -67
  17. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  18. package/dist/browser-dev/ExternalVideo.mjs +13 -11
  19. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  20. package/dist/browser-dev/Image.mjs +41 -30
  21. package/dist/browser-dev/Image.mjs.map +1 -1
  22. package/dist/browser-dev/MediaFile.mjs +29 -21
  23. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  24. package/dist/browser-dev/ModelViewer.mjs +138 -76
  25. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  26. package/dist/browser-dev/Money.mjs +12 -9
  27. package/dist/browser-dev/Money.mjs.map +1 -1
  28. package/dist/browser-dev/ProductPrice.mjs +12 -17
  29. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  30. package/dist/browser-dev/ProductProvider.mjs +102 -73
  31. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  32. package/dist/browser-dev/ShopPayButton.mjs +14 -24
  33. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  34. package/dist/browser-dev/ShopifyProvider.mjs +22 -29
  35. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  36. package/dist/browser-dev/Video.mjs +30 -21
  37. package/dist/browser-dev/Video.mjs.map +1 -1
  38. package/dist/browser-dev/_virtual/index.mjs +11 -2
  39. package/dist/browser-dev/_virtual/index.mjs.map +1 -1
  40. package/dist/browser-dev/_virtual/with-selector.mjs +11 -2
  41. package/dist/browser-dev/_virtual/with-selector.mjs.map +1 -1
  42. package/dist/browser-dev/analytics-constants.mjs +43 -0
  43. package/dist/browser-dev/analytics-constants.mjs.map +1 -0
  44. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  45. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  46. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  47. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  48. package/dist/browser-dev/analytics-utils.mjs +49 -0
  49. package/dist/browser-dev/analytics-utils.mjs.map +1 -0
  50. package/dist/browser-dev/analytics.mjs +159 -0
  51. package/dist/browser-dev/analytics.mjs.map +1 -0
  52. package/dist/browser-dev/cart-hooks.mjs +29 -34
  53. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  54. package/dist/browser-dev/cart-queries.mjs +50 -20
  55. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  56. package/dist/browser-dev/codegen.helpers.mjs +1 -0
  57. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  58. package/dist/browser-dev/cookies-utils.mjs +50 -0
  59. package/dist/browser-dev/cookies-utils.mjs.map +1 -0
  60. package/dist/browser-dev/image-size.mjs +8 -8
  61. package/dist/browser-dev/image-size.mjs.map +1 -1
  62. package/dist/browser-dev/index.mjs +20 -2
  63. package/dist/browser-dev/index.mjs.map +1 -1
  64. package/dist/browser-dev/load-script.mjs.map +1 -1
  65. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  66. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  67. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  68. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  69. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  70. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  71. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  72. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  73. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  74. package/dist/browser-dev/parse-metafield.mjs +4 -5
  75. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  76. package/dist/browser-dev/storefront-client.mjs +19 -20
  77. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  78. package/dist/browser-dev/useCartAPIStateMachine.mjs +111 -80
  79. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  80. package/dist/browser-dev/useCartActions.mjs +150 -109
  81. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  82. package/dist/browser-dev/useMoney.mjs +62 -36
  83. package/dist/browser-dev/useMoney.mjs.map +1 -1
  84. package/dist/browser-dev/useShopifyCookies.mjs +41 -0
  85. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -0
  86. package/dist/browser-prod/AddToCartButton.mjs +43 -40
  87. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  88. package/dist/browser-prod/BaseButton.mjs +13 -15
  89. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  90. package/dist/browser-prod/BuyNowButton.mjs +19 -17
  91. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  92. package/dist/browser-prod/CartCheckoutButton.mjs +12 -15
  93. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  94. package/dist/browser-prod/CartCost.mjs +25 -0
  95. package/dist/browser-prod/CartCost.mjs.map +1 -0
  96. package/dist/browser-prod/CartLinePrice.mjs +18 -0
  97. package/dist/browser-prod/CartLinePrice.mjs.map +1 -0
  98. package/dist/browser-prod/CartLineProvider.mjs +19 -0
  99. package/dist/browser-prod/CartLineProvider.mjs.map +1 -0
  100. package/dist/browser-prod/CartProvider.mjs +73 -67
  101. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  102. package/dist/browser-prod/ExternalVideo.mjs +13 -11
  103. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  104. package/dist/browser-prod/Image.mjs +35 -28
  105. package/dist/browser-prod/Image.mjs.map +1 -1
  106. package/dist/browser-prod/MediaFile.mjs +29 -21
  107. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  108. package/dist/browser-prod/ModelViewer.mjs +135 -75
  109. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  110. package/dist/browser-prod/Money.mjs +12 -9
  111. package/dist/browser-prod/Money.mjs.map +1 -1
  112. package/dist/browser-prod/ProductPrice.mjs +12 -17
  113. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  114. package/dist/browser-prod/ProductProvider.mjs +102 -73
  115. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  116. package/dist/browser-prod/ShopPayButton.mjs +14 -24
  117. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  118. package/dist/browser-prod/ShopifyProvider.mjs +22 -26
  119. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  120. package/dist/browser-prod/Video.mjs +30 -21
  121. package/dist/browser-prod/Video.mjs.map +1 -1
  122. package/dist/browser-prod/_virtual/index.mjs +11 -2
  123. package/dist/browser-prod/_virtual/index.mjs.map +1 -1
  124. package/dist/browser-prod/_virtual/with-selector.mjs +11 -2
  125. package/dist/browser-prod/_virtual/with-selector.mjs.map +1 -1
  126. package/dist/browser-prod/analytics-constants.mjs +43 -0
  127. package/dist/browser-prod/analytics-constants.mjs.map +1 -0
  128. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  129. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  130. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  131. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  132. package/dist/browser-prod/analytics-utils.mjs +49 -0
  133. package/dist/browser-prod/analytics-utils.mjs.map +1 -0
  134. package/dist/browser-prod/analytics.mjs +158 -0
  135. package/dist/browser-prod/analytics.mjs.map +1 -0
  136. package/dist/browser-prod/cart-hooks.mjs +29 -34
  137. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  138. package/dist/browser-prod/cart-queries.mjs +50 -20
  139. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  140. package/dist/browser-prod/codegen.helpers.mjs +1 -0
  141. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  142. package/dist/browser-prod/cookies-utils.mjs +50 -0
  143. package/dist/browser-prod/cookies-utils.mjs.map +1 -0
  144. package/dist/browser-prod/image-size.mjs +8 -8
  145. package/dist/browser-prod/image-size.mjs.map +1 -1
  146. package/dist/browser-prod/index.mjs +20 -2
  147. package/dist/browser-prod/index.mjs.map +1 -1
  148. package/dist/browser-prod/load-script.mjs.map +1 -1
  149. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  150. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  151. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  152. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  153. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  154. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  155. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  156. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  157. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  158. package/dist/browser-prod/parse-metafield.mjs +4 -5
  159. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  160. package/dist/browser-prod/storefront-client.mjs +19 -20
  161. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  162. package/dist/browser-prod/useCartAPIStateMachine.mjs +111 -80
  163. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  164. package/dist/browser-prod/useCartActions.mjs +150 -109
  165. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  166. package/dist/browser-prod/useMoney.mjs +62 -36
  167. package/dist/browser-prod/useMoney.mjs.map +1 -1
  168. package/dist/browser-prod/useShopifyCookies.mjs +41 -0
  169. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -0
  170. package/dist/node-dev/AddToCartButton.js +44 -41
  171. package/dist/node-dev/AddToCartButton.js.map +1 -1
  172. package/dist/node-dev/AddToCartButton.mjs +43 -40
  173. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  174. package/dist/node-dev/BaseButton.js +14 -16
  175. package/dist/node-dev/BaseButton.js.map +1 -1
  176. package/dist/node-dev/BaseButton.mjs +13 -15
  177. package/dist/node-dev/BaseButton.mjs.map +1 -1
  178. package/dist/node-dev/BuyNowButton.js +20 -18
  179. package/dist/node-dev/BuyNowButton.js.map +1 -1
  180. package/dist/node-dev/BuyNowButton.mjs +19 -17
  181. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  182. package/dist/node-dev/CartCheckoutButton.js +13 -16
  183. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  184. package/dist/node-dev/CartCheckoutButton.mjs +12 -15
  185. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  186. package/dist/node-dev/CartCost.js +25 -0
  187. package/dist/node-dev/CartCost.js.map +1 -0
  188. package/dist/node-dev/CartCost.mjs +25 -0
  189. package/dist/node-dev/CartCost.mjs.map +1 -0
  190. package/dist/node-dev/CartLinePrice.js +18 -0
  191. package/dist/node-dev/CartLinePrice.js.map +1 -0
  192. package/dist/node-dev/CartLinePrice.mjs +18 -0
  193. package/dist/node-dev/CartLinePrice.mjs.map +1 -0
  194. package/dist/node-dev/CartLineProvider.js +19 -0
  195. package/dist/node-dev/CartLineProvider.js.map +1 -0
  196. package/dist/node-dev/CartLineProvider.mjs +19 -0
  197. package/dist/node-dev/CartLineProvider.mjs.map +1 -0
  198. package/dist/node-dev/CartProvider.js +74 -68
  199. package/dist/node-dev/CartProvider.js.map +1 -1
  200. package/dist/node-dev/CartProvider.mjs +73 -67
  201. package/dist/node-dev/CartProvider.mjs.map +1 -1
  202. package/dist/node-dev/ExternalVideo.js +14 -12
  203. package/dist/node-dev/ExternalVideo.js.map +1 -1
  204. package/dist/node-dev/ExternalVideo.mjs +13 -11
  205. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  206. package/dist/node-dev/Image.js +42 -31
  207. package/dist/node-dev/Image.js.map +1 -1
  208. package/dist/node-dev/Image.mjs +41 -30
  209. package/dist/node-dev/Image.mjs.map +1 -1
  210. package/dist/node-dev/MediaFile.js +30 -22
  211. package/dist/node-dev/MediaFile.js.map +1 -1
  212. package/dist/node-dev/MediaFile.mjs +29 -21
  213. package/dist/node-dev/MediaFile.mjs.map +1 -1
  214. package/dist/node-dev/ModelViewer.js +139 -77
  215. package/dist/node-dev/ModelViewer.js.map +1 -1
  216. package/dist/node-dev/ModelViewer.mjs +138 -76
  217. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  218. package/dist/node-dev/Money.js +13 -10
  219. package/dist/node-dev/Money.js.map +1 -1
  220. package/dist/node-dev/Money.mjs +12 -9
  221. package/dist/node-dev/Money.mjs.map +1 -1
  222. package/dist/node-dev/ProductPrice.js +13 -18
  223. package/dist/node-dev/ProductPrice.js.map +1 -1
  224. package/dist/node-dev/ProductPrice.mjs +12 -17
  225. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  226. package/dist/node-dev/ProductProvider.js +103 -74
  227. package/dist/node-dev/ProductProvider.js.map +1 -1
  228. package/dist/node-dev/ProductProvider.mjs +102 -73
  229. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  230. package/dist/node-dev/ShopPayButton.js +14 -24
  231. package/dist/node-dev/ShopPayButton.js.map +1 -1
  232. package/dist/node-dev/ShopPayButton.mjs +14 -24
  233. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  234. package/dist/node-dev/ShopifyProvider.js +23 -30
  235. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  236. package/dist/node-dev/ShopifyProvider.mjs +22 -29
  237. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  238. package/dist/node-dev/Video.js +31 -22
  239. package/dist/node-dev/Video.js.map +1 -1
  240. package/dist/node-dev/Video.mjs +30 -21
  241. package/dist/node-dev/Video.mjs.map +1 -1
  242. package/dist/node-dev/_virtual/index.js +11 -3
  243. package/dist/node-dev/_virtual/index.js.map +1 -1
  244. package/dist/node-dev/_virtual/index.mjs +11 -2
  245. package/dist/node-dev/_virtual/index.mjs.map +1 -1
  246. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.js +1 -1
  247. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  248. package/dist/node-dev/_virtual/with-selector.development.js +1 -1
  249. package/dist/node-dev/_virtual/with-selector.js +11 -3
  250. package/dist/node-dev/_virtual/with-selector.js.map +1 -1
  251. package/dist/node-dev/_virtual/with-selector.mjs +11 -2
  252. package/dist/node-dev/_virtual/with-selector.mjs.map +1 -1
  253. package/dist/node-dev/_virtual/with-selector.production.min.js +1 -1
  254. package/dist/node-dev/analytics-constants.js +43 -0
  255. package/dist/node-dev/analytics-constants.js.map +1 -0
  256. package/dist/node-dev/analytics-constants.mjs +43 -0
  257. package/dist/node-dev/analytics-constants.mjs.map +1 -0
  258. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  259. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  260. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  261. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  262. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +58 -0
  263. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  264. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  265. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  266. package/dist/node-dev/analytics-utils.js +49 -0
  267. package/dist/node-dev/analytics-utils.js.map +1 -0
  268. package/dist/node-dev/analytics-utils.mjs +49 -0
  269. package/dist/node-dev/analytics-utils.mjs.map +1 -0
  270. package/dist/node-dev/analytics.js +159 -0
  271. package/dist/node-dev/analytics.js.map +1 -0
  272. package/dist/node-dev/analytics.mjs +159 -0
  273. package/dist/node-dev/analytics.mjs.map +1 -0
  274. package/dist/node-dev/cart-constants.js +1 -1
  275. package/dist/node-dev/cart-hooks.js +29 -34
  276. package/dist/node-dev/cart-hooks.js.map +1 -1
  277. package/dist/node-dev/cart-hooks.mjs +29 -34
  278. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  279. package/dist/node-dev/cart-queries.js +51 -21
  280. package/dist/node-dev/cart-queries.js.map +1 -1
  281. package/dist/node-dev/cart-queries.mjs +50 -20
  282. package/dist/node-dev/cart-queries.mjs.map +1 -1
  283. package/dist/node-dev/codegen.helpers.js +2 -1
  284. package/dist/node-dev/codegen.helpers.js.map +1 -1
  285. package/dist/node-dev/codegen.helpers.mjs +1 -0
  286. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  287. package/dist/node-dev/cookies-utils.js +50 -0
  288. package/dist/node-dev/cookies-utils.js.map +1 -0
  289. package/dist/node-dev/cookies-utils.mjs +50 -0
  290. package/dist/node-dev/cookies-utils.mjs.map +1 -0
  291. package/dist/node-dev/flatten-connection.js +1 -1
  292. package/dist/node-dev/image-size.js +9 -9
  293. package/dist/node-dev/image-size.js.map +1 -1
  294. package/dist/node-dev/image-size.mjs +8 -8
  295. package/dist/node-dev/image-size.mjs.map +1 -1
  296. package/dist/node-dev/index.js +21 -3
  297. package/dist/node-dev/index.js.map +1 -1
  298. package/dist/node-dev/index.mjs +20 -2
  299. package/dist/node-dev/index.mjs.map +1 -1
  300. package/dist/node-dev/load-script.js +1 -1
  301. package/dist/node-dev/load-script.js.map +1 -1
  302. package/dist/node-dev/load-script.mjs.map +1 -1
  303. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +1 -1
  304. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
  305. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  306. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +2 -2
  307. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
  308. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  309. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  310. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js +2 -4
  311. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  312. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  313. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  314. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  315. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  316. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  317. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  318. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  319. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  320. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  321. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  322. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  323. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  324. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +4 -4
  325. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  326. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  327. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  328. package/dist/node-dev/parse-metafield.js +5 -6
  329. package/dist/node-dev/parse-metafield.js.map +1 -1
  330. package/dist/node-dev/parse-metafield.mjs +4 -5
  331. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  332. package/dist/node-dev/storefront-api-constants.js +1 -1
  333. package/dist/node-dev/storefront-client.js +20 -21
  334. package/dist/node-dev/storefront-client.js.map +1 -1
  335. package/dist/node-dev/storefront-client.mjs +19 -20
  336. package/dist/node-dev/storefront-client.mjs.map +1 -1
  337. package/dist/node-dev/useCartAPIStateMachine.js +112 -81
  338. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  339. package/dist/node-dev/useCartAPIStateMachine.mjs +111 -80
  340. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  341. package/dist/node-dev/useCartActions.js +151 -110
  342. package/dist/node-dev/useCartActions.js.map +1 -1
  343. package/dist/node-dev/useCartActions.mjs +150 -109
  344. package/dist/node-dev/useCartActions.mjs.map +1 -1
  345. package/dist/node-dev/useMoney.js +63 -37
  346. package/dist/node-dev/useMoney.js.map +1 -1
  347. package/dist/node-dev/useMoney.mjs +62 -36
  348. package/dist/node-dev/useMoney.mjs.map +1 -1
  349. package/dist/node-dev/useShopifyCookies.js +41 -0
  350. package/dist/node-dev/useShopifyCookies.js.map +1 -0
  351. package/dist/node-dev/useShopifyCookies.mjs +41 -0
  352. package/dist/node-dev/useShopifyCookies.mjs.map +1 -0
  353. package/dist/node-prod/AddToCartButton.js +44 -41
  354. package/dist/node-prod/AddToCartButton.js.map +1 -1
  355. package/dist/node-prod/AddToCartButton.mjs +43 -40
  356. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  357. package/dist/node-prod/BaseButton.js +14 -16
  358. package/dist/node-prod/BaseButton.js.map +1 -1
  359. package/dist/node-prod/BaseButton.mjs +13 -15
  360. package/dist/node-prod/BaseButton.mjs.map +1 -1
  361. package/dist/node-prod/BuyNowButton.js +20 -18
  362. package/dist/node-prod/BuyNowButton.js.map +1 -1
  363. package/dist/node-prod/BuyNowButton.mjs +19 -17
  364. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  365. package/dist/node-prod/CartCheckoutButton.js +13 -16
  366. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  367. package/dist/node-prod/CartCheckoutButton.mjs +12 -15
  368. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  369. package/dist/node-prod/CartCost.js +25 -0
  370. package/dist/node-prod/CartCost.js.map +1 -0
  371. package/dist/node-prod/CartCost.mjs +25 -0
  372. package/dist/node-prod/CartCost.mjs.map +1 -0
  373. package/dist/node-prod/CartLinePrice.js +18 -0
  374. package/dist/node-prod/CartLinePrice.js.map +1 -0
  375. package/dist/node-prod/CartLinePrice.mjs +18 -0
  376. package/dist/node-prod/CartLinePrice.mjs.map +1 -0
  377. package/dist/node-prod/CartLineProvider.js +19 -0
  378. package/dist/node-prod/CartLineProvider.js.map +1 -0
  379. package/dist/node-prod/CartLineProvider.mjs +19 -0
  380. package/dist/node-prod/CartLineProvider.mjs.map +1 -0
  381. package/dist/node-prod/CartProvider.js +74 -68
  382. package/dist/node-prod/CartProvider.js.map +1 -1
  383. package/dist/node-prod/CartProvider.mjs +73 -67
  384. package/dist/node-prod/CartProvider.mjs.map +1 -1
  385. package/dist/node-prod/ExternalVideo.js +14 -12
  386. package/dist/node-prod/ExternalVideo.js.map +1 -1
  387. package/dist/node-prod/ExternalVideo.mjs +13 -11
  388. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  389. package/dist/node-prod/Image.js +36 -29
  390. package/dist/node-prod/Image.js.map +1 -1
  391. package/dist/node-prod/Image.mjs +35 -28
  392. package/dist/node-prod/Image.mjs.map +1 -1
  393. package/dist/node-prod/MediaFile.js +30 -22
  394. package/dist/node-prod/MediaFile.js.map +1 -1
  395. package/dist/node-prod/MediaFile.mjs +29 -21
  396. package/dist/node-prod/MediaFile.mjs.map +1 -1
  397. package/dist/node-prod/ModelViewer.js +136 -76
  398. package/dist/node-prod/ModelViewer.js.map +1 -1
  399. package/dist/node-prod/ModelViewer.mjs +135 -75
  400. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  401. package/dist/node-prod/Money.js +13 -10
  402. package/dist/node-prod/Money.js.map +1 -1
  403. package/dist/node-prod/Money.mjs +12 -9
  404. package/dist/node-prod/Money.mjs.map +1 -1
  405. package/dist/node-prod/ProductPrice.js +13 -18
  406. package/dist/node-prod/ProductPrice.js.map +1 -1
  407. package/dist/node-prod/ProductPrice.mjs +12 -17
  408. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  409. package/dist/node-prod/ProductProvider.js +103 -74
  410. package/dist/node-prod/ProductProvider.js.map +1 -1
  411. package/dist/node-prod/ProductProvider.mjs +102 -73
  412. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  413. package/dist/node-prod/ShopPayButton.js +14 -24
  414. package/dist/node-prod/ShopPayButton.js.map +1 -1
  415. package/dist/node-prod/ShopPayButton.mjs +14 -24
  416. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  417. package/dist/node-prod/ShopifyProvider.js +23 -27
  418. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  419. package/dist/node-prod/ShopifyProvider.mjs +22 -26
  420. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  421. package/dist/node-prod/Video.js +31 -22
  422. package/dist/node-prod/Video.js.map +1 -1
  423. package/dist/node-prod/Video.mjs +30 -21
  424. package/dist/node-prod/Video.mjs.map +1 -1
  425. package/dist/node-prod/_virtual/index.js +11 -3
  426. package/dist/node-prod/_virtual/index.js.map +1 -1
  427. package/dist/node-prod/_virtual/index.mjs +11 -2
  428. package/dist/node-prod/_virtual/index.mjs.map +1 -1
  429. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.js +1 -1
  430. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  431. package/dist/node-prod/_virtual/with-selector.development.js +1 -1
  432. package/dist/node-prod/_virtual/with-selector.js +11 -3
  433. package/dist/node-prod/_virtual/with-selector.js.map +1 -1
  434. package/dist/node-prod/_virtual/with-selector.mjs +11 -2
  435. package/dist/node-prod/_virtual/with-selector.mjs.map +1 -1
  436. package/dist/node-prod/_virtual/with-selector.production.min.js +1 -1
  437. package/dist/node-prod/analytics-constants.js +43 -0
  438. package/dist/node-prod/analytics-constants.js.map +1 -0
  439. package/dist/node-prod/analytics-constants.mjs +43 -0
  440. package/dist/node-prod/analytics-constants.mjs.map +1 -0
  441. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  442. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  443. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  444. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  445. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +58 -0
  446. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  447. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  448. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  449. package/dist/node-prod/analytics-utils.js +49 -0
  450. package/dist/node-prod/analytics-utils.js.map +1 -0
  451. package/dist/node-prod/analytics-utils.mjs +49 -0
  452. package/dist/node-prod/analytics-utils.mjs.map +1 -0
  453. package/dist/node-prod/analytics.js +158 -0
  454. package/dist/node-prod/analytics.js.map +1 -0
  455. package/dist/node-prod/analytics.mjs +158 -0
  456. package/dist/node-prod/analytics.mjs.map +1 -0
  457. package/dist/node-prod/cart-constants.js +1 -1
  458. package/dist/node-prod/cart-hooks.js +29 -34
  459. package/dist/node-prod/cart-hooks.js.map +1 -1
  460. package/dist/node-prod/cart-hooks.mjs +29 -34
  461. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  462. package/dist/node-prod/cart-queries.js +51 -21
  463. package/dist/node-prod/cart-queries.js.map +1 -1
  464. package/dist/node-prod/cart-queries.mjs +50 -20
  465. package/dist/node-prod/cart-queries.mjs.map +1 -1
  466. package/dist/node-prod/codegen.helpers.js +2 -1
  467. package/dist/node-prod/codegen.helpers.js.map +1 -1
  468. package/dist/node-prod/codegen.helpers.mjs +1 -0
  469. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  470. package/dist/node-prod/cookies-utils.js +50 -0
  471. package/dist/node-prod/cookies-utils.js.map +1 -0
  472. package/dist/node-prod/cookies-utils.mjs +50 -0
  473. package/dist/node-prod/cookies-utils.mjs.map +1 -0
  474. package/dist/node-prod/flatten-connection.js +1 -1
  475. package/dist/node-prod/image-size.js +9 -9
  476. package/dist/node-prod/image-size.js.map +1 -1
  477. package/dist/node-prod/image-size.mjs +8 -8
  478. package/dist/node-prod/image-size.mjs.map +1 -1
  479. package/dist/node-prod/index.js +21 -3
  480. package/dist/node-prod/index.js.map +1 -1
  481. package/dist/node-prod/index.mjs +20 -2
  482. package/dist/node-prod/index.mjs.map +1 -1
  483. package/dist/node-prod/load-script.js +1 -1
  484. package/dist/node-prod/load-script.js.map +1 -1
  485. package/dist/node-prod/load-script.mjs.map +1 -1
  486. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +1 -1
  487. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
  488. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  489. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +2 -2
  490. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
  491. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  492. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  493. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js +2 -4
  494. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  495. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  496. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  497. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  498. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  499. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  500. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  501. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  502. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  503. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  504. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  505. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  506. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  507. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +4 -4
  508. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  509. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  510. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  511. package/dist/node-prod/parse-metafield.js +5 -6
  512. package/dist/node-prod/parse-metafield.js.map +1 -1
  513. package/dist/node-prod/parse-metafield.mjs +4 -5
  514. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  515. package/dist/node-prod/storefront-api-constants.js +1 -1
  516. package/dist/node-prod/storefront-client.js +20 -21
  517. package/dist/node-prod/storefront-client.js.map +1 -1
  518. package/dist/node-prod/storefront-client.mjs +19 -20
  519. package/dist/node-prod/storefront-client.mjs.map +1 -1
  520. package/dist/node-prod/useCartAPIStateMachine.js +112 -81
  521. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  522. package/dist/node-prod/useCartAPIStateMachine.mjs +111 -80
  523. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  524. package/dist/node-prod/useCartActions.js +151 -110
  525. package/dist/node-prod/useCartActions.js.map +1 -1
  526. package/dist/node-prod/useCartActions.mjs +150 -109
  527. package/dist/node-prod/useCartActions.mjs.map +1 -1
  528. package/dist/node-prod/useMoney.js +63 -37
  529. package/dist/node-prod/useMoney.js.map +1 -1
  530. package/dist/node-prod/useMoney.mjs +62 -36
  531. package/dist/node-prod/useMoney.mjs.map +1 -1
  532. package/dist/node-prod/useShopifyCookies.js +41 -0
  533. package/dist/node-prod/useShopifyCookies.js.map +1 -0
  534. package/dist/node-prod/useShopifyCookies.mjs +41 -0
  535. package/dist/node-prod/useShopifyCookies.mjs.map +1 -0
  536. package/dist/types/AddToCartButton.d.ts +3 -2
  537. package/dist/types/BuyNowButton.d.ts +7 -3
  538. package/dist/types/CartCheckoutButton.d.ts +6 -5
  539. package/dist/types/CartCost.d.ts +7 -5
  540. package/dist/types/CartLinePrice.d.ts +4 -4
  541. package/dist/types/CartLineProvider.d.ts +8 -6
  542. package/dist/types/CartProvider.d.ts +12 -2
  543. package/dist/types/ExternalVideo.d.ts +1 -2
  544. package/dist/types/Image.d.ts +5 -3
  545. package/dist/types/MediaFile.d.ts +12 -11
  546. package/dist/types/ModelViewer.d.ts +2 -2
  547. package/dist/types/ProductPrice.d.ts +1 -1
  548. package/dist/types/ProductProvider.d.ts +1 -1
  549. package/dist/types/ShopPayButton.d.ts +10 -10
  550. package/dist/types/ShopifyProvider.d.ts +35 -39
  551. package/dist/types/analytics-constants.d.ts +48 -0
  552. package/dist/types/analytics-schema-custom-storefront-customer-tracking.d.ts +3 -0
  553. package/dist/types/analytics-schema-trekkie-storefront-page-view.d.ts +2 -0
  554. package/dist/types/analytics-types.d.ts +108 -0
  555. package/dist/types/analytics-utils.d.ts +36 -0
  556. package/dist/types/analytics.d.ts +9 -0
  557. package/dist/types/cookies-utils.d.ts +4 -0
  558. package/dist/types/index.d.cts +11 -3
  559. package/dist/types/index.d.ts +11 -3
  560. package/dist/types/parse-metafield.d.ts +2 -4
  561. package/dist/types/storefront-client.d.ts +14 -14
  562. package/dist/types/useShopifyCookies.d.ts +14 -0
  563. package/dist/umd/hydrogen-react.dev.js +1625 -979
  564. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  565. package/dist/umd/hydrogen-react.prod.js +18 -16
  566. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  567. package/package.json +24 -19
@@ -1,42 +1,37 @@
1
1
  import { useCallback } from "react";
2
2
  import { useShop } from "./ShopifyProvider.mjs";
3
- import { SHOPIFY_STOREFRONT_ID_HEADER, SHOPIFY_Y, SHOPIFY_S, SHOPIFY_STOREFRONT_Y_HEADER, SHOPIFY_STOREFRONT_S_HEADER } from "./cart-constants.mjs";
4
- import { parse } from "worktop/cookie";
3
+ import { SHOPIFY_STOREFRONT_ID_HEADER, SHOPIFY_STOREFRONT_Y_HEADER, SHOPIFY_Y, SHOPIFY_STOREFRONT_S_HEADER, SHOPIFY_S } from "./cart-constants.mjs";
4
+ import { getShopifyCookies } from "./cookies-utils.mjs";
5
5
  function useCartFetch() {
6
- const {
7
- storefrontId,
8
- getPublicTokenHeaders,
9
- getStorefrontApiUrl
10
- } = useShop();
11
- return useCallback(({
12
- query,
13
- variables
14
- }) => {
15
- const headers = getPublicTokenHeaders({
16
- contentType: "json"
17
- });
18
- if (storefrontId) {
19
- headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
20
- }
21
- const cookieData = parse(document.cookie);
22
- if (cookieData[SHOPIFY_Y] && cookieData[SHOPIFY_S]) {
6
+ const { storefrontId, getPublicTokenHeaders, getStorefrontApiUrl } = useShop();
7
+ return useCallback(
8
+ ({
9
+ query,
10
+ variables
11
+ }) => {
12
+ const headers = getPublicTokenHeaders({ contentType: "json" });
13
+ if (storefrontId) {
14
+ headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
15
+ }
16
+ const cookieData = getShopifyCookies(document.cookie);
23
17
  headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];
24
18
  headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];
25
- }
26
- return fetch(getStorefrontApiUrl(), {
27
- method: "POST",
28
- headers,
29
- body: JSON.stringify({
30
- query: query.toString(),
31
- variables
32
- })
33
- }).then((res) => res.json()).catch((error) => {
34
- return {
35
- data: void 0,
36
- errors: error.toString()
37
- };
38
- });
39
- }, [getPublicTokenHeaders, storefrontId, getStorefrontApiUrl]);
19
+ return fetch(getStorefrontApiUrl(), {
20
+ method: "POST",
21
+ headers,
22
+ body: JSON.stringify({
23
+ query: query.toString(),
24
+ variables
25
+ })
26
+ }).then((res) => res.json()).catch((error) => {
27
+ return {
28
+ data: void 0,
29
+ errors: error.toString()
30
+ };
31
+ });
32
+ },
33
+ [getPublicTokenHeaders, storefrontId, getStorefrontApiUrl]
34
+ );
40
35
  }
41
36
  export {
42
37
  useCartFetch
@@ -1 +1 @@
1
- {"version":3,"file":"cart-hooks.mjs","sources":["../../src/cart-hooks.tsx"],"sourcesContent":["import {useState, useCallback} from 'react';\nimport {useShop} from './ShopifyProvider.js';\nimport {flattenConnection} from './flatten-connection.js';\nimport {CartInput, Cart as CartType} from './storefront-api-types.js';\nimport {CartCreate, defaultCartFragment} from './cart-queries.js';\nimport {Cart} from './cart-types.js';\nimport {\n SHOPIFY_STOREFRONT_ID_HEADER,\n SHOPIFY_STOREFRONT_Y_HEADER,\n SHOPIFY_STOREFRONT_S_HEADER,\n SHOPIFY_Y,\n SHOPIFY_S,\n} from './cart-constants.js';\nimport {parse} from 'worktop/cookie';\nimport type {StorefrontApiResponseOkPartial} from './storefront-api-response.types.js';\n\nexport function useCartFetch() {\n const {storefrontId, getPublicTokenHeaders, getStorefrontApiUrl} = useShop();\n\n return useCallback(\n <ReturnDataGeneric,>({\n query,\n variables,\n }: {\n query: string;\n variables: Record<string, unknown>;\n }): Promise<StorefrontApiResponseOkPartial<ReturnDataGeneric>> => {\n const headers = getPublicTokenHeaders({contentType: 'json'});\n\n if (storefrontId) {\n headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;\n }\n\n // Find Shopify cookies\n const cookieData = parse(document.cookie);\n if (cookieData[SHOPIFY_Y] && cookieData[SHOPIFY_S]) {\n headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];\n headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];\n }\n\n return fetch(getStorefrontApiUrl(), {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query: query.toString(),\n variables,\n }),\n })\n .then((res) => res.json())\n .catch((error) => {\n return {\n data: undefined,\n errors: error.toString(),\n };\n });\n },\n [getPublicTokenHeaders, storefrontId, getStorefrontApiUrl]\n );\n}\n\nexport function useInstantCheckout() {\n const [cart, updateCart] = useState<Cart | undefined>();\n const [checkoutUrl, updateCheckoutUrl] = useState<Cart['checkoutUrl']>();\n const [error, updateError] = useState<string | undefined>();\n\n const fetch = useCartFetch();\n\n const createInstantCheckout = useCallback(\n async (cartInput: CartInput) => {\n const {data, errors} = await fetch<{\n cartCreate: {cart: CartType};\n }>({\n query: CartCreate(defaultCartFragment),\n variables: {\n input: cartInput,\n },\n });\n\n if (errors) {\n updateError(errors.toString());\n updateCart(undefined);\n updateCheckoutUrl(undefined);\n }\n\n if (data?.cartCreate?.cart) {\n const dataCart = data.cartCreate.cart;\n updateCart({\n ...dataCart,\n lines: flattenConnection(dataCart.lines),\n note: dataCart.note ?? undefined,\n });\n updateCheckoutUrl(dataCart.checkoutUrl);\n }\n },\n [fetch]\n );\n\n return {cart, checkoutUrl, error, createInstantCheckout};\n}\n"],"names":["useCartFetch","storefrontId","getPublicTokenHeaders","getStorefrontApiUrl","useShop","useCallback","query","variables","headers","contentType","SHOPIFY_STOREFRONT_ID_HEADER","cookieData","parse","document","cookie","SHOPIFY_Y","SHOPIFY_S","SHOPIFY_STOREFRONT_Y_HEADER","SHOPIFY_STOREFRONT_S_HEADER","fetch","method","body","JSON","stringify","toString","then","res","json","catch","error","data","undefined","errors"],"mappings":";;;;AAgBO,SAASA,eAAe;AACvB,QAAA;AAAA,IAACC;AAAAA,IAAcC;AAAAA,IAAuBC;AAAAA,MAAuBC,QAAS;AAE5E,SAAOC,YACL,CAAqB;AAAA,IACnBC;AAAAA,IACAC;AAAAA,EAAAA,MAIgE;AAChE,UAAMC,UAAUN,sBAAsB;AAAA,MAACO,aAAa;AAAA,IAAA,CAAO;AAE3D,QAAIR,cAAc;AAChBO,cAAQE,gCAAgCT;AAAAA,IAC1C;AAGMU,UAAAA,aAAaC,MAAMC,SAASC,MAAM;AACpCH,QAAAA,WAAWI,cAAcJ,WAAWK,YAAY;AAClDR,cAAQS,+BAA+BN,WAAWI;AAClDP,cAAQU,+BAA+BP,WAAWK;AAAAA,IACpD;AAEOG,WAAAA,MAAMhB,uBAAuB;AAAA,MAClCiB,QAAQ;AAAA,MACRZ;AAAAA,MACAa,MAAMC,KAAKC,UAAU;AAAA,QACnBjB,OAAOA,MAAMkB,SAAU;AAAA,QACvBjB;AAAAA,MAAAA,CACD;AAAA,IAAA,CACF,EACEkB,KAAMC,CAAAA,QAAQA,IAAIC,MAAM,EACxBC,MAAOC,CAAU,UAAA;AACT,aAAA;AAAA,QACLC,MAAMC;AAAAA,QACNC,QAAQH,MAAML,SAAQ;AAAA,MAAA;AAAA,IACxB,CACD;AAAA,EAEL,GAAA,CAACtB,uBAAuBD,cAAcE,mBAAmB,CAAC;AAE9D;"}
1
+ {"version":3,"file":"cart-hooks.mjs","sources":["../../src/cart-hooks.tsx"],"sourcesContent":["import {useState, useCallback} from 'react';\nimport {useShop} from './ShopifyProvider.js';\nimport {flattenConnection} from './flatten-connection.js';\nimport {CartInput, Cart as CartType} from './storefront-api-types.js';\nimport {CartCreate, defaultCartFragment} from './cart-queries.js';\nimport {Cart} from './cart-types.js';\nimport {\n SHOPIFY_STOREFRONT_ID_HEADER,\n SHOPIFY_STOREFRONT_Y_HEADER,\n SHOPIFY_STOREFRONT_S_HEADER,\n SHOPIFY_Y,\n SHOPIFY_S,\n} from './cart-constants.js';\nimport type {StorefrontApiResponseOkPartial} from './storefront-api-response.types.js';\nimport {getShopifyCookies} from './cookies-utils.js';\n\nexport function useCartFetch() {\n const {storefrontId, getPublicTokenHeaders, getStorefrontApiUrl} = useShop();\n\n return useCallback(\n <ReturnDataGeneric,>({\n query,\n variables,\n }: {\n query: string;\n variables: Record<string, unknown>;\n }): Promise<StorefrontApiResponseOkPartial<ReturnDataGeneric>> => {\n const headers = getPublicTokenHeaders({contentType: 'json'});\n\n if (storefrontId) {\n headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;\n }\n\n // Find Shopify cookies\n const cookieData = getShopifyCookies(document.cookie);\n headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];\n headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];\n\n return fetch(getStorefrontApiUrl(), {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query: query.toString(),\n variables,\n }),\n })\n .then((res) => res.json())\n .catch((error) => {\n return {\n data: undefined,\n errors: error.toString(),\n };\n });\n },\n [getPublicTokenHeaders, storefrontId, getStorefrontApiUrl]\n );\n}\n\nexport function useInstantCheckout() {\n const [cart, updateCart] = useState<Cart | undefined>();\n const [checkoutUrl, updateCheckoutUrl] = useState<Cart['checkoutUrl']>();\n const [error, updateError] = useState<string | undefined>();\n\n const fetch = useCartFetch();\n\n const createInstantCheckout = useCallback(\n async (cartInput: CartInput) => {\n const {data, errors} = await fetch<{\n cartCreate: {cart: CartType};\n }>({\n query: CartCreate(defaultCartFragment),\n variables: {\n input: cartInput,\n },\n });\n\n if (errors) {\n updateError(errors.toString());\n updateCart(undefined);\n updateCheckoutUrl(undefined);\n }\n\n if (data?.cartCreate?.cart) {\n const dataCart = data.cartCreate.cart;\n updateCart({\n ...dataCart,\n lines: flattenConnection(dataCart.lines),\n note: dataCart.note ?? undefined,\n });\n updateCheckoutUrl(dataCart.checkoutUrl);\n }\n },\n [fetch]\n );\n\n return {cart, checkoutUrl, error, createInstantCheckout};\n}\n"],"names":[],"mappings":";;;;AAgBO,SAAS,eAAe;AAC7B,QAAM,EAAC,cAAc,uBAAuB,wBAAuB,QAAQ;AAEpE,SAAA;AAAA,IACL,CAAqB;AAAA,MACnB;AAAA,MACA;AAAA,IAAA,MAIgE;AAChE,YAAM,UAAU,sBAAsB,EAAC,aAAa,OAAO,CAAA;AAE3D,UAAI,cAAc;AAChB,gBAAQ,4BAA4B,IAAI;AAAA,MAC1C;AAGM,YAAA,aAAa,kBAAkB,SAAS,MAAM;AAC5C,cAAA,2BAA2B,IAAI,WAAW,SAAS;AACnD,cAAA,2BAA2B,IAAI,WAAW,SAAS;AAEpD,aAAA,MAAM,uBAAuB;AAAA,QAClC,QAAQ;AAAA,QACR;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,OAAO,MAAM,SAAS;AAAA,UACtB;AAAA,QAAA,CACD;AAAA,MAAA,CACF,EACE,KAAK,CAAC,QAAQ,IAAI,MAAM,EACxB,MAAM,CAAC,UAAU;AACT,eAAA;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,MAAM,SAAS;AAAA,QAAA;AAAA,MACzB,CACD;AAAA,IACL;AAAA,IACA,CAAC,uBAAuB,cAAc,mBAAmB;AAAA,EAAA;AAE7D;"}
@@ -1,4 +1,6 @@
1
- const CartLineAdd = (cartFragment) => `
1
+ const CartLineAdd = (cartFragment) => (
2
+ /* GraphQL */
3
+ `
2
4
  mutation CartLineAdd(
3
5
  $cartId: ID!
4
6
  $lines: [CartLineInput!]!
@@ -13,8 +15,11 @@ const CartLineAdd = (cartFragment) => `
13
15
  }
14
16
 
15
17
  ${cartFragment}
16
- `;
17
- const CartCreate = (cartFragment) => `
18
+ `
19
+ );
20
+ const CartCreate = (cartFragment) => (
21
+ /* GraphQL */
22
+ `
18
23
  mutation CartCreate(
19
24
  $input: CartInput!
20
25
  $numCartLines: Int = 250
@@ -28,8 +33,11 @@ const CartCreate = (cartFragment) => `
28
33
  }
29
34
 
30
35
  ${cartFragment}
31
- `;
32
- const CartLineRemove = (cartFragment) => `
36
+ `
37
+ );
38
+ const CartLineRemove = (cartFragment) => (
39
+ /* GraphQL */
40
+ `
33
41
  mutation CartLineRemove(
34
42
  $cartId: ID!
35
43
  $lines: [ID!]!
@@ -44,8 +52,11 @@ const CartLineRemove = (cartFragment) => `
44
52
  }
45
53
 
46
54
  ${cartFragment}
47
- `;
48
- const CartLineUpdate = (cartFragment) => `
55
+ `
56
+ );
57
+ const CartLineUpdate = (cartFragment) => (
58
+ /* GraphQL */
59
+ `
49
60
  mutation CartLineUpdate(
50
61
  $cartId: ID!
51
62
  $lines: [CartLineUpdateInput!]!
@@ -60,8 +71,11 @@ const CartLineUpdate = (cartFragment) => `
60
71
  }
61
72
 
62
73
  ${cartFragment}
63
- `;
64
- const CartNoteUpdate = (cartFragment) => `
74
+ `
75
+ );
76
+ const CartNoteUpdate = (cartFragment) => (
77
+ /* GraphQL */
78
+ `
65
79
  mutation CartNoteUpdate(
66
80
  $cartId: ID!
67
81
  $note: String
@@ -76,8 +90,11 @@ const CartNoteUpdate = (cartFragment) => `
76
90
  }
77
91
 
78
92
  ${cartFragment}
79
- `;
80
- const CartBuyerIdentityUpdate = (cartFragment) => `
93
+ `
94
+ );
95
+ const CartBuyerIdentityUpdate = (cartFragment) => (
96
+ /* GraphQL */
97
+ `
81
98
  mutation CartBuyerIdentityUpdate(
82
99
  $cartId: ID!
83
100
  $buyerIdentity: CartBuyerIdentityInput!
@@ -92,8 +109,11 @@ const CartBuyerIdentityUpdate = (cartFragment) => `
92
109
  }
93
110
 
94
111
  ${cartFragment}
95
- `;
96
- const CartAttributesUpdate = (cartFragment) => `
112
+ `
113
+ );
114
+ const CartAttributesUpdate = (cartFragment) => (
115
+ /* GraphQL */
116
+ `
97
117
  mutation CartAttributesUpdate(
98
118
  $attributes: [AttributeInput!]!
99
119
  $cartId: ID!
@@ -108,8 +128,11 @@ const CartAttributesUpdate = (cartFragment) => `
108
128
  }
109
129
 
110
130
  ${cartFragment}
111
- `;
112
- const CartDiscountCodesUpdate = (cartFragment) => `
131
+ `
132
+ );
133
+ const CartDiscountCodesUpdate = (cartFragment) => (
134
+ /* GraphQL */
135
+ `
113
136
  mutation CartDiscountCodesUpdate(
114
137
  $cartId: ID!
115
138
  $discountCodes: [String!]
@@ -124,8 +147,11 @@ const CartDiscountCodesUpdate = (cartFragment) => `
124
147
  }
125
148
 
126
149
  ${cartFragment}
127
- `;
128
- const CartQuery = (cartFragment) => `
150
+ `
151
+ );
152
+ const CartQuery = (cartFragment) => (
153
+ /* GraphQL */
154
+ `
129
155
  query CartQuery(
130
156
  $id: ID!
131
157
  $numCartLines: Int = 250
@@ -137,8 +163,11 @@ const CartQuery = (cartFragment) => `
137
163
  }
138
164
 
139
165
  ${cartFragment}
140
- `;
141
- const defaultCartFragment = `
166
+ `
167
+ );
168
+ const defaultCartFragment = (
169
+ /* GraphQL */
170
+ `
142
171
  fragment CartFragment on Cart {
143
172
  id
144
173
  checkoutUrl
@@ -238,7 +267,8 @@ const defaultCartFragment = `
238
267
  width
239
268
  height
240
269
  }
241
- `;
270
+ `
271
+ );
242
272
  export {
243
273
  CartAttributesUpdate,
244
274
  CartBuyerIdentityUpdate,
@@ -1 +1 @@
1
- {"version":3,"file":"cart-queries.mjs","sources":["../../src/cart-queries.ts"],"sourcesContent":["export const CartLineAdd = (cartFragment: string) => /* GraphQL */ `\n mutation CartLineAdd(\n $cartId: ID!\n $lines: [CartLineInput!]!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartCreate = (cartFragment: string) => /* GraphQL */ `\n mutation CartCreate(\n $input: CartInput!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartCreate(input: $input) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartLineRemove = (cartFragment: string) => /* GraphQL */ `\n mutation CartLineRemove(\n $cartId: ID!\n $lines: [ID!]!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartLinesRemove(cartId: $cartId, lineIds: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartLineUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartLineUpdate(\n $cartId: ID!\n $lines: [CartLineUpdateInput!]!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartNoteUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartNoteUpdate(\n $cartId: ID!\n $note: String\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartNoteUpdate(cartId: $cartId, note: $note) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartBuyerIdentityUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartBuyerIdentityUpdate(\n $cartId: ID!\n $buyerIdentity: CartBuyerIdentityInput!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: $buyerIdentity) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartAttributesUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartAttributesUpdate(\n $attributes: [AttributeInput!]!\n $cartId: ID!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartDiscountCodesUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartDiscountCodesUpdate(\n $cartId: ID!\n $discountCodes: [String!]\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartQuery = (cartFragment: string) => /* GraphQL */ `\n query CartQuery(\n $id: ID!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cart(id: $id) {\n ...CartFragment\n }\n }\n\n ${cartFragment}\n`;\n\nexport const defaultCartFragment = /* GraphQL */ `\n fragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPrice {\n ...MoneyFragment\n }\n price {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n id\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n }\n\n fragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n }\n fragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n }\n`;\n"],"names":[],"mappings":"AAAa,MAAA,cAAc,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAc/D;AAAA;AAGS,MAAA,aAAa,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAa9D;AAAA;AAGS,MAAA,iBAAiB,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAclE;AAAA;AAGS,MAAA,iBAAiB,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAclE;AAAA;AAGS,MAAA,iBAAiB,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAclE;AAAA;AAGS,MAAA,0BAA0B,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAc3E;AAAA;AAGS,MAAA,uBAAuB,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcxE;AAAA;AAGS,MAAA,0BAA0B,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAc3E;AAAA;AAGS,MAAA,YAAY,CAAC,iBAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAW7D;AAAA;AAGG,MAAM,sBAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"cart-queries.mjs","sources":["../../src/cart-queries.ts"],"sourcesContent":["export const CartLineAdd = (cartFragment: string) => /* GraphQL */ `\n mutation CartLineAdd(\n $cartId: ID!\n $lines: [CartLineInput!]!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartCreate = (cartFragment: string) => /* GraphQL */ `\n mutation CartCreate(\n $input: CartInput!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartCreate(input: $input) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartLineRemove = (cartFragment: string) => /* GraphQL */ `\n mutation CartLineRemove(\n $cartId: ID!\n $lines: [ID!]!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartLinesRemove(cartId: $cartId, lineIds: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartLineUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartLineUpdate(\n $cartId: ID!\n $lines: [CartLineUpdateInput!]!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartNoteUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartNoteUpdate(\n $cartId: ID!\n $note: String\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartNoteUpdate(cartId: $cartId, note: $note) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartBuyerIdentityUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartBuyerIdentityUpdate(\n $cartId: ID!\n $buyerIdentity: CartBuyerIdentityInput!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: $buyerIdentity) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartAttributesUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartAttributesUpdate(\n $attributes: [AttributeInput!]!\n $cartId: ID!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartDiscountCodesUpdate = (cartFragment: string) => /* GraphQL */ `\n mutation CartDiscountCodesUpdate(\n $cartId: ID!\n $discountCodes: [String!]\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {\n cart {\n ...CartFragment\n }\n }\n }\n\n ${cartFragment}\n`;\n\nexport const CartQuery = (cartFragment: string) => /* GraphQL */ `\n query CartQuery(\n $id: ID!\n $numCartLines: Int = 250\n $country: CountryCode = ZZ\n ) @inContext(country: $country) {\n cart(id: $id) {\n ...CartFragment\n }\n }\n\n ${cartFragment}\n`;\n\nexport const defaultCartFragment = /* GraphQL */ `\n fragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPrice {\n ...MoneyFragment\n }\n price {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n id\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n }\n\n fragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n }\n fragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n }\n`;\n"],"names":[],"mappings":"AAAO,MAAM,cAAc,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAc/D;AAAA;AAAA;AAGG,MAAM,aAAa,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAa9D;AAAA;AAAA;AAGG,MAAM,iBAAiB,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAclE;AAAA;AAAA;AAGG,MAAM,iBAAiB,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAclE;AAAA;AAAA;AAGG,MAAM,iBAAiB,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAclE;AAAA;AAAA;AAGG,MAAM,0BAA0B,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAc3E;AAAA;AAAA;AAGG,MAAM,uBAAuB,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcxE;AAAA;AAAA;AAGG,MAAM,0BAA0B,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAc3E;AAAA;AAAA;AAGG,MAAM,YAAY,CAAC;AAAA;AAAA,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAW7D;AAAA;AAAA;AAGS,MAAA;AAAA;AAAA,EAAoC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,4 +1,5 @@
1
1
  const storefrontApiCustomScalars = {
2
+ // Keep in sync with the definitions in the app/nextjs/codegen.ts!
2
3
  DateTime: "string",
3
4
  Decimal: "string",
4
5
  HTML: "string",
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.helpers.mjs","sources":["../../src/codegen.helpers.ts"],"sourcesContent":["/** Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly */\nexport const storefrontApiCustomScalars = {\n // Keep in sync with the definitions in the app/nextjs/codegen.ts!\n DateTime: 'string',\n Decimal: 'string',\n HTML: 'string',\n URL: 'string',\n Color: 'string',\n UnsignedInt64: 'string',\n};\n"],"names":[],"mappings":"AACO,MAAM,6BAA6B;AAAA,EAExC,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,eAAe;AACjB;"}
1
+ {"version":3,"file":"codegen.helpers.mjs","sources":["../../src/codegen.helpers.ts"],"sourcesContent":["/** Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly */\nexport const storefrontApiCustomScalars = {\n // Keep in sync with the definitions in the app/nextjs/codegen.ts!\n DateTime: 'string',\n Decimal: 'string',\n HTML: 'string',\n URL: 'string',\n Color: 'string',\n UnsignedInt64: 'string',\n};\n"],"names":[],"mappings":"AACO,MAAM,6BAA6B;AAAA;AAAA,EAExC,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,eAAe;AACjB;"}
@@ -0,0 +1,50 @@
1
+ import { parse } from "worktop/cookie";
2
+ import { SHOPIFY_Y, SHOPIFY_S } from "./cart-constants.mjs";
3
+ const tokenHash = "xxxx-4xxx-xxxx-xxxxxxxxxxxx";
4
+ function buildUUID() {
5
+ let hash = "";
6
+ try {
7
+ const crypto = window.crypto;
8
+ const randomValuesArray = new Uint16Array(31);
9
+ crypto.getRandomValues(randomValuesArray);
10
+ let i = 0;
11
+ hash = tokenHash.replace(/[x]/g, (c) => {
12
+ const r = randomValuesArray[i] % 16;
13
+ const v = c === "x" ? r : r & 3 | 8;
14
+ i++;
15
+ return v.toString(16);
16
+ }).toUpperCase();
17
+ } catch (err) {
18
+ hash = tokenHash.replace(/[x]/g, (c) => {
19
+ const r = Math.random() * 16 | 0;
20
+ const v = c === "x" ? r : r & 3 | 8;
21
+ return v.toString(16);
22
+ }).toUpperCase();
23
+ }
24
+ return `${hexTime()}-${hash}`;
25
+ }
26
+ function hexTime() {
27
+ let dateNumber = 0;
28
+ let perfNumber = 0;
29
+ dateNumber = new Date().getTime() >>> 0;
30
+ try {
31
+ perfNumber = performance.now() >>> 0;
32
+ } catch (err) {
33
+ perfNumber = 0;
34
+ }
35
+ const output = Math.abs(dateNumber + perfNumber).toString(16).toLowerCase();
36
+ return output.padStart(8 - output.length, "0");
37
+ }
38
+ function getShopifyCookies(cookies) {
39
+ const cookieData = parse(cookies);
40
+ return {
41
+ [SHOPIFY_Y]: cookieData[SHOPIFY_Y] || "",
42
+ [SHOPIFY_S]: cookieData[SHOPIFY_S] || ""
43
+ };
44
+ }
45
+ export {
46
+ buildUUID,
47
+ getShopifyCookies,
48
+ hexTime
49
+ };
50
+ //# sourceMappingURL=cookies-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies-utils.mjs","sources":["../../src/cookies-utils.tsx"],"sourcesContent":["import {parse} from 'worktop/cookie';\nimport {ShopifyCookies} from './analytics-types.js';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\n\nconst tokenHash = 'xxxx-4xxx-xxxx-xxxxxxxxxxxx';\n\nexport function buildUUID(): string {\n let hash = '';\n\n try {\n const crypto: Crypto = window.crypto;\n const randomValuesArray = new Uint16Array(31);\n crypto.getRandomValues(randomValuesArray);\n\n // Generate a strong UUID\n let i = 0;\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = randomValuesArray[i] % 16;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n i++;\n return v.toString(16);\n })\n .toUpperCase();\n } catch (err) {\n // crypto not available, generate weak UUID\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n })\n .toUpperCase();\n }\n\n return `${hexTime()}-${hash}`;\n}\n\nexport function hexTime(): string {\n // 32 bit representations of new Date().getTime() and performance.now()\n let dateNumber = 0;\n let perfNumber = 0;\n\n // Result of zero-fill right shift is always positive\n dateNumber = new Date().getTime() >>> 0;\n\n try {\n perfNumber = performance.now() >>> 0;\n } catch (err) {\n perfNumber = 0;\n }\n\n const output = Math.abs(dateNumber + perfNumber)\n .toString(16)\n .toLowerCase();\n\n return output.padStart(8 - output.length, '0');\n}\n\nexport function getShopifyCookies(cookies: string): ShopifyCookies {\n const cookieData = parse(cookies);\n return {\n [SHOPIFY_Y]: cookieData[SHOPIFY_Y] || '',\n [SHOPIFY_S]: cookieData[SHOPIFY_S] || '',\n };\n}\n"],"names":[],"mappings":";;AAIA,MAAM,YAAY;AAEX,SAAS,YAAoB;AAClC,MAAI,OAAO;AAEP,MAAA;AACF,UAAM,SAAiB,OAAO;AACxB,UAAA,oBAAoB,IAAI,YAAY,EAAE;AAC5C,WAAO,gBAAgB,iBAAiB;AAGxC,QAAI,IAAI;AACR,WAAO,UACJ,QAAQ,QAAQ,CAAC,MAAsB;AAChC,YAAA,IAAI,kBAAkB,CAAC,IAAI;AACjC,YAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AACtC;AACO,aAAA,EAAE,SAAS,EAAE;AAAA,IAAA,CACrB,EACA,YAAY;AAAA,WACR;AAEP,WAAO,UACJ,QAAQ,QAAQ,CAAC,MAAsB;AACtC,YAAM,IAAK,KAAK,OAAO,IAAI,KAAM;AACjC,YAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AAC/B,aAAA,EAAE,SAAS,EAAE;AAAA,IAAA,CACrB,EACA,YAAY;AAAA,EACjB;AAEO,SAAA,GAAG,aAAa;AACzB;AAEO,SAAS,UAAkB;AAEhC,MAAI,aAAa;AACjB,MAAI,aAAa;AAGjB,eAAa,IAAI,KAAA,EAAO,QAAA,MAAc;AAElC,MAAA;AACW,iBAAA,YAAY,IAAU,MAAA;AAAA,WAC5B;AACM,iBAAA;AAAA,EACf;AAEM,QAAA,SAAS,KAAK,IAAI,aAAa,UAAU,EAC5C,SAAS,EAAE,EACX;AAEH,SAAO,OAAO,SAAS,IAAI,OAAO,QAAQ,GAAG;AAC/C;AAEO,SAAS,kBAAkB,SAAiC;AAC3D,QAAA,aAAa,MAAM,OAAO;AACzB,SAAA;AAAA,IACL,CAAC,SAAS,GAAG,WAAW,SAAS,KAAK;AAAA,IACtC,CAAC,SAAS,GAAG,WAAW,SAAS,KAAK;AAAA,EAAA;AAE1C;"}
@@ -15,7 +15,7 @@ function addImageSizeParametersToUrl({
15
15
  scale
16
16
  }) {
17
17
  const newUrl = new URL(src);
18
- const multipliedScale = scale != null ? scale : 1;
18
+ const multipliedScale = scale ?? 1;
19
19
  if (width) {
20
20
  let finalWidth;
21
21
  if (typeof width === "string") {
@@ -46,27 +46,27 @@ function getShopifyImageDimensions({
46
46
  loaderOptions,
47
47
  elementProps
48
48
  }) {
49
- var _a, _b, _c, _d, _e, _f;
50
49
  let aspectRatio = null;
51
50
  if ((sfapiImage == null ? void 0 : sfapiImage.width) && (sfapiImage == null ? void 0 : sfapiImage.height)) {
52
51
  aspectRatio = (sfapiImage == null ? void 0 : sfapiImage.width) / (sfapiImage == null ? void 0 : sfapiImage.height);
53
52
  }
54
53
  if ((loaderOptions == null ? void 0 : loaderOptions.width) || (loaderOptions == null ? void 0 : loaderOptions.height)) {
55
54
  return {
56
- width: (_a = loaderOptions == null ? void 0 : loaderOptions.width) != null ? _a : aspectRatio && typeof loaderOptions.height === "number" ? Math.round(aspectRatio * loaderOptions.height) : null,
57
- height: (_b = loaderOptions == null ? void 0 : loaderOptions.height) != null ? _b : aspectRatio && typeof loaderOptions.width === "number" ? Math.round(aspectRatio * loaderOptions.width) : null
55
+ width: (loaderOptions == null ? void 0 : loaderOptions.width) ?? (aspectRatio && typeof loaderOptions.height === "number" ? Math.round(aspectRatio * loaderOptions.height) : null),
56
+ height: (loaderOptions == null ? void 0 : loaderOptions.height) ?? (aspectRatio && typeof loaderOptions.width === "number" ? Math.round(aspectRatio * loaderOptions.width) : null)
58
57
  };
59
58
  }
60
59
  if ((elementProps == null ? void 0 : elementProps.width) || (elementProps == null ? void 0 : elementProps.height)) {
61
60
  return {
62
- width: (_c = elementProps == null ? void 0 : elementProps.width) != null ? _c : aspectRatio && typeof elementProps.height === "number" ? Math.round(aspectRatio * elementProps.height) : null,
63
- height: (_d = elementProps == null ? void 0 : elementProps.height) != null ? _d : aspectRatio && typeof elementProps.width === "number" ? Math.round(aspectRatio * elementProps.width) : null
61
+ width: (elementProps == null ? void 0 : elementProps.width) ?? (aspectRatio && typeof elementProps.height === "number" ? Math.round(aspectRatio * elementProps.height) : null),
62
+ height: (elementProps == null ? void 0 : elementProps.height) ?? (aspectRatio && typeof elementProps.width === "number" ? Math.round(aspectRatio * elementProps.width) : null)
64
63
  };
65
64
  }
66
65
  if ((sfapiImage == null ? void 0 : sfapiImage.width) || (sfapiImage == null ? void 0 : sfapiImage.height)) {
67
66
  return {
68
- width: (_e = sfapiImage == null ? void 0 : sfapiImage.width) != null ? _e : null,
69
- height: (_f = sfapiImage == null ? void 0 : sfapiImage.height) != null ? _f : null
67
+ // can't calculate the aspect ratio here
68
+ width: (sfapiImage == null ? void 0 : sfapiImage.width) ?? null,
69
+ height: (sfapiImage == null ? void 0 : sfapiImage.height) ?? null
70
70
  };
71
71
  }
72
72
  return { width: null, height: null };
@@ -1 +1 @@
1
- {"version":3,"file":"image-size.mjs","sources":["../../src/image-size.ts"],"sourcesContent":["import type {Image as ImageType} from './storefront-api-types.js';\nimport type {PartialDeep} from 'type-fest';\nimport type {ShopifyLoaderOptions, ShopifyLoaderParams} from './Image.js';\n\n// TODO: Are there other CDNs missing from here?\nconst PRODUCTION_CDN_HOSTNAMES = [\n 'cdn.shopify.com',\n 'cdn.shopifycdn.net',\n 'shopify-assets.shopifycdn.com',\n 'shopify-assets.shopifycdn.net',\n];\nconst LOCAL_CDN_HOSTNAMES = ['spin.dev'];\nconst ALL_CDN_HOSTNAMES = [...PRODUCTION_CDN_HOSTNAMES, ...LOCAL_CDN_HOSTNAMES];\n\n// based on the default width sizes used by the Shopify liquid HTML tag img_tag plus a 2560 width to account for 2k resolutions\n// reference: https://shopify.dev/api/liquid/filters/html-filters#image_tag\nexport const IMG_SRC_SET_SIZES = [352, 832, 1200, 1920, 2560];\n\n/**\n * Adds image size parameters to an image URL hosted by Shopify's CDN\n */\nexport function addImageSizeParametersToUrl({\n src,\n width,\n height,\n crop,\n scale,\n}: ShopifyLoaderParams) {\n const newUrl = new URL(src);\n\n const multipliedScale = scale ?? 1;\n\n if (width) {\n let finalWidth: string;\n\n if (typeof width === 'string') {\n finalWidth = (IMG_SRC_SET_SIZES[0] * multipliedScale).toString();\n } else {\n finalWidth = (Number(width) * multipliedScale).toString();\n }\n\n newUrl.searchParams.append('width', finalWidth);\n }\n\n if (height && typeof height === 'number') {\n newUrl.searchParams.append('height', (height * multipliedScale).toString());\n }\n\n crop && newUrl.searchParams.append('crop', crop);\n\n // for now we intentionally leave off the scale param, and instead multiple width & height by scale instead\n // scale && newUrl.searchParams.append('scale', scale.toString());\n\n return newUrl.toString();\n}\n\nexport function shopifyImageLoader(params: ShopifyLoaderParams) {\n const newSrc = new URL(params.src);\n const isShopifyServedImage = ALL_CDN_HOSTNAMES.some((allowedHostname) =>\n newSrc.hostname.endsWith(allowedHostname)\n );\n\n if (\n !isShopifyServedImage ||\n (!params.width && !params.height && !params.crop && !params.scale)\n ) {\n return params.src;\n }\n\n return addImageSizeParametersToUrl(params);\n}\n\ntype HtmlImageProps = React.ImgHTMLAttributes<HTMLImageElement>;\n\nexport type GetShopifyImageDimensionsProps = {\n data: Pick<\n PartialDeep<ImageType, {recurseIntoArrays: true}>,\n 'altText' | 'url' | 'id' | 'width' | 'height'\n >;\n loaderOptions?: ShopifyLoaderOptions;\n elementProps?: {\n width?: HtmlImageProps['width'];\n height?: HtmlImageProps['height'];\n };\n};\n\ntype GetShopifyImageDimensionsPropsReturn = {\n width: number | string | null;\n height: number | string | null;\n};\n\n/**\n * Width and height are determined using the followiing priority list:\n * 1. `loaderOptions`'s width/height\n * 2. `elementProps`'s width/height\n * 3. `data`'s width/height\n *\n * If only one of `width` or `height` are defined, then the other will attempt to be calculated based on the Image's aspect ratio,\n * provided that both `data.width` and `data.height` are available. If not, then the aspect ratio cannot be determined and the missing\n * value will reamin as `null`\n */\nexport function getShopifyImageDimensions({\n data: sfapiImage,\n loaderOptions,\n elementProps,\n}: GetShopifyImageDimensionsProps): GetShopifyImageDimensionsPropsReturn {\n let aspectRatio: number | null = null;\n\n if (sfapiImage?.width && sfapiImage?.height) {\n aspectRatio = sfapiImage?.width / sfapiImage?.height;\n }\n\n // * 1. `loaderOptions`'s width/height\n if (loaderOptions?.width || loaderOptions?.height) {\n return {\n width:\n loaderOptions?.width ??\n (aspectRatio && typeof loaderOptions.height === 'number'\n ? Math.round(aspectRatio * loaderOptions.height)\n : null),\n height:\n loaderOptions?.height ??\n (aspectRatio && typeof loaderOptions.width === 'number'\n ? Math.round(aspectRatio * loaderOptions.width)\n : null),\n };\n }\n\n // * 2. `elementProps`'s width/height\n if (elementProps?.width || elementProps?.height) {\n return {\n width:\n elementProps?.width ??\n (aspectRatio && typeof elementProps.height === 'number'\n ? Math.round(aspectRatio * elementProps.height)\n : null),\n height:\n elementProps?.height ??\n (aspectRatio && typeof elementProps.width === 'number'\n ? Math.round(aspectRatio * elementProps.width)\n : null),\n };\n }\n\n // * 3. `data`'s width/height\n if (sfapiImage?.width || sfapiImage?.height) {\n return {\n // can't calculate the aspect ratio here\n width: sfapiImage?.width ?? null,\n height: sfapiImage?.height ?? null,\n };\n }\n\n return {width: null, height: null};\n}\n"],"names":[],"mappings":"AAKA,MAAM,2BAA2B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,MAAM,sBAAsB,CAAC,UAAU;AACvC,MAAM,oBAAoB,CAAC,GAAG,0BAA0B,GAAG,mBAAmB;AAIvE,MAAM,oBAAoB,CAAC,KAAK,KAAK,MAAM,MAAM,IAAI;AAKrD,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AAChB,QAAA,SAAS,IAAI,IAAI,GAAG;AAE1B,QAAM,kBAAkB,wBAAS;AAEjC,MAAI,OAAO;AACL,QAAA;AAEA,QAAA,OAAO,UAAU,UAAU;AACf,oBAAA,kBAAkB,KAAK,iBAAiB,SAAS;AAAA,IAAA,OAC1D;AACL,oBAAc,OAAO,KAAK,IAAI,iBAAiB,SAAS;AAAA,IAC1D;AAEO,WAAA,aAAa,OAAO,SAAS,UAAU;AAAA,EAChD;AAEI,MAAA,UAAU,OAAO,WAAW,UAAU;AACxC,WAAO,aAAa,OAAO,WAAW,SAAS,iBAAiB,UAAU;AAAA,EAC5E;AAEA,UAAQ,OAAO,aAAa,OAAO,QAAQ,IAAI;AAK/C,SAAO,OAAO;AAChB;AAEO,SAAS,mBAAmB,QAA6B;AAC9D,QAAM,SAAS,IAAI,IAAI,OAAO,GAAG;AACjC,QAAM,uBAAuB,kBAAkB;AAAA,IAAK,CAAC,oBACnD,OAAO,SAAS,SAAS,eAAe;AAAA,EAAA;AAG1C,MACE,CAAC,wBACA,CAAC,OAAO,SAAS,CAAC,OAAO,UAAU,CAAC,OAAO,QAAQ,CAAC,OAAO,OAC5D;AACA,WAAO,OAAO;AAAA,EAChB;AAEA,SAAO,4BAA4B,MAAM;AAC3C;AA+BO,SAAS,0BAA0B;AAAA,EACxC,MAAM;AAAA,EACN;AAAA,EACA;AACF,GAAyE;AApGzE;AAqGE,MAAI,cAA6B;AAE7B,OAAA,yCAAY,WAAS,yCAAY,SAAQ;AAC7B,mBAAA,yCAAY,UAAQ,yCAAY;AAAA,EAChD;AAGI,OAAA,+CAAe,WAAS,+CAAe,SAAQ;AAC1C,WAAA;AAAA,MACL,QACE,oDAAe,UAAf,YACC,eAAe,OAAO,cAAc,WAAW,WAC5C,KAAK,MAAM,cAAc,cAAc,MAAM,IAC7C;AAAA,MACN,SACE,oDAAe,WAAf,YACC,eAAe,OAAO,cAAc,UAAU,WAC3C,KAAK,MAAM,cAAc,cAAc,KAAK,IAC5C;AAAA,IAAA;AAAA,EAEV;AAGI,OAAA,6CAAc,WAAS,6CAAc,SAAQ;AACxC,WAAA;AAAA,MACL,QACE,kDAAc,UAAd,YACC,eAAe,OAAO,aAAa,WAAW,WAC3C,KAAK,MAAM,cAAc,aAAa,MAAM,IAC5C;AAAA,MACN,SACE,kDAAc,WAAd,YACC,eAAe,OAAO,aAAa,UAAU,WAC1C,KAAK,MAAM,cAAc,aAAa,KAAK,IAC3C;AAAA,IAAA;AAAA,EAEV;AAGI,OAAA,yCAAY,WAAS,yCAAY,SAAQ;AACpC,WAAA;AAAA,MAEL,QAAO,8CAAY,UAAZ,YAAqB;AAAA,MAC5B,SAAQ,8CAAY,WAAZ,YAAsB;AAAA,IAAA;AAAA,EAElC;AAEA,SAAO,EAAC,OAAO,MAAM,QAAQ,KAAI;AACnC;"}
1
+ {"version":3,"file":"image-size.mjs","sources":["../../src/image-size.ts"],"sourcesContent":["import type {Image as ImageType} from './storefront-api-types.js';\nimport type {PartialDeep} from 'type-fest';\nimport type {ShopifyLoaderOptions, ShopifyLoaderParams} from './Image.js';\n\n// TODO: Are there other CDNs missing from here?\nconst PRODUCTION_CDN_HOSTNAMES = [\n 'cdn.shopify.com',\n 'cdn.shopifycdn.net',\n 'shopify-assets.shopifycdn.com',\n 'shopify-assets.shopifycdn.net',\n];\nconst LOCAL_CDN_HOSTNAMES = ['spin.dev'];\nconst ALL_CDN_HOSTNAMES = [...PRODUCTION_CDN_HOSTNAMES, ...LOCAL_CDN_HOSTNAMES];\n\n// based on the default width sizes used by the Shopify liquid HTML tag img_tag plus a 2560 width to account for 2k resolutions\n// reference: https://shopify.dev/api/liquid/filters/html-filters#image_tag\nexport const IMG_SRC_SET_SIZES = [352, 832, 1200, 1920, 2560];\n\n/**\n * Adds image size parameters to an image URL hosted by Shopify's CDN\n */\nexport function addImageSizeParametersToUrl({\n src,\n width,\n height,\n crop,\n scale,\n}: ShopifyLoaderParams) {\n const newUrl = new URL(src);\n\n const multipliedScale = scale ?? 1;\n\n if (width) {\n let finalWidth: string;\n\n if (typeof width === 'string') {\n finalWidth = (IMG_SRC_SET_SIZES[0] * multipliedScale).toString();\n } else {\n finalWidth = (Number(width) * multipliedScale).toString();\n }\n\n newUrl.searchParams.append('width', finalWidth);\n }\n\n if (height && typeof height === 'number') {\n newUrl.searchParams.append('height', (height * multipliedScale).toString());\n }\n\n crop && newUrl.searchParams.append('crop', crop);\n\n // for now we intentionally leave off the scale param, and instead multiple width & height by scale instead\n // scale && newUrl.searchParams.append('scale', scale.toString());\n\n return newUrl.toString();\n}\n\nexport function shopifyImageLoader(params: ShopifyLoaderParams) {\n const newSrc = new URL(params.src);\n const isShopifyServedImage = ALL_CDN_HOSTNAMES.some((allowedHostname) =>\n newSrc.hostname.endsWith(allowedHostname)\n );\n\n if (\n !isShopifyServedImage ||\n (!params.width && !params.height && !params.crop && !params.scale)\n ) {\n return params.src;\n }\n\n return addImageSizeParametersToUrl(params);\n}\n\ntype HtmlImageProps = React.ImgHTMLAttributes<HTMLImageElement>;\n\nexport type GetShopifyImageDimensionsProps = {\n data: Pick<\n PartialDeep<ImageType, {recurseIntoArrays: true}>,\n 'altText' | 'url' | 'id' | 'width' | 'height'\n >;\n loaderOptions?: ShopifyLoaderOptions;\n elementProps?: {\n width?: HtmlImageProps['width'];\n height?: HtmlImageProps['height'];\n };\n};\n\ntype GetShopifyImageDimensionsPropsReturn = {\n width: number | string | null;\n height: number | string | null;\n};\n\n/**\n * Width and height are determined using the followiing priority list:\n * 1. `loaderOptions`'s width/height\n * 2. `elementProps`'s width/height\n * 3. `data`'s width/height\n *\n * If only one of `width` or `height` are defined, then the other will attempt to be calculated based on the Image's aspect ratio,\n * provided that both `data.width` and `data.height` are available. If not, then the aspect ratio cannot be determined and the missing\n * value will reamin as `null`\n */\nexport function getShopifyImageDimensions({\n data: sfapiImage,\n loaderOptions,\n elementProps,\n}: GetShopifyImageDimensionsProps): GetShopifyImageDimensionsPropsReturn {\n let aspectRatio: number | null = null;\n\n if (sfapiImage?.width && sfapiImage?.height) {\n aspectRatio = sfapiImage?.width / sfapiImage?.height;\n }\n\n // * 1. `loaderOptions`'s width/height\n if (loaderOptions?.width || loaderOptions?.height) {\n return {\n width:\n loaderOptions?.width ??\n (aspectRatio && typeof loaderOptions.height === 'number'\n ? Math.round(aspectRatio * loaderOptions.height)\n : null),\n height:\n loaderOptions?.height ??\n (aspectRatio && typeof loaderOptions.width === 'number'\n ? Math.round(aspectRatio * loaderOptions.width)\n : null),\n };\n }\n\n // * 2. `elementProps`'s width/height\n if (elementProps?.width || elementProps?.height) {\n return {\n width:\n elementProps?.width ??\n (aspectRatio && typeof elementProps.height === 'number'\n ? Math.round(aspectRatio * elementProps.height)\n : null),\n height:\n elementProps?.height ??\n (aspectRatio && typeof elementProps.width === 'number'\n ? Math.round(aspectRatio * elementProps.width)\n : null),\n };\n }\n\n // * 3. `data`'s width/height\n if (sfapiImage?.width || sfapiImage?.height) {\n return {\n // can't calculate the aspect ratio here\n width: sfapiImage?.width ?? null,\n height: sfapiImage?.height ?? null,\n };\n }\n\n return {width: null, height: null};\n}\n"],"names":[],"mappings":"AAKA,MAAM,2BAA2B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,MAAM,sBAAsB,CAAC,UAAU;AACvC,MAAM,oBAAoB,CAAC,GAAG,0BAA0B,GAAG,mBAAmB;AAIvE,MAAM,oBAAoB,CAAC,KAAK,KAAK,MAAM,MAAM,IAAI;AAKrD,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AAChB,QAAA,SAAS,IAAI,IAAI,GAAG;AAE1B,QAAM,kBAAkB,SAAS;AAEjC,MAAI,OAAO;AACL,QAAA;AAEA,QAAA,OAAO,UAAU,UAAU;AAC7B,oBAAc,kBAAkB,CAAC,IAAI,iBAAiB,SAAS;AAAA,IAAA,OAC1D;AACL,oBAAc,OAAO,KAAK,IAAI,iBAAiB,SAAS;AAAA,IAC1D;AAEO,WAAA,aAAa,OAAO,SAAS,UAAU;AAAA,EAChD;AAEI,MAAA,UAAU,OAAO,WAAW,UAAU;AACxC,WAAO,aAAa,OAAO,WAAW,SAAS,iBAAiB,UAAU;AAAA,EAC5E;AAEA,UAAQ,OAAO,aAAa,OAAO,QAAQ,IAAI;AAK/C,SAAO,OAAO;AAChB;AAEO,SAAS,mBAAmB,QAA6B;AAC9D,QAAM,SAAS,IAAI,IAAI,OAAO,GAAG;AACjC,QAAM,uBAAuB,kBAAkB;AAAA,IAAK,CAAC,oBACnD,OAAO,SAAS,SAAS,eAAe;AAAA,EAAA;AAG1C,MACE,CAAC,wBACA,CAAC,OAAO,SAAS,CAAC,OAAO,UAAU,CAAC,OAAO,QAAQ,CAAC,OAAO,OAC5D;AACA,WAAO,OAAO;AAAA,EAChB;AAEA,SAAO,4BAA4B,MAAM;AAC3C;AA+BO,SAAS,0BAA0B;AAAA,EACxC,MAAM;AAAA,EACN;AAAA,EACA;AACF,GAAyE;AACvE,MAAI,cAA6B;AAE7B,OAAA,yCAAY,WAAS,yCAAY,SAAQ;AAC7B,mBAAA,yCAAY,UAAQ,yCAAY;AAAA,EAChD;AAGI,OAAA,+CAAe,WAAS,+CAAe,SAAQ;AAC1C,WAAA;AAAA,MACL,QACE,+CAAe,WACd,eAAe,OAAO,cAAc,WAAW,WAC5C,KAAK,MAAM,cAAc,cAAc,MAAM,IAC7C;AAAA,MACN,SACE,+CAAe,YACd,eAAe,OAAO,cAAc,UAAU,WAC3C,KAAK,MAAM,cAAc,cAAc,KAAK,IAC5C;AAAA,IAAA;AAAA,EAEV;AAGI,OAAA,6CAAc,WAAS,6CAAc,SAAQ;AACxC,WAAA;AAAA,MACL,QACE,6CAAc,WACb,eAAe,OAAO,aAAa,WAAW,WAC3C,KAAK,MAAM,cAAc,aAAa,MAAM,IAC5C;AAAA,MACN,SACE,6CAAc,YACb,eAAe,OAAO,aAAa,UAAU,WAC1C,KAAK,MAAM,cAAc,aAAa,KAAK,IAC3C;AAAA,IAAA;AAAA,EAEV;AAGI,OAAA,yCAAY,WAAS,yCAAY,SAAQ;AACpC,WAAA;AAAA;AAAA,MAEL,QAAO,yCAAY,UAAS;AAAA,MAC5B,SAAQ,yCAAY,WAAU;AAAA,IAAA;AAAA,EAElC;AAEA,SAAO,EAAC,OAAO,MAAM,QAAQ,KAAI;AACnC;"}
@@ -1,26 +1,38 @@
1
1
  import { AddToCartButton } from "./AddToCartButton.mjs";
2
+ import { getClientBrowserParameters, sendShopifyAnalytics } from "./analytics.mjs";
3
+ import { AnalyticsEventName, AnalyticsPageType, ShopifySalesChannel } from "./analytics-constants.mjs";
2
4
  import { BuyNowButton } from "./BuyNowButton.mjs";
3
5
  import { CartCheckoutButton } from "./CartCheckoutButton.mjs";
6
+ import { CartCost } from "./CartCost.mjs";
7
+ import { CartLinePrice } from "./CartLinePrice.mjs";
8
+ import { CartLineProvider, useCartLine } from "./CartLineProvider.mjs";
4
9
  import { CartProvider, useCart } from "./CartProvider.mjs";
5
10
  import { storefrontApiCustomScalars } from "./codegen.helpers.mjs";
11
+ import { getShopifyCookies } from "./cookies-utils.mjs";
6
12
  import { ExternalVideo } from "./ExternalVideo.mjs";
7
13
  import { flattenConnection } from "./flatten-connection.mjs";
8
14
  import { Image } from "./Image.mjs";
9
15
  import { MediaFile } from "./MediaFile.mjs";
10
- import { parseMetafield } from "./parse-metafield.mjs";
11
16
  import { ModelViewer } from "./ModelViewer.mjs";
12
17
  import { Money } from "./Money.mjs";
18
+ import { parseMetafield } from "./parse-metafield.mjs";
13
19
  import { ProductPrice } from "./ProductPrice.mjs";
14
20
  import { ProductProvider, useProduct } from "./ProductProvider.mjs";
15
21
  import { ShopifyProvider, useShop } from "./ShopifyProvider.mjs";
16
22
  import { ShopPayButton } from "./ShopPayButton.mjs";
17
23
  import { createStorefrontClient } from "./storefront-client.mjs";
18
24
  import { useMoney } from "./useMoney.mjs";
25
+ import { useShopifyCookies } from "./useShopifyCookies.mjs";
19
26
  import { Video } from "./Video.mjs";
20
27
  export {
21
28
  AddToCartButton,
29
+ AnalyticsEventName,
30
+ AnalyticsPageType,
22
31
  BuyNowButton,
23
32
  CartCheckoutButton,
33
+ CartCost,
34
+ CartLinePrice,
35
+ CartLineProvider,
24
36
  CartProvider,
25
37
  ExternalVideo,
26
38
  Image,
@@ -31,14 +43,20 @@ export {
31
43
  ProductProvider,
32
44
  ShopPayButton,
33
45
  ShopifyProvider,
46
+ ShopifySalesChannel,
34
47
  Video,
35
48
  createStorefrontClient,
36
49
  flattenConnection,
50
+ getClientBrowserParameters,
51
+ getShopifyCookies,
37
52
  parseMetafield,
53
+ sendShopifyAnalytics,
38
54
  storefrontApiCustomScalars,
39
55
  useCart,
56
+ useCartLine,
40
57
  useMoney,
41
58
  useProduct,
42
- useShop
59
+ useShop,
60
+ useShopifyCookies
43
61
  };
44
62
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-script.mjs","sources":["../../src/load-script.tsx"],"sourcesContent":["import {useState, useEffect} from 'react';\n\nconst SCRIPTS_LOADED: Record<string, Promise<boolean>> = {};\n\nexport function loadScript(\n src: string,\n options?: {module?: boolean; in?: 'head' | 'body'}\n): Promise<boolean> {\n const isScriptLoaded: Promise<boolean> = SCRIPTS_LOADED[src];\n\n if (isScriptLoaded) {\n return isScriptLoaded;\n }\n\n const promise = new Promise<boolean>((resolve, reject) => {\n const script = document.createElement('script');\n if (options?.module) {\n script.type = 'module';\n } else {\n script.type = 'text/javascript';\n }\n script.src = src;\n script.onload = () => {\n resolve(true);\n };\n script.onerror = () => {\n reject(false);\n };\n if (options?.in === 'head') {\n document.head.appendChild(script);\n } else {\n document.body.appendChild(script);\n }\n });\n\n SCRIPTS_LOADED[src] = promise;\n\n return promise;\n}\n\ntype LoadScriptParams = Parameters<typeof loadScript>;\n\n/**\n * The `useLoadScript` hook loads an external script tag in the browser. It allows React components to lazy-load large third-party dependencies.\n */\nexport function useLoadScript(\n url: LoadScriptParams[0],\n options?: LoadScriptParams[1]\n): ScriptState {\n const [status, setStatus] = useState<ScriptState>('loading');\n const stringifiedOptions = JSON.stringify(options);\n\n useEffect(() => {\n async function loadScriptWrapper() {\n try {\n setStatus('loading');\n await loadScript(url, options);\n setStatus('done');\n } catch (error) {\n setStatus('error');\n }\n }\n\n loadScriptWrapper();\n }, [url, stringifiedOptions, options]);\n\n return status;\n}\n\ntype ScriptState = 'loading' | 'done' | 'error';\n"],"names":["SCRIPTS_LOADED","loadScript","src","options","isScriptLoaded","promise","Promise","resolve","reject","script","document","createElement","module","type","onload","onerror","in","head","appendChild","body","useLoadScript","url","status","setStatus","useState","stringifiedOptions","JSON","stringify","useEffect","loadScriptWrapper","error"],"mappings":";AAEA,MAAMA,iBAAmD,CAAA;AAEzCC,SAAAA,WACdC,KACAC,SACkB;AAClB,QAAMC,iBAAmCJ,eAAeE;AAExD,MAAIE,gBAAgB;AACXA,WAAAA;AAAAA,EACT;AAEA,QAAMC,UAAU,IAAIC,QAAiB,CAACC,SAASC,WAAW;AAClDC,UAAAA,SAASC,SAASC,cAAc,QAAQ;AAC9C,QAAIR,mCAASS,QAAQ;AACnBH,aAAOI,OAAO;AAAA,IAAA,OACT;AACLJ,aAAOI,OAAO;AAAA,IAChB;AACAJ,WAAOP,MAAMA;AACbO,WAAOK,SAAS,MAAM;AACpBP,cAAQ,IAAI;AAAA,IAAA;AAEdE,WAAOM,UAAU,MAAM;AACrBP,aAAO,KAAK;AAAA,IAAA;AAEVL,SAAAA,mCAASa,QAAO,QAAQ;AACjBC,eAAAA,KAAKC,YAAYT,MAAM;AAAA,IAAA,OAC3B;AACIU,eAAAA,KAAKD,YAAYT,MAAM;AAAA,IAClC;AAAA,EAAA,CACD;AAEDT,iBAAeE,OAAOG;AAEfA,SAAAA;AACT;AAOgBe,SAAAA,cACdC,KACAlB,SACa;AACb,QAAM,CAACmB,QAAQC,SAAS,IAAIC,SAAsB,SAAS;AACrDC,QAAAA,qBAAqBC,KAAKC,UAAUxB,OAAO;AAEjDyB,YAAU,MAAM;AACd,mBAAeC,oBAAoB;AAC7B,UAAA;AACFN,kBAAU,SAAS;AACbtB,cAAAA,WAAWoB,KAAKlB,OAAO;AAC7BoB,kBAAU,MAAM;AAAA,eACTO;AACPP,kBAAU,OAAO;AAAA,MACnB;AAAA,IACF;AAEmB;EAClB,GAAA,CAACF,KAAKI,oBAAoBtB,OAAO,CAAC;AAE9BmB,SAAAA;AACT;"}
1
+ {"version":3,"file":"load-script.mjs","sources":["../../src/load-script.tsx"],"sourcesContent":["import {useState, useEffect} from 'react';\n\nconst SCRIPTS_LOADED: Record<string, Promise<boolean>> = {};\n\nexport function loadScript(\n src: string,\n options?: {module?: boolean; in?: 'head' | 'body'}\n): Promise<boolean> {\n const isScriptLoaded: Promise<boolean> = SCRIPTS_LOADED[src];\n\n if (isScriptLoaded) {\n return isScriptLoaded;\n }\n\n const promise = new Promise<boolean>((resolve, reject) => {\n const script = document.createElement('script');\n if (options?.module) {\n script.type = 'module';\n } else {\n script.type = 'text/javascript';\n }\n script.src = src;\n script.onload = () => {\n resolve(true);\n };\n script.onerror = () => {\n reject(false);\n };\n if (options?.in === 'head') {\n document.head.appendChild(script);\n } else {\n document.body.appendChild(script);\n }\n });\n\n SCRIPTS_LOADED[src] = promise;\n\n return promise;\n}\n\ntype LoadScriptParams = Parameters<typeof loadScript>;\n\n/**\n * The `useLoadScript` hook loads an external script tag in the browser. It allows React components to lazy-load large third-party dependencies.\n */\nexport function useLoadScript(\n url: LoadScriptParams[0],\n options?: LoadScriptParams[1]\n): ScriptState {\n const [status, setStatus] = useState<ScriptState>('loading');\n const stringifiedOptions = JSON.stringify(options);\n\n useEffect(() => {\n async function loadScriptWrapper() {\n try {\n setStatus('loading');\n await loadScript(url, options);\n setStatus('done');\n } catch (error) {\n setStatus('error');\n }\n }\n\n loadScriptWrapper();\n }, [url, stringifiedOptions, options]);\n\n return status;\n}\n\ntype ScriptState = 'loading' | 'done' | 'error';\n"],"names":[],"mappings":";AAEA,MAAM,iBAAmD,CAAA;AAEzC,SAAA,WACd,KACA,SACkB;AACZ,QAAA,iBAAmC,eAAe,GAAG;AAE3D,MAAI,gBAAgB;AACX,WAAA;AAAA,EACT;AAEA,QAAM,UAAU,IAAI,QAAiB,CAAC,SAAS,WAAW;AAClD,UAAA,SAAS,SAAS,cAAc,QAAQ;AAC9C,QAAI,mCAAS,QAAQ;AACnB,aAAO,OAAO;AAAA,IAAA,OACT;AACL,aAAO,OAAO;AAAA,IAChB;AACA,WAAO,MAAM;AACb,WAAO,SAAS,MAAM;AACpB,cAAQ,IAAI;AAAA,IAAA;AAEd,WAAO,UAAU,MAAM;AACrB,aAAO,KAAK;AAAA,IAAA;AAEV,SAAA,mCAAS,QAAO,QAAQ;AACjB,eAAA,KAAK,YAAY,MAAM;AAAA,IAAA,OAC3B;AACI,eAAA,KAAK,YAAY,MAAM;AAAA,IAClC;AAAA,EAAA,CACD;AAED,iBAAe,GAAG,IAAI;AAEf,SAAA;AACT;AAOgB,SAAA,cACd,KACA,SACa;AACb,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAsB,SAAS;AACrD,QAAA,qBAAqB,KAAK,UAAU,OAAO;AAEjD,YAAU,MAAM;AACd,mBAAe,oBAAoB;AAC7B,UAAA;AACF,kBAAU,SAAS;AACb,cAAA,WAAW,KAAK,OAAO;AAC7B,kBAAU,MAAM;AAAA,eACT;AACP,kBAAU,OAAO;AAAA,MACnB;AAAA,IACF;AAEkB;EACjB,GAAA,CAAC,KAAK,oBAAoB,OAAO,CAAC;AAE9B,SAAA;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../../../node_modules/@xstate/fsm/es/index.js"],"sourcesContent":["/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,i,o=e.call(t),a=[];try{for(;(void 0===n||n-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(e=o.return)&&e.call(o)}finally{if(i)throw i.error}}return a}var n;!function(t){t[t.NotStarted=0]=\"NotStarted\",t[t.Running=1]=\"Running\",t[t.Stopped=2]=\"Stopped\"}(n||(n={}));var e={type:\"xstate.init\"};function r(t){return void 0===t?[]:[].concat(t)}function i(t){return{type:\"xstate.assign\",assignment:t}}function o(t,n){return\"string\"==typeof(t=\"string\"==typeof t&&n&&n[t]?n[t]:t)?{type:t}:\"function\"==typeof t?{type:t.name,exec:t}:t}function a(t){return function(n){return t===n}}function u(t){return\"string\"==typeof t?{type:t}:t}function c(t,n){return{value:t,context:n,actions:[],changed:!1,matches:a(t)}}function f(t,n,e){var r=n,i=!1;return[t.filter((function(t){if(\"xstate.assign\"===t.type){i=!0;var n=Object.assign({},r);return\"function\"==typeof t.assignment?n=t.assignment(r,e):Object.keys(t.assignment).forEach((function(i){n[i]=\"function\"==typeof t.assignment[i]?t.assignment[i](r,e):t.assignment[i]})),r=n,!1}return!0})),r,i]}function s(n,i){void 0===i&&(i={});var s=t(f(r(n.states[n.initial].entry).map((function(t){return o(t,i.actions)})),n.context,e),2),l=s[0],v=s[1],y={config:n,_options:i,initialState:{value:n.initial,actions:l,context:v,matches:a(n.initial)},transition:function(e,i){var s,l,v=\"string\"==typeof e?{value:e,context:n.context}:e,p=v.value,g=v.context,d=u(i),x=n.states[p];if(x.on){var m=r(x.on[d.type]);try{for(var h=function(t){var n=\"function\"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}(m),b=h.next();!b.done;b=h.next()){var S=b.value;if(void 0===S)return c(p,g);var w=\"string\"==typeof S?{target:S}:S,j=w.target,E=w.actions,R=void 0===E?[]:E,N=w.cond,O=void 0===N?function(){return!0}:N,_=void 0===j,k=null!=j?j:p,T=n.states[k];if(O(g,d)){var q=t(f((_?r(R):[].concat(x.exit,R,T.entry).filter((function(t){return t}))).map((function(t){return o(t,y._options.actions)})),g,d),3),z=q[0],A=q[1],B=q[2],C=null!=j?j:p;return{value:C,context:A,actions:z,changed:j!==p||z.length>0||B,matches:a(C)}}}}catch(t){s={error:t}}finally{try{b&&!b.done&&(l=h.return)&&l.call(h)}finally{if(s)throw s.error}}}return c(p,g)}};return y}var l=function(t,n){return t.actions.forEach((function(e){var r=e.exec;return r&&r(t.context,n)}))};function v(t){var r=t.initialState,i=n.NotStarted,o=new Set,c={_machine:t,send:function(e){i===n.Running&&(r=t.transition(r,e),l(r,u(e)),o.forEach((function(t){return t(r)})))},subscribe:function(t){return o.add(t),t(r),{unsubscribe:function(){return o.delete(t)}}},start:function(o){if(o){var u=\"object\"==typeof o?o:{context:t.config.context,value:o};r={value:u.value,actions:[],context:u.context,matches:a(u.value)}}else r=t.initialState;return i=n.Running,l(r,e),c},stop:function(){return i=n.Stopped,o.clear(),c},get state(){return r},get status(){return i}};return c}export{n as InterpreterStatus,i as assign,s as createMachine,v as interpret};\n"],"names":["t","n","e","r","i","o","a","s","l","v","c","u"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../../../node_modules/@xstate/fsm/es/index.js"],"sourcesContent":["/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,i,o=e.call(t),a=[];try{for(;(void 0===n||n-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(e=o.return)&&e.call(o)}finally{if(i)throw i.error}}return a}var n;!function(t){t[t.NotStarted=0]=\"NotStarted\",t[t.Running=1]=\"Running\",t[t.Stopped=2]=\"Stopped\"}(n||(n={}));var e={type:\"xstate.init\"};function r(t){return void 0===t?[]:[].concat(t)}function i(t){return{type:\"xstate.assign\",assignment:t}}function o(t,n){return\"string\"==typeof(t=\"string\"==typeof t&&n&&n[t]?n[t]:t)?{type:t}:\"function\"==typeof t?{type:t.name,exec:t}:t}function a(t){return function(n){return t===n}}function u(t){return\"string\"==typeof t?{type:t}:t}function c(t,n){return{value:t,context:n,actions:[],changed:!1,matches:a(t)}}function f(t,n,e){var r=n,i=!1;return[t.filter((function(t){if(\"xstate.assign\"===t.type){i=!0;var n=Object.assign({},r);return\"function\"==typeof t.assignment?n=t.assignment(r,e):Object.keys(t.assignment).forEach((function(i){n[i]=\"function\"==typeof t.assignment[i]?t.assignment[i](r,e):t.assignment[i]})),r=n,!1}return!0})),r,i]}function s(n,i){void 0===i&&(i={});var s=t(f(r(n.states[n.initial].entry).map((function(t){return o(t,i.actions)})),n.context,e),2),l=s[0],v=s[1],y={config:n,_options:i,initialState:{value:n.initial,actions:l,context:v,matches:a(n.initial)},transition:function(e,i){var s,l,v=\"string\"==typeof e?{value:e,context:n.context}:e,p=v.value,g=v.context,d=u(i),x=n.states[p];if(x.on){var m=r(x.on[d.type]);try{for(var h=function(t){var n=\"function\"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}(m),b=h.next();!b.done;b=h.next()){var S=b.value;if(void 0===S)return c(p,g);var w=\"string\"==typeof S?{target:S}:S,j=w.target,E=w.actions,R=void 0===E?[]:E,N=w.cond,O=void 0===N?function(){return!0}:N,_=void 0===j,k=null!=j?j:p,T=n.states[k];if(O(g,d)){var q=t(f((_?r(R):[].concat(x.exit,R,T.entry).filter((function(t){return t}))).map((function(t){return o(t,y._options.actions)})),g,d),3),z=q[0],A=q[1],B=q[2],C=null!=j?j:p;return{value:C,context:A,actions:z,changed:j!==p||z.length>0||B,matches:a(C)}}}}catch(t){s={error:t}}finally{try{b&&!b.done&&(l=h.return)&&l.call(h)}finally{if(s)throw s.error}}}return c(p,g)}};return y}var l=function(t,n){return t.actions.forEach((function(e){var r=e.exec;return r&&r(t.context,n)}))};function v(t){var r=t.initialState,i=n.NotStarted,o=new Set,c={_machine:t,send:function(e){i===n.Running&&(r=t.transition(r,e),l(r,u(e)),o.forEach((function(t){return t(r)})))},subscribe:function(t){return o.add(t),t(r),{unsubscribe:function(){return o.delete(t)}}},start:function(o){if(o){var u=\"object\"==typeof o?o:{context:t.config.context,value:o};r={value:u.value,actions:[],context:u.context,matches:a(u.value)}}else r=t.initialState;return i=n.Running,l(r,e),c},stop:function(){return i=n.Stopped,o.clear(),c},get state(){return r},get status(){return i}};return c}export{n as InterpreterStatus,i as assign,s as createMachine,v as interpret};\n"],"names":["t","n","e","r","i","o","a","s","l","v","c","u"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,SAAS,EAAEA,IAAEC,IAAE;AAAC,MAAIC,KAAE,cAAY,OAAO,UAAQF,GAAE,OAAO,QAAQ;AAAE,MAAG,CAACE;AAAE,WAAOF;AAAE,MAAIG,IAAEC,IAAEC,KAAEH,GAAE,KAAKF,EAAC,GAAEM,KAAE,CAAE;AAAC,MAAG;AAAC,YAAM,WAASL,MAAGA,OAAK,MAAI,EAAEE,KAAEE,GAAE,KAAI,GAAI;AAAM,MAAAC,GAAE,KAAKH,GAAE,KAAK;AAAA,EAAC,SAAOH,IAAN;AAAS,IAAAI,KAAE,EAAC,OAAMJ,GAAC;AAAA,EAAC,UAAC;AAAQ,QAAG;AAAC,MAAAG,MAAG,CAACA,GAAE,SAAOD,KAAEG,GAAE,WAASH,GAAE,KAAKG,EAAC;AAAA,IAAC,UAAC;AAAQ,UAAGD;AAAE,cAAMA,GAAE;AAAA,IAAK;AAAA,EAAC;AAAC,SAAOE;AAAC;AAAI,IAAC;AAAE,CAAC,SAASN,IAAE;AAAC,EAAAA,GAAEA,GAAE,aAAW,CAAC,IAAE,cAAaA,GAAEA,GAAE,UAAQ,CAAC,IAAE,WAAUA,GAAEA,GAAE,UAAQ,CAAC,IAAE;AAAS,EAAE,MAAI,IAAE,CAAE,EAAC;AAAE,IAAI,IAAE,EAAC,MAAK,cAAa;AAAE,SAAS,EAAEA,IAAE;AAAC,SAAO,WAASA,KAAE,CAAE,IAAC,GAAG,OAAOA,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAM,EAAC,MAAK,iBAAgB,YAAWA,GAAC;AAAC;AAAC,SAAS,EAAEA,IAAEC,IAAE;AAAC,SAAM,YAAU,QAAOD,KAAE,YAAU,OAAOA,MAAGC,MAAGA,GAAED,EAAC,IAAEC,GAAED,EAAC,IAAEA,MAAG,EAAC,MAAKA,GAAC,IAAE,cAAY,OAAOA,KAAE,EAAC,MAAKA,GAAE,MAAK,MAAKA,GAAC,IAAEA;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,SAASC,IAAE;AAAC,WAAOD,OAAIC;AAAA,EAAC;AAAC;AAAC,SAAS,EAAED,IAAE;AAAC,SAAM,YAAU,OAAOA,KAAE,EAAC,MAAKA,GAAC,IAAEA;AAAC;AAAC,SAAS,EAAEA,IAAEC,IAAE;AAAC,SAAM,EAAC,OAAMD,IAAE,SAAQC,IAAE,SAAQ,CAAA,GAAG,SAAQ,OAAG,SAAQ,EAAED,EAAC,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAEC,IAAEC,IAAE;AAAC,MAAIC,KAAEF,IAAEG,KAAE;AAAG,SAAM,CAACJ,GAAE,OAAQ,SAASA,IAAE;AAAC,QAAG,oBAAkBA,GAAE,MAAK;AAAC,MAAAI,KAAE;AAAG,UAAIH,KAAE,OAAO,OAAO,CAAA,GAAGE,EAAC;AAAE,aAAM,cAAY,OAAOH,GAAE,aAAWC,KAAED,GAAE,WAAWG,IAAED,EAAC,IAAE,OAAO,KAAKF,GAAE,UAAU,EAAE,QAAS,SAASI,IAAE;AAAC,QAAAH,GAAEG,EAAC,IAAE,cAAY,OAAOJ,GAAE,WAAWI,EAAC,IAAEJ,GAAE,WAAWI,EAAC,EAAED,IAAED,EAAC,IAAEF,GAAE,WAAWI,EAAC;AAAA,MAAC,CAAC,GAAGD,KAAEF,IAAE;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE,CAAG,GAACE,IAAEC,EAAC;AAAC;AAAC,SAAS,EAAEH,IAAEG,IAAE;AAAC,aAASA,OAAIA,KAAE,CAAE;AAAE,MAAIG,KAAE,EAAE,EAAE,EAAEN,GAAE,OAAOA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAK,SAASD,IAAE;AAAC,WAAO,EAAEA,IAAEI,GAAE,OAAO;AAAA,EAAC,CAAG,GAACH,GAAE,SAAQ,CAAC,GAAE,CAAC,GAAEO,KAAED,GAAE,CAAC,GAAEE,KAAEF,GAAE,CAAC,GAAE,IAAE,EAAC,QAAON,IAAE,UAASG,IAAE,cAAa,EAAC,OAAMH,GAAE,SAAQ,SAAQO,IAAE,SAAQC,IAAE,SAAQ,EAAER,GAAE,OAAO,EAAC,GAAE,YAAW,SAASC,IAAEE,IAAE;AAAC,QAAIG,IAAEC,IAAEC,KAAE,YAAU,OAAOP,KAAE,EAAC,OAAMA,IAAE,SAAQD,GAAE,QAAO,IAAEC,IAAE,IAAEO,GAAE,OAAM,IAAEA,GAAE,SAAQ,IAAE,EAAEL,EAAC,GAAE,IAAEH,GAAE,OAAO,CAAC;AAAE,QAAG,EAAE,IAAG;AAAC,UAAI,IAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC;AAAE,UAAG;AAAC,iBAAQ,IAAE,SAASD,IAAE;AAAC,cAAIC,KAAE,cAAY,OAAO,UAAQ,OAAO,UAASC,KAAED,MAAGD,GAAEC,EAAC,GAAEE,KAAE;AAAE,cAAGD;AAAE,mBAAOA,GAAE,KAAKF,EAAC;AAAE,cAAGA,MAAG,YAAU,OAAOA,GAAE;AAAO,mBAAM,EAAC,MAAK,WAAU;AAAC,qBAAOA,MAAGG,MAAGH,GAAE,WAASA,KAAE,SAAQ,EAAC,OAAMA,MAAGA,GAAEG,IAAG,GAAE,MAAK,CAACH,GAAC;AAAA,YAAC,EAAC;AAAE,gBAAM,IAAI,UAAUC,KAAE,4BAA0B,iCAAiC;AAAA,QAAC,EAAE,CAAC,GAAE,IAAE,EAAE,QAAO,CAAC,EAAE,MAAK,IAAE,EAAE,KAAM,GAAC;AAAC,cAAI,IAAE,EAAE;AAAM,cAAG,WAAS;AAAE,mBAAO,EAAE,GAAE,CAAC;AAAE,cAAI,IAAE,YAAU,OAAO,IAAE,EAAC,QAAO,EAAC,IAAE,GAAE,IAAE,EAAE,QAAO,IAAE,EAAE,SAAQ,IAAE,WAAS,IAAE,KAAG,GAAE,IAAE,EAAE,MAAK,IAAE,WAAS,IAAE,WAAU;AAAC,mBAAM;AAAA,UAAE,IAAE,GAAE,IAAE,WAAS,GAAE,IAAE,QAAM,IAAE,IAAE,GAAE,IAAEA,GAAE,OAAO,CAAC;AAAE,cAAG,EAAE,GAAE,CAAC,GAAE;AAAC,gBAAI,IAAE,EAAE,GAAG,IAAE,EAAE,CAAC,IAAE,CAAE,EAAC,OAAO,EAAE,MAAK,GAAE,EAAE,KAAK,EAAE,OAAQ,SAASD,IAAE;AAAC,qBAAOA;AAAA,YAAC,CAAC,GAAI,IAAK,SAASA,IAAE;AAAC,qBAAO,EAAEA,IAAE,EAAE,SAAS,OAAO;AAAA,YAAC,IAAI,GAAE,CAAC,GAAE,CAAC,GAAE,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,CAAC,GAAE,IAAE,EAAE,CAAC,GAAE,IAAE,QAAM,IAAE,IAAE;AAAE,mBAAM,EAAC,OAAM,GAAE,SAAQ,GAAE,SAAQ,GAAE,SAAQ,MAAI,KAAG,EAAE,SAAO,KAAG,GAAE,SAAQ,EAAE,CAAC,EAAC;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,SAAOA,IAAN;AAAS,QAAAO,KAAE,EAAC,OAAMP,GAAC;AAAA,MAAC,UAAC;AAAQ,YAAG;AAAC,eAAG,CAAC,EAAE,SAAOQ,KAAE,EAAE,WAASA,GAAE,KAAK,CAAC;AAAA,QAAC,UAAC;AAAQ,cAAGD;AAAE,kBAAMA,GAAE;AAAA,QAAK;AAAA,MAAC;AAAA,IAAC;AAAC,WAAO,EAAE,GAAE,CAAC;AAAA,EAAC,EAAC;AAAE,SAAO;AAAC;AAAC,IAAI,IAAE,SAASP,IAAEC,IAAE;AAAC,SAAOD,GAAE,QAAQ,QAAS,SAASE,IAAE;AAAC,QAAIC,KAAED,GAAE;AAAK,WAAOC,MAAGA,GAAEH,GAAE,SAAQC,EAAC;AAAA,EAAC;AAAG;AAAE,SAAS,EAAED,IAAE;AAAC,MAAIG,KAAEH,GAAE,cAAaI,KAAE,EAAE,YAAWC,KAAE,oBAAI,OAAIK,KAAE,EAAC,UAASV,IAAE,MAAK,SAASE,IAAE;AAAC,IAAAE,OAAI,EAAE,YAAUD,KAAEH,GAAE,WAAWG,IAAED,EAAC,GAAE,EAAEC,IAAE,EAAED,EAAC,CAAC,GAAEG,GAAE,QAAS,SAASL,IAAE;AAAC,aAAOA,GAAEG,EAAC;AAAA,IAAC,CAAC;AAAA,EAAG,GAAE,WAAU,SAASH,IAAE;AAAC,WAAOK,GAAE,IAAIL,EAAC,GAAEA,GAAEG,EAAC,GAAE,EAAC,aAAY,WAAU;AAAC,aAAOE,GAAE,OAAOL,EAAC;AAAA,IAAC,EAAC;AAAA,EAAC,GAAE,OAAM,SAASK,IAAE;AAAC,QAAGA,IAAE;AAAC,UAAIM,KAAE,YAAU,OAAON,KAAEA,KAAE,EAAC,SAAQL,GAAE,OAAO,SAAQ,OAAMK,GAAC;AAAE,MAAAF,KAAE,EAAC,OAAMQ,GAAE,OAAM,SAAQ,CAAE,GAAC,SAAQA,GAAE,SAAQ,SAAQ,EAAEA,GAAE,KAAK,EAAC;AAAA,IAAC;AAAM,MAAAR,KAAEH,GAAE;AAAa,WAAOI,KAAE,EAAE,SAAQ,EAAED,IAAE,CAAC,GAAEO;AAAA,EAAC,GAAE,MAAK,WAAU;AAAC,WAAON,KAAE,EAAE,SAAQC,GAAE,MAAO,GAACK;AAAA,EAAC,GAAE,IAAI,QAAO;AAAC,WAAOP;AAAA,EAAC,GAAE,IAAI,SAAQ;AAAC,WAAOC;AAAA,EAAC,EAAC;AAAE,SAAOM;AAAC;"}
@@ -3,7 +3,7 @@ import { useRef, useState, useEffect, useCallback } from "react";
3
3
  import index from "../../../use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs";
4
4
  import "../../../use-sync-external-store/shim/with-selector.mjs";
5
5
  import useConstant from "./useConstant.mjs";
6
- import { w as withSelector } from "../../../../_virtual/with-selector.mjs";
6
+ import { exports as withSelectorExports } from "../../../../_virtual/with-selector.mjs";
7
7
  var __read = globalThis && globalThis.__read || function(o, n2) {
8
8
  var m = typeof Symbol === "function" && o[Symbol.iterator];
9
9
  if (!m)
@@ -84,7 +84,7 @@ function useService(service) {
84
84
  var unsubscribe = service.subscribe(handleStoreChange).unsubscribe;
85
85
  return unsubscribe;
86
86
  }, [service]);
87
- var storeSnapshot = withSelector.exports.useSyncExternalStoreWithSelector(subscribe, getSnapshot, getSnapshot, identity, isEqual);
87
+ var storeSnapshot = withSelectorExports.useSyncExternalStoreWithSelector(subscribe, getSnapshot, getSnapshot, identity, isEqual);
88
88
  return [storeSnapshot, service.send, service];
89
89
  }
90
90
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"fsm.mjs","sources":["../../../../../../../../node_modules/@xstate/react/es/fsm.js"],"sourcesContent":["var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { createMachine, interpret, InterpreterStatus } from '@xstate/fsm';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport useConstant from './useConstant';\nfunction identity(a) {\n return a;\n}\nvar getServiceState = function (service) {\n var currentValue;\n service\n .subscribe(function (state) {\n currentValue = state;\n })\n .unsubscribe();\n return currentValue;\n};\nexport function useMachine(stateMachine, options) {\n var persistedStateRef = useRef();\n if (process.env.NODE_ENV !== 'production') {\n var _a = __read(useState(stateMachine), 1), initialMachine = _a[0];\n if (stateMachine !== initialMachine) {\n console.warn('Machine given to `useMachine` has changed between renders. This is not supported and might lead to unexpected results.\\n' +\n 'Please make sure that you pass the same Machine as argument each time.');\n }\n }\n var _b = __read(useConstant(function () {\n var queue = [];\n var service = interpret(createMachine(stateMachine.config, options ? options : stateMachine._options));\n var send = service.send;\n service.send = function (event) {\n if (service.status === InterpreterStatus.NotStarted) {\n queue.push(event);\n return;\n }\n send(event);\n persistedStateRef.current = service.state;\n };\n return [service, queue];\n }), 2), service = _b[0], queue = _b[1];\n useIsomorphicLayoutEffect(function () {\n if (options) {\n service._machine._options = options;\n }\n });\n var useServiceResult = useService(service);\n useEffect(function () {\n service.start(persistedStateRef.current);\n queue.forEach(service.send);\n persistedStateRef.current = service.state;\n return function () {\n service.stop();\n };\n }, []);\n return useServiceResult;\n}\nvar isEqual = function (_prevState, nextState) { return nextState.changed === false; };\nexport function useService(service) {\n var getSnapshot = useCallback(function () { return getServiceState(service); }, [service]);\n var subscribe = useCallback(function (handleStoreChange) {\n var unsubscribe = service.subscribe(handleStoreChange).unsubscribe;\n return unsubscribe;\n }, [service]);\n var storeSnapshot = useSyncExternalStoreWithSelector(subscribe, getSnapshot, getSnapshot, identity, isEqual);\n return [storeSnapshot, service.send, service];\n}\n"],"names":["this","n","queue","service","interpret","createMachine","InterpreterStatus","useIsomorphicLayoutEffect","useSyncExternalStoreWithSelector"],"mappings":";;;;;;AAAA,IAAI,SAAUA,cAAQA,WAAK,UAAW,SAAU,GAAGC,IAAG;AAClD,MAAI,IAAI,OAAO,WAAW,cAAc,EAAE,OAAO;AACjD,MAAI,CAAC;AAAG,WAAO;AACf,MAAI,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAE,GAAE;AAC/B,MAAI;AACA,YAAQA,OAAM,UAAUA,OAAM,MAAM,EAAE,IAAI,EAAE,KAAM,GAAE;AAAM,SAAG,KAAK,EAAE,KAAK;AAAA,EAC5E,SACM,OAAP;AAAgB,QAAI,EAAE,MAAc;AAAA,EAAG,UAC/B;AACJ,QAAI;AACA,UAAI,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE;AAAY,UAAE,KAAK,CAAC;AAAA,IAClD,UACO;AAAE,UAAI;AAAG,cAAM,EAAE;AAAA,IAAQ;AAAA,EACpC;AACD,SAAO;AACX;AAMA,SAAS,SAAS,GAAG;AACjB,SAAO;AACX;AACA,IAAI,kBAAkB,SAAU,SAAS;AACrC,MAAI;AACJ,UACK,UAAU,SAAU,OAAO;AAC5B,mBAAe;AAAA,EACvB,CAAK,EACI;AACL,SAAO;AACX;AACO,SAAS,WAAW,cAAc,SAAS;AAC9C,MAAI,oBAAoB;AACxB,MAAI,QAAQ,IAAI,aAAa,cAAc;AACvC,QAAI,KAAK,OAAO,SAAS,YAAY,GAAG,CAAC,GAAG,iBAAiB,GAAG;AAChE,QAAI,iBAAiB,gBAAgB;AACjC,cAAQ,KAAK,gMAC+D;AAAA,IAC/E;AAAA,EACJ;AACD,MAAI,KAAK,OAAO,YAAY,WAAY;AACpC,QAAIC,SAAQ,CAAA;AACZ,QAAIC,WAAUC,EAAUC,EAAc,aAAa,QAAQ,UAAU,UAAU,aAAa,QAAQ,CAAC;AACrG,QAAI,OAAOF,SAAQ;AACnB,IAAAA,SAAQ,OAAO,SAAU,OAAO;AAC5B,UAAIA,SAAQ,WAAWG,EAAkB,YAAY;AACjD,QAAAJ,OAAM,KAAK,KAAK;AAChB;AAAA,MACH;AACD,WAAK,KAAK;AACV,wBAAkB,UAAUC,SAAQ;AAAA,IAChD;AACQ,WAAO,CAACA,UAASD,MAAK;AAAA,EAC9B,CAAK,GAAG,CAAC,GAAG,UAAU,GAAG,IAAI,QAAQ,GAAG;AACpCK,QAA0B,WAAY;AAClC,QAAI,SAAS;AACT,cAAQ,SAAS,WAAW;AAAA,IAC/B;AAAA,EACT,CAAK;AACD,MAAI,mBAAmB,WAAW,OAAO;AACzC,YAAU,WAAY;AAClB,YAAQ,MAAM,kBAAkB,OAAO;AACvC,UAAM,QAAQ,QAAQ,IAAI;AAC1B,sBAAkB,UAAU,QAAQ;AACpC,WAAO,WAAY;AACf,cAAQ,KAAI;AAAA,IACxB;AAAA,EACK,GAAE,CAAE,CAAA;AACL,SAAO;AACX;AACA,IAAI,UAAU,SAAU,YAAY,WAAW;AAAE,SAAO,UAAU,YAAY;;AACvE,SAAS,WAAW,SAAS;AAChC,MAAI,cAAc,YAAY,WAAY;AAAE,WAAO,gBAAgB,OAAO;AAAA,EAAI,GAAE,CAAC,OAAO,CAAC;AACzF,MAAI,YAAY,YAAY,SAAU,mBAAmB;AACrD,QAAI,cAAc,QAAQ,UAAU,iBAAiB,EAAE;AACvD,WAAO;AAAA,EACf,GAAO,CAAC,OAAO,CAAC;AACZ,MAAI,gBAAgBC,aAAAA,QAAAA,iCAAiC,WAAW,aAAa,aAAa,UAAU,OAAO;AAC3G,SAAO,CAAC,eAAe,QAAQ,MAAM,OAAO;AAChD;"}
1
+ {"version":3,"file":"fsm.mjs","sources":["../../../../../../../../node_modules/@xstate/react/es/fsm.js"],"sourcesContent":["var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { createMachine, interpret, InterpreterStatus } from '@xstate/fsm';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport useConstant from './useConstant';\nfunction identity(a) {\n return a;\n}\nvar getServiceState = function (service) {\n var currentValue;\n service\n .subscribe(function (state) {\n currentValue = state;\n })\n .unsubscribe();\n return currentValue;\n};\nexport function useMachine(stateMachine, options) {\n var persistedStateRef = useRef();\n if (process.env.NODE_ENV !== 'production') {\n var _a = __read(useState(stateMachine), 1), initialMachine = _a[0];\n if (stateMachine !== initialMachine) {\n console.warn('Machine given to `useMachine` has changed between renders. This is not supported and might lead to unexpected results.\\n' +\n 'Please make sure that you pass the same Machine as argument each time.');\n }\n }\n var _b = __read(useConstant(function () {\n var queue = [];\n var service = interpret(createMachine(stateMachine.config, options ? options : stateMachine._options));\n var send = service.send;\n service.send = function (event) {\n if (service.status === InterpreterStatus.NotStarted) {\n queue.push(event);\n return;\n }\n send(event);\n persistedStateRef.current = service.state;\n };\n return [service, queue];\n }), 2), service = _b[0], queue = _b[1];\n useIsomorphicLayoutEffect(function () {\n if (options) {\n service._machine._options = options;\n }\n });\n var useServiceResult = useService(service);\n useEffect(function () {\n service.start(persistedStateRef.current);\n queue.forEach(service.send);\n persistedStateRef.current = service.state;\n return function () {\n service.stop();\n };\n }, []);\n return useServiceResult;\n}\nvar isEqual = function (_prevState, nextState) { return nextState.changed === false; };\nexport function useService(service) {\n var getSnapshot = useCallback(function () { return getServiceState(service); }, [service]);\n var subscribe = useCallback(function (handleStoreChange) {\n var unsubscribe = service.subscribe(handleStoreChange).unsubscribe;\n return unsubscribe;\n }, [service]);\n var storeSnapshot = useSyncExternalStoreWithSelector(subscribe, getSnapshot, getSnapshot, identity, isEqual);\n return [storeSnapshot, service.send, service];\n}\n"],"names":["this","n","queue","service","interpret","createMachine","InterpreterStatus","useIsomorphicLayoutEffect","useSyncExternalStoreWithSelector"],"mappings":";;;;;;AAAA,IAAI,SAAUA,cAAQA,WAAK,UAAW,SAAU,GAAGC,IAAG;AAClD,MAAI,IAAI,OAAO,WAAW,cAAc,EAAE,OAAO,QAAQ;AACzD,MAAI,CAAC;AAAG,WAAO;AACf,MAAI,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAE,GAAE;AAC/B,MAAI;AACA,YAAQA,OAAM,UAAUA,OAAM,MAAM,EAAE,IAAI,EAAE,KAAM,GAAE;AAAM,SAAG,KAAK,EAAE,KAAK;AAAA,EAC5E,SACM,OAAP;AAAgB,QAAI,EAAE,MAAc;AAAA,EAAG,UAC/B;AACJ,QAAI;AACA,UAAI,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,QAAQ;AAAI,UAAE,KAAK,CAAC;AAAA,IAClD,UACO;AAAE,UAAI;AAAG,cAAM,EAAE;AAAA,IAAQ;AAAA,EACpC;AACD,SAAO;AACX;AAMA,SAAS,SAAS,GAAG;AACjB,SAAO;AACX;AACA,IAAI,kBAAkB,SAAU,SAAS;AACrC,MAAI;AACJ,UACK,UAAU,SAAU,OAAO;AAC5B,mBAAe;AAAA,EACvB,CAAK,EACI;AACL,SAAO;AACX;AACO,SAAS,WAAW,cAAc,SAAS;AAC9C,MAAI,oBAAoB;AACxB,MAAI,QAAQ,IAAI,aAAa,cAAc;AACvC,QAAI,KAAK,OAAO,SAAS,YAAY,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC;AACjE,QAAI,iBAAiB,gBAAgB;AACjC,cAAQ,KAAK,gMAC+D;AAAA,IAC/E;AAAA,EACJ;AACD,MAAI,KAAK,OAAO,YAAY,WAAY;AACpC,QAAIC,SAAQ,CAAA;AACZ,QAAIC,WAAUC,EAAUC,EAAc,aAAa,QAAQ,UAAU,UAAU,aAAa,QAAQ,CAAC;AACrG,QAAI,OAAOF,SAAQ;AACnB,IAAAA,SAAQ,OAAO,SAAU,OAAO;AAC5B,UAAIA,SAAQ,WAAWG,EAAkB,YAAY;AACjD,QAAAJ,OAAM,KAAK,KAAK;AAChB;AAAA,MACH;AACD,WAAK,KAAK;AACV,wBAAkB,UAAUC,SAAQ;AAAA,IAChD;AACQ,WAAO,CAACA,UAASD,MAAK;AAAA,EAC9B,CAAK,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;AACrCK,QAA0B,WAAY;AAClC,QAAI,SAAS;AACT,cAAQ,SAAS,WAAW;AAAA,IAC/B;AAAA,EACT,CAAK;AACD,MAAI,mBAAmB,WAAW,OAAO;AACzC,YAAU,WAAY;AAClB,YAAQ,MAAM,kBAAkB,OAAO;AACvC,UAAM,QAAQ,QAAQ,IAAI;AAC1B,sBAAkB,UAAU,QAAQ;AACpC,WAAO,WAAY;AACf,cAAQ,KAAI;AAAA,IACxB;AAAA,EACK,GAAE,CAAE,CAAA;AACL,SAAO;AACX;AACA,IAAI,UAAU,SAAU,YAAY,WAAW;AAAE,SAAO,UAAU,YAAY;;AACvE,SAAS,WAAW,SAAS;AAChC,MAAI,cAAc,YAAY,WAAY;AAAE,WAAO,gBAAgB,OAAO;AAAA,EAAI,GAAE,CAAC,OAAO,CAAC;AACzF,MAAI,YAAY,YAAY,SAAU,mBAAmB;AACrD,QAAI,cAAc,QAAQ,UAAU,iBAAiB,EAAE;AACvD,WAAO;AAAA,EACf,GAAO,CAAC,OAAO,CAAC;AACZ,MAAI,gBAAgBC,oBAAAA,iCAAiC,WAAW,aAAa,aAAa,UAAU,OAAO;AAC3G,SAAO,CAAC,eAAe,QAAQ,MAAM,OAAO;AAChD;"}