@shopify/hydrogen-react 2022.10.0 → 2022.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/dist/dev/CartProvider.js +35 -35
  2. package/dist/dev/CartProvider.js.map +1 -1
  3. package/dist/dev/{CartProvider.cjs → CartProvider.mjs} +36 -36
  4. package/dist/dev/{CartProvider.cjs.map → CartProvider.mjs.map} +1 -1
  5. package/dist/dev/ExternalVideo.js +5 -5
  6. package/dist/dev/ExternalVideo.js.map +1 -1
  7. package/dist/dev/{ExternalVideo.cjs → ExternalVideo.mjs} +6 -6
  8. package/dist/{prod/ExternalVideo.cjs.map → dev/ExternalVideo.mjs.map} +1 -1
  9. package/dist/dev/Image.js +12 -12
  10. package/dist/dev/Image.js.map +1 -1
  11. package/dist/dev/{Image.cjs → Image.mjs} +13 -13
  12. package/dist/dev/{Image.cjs.map → Image.mjs.map} +1 -1
  13. package/dist/dev/MediaFile.js +12 -12
  14. package/dist/dev/MediaFile.js.map +1 -1
  15. package/dist/dev/{MediaFile.cjs → MediaFile.mjs} +13 -13
  16. package/dist/dev/{MediaFile.cjs.map → MediaFile.mjs.map} +1 -1
  17. package/dist/dev/Metafield.js +32 -32
  18. package/dist/dev/Metafield.js.map +1 -1
  19. package/dist/dev/{Metafield.cjs → Metafield.mjs} +33 -33
  20. package/dist/dev/{Metafield.cjs.map → Metafield.mjs.map} +1 -1
  21. package/dist/dev/ModelViewer.js +11 -11
  22. package/dist/dev/ModelViewer.js.map +1 -1
  23. package/dist/dev/{ModelViewer.cjs → ModelViewer.mjs} +12 -12
  24. package/dist/dev/{ModelViewer.cjs.map → ModelViewer.mjs.map} +1 -1
  25. package/dist/dev/Money.js +8 -8
  26. package/dist/dev/Money.js.map +1 -1
  27. package/dist/{prod/Money.cjs → dev/Money.mjs} +9 -9
  28. package/dist/dev/{Money.cjs.map → Money.mjs.map} +1 -1
  29. package/dist/dev/ProductPrice.js +9 -9
  30. package/dist/dev/ProductPrice.js.map +1 -1
  31. package/dist/{prod/ProductPrice.cjs → dev/ProductPrice.mjs} +10 -10
  32. package/dist/dev/{ProductPrice.cjs.map → ProductPrice.mjs.map} +1 -1
  33. package/dist/dev/ProductProvider.js +25 -25
  34. package/dist/dev/ProductProvider.js.map +1 -1
  35. package/dist/{prod/ProductProvider.cjs → dev/ProductProvider.mjs} +26 -26
  36. package/dist/dev/{ProductProvider.cjs.map → ProductProvider.mjs.map} +1 -1
  37. package/dist/dev/ShopPayButton.js +13 -13
  38. package/dist/dev/ShopPayButton.js.map +1 -1
  39. package/dist/{prod/ShopPayButton.cjs → dev/ShopPayButton.mjs} +14 -14
  40. package/dist/{prod/ShopPayButton.cjs.map → dev/ShopPayButton.mjs.map} +1 -1
  41. package/dist/dev/ShopifyProvider.js +14 -14
  42. package/dist/dev/ShopifyProvider.js.map +1 -1
  43. package/dist/dev/ShopifyProvider.mjs +46 -0
  44. package/dist/dev/{ShopifyProvider.cjs.map → ShopifyProvider.mjs.map} +1 -1
  45. package/dist/dev/Video.js +9 -9
  46. package/dist/dev/Video.js.map +1 -1
  47. package/dist/dev/{Video.cjs → Video.mjs} +10 -10
  48. package/dist/dev/{Video.cjs.map → Video.mjs.map} +1 -1
  49. package/dist/dev/_virtual/index.js +3 -3
  50. package/dist/dev/_virtual/index.js.map +1 -1
  51. package/dist/dev/_virtual/index.mjs +5 -0
  52. package/dist/dev/_virtual/index.mjs.map +1 -0
  53. package/dist/dev/_virtual/use-sync-external-store-shim.development.js +3 -3
  54. package/dist/dev/_virtual/use-sync-external-store-shim.development.js.map +1 -1
  55. package/dist/dev/_virtual/use-sync-external-store-shim.development.mjs +5 -0
  56. package/dist/dev/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
  57. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.js +3 -3
  58. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.js.map +1 -1
  59. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
  60. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
  61. package/dist/dev/_virtual/with-selector.development.js +3 -3
  62. package/dist/dev/_virtual/with-selector.development.js.map +1 -1
  63. package/dist/dev/_virtual/with-selector.development.mjs +5 -0
  64. package/dist/dev/_virtual/with-selector.development.mjs.map +1 -0
  65. package/dist/dev/_virtual/with-selector.js +3 -3
  66. package/dist/dev/_virtual/with-selector.js.map +1 -1
  67. package/dist/dev/_virtual/with-selector.mjs +5 -0
  68. package/dist/dev/_virtual/with-selector.mjs.map +1 -0
  69. package/dist/dev/_virtual/with-selector.production.min.js +3 -3
  70. package/dist/dev/_virtual/with-selector.production.min.js.map +1 -1
  71. package/dist/dev/_virtual/with-selector.production.min.mjs +5 -0
  72. package/dist/dev/_virtual/with-selector.production.min.mjs.map +1 -0
  73. package/dist/dev/cart-constants.js +9 -9
  74. package/dist/dev/cart-constants.js.map +1 -1
  75. package/dist/dev/cart-constants.mjs +17 -0
  76. package/dist/dev/{cart-constants.cjs.map → cart-constants.mjs.map} +1 -1
  77. package/dist/dev/cart-hooks.js +15 -15
  78. package/dist/dev/cart-hooks.js.map +1 -1
  79. package/dist/dev/cart-hooks.mjs +48 -0
  80. package/dist/dev/{cart-hooks.cjs.map → cart-hooks.mjs.map} +1 -1
  81. package/dist/dev/cart-queries.js +11 -11
  82. package/dist/dev/cart-queries.js.map +1 -1
  83. package/dist/{prod/cart-queries.cjs → dev/cart-queries.mjs} +12 -12
  84. package/dist/dev/{cart-queries.cjs.map → cart-queries.mjs.map} +1 -1
  85. package/dist/dev/flatten-connection.js +3 -3
  86. package/dist/dev/flatten-connection.js.map +1 -1
  87. package/dist/dev/{flatten-connection.cjs → flatten-connection.mjs} +4 -4
  88. package/dist/dev/{flatten-connection.cjs.map → flatten-connection.mjs.map} +1 -1
  89. package/dist/dev/image-size.js +6 -6
  90. package/dist/dev/image-size.js.map +1 -1
  91. package/dist/dev/{image-size.cjs → image-size.mjs} +7 -7
  92. package/dist/{prod/image-size.cjs.map → dev/image-size.mjs.map} +1 -1
  93. package/dist/dev/index.js +37 -37
  94. package/dist/dev/index.js.map +1 -1
  95. package/dist/dev/index.mjs +38 -0
  96. package/dist/dev/index.mjs.map +1 -0
  97. package/dist/dev/load-script.js +7 -7
  98. package/dist/dev/load-script.js.map +1 -1
  99. package/dist/{prod/load-script.cjs → dev/load-script.mjs} +8 -8
  100. package/dist/dev/{load-script.cjs.map → load-script.mjs.map} +1 -1
  101. package/dist/dev/node_modules/@xstate/fsm/es/index.js +34 -35
  102. package/dist/dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
  103. package/dist/{prod/node_modules/@xstate/fsm/es/index.cjs → dev/node_modules/@xstate/fsm/es/index.mjs} +36 -35
  104. package/dist/dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
  105. package/dist/dev/node_modules/@xstate/react/es/fsm.js +21 -21
  106. package/dist/dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
  107. package/dist/{prod/node_modules/@xstate/react/es/fsm.cjs → dev/node_modules/@xstate/react/es/fsm.mjs} +22 -22
  108. package/dist/dev/node_modules/@xstate/react/es/{fsm.cjs.map → fsm.mjs.map} +1 -1
  109. package/dist/dev/node_modules/@xstate/react/es/useConstant.js +23 -5
  110. package/dist/dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  111. package/dist/dev/node_modules/@xstate/react/es/useConstant.mjs +12 -0
  112. package/dist/dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
  113. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +4 -5
  114. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +1 -1
  115. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +6 -0
  116. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/{use-isomorphic-layout-effect.browser.esm.cjs.map → use-isomorphic-layout-effect.browser.esm.mjs.map} +1 -1
  117. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +13 -11
  118. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  119. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/{with-selector.development.cjs → with-selector.development.mjs} +12 -14
  120. package/dist/{prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.cjs.map → dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map} +1 -1
  121. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +12 -10
  122. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  123. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/{with-selector.production.min.cjs → with-selector.production.min.mjs} +11 -13
  124. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
  125. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +11 -9
  126. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  127. package/dist/dev/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.development.cjs → use-sync-external-store-shim.development.mjs} +10 -12
  128. package/dist/{prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.map → dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map} +1 -1
  129. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +11 -9
  130. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  131. package/dist/{prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.cjs → dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs} +10 -12
  132. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
  133. package/dist/dev/node_modules/use-sync-external-store/shim/index.js +12 -12
  134. package/dist/dev/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  135. package/dist/dev/node_modules/use-sync-external-store/shim/index.mjs +21 -0
  136. package/dist/dev/node_modules/use-sync-external-store/shim/{index.cjs.map → index.mjs.map} +1 -1
  137. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.js +7 -6
  138. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  139. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
  140. package/dist/dev/node_modules/use-sync-external-store/shim/{with-selector.cjs.map → with-selector.mjs.map} +1 -1
  141. package/dist/dev/node_modules/worktop/cookie/index.js +3 -3
  142. package/dist/dev/node_modules/worktop/cookie/index.js.map +1 -1
  143. package/dist/{prod/node_modules/worktop/cookie/index.cjs → dev/node_modules/worktop/cookie/index.mjs} +4 -4
  144. package/dist/dev/node_modules/worktop/cookie/{index.cjs.map → index.mjs.map} +1 -1
  145. package/dist/dev/storefront-api-constants.js +3 -3
  146. package/dist/dev/storefront-api-constants.js.map +1 -1
  147. package/dist/dev/storefront-api-constants.mjs +5 -0
  148. package/dist/dev/storefront-api-constants.mjs.map +1 -0
  149. package/dist/dev/storefront-client.js +6 -6
  150. package/dist/dev/storefront-client.js.map +1 -1
  151. package/dist/dev/{storefront-client.cjs → storefront-client.mjs} +7 -7
  152. package/dist/dev/storefront-client.mjs.map +1 -0
  153. package/dist/dev/useCartAPIStateMachine.js +20 -20
  154. package/dist/dev/useCartAPIStateMachine.js.map +1 -1
  155. package/dist/{prod/useCartAPIStateMachine.cjs → dev/useCartAPIStateMachine.mjs} +21 -21
  156. package/dist/dev/{useCartAPIStateMachine.cjs.map → useCartAPIStateMachine.mjs.map} +1 -1
  157. package/dist/dev/useCartActions.js +26 -26
  158. package/dist/dev/useCartActions.js.map +1 -1
  159. package/dist/{prod/useCartActions.cjs → dev/useCartActions.mjs} +27 -27
  160. package/dist/dev/{useCartActions.cjs.map → useCartActions.mjs.map} +1 -1
  161. package/dist/dev/useMoney.js +10 -10
  162. package/dist/dev/useMoney.js.map +1 -1
  163. package/dist/{prod/useMoney.cjs → dev/useMoney.mjs} +11 -11
  164. package/dist/dev/{useMoney.cjs.map → useMoney.mjs.map} +1 -1
  165. package/dist/prod/CartProvider.js +35 -35
  166. package/dist/prod/CartProvider.js.map +1 -1
  167. package/dist/prod/{CartProvider.cjs → CartProvider.mjs} +36 -36
  168. package/dist/prod/{CartProvider.cjs.map → CartProvider.mjs.map} +1 -1
  169. package/dist/prod/ExternalVideo.js +5 -5
  170. package/dist/prod/ExternalVideo.js.map +1 -1
  171. package/dist/prod/{ExternalVideo.cjs → ExternalVideo.mjs} +6 -6
  172. package/dist/{dev/ExternalVideo.cjs.map → prod/ExternalVideo.mjs.map} +1 -1
  173. package/dist/prod/Image.js +12 -12
  174. package/dist/prod/Image.js.map +1 -1
  175. package/dist/prod/{Image.cjs → Image.mjs} +13 -13
  176. package/dist/prod/{Image.cjs.map → Image.mjs.map} +1 -1
  177. package/dist/prod/MediaFile.js +12 -12
  178. package/dist/prod/MediaFile.js.map +1 -1
  179. package/dist/prod/{MediaFile.cjs → MediaFile.mjs} +13 -13
  180. package/dist/prod/{MediaFile.cjs.map → MediaFile.mjs.map} +1 -1
  181. package/dist/prod/Metafield.js +32 -32
  182. package/dist/prod/Metafield.js.map +1 -1
  183. package/dist/prod/{Metafield.cjs → Metafield.mjs} +33 -33
  184. package/dist/prod/{Metafield.cjs.map → Metafield.mjs.map} +1 -1
  185. package/dist/prod/ModelViewer.js +11 -11
  186. package/dist/prod/ModelViewer.js.map +1 -1
  187. package/dist/prod/{ModelViewer.cjs → ModelViewer.mjs} +12 -12
  188. package/dist/prod/{ModelViewer.cjs.map → ModelViewer.mjs.map} +1 -1
  189. package/dist/prod/Money.js +8 -8
  190. package/dist/prod/Money.js.map +1 -1
  191. package/dist/{dev/Money.cjs → prod/Money.mjs} +9 -9
  192. package/dist/prod/{Money.cjs.map → Money.mjs.map} +1 -1
  193. package/dist/prod/ProductPrice.js +9 -9
  194. package/dist/prod/ProductPrice.js.map +1 -1
  195. package/dist/{dev/ProductPrice.cjs → prod/ProductPrice.mjs} +10 -10
  196. package/dist/prod/{ProductPrice.cjs.map → ProductPrice.mjs.map} +1 -1
  197. package/dist/prod/ProductProvider.js +25 -25
  198. package/dist/prod/ProductProvider.js.map +1 -1
  199. package/dist/{dev/ProductProvider.cjs → prod/ProductProvider.mjs} +26 -26
  200. package/dist/prod/{ProductProvider.cjs.map → ProductProvider.mjs.map} +1 -1
  201. package/dist/prod/ShopPayButton.js +13 -13
  202. package/dist/prod/ShopPayButton.js.map +1 -1
  203. package/dist/{dev/ShopPayButton.cjs → prod/ShopPayButton.mjs} +14 -14
  204. package/dist/{dev/ShopPayButton.cjs.map → prod/ShopPayButton.mjs.map} +1 -1
  205. package/dist/prod/ShopifyProvider.js +14 -14
  206. package/dist/prod/ShopifyProvider.js.map +1 -1
  207. package/dist/prod/ShopifyProvider.mjs +46 -0
  208. package/dist/prod/{ShopifyProvider.cjs.map → ShopifyProvider.mjs.map} +1 -1
  209. package/dist/prod/Video.js +9 -9
  210. package/dist/prod/Video.js.map +1 -1
  211. package/dist/prod/{Video.cjs → Video.mjs} +10 -10
  212. package/dist/prod/{Video.cjs.map → Video.mjs.map} +1 -1
  213. package/dist/prod/_virtual/index.js +3 -3
  214. package/dist/prod/_virtual/index.js.map +1 -1
  215. package/dist/prod/_virtual/index.mjs +5 -0
  216. package/dist/prod/_virtual/index.mjs.map +1 -0
  217. package/dist/prod/_virtual/use-sync-external-store-shim.development.js +3 -3
  218. package/dist/prod/_virtual/use-sync-external-store-shim.development.js.map +1 -1
  219. package/dist/prod/_virtual/use-sync-external-store-shim.development.mjs +5 -0
  220. package/dist/prod/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
  221. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.js +3 -3
  222. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.js.map +1 -1
  223. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
  224. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
  225. package/dist/prod/_virtual/with-selector.development.js +3 -3
  226. package/dist/prod/_virtual/with-selector.development.js.map +1 -1
  227. package/dist/prod/_virtual/with-selector.development.mjs +5 -0
  228. package/dist/prod/_virtual/with-selector.development.mjs.map +1 -0
  229. package/dist/prod/_virtual/with-selector.js +3 -3
  230. package/dist/prod/_virtual/with-selector.js.map +1 -1
  231. package/dist/prod/_virtual/with-selector.mjs +5 -0
  232. package/dist/prod/_virtual/with-selector.mjs.map +1 -0
  233. package/dist/prod/_virtual/with-selector.production.min.js +3 -3
  234. package/dist/prod/_virtual/with-selector.production.min.js.map +1 -1
  235. package/dist/prod/_virtual/with-selector.production.min.mjs +5 -0
  236. package/dist/prod/_virtual/with-selector.production.min.mjs.map +1 -0
  237. package/dist/prod/cart-constants.js +9 -9
  238. package/dist/prod/cart-constants.js.map +1 -1
  239. package/dist/prod/cart-constants.mjs +17 -0
  240. package/dist/prod/{cart-constants.cjs.map → cart-constants.mjs.map} +1 -1
  241. package/dist/prod/cart-hooks.js +15 -15
  242. package/dist/prod/cart-hooks.js.map +1 -1
  243. package/dist/prod/cart-hooks.mjs +48 -0
  244. package/dist/prod/{cart-hooks.cjs.map → cart-hooks.mjs.map} +1 -1
  245. package/dist/prod/cart-queries.js +11 -11
  246. package/dist/prod/cart-queries.js.map +1 -1
  247. package/dist/{dev/cart-queries.cjs → prod/cart-queries.mjs} +12 -12
  248. package/dist/prod/{cart-queries.cjs.map → cart-queries.mjs.map} +1 -1
  249. package/dist/prod/flatten-connection.js +3 -3
  250. package/dist/prod/flatten-connection.js.map +1 -1
  251. package/dist/prod/{flatten-connection.cjs → flatten-connection.mjs} +4 -4
  252. package/dist/prod/{flatten-connection.cjs.map → flatten-connection.mjs.map} +1 -1
  253. package/dist/prod/image-size.js +6 -6
  254. package/dist/prod/image-size.js.map +1 -1
  255. package/dist/prod/{image-size.cjs → image-size.mjs} +7 -7
  256. package/dist/{dev/image-size.cjs.map → prod/image-size.mjs.map} +1 -1
  257. package/dist/prod/index.js +37 -37
  258. package/dist/prod/index.js.map +1 -1
  259. package/dist/prod/index.mjs +38 -0
  260. package/dist/prod/index.mjs.map +1 -0
  261. package/dist/prod/load-script.js +7 -7
  262. package/dist/prod/load-script.js.map +1 -1
  263. package/dist/{dev/load-script.cjs → prod/load-script.mjs} +8 -8
  264. package/dist/prod/{load-script.cjs.map → load-script.mjs.map} +1 -1
  265. package/dist/prod/node_modules/@xstate/fsm/es/index.js +34 -35
  266. package/dist/prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
  267. package/dist/{dev/node_modules/@xstate/fsm/es/index.cjs → prod/node_modules/@xstate/fsm/es/index.mjs} +36 -35
  268. package/dist/prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
  269. package/dist/prod/node_modules/@xstate/react/es/fsm.js +21 -21
  270. package/dist/prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
  271. package/dist/{dev/node_modules/@xstate/react/es/fsm.cjs → prod/node_modules/@xstate/react/es/fsm.mjs} +22 -22
  272. package/dist/prod/node_modules/@xstate/react/es/{fsm.cjs.map → fsm.mjs.map} +1 -1
  273. package/dist/prod/node_modules/@xstate/react/es/useConstant.js +23 -5
  274. package/dist/prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  275. package/dist/prod/node_modules/@xstate/react/es/useConstant.mjs +12 -0
  276. package/dist/prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
  277. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +4 -5
  278. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +1 -1
  279. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +6 -0
  280. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/{use-isomorphic-layout-effect.browser.esm.cjs.map → use-isomorphic-layout-effect.browser.esm.mjs.map} +1 -1
  281. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +13 -11
  282. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  283. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/{with-selector.development.cjs → with-selector.development.mjs} +12 -14
  284. package/dist/{dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.cjs.map → prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map} +1 -1
  285. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +12 -10
  286. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  287. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/{with-selector.production.min.cjs → with-selector.production.min.mjs} +11 -13
  288. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
  289. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +11 -9
  290. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  291. package/dist/prod/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.development.cjs → use-sync-external-store-shim.development.mjs} +10 -12
  292. package/dist/{dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.map → prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map} +1 -1
  293. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +11 -9
  294. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  295. package/dist/{dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.cjs → prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs} +10 -12
  296. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
  297. package/dist/prod/node_modules/use-sync-external-store/shim/index.js +12 -12
  298. package/dist/prod/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  299. package/dist/prod/node_modules/use-sync-external-store/shim/index.mjs +21 -0
  300. package/dist/prod/node_modules/use-sync-external-store/shim/{index.cjs.map → index.mjs.map} +1 -1
  301. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.js +7 -6
  302. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  303. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
  304. package/dist/prod/node_modules/use-sync-external-store/shim/{with-selector.cjs.map → with-selector.mjs.map} +1 -1
  305. package/dist/prod/node_modules/worktop/cookie/index.js +3 -3
  306. package/dist/prod/node_modules/worktop/cookie/index.js.map +1 -1
  307. package/dist/{dev/node_modules/worktop/cookie/index.cjs → prod/node_modules/worktop/cookie/index.mjs} +4 -4
  308. package/dist/prod/node_modules/worktop/cookie/{index.cjs.map → index.mjs.map} +1 -1
  309. package/dist/prod/storefront-api-constants.js +3 -3
  310. package/dist/prod/storefront-api-constants.js.map +1 -1
  311. package/dist/prod/storefront-api-constants.mjs +5 -0
  312. package/dist/prod/storefront-api-constants.mjs.map +1 -0
  313. package/dist/prod/storefront-client.js +6 -6
  314. package/dist/prod/storefront-client.js.map +1 -1
  315. package/dist/prod/{storefront-client.cjs → storefront-client.mjs} +7 -7
  316. package/dist/prod/storefront-client.mjs.map +1 -0
  317. package/dist/prod/useCartAPIStateMachine.js +20 -20
  318. package/dist/prod/useCartAPIStateMachine.js.map +1 -1
  319. package/dist/{dev/useCartAPIStateMachine.cjs → prod/useCartAPIStateMachine.mjs} +21 -21
  320. package/dist/prod/{useCartAPIStateMachine.cjs.map → useCartAPIStateMachine.mjs.map} +1 -1
  321. package/dist/prod/useCartActions.js +26 -26
  322. package/dist/prod/useCartActions.js.map +1 -1
  323. package/dist/{dev/useCartActions.cjs → prod/useCartActions.mjs} +27 -27
  324. package/dist/prod/{useCartActions.cjs.map → useCartActions.mjs.map} +1 -1
  325. package/dist/prod/useMoney.js +10 -10
  326. package/dist/prod/useMoney.js.map +1 -1
  327. package/dist/{dev/useMoney.cjs → prod/useMoney.mjs} +11 -11
  328. package/dist/prod/{useMoney.cjs.map → useMoney.mjs.map} +1 -1
  329. package/dist/umd/hydrogen-react.dev.js +1 -1
  330. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  331. package/dist/umd/hydrogen-react.prod.js +1 -1
  332. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  333. package/package.json +14 -14
  334. package/dist/dev/ShopifyProvider.cjs +0 -46
  335. package/dist/dev/_virtual/index.cjs +0 -5
  336. package/dist/dev/_virtual/index.cjs.map +0 -1
  337. package/dist/dev/_virtual/use-sync-external-store-shim.development.cjs +0 -5
  338. package/dist/dev/_virtual/use-sync-external-store-shim.development.cjs.map +0 -1
  339. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.cjs +0 -5
  340. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.cjs.map +0 -1
  341. package/dist/dev/_virtual/with-selector.cjs +0 -5
  342. package/dist/dev/_virtual/with-selector.cjs.map +0 -1
  343. package/dist/dev/_virtual/with-selector.development.cjs +0 -5
  344. package/dist/dev/_virtual/with-selector.development.cjs.map +0 -1
  345. package/dist/dev/_virtual/with-selector.production.min.cjs +0 -5
  346. package/dist/dev/_virtual/with-selector.production.min.cjs.map +0 -1
  347. package/dist/dev/cart-constants.cjs +0 -17
  348. package/dist/dev/cart-hooks.cjs +0 -48
  349. package/dist/dev/index.cjs +0 -38
  350. package/dist/dev/index.cjs.map +0 -1
  351. package/dist/dev/node_modules/@xstate/fsm/es/index.cjs.map +0 -1
  352. package/dist/dev/node_modules/@xstate/react/es/useConstant.cjs +0 -30
  353. package/dist/dev/node_modules/@xstate/react/es/useConstant.cjs.map +0 -1
  354. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.cjs +0 -5
  355. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.cjs.map +0 -1
  356. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.cjs.map +0 -1
  357. package/dist/dev/node_modules/use-sync-external-store/shim/index.cjs +0 -21
  358. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.cjs +0 -12
  359. package/dist/dev/storefront-api-constants.cjs +0 -5
  360. package/dist/dev/storefront-api-constants.cjs.map +0 -1
  361. package/dist/dev/storefront-client.cjs.map +0 -1
  362. package/dist/prod/ShopifyProvider.cjs +0 -46
  363. package/dist/prod/_virtual/index.cjs +0 -5
  364. package/dist/prod/_virtual/index.cjs.map +0 -1
  365. package/dist/prod/_virtual/use-sync-external-store-shim.development.cjs +0 -5
  366. package/dist/prod/_virtual/use-sync-external-store-shim.development.cjs.map +0 -1
  367. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.cjs +0 -5
  368. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.cjs.map +0 -1
  369. package/dist/prod/_virtual/with-selector.cjs +0 -5
  370. package/dist/prod/_virtual/with-selector.cjs.map +0 -1
  371. package/dist/prod/_virtual/with-selector.development.cjs +0 -5
  372. package/dist/prod/_virtual/with-selector.development.cjs.map +0 -1
  373. package/dist/prod/_virtual/with-selector.production.min.cjs +0 -5
  374. package/dist/prod/_virtual/with-selector.production.min.cjs.map +0 -1
  375. package/dist/prod/cart-constants.cjs +0 -17
  376. package/dist/prod/cart-hooks.cjs +0 -48
  377. package/dist/prod/index.cjs +0 -38
  378. package/dist/prod/index.cjs.map +0 -1
  379. package/dist/prod/node_modules/@xstate/fsm/es/index.cjs.map +0 -1
  380. package/dist/prod/node_modules/@xstate/react/es/useConstant.cjs +0 -30
  381. package/dist/prod/node_modules/@xstate/react/es/useConstant.cjs.map +0 -1
  382. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.cjs +0 -5
  383. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.cjs.map +0 -1
  384. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.cjs.map +0 -1
  385. package/dist/prod/node_modules/use-sync-external-store/shim/index.cjs +0 -21
  386. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.cjs +0 -12
  387. package/dist/prod/storefront-api-constants.cjs +0 -5
  388. package/dist/prod/storefront-api-constants.cjs.map +0 -1
  389. package/dist/prod/storefront-client.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"flatten-connection.cjs","sources":["../../src/flatten-connection.ts"],"sourcesContent":["import type {PartialDeep} from 'type-fest';\n\n/**\n * The `flattenConnection` utility transforms a connection object from the Storefront API (for example, [Product-related connections](https://shopify.dev/api/storefront/reference/products/product)) into a flat array of nodes.\n * The utility works with either `nodes` or `edges.node`.\n *\n * If `connection` is null or undefined, will return an empty array instead in production. In development, an error will be thrown.\n */\nexport function flattenConnection<T>(\n connection?: PartialDeep<GraphQLConnection<T>, {recurseIntoArrays: true}>\n): PartialDeep<T, {recurseIntoArrays: true}>[] {\n if (!connection) {\n const noConnectionErr = `flattenConnection(): needs a 'connection' to flatten, but received '${connection}' instead`;\n if (__HYDROGEN_DEV__) {\n throw new Error(noConnectionErr);\n } else {\n console.error(noConnectionErr);\n return [];\n }\n }\n\n if (connection.nodes) {\n return connection.nodes as PartialDeep<T, {recurseIntoArrays: true}>[];\n }\n\n if (connection.edges) {\n return connection.edges.map((edge) => {\n if (!edge?.node) {\n throw new Error('Connection edges must contain nodes');\n }\n return edge.node;\n });\n }\n\n if (__HYDROGEN_DEV__) {\n console.warn(\n `The connection did not contain either \"nodes\" or \"edges.node\". A empty array will be returned in its place.`\n );\n }\n\n return [];\n}\n\ninterface GraphQLConnection<T> {\n edges?: {node: T}[];\n nodes?: T[];\n}\n"],"names":[],"mappings":";;AAQO,SAAS,kBACd,YAC6C;AAC7C,MAAI,CAAC,YAAY;AACf,UAAM,kBAAkB,uEAAuE;AAGxF;AACL,cAAQ,MAAM,eAAe;AAC7B,aAAO;IACT;AAAA,EACF;AAEA,MAAI,WAAW,OAAO;AACpB,WAAO,WAAW;AAAA,EACpB;AAEA,MAAI,WAAW,OAAO;AACpB,WAAO,WAAW,MAAM,IAAI,CAAC,SAAS;AAChC,UAAA,EAAC,6BAAM,OAAM;AACT,cAAA,IAAI,MAAM,qCAAqC;AAAA,MACvD;AACA,aAAO,KAAK;AAAA,IAAA,CACb;AAAA,EACH;AAQA,SAAO;AACT;;"}
1
+ {"version":3,"file":"flatten-connection.mjs","sources":["../../src/flatten-connection.ts"],"sourcesContent":["import type {PartialDeep} from 'type-fest';\n\n/**\n * The `flattenConnection` utility transforms a connection object from the Storefront API (for example, [Product-related connections](https://shopify.dev/api/storefront/reference/products/product)) into a flat array of nodes.\n * The utility works with either `nodes` or `edges.node`.\n *\n * If `connection` is null or undefined, will return an empty array instead in production. In development, an error will be thrown.\n */\nexport function flattenConnection<T>(\n connection?: PartialDeep<GraphQLConnection<T>, {recurseIntoArrays: true}>\n): PartialDeep<T, {recurseIntoArrays: true}>[] {\n if (!connection) {\n const noConnectionErr = `flattenConnection(): needs a 'connection' to flatten, but received '${connection}' instead`;\n if (__HYDROGEN_DEV__) {\n throw new Error(noConnectionErr);\n } else {\n console.error(noConnectionErr);\n return [];\n }\n }\n\n if (connection.nodes) {\n return connection.nodes as PartialDeep<T, {recurseIntoArrays: true}>[];\n }\n\n if (connection.edges) {\n return connection.edges.map((edge) => {\n if (!edge?.node) {\n throw new Error('Connection edges must contain nodes');\n }\n return edge.node;\n });\n }\n\n if (__HYDROGEN_DEV__) {\n console.warn(\n `The connection did not contain either \"nodes\" or \"edges.node\". A empty array will be returned in its place.`\n );\n }\n\n return [];\n}\n\ninterface GraphQLConnection<T> {\n edges?: {node: T}[];\n nodes?: T[];\n}\n"],"names":[],"mappings":"AAQO,SAAS,kBACd,YAC6C;AAC7C,MAAI,CAAC,YAAY;AACf,UAAM,kBAAkB,uEAAuE;AAGxF;AACL,cAAQ,MAAM,eAAe;AAC7B,aAAO;IACT;AAAA,EACF;AAEA,MAAI,WAAW,OAAO;AACpB,WAAO,WAAW;AAAA,EACpB;AAEA,MAAI,WAAW,OAAO;AACpB,WAAO,WAAW,MAAM,IAAI,CAAC,SAAS;AAChC,UAAA,EAAC,6BAAM,OAAM;AACT,cAAA,IAAI,MAAM,qCAAqC;AAAA,MACvD;AACA,aAAO,KAAK;AAAA,IAAA,CACb;AAAA,EACH;AAQA,SAAO;AACT;"}
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
1
3
  const PRODUCTION_CDN_HOSTNAMES = [
2
4
  "cdn.shopify.com",
3
5
  "cdn.shopifycdn.net",
@@ -71,10 +73,8 @@ function getShopifyImageDimensions({
71
73
  }
72
74
  return { width: null, height: null };
73
75
  }
74
- export {
75
- IMG_SRC_SET_SIZES,
76
- addImageSizeParametersToUrl,
77
- getShopifyImageDimensions,
78
- shopifyImageLoader
79
- };
76
+ exports.IMG_SRC_SET_SIZES = IMG_SRC_SET_SIZES;
77
+ exports.addImageSizeParametersToUrl = addImageSizeParametersToUrl;
78
+ exports.getShopifyImageDimensions = getShopifyImageDimensions;
79
+ exports.shopifyImageLoader = shopifyImageLoader;
80
80
  //# sourceMappingURL=image-size.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-size.js","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.js","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;;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,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,5 +1,3 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
1
  const PRODUCTION_CDN_HOSTNAMES = [
4
2
  "cdn.shopify.com",
5
3
  "cdn.shopifycdn.net",
@@ -73,8 +71,10 @@ function getShopifyImageDimensions({
73
71
  }
74
72
  return { width: null, height: null };
75
73
  }
76
- exports.IMG_SRC_SET_SIZES = IMG_SRC_SET_SIZES;
77
- exports.addImageSizeParametersToUrl = addImageSizeParametersToUrl;
78
- exports.getShopifyImageDimensions = getShopifyImageDimensions;
79
- exports.shopifyImageLoader = shopifyImageLoader;
80
- //# sourceMappingURL=image-size.cjs.map
74
+ export {
75
+ IMG_SRC_SET_SIZES,
76
+ addImageSizeParametersToUrl,
77
+ getShopifyImageDimensions,
78
+ shopifyImageLoader
79
+ };
80
+ //# sourceMappingURL=image-size.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"image-size.cjs","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;;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,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,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,38 +1,38 @@
1
- import { CartProvider, useCart } from "./CartProvider.js";
2
- import { ExternalVideo } from "./ExternalVideo.js";
3
- import { flattenConnection } from "./flatten-connection.js";
4
- import { Image } from "./Image.js";
5
- import { MediaFile } from "./MediaFile.js";
6
- import { Metafield, parseMetafield, parseMetafieldValue } from "./Metafield.js";
7
- import { ModelViewer } from "./ModelViewer.js";
8
- import { Money } from "./Money.js";
9
- import { ProductPrice } from "./ProductPrice.js";
10
- import { ProductProvider, useProduct } from "./ProductProvider.js";
11
- import { ShopifyProvider, useShop } from "./ShopifyProvider.js";
12
- import { ShopPayButton } from "./ShopPayButton.js";
13
- import { createStorefrontClient } from "./storefront-client.js";
14
- import { useMoney } from "./useMoney.js";
15
- import { Video } from "./Video.js";
16
- export {
17
- CartProvider,
18
- ExternalVideo,
19
- Image,
20
- MediaFile,
21
- Metafield,
22
- ModelViewer,
23
- Money,
24
- ProductPrice,
25
- ProductProvider,
26
- ShopPayButton,
27
- ShopifyProvider,
28
- Video,
29
- createStorefrontClient,
30
- flattenConnection,
31
- parseMetafield,
32
- parseMetafieldValue,
33
- useCart,
34
- useMoney,
35
- useProduct,
36
- useShop
37
- };
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const CartProvider = require("./CartProvider.js");
4
+ const ExternalVideo = require("./ExternalVideo.js");
5
+ const flattenConnection = require("./flatten-connection.js");
6
+ const Image = require("./Image.js");
7
+ const MediaFile = require("./MediaFile.js");
8
+ const Metafield = require("./Metafield.js");
9
+ const ModelViewer = require("./ModelViewer.js");
10
+ const Money = require("./Money.js");
11
+ const ProductPrice = require("./ProductPrice.js");
12
+ const ProductProvider = require("./ProductProvider.js");
13
+ const ShopifyProvider = require("./ShopifyProvider.js");
14
+ const ShopPayButton = require("./ShopPayButton.js");
15
+ const storefrontClient = require("./storefront-client.js");
16
+ const useMoney = require("./useMoney.js");
17
+ const Video = require("./Video.js");
18
+ exports.CartProvider = CartProvider.CartProvider;
19
+ exports.useCart = CartProvider.useCart;
20
+ exports.ExternalVideo = ExternalVideo.ExternalVideo;
21
+ exports.flattenConnection = flattenConnection.flattenConnection;
22
+ exports.Image = Image.Image;
23
+ exports.MediaFile = MediaFile.MediaFile;
24
+ exports.Metafield = Metafield.Metafield;
25
+ exports.parseMetafield = Metafield.parseMetafield;
26
+ exports.parseMetafieldValue = Metafield.parseMetafieldValue;
27
+ exports.ModelViewer = ModelViewer.ModelViewer;
28
+ exports.Money = Money.Money;
29
+ exports.ProductPrice = ProductPrice.ProductPrice;
30
+ exports.ProductProvider = ProductProvider.ProductProvider;
31
+ exports.useProduct = ProductProvider.useProduct;
32
+ exports.ShopifyProvider = ShopifyProvider.ShopifyProvider;
33
+ exports.useShop = ShopifyProvider.useShop;
34
+ exports.ShopPayButton = ShopPayButton.ShopPayButton;
35
+ exports.createStorefrontClient = storefrontClient.createStorefrontClient;
36
+ exports.useMoney = useMoney.useMoney;
37
+ exports.Video = Video.Video;
38
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,38 @@
1
+ import { CartProvider, useCart } from "./CartProvider.mjs";
2
+ import { ExternalVideo } from "./ExternalVideo.mjs";
3
+ import { flattenConnection } from "./flatten-connection.mjs";
4
+ import { Image } from "./Image.mjs";
5
+ import { MediaFile } from "./MediaFile.mjs";
6
+ import { Metafield, parseMetafield, parseMetafieldValue } from "./Metafield.mjs";
7
+ import { ModelViewer } from "./ModelViewer.mjs";
8
+ import { Money } from "./Money.mjs";
9
+ import { ProductPrice } from "./ProductPrice.mjs";
10
+ import { ProductProvider, useProduct } from "./ProductProvider.mjs";
11
+ import { ShopifyProvider, useShop } from "./ShopifyProvider.mjs";
12
+ import { ShopPayButton } from "./ShopPayButton.mjs";
13
+ import { createStorefrontClient } from "./storefront-client.mjs";
14
+ import { useMoney } from "./useMoney.mjs";
15
+ import { Video } from "./Video.mjs";
16
+ export {
17
+ CartProvider,
18
+ ExternalVideo,
19
+ Image,
20
+ MediaFile,
21
+ Metafield,
22
+ ModelViewer,
23
+ Money,
24
+ ProductPrice,
25
+ ProductProvider,
26
+ ShopPayButton,
27
+ ShopifyProvider,
28
+ Video,
29
+ createStorefrontClient,
30
+ flattenConnection,
31
+ parseMetafield,
32
+ parseMetafieldValue,
33
+ useCart,
34
+ useMoney,
35
+ useProduct,
36
+ useShop
37
+ };
38
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -1,4 +1,6 @@
1
- import { useState, useEffect } from "react";
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const require$$0 = require("react");
2
4
  const SCRIPTS_LOADED = {};
3
5
  function loadScript(src, options) {
4
6
  const isScriptLoaded = SCRIPTS_LOADED[src];
@@ -29,9 +31,9 @@ function loadScript(src, options) {
29
31
  return promise;
30
32
  }
31
33
  function useLoadScript(url, options) {
32
- const [status, setStatus] = useState("loading");
34
+ const [status, setStatus] = require$$0.useState("loading");
33
35
  const stringifiedOptions = JSON.stringify(options);
34
- useEffect(() => {
36
+ require$$0.useEffect(() => {
35
37
  async function loadScriptWrapper() {
36
38
  try {
37
39
  setStatus("loading");
@@ -45,8 +47,6 @@ function useLoadScript(url, options) {
45
47
  }, [url, stringifiedOptions, options]);
46
48
  return status;
47
49
  }
48
- export {
49
- loadScript,
50
- useLoadScript
51
- };
50
+ exports.loadScript = loadScript;
51
+ exports.useLoadScript = useLoadScript;
52
52
  //# sourceMappingURL=load-script.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-script.js","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,EACR;AAED,QAAMC,UAAU,IAAIC,QAAiB,CAACC,SAASC,WAAW;AAClDC,UAAAA,SAASC,SAASC,cAAc,QAAvB;AACf,QAAIR,mCAASS,QAAQ;AACnBH,aAAOI,OAAO;AAAA,IAAA,OACT;AACLJ,aAAOI,OAAO;AAAA,IACf;AACDJ,WAAOP,MAAMA;AACbO,WAAOK,SAAS,MAAM;AACpBP,cAAQ,IAAD;AAAA,IAAA;AAETE,WAAOM,UAAU,MAAM;AACrBP,aAAO,KAAD;AAAA,IAAA;AAEJL,SAAAA,mCAASa,QAAO,QAAQ;AACjBC,eAAAA,KAAKC,YAAYT,MAA1B;AAAA,IAAA,OACK;AACIU,eAAAA,KAAKD,YAAYT,MAA1B;AAAA,IACD;AAAA,EAAA,CAlBa;AAqBhBT,iBAAeE,OAAOG;AAEfA,SAAAA;AACR;AAOee,SAAAA,cACdC,KACAlB,SACa;AACb,QAAM,CAACmB,QAAQC,SAAT,IAAsBC,SAAsB,SAAd;AAC9BC,QAAAA,qBAAqBC,KAAKC,UAAUxB,OAAf;AAE3ByB,YAAU,MAAM;AACd,mBAAeC,oBAAoB;AAC7B,UAAA;AACFN,kBAAU,SAAD;AACHtB,cAAAA,WAAWoB,KAAKlB,OAAN;AAChBoB,kBAAU,MAAD;AAAA,eACFO;AACPP,kBAAU,OAAD;AAAA,MACV;AAAA,IACF;AAEgB;EAChB,GAAA,CAACF,KAAKI,oBAAoBtB,OAA1B,CAZM;AAcFmB,SAAAA;AACR;"}
1
+ {"version":3,"file":"load-script.js","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,EACR;AAED,QAAMC,UAAU,IAAIC,QAAiB,CAACC,SAASC,WAAW;AAClDC,UAAAA,SAASC,SAASC,cAAc,QAAvB;AACf,QAAIR,mCAASS,QAAQ;AACnBH,aAAOI,OAAO;AAAA,IAAA,OACT;AACLJ,aAAOI,OAAO;AAAA,IACf;AACDJ,WAAOP,MAAMA;AACbO,WAAOK,SAAS,MAAM;AACpBP,cAAQ,IAAD;AAAA,IAAA;AAETE,WAAOM,UAAU,MAAM;AACrBP,aAAO,KAAD;AAAA,IAAA;AAEJL,SAAAA,mCAASa,QAAO,QAAQ;AACjBC,eAAAA,KAAKC,YAAYT,MAA1B;AAAA,IAAA,OACK;AACIU,eAAAA,KAAKD,YAAYT,MAA1B;AAAA,IACD;AAAA,EAAA,CAlBa;AAqBhBT,iBAAeE,OAAOG;AAEfA,SAAAA;AACR;AAOee,SAAAA,cACdC,KACAlB,SACa;AACb,QAAM,CAACmB,QAAQC,SAAT,IAAsBC,oBAAsB,SAAd;AAC9BC,QAAAA,qBAAqBC,KAAKC,UAAUxB,OAAf;AAE3ByB,aAAAA,UAAU,MAAM;AACd,mBAAeC,oBAAoB;AAC7B,UAAA;AACFN,kBAAU,SAAD;AACHtB,cAAAA,WAAWoB,KAAKlB,OAAN;AAChBoB,kBAAU,MAAD;AAAA,eACFO;AACPP,kBAAU,OAAD;AAAA,MACV;AAAA,IACF;AAEgB;EAChB,GAAA,CAACF,KAAKI,oBAAoBtB,OAA1B,CAZM;AAcFmB,SAAAA;AACR;;;"}
@@ -1,6 +1,4 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const require$$0 = require("react");
1
+ import { useState, useEffect } from "react";
4
2
  const SCRIPTS_LOADED = {};
5
3
  function loadScript(src, options) {
6
4
  const isScriptLoaded = SCRIPTS_LOADED[src];
@@ -31,9 +29,9 @@ function loadScript(src, options) {
31
29
  return promise;
32
30
  }
33
31
  function useLoadScript(url, options) {
34
- const [status, setStatus] = require$$0.useState("loading");
32
+ const [status, setStatus] = useState("loading");
35
33
  const stringifiedOptions = JSON.stringify(options);
36
- require$$0.useEffect(() => {
34
+ useEffect(() => {
37
35
  async function loadScriptWrapper() {
38
36
  try {
39
37
  setStatus("loading");
@@ -47,6 +45,8 @@ function useLoadScript(url, options) {
47
45
  }, [url, stringifiedOptions, options]);
48
46
  return status;
49
47
  }
50
- exports.loadScript = loadScript;
51
- exports.useLoadScript = useLoadScript;
52
- //# sourceMappingURL=load-script.cjs.map
48
+ export {
49
+ loadScript,
50
+ useLoadScript
51
+ };
52
+ //# sourceMappingURL=load-script.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-script.cjs","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,EACR;AAED,QAAMC,UAAU,IAAIC,QAAiB,CAACC,SAASC,WAAW;AAClDC,UAAAA,SAASC,SAASC,cAAc,QAAvB;AACf,QAAIR,mCAASS,QAAQ;AACnBH,aAAOI,OAAO;AAAA,IAAA,OACT;AACLJ,aAAOI,OAAO;AAAA,IACf;AACDJ,WAAOP,MAAMA;AACbO,WAAOK,SAAS,MAAM;AACpBP,cAAQ,IAAD;AAAA,IAAA;AAETE,WAAOM,UAAU,MAAM;AACrBP,aAAO,KAAD;AAAA,IAAA;AAEJL,SAAAA,mCAASa,QAAO,QAAQ;AACjBC,eAAAA,KAAKC,YAAYT,MAA1B;AAAA,IAAA,OACK;AACIU,eAAAA,KAAKD,YAAYT,MAA1B;AAAA,IACD;AAAA,EAAA,CAlBa;AAqBhBT,iBAAeE,OAAOG;AAEfA,SAAAA;AACR;AAOee,SAAAA,cACdC,KACAlB,SACa;AACb,QAAM,CAACmB,QAAQC,SAAT,IAAsBC,oBAAsB,SAAd;AAC9BC,QAAAA,qBAAqBC,KAAKC,UAAUxB,OAAf;AAE3ByB,aAAAA,UAAU,MAAM;AACd,mBAAeC,oBAAoB;AAC7B,UAAA;AACFN,kBAAU,SAAD;AACHtB,cAAAA,WAAWoB,KAAKlB,OAAN;AAChBoB,kBAAU,MAAD;AAAA,eACFO;AACPP,kBAAU,OAAD;AAAA,MACV;AAAA,IACF;AAEgB;EAChB,GAAA,CAACF,KAAKI,oBAAoBtB,OAA1B,CAZM;AAcFmB,SAAAA;AACR;;;"}
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,EACR;AAED,QAAMC,UAAU,IAAIC,QAAiB,CAACC,SAASC,WAAW;AAClDC,UAAAA,SAASC,SAASC,cAAc,QAAvB;AACf,QAAIR,mCAASS,QAAQ;AACnBH,aAAOI,OAAO;AAAA,IAAA,OACT;AACLJ,aAAOI,OAAO;AAAA,IACf;AACDJ,WAAOP,MAAMA;AACbO,WAAOK,SAAS,MAAM;AACpBP,cAAQ,IAAD;AAAA,IAAA;AAETE,WAAOM,UAAU,MAAM;AACrBP,aAAO,KAAD;AAAA,IAAA;AAEJL,SAAAA,mCAASa,QAAO,QAAQ;AACjBC,eAAAA,KAAKC,YAAYT,MAA1B;AAAA,IAAA,OACK;AACIU,eAAAA,KAAKD,YAAYT,MAA1B;AAAA,IACD;AAAA,EAAA,CAlBa;AAqBhBT,iBAAeE,OAAOG;AAEfA,SAAAA;AACR;AAOee,SAAAA,cACdC,KACAlB,SACa;AACb,QAAM,CAACmB,QAAQC,SAAT,IAAsBC,SAAsB,SAAd;AAC9BC,QAAAA,qBAAqBC,KAAKC,UAAUxB,OAAf;AAE3ByB,YAAU,MAAM;AACd,mBAAeC,oBAAoB;AAC7B,UAAA;AACFN,kBAAU,SAAD;AACHtB,cAAAA,WAAWoB,KAAKlB,OAAN;AAChBoB,kBAAU,MAAD;AAAA,eACFO;AACPP,kBAAU,OAAD;AAAA,MACV;AAAA,IACF;AAEgB;EAChB,GAAA,CAACF,KAAKI,oBAAoBtB,OAA1B,CAZM;AAcFmB,SAAAA;AACR;"}
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
1
3
  /*! *****************************************************************************
2
4
  Copyright (c) Microsoft Corporation.
3
5
 
@@ -12,13 +14,13 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
14
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
15
  PERFORMANCE OF THIS SOFTWARE.
14
16
  ***************************************************************************** */
15
- function t(t2, n2) {
17
+ function t(t2, n) {
16
18
  var e2 = "function" == typeof Symbol && t2[Symbol.iterator];
17
19
  if (!e2)
18
20
  return t2;
19
21
  var r2, i2, o2 = e2.call(t2), a2 = [];
20
22
  try {
21
- for (; (void 0 === n2 || n2-- > 0) && !(r2 = o2.next()).done; )
23
+ for (; (void 0 === n || n-- > 0) && !(r2 = o2.next()).done; )
22
24
  a2.push(r2.value);
23
25
  } catch (t3) {
24
26
  i2 = { error: t3 };
@@ -32,10 +34,10 @@ function t(t2, n2) {
32
34
  }
33
35
  return a2;
34
36
  }
35
- var n;
37
+ exports.InterpreterStatus = void 0;
36
38
  !function(t2) {
37
39
  t2[t2.NotStarted = 0] = "NotStarted", t2[t2.Running = 1] = "Running", t2[t2.Stopped = 2] = "Stopped";
38
- }(n || (n = {}));
40
+ }(exports.InterpreterStatus || (exports.InterpreterStatus = {}));
39
41
  var e = { type: "xstate.init" };
40
42
  function r(t2) {
41
43
  return void 0 === t2 ? [] : [].concat(t2);
@@ -43,58 +45,58 @@ function r(t2) {
43
45
  function i(t2) {
44
46
  return { type: "xstate.assign", assignment: t2 };
45
47
  }
46
- function o(t2, n2) {
47
- return "string" == typeof (t2 = "string" == typeof t2 && n2 && n2[t2] ? n2[t2] : t2) ? { type: t2 } : "function" == typeof t2 ? { type: t2.name, exec: t2 } : t2;
48
+ function o(t2, n) {
49
+ return "string" == typeof (t2 = "string" == typeof t2 && n && n[t2] ? n[t2] : t2) ? { type: t2 } : "function" == typeof t2 ? { type: t2.name, exec: t2 } : t2;
48
50
  }
49
51
  function a(t2) {
50
- return function(n2) {
51
- return t2 === n2;
52
+ return function(n) {
53
+ return t2 === n;
52
54
  };
53
55
  }
54
56
  function u(t2) {
55
57
  return "string" == typeof t2 ? { type: t2 } : t2;
56
58
  }
57
- function c(t2, n2) {
58
- return { value: t2, context: n2, actions: [], changed: false, matches: a(t2) };
59
+ function c(t2, n) {
60
+ return { value: t2, context: n, actions: [], changed: false, matches: a(t2) };
59
61
  }
60
- function f(t2, n2, e2) {
61
- var r2 = n2, i2 = false;
62
+ function f(t2, n, e2) {
63
+ var r2 = n, i2 = false;
62
64
  return [t2.filter(function(t3) {
63
65
  if ("xstate.assign" === t3.type) {
64
66
  i2 = true;
65
- var n3 = Object.assign({}, r2);
66
- return "function" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(i3) {
67
- n3[i3] = "function" == typeof t3.assignment[i3] ? t3.assignment[i3](r2, e2) : t3.assignment[i3];
68
- }), r2 = n3, false;
67
+ var n2 = Object.assign({}, r2);
68
+ return "function" == typeof t3.assignment ? n2 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(i3) {
69
+ n2[i3] = "function" == typeof t3.assignment[i3] ? t3.assignment[i3](r2, e2) : t3.assignment[i3];
70
+ }), r2 = n2, false;
69
71
  }
70
72
  return true;
71
73
  }), r2, i2];
72
74
  }
73
- function s(n2, i2) {
75
+ function s(n, i2) {
74
76
  void 0 === i2 && (i2 = {});
75
- var s2 = t(f(r(n2.states[n2.initial].entry).map(function(t2) {
77
+ var s2 = t(f(r(n.states[n.initial].entry).map(function(t2) {
76
78
  return o(t2, i2.actions);
77
- }), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: i2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, i3) {
78
- var s3, l3, v3 = "string" == typeof e2 ? { value: e2, context: n2.context } : e2, p = v3.value, g = v3.context, d = u(i3), x = n2.states[p];
79
+ }), n.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n, _options: i2, initialState: { value: n.initial, actions: l2, context: v2, matches: a(n.initial) }, transition: function(e2, i3) {
80
+ var s3, l3, v3 = "string" == typeof e2 ? { value: e2, context: n.context } : e2, p = v3.value, g = v3.context, d = u(i3), x = n.states[p];
79
81
  if (x.on) {
80
82
  var m = r(x.on[d.type]);
81
83
  try {
82
84
  for (var h = function(t2) {
83
- var n3 = "function" == typeof Symbol && Symbol.iterator, e3 = n3 && t2[n3], r2 = 0;
85
+ var n2 = "function" == typeof Symbol && Symbol.iterator, e3 = n2 && t2[n2], r2 = 0;
84
86
  if (e3)
85
87
  return e3.call(t2);
86
88
  if (t2 && "number" == typeof t2.length)
87
89
  return { next: function() {
88
90
  return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };
89
91
  } };
90
- throw new TypeError(n3 ? "Object is not iterable." : "Symbol.iterator is not defined.");
92
+ throw new TypeError(n2 ? "Object is not iterable." : "Symbol.iterator is not defined.");
91
93
  }(m), b = h.next(); !b.done; b = h.next()) {
92
94
  var S = b.value;
93
95
  if (void 0 === S)
94
96
  return c(p, g);
95
97
  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() {
96
98
  return true;
97
- } : N, _ = void 0 === j, k = null != j ? j : p, T = n2.states[k];
99
+ } : N, _ = void 0 === j, k = null != j ? j : p, T = n.states[k];
98
100
  if (O(g, d)) {
99
101
  var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function(t2) {
100
102
  return t2;
@@ -119,15 +121,15 @@ function s(n2, i2) {
119
121
  } };
120
122
  return y;
121
123
  }
122
- var l = function(t2, n2) {
124
+ var l = function(t2, n) {
123
125
  return t2.actions.forEach(function(e2) {
124
126
  var r2 = e2.exec;
125
- return r2 && r2(t2.context, n2);
127
+ return r2 && r2(t2.context, n);
126
128
  });
127
129
  };
128
130
  function v(t2) {
129
- var r2 = t2.initialState, i2 = n.NotStarted, o2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {
130
- i2 === n.Running && (r2 = t2.transition(r2, e2), l(r2, u(e2)), o2.forEach(function(t3) {
131
+ var r2 = t2.initialState, i2 = exports.InterpreterStatus.NotStarted, o2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {
132
+ i2 === exports.InterpreterStatus.Running && (r2 = t2.transition(r2, e2), l(r2, u(e2)), o2.forEach(function(t3) {
131
133
  return t3(r2);
132
134
  }));
133
135
  }, subscribe: function(t3) {
@@ -140,9 +142,9 @@ function v(t2) {
140
142
  r2 = { value: u2.value, actions: [], context: u2.context, matches: a(u2.value) };
141
143
  } else
142
144
  r2 = t2.initialState;
143
- return i2 = n.Running, l(r2, e), c2;
145
+ return i2 = exports.InterpreterStatus.Running, l(r2, e), c2;
144
146
  }, stop: function() {
145
- return i2 = n.Stopped, o2.clear(), c2;
147
+ return i2 = exports.InterpreterStatus.Stopped, o2.clear(), c2;
146
148
  }, get state() {
147
149
  return r2;
148
150
  }, get status() {
@@ -150,10 +152,7 @@ function v(t2) {
150
152
  } };
151
153
  return c2;
152
154
  }
153
- export {
154
- n as InterpreterStatus,
155
- i as assign,
156
- s as createMachine,
157
- v as interpret
158
- };
155
+ exports.assign = i;
156
+ exports.createMachine = s;
157
+ exports.interpret = v;
159
158
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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;AAAU,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,KAAG,cAAaA,GAAEA,GAAE,UAAQ,KAAG,WAAUA,GAAEA,GAAE,UAAQ,KAAG;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,MAAGC,GAAED,MAAGA,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,MAAG,cAAY,OAAOJ,GAAE,WAAWI,MAAGJ,GAAE,WAAWI,IAAGD,IAAED,EAAC,IAAEF,GAAE,WAAWI;AAAA,MAAE,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,SAAS,KAAK,EAAE,IAAK,SAASD,IAAE;AAAC,WAAO,EAAEA,IAAEI,GAAE,OAAO;AAAA,EAAC,CAAG,GAACH,GAAE,SAAQ,CAAC,GAAE,CAAC,GAAEO,KAAED,GAAE,IAAGE,KAAEF,GAAE,IAAG,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;AAAG,QAAG,EAAE,IAAG;AAAC,UAAI,IAAE,EAAE,EAAE,GAAG,EAAE,KAAK;AAAE,UAAG;AAAC,iBAAQ,IAAE,SAASD,IAAE;AAAC,cAAIC,KAAE,cAAY,OAAO,UAAQ,OAAO,UAASC,KAAED,MAAGD,GAAEC,KAAGE,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,OAAK,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;AAAG,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,IAAG,IAAE,EAAE,IAAG,IAAE,EAAE,IAAG,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;"}
1
+ {"version":3,"file":"index.js","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","e","r","i","o","a","n","s","l","v","c","u"],"mappings":"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"}