@shopify/hydrogen-react 2022.10.7 → 2023.1.4

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 (612) hide show
  1. package/README.md +41 -45
  2. package/dist/browser-dev/AddToCartButton.mjs +43 -40
  3. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  4. package/dist/browser-dev/BaseButton.mjs +13 -15
  5. package/dist/browser-dev/BaseButton.mjs.map +1 -1
  6. package/dist/browser-dev/BuyNowButton.mjs +19 -17
  7. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  8. package/dist/browser-dev/CartCheckoutButton.mjs +12 -15
  9. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  10. package/dist/browser-dev/CartCost.mjs +25 -0
  11. package/dist/browser-dev/CartCost.mjs.map +1 -0
  12. package/dist/browser-dev/CartLinePrice.mjs +18 -0
  13. package/dist/browser-dev/CartLinePrice.mjs.map +1 -0
  14. package/dist/browser-dev/CartLineProvider.mjs +19 -0
  15. package/dist/browser-dev/CartLineProvider.mjs.map +1 -0
  16. package/dist/browser-dev/CartProvider.mjs +73 -67
  17. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  18. package/dist/browser-dev/ExternalVideo.mjs +13 -11
  19. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  20. package/dist/browser-dev/Image.mjs +41 -30
  21. package/dist/browser-dev/Image.mjs.map +1 -1
  22. package/dist/browser-dev/MediaFile.mjs +29 -21
  23. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  24. package/dist/browser-dev/ModelViewer.mjs +138 -76
  25. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  26. package/dist/browser-dev/Money.mjs +12 -9
  27. package/dist/browser-dev/Money.mjs.map +1 -1
  28. package/dist/browser-dev/ProductPrice.mjs +12 -17
  29. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  30. package/dist/browser-dev/ProductProvider.mjs +102 -73
  31. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  32. package/dist/browser-dev/ShopPayButton.mjs +14 -24
  33. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  34. package/dist/browser-dev/ShopifyProvider.mjs +22 -38
  35. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  36. package/dist/browser-dev/Video.mjs +30 -21
  37. package/dist/browser-dev/Video.mjs.map +1 -1
  38. package/dist/browser-dev/_virtual/index.mjs +11 -2
  39. package/dist/browser-dev/_virtual/index.mjs.map +1 -1
  40. package/dist/browser-dev/_virtual/with-selector.mjs +11 -2
  41. package/dist/browser-dev/_virtual/with-selector.mjs.map +1 -1
  42. package/dist/browser-dev/analytics-constants.mjs +43 -0
  43. package/dist/browser-dev/analytics-constants.mjs.map +1 -0
  44. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  45. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  46. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  47. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  48. package/dist/browser-dev/analytics-utils.mjs +49 -0
  49. package/dist/browser-dev/analytics-utils.mjs.map +1 -0
  50. package/dist/browser-dev/analytics.mjs +159 -0
  51. package/dist/browser-dev/analytics.mjs.map +1 -0
  52. package/dist/browser-dev/cart-hooks.mjs +29 -34
  53. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  54. package/dist/browser-dev/cart-queries.mjs +50 -28
  55. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  56. package/dist/browser-dev/codegen.helpers.mjs +1 -0
  57. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  58. package/dist/browser-dev/cookies-utils.mjs +50 -0
  59. package/dist/browser-dev/cookies-utils.mjs.map +1 -0
  60. package/dist/browser-dev/flatten-connection.mjs +7 -5
  61. package/dist/browser-dev/flatten-connection.mjs.map +1 -1
  62. package/dist/browser-dev/image-size.mjs +8 -8
  63. package/dist/browser-dev/image-size.mjs.map +1 -1
  64. package/dist/browser-dev/index.mjs +20 -6
  65. package/dist/browser-dev/index.mjs.map +1 -1
  66. package/dist/browser-dev/load-script.mjs.map +1 -1
  67. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  68. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  69. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  70. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  71. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  72. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  73. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  74. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  75. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  76. package/dist/browser-dev/{metafield-parser.mjs → parse-metafield.mjs} +20 -12
  77. package/dist/browser-dev/parse-metafield.mjs.map +1 -0
  78. package/dist/browser-dev/storefront-api-constants.mjs +1 -1
  79. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  80. package/dist/browser-dev/storefront-client.mjs +19 -20
  81. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  82. package/dist/browser-dev/useCartAPIStateMachine.mjs +111 -80
  83. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  84. package/dist/browser-dev/useCartActions.mjs +150 -109
  85. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  86. package/dist/browser-dev/useMoney.mjs +62 -36
  87. package/dist/browser-dev/useMoney.mjs.map +1 -1
  88. package/dist/browser-dev/useShopifyCookies.mjs +41 -0
  89. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -0
  90. package/dist/browser-prod/AddToCartButton.mjs +43 -40
  91. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  92. package/dist/browser-prod/BaseButton.mjs +13 -15
  93. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  94. package/dist/browser-prod/BuyNowButton.mjs +19 -17
  95. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  96. package/dist/browser-prod/CartCheckoutButton.mjs +12 -15
  97. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  98. package/dist/browser-prod/CartCost.mjs +25 -0
  99. package/dist/browser-prod/CartCost.mjs.map +1 -0
  100. package/dist/browser-prod/CartLinePrice.mjs +18 -0
  101. package/dist/browser-prod/CartLinePrice.mjs.map +1 -0
  102. package/dist/browser-prod/CartLineProvider.mjs +19 -0
  103. package/dist/browser-prod/CartLineProvider.mjs.map +1 -0
  104. package/dist/browser-prod/CartProvider.mjs +73 -67
  105. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  106. package/dist/browser-prod/ExternalVideo.mjs +13 -11
  107. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  108. package/dist/browser-prod/Image.mjs +35 -28
  109. package/dist/browser-prod/Image.mjs.map +1 -1
  110. package/dist/browser-prod/MediaFile.mjs +29 -21
  111. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  112. package/dist/browser-prod/ModelViewer.mjs +135 -75
  113. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  114. package/dist/browser-prod/Money.mjs +12 -9
  115. package/dist/browser-prod/Money.mjs.map +1 -1
  116. package/dist/browser-prod/ProductPrice.mjs +12 -17
  117. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  118. package/dist/browser-prod/ProductProvider.mjs +102 -73
  119. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  120. package/dist/browser-prod/ShopPayButton.mjs +14 -24
  121. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  122. package/dist/browser-prod/ShopifyProvider.mjs +22 -32
  123. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  124. package/dist/browser-prod/Video.mjs +30 -21
  125. package/dist/browser-prod/Video.mjs.map +1 -1
  126. package/dist/browser-prod/_virtual/index.mjs +11 -2
  127. package/dist/browser-prod/_virtual/index.mjs.map +1 -1
  128. package/dist/browser-prod/_virtual/with-selector.mjs +11 -2
  129. package/dist/browser-prod/_virtual/with-selector.mjs.map +1 -1
  130. package/dist/browser-prod/analytics-constants.mjs +43 -0
  131. package/dist/browser-prod/analytics-constants.mjs.map +1 -0
  132. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  133. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  134. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  135. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  136. package/dist/browser-prod/analytics-utils.mjs +49 -0
  137. package/dist/browser-prod/analytics-utils.mjs.map +1 -0
  138. package/dist/browser-prod/analytics.mjs +158 -0
  139. package/dist/browser-prod/analytics.mjs.map +1 -0
  140. package/dist/browser-prod/cart-hooks.mjs +29 -34
  141. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  142. package/dist/browser-prod/cart-queries.mjs +50 -28
  143. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  144. package/dist/browser-prod/codegen.helpers.mjs +1 -0
  145. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  146. package/dist/browser-prod/cookies-utils.mjs +50 -0
  147. package/dist/browser-prod/cookies-utils.mjs.map +1 -0
  148. package/dist/browser-prod/flatten-connection.mjs +7 -5
  149. package/dist/browser-prod/flatten-connection.mjs.map +1 -1
  150. package/dist/browser-prod/image-size.mjs +8 -8
  151. package/dist/browser-prod/image-size.mjs.map +1 -1
  152. package/dist/browser-prod/index.mjs +20 -6
  153. package/dist/browser-prod/index.mjs.map +1 -1
  154. package/dist/browser-prod/load-script.mjs.map +1 -1
  155. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  156. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  157. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  158. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  159. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  160. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  161. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  162. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  163. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  164. package/dist/browser-prod/{metafield-parser.mjs → parse-metafield.mjs} +20 -12
  165. package/dist/browser-prod/parse-metafield.mjs.map +1 -0
  166. package/dist/browser-prod/storefront-api-constants.mjs +1 -1
  167. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  168. package/dist/browser-prod/storefront-client.mjs +19 -20
  169. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  170. package/dist/browser-prod/useCartAPIStateMachine.mjs +111 -80
  171. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  172. package/dist/browser-prod/useCartActions.mjs +150 -109
  173. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  174. package/dist/browser-prod/useMoney.mjs +62 -36
  175. package/dist/browser-prod/useMoney.mjs.map +1 -1
  176. package/dist/browser-prod/useShopifyCookies.mjs +41 -0
  177. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -0
  178. package/dist/node-dev/AddToCartButton.js +44 -41
  179. package/dist/node-dev/AddToCartButton.js.map +1 -1
  180. package/dist/node-dev/AddToCartButton.mjs +43 -40
  181. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  182. package/dist/node-dev/BaseButton.js +14 -16
  183. package/dist/node-dev/BaseButton.js.map +1 -1
  184. package/dist/node-dev/BaseButton.mjs +13 -15
  185. package/dist/node-dev/BaseButton.mjs.map +1 -1
  186. package/dist/node-dev/BuyNowButton.js +20 -18
  187. package/dist/node-dev/BuyNowButton.js.map +1 -1
  188. package/dist/node-dev/BuyNowButton.mjs +19 -17
  189. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  190. package/dist/node-dev/CartCheckoutButton.js +13 -16
  191. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  192. package/dist/node-dev/CartCheckoutButton.mjs +12 -15
  193. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  194. package/dist/node-dev/CartCost.js +25 -0
  195. package/dist/node-dev/CartCost.js.map +1 -0
  196. package/dist/node-dev/CartCost.mjs +25 -0
  197. package/dist/node-dev/CartCost.mjs.map +1 -0
  198. package/dist/node-dev/CartLinePrice.js +18 -0
  199. package/dist/node-dev/CartLinePrice.js.map +1 -0
  200. package/dist/node-dev/CartLinePrice.mjs +18 -0
  201. package/dist/node-dev/CartLinePrice.mjs.map +1 -0
  202. package/dist/node-dev/CartLineProvider.js +19 -0
  203. package/dist/node-dev/CartLineProvider.js.map +1 -0
  204. package/dist/node-dev/CartLineProvider.mjs +19 -0
  205. package/dist/node-dev/CartLineProvider.mjs.map +1 -0
  206. package/dist/node-dev/CartProvider.js +74 -68
  207. package/dist/node-dev/CartProvider.js.map +1 -1
  208. package/dist/node-dev/CartProvider.mjs +73 -67
  209. package/dist/node-dev/CartProvider.mjs.map +1 -1
  210. package/dist/node-dev/ExternalVideo.js +14 -12
  211. package/dist/node-dev/ExternalVideo.js.map +1 -1
  212. package/dist/node-dev/ExternalVideo.mjs +13 -11
  213. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  214. package/dist/node-dev/Image.js +42 -31
  215. package/dist/node-dev/Image.js.map +1 -1
  216. package/dist/node-dev/Image.mjs +41 -30
  217. package/dist/node-dev/Image.mjs.map +1 -1
  218. package/dist/node-dev/MediaFile.js +30 -22
  219. package/dist/node-dev/MediaFile.js.map +1 -1
  220. package/dist/node-dev/MediaFile.mjs +29 -21
  221. package/dist/node-dev/MediaFile.mjs.map +1 -1
  222. package/dist/node-dev/ModelViewer.js +139 -77
  223. package/dist/node-dev/ModelViewer.js.map +1 -1
  224. package/dist/node-dev/ModelViewer.mjs +138 -76
  225. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  226. package/dist/node-dev/Money.js +13 -10
  227. package/dist/node-dev/Money.js.map +1 -1
  228. package/dist/node-dev/Money.mjs +12 -9
  229. package/dist/node-dev/Money.mjs.map +1 -1
  230. package/dist/node-dev/ProductPrice.js +13 -18
  231. package/dist/node-dev/ProductPrice.js.map +1 -1
  232. package/dist/node-dev/ProductPrice.mjs +12 -17
  233. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  234. package/dist/node-dev/ProductProvider.js +103 -74
  235. package/dist/node-dev/ProductProvider.js.map +1 -1
  236. package/dist/node-dev/ProductProvider.mjs +102 -73
  237. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  238. package/dist/node-dev/ShopPayButton.js +14 -24
  239. package/dist/node-dev/ShopPayButton.js.map +1 -1
  240. package/dist/node-dev/ShopPayButton.mjs +14 -24
  241. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  242. package/dist/node-dev/ShopifyProvider.js +23 -39
  243. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  244. package/dist/node-dev/ShopifyProvider.mjs +22 -38
  245. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  246. package/dist/node-dev/Video.js +31 -22
  247. package/dist/node-dev/Video.js.map +1 -1
  248. package/dist/node-dev/Video.mjs +30 -21
  249. package/dist/node-dev/Video.mjs.map +1 -1
  250. package/dist/node-dev/_virtual/index.js +11 -3
  251. package/dist/node-dev/_virtual/index.js.map +1 -1
  252. package/dist/node-dev/_virtual/index.mjs +11 -2
  253. package/dist/node-dev/_virtual/index.mjs.map +1 -1
  254. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.js +1 -1
  255. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  256. package/dist/node-dev/_virtual/with-selector.development.js +1 -1
  257. package/dist/node-dev/_virtual/with-selector.js +11 -3
  258. package/dist/node-dev/_virtual/with-selector.js.map +1 -1
  259. package/dist/node-dev/_virtual/with-selector.mjs +11 -2
  260. package/dist/node-dev/_virtual/with-selector.mjs.map +1 -1
  261. package/dist/node-dev/_virtual/with-selector.production.min.js +1 -1
  262. package/dist/node-dev/analytics-constants.js +43 -0
  263. package/dist/node-dev/analytics-constants.js.map +1 -0
  264. package/dist/node-dev/analytics-constants.mjs +43 -0
  265. package/dist/node-dev/analytics-constants.mjs.map +1 -0
  266. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  267. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  268. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  269. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  270. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +58 -0
  271. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  272. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  273. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  274. package/dist/node-dev/analytics-utils.js +49 -0
  275. package/dist/node-dev/analytics-utils.js.map +1 -0
  276. package/dist/node-dev/analytics-utils.mjs +49 -0
  277. package/dist/node-dev/analytics-utils.mjs.map +1 -0
  278. package/dist/node-dev/analytics.js +159 -0
  279. package/dist/node-dev/analytics.js.map +1 -0
  280. package/dist/node-dev/analytics.mjs +159 -0
  281. package/dist/node-dev/analytics.mjs.map +1 -0
  282. package/dist/node-dev/cart-constants.js +1 -1
  283. package/dist/node-dev/cart-hooks.js +29 -34
  284. package/dist/node-dev/cart-hooks.js.map +1 -1
  285. package/dist/node-dev/cart-hooks.mjs +29 -34
  286. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  287. package/dist/node-dev/cart-queries.js +51 -29
  288. package/dist/node-dev/cart-queries.js.map +1 -1
  289. package/dist/node-dev/cart-queries.mjs +50 -28
  290. package/dist/node-dev/cart-queries.mjs.map +1 -1
  291. package/dist/node-dev/codegen.helpers.js +2 -1
  292. package/dist/node-dev/codegen.helpers.js.map +1 -1
  293. package/dist/node-dev/codegen.helpers.mjs +1 -0
  294. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  295. package/dist/node-dev/cookies-utils.js +50 -0
  296. package/dist/node-dev/cookies-utils.js.map +1 -0
  297. package/dist/node-dev/cookies-utils.mjs +50 -0
  298. package/dist/node-dev/cookies-utils.mjs.map +1 -0
  299. package/dist/node-dev/flatten-connection.js +8 -6
  300. package/dist/node-dev/flatten-connection.js.map +1 -1
  301. package/dist/node-dev/flatten-connection.mjs +7 -5
  302. package/dist/node-dev/flatten-connection.mjs.map +1 -1
  303. package/dist/node-dev/image-size.js +9 -9
  304. package/dist/node-dev/image-size.js.map +1 -1
  305. package/dist/node-dev/image-size.mjs +8 -8
  306. package/dist/node-dev/image-size.mjs.map +1 -1
  307. package/dist/node-dev/index.js +21 -7
  308. package/dist/node-dev/index.js.map +1 -1
  309. package/dist/node-dev/index.mjs +20 -6
  310. package/dist/node-dev/index.mjs.map +1 -1
  311. package/dist/node-dev/load-script.js +1 -1
  312. package/dist/node-dev/load-script.js.map +1 -1
  313. package/dist/node-dev/load-script.mjs.map +1 -1
  314. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +1 -1
  315. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
  316. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  317. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +2 -2
  318. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
  319. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  320. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  321. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js +2 -4
  322. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  323. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  324. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  325. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  326. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  327. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  328. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  329. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  330. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  331. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  332. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  333. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  334. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  335. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +4 -4
  336. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  337. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  338. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  339. package/dist/node-dev/{metafield-parser.js → parse-metafield.js} +21 -13
  340. package/dist/node-dev/parse-metafield.js.map +1 -0
  341. package/dist/node-dev/{metafield-parser.mjs → parse-metafield.mjs} +20 -12
  342. package/dist/node-dev/parse-metafield.mjs.map +1 -0
  343. package/dist/node-dev/storefront-api-constants.js +2 -2
  344. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  345. package/dist/node-dev/storefront-api-constants.mjs +1 -1
  346. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  347. package/dist/node-dev/storefront-client.js +20 -21
  348. package/dist/node-dev/storefront-client.js.map +1 -1
  349. package/dist/node-dev/storefront-client.mjs +19 -20
  350. package/dist/node-dev/storefront-client.mjs.map +1 -1
  351. package/dist/node-dev/useCartAPIStateMachine.js +112 -81
  352. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  353. package/dist/node-dev/useCartAPIStateMachine.mjs +111 -80
  354. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  355. package/dist/node-dev/useCartActions.js +151 -110
  356. package/dist/node-dev/useCartActions.js.map +1 -1
  357. package/dist/node-dev/useCartActions.mjs +150 -109
  358. package/dist/node-dev/useCartActions.mjs.map +1 -1
  359. package/dist/node-dev/useMoney.js +63 -37
  360. package/dist/node-dev/useMoney.js.map +1 -1
  361. package/dist/node-dev/useMoney.mjs +62 -36
  362. package/dist/node-dev/useMoney.mjs.map +1 -1
  363. package/dist/node-dev/useShopifyCookies.js +41 -0
  364. package/dist/node-dev/useShopifyCookies.js.map +1 -0
  365. package/dist/node-dev/useShopifyCookies.mjs +41 -0
  366. package/dist/node-dev/useShopifyCookies.mjs.map +1 -0
  367. package/dist/node-prod/AddToCartButton.js +44 -41
  368. package/dist/node-prod/AddToCartButton.js.map +1 -1
  369. package/dist/node-prod/AddToCartButton.mjs +43 -40
  370. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  371. package/dist/node-prod/BaseButton.js +14 -16
  372. package/dist/node-prod/BaseButton.js.map +1 -1
  373. package/dist/node-prod/BaseButton.mjs +13 -15
  374. package/dist/node-prod/BaseButton.mjs.map +1 -1
  375. package/dist/node-prod/BuyNowButton.js +20 -18
  376. package/dist/node-prod/BuyNowButton.js.map +1 -1
  377. package/dist/node-prod/BuyNowButton.mjs +19 -17
  378. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  379. package/dist/node-prod/CartCheckoutButton.js +13 -16
  380. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  381. package/dist/node-prod/CartCheckoutButton.mjs +12 -15
  382. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  383. package/dist/node-prod/CartCost.js +25 -0
  384. package/dist/node-prod/CartCost.js.map +1 -0
  385. package/dist/node-prod/CartCost.mjs +25 -0
  386. package/dist/node-prod/CartCost.mjs.map +1 -0
  387. package/dist/node-prod/CartLinePrice.js +18 -0
  388. package/dist/node-prod/CartLinePrice.js.map +1 -0
  389. package/dist/node-prod/CartLinePrice.mjs +18 -0
  390. package/dist/node-prod/CartLinePrice.mjs.map +1 -0
  391. package/dist/node-prod/CartLineProvider.js +19 -0
  392. package/dist/node-prod/CartLineProvider.js.map +1 -0
  393. package/dist/node-prod/CartLineProvider.mjs +19 -0
  394. package/dist/node-prod/CartLineProvider.mjs.map +1 -0
  395. package/dist/node-prod/CartProvider.js +74 -68
  396. package/dist/node-prod/CartProvider.js.map +1 -1
  397. package/dist/node-prod/CartProvider.mjs +73 -67
  398. package/dist/node-prod/CartProvider.mjs.map +1 -1
  399. package/dist/node-prod/ExternalVideo.js +14 -12
  400. package/dist/node-prod/ExternalVideo.js.map +1 -1
  401. package/dist/node-prod/ExternalVideo.mjs +13 -11
  402. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  403. package/dist/node-prod/Image.js +36 -29
  404. package/dist/node-prod/Image.js.map +1 -1
  405. package/dist/node-prod/Image.mjs +35 -28
  406. package/dist/node-prod/Image.mjs.map +1 -1
  407. package/dist/node-prod/MediaFile.js +30 -22
  408. package/dist/node-prod/MediaFile.js.map +1 -1
  409. package/dist/node-prod/MediaFile.mjs +29 -21
  410. package/dist/node-prod/MediaFile.mjs.map +1 -1
  411. package/dist/node-prod/ModelViewer.js +136 -76
  412. package/dist/node-prod/ModelViewer.js.map +1 -1
  413. package/dist/node-prod/ModelViewer.mjs +135 -75
  414. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  415. package/dist/node-prod/Money.js +13 -10
  416. package/dist/node-prod/Money.js.map +1 -1
  417. package/dist/node-prod/Money.mjs +12 -9
  418. package/dist/node-prod/Money.mjs.map +1 -1
  419. package/dist/node-prod/ProductPrice.js +13 -18
  420. package/dist/node-prod/ProductPrice.js.map +1 -1
  421. package/dist/node-prod/ProductPrice.mjs +12 -17
  422. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  423. package/dist/node-prod/ProductProvider.js +103 -74
  424. package/dist/node-prod/ProductProvider.js.map +1 -1
  425. package/dist/node-prod/ProductProvider.mjs +102 -73
  426. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  427. package/dist/node-prod/ShopPayButton.js +14 -24
  428. package/dist/node-prod/ShopPayButton.js.map +1 -1
  429. package/dist/node-prod/ShopPayButton.mjs +14 -24
  430. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  431. package/dist/node-prod/ShopifyProvider.js +23 -33
  432. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  433. package/dist/node-prod/ShopifyProvider.mjs +22 -32
  434. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  435. package/dist/node-prod/Video.js +31 -22
  436. package/dist/node-prod/Video.js.map +1 -1
  437. package/dist/node-prod/Video.mjs +30 -21
  438. package/dist/node-prod/Video.mjs.map +1 -1
  439. package/dist/node-prod/_virtual/index.js +11 -3
  440. package/dist/node-prod/_virtual/index.js.map +1 -1
  441. package/dist/node-prod/_virtual/index.mjs +11 -2
  442. package/dist/node-prod/_virtual/index.mjs.map +1 -1
  443. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.js +1 -1
  444. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  445. package/dist/node-prod/_virtual/with-selector.development.js +1 -1
  446. package/dist/node-prod/_virtual/with-selector.js +11 -3
  447. package/dist/node-prod/_virtual/with-selector.js.map +1 -1
  448. package/dist/node-prod/_virtual/with-selector.mjs +11 -2
  449. package/dist/node-prod/_virtual/with-selector.mjs.map +1 -1
  450. package/dist/node-prod/_virtual/with-selector.production.min.js +1 -1
  451. package/dist/node-prod/analytics-constants.js +43 -0
  452. package/dist/node-prod/analytics-constants.js.map +1 -0
  453. package/dist/node-prod/analytics-constants.mjs +43 -0
  454. package/dist/node-prod/analytics-constants.mjs.map +1 -0
  455. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  456. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  457. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  458. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  459. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +58 -0
  460. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  461. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  462. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  463. package/dist/node-prod/analytics-utils.js +49 -0
  464. package/dist/node-prod/analytics-utils.js.map +1 -0
  465. package/dist/node-prod/analytics-utils.mjs +49 -0
  466. package/dist/node-prod/analytics-utils.mjs.map +1 -0
  467. package/dist/node-prod/analytics.js +158 -0
  468. package/dist/node-prod/analytics.js.map +1 -0
  469. package/dist/node-prod/analytics.mjs +158 -0
  470. package/dist/node-prod/analytics.mjs.map +1 -0
  471. package/dist/node-prod/cart-constants.js +1 -1
  472. package/dist/node-prod/cart-hooks.js +29 -34
  473. package/dist/node-prod/cart-hooks.js.map +1 -1
  474. package/dist/node-prod/cart-hooks.mjs +29 -34
  475. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  476. package/dist/node-prod/cart-queries.js +51 -29
  477. package/dist/node-prod/cart-queries.js.map +1 -1
  478. package/dist/node-prod/cart-queries.mjs +50 -28
  479. package/dist/node-prod/cart-queries.mjs.map +1 -1
  480. package/dist/node-prod/codegen.helpers.js +2 -1
  481. package/dist/node-prod/codegen.helpers.js.map +1 -1
  482. package/dist/node-prod/codegen.helpers.mjs +1 -0
  483. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  484. package/dist/node-prod/cookies-utils.js +50 -0
  485. package/dist/node-prod/cookies-utils.js.map +1 -0
  486. package/dist/node-prod/cookies-utils.mjs +50 -0
  487. package/dist/node-prod/cookies-utils.mjs.map +1 -0
  488. package/dist/node-prod/flatten-connection.js +8 -6
  489. package/dist/node-prod/flatten-connection.js.map +1 -1
  490. package/dist/node-prod/flatten-connection.mjs +7 -5
  491. package/dist/node-prod/flatten-connection.mjs.map +1 -1
  492. package/dist/node-prod/image-size.js +9 -9
  493. package/dist/node-prod/image-size.js.map +1 -1
  494. package/dist/node-prod/image-size.mjs +8 -8
  495. package/dist/node-prod/image-size.mjs.map +1 -1
  496. package/dist/node-prod/index.js +21 -7
  497. package/dist/node-prod/index.js.map +1 -1
  498. package/dist/node-prod/index.mjs +20 -6
  499. package/dist/node-prod/index.mjs.map +1 -1
  500. package/dist/node-prod/load-script.js +1 -1
  501. package/dist/node-prod/load-script.js.map +1 -1
  502. package/dist/node-prod/load-script.mjs.map +1 -1
  503. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +1 -1
  504. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
  505. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  506. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +2 -2
  507. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
  508. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  509. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  510. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js +2 -4
  511. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  512. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  513. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  514. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  515. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  516. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  517. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  518. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  519. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  520. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  521. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  522. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  523. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  524. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +4 -4
  525. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  526. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  527. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  528. package/dist/node-prod/{metafield-parser.js → parse-metafield.js} +21 -13
  529. package/dist/node-prod/parse-metafield.js.map +1 -0
  530. package/dist/node-prod/{metafield-parser.mjs → parse-metafield.mjs} +20 -12
  531. package/dist/node-prod/parse-metafield.mjs.map +1 -0
  532. package/dist/node-prod/storefront-api-constants.js +2 -2
  533. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  534. package/dist/node-prod/storefront-api-constants.mjs +1 -1
  535. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  536. package/dist/node-prod/storefront-client.js +20 -21
  537. package/dist/node-prod/storefront-client.js.map +1 -1
  538. package/dist/node-prod/storefront-client.mjs +19 -20
  539. package/dist/node-prod/storefront-client.mjs.map +1 -1
  540. package/dist/node-prod/useCartAPIStateMachine.js +112 -81
  541. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  542. package/dist/node-prod/useCartAPIStateMachine.mjs +111 -80
  543. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  544. package/dist/node-prod/useCartActions.js +151 -110
  545. package/dist/node-prod/useCartActions.js.map +1 -1
  546. package/dist/node-prod/useCartActions.mjs +150 -109
  547. package/dist/node-prod/useCartActions.mjs.map +1 -1
  548. package/dist/node-prod/useMoney.js +63 -37
  549. package/dist/node-prod/useMoney.js.map +1 -1
  550. package/dist/node-prod/useMoney.mjs +62 -36
  551. package/dist/node-prod/useMoney.mjs.map +1 -1
  552. package/dist/node-prod/useShopifyCookies.js +41 -0
  553. package/dist/node-prod/useShopifyCookies.js.map +1 -0
  554. package/dist/node-prod/useShopifyCookies.mjs +41 -0
  555. package/dist/node-prod/useShopifyCookies.mjs.map +1 -0
  556. package/dist/types/AddToCartButton.d.ts +3 -2
  557. package/dist/types/BuyNowButton.d.ts +7 -3
  558. package/dist/types/CartCheckoutButton.d.ts +6 -5
  559. package/dist/types/CartCost.d.ts +7 -5
  560. package/dist/types/CartLinePrice.d.ts +4 -4
  561. package/dist/types/CartLineProvider.d.ts +8 -6
  562. package/dist/types/CartProvider.d.ts +12 -2
  563. package/dist/types/ExternalVideo.d.ts +1 -2
  564. package/dist/types/Image.d.ts +5 -3
  565. package/dist/types/MediaFile.d.ts +12 -11
  566. package/dist/types/ModelViewer.d.ts +2 -2
  567. package/dist/types/ProductPrice.d.ts +1 -1
  568. package/dist/types/ProductProvider.d.ts +1 -1
  569. package/dist/types/ShopPayButton.d.ts +10 -10
  570. package/dist/types/ShopifyProvider.d.ts +36 -40
  571. package/dist/types/analytics-constants.d.ts +48 -0
  572. package/dist/types/analytics-schema-custom-storefront-customer-tracking.d.ts +3 -0
  573. package/dist/types/analytics-schema-trekkie-storefront-page-view.d.ts +2 -0
  574. package/dist/types/analytics-types.d.ts +108 -0
  575. package/dist/types/analytics-utils.d.ts +36 -0
  576. package/dist/types/analytics.d.ts +9 -0
  577. package/dist/types/cart-queries.d.ts +1 -1
  578. package/dist/types/cookies-utils.d.ts +4 -0
  579. package/dist/types/flatten-connection.d.ts +29 -9
  580. package/dist/types/index.d.cts +11 -4
  581. package/dist/types/index.d.ts +11 -4
  582. package/dist/types/{metafield-parser.d.ts → parse-metafield.d.ts} +11 -9
  583. package/dist/types/storefront-api-constants.d.ts +1 -1
  584. package/dist/types/storefront-api-types.d.ts +121 -2
  585. package/dist/types/storefront-client.d.ts +14 -14
  586. package/dist/types/useCartActions.d.ts +1 -1
  587. package/dist/types/useShopifyCookies.d.ts +14 -0
  588. package/dist/umd/hydrogen-react.dev.js +1634 -1371
  589. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  590. package/dist/umd/hydrogen-react.prod.js +18 -25
  591. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  592. package/package.json +24 -19
  593. package/storefront.schema.json +1 -1
  594. package/dist/browser-dev/Metafield.mjs +0 -301
  595. package/dist/browser-dev/Metafield.mjs.map +0 -1
  596. package/dist/browser-dev/metafield-parser.mjs.map +0 -1
  597. package/dist/browser-prod/Metafield.mjs +0 -288
  598. package/dist/browser-prod/Metafield.mjs.map +0 -1
  599. package/dist/browser-prod/metafield-parser.mjs.map +0 -1
  600. package/dist/node-dev/Metafield.js +0 -301
  601. package/dist/node-dev/Metafield.js.map +0 -1
  602. package/dist/node-dev/Metafield.mjs +0 -301
  603. package/dist/node-dev/Metafield.mjs.map +0 -1
  604. package/dist/node-dev/metafield-parser.js.map +0 -1
  605. package/dist/node-dev/metafield-parser.mjs.map +0 -1
  606. package/dist/node-prod/Metafield.js +0 -288
  607. package/dist/node-prod/Metafield.js.map +0 -1
  608. package/dist/node-prod/Metafield.mjs +0 -288
  609. package/dist/node-prod/Metafield.mjs.map +0 -1
  610. package/dist/node-prod/metafield-parser.js.map +0 -1
  611. package/dist/node-prod/metafield-parser.mjs.map +0 -1
  612. package/dist/types/Metafield.d.ts +0 -61
@@ -1,16 +1,18 @@
1
1
  import { type ReactNode } from 'react';
2
- import { CartLine } from './storefront-api-types.js';
2
+ import type { CartLine } from './storefront-api-types.js';
3
3
  export declare const CartLineContext: import("react").Context<CartLine | null>;
4
4
  /**
5
5
  * The `useCartLine` hook provides access to the cart line object. It must be a descendent of a `CartProvider` component.
6
6
  */
7
7
  export declare function useCartLine(): CartLine;
8
- /**
9
- * The `CartLineProvider` component creates a context for using a cart line.
10
- */
11
- export declare function CartLineProvider({ children, line, }: {
8
+ type CartLineProviderProps = {
12
9
  /** Any `ReactNode` elements. */
13
10
  children: ReactNode;
14
11
  /** A cart line object. */
15
12
  line: CartLine;
16
- }): JSX.Element;
13
+ };
14
+ /**
15
+ * The `CartLineProvider` component creates a context for using a cart line.
16
+ */
17
+ export declare function CartLineProvider({ children, line }: CartLineProviderProps): JSX.Element;
18
+ export {};
@@ -6,7 +6,7 @@ export declare const CartContext: import("react").Context<CartWithActions | null
6
6
  * The `useCart` hook provides access to the cart object. It must be a descendent of a `CartProvider` component.
7
7
  */
8
8
  export declare function useCart(): CartWithActions;
9
- export declare function CartProvider({ children, numCartLines, onCreate, onLineAdd, onLineRemove, onLineUpdate, onNoteUpdate, onBuyerIdentityUpdate, onAttributesUpdate, onDiscountCodesUpdate, onCreateComplete, onLineAddComplete, onLineRemoveComplete, onLineUpdateComplete, onNoteUpdateComplete, onBuyerIdentityUpdateComplete, onAttributesUpdateComplete, onDiscountCodesUpdateComplete, data: cart, cartFragment, customerAccessToken, countryCode, }: {
9
+ type CartProviderProps = {
10
10
  /** Any `ReactNode` elements. */
11
11
  children: React.ReactNode;
12
12
  /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */
@@ -53,8 +53,18 @@ export declare function CartProvider({ children, numCartLines, onCreate, onLineA
53
53
  customerAccessToken?: CartBuyerIdentityInput['customerAccessToken'];
54
54
  /** The ISO country code for i18n. */
55
55
  countryCode?: CountryCode;
56
- }): JSX.Element;
56
+ };
57
+ /**
58
+ * The `CartProvider` component synchronizes the state of the Storefront API Cart and a customer's cart,
59
+ * and allows you to more easily manipulate the cart by adding, removing, and updating it.
60
+ * It could be placed at the root of your app so that your whole app is able to use the `useCart()` hook anywhere.
61
+ *
62
+ * There are props that trigger when a call to the Storefront API is made, such as `onLineAdd={}` when a line is added to the cart.
63
+ * There are also props that trigger when a call to the Storefront API is completed, such as `onLineAddComplete={}` when the fetch request for adding a line to the cart completes.
64
+ */
65
+ export declare function CartProvider({ children, numCartLines, onCreate, onLineAdd, onLineRemove, onLineUpdate, onNoteUpdate, onBuyerIdentityUpdate, onAttributesUpdate, onDiscountCodesUpdate, onCreateComplete, onLineAddComplete, onLineRemoveComplete, onLineUpdateComplete, onNoteUpdateComplete, onBuyerIdentityUpdateComplete, onAttributesUpdateComplete, onDiscountCodesUpdateComplete, data: cart, cartFragment, customerAccessToken, countryCode, }: CartProviderProps): JSX.Element;
57
66
  /** Check for storage availability funciton obtained from
58
67
  * https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API
59
68
  */
60
69
  export declare function storageAvailable(type: 'localStorage' | 'sessionStorage'): boolean | undefined;
70
+ export {};
@@ -13,8 +13,7 @@ interface BaseProps {
13
13
  */
14
14
  options?: YouTube | Vimeo;
15
15
  }
16
- type PropsWeControl = 'src';
17
- export type ExternalVideoProps = Omit<JSX.IntrinsicElements['iframe'], PropsWeControl> & BaseProps;
16
+ export type ExternalVideoProps = Omit<JSX.IntrinsicElements['iframe'], 'src'> & BaseProps;
18
17
  /**
19
18
  * The `ExternalVideo` component renders an embedded video for the Storefront
20
19
  * API's [ExternalVideo object](https://shopify.dev/api/storefront/reference/products/externalvideo).
@@ -8,10 +8,12 @@ export type ShopifyLoaderOptions = {
8
8
  width?: HtmlImageProps['width'] | ImageType['width'];
9
9
  height?: HtmlImageProps['height'] | ImageType['height'];
10
10
  };
11
- export type ShopifyLoaderParams = Simplify<ShopifyLoaderOptions & {
11
+ export type ShopifyLoaderParams = Simplify<ShopifyLoaderOptions & ImageSrc>;
12
+ type ImageSrc = {
12
13
  src: ImageType['url'];
13
- }>;
14
- export type ShopifyImageProps = Omit<HtmlImageProps, 'src'> & {
14
+ };
15
+ export type ShopifyImageProps = Omit<HtmlImageProps, 'src'> & ShopifyImageBaseProps;
16
+ type ShopifyImageBaseProps = {
15
17
  /** An object with fields that correspond to the Storefront API's
16
18
  * [Image object](https://shopify.dev/api/storefront/reference/common-objects/image).
17
19
  * The `data` prop is required.
@@ -11,18 +11,19 @@ export interface MediaFileProps extends BaseProps {
11
11
  data: PartialDeep<MediaEdgeType['node'], {
12
12
  recurseIntoArrays: true;
13
13
  }>;
14
- /** The options for the `Image`, `Video`, or `ExternalVideo` components. */
15
- mediaOptions?: {
16
- /** Props that will only apply when an `<Image />` is rendered */
17
- image?: Omit<ShopifyImageProps, 'data'>;
18
- /** Props that will only apply when a `<Video />` is rendered */
19
- video?: Omit<React.ComponentProps<typeof Video>, 'data'>;
20
- /** Props that will only apply when an `<ExternalVideo />` is rendered */
21
- externalVideo?: Omit<React.ComponentProps<typeof ExternalVideo>['options'], 'data'>;
22
- /** Props that will only apply when a `<ModelViewer />` is rendered */
23
- modelViewer?: Omit<typeof ModelViewer, 'data'>;
24
- };
14
+ /** The options for the `Image`, `Video`, `ExternalVideo`, or `ModelViewer` components. */
15
+ mediaOptions?: MediaOptions;
25
16
  }
17
+ type MediaOptions = {
18
+ /** Props that will only apply when an `<Image />` is rendered */
19
+ image?: Omit<ShopifyImageProps, 'data'>;
20
+ /** Props that will only apply when a `<Video />` is rendered */
21
+ video?: Omit<React.ComponentProps<typeof Video>, 'data'>;
22
+ /** Props that will only apply when an `<ExternalVideo />` is rendered */
23
+ externalVideo?: Omit<React.ComponentProps<typeof ExternalVideo>['options'], 'data'>;
24
+ /** Props that will only apply when a `<ModelViewer />` is rendered */
25
+ modelViewer?: Omit<typeof ModelViewer, 'data'>;
26
+ };
26
27
  /**
27
28
  * The `MediaFile` component renders the media for the Storefront API's
28
29
  * [Media object](https://shopify.dev/api/storefront/reference/products/media). It renders an `Image`, a
@@ -1,7 +1,6 @@
1
1
  import type { Model3d } from './storefront-api-types.js';
2
2
  import type { PartialDeep } from 'type-fest';
3
3
  import type { ModelViewerElement } from '@google/model-viewer/lib/model-viewer.js';
4
- type PropsWeControl = 'src';
5
4
  declare global {
6
5
  namespace JSX {
7
6
  interface IntrinsicElements {
@@ -13,7 +12,8 @@ declare global {
13
12
  }
14
13
  type ModelViewerProps = Omit<PartialDeep<JSX.IntrinsicElements['model-viewer'], {
15
14
  recurseIntoArrays: true;
16
- }>, PropsWeControl> & {
15
+ }>, 'src'> & ModelViewerBaseProps;
16
+ type ModelViewerBaseProps = {
17
17
  /** An object with fields that correspond to the Storefront API's [Model3D object](https://shopify.dev/api/storefront/latest/objects/model3d). */
18
18
  data: PartialDeep<Model3d, {
19
19
  recurseIntoArrays: true;
@@ -2,7 +2,7 @@ import type { Product } from './storefront-api-types.js';
2
2
  import { type MoneyProps } from './Money.js';
3
3
  import type { PartialDeep } from 'type-fest';
4
4
  export interface ProductPriceProps {
5
- /** A [Product object](https://shopify.dev/api/storefront/reference/products/product). */
5
+ /** A Storefront API [Product object](https://shopify.dev/api/storefront/reference/products/product). */
6
6
  data: PartialDeep<Product, {
7
7
  recurseIntoArrays: true;
8
8
  }>;
@@ -2,7 +2,7 @@ import type { SelectedOption as SelectedOptionType, Product, ProductVariant as P
2
2
  import type { PartialDeep } from 'type-fest';
3
3
  type InitialVariantId = ProductVariantType['id'] | null;
4
4
  interface ProductProviderProps {
5
- /** A [Product object](https://shopify.dev/api/storefront/reference/products/product). */
5
+ /** A Storefront API [Product object](https://shopify.dev/api/storefront/reference/products/product). */
6
6
  data: PartialDeep<Product, {
7
7
  recurseIntoArrays: true;
8
8
  }>;
@@ -1,22 +1,25 @@
1
- type ShopPayButtonProps = {
1
+ type ShopPayButtonProps = ShopPayButtonStyleProps & (ShopPayVariantIds | ShopPayVariantAndQuantities);
2
+ type ShopPayButtonStyleProps = {
2
3
  /** A string of classes to apply to the `div` that wraps the Shop Pay button. */
3
4
  className?: string;
4
5
  /** A string that's applied to the [CSS custom property (variable)](https://developer.mozilla.org/en-US/docs/Web/CSS/--*) `--shop-pay-button-width` for the [Buy with Shop Pay component](https://shopify.dev/custom-storefronts/tools/web-components#buy-with-shop-pay-component). */
5
6
  width?: string;
6
- } & ({
7
- /** An array of IDs of the variants to purchase with Shop Pay. This will only ever have a quantity of 1 for each variant. If you want to use other quantities, then use 'variantIdsAndQuantities'. */
7
+ };
8
+ type ShopPayVariantIds = {
9
+ /** An array of IDs of the variants to purchase with Shop Pay. This will only ever have a quantity of 1 for each variant. If you want to use other quantities, then use `variantIdsAndQuantities`. */
8
10
  variantIds: string[];
9
11
  /** An array of variant IDs and quantities to purchase with Shop Pay. */
10
12
  variantIdsAndQuantities?: never;
11
- } | {
12
- /** An array of IDs of the variants to purchase with Shop Pay. This will only ever have a quantity of 1 for each variant. If you want to use other quantities, then use 'variantIdsAndQuantities'. */
13
+ };
14
+ type ShopPayVariantAndQuantities = {
15
+ /** An array of IDs of the variants to purchase with Shop Pay. This will only ever have a quantity of 1 for each variant. If you want to use other quantities, then use `variantIdsAndQuantities`. */
13
16
  variantIds?: never;
14
17
  /** An array of variant IDs and quantities to purchase with Shop Pay. */
15
18
  variantIdsAndQuantities: Array<{
16
19
  id: string;
17
20
  quantity: number;
18
21
  }>;
19
- });
22
+ };
20
23
  declare global {
21
24
  namespace JSX {
22
25
  interface IntrinsicElements {
@@ -33,10 +36,7 @@ declare global {
33
36
  * It relies on the `<ShopProvider>` context provider.
34
37
  */
35
38
  export declare function ShopPayButton({ variantIds, className, variantIdsAndQuantities, width, }: ShopPayButtonProps): JSX.Element;
36
- /**
37
- * Takes a string in the format of "gid://shopify/ProductVariant/41007289630776" and returns a string of the ID part at the end: "41007289630776"
38
- */
39
- export declare function getIdFromGid(id?: string): string | undefined;
39
+ export declare const InvalidPropsErrorMessage = "You must pass in \"variantIds\" in the form of [\"gid://shopify/ProductVariant/1\"]";
40
40
  export declare const MissingPropsErrorMessage = "You must pass in either \"variantIds\" or \"variantIdsAndQuantities\" to ShopPayButton";
41
41
  export declare const DoublePropsErrorMessage = "You must provide either a variantIds or variantIdsAndQuantities prop, but not both in the ShopPayButton component";
42
42
  export {};
@@ -3,44 +3,36 @@ import type { LanguageCode, CountryCode } from './storefront-api-types.js';
3
3
  /**
4
4
  * The `<ShopifyProvider/>` component enables use of the `useShop()` hook. The component should wrap your app.
5
5
  */
6
- export declare function ShopifyProvider({ children, shopifyConfig, }: {
7
- children: ReactNode;
8
- shopifyConfig: ShopifyContextProps;
9
- }): JSX.Element;
6
+ export declare function ShopifyProvider({ children, ...shopifyConfig }: ShopifyProviderProps): JSX.Element;
10
7
  /**
11
8
  * Provides access to the `shopifyConfig` prop of `<ShopifyProvider/>`. Must be a descendent of `<ShopifyProvider/>`.
12
9
  */
13
10
  export declare function useShop(): ShopifyContextValue;
14
11
  /**
15
- * Shopify-specific values that are used in various Hydrogen-UI components and hooks.
12
+ * Shopify-specific values that are used in various Hydrogen React components and hooks.
16
13
  */
17
- export type ShopifyContextProps = {
14
+ export type ShopifyProviderProps = {
18
15
  /** The globally-unique identifier for the Shop */
19
16
  storefrontId?: string;
20
- /** The subdomain of your Shopify storefront URL (eg: `{subdomain}.myshopify.com`). */
17
+ /** The full domain of your Shopify storefront URL (eg: the complete string of `{subdomain}.myshopify.com`). */
21
18
  storeDomain: string;
22
19
  /** The Storefront API public access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) documentation for more details. */
23
20
  storefrontToken: string;
24
- /** The Storefront API version. This should almost always be the same as the version Hydrogen-UI was built for. Learn more about Shopify [API versioning](https://shopify.dev/api/usage/versioning) for more details. */
21
+ /** The Storefront API version. This should almost always be the same as the version Hydrogen React was built for. Learn more about Shopify [API versioning](https://shopify.dev/api/usage/versioning) for more details. */
25
22
  storefrontApiVersion: string;
26
- country?: {
27
- /**
28
- * The code designating a country, which generally follows ISO 3166-1 alpha-2 guidelines. If a territory doesn't have a country code value in the `CountryCode` enum, it might be considered a subdivision of another country. For example, the territories associated with Spain are represented by the country code `ES`, and the territories associated with the United States of America are represented by the country code `US`.
29
- */
30
- isoCode: CountryCode;
31
- };
32
- language?: {
33
- /**
34
- * `ISO 369` language codes supported by Shopify.
35
- */
36
- isoCode: LanguageCode;
37
- };
38
23
  /**
39
- * The locale string based on `country` and `language`.
24
+ * The code designating a country, which generally follows ISO 3166-1 alpha-2 guidelines. If a territory doesn't have a country code value in the `CountryCode` enum, it might be considered a subdivision of another country. For example, the territories associated with Spain are represented by the country code `ES`, and the territories associated with the United States of America are represented by the country code `US`.
40
25
  */
41
- locale?: string;
26
+ countryIsoCode: CountryCode;
27
+ /**
28
+ * `ISO 369` language codes supported by Shopify.
29
+ */
30
+ languageIsoCode: LanguageCode;
31
+ /** React children to render. */
32
+ children?: ReactNode;
42
33
  };
43
- export type ShopifyContextValue = ShopifyContextProps & {
34
+ export type ShopifyContextValue = Omit<ShopifyProviderProps, 'children'> & ShopifyContextReturn;
35
+ type ShopifyContextReturn = {
44
36
  /**
45
37
  * Creates the fully-qualified URL to your store's GraphQL endpoint.
46
38
  *
@@ -49,12 +41,7 @@ export type ShopifyContextValue = ShopifyContextProps & {
49
41
  * - `storeDomain`
50
42
  * - `storefrontApiVersion`
51
43
  */
52
- getStorefrontApiUrl: (props?: {
53
- /** The host name of the domain (eg: `{shop}.myshopify.com`). */
54
- storeDomain?: string;
55
- /** The Storefront API version. This should almost always be the same as the version Hydrogen-UI was built for. Learn more about Shopify [API versioning](https://shopify.dev/api/usage/versioning) for more details. */
56
- storefrontApiVersion?: string;
57
- }) => string;
44
+ getStorefrontApiUrl: (props?: GetStorefrontApiUrlProps) => string;
58
45
  /**
59
46
  * Returns an object that contains headers that are needed for each query to Storefront API GraphQL endpoint. This uses the public Storefront API token.
60
47
  *
@@ -64,14 +51,7 @@ export type ShopifyContextValue = ShopifyContextProps & {
64
51
  * - `storefrontToken`
65
52
  *
66
53
  */
67
- getPublicTokenHeaders: (props: {
68
- /**
69
- * Customizes which `"content-type"` header is added when using `getPrivateTokenHeaders()` and `getPublicTokenHeaders()`. When fetching with a `JSON.stringify()`-ed `body`, use `"json"`. When fetching with a `body` that is a plain string, use `"graphql"`. Defaults to `"json"`
70
- */
71
- contentType: 'json' | 'graphql';
72
- /** The Storefront API access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) documentation for more details. */
73
- storefrontToken?: string;
74
- }) => Record<string, string>;
54
+ getPublicTokenHeaders: (props: GetPublicTokenHeadersProps) => Record<string, string>;
75
55
  /**
76
56
  * Creates the fully-qualified URL to your myshopify.com domain.
77
57
  *
@@ -79,7 +59,23 @@ export type ShopifyContextValue = ShopifyContextProps & {
79
59
  *
80
60
  * - `storeDomain`
81
61
  */
82
- getShopifyDomain: (props?: {
83
- storeDomain?: string;
84
- }) => string;
62
+ getShopifyDomain: (props?: GetShopifyDomainProps) => string;
63
+ };
64
+ type GetStorefrontApiUrlProps = {
65
+ /** The host name of the domain (eg: `{shop}.myshopify.com`). */
66
+ storeDomain?: string;
67
+ /** The Storefront API version. This should almost always be the same as the version Hydrogen-UI was built for. Learn more about Shopify [API versioning](https://shopify.dev/api/usage/versioning) for more details. */
68
+ storefrontApiVersion?: string;
69
+ };
70
+ type GetPublicTokenHeadersProps = {
71
+ /**
72
+ * Customizes which `"content-type"` header is added when using `getPrivateTokenHeaders()` and `getPublicTokenHeaders()`. When fetching with a `JSON.stringify()`-ed `body`, use `"json"`. When fetching with a `body` that is a plain string, use `"graphql"`. Defaults to `"json"`
73
+ */
74
+ contentType: 'json' | 'graphql';
75
+ /** The Storefront API access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) documentation for more details. */
76
+ storefrontToken?: string;
77
+ };
78
+ type GetShopifyDomainProps = {
79
+ storeDomain?: string;
85
80
  };
81
+ export {};
@@ -0,0 +1,48 @@
1
+ export declare const AnalyticsEventName: AnalyticsEventName;
2
+ export declare const AnalyticsPageType: AnalyticsPageType;
3
+ export declare const ShopifySalesChannel: ShopifySalesChannel;
4
+ export declare const ShopifyAppId: {
5
+ readonly hydrogen: "6167201";
6
+ readonly headless: "12875497473";
7
+ };
8
+ /**
9
+ * These duplicated interface declaration is so that we can generate proper documentation
10
+ * for these public facing constants
11
+ */
12
+ interface AnalyticsEventName {
13
+ /** Page view */
14
+ PAGE_VIEW: 'PAGE_VIEW';
15
+ /** Add to cart */
16
+ ADD_TO_CART: 'ADD_TO_CART';
17
+ }
18
+ interface AnalyticsPageType {
19
+ article: 'article';
20
+ blog: 'blog';
21
+ captcha: 'captcha';
22
+ cart: 'cart';
23
+ collection: 'collection';
24
+ customersAccount: 'customers/account';
25
+ customersActivateAccount: 'customers/activate_account';
26
+ customersAddresses: 'customers/addresses';
27
+ customersLogin: 'customers/login';
28
+ customersOrder: 'customers/order';
29
+ customersRegister: 'customers/register';
30
+ customersResetPassword: 'customers/reset_password';
31
+ giftCard: 'gift_card';
32
+ home: 'index';
33
+ listCollections: 'list-collections';
34
+ forbidden: '403';
35
+ notFound: '404';
36
+ page: 'page';
37
+ password: 'password';
38
+ product: 'product';
39
+ policy: 'policy';
40
+ search: 'search';
41
+ }
42
+ interface ShopifySalesChannel {
43
+ /** Shopify Hydrogen sales channel */
44
+ hydrogen: 'hydrogen';
45
+ /** Shopify Headless sales channel */
46
+ headless: 'headless';
47
+ }
48
+ export {};
@@ -0,0 +1,3 @@
1
+ import { ShopifyPageViewPayload, ShopifyAddToCartPayload, ShopifyMonorailEvent } from './analytics-types.js';
2
+ export declare function pageView(payload: ShopifyPageViewPayload): ShopifyMonorailEvent[];
3
+ export declare function addToCart(payload: ShopifyAddToCartPayload): ShopifyMonorailEvent[];
@@ -0,0 +1,2 @@
1
+ import { ShopifyPageViewPayload, ShopifyMonorailEvent } from './analytics-types.js';
2
+ export declare function pageView(payload: ShopifyPageViewPayload): ShopifyMonorailEvent[];
@@ -0,0 +1,108 @@
1
+ import type { CurrencyCode, LanguageCode, Product, ProductVariant } from './storefront-api-types.js';
2
+ import { AnalyticsEventName, ShopifySalesChannel } from './analytics-constants.js';
3
+ import { SHOPIFY_Y, SHOPIFY_S } from './cart-constants.js';
4
+ export type ClientBrowserParameters = {
5
+ /** Shopify unique user token: Value of `_shopify_y` cookie. Use `getClientBrowserParameters()` to collect this value. */
6
+ uniqueToken: string;
7
+ /** Shopify session token: Value of `_shopify_s` cookie. Use `getClientBrowserParameters()` to collect this value. */
8
+ visitToken: string;
9
+ /** `window.location.href`. Use `getClientBrowserParameters()` to collect this value. */
10
+ url: string;
11
+ /** `window.location.pathname`. Use `getClientBrowserParameters()` to collect this value. */
12
+ path: string;
13
+ /** `window.location.search`. Use `getClientBrowserParameters()` to collect this value. */
14
+ search: string;
15
+ /** `window.location.referrer`. Use `getClientBrowserParameters()` to collect this value. */
16
+ referrer: string;
17
+ /** `document.title`. Use `getClientBrowserParameters()` to collect this value. */
18
+ title: string;
19
+ /** `navigator.userAgent`. Use `getClientBrowserParameters()` to collect this value. */
20
+ userAgent: string;
21
+ /** Navigation type: 'navigate' | 'reload' | 'back_forward' | 'prerender' | 'unknown <number>'. Use `getClientBrowserParameters()` to collect this value. */
22
+ navigationType: string;
23
+ /** Navigation api: 'PerformanceNavigationTiming' | 'performance.navigation'. Use `getClientBrowserParameters()` to collect this value. */
24
+ navigationApi: string;
25
+ };
26
+ export type ShopifyAnalyticsProduct = {
27
+ productGid: Product['id'];
28
+ variantGid?: ProductVariant['id'];
29
+ name: Product['title'];
30
+ variantName?: ProductVariant['title'];
31
+ brand: Product['vendor'];
32
+ category?: Product['productType'];
33
+ price: ProductVariant['price']['amount'];
34
+ sku?: ProductVariant['sku'];
35
+ quantity?: number;
36
+ };
37
+ type ShopifyAnalyticsBase = {
38
+ /** If we have consent from buyer for data collection */
39
+ hasUserConsent: boolean;
40
+ /** Shopify shop id in the form of `gid://shopify/Shop/<id>`. */
41
+ shopId: string;
42
+ /** Currency code. */
43
+ currency: CurrencyCode;
44
+ /** Shopify storefront id generated by Hydrogen sales channel. */
45
+ storefrontId?: string;
46
+ /** Language displayed to buyer. */
47
+ acceptedLanguage?: LanguageCode;
48
+ /** Shopify sales channel. */
49
+ shopifySalesChannel?: ShopifySalesChannels;
50
+ /** Shopify customer id in the form of `gid://shopify/Customer/<id>`. */
51
+ customerId?: string;
52
+ /** Total value of products. */
53
+ totalValue?: number;
54
+ /** Shopify products. */
55
+ products?: ShopifyAnalyticsProduct[];
56
+ };
57
+ export type ShopifySalesChannels = keyof typeof ShopifySalesChannel;
58
+ export type AnalyticsEventNames = keyof typeof AnalyticsEventName;
59
+ export interface ShopifyPageViewPayload extends ShopifyAnalyticsBase, ClientBrowserParameters {
60
+ /** Canonical url. */
61
+ canonicalUrl?: string;
62
+ /** Shopify page type. */
63
+ pageType?: string;
64
+ /** Shopify resource id in the form of `gid://shopify/<type>/<id>`. */
65
+ resourceId?: string;
66
+ /** Shopify collection handle. */
67
+ collectionHandle?: string;
68
+ /** Search term used on a search results page. */
69
+ searchString?: string;
70
+ }
71
+ export type ShopifyPageView = {
72
+ /** Use `AnalyticsEventName.PAGE_VIEW` constant. */
73
+ eventName: string;
74
+ payload: ShopifyPageViewPayload;
75
+ };
76
+ export interface ShopifyAddToCartPayload extends ShopifyAnalyticsBase, ClientBrowserParameters {
77
+ /** Shopify cart id in the form of `gid://shopify/Cart/<id>`. */
78
+ cartId: string;
79
+ }
80
+ export type ShopifyAddToCart = {
81
+ /** Use `AnalyticsEventName.ADD_TO_CART` constant. */
82
+ eventName: string;
83
+ payload: ShopifyAddToCartPayload;
84
+ };
85
+ export type ShopifyMonorailPayload = {
86
+ products?: string[];
87
+ [key: string]: unknown;
88
+ };
89
+ export type ShopifyMonorailEvent = {
90
+ schema_id: string;
91
+ payload: ShopifyMonorailPayload;
92
+ metadata: {
93
+ event_created_at_ms: number;
94
+ };
95
+ };
96
+ export type ShopifyAnalyticsPayload = ShopifyPageViewPayload | ShopifyAddToCartPayload;
97
+ export type ShopifyAnalytics = ShopifyPageView | ShopifyAddToCart;
98
+ export type ShopifyCookies = {
99
+ /** Shopify unique user token: Value of `_shopify_y` cookie. */
100
+ [SHOPIFY_Y]: string;
101
+ /** Shopify session token: Value of `_shopify_s` cookie. */
102
+ [SHOPIFY_S]: string;
103
+ };
104
+ export type ShopifyGId = {
105
+ id: string;
106
+ resource: string | null;
107
+ };
108
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { ShopifyMonorailPayload, ShopifyMonorailEvent, ShopifyGId } from './analytics-types.js';
2
+ /**
3
+ * Builds a Shopify Monorail event from a Shopify Monorail payload and a schema ID.
4
+ * @param payload - The Monorail payload
5
+ * @param schemaId - The schema ID to use
6
+ * @returns The formatted payload
7
+ **/
8
+ export declare function schemaWrapper(schemaId: string, payload: ShopifyMonorailPayload): ShopifyMonorailEvent;
9
+ /**
10
+ * Parses global id (gid) and returns the resource type and id.
11
+ * @see https://shopify.dev/api/usage/gids
12
+ * @param gid - A shopify GID (string)
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const {id, resource} = parseGid('gid://shopify/Order/123')
17
+ * // => id = "123", resource = 'Order'
18
+ *
19
+ * * const {id, resource} = parseGid('gid://shopify/Cart/abc123')
20
+ * // => id = "abc123", resource = 'Cart'
21
+ * ```
22
+ **/
23
+ export declare function parseGid(gid: string | undefined): ShopifyGId;
24
+ /**
25
+ * Filters properties from an object and returns a new object with only the properties that have a truthy value.
26
+ * @param keyValuePairs - An object of key-value pairs
27
+ * @param formattedData - An object which will hold the truthy values
28
+ * @returns The formatted object
29
+ **/
30
+ export declare function addDataIf(keyValuePairs: ShopifyMonorailPayload, formattedData: ShopifyMonorailPayload): ShopifyMonorailPayload;
31
+ /**
32
+ * Utility that errors if a function is called on the server.
33
+ * @param fnName - The name of the function
34
+ * @returns A boolean
35
+ **/
36
+ export declare function errorIfServer(fnName: string): boolean;
@@ -0,0 +1,9 @@
1
+ import type { ClientBrowserParameters, ShopifyAnalytics } from './analytics-types.js';
2
+ /**
3
+ * Set user and session cookies and refresh the expiry time
4
+ * @param event - The analytics event.
5
+ * @param shopDomain - The Online Store domain to sent Shopify analytics under the same
6
+ * top level domain.
7
+ */
8
+ export declare function sendShopifyAnalytics(event: ShopifyAnalytics, shopDomain?: string): Promise<void>;
9
+ export declare function getClientBrowserParameters(): ClientBrowserParameters;
@@ -7,4 +7,4 @@ export declare const CartBuyerIdentityUpdate: (cartFragment: string) => string;
7
7
  export declare const CartAttributesUpdate: (cartFragment: string) => string;
8
8
  export declare const CartDiscountCodesUpdate: (cartFragment: string) => string;
9
9
  export declare const CartQuery: (cartFragment: string) => string;
10
- export declare const defaultCartFragment = "\n fragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPrice {\n ...MoneyFragment\n }\n # @deprecated remove in next major\n compareAtPriceV2 {\n ...MoneyFragment\n }\n price {\n ...MoneyFragment\n }\n # @deprecated remove in next major\n priceV2 {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n id\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n }\n\n fragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n }\n fragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n }\n";
10
+ export declare const defaultCartFragment = "\n fragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPrice {\n ...MoneyFragment\n }\n price {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n id\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n }\n\n fragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n }\n fragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n }\n";
@@ -0,0 +1,4 @@
1
+ import { ShopifyCookies } from './analytics-types.js';
2
+ export declare function buildUUID(): string;
3
+ export declare function hexTime(): string;
4
+ export declare function getShopifyCookies(cookies: string): ShopifyCookies;
@@ -5,15 +5,35 @@ import type { PartialDeep } from 'type-fest';
5
5
  *
6
6
  * If `connection` is null or undefined, will return an empty array instead in production. In development, an error will be thrown.
7
7
  */
8
- export declare function flattenConnection<T>(connection?: PartialDeep<GraphQLConnection<T>, {
8
+ export declare function flattenConnection<ConnectionGeneric extends PartialDeep<ConnectionEdges, {
9
9
  recurseIntoArrays: true;
10
- }>): PartialDeep<T, {
10
+ }> | PartialDeep<ConnectionNodes, {
11
11
  recurseIntoArrays: true;
12
- }>[];
13
- interface GraphQLConnection<T> {
14
- edges?: {
15
- node: T;
16
- }[];
17
- nodes?: T[];
18
- }
12
+ }> | ConnectionEdges | ConnectionNodes>(connection?: ConnectionGeneric): ConnectionGeneric extends {
13
+ edges: {
14
+ node: Array<infer ConnectionBaseType>;
15
+ };
16
+ } | {
17
+ nodes: Array<infer ConnectionBaseType>;
18
+ } ? ConnectionBaseType[] : ConnectionGeneric extends PartialDeep<{
19
+ edges: {
20
+ node: Array<infer ConnectionBaseType>;
21
+ };
22
+ }, {
23
+ recurseIntoArrays: true;
24
+ }> | PartialDeep<{
25
+ nodes: Array<infer ConnectionBaseType>;
26
+ }, {
27
+ recurseIntoArrays: true;
28
+ }> ? PartialDeep<ConnectionBaseType[], {
29
+ recurseIntoArrays: true;
30
+ }> : never;
31
+ type ConnectionEdges = {
32
+ edges: {
33
+ node: Array<unknown>;
34
+ };
35
+ };
36
+ type ConnectionNodes = {
37
+ nodes: Array<unknown>;
38
+ };
19
39
  export {};
@@ -1,22 +1,29 @@
1
1
  export { AddToCartButton } from './AddToCartButton.js';
2
+ export { getClientBrowserParameters, sendShopifyAnalytics } from './analytics.js';
3
+ export { AnalyticsEventName, AnalyticsPageType, ShopifySalesChannel, } from './analytics-constants.js';
4
+ export type { ClientBrowserParameters, ShopifyAddToCart, ShopifyAddToCartPayload, ShopifyAnalytics, ShopifyAnalyticsPayload, ShopifyAnalyticsProduct, ShopifyCookies, ShopifyPageView, ShopifyPageViewPayload, } from './analytics-types.js';
2
5
  export { BuyNowButton } from './BuyNowButton.js';
3
- export type { CartState, CartStatus, Cart, CartWithActions, CartAction, } from './cart-types.js';
6
+ export type { Cart, CartAction, CartState, CartStatus, CartWithActions, } from './cart-types.js';
4
7
  export { CartCheckoutButton } from './CartCheckoutButton.js';
8
+ export { CartCost } from './CartCost.js';
9
+ export { CartLinePrice } from './CartLinePrice.js';
10
+ export { CartLineProvider, useCartLine } from './CartLineProvider.js';
5
11
  export { CartProvider, useCart } from './CartProvider.js';
6
12
  export { storefrontApiCustomScalars } from './codegen.helpers.js';
13
+ export { getShopifyCookies } from './cookies-utils.js';
7
14
  export { ExternalVideo } from './ExternalVideo.js';
8
15
  export { flattenConnection } from './flatten-connection.js';
9
16
  export { Image } from './Image.js';
10
17
  export { MediaFile } from './MediaFile.js';
11
- export { metafieldParser, type ParsedMetafields } from './metafield-parser.js';
12
- export { Metafield, parseMetafield, parseMetafieldValue } from './Metafield.js';
13
18
  export { ModelViewer } from './ModelViewer.js';
14
19
  export { Money } from './Money.js';
20
+ export { type ParsedMetafields, parseMetafield } from './parse-metafield.js';
15
21
  export { ProductPrice } from './ProductPrice.js';
16
22
  export { ProductProvider, useProduct } from './ProductProvider.js';
17
23
  export { ShopifyProvider, useShop } from './ShopifyProvider.js';
18
24
  export { ShopPayButton } from './ShopPayButton.js';
19
- export type { StorefrontApiResponseOk, StorefrontApiResponseOkPartial, StorefrontApiResponseError, StorefrontApiResponse, StorefrontApiResponsePartial, } from './storefront-api-response.types.js';
25
+ export type { StorefrontApiResponse, StorefrontApiResponseError, StorefrontApiResponseOk, StorefrontApiResponseOkPartial, StorefrontApiResponsePartial, } from './storefront-api-response.types.js';
20
26
  export { createStorefrontClient } from './storefront-client.js';
21
27
  export { useMoney } from './useMoney.js';
28
+ export { useShopifyCookies } from './useShopifyCookies.js';
22
29
  export { Video } from './Video.js';