@shopify/hydrogen 0.1.0

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 (454) hide show
  1. package/README.md +29 -0
  2. package/client.d.ts +1 -0
  3. package/client.js +1 -0
  4. package/dist/esnext/client.d.ts +7 -0
  5. package/dist/esnext/client.js +7 -0
  6. package/dist/esnext/components/AddToCartButton/AddToCartButton.client.d.ts +15 -0
  7. package/dist/esnext/components/AddToCartButton/AddToCartButton.client.js +44 -0
  8. package/dist/esnext/components/AddToCartButton/index.d.ts +1 -0
  9. package/dist/esnext/components/AddToCartButton/index.js +1 -0
  10. package/dist/esnext/components/BuyNowButton/BuyNowButton.d.ts +12 -0
  11. package/dist/esnext/components/BuyNowButton/BuyNowButton.js +29 -0
  12. package/dist/esnext/components/BuyNowButton/index.d.ts +1 -0
  13. package/dist/esnext/components/BuyNowButton/index.js +1 -0
  14. package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.d.ts +7 -0
  15. package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.js +14 -0
  16. package/dist/esnext/components/CartCheckoutButton/index.d.ts +1 -0
  17. package/dist/esnext/components/CartCheckoutButton/index.js +1 -0
  18. package/dist/esnext/components/CartContainer/CartContainer.client.d.ts +9 -0
  19. package/dist/esnext/components/CartContainer/CartContainer.client.js +24 -0
  20. package/dist/esnext/components/CartContainer/index.d.ts +1 -0
  21. package/dist/esnext/components/CartContainer/index.js +1 -0
  22. package/dist/esnext/components/CartLineAttributes/CartLineAttributes.client.d.ts +10 -0
  23. package/dist/esnext/components/CartLineAttributes/CartLineAttributes.client.js +9 -0
  24. package/dist/esnext/components/CartLineAttributes/index.d.ts +1 -0
  25. package/dist/esnext/components/CartLineAttributes/index.js +1 -0
  26. package/dist/esnext/components/CartLineImage/CartLineImage.client.d.ts +6 -0
  27. package/dist/esnext/components/CartLineImage/CartLineImage.client.js +8 -0
  28. package/dist/esnext/components/CartLineImage/index.d.ts +1 -0
  29. package/dist/esnext/components/CartLineImage/index.js +1 -0
  30. package/dist/esnext/components/CartLinePrice/CartLinePrice.client.d.ts +6 -0
  31. package/dist/esnext/components/CartLinePrice/CartLinePrice.client.js +17 -0
  32. package/dist/esnext/components/CartLinePrice/index.d.ts +1 -0
  33. package/dist/esnext/components/CartLinePrice/index.js +1 -0
  34. package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.d.ts +3 -0
  35. package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.js +8 -0
  36. package/dist/esnext/components/CartLineProductTitle/index.d.ts +1 -0
  37. package/dist/esnext/components/CartLineProductTitle/index.js +1 -0
  38. package/dist/esnext/components/CartLineProvider/CartLineProvider.client.d.ts +6 -0
  39. package/dist/esnext/components/CartLineProvider/CartLineProvider.client.js +5 -0
  40. package/dist/esnext/components/CartLineProvider/context.d.ts +26 -0
  41. package/dist/esnext/components/CartLineProvider/context.js +2 -0
  42. package/dist/esnext/components/CartLineProvider/hooks.d.ts +26 -0
  43. package/dist/esnext/components/CartLineProvider/hooks.js +9 -0
  44. package/dist/esnext/components/CartLineProvider/index.d.ts +2 -0
  45. package/dist/esnext/components/CartLineProvider/index.js +2 -0
  46. package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.d.ts +3 -0
  47. package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.js +8 -0
  48. package/dist/esnext/components/CartLineQuantity/index.d.ts +1 -0
  49. package/dist/esnext/components/CartLineQuantity/index.js +1 -0
  50. package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.d.ts +8 -0
  51. package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.js +17 -0
  52. package/dist/esnext/components/CartLineQuantityAdjustButton/index.d.ts +1 -0
  53. package/dist/esnext/components/CartLineQuantityAdjustButton/index.js +1 -0
  54. package/dist/esnext/components/CartLineSelectedOptions/CartLineSelectedOptions.client.d.ts +10 -0
  55. package/dist/esnext/components/CartLineSelectedOptions/CartLineSelectedOptions.client.js +9 -0
  56. package/dist/esnext/components/CartLineSelectedOptions/index.d.ts +1 -0
  57. package/dist/esnext/components/CartLineSelectedOptions/index.js +1 -0
  58. package/dist/esnext/components/CartLines/CartLines.d.ts +7 -0
  59. package/dist/esnext/components/CartLines/CartLines.js +15 -0
  60. package/dist/esnext/components/CartLines/index.d.ts +1 -0
  61. package/dist/esnext/components/CartLines/index.js +1 -0
  62. package/dist/esnext/components/CartProvider/CartProvider.client.d.ts +7 -0
  63. package/dist/esnext/components/CartProvider/CartProvider.client.js +422 -0
  64. package/dist/esnext/components/CartProvider/CartServerProvider.server.d.ts +11 -0
  65. package/dist/esnext/components/CartProvider/CartServerProvider.server.js +20 -0
  66. package/dist/esnext/components/CartProvider/constants.d.ts +2 -0
  67. package/dist/esnext/components/CartProvider/constants.js +2 -0
  68. package/dist/esnext/components/CartProvider/context.d.ts +2 -0
  69. package/dist/esnext/components/CartProvider/context.js +2 -0
  70. package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.d.ts +18 -0
  71. package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.js +1 -0
  72. package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +18 -0
  73. package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.js +1 -0
  74. package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +17 -0
  75. package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.js +1 -0
  76. package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +18 -0
  77. package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.js +1 -0
  78. package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +68 -0
  79. package/dist/esnext/components/CartProvider/graphql/CartFragment.js +1 -0
  80. package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +18 -0
  81. package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.js +1 -0
  82. package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +18 -0
  83. package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.js +1 -0
  84. package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +18 -0
  85. package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.js +1 -0
  86. package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +18 -0
  87. package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.js +1 -0
  88. package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +13 -0
  89. package/dist/esnext/components/CartProvider/graphql/CartQuery.js +1 -0
  90. package/dist/esnext/components/CartProvider/hooks.d.ts +18 -0
  91. package/dist/esnext/components/CartProvider/hooks.js +79 -0
  92. package/dist/esnext/components/CartProvider/index.d.ts +4 -0
  93. package/dist/esnext/components/CartProvider/index.js +4 -0
  94. package/dist/esnext/components/CartProvider/types.d.ts +105 -0
  95. package/dist/esnext/components/CartProvider/types.js +1 -0
  96. package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.d.ts +2 -0
  97. package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.js +10 -0
  98. package/dist/esnext/components/CartShopPayButton/index.d.ts +1 -0
  99. package/dist/esnext/components/CartShopPayButton/index.js +1 -0
  100. package/dist/esnext/components/CartToggle/CartToggle.client.d.ts +8 -0
  101. package/dist/esnext/components/CartToggle/CartToggle.client.js +11 -0
  102. package/dist/esnext/components/CartToggle/index.d.ts +1 -0
  103. package/dist/esnext/components/CartToggle/index.js +1 -0
  104. package/dist/esnext/components/CartTotal/CartTotal.client.d.ts +3 -0
  105. package/dist/esnext/components/CartTotal/CartTotal.client.js +8 -0
  106. package/dist/esnext/components/CartTotal/index.d.ts +1 -0
  107. package/dist/esnext/components/CartTotal/index.js +1 -0
  108. package/dist/esnext/components/CartUIProvider/CartUIProvider.client.d.ts +5 -0
  109. package/dist/esnext/components/CartUIProvider/CartUIProvider.client.js +26 -0
  110. package/dist/esnext/components/CartUIProvider/context.d.ts +9 -0
  111. package/dist/esnext/components/CartUIProvider/context.js +2 -0
  112. package/dist/esnext/components/CartUIProvider/hooks.d.ts +1 -0
  113. package/dist/esnext/components/CartUIProvider/hooks.js +9 -0
  114. package/dist/esnext/components/CartUIProvider/index.d.ts +2 -0
  115. package/dist/esnext/components/CartUIProvider/index.js +2 -0
  116. package/dist/esnext/components/ExternalVideo/ExternalVideo.d.ts +14 -0
  117. package/dist/esnext/components/ExternalVideo/ExternalVideo.js +9 -0
  118. package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.d.ts +4 -0
  119. package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.js +1 -0
  120. package/dist/esnext/components/ExternalVideo/index.d.ts +1 -0
  121. package/dist/esnext/components/ExternalVideo/index.js +1 -0
  122. package/dist/esnext/components/Image/Image.d.ts +14 -0
  123. package/dist/esnext/components/Image/Image.js +10 -0
  124. package/dist/esnext/components/Image/ImageFragment.d.ts +4 -0
  125. package/dist/esnext/components/Image/ImageFragment.js +1 -0
  126. package/dist/esnext/components/Image/index.d.ts +1 -0
  127. package/dist/esnext/components/Image/index.js +1 -0
  128. package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.d.ts +6 -0
  129. package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.js +14 -0
  130. package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.d.ts +8 -0
  131. package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.js +2 -0
  132. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.d.ts +4 -0
  133. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +8 -0
  134. package/dist/esnext/components/LocalizationProvider/LocalizationQuery.d.ts +18 -0
  135. package/dist/esnext/components/LocalizationProvider/LocalizationQuery.js +1 -0
  136. package/dist/esnext/components/LocalizationProvider/hooks.d.ts +8 -0
  137. package/dist/esnext/components/LocalizationProvider/hooks.js +17 -0
  138. package/dist/esnext/components/LocalizationProvider/index.d.ts +2 -0
  139. package/dist/esnext/components/LocalizationProvider/index.js +2 -0
  140. package/dist/esnext/components/MediaFile/MediaFile.d.ts +19 -0
  141. package/dist/esnext/components/MediaFile/MediaFile.js +22 -0
  142. package/dist/esnext/components/MediaFile/MediaFileFragment.d.ts +22 -0
  143. package/dist/esnext/components/MediaFile/MediaFileFragment.js +1 -0
  144. package/dist/esnext/components/MediaFile/index.d.ts +1 -0
  145. package/dist/esnext/components/MediaFile/index.js +1 -0
  146. package/dist/esnext/components/Metafield/Metafield.client.d.ts +8 -0
  147. package/dist/esnext/components/Metafield/Metafield.client.js +50 -0
  148. package/dist/esnext/components/Metafield/MetafieldFragment.d.ts +4 -0
  149. package/dist/esnext/components/Metafield/MetafieldFragment.js +1 -0
  150. package/dist/esnext/components/Metafield/components/StarRating/StarRating.d.ts +12 -0
  151. package/dist/esnext/components/Metafield/components/StarRating/StarRating.js +48 -0
  152. package/dist/esnext/components/Metafield/components/StarRating/index.d.ts +1 -0
  153. package/dist/esnext/components/Metafield/components/StarRating/index.js +1 -0
  154. package/dist/esnext/components/Metafield/components/index.d.ts +1 -0
  155. package/dist/esnext/components/Metafield/components/index.js +1 -0
  156. package/dist/esnext/components/Metafield/index.d.ts +3 -0
  157. package/dist/esnext/components/Metafield/index.js +1 -0
  158. package/dist/esnext/components/Metafield/types.d.ts +4 -0
  159. package/dist/esnext/components/Metafield/types.js +1 -0
  160. package/dist/esnext/components/Model3D/Model3D.client.d.ts +25 -0
  161. package/dist/esnext/components/Model3D/Model3D.client.js +30 -0
  162. package/dist/esnext/components/Model3D/Model3DFragment.d.ts +11 -0
  163. package/dist/esnext/components/Model3D/Model3DFragment.js +1 -0
  164. package/dist/esnext/components/Model3D/index.d.ts +1 -0
  165. package/dist/esnext/components/Model3D/index.js +1 -0
  166. package/dist/esnext/components/Money/Money.client.d.ts +7 -0
  167. package/dist/esnext/components/Money/Money.client.js +10 -0
  168. package/dist/esnext/components/Money/index.d.ts +1 -0
  169. package/dist/esnext/components/Money/index.js +1 -0
  170. package/dist/esnext/components/ProductDescription/ProductDescription.client.d.ts +3 -0
  171. package/dist/esnext/components/ProductDescription/ProductDescription.client.js +10 -0
  172. package/dist/esnext/components/ProductDescription/index.d.ts +1 -0
  173. package/dist/esnext/components/ProductDescription/index.js +1 -0
  174. package/dist/esnext/components/ProductMetafield/ProductMetafield.client.d.ts +7 -0
  175. package/dist/esnext/components/ProductMetafield/ProductMetafield.client.js +16 -0
  176. package/dist/esnext/components/ProductMetafield/index.d.ts +1 -0
  177. package/dist/esnext/components/ProductMetafield/index.js +1 -0
  178. package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +7 -0
  179. package/dist/esnext/components/ProductPrice/ProductPrice.client.js +32 -0
  180. package/dist/esnext/components/ProductPrice/index.d.ts +1 -0
  181. package/dist/esnext/components/ProductPrice/index.js +1 -0
  182. package/dist/esnext/components/ProductProvider/ProductProvider.client.d.ts +7 -0
  183. package/dist/esnext/components/ProductProvider/ProductProvider.client.js +35 -0
  184. package/dist/esnext/components/ProductProvider/ProductProviderFragment.d.ts +96 -0
  185. package/dist/esnext/components/ProductProvider/ProductProviderFragment.js +1 -0
  186. package/dist/esnext/components/ProductProvider/context.d.ts +13 -0
  187. package/dist/esnext/components/ProductProvider/context.js +2 -0
  188. package/dist/esnext/components/ProductProvider/hooks.d.ts +1 -0
  189. package/dist/esnext/components/ProductProvider/hooks.js +6 -0
  190. package/dist/esnext/components/ProductProvider/index.d.ts +2 -0
  191. package/dist/esnext/components/ProductProvider/index.js +2 -0
  192. package/dist/esnext/components/ProductProvider/types.d.ts +5 -0
  193. package/dist/esnext/components/ProductProvider/types.js +1 -0
  194. package/dist/esnext/components/ProductTitle/ProductTitle.client.d.ts +3 -0
  195. package/dist/esnext/components/ProductTitle/ProductTitle.client.js +11 -0
  196. package/dist/esnext/components/ProductTitle/index.d.ts +1 -0
  197. package/dist/esnext/components/ProductTitle/index.js +1 -0
  198. package/dist/esnext/components/RawHtml/RawHtml.d.ts +7 -0
  199. package/dist/esnext/components/RawHtml/RawHtml.js +13 -0
  200. package/dist/esnext/components/RawHtml/index.d.ts +1 -0
  201. package/dist/esnext/components/RawHtml/index.js +1 -0
  202. package/dist/esnext/components/SelectedVariantAddToCartButton/SelectedVariantAddToCartButton.client.d.ts +6 -0
  203. package/dist/esnext/components/SelectedVariantAddToCartButton/SelectedVariantAddToCartButton.client.js +12 -0
  204. package/dist/esnext/components/SelectedVariantAddToCartButton/index.d.ts +1 -0
  205. package/dist/esnext/components/SelectedVariantAddToCartButton/index.js +1 -0
  206. package/dist/esnext/components/SelectedVariantBuyNowButton/SelectedVariantBuyNowButton.d.ts +4 -0
  207. package/dist/esnext/components/SelectedVariantBuyNowButton/SelectedVariantBuyNowButton.js +12 -0
  208. package/dist/esnext/components/SelectedVariantBuyNowButton/index.d.ts +1 -0
  209. package/dist/esnext/components/SelectedVariantBuyNowButton/index.js +1 -0
  210. package/dist/esnext/components/SelectedVariantImage/SelectedVariantImage.client.d.ts +6 -0
  211. package/dist/esnext/components/SelectedVariantImage/SelectedVariantImage.client.js +12 -0
  212. package/dist/esnext/components/SelectedVariantImage/index.d.ts +1 -0
  213. package/dist/esnext/components/SelectedVariantImage/index.js +1 -0
  214. package/dist/esnext/components/SelectedVariantMetafield/SelectedVariantMetafield.client.d.ts +7 -0
  215. package/dist/esnext/components/SelectedVariantMetafield/SelectedVariantMetafield.client.js +15 -0
  216. package/dist/esnext/components/SelectedVariantMetafield/index.d.ts +1 -0
  217. package/dist/esnext/components/SelectedVariantMetafield/index.js +1 -0
  218. package/dist/esnext/components/SelectedVariantPrice/SelectedVariantPrice.client.d.ts +6 -0
  219. package/dist/esnext/components/SelectedVariantPrice/SelectedVariantPrice.client.js +18 -0
  220. package/dist/esnext/components/SelectedVariantPrice/index.d.ts +1 -0
  221. package/dist/esnext/components/SelectedVariantPrice/index.js +1 -0
  222. package/dist/esnext/components/SelectedVariantShopPayButton/SelectedVariantShopPayButton.client.d.ts +2 -0
  223. package/dist/esnext/components/SelectedVariantShopPayButton/SelectedVariantShopPayButton.client.js +12 -0
  224. package/dist/esnext/components/SelectedVariantShopPayButton/index.d.ts +1 -0
  225. package/dist/esnext/components/SelectedVariantShopPayButton/index.js +1 -0
  226. package/dist/esnext/components/SelectedVariantUnitPrice/SelectedVariantUnitPrice.client.d.ts +3 -0
  227. package/dist/esnext/components/SelectedVariantUnitPrice/SelectedVariantUnitPrice.client.js +12 -0
  228. package/dist/esnext/components/SelectedVariantUnitPrice/index.d.ts +1 -0
  229. package/dist/esnext/components/SelectedVariantUnitPrice/index.js +1 -0
  230. package/dist/esnext/components/ShopPayButton/ShopPayButton.client.d.ts +15 -0
  231. package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +32 -0
  232. package/dist/esnext/components/ShopPayButton/index.d.ts +1 -0
  233. package/dist/esnext/components/ShopPayButton/index.js +1 -0
  234. package/dist/esnext/components/UnitPrice/UnitPrice.client.d.ts +8 -0
  235. package/dist/esnext/components/UnitPrice/UnitPrice.client.js +16 -0
  236. package/dist/esnext/components/UnitPrice/index.d.ts +1 -0
  237. package/dist/esnext/components/UnitPrice/index.js +1 -0
  238. package/dist/esnext/components/Video/Video.d.ts +13 -0
  239. package/dist/esnext/components/Video/Video.js +8 -0
  240. package/dist/esnext/components/Video/VideoFragment.d.ts +11 -0
  241. package/dist/esnext/components/Video/VideoFragment.js +1 -0
  242. package/dist/esnext/components/Video/index.d.ts +1 -0
  243. package/dist/esnext/components/Video/index.js +1 -0
  244. package/dist/esnext/components/index.d.ts +41 -0
  245. package/dist/esnext/components/index.js +87 -0
  246. package/dist/esnext/components/types.d.ts +73 -0
  247. package/dist/esnext/components/types.js +10 -0
  248. package/dist/esnext/entry-client.d.ts +3 -0
  249. package/dist/esnext/entry-client.js +36 -0
  250. package/dist/esnext/entry-server.d.ts +3 -0
  251. package/dist/esnext/entry-server.js +286 -0
  252. package/dist/esnext/foundation/ClientMarker/ClientMarker.d.ts +10 -0
  253. package/dist/esnext/foundation/ClientMarker/ClientMarker.js +25 -0
  254. package/dist/esnext/foundation/ClientMarker/index.d.ts +1 -0
  255. package/dist/esnext/foundation/ClientMarker/index.js +1 -0
  256. package/dist/esnext/foundation/Hydration/Cache.client.d.ts +9 -0
  257. package/dist/esnext/foundation/Hydration/Cache.client.js +131 -0
  258. package/dist/esnext/foundation/Hydration/ClientComponents.server.d.ts +13 -0
  259. package/dist/esnext/foundation/Hydration/ClientComponents.server.js +18 -0
  260. package/dist/esnext/foundation/Hydration/Html.d.ts +5 -0
  261. package/dist/esnext/foundation/Hydration/Html.js +9 -0
  262. package/dist/esnext/foundation/Hydration/HydrationContext.server.d.ts +1 -0
  263. package/dist/esnext/foundation/Hydration/HydrationContext.server.js +2 -0
  264. package/dist/esnext/foundation/Hydration/ServerComponentRequest.server.d.ts +13 -0
  265. package/dist/esnext/foundation/Hydration/ServerComponentRequest.server.js +39 -0
  266. package/dist/esnext/foundation/Hydration/ServerComponentResponse.server.d.ts +18 -0
  267. package/dist/esnext/foundation/Hydration/ServerComponentResponse.server.js +35 -0
  268. package/dist/esnext/foundation/Hydration/react-utils.d.ts +5 -0
  269. package/dist/esnext/foundation/Hydration/react-utils.js +55 -0
  270. package/dist/esnext/foundation/Hydration/wire.server.d.ts +4 -0
  271. package/dist/esnext/foundation/Hydration/wire.server.js +75 -0
  272. package/dist/esnext/foundation/Hydration/writer.server.d.ts +14 -0
  273. package/dist/esnext/foundation/Hydration/writer.server.js +29 -0
  274. package/dist/esnext/foundation/Router/DefaultRoutes.d.ts +20 -0
  275. package/dist/esnext/foundation/Router/DefaultRoutes.js +54 -0
  276. package/dist/esnext/foundation/Router/ServerStateRouter.client.d.ts +6 -0
  277. package/dist/esnext/foundation/Router/ServerStateRouter.client.js +27 -0
  278. package/dist/esnext/foundation/Router/index.d.ts +1 -0
  279. package/dist/esnext/foundation/Router/index.js +1 -0
  280. package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.client.d.ts +11 -0
  281. package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.client.js +48 -0
  282. package/dist/esnext/foundation/ServerStateProvider/index.d.ts +1 -0
  283. package/dist/esnext/foundation/ServerStateProvider/index.js +1 -0
  284. package/dist/esnext/foundation/ShopifyProvider/ShopifyContext.d.ts +1 -0
  285. package/dist/esnext/foundation/ShopifyProvider/ShopifyContext.js +2 -0
  286. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.d.ts +3 -0
  287. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.js +11 -0
  288. package/dist/esnext/foundation/ShopifyProvider/ShopifyServerProvider.server.d.ts +8 -0
  289. package/dist/esnext/foundation/ShopifyProvider/ShopifyServerProvider.server.js +7 -0
  290. package/dist/esnext/foundation/ShopifyProvider/hooks.d.ts +2 -0
  291. package/dist/esnext/foundation/ShopifyProvider/hooks.js +9 -0
  292. package/dist/esnext/foundation/ShopifyProvider/index.d.ts +2 -0
  293. package/dist/esnext/foundation/ShopifyProvider/index.js +2 -0
  294. package/dist/esnext/foundation/ShopifyProvider/types.d.ts +12 -0
  295. package/dist/esnext/foundation/ShopifyProvider/types.js +1 -0
  296. package/dist/esnext/foundation/index.d.ts +4 -0
  297. package/dist/esnext/foundation/index.js +4 -0
  298. package/dist/esnext/framework/graphiql.d.ts +1 -0
  299. package/dist/esnext/framework/graphiql.js +39 -0
  300. package/dist/esnext/framework/middleware.d.ts +17 -0
  301. package/dist/esnext/framework/middleware.js +116 -0
  302. package/dist/esnext/framework/plugin.d.ts +3 -0
  303. package/dist/esnext/framework/plugin.js +14 -0
  304. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
  305. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +43 -0
  306. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +4 -0
  307. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +28 -0
  308. package/dist/esnext/framework/plugins/vite-plugin-react-server-components-shim.d.ts +3 -0
  309. package/dist/esnext/framework/plugins/vite-plugin-react-server-components-shim.js +123 -0
  310. package/dist/esnext/framework/server-components.d.ts +12 -0
  311. package/dist/esnext/framework/server-components.js +72 -0
  312. package/dist/esnext/graphql/graphql-constants.d.ts +1295 -0
  313. package/dist/esnext/graphql/graphql-constants.js +2482 -0
  314. package/dist/esnext/graphql/types/types.d.ts +5583 -0
  315. package/dist/esnext/graphql/types/types.js +1414 -0
  316. package/dist/esnext/handle-event.d.ts +20 -0
  317. package/dist/esnext/handle-event.js +140 -0
  318. package/dist/esnext/handle-worker-event.d.ts +11 -0
  319. package/dist/esnext/handle-worker-event.js +14 -0
  320. package/dist/esnext/hooks/index.d.ts +5 -0
  321. package/dist/esnext/hooks/index.js +5 -0
  322. package/dist/esnext/hooks/useMeasurement/hooks.d.ts +9 -0
  323. package/dist/esnext/hooks/useMeasurement/hooks.js +13 -0
  324. package/dist/esnext/hooks/useMeasurement/index.d.ts +1 -0
  325. package/dist/esnext/hooks/useMeasurement/index.js +1 -0
  326. package/dist/esnext/hooks/useMoney/hooks.d.ts +11 -0
  327. package/dist/esnext/hooks/useMoney/hooks.js +33 -0
  328. package/dist/esnext/hooks/useMoney/index.d.ts +1 -0
  329. package/dist/esnext/hooks/useMoney/index.js +1 -0
  330. package/dist/esnext/hooks/useParsedMetafields/hooks.d.ts +3 -0
  331. package/dist/esnext/hooks/useParsedMetafields/hooks.js +15 -0
  332. package/dist/esnext/hooks/useParsedMetafields/index.d.ts +1 -0
  333. package/dist/esnext/hooks/useParsedMetafields/index.js +1 -0
  334. package/dist/esnext/hooks/useProductOptions/helpers.d.ts +4 -0
  335. package/dist/esnext/hooks/useProductOptions/helpers.js +33 -0
  336. package/dist/esnext/hooks/useProductOptions/index.d.ts +2 -0
  337. package/dist/esnext/hooks/useProductOptions/index.js +2 -0
  338. package/dist/esnext/hooks/useProductOptions/types.d.ts +50 -0
  339. package/dist/esnext/hooks/useProductOptions/types.js +1 -0
  340. package/dist/esnext/hooks/useProductOptions/useProductOptions.d.ts +23 -0
  341. package/dist/esnext/hooks/useProductOptions/useProductOptions.js +84 -0
  342. package/dist/esnext/hooks/useQuery/QueryProvider.d.ts +6 -0
  343. package/dist/esnext/hooks/useQuery/QueryProvider.js +13 -0
  344. package/dist/esnext/hooks/useQuery/hooks.d.ts +12 -0
  345. package/dist/esnext/hooks/useQuery/hooks.js +28 -0
  346. package/dist/esnext/hooks/useQuery/index.d.ts +2 -0
  347. package/dist/esnext/hooks/useQuery/index.js +2 -0
  348. package/dist/esnext/hooks/useShopQuery/hooks.d.ts +9 -0
  349. package/dist/esnext/hooks/useShopQuery/hooks.js +34 -0
  350. package/dist/esnext/hooks/useShopQuery/index.d.ts +1 -0
  351. package/dist/esnext/hooks/useShopQuery/index.js +1 -0
  352. package/dist/esnext/index.d.ts +9 -0
  353. package/dist/esnext/index.js +11 -0
  354. package/dist/esnext/types.d.ts +62 -0
  355. package/dist/esnext/types.js +1 -0
  356. package/dist/esnext/utilities/connections.d.ts +2 -0
  357. package/dist/esnext/utilities/connections.js +4 -0
  358. package/dist/esnext/utilities/environment.d.ts +2 -0
  359. package/dist/esnext/utilities/environment.js +2 -0
  360. package/dist/esnext/utilities/image_size.d.ts +17 -0
  361. package/dist/esnext/utilities/image_size.js +45 -0
  362. package/dist/esnext/utilities/index.d.ts +8 -0
  363. package/dist/esnext/utilities/index.js +8 -0
  364. package/dist/esnext/utilities/meaurement.d.ts +3 -0
  365. package/dist/esnext/utilities/meaurement.js +98 -0
  366. package/dist/esnext/utilities/metafields.d.ts +2 -0
  367. package/dist/esnext/utilities/metafields.js +32 -0
  368. package/dist/esnext/utilities/script_loader.d.ts +3 -0
  369. package/dist/esnext/utilities/script_loader.js +23 -0
  370. package/dist/esnext/utilities/suspense.d.ts +7 -0
  371. package/dist/esnext/utilities/suspense.js +32 -0
  372. package/dist/esnext/utilities/video_parameters.d.ts +47 -0
  373. package/dist/esnext/utilities/video_parameters.js +22 -0
  374. package/dist/esnext/version.d.ts +1 -0
  375. package/dist/esnext/version.js +1 -0
  376. package/dist/node/foundation/ClientMarker/ClientMarker.d.ts +10 -0
  377. package/dist/node/foundation/ClientMarker/ClientMarker.js +48 -0
  378. package/dist/node/foundation/ClientMarker/index.d.ts +1 -0
  379. package/dist/node/foundation/ClientMarker/index.js +13 -0
  380. package/dist/node/foundation/Hydration/HydrationContext.server.d.ts +1 -0
  381. package/dist/node/foundation/Hydration/HydrationContext.server.js +5 -0
  382. package/dist/node/foundation/Hydration/ServerComponentRequest.server.d.ts +13 -0
  383. package/dist/node/foundation/Hydration/ServerComponentRequest.server.js +43 -0
  384. package/dist/node/foundation/Hydration/ServerComponentResponse.server.d.ts +18 -0
  385. package/dist/node/foundation/Hydration/ServerComponentResponse.server.js +39 -0
  386. package/dist/node/foundation/Hydration/react-utils.d.ts +5 -0
  387. package/dist/node/foundation/Hydration/react-utils.js +63 -0
  388. package/dist/node/foundation/Router/DefaultRoutes.d.ts +20 -0
  389. package/dist/node/foundation/Router/DefaultRoutes.js +78 -0
  390. package/dist/node/foundation/Router/index.d.ts +1 -0
  391. package/dist/node/foundation/Router/index.js +5 -0
  392. package/dist/node/foundation/ShopifyProvider/ShopifyContext.d.ts +1 -0
  393. package/dist/node/foundation/ShopifyProvider/ShopifyContext.js +5 -0
  394. package/dist/node/foundation/ShopifyProvider/ShopifyProvider.d.ts +3 -0
  395. package/dist/node/foundation/ShopifyProvider/ShopifyProvider.js +34 -0
  396. package/dist/node/foundation/ShopifyProvider/ShopifyServerProvider.server.d.ts +8 -0
  397. package/dist/node/foundation/ShopifyProvider/ShopifyServerProvider.server.js +14 -0
  398. package/dist/node/foundation/ShopifyProvider/hooks.d.ts +2 -0
  399. package/dist/node/foundation/ShopifyProvider/hooks.js +13 -0
  400. package/dist/node/foundation/ShopifyProvider/index.d.ts +2 -0
  401. package/dist/node/foundation/ShopifyProvider/index.js +8 -0
  402. package/dist/node/foundation/ShopifyProvider/types.d.ts +12 -0
  403. package/dist/node/foundation/ShopifyProvider/types.js +2 -0
  404. package/dist/node/foundation/index.d.ts +4 -0
  405. package/dist/node/foundation/index.js +13 -0
  406. package/dist/node/framework/graphiql.d.ts +1 -0
  407. package/dist/node/framework/graphiql.js +43 -0
  408. package/dist/node/framework/middleware.d.ts +17 -0
  409. package/dist/node/framework/middleware.js +141 -0
  410. package/dist/node/framework/plugin.d.ts +3 -0
  411. package/dist/node/framework/plugin.js +19 -0
  412. package/dist/node/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
  413. package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +45 -0
  414. package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +4 -0
  415. package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +33 -0
  416. package/dist/node/framework/plugins/vite-plugin-react-server-components-shim.d.ts +3 -0
  417. package/dist/node/framework/plugins/vite-plugin-react-server-components-shim.js +128 -0
  418. package/dist/node/framework/server-components.d.ts +12 -0
  419. package/dist/node/framework/server-components.js +77 -0
  420. package/dist/node/graphql/types/types.d.ts +5583 -0
  421. package/dist/node/graphql/types/types.js +1417 -0
  422. package/dist/node/handle-event.d.ts +20 -0
  423. package/dist/node/handle-event.js +143 -0
  424. package/dist/node/hooks/useQuery/QueryProvider.d.ts +6 -0
  425. package/dist/node/hooks/useQuery/QueryProvider.js +20 -0
  426. package/dist/node/hooks/useQuery/hooks.d.ts +12 -0
  427. package/dist/node/hooks/useQuery/hooks.js +32 -0
  428. package/dist/node/hooks/useQuery/index.d.ts +2 -0
  429. package/dist/node/hooks/useQuery/index.js +14 -0
  430. package/dist/node/types.d.ts +62 -0
  431. package/dist/node/types.js +2 -0
  432. package/dist/worker/foundation/Hydration/ServerComponentRequest.server.d.ts +13 -0
  433. package/dist/worker/foundation/Hydration/ServerComponentRequest.server.js +39 -0
  434. package/dist/worker/foundation/Hydration/ServerComponentResponse.server.d.ts +18 -0
  435. package/dist/worker/foundation/Hydration/ServerComponentResponse.server.js +35 -0
  436. package/dist/worker/graphql/types/types.d.ts +5583 -0
  437. package/dist/worker/graphql/types/types.js +1414 -0
  438. package/dist/worker/handle-event.d.ts +20 -0
  439. package/dist/worker/handle-event.js +140 -0
  440. package/dist/worker/handle-worker-event.d.ts +11 -0
  441. package/dist/worker/handle-worker-event.js +14 -0
  442. package/dist/worker/types.d.ts +62 -0
  443. package/dist/worker/types.js +1 -0
  444. package/entry-client.d.ts +1 -0
  445. package/entry-client.js +1 -0
  446. package/entry-server.d.ts +1 -0
  447. package/entry-server.js +1 -0
  448. package/marker.js +1 -0
  449. package/middleware.d.ts +1 -0
  450. package/middleware.js +1 -0
  451. package/package.json +98 -0
  452. package/plugin.d.ts +1 -0
  453. package/plugin.js +1 -0
  454. package/worker.js +1 -0
@@ -0,0 +1,422 @@
1
+ import * as React from 'react';
2
+ import { flattenConnection } from '../../utilities';
3
+ import { CartLineAdd, CartCreate, CartLineRemove, CartLineUpdate, CartNoteUpdate, CartBuyerIdentityUpdate, CartAttributesUpdate, CartDiscountCodesUpdate, } from '../../graphql/graphql-constants';
4
+ import { useCartFetch } from './hooks';
5
+ import { CartContext } from './context';
6
+ import { CART_COOKIE_TTL_DAYS, CART_ID_COOKIE } from './constants';
7
+ function cartReducer(state, event) {
8
+ switch (state.status) {
9
+ case 'uninitialized': {
10
+ if (event.type === 'cartCreate') {
11
+ return [
12
+ {
13
+ status: 'creating',
14
+ },
15
+ {
16
+ type: 'cartCreate',
17
+ cart: event.cart,
18
+ },
19
+ ];
20
+ }
21
+ break;
22
+ }
23
+ case 'creating': {
24
+ switch (event.type) {
25
+ case 'resolve': {
26
+ return [
27
+ {
28
+ status: 'idle',
29
+ cart: event.cart,
30
+ },
31
+ ];
32
+ }
33
+ case 'reject': {
34
+ return [{ status: 'uninitialized', error: event.error }];
35
+ }
36
+ }
37
+ break;
38
+ }
39
+ case 'updating': {
40
+ switch (event.type) {
41
+ case 'resolve': {
42
+ return [{ status: 'idle', cart: event.cart }];
43
+ }
44
+ case 'reject': {
45
+ return [
46
+ {
47
+ status: 'idle',
48
+ cart: state.lastValidCart,
49
+ error: event.error,
50
+ },
51
+ ];
52
+ }
53
+ }
54
+ }
55
+ case 'updating':
56
+ case 'idle': {
57
+ switch (event.type) {
58
+ case 'addLineItem': {
59
+ return [
60
+ {
61
+ status: 'updating',
62
+ cart: state.cart,
63
+ lastValidCart: state.cart,
64
+ },
65
+ {
66
+ type: 'addLineItem',
67
+ cartId: state.cart.id,
68
+ lines: event.lines,
69
+ },
70
+ ];
71
+ }
72
+ case 'removeLineItem': {
73
+ return [
74
+ {
75
+ status: 'updating',
76
+ cart: {
77
+ ...state.cart,
78
+ lines: state.cart.lines.filter(({ id }) => !event.lines.includes(id)),
79
+ },
80
+ lastValidCart: state.cart,
81
+ },
82
+ {
83
+ type: 'removeLineItem',
84
+ cartId: state.cart.id,
85
+ lines: event.lines,
86
+ },
87
+ ];
88
+ }
89
+ case 'updateLineItem': {
90
+ return [
91
+ {
92
+ status: 'updating',
93
+ cart: {
94
+ ...state.cart,
95
+ lines: state.cart.lines.map((line) => {
96
+ const updatedLine = event.lines.find(({ id }) => id === line.id);
97
+ if (updatedLine && updatedLine.quantity) {
98
+ return {
99
+ ...line,
100
+ quantity: updatedLine.quantity,
101
+ };
102
+ }
103
+ return line;
104
+ }),
105
+ },
106
+ lastValidCart: state.cart,
107
+ },
108
+ {
109
+ type: 'updateLineItem',
110
+ cartId: state.cart.id,
111
+ lines: event.lines,
112
+ },
113
+ ];
114
+ }
115
+ case 'noteUpdate': {
116
+ return [
117
+ { status: 'updating', cart: state.cart, lastValidCart: state.cart },
118
+ { type: 'noteUpdate', cartId: state.cart.id, note: event.note },
119
+ ];
120
+ }
121
+ case 'buyerIdentityUpdate': {
122
+ return [
123
+ { status: 'updating', cart: state.cart, lastValidCart: state.cart },
124
+ {
125
+ type: 'buyerIdentityUpdate',
126
+ cartId: state.cart.id,
127
+ buyerIdentity: event.buyerIdentity,
128
+ },
129
+ ];
130
+ }
131
+ case 'cartAttributesUpdate': {
132
+ return [
133
+ { status: 'updating', cart: state.cart, lastValidCart: state.cart },
134
+ {
135
+ type: 'cartAttributesUpdate',
136
+ cartId: state.cart.id,
137
+ attributes: event.attributes,
138
+ },
139
+ ];
140
+ }
141
+ case 'discountCodesUpdate': {
142
+ return [
143
+ { status: 'updating', cart: state.cart, lastValidCart: state.cart },
144
+ {
145
+ type: 'discountCodesUpdate',
146
+ cartId: state.cart.id,
147
+ discountCodes: event.discountCodes,
148
+ },
149
+ ];
150
+ }
151
+ }
152
+ }
153
+ }
154
+ throw new Error(`Cannot dispatch event (${event.type}) for current cart state (${state.status})`);
155
+ }
156
+ export function CartProvider({ children, cart, numCartLines, }) {
157
+ const initialStatus = cart
158
+ ? [{ status: 'idle', cart: cartFromGraphQL(cart) }]
159
+ : [{ status: 'uninitialized' }];
160
+ const [[state, effect], dispatch] = React.useReducer(([state], dispatch) => cartReducer(state, dispatch), initialStatus);
161
+ const fetch = useCartFetch();
162
+ React.useEffect(() => {
163
+ let cancelled = false;
164
+ async function runEffect(effect) {
165
+ var _a, _b, _c, _d, _e, _f, _g, _h;
166
+ switch (effect.type) {
167
+ case 'cartCreate': {
168
+ const { data, error } = await fetch({
169
+ query: CartCreate,
170
+ variables: {
171
+ input: effect.cart,
172
+ numCartLines,
173
+ },
174
+ });
175
+ if (cancelled)
176
+ return;
177
+ if (error) {
178
+ dispatch({
179
+ type: 'reject',
180
+ error: error,
181
+ });
182
+ }
183
+ if ((_a = data === null || data === void 0 ? void 0 : data.cartCreate) === null || _a === void 0 ? void 0 : _a.cart) {
184
+ dispatch({
185
+ type: 'resolve',
186
+ cart: cartFromGraphQL(data.cartCreate.cart),
187
+ });
188
+ const expires = new Date(Date.now() + CART_COOKIE_TTL_DAYS * 24 * 60 * 60 * 1000).toUTCString();
189
+ document.cookie = `${CART_ID_COOKIE}=${data.cartCreate.cart.id}; Path=/; Expires=${expires}`;
190
+ }
191
+ break;
192
+ }
193
+ case 'addLineItem': {
194
+ const { data, error } = await fetch({
195
+ query: CartLineAdd,
196
+ variables: {
197
+ cartId: effect.cartId,
198
+ lines: effect.lines,
199
+ numCartLines,
200
+ },
201
+ });
202
+ if (cancelled)
203
+ return;
204
+ if (error) {
205
+ dispatch({
206
+ type: 'reject',
207
+ error: error,
208
+ });
209
+ }
210
+ if ((_b = data === null || data === void 0 ? void 0 : data.cartLinesAdd) === null || _b === void 0 ? void 0 : _b.cart) {
211
+ dispatch({
212
+ type: 'resolve',
213
+ cart: cartFromGraphQL(data.cartLinesAdd.cart),
214
+ });
215
+ }
216
+ break;
217
+ }
218
+ case 'removeLineItem': {
219
+ const { data, error } = await fetch({
220
+ query: CartLineRemove,
221
+ variables: {
222
+ cartId: effect.cartId,
223
+ lines: effect.lines,
224
+ numCartLines,
225
+ },
226
+ });
227
+ if (cancelled)
228
+ return;
229
+ if (error) {
230
+ dispatch({
231
+ type: 'reject',
232
+ error,
233
+ });
234
+ }
235
+ if ((_c = data === null || data === void 0 ? void 0 : data.cartLinesRemove) === null || _c === void 0 ? void 0 : _c.cart) {
236
+ dispatch({
237
+ type: 'resolve',
238
+ cart: cartFromGraphQL(data.cartLinesRemove.cart),
239
+ });
240
+ }
241
+ break;
242
+ }
243
+ case 'updateLineItem': {
244
+ const { data, error } = await fetch({
245
+ query: CartLineUpdate,
246
+ variables: {
247
+ cartId: effect.cartId,
248
+ lines: effect.lines,
249
+ numCartLines,
250
+ },
251
+ });
252
+ if (cancelled)
253
+ return;
254
+ if (error) {
255
+ dispatch({
256
+ type: 'reject',
257
+ error: error,
258
+ });
259
+ }
260
+ if ((_d = data === null || data === void 0 ? void 0 : data.cartLinesUpdate) === null || _d === void 0 ? void 0 : _d.cart) {
261
+ dispatch({
262
+ type: 'resolve',
263
+ cart: cartFromGraphQL(data.cartLinesUpdate.cart),
264
+ });
265
+ }
266
+ break;
267
+ }
268
+ case 'noteUpdate': {
269
+ const { data, error } = await fetch({
270
+ query: CartNoteUpdate,
271
+ variables: {
272
+ cartId: effect.cartId,
273
+ note: effect.note,
274
+ numCartLines,
275
+ },
276
+ });
277
+ if (cancelled)
278
+ return;
279
+ if (error) {
280
+ dispatch({
281
+ type: 'reject',
282
+ error: error,
283
+ });
284
+ }
285
+ if ((_e = data === null || data === void 0 ? void 0 : data.cartNoteUpdate) === null || _e === void 0 ? void 0 : _e.cart) {
286
+ dispatch({
287
+ type: 'resolve',
288
+ cart: cartFromGraphQL(data.cartNoteUpdate.cart),
289
+ });
290
+ }
291
+ break;
292
+ }
293
+ case 'buyerIdentityUpdate': {
294
+ const { data, error } = await fetch({
295
+ query: CartBuyerIdentityUpdate,
296
+ variables: {
297
+ cartId: effect.cartId,
298
+ buyerIdentity: effect.buyerIdentity,
299
+ numCartLines,
300
+ },
301
+ });
302
+ if (cancelled)
303
+ return;
304
+ if (error) {
305
+ dispatch({
306
+ type: 'reject',
307
+ error: error,
308
+ });
309
+ }
310
+ if ((_f = data === null || data === void 0 ? void 0 : data.cartBuyerIdentityUpdate) === null || _f === void 0 ? void 0 : _f.cart) {
311
+ dispatch({
312
+ type: 'resolve',
313
+ cart: cartFromGraphQL(data.cartBuyerIdentityUpdate.cart),
314
+ });
315
+ }
316
+ break;
317
+ }
318
+ case 'cartAttributesUpdate': {
319
+ const { data, error } = await fetch({
320
+ query: CartAttributesUpdate,
321
+ variables: {
322
+ cartId: effect.cartId,
323
+ attributes: effect.attributes,
324
+ numCartLines,
325
+ },
326
+ });
327
+ if (cancelled)
328
+ return;
329
+ if (error) {
330
+ dispatch({
331
+ type: 'reject',
332
+ error: error,
333
+ });
334
+ }
335
+ if ((_g = data === null || data === void 0 ? void 0 : data.cartAttributesUpdate) === null || _g === void 0 ? void 0 : _g.cart) {
336
+ dispatch({
337
+ type: 'resolve',
338
+ cart: cartFromGraphQL(data.cartAttributesUpdate.cart),
339
+ });
340
+ }
341
+ break;
342
+ }
343
+ case 'discountCodesUpdate': {
344
+ const { data, error } = await fetch({
345
+ query: CartDiscountCodesUpdate,
346
+ variables: {
347
+ cartId: effect.cartId,
348
+ discountCodes: effect.discountCodes,
349
+ numCartLines,
350
+ },
351
+ });
352
+ if (cancelled)
353
+ return;
354
+ if (error) {
355
+ dispatch({
356
+ type: 'reject',
357
+ error: error,
358
+ });
359
+ }
360
+ if ((_h = data === null || data === void 0 ? void 0 : data.cartDiscountCodesUpdate) === null || _h === void 0 ? void 0 : _h.cart) {
361
+ dispatch({
362
+ type: 'resolve',
363
+ cart: cartFromGraphQL(data.cartDiscountCodesUpdate.cart),
364
+ });
365
+ }
366
+ }
367
+ }
368
+ }
369
+ if (effect) {
370
+ runEffect(effect);
371
+ }
372
+ return () => {
373
+ cancelled = true;
374
+ };
375
+ }, [effect, dispatch, fetch, numCartLines]);
376
+ const cartContextValue = React.useMemo(() => {
377
+ return {
378
+ ...('cart' in state
379
+ ? state.cart
380
+ : {
381
+ lines: [],
382
+ attributes: [],
383
+ ...(cart ? cartFromGraphQL(cart) : {}),
384
+ }),
385
+ status: state.status,
386
+ error: 'error' in state ? state.error : undefined,
387
+ cartCreate(cart) {
388
+ dispatch({ type: 'cartCreate', cart: cart });
389
+ },
390
+ linesAdd(lines) {
391
+ dispatch({ type: 'addLineItem', lines });
392
+ },
393
+ linesRemove(lines) {
394
+ dispatch({ type: 'removeLineItem', lines });
395
+ },
396
+ linesUpdate(lines) {
397
+ dispatch({ type: 'updateLineItem', lines });
398
+ },
399
+ noteUpdate(note) {
400
+ dispatch({ type: 'noteUpdate', note });
401
+ },
402
+ buyerIdentityUpdate(buyerIdentity) {
403
+ dispatch({ type: 'buyerIdentityUpdate', buyerIdentity });
404
+ },
405
+ cartAttributesUpdate(attributes) {
406
+ dispatch({ type: 'cartAttributesUpdate', attributes });
407
+ },
408
+ discountCodesUpdate(discountCodes) {
409
+ dispatch({ type: 'discountCodesUpdate', discountCodes });
410
+ },
411
+ };
412
+ }, [state, cart]);
413
+ return (React.createElement(CartContext.Provider, { value: cartContextValue }, children));
414
+ }
415
+ function cartFromGraphQL(cart) {
416
+ var _a;
417
+ return {
418
+ ...cart,
419
+ lines: flattenConnection(cart.lines),
420
+ note: (_a = cart.note) !== null && _a !== void 0 ? _a : undefined,
421
+ };
422
+ }
@@ -0,0 +1,11 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { ServerComponentRequest } from '../../foundation/Hydration/ServerComponentRequest.server';
3
+ import { Cart } from './types';
4
+ export declare function CartServerProvider({ children, request, numCartLines, }: {
5
+ children: (props: {
6
+ cart?: Cart;
7
+ numCartLines?: number;
8
+ }) => ReactNode;
9
+ request: ServerComponentRequest;
10
+ numCartLines?: number;
11
+ }): React.ReactNode;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { CartQuery } from '../../graphql/graphql-constants';
3
+ import { useShopQuery } from '../../hooks/useShopQuery';
4
+ import { CART_ID_COOKIE } from './constants';
5
+ export function CartServerProvider({ children, request, numCartLines, }) {
6
+ const cartId = request.cookies.get(CART_ID_COOKIE);
7
+ return cartId ? (React.createElement(PopulatedCartProvider, { cartId: cartId, numCartLines: numCartLines }, children)) : (children({ numCartLines }));
8
+ }
9
+ function PopulatedCartProvider({ cartId, children, numCartLines }) {
10
+ const { data, errors } = useShopQuery({
11
+ query: CartQuery,
12
+ variables: { id: cartId, numCartLines },
13
+ });
14
+ if (!(data === null || data === void 0 ? void 0 : data.cart)) {
15
+ // TODO: Figure out how to expire the cookie when the cart no longer exists
16
+ console.warn('Cart failed to load', errors);
17
+ return children({ numCartLines });
18
+ }
19
+ return children({ cart: data.cart, numCartLines });
20
+ }
@@ -0,0 +1,2 @@
1
+ export declare const CART_ID_COOKIE = "shopifyCartId";
2
+ export declare const CART_COOKIE_TTL_DAYS = 14;
@@ -0,0 +1,2 @@
1
+ export const CART_ID_COOKIE = 'shopifyCartId';
2
+ export const CART_COOKIE_TTL_DAYS = 14;
@@ -0,0 +1,2 @@
1
+ import { CartWithActions } from './types';
2
+ export declare const CartContext: import("react").Context<CartWithActions | null>;
@@ -0,0 +1,2 @@
1
+ import { createContext } from 'react';
2
+ export const CartContext = createContext(null);
@@ -0,0 +1,18 @@
1
+ import * as Types from '../../../graphql/types/types';
2
+ import { CartFragmentFragment } from './CartFragment';
3
+ export declare type CartAttributesUpdateMutationVariables = Types.Exact<{
4
+ attributes: Array<Types.AttributeInput> | Types.AttributeInput;
5
+ cartId: Types.Scalars['ID'];
6
+ numCartLines?: Types.Maybe<Types.Scalars['Int']>;
7
+ }>;
8
+ export declare type CartAttributesUpdateMutation = {
9
+ __typename?: 'Mutation';
10
+ } & {
11
+ cartAttributesUpdate?: Types.Maybe<{
12
+ __typename?: 'CartAttributesUpdatePayload';
13
+ } & {
14
+ cart?: Types.Maybe<{
15
+ __typename?: 'Cart';
16
+ } & CartFragmentFragment>;
17
+ }>;
18
+ };
@@ -0,0 +1,18 @@
1
+ import * as Types from '../../../graphql/types/types';
2
+ import { CartFragmentFragment } from './CartFragment';
3
+ export declare type CartBuyerIdentityUpdateMutationVariables = Types.Exact<{
4
+ cartId: Types.Scalars['ID'];
5
+ buyerIdentity: Types.CartBuyerIdentityInput;
6
+ numCartLines?: Types.Maybe<Types.Scalars['Int']>;
7
+ }>;
8
+ export declare type CartBuyerIdentityUpdateMutation = {
9
+ __typename?: 'Mutation';
10
+ } & {
11
+ cartBuyerIdentityUpdate?: Types.Maybe<{
12
+ __typename?: 'CartBuyerIdentityUpdatePayload';
13
+ } & {
14
+ cart?: Types.Maybe<{
15
+ __typename?: 'Cart';
16
+ } & CartFragmentFragment>;
17
+ }>;
18
+ };
@@ -0,0 +1,17 @@
1
+ import * as Types from '../../../graphql/types/types';
2
+ import { CartFragmentFragment } from './CartFragment';
3
+ export declare type CartCreateMutationVariables = Types.Exact<{
4
+ input: Types.CartInput;
5
+ numCartLines?: Types.Maybe<Types.Scalars['Int']>;
6
+ }>;
7
+ export declare type CartCreateMutation = {
8
+ __typename?: 'Mutation';
9
+ } & {
10
+ cartCreate?: Types.Maybe<{
11
+ __typename?: 'CartCreatePayload';
12
+ } & {
13
+ cart?: Types.Maybe<{
14
+ __typename?: 'Cart';
15
+ } & CartFragmentFragment>;
16
+ }>;
17
+ };
@@ -0,0 +1,18 @@
1
+ import * as Types from '../../../graphql/types/types';
2
+ import { CartFragmentFragment } from './CartFragment';
3
+ export declare type CartDiscountCodesUpdateMutationVariables = Types.Exact<{
4
+ cartId: Types.Scalars['ID'];
5
+ discountCodes?: Types.Maybe<Array<Types.Scalars['String']> | Types.Scalars['String']>;
6
+ numCartLines?: Types.Maybe<Types.Scalars['Int']>;
7
+ }>;
8
+ export declare type CartDiscountCodesUpdateMutation = {
9
+ __typename?: 'Mutation';
10
+ } & {
11
+ cartDiscountCodesUpdate?: Types.Maybe<{
12
+ __typename?: 'CartDiscountCodesUpdatePayload';
13
+ } & {
14
+ cart?: Types.Maybe<{
15
+ __typename?: 'Cart';
16
+ } & CartFragmentFragment>;
17
+ }>;
18
+ };
@@ -0,0 +1,68 @@
1
+ import * as Types from '../../../graphql/types/types';
2
+ export declare type CartFragmentFragment = {
3
+ __typename?: 'Cart';
4
+ } & Pick<Types.Cart, 'id' | 'checkoutUrl' | 'note'> & {
5
+ buyerIdentity: {
6
+ __typename?: 'CartBuyerIdentity';
7
+ } & Pick<Types.CartBuyerIdentity, 'countryCode' | 'email' | 'phone'> & {
8
+ customer?: Types.Maybe<{
9
+ __typename?: 'Customer';
10
+ } & Pick<Types.Customer, 'id' | 'email' | 'firstName' | 'lastName' | 'displayName'>>;
11
+ };
12
+ lines: {
13
+ __typename?: 'CartLineConnection';
14
+ } & {
15
+ edges: Array<{
16
+ __typename?: 'CartLineEdge';
17
+ } & {
18
+ node: {
19
+ __typename?: 'CartLine';
20
+ } & Pick<Types.CartLine, 'id' | 'quantity'> & {
21
+ attributes: Array<{
22
+ __typename?: 'Attribute';
23
+ } & Pick<Types.Attribute, 'key' | 'value'>>;
24
+ merchandise: {
25
+ __typename?: 'ProductVariant';
26
+ } & Pick<Types.ProductVariant, 'id' | 'availableForSale' | 'requiresShipping' | 'title'> & {
27
+ compareAtPriceV2?: Types.Maybe<{
28
+ __typename?: 'MoneyV2';
29
+ } & Pick<Types.MoneyV2, 'amount' | 'currencyCode'>>;
30
+ priceV2: {
31
+ __typename?: 'MoneyV2';
32
+ } & Pick<Types.MoneyV2, 'amount' | 'currencyCode'>;
33
+ image?: Types.Maybe<{
34
+ __typename?: 'Image';
35
+ } & Pick<Types.Image, 'originalSrc' | 'altText'>>;
36
+ product: {
37
+ __typename?: 'Product';
38
+ } & Pick<Types.Product, 'handle' | 'title'>;
39
+ selectedOptions: Array<{
40
+ __typename?: 'SelectedOption';
41
+ } & Pick<Types.SelectedOption, 'name' | 'value'>>;
42
+ };
43
+ };
44
+ }>;
45
+ };
46
+ estimatedCost: {
47
+ __typename?: 'CartEstimatedCost';
48
+ } & {
49
+ subtotalAmount: {
50
+ __typename?: 'MoneyV2';
51
+ } & Pick<Types.MoneyV2, 'currencyCode' | 'amount'>;
52
+ totalAmount: {
53
+ __typename?: 'MoneyV2';
54
+ } & Pick<Types.MoneyV2, 'currencyCode' | 'amount'>;
55
+ totalDutyAmount?: Types.Maybe<{
56
+ __typename?: 'MoneyV2';
57
+ } & Pick<Types.MoneyV2, 'currencyCode' | 'amount'>>;
58
+ totalTaxAmount?: Types.Maybe<{
59
+ __typename?: 'MoneyV2';
60
+ } & Pick<Types.MoneyV2, 'currencyCode' | 'amount'>>;
61
+ };
62
+ attributes: Array<{
63
+ __typename?: 'Attribute';
64
+ } & Pick<Types.Attribute, 'key' | 'value'>>;
65
+ discountCodes: Array<{
66
+ __typename?: 'CartDiscountCode';
67
+ } & Pick<Types.CartDiscountCode, 'code'>>;
68
+ };
@@ -0,0 +1,18 @@
1
+ import * as Types from '../../../graphql/types/types';
2
+ import { CartFragmentFragment } from './CartFragment';
3
+ export declare type CartLineAddMutationVariables = Types.Exact<{
4
+ cartId: Types.Scalars['ID'];
5
+ lines: Array<Types.CartLineInput> | Types.CartLineInput;
6
+ numCartLines?: Types.Maybe<Types.Scalars['Int']>;
7
+ }>;
8
+ export declare type CartLineAddMutation = {
9
+ __typename?: 'Mutation';
10
+ } & {
11
+ cartLinesAdd?: Types.Maybe<{
12
+ __typename?: 'CartLinesAddPayload';
13
+ } & {
14
+ cart?: Types.Maybe<{
15
+ __typename?: 'Cart';
16
+ } & CartFragmentFragment>;
17
+ }>;
18
+ };
@@ -0,0 +1,18 @@
1
+ import * as Types from '../../../graphql/types/types';
2
+ import { CartFragmentFragment } from './CartFragment';
3
+ export declare type CartLineRemoveMutationVariables = Types.Exact<{
4
+ cartId: Types.Scalars['ID'];
5
+ lines: Array<Types.Scalars['ID']> | Types.Scalars['ID'];
6
+ numCartLines?: Types.Maybe<Types.Scalars['Int']>;
7
+ }>;
8
+ export declare type CartLineRemoveMutation = {
9
+ __typename?: 'Mutation';
10
+ } & {
11
+ cartLinesRemove?: Types.Maybe<{
12
+ __typename?: 'CartLinesRemovePayload';
13
+ } & {
14
+ cart?: Types.Maybe<{
15
+ __typename?: 'Cart';
16
+ } & CartFragmentFragment>;
17
+ }>;
18
+ };