@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,9 @@
1
+ export * from './foundation/';
2
+ export * from './components/';
3
+ export * from './hooks/';
4
+ export * from './graphql/graphql-constants';
5
+ export { flattenConnection } from './utilities';
6
+ export { Helmet } from 'react-helmet-async';
7
+ export * from './components/LocalizationProvider';
8
+ export * from './components/CartProvider/CartServerProvider.server';
9
+ export * from './hooks/useShopQuery';
@@ -0,0 +1,11 @@
1
+ export * from './foundation/';
2
+ export * from './components/';
3
+ export * from './hooks/';
4
+ export * from './graphql/graphql-constants';
5
+ export { flattenConnection } from './utilities';
6
+ export { Helmet } from 'react-helmet-async';
7
+ // This is exported here because it contains a Server Component
8
+ export * from './components/LocalizationProvider';
9
+ export * from './components/CartProvider/CartServerProvider.server';
10
+ // Exported here because users shouldn't be making `useShopQuery` calls from the client
11
+ export * from './hooks/useShopQuery';
@@ -0,0 +1,62 @@
1
+ /// <reference types="node" />
2
+ import type { ServerResponse } from 'http';
3
+ import type { ServerComponentResponse } from './foundation/Hydration/ServerComponentResponse.server';
4
+ import type { ServerComponentRequest } from './foundation/Hydration/ServerComponentRequest.server';
5
+ import type { Metafield } from './graphql/types/types';
6
+ export declare type Renderer = (url: URL, options: {
7
+ request: ServerComponentRequest;
8
+ context?: Record<string, any>;
9
+ isReactHydrationRequest?: boolean;
10
+ }) => Promise<{
11
+ body: string;
12
+ componentResponse: ServerComponentResponse;
13
+ } & Record<string, any>>;
14
+ export declare type Streamer = (url: URL, options: {
15
+ context: any;
16
+ request: ServerComponentRequest;
17
+ response: ServerResponse;
18
+ template: string;
19
+ }) => void;
20
+ export declare type Hydrator = (url: URL, options: {
21
+ context: any;
22
+ request: ServerComponentRequest;
23
+ response: ServerResponse;
24
+ }) => void;
25
+ export declare type EntryServerHandler = {
26
+ render: Renderer;
27
+ stream: Streamer;
28
+ hydrate: Hydrator;
29
+ };
30
+ export declare type ShopifyConfig = {
31
+ locale?: string;
32
+ storeDomain: string;
33
+ storefrontToken: string;
34
+ graphqlApiVersion?: string;
35
+ };
36
+ export declare type Hook = (params: {
37
+ url: URL;
38
+ } & Record<string, any>) => any | Promise<any>;
39
+ export declare type ServerHandler = (App: any, hook?: Hook) => {
40
+ render: Renderer;
41
+ stream: Streamer;
42
+ hydrate: Hydrator;
43
+ };
44
+ export declare type ClientHandler = (App: any, hook?: Hook) => Promise<void>;
45
+ export interface GraphQLConnection<T> {
46
+ edges?: {
47
+ node: T;
48
+ }[];
49
+ }
50
+ export declare type RawMetafield = Partial<Metafield>;
51
+ export declare type ParsedMetafield = Omit<Partial<Metafield>, 'value'> & {
52
+ value?: string | number | boolean | Record<any, string> | Date | Rating | Measurement;
53
+ };
54
+ export interface Rating {
55
+ value: number;
56
+ scale_min: number;
57
+ scale_max: number;
58
+ }
59
+ export interface Measurement {
60
+ unit: string;
61
+ value: number;
62
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { GraphQLConnection } from '../types';
2
+ export declare function flattenConnection<T>(connection: GraphQLConnection<T>): T[];
@@ -0,0 +1,4 @@
1
+ export function flattenConnection(connection) {
2
+ var _a;
3
+ return ((_a = connection.edges) !== null && _a !== void 0 ? _a : []).map((edge) => edge.node);
4
+ }
@@ -0,0 +1,2 @@
1
+ export declare const isClient: () => boolean;
2
+ export declare const isServer: () => boolean;
@@ -0,0 +1,2 @@
1
+ export const isClient = () => typeof window !== 'undefined';
2
+ export const isServer = () => !isClient();
@@ -0,0 +1,17 @@
1
+ export declare type Width = string | 'original';
2
+ export declare type Height = string | 'original';
3
+ export declare type Crop = 'top' | 'bottom' | 'left' | 'right' | 'center';
4
+ export declare type Scale = 2 | 3;
5
+ export declare type Format = 'jpg' | 'pjpg';
6
+ export interface ImageSizeOptions {
7
+ width?: Width;
8
+ height?: Height;
9
+ crop?: Crop;
10
+ scale?: Scale;
11
+ format?: Format;
12
+ }
13
+ /**
14
+ * Adds image size parameters to an image URL hosted by Shopify's CDN
15
+ */
16
+ export declare function addImageSizeParametersToUrl(url: string, { width, height, crop, scale, format }: ImageSizeOptions): string;
17
+ export declare function useImageUrl(url?: string, options?: ImageSizeOptions): string | undefined;
@@ -0,0 +1,45 @@
1
+ import * as React from 'react';
2
+ // TODO: Are there other CDNs missing from here?
3
+ const PRODUCTION_CDN_HOSTNAMES = [
4
+ 'cdn.shopify.com',
5
+ 'cdn.shopifycdn.net',
6
+ 'shopify-assets.shopifycdn.com',
7
+ 'shopify-assets.shopifycdn.net',
8
+ ];
9
+ const LOCAL_CDN_HOSTNAMES = ['spin.dev'];
10
+ /**
11
+ * Adds image size parameters to an image URL hosted by Shopify's CDN
12
+ */
13
+ export function addImageSizeParametersToUrl(url, { width, height, crop, scale, format }) {
14
+ const newUrl = new URL(url);
15
+ const allowedCDNHostnames = PRODUCTION_CDN_HOSTNAMES.concat(LOCAL_CDN_HOSTNAMES);
16
+ if (!allowedCDNHostnames.some((allowedHostname) => newUrl.hostname.endsWith(allowedHostname))) {
17
+ throw new Error('addImageSizeParametersToUrl only operates on Shopify-served image assets');
18
+ }
19
+ const sizePath = width || height ? `_${width !== null && width !== void 0 ? width : ''}x${height !== null && height !== void 0 ? height : ''}` : '';
20
+ const cropPath = crop ? `_crop_${crop}` : '';
21
+ const scalePath = scale ? `@${scale}x` : '';
22
+ const progressive = format === 'pjpg' ? `.progressive` : '';
23
+ const asJPG = format === 'jpg' ? `.jpg` : '';
24
+ // We assume here that the last `.` is the delimiter
25
+ // between the file name and the file type
26
+ const fileDelimiterIndex = newUrl.pathname.lastIndexOf('.');
27
+ const fileName = newUrl.pathname.substr(0, fileDelimiterIndex);
28
+ const fileType = newUrl.pathname.substr(fileDelimiterIndex);
29
+ newUrl.pathname = `${fileName}${sizePath}${cropPath}${scalePath}${progressive}${fileType}${asJPG}`;
30
+ return newUrl.toString();
31
+ }
32
+ export function useImageUrl(url, options) {
33
+ return React.useMemo(() => {
34
+ if (url == null ||
35
+ options == null ||
36
+ (!options.width &&
37
+ !options.height &&
38
+ !options.crop &&
39
+ !options.scale &&
40
+ !options.format)) {
41
+ return url;
42
+ }
43
+ return addImageSizeParametersToUrl(url, options);
44
+ }, [options, url]);
45
+ }
@@ -0,0 +1,8 @@
1
+ export { addImageSizeParametersToUrl, ImageSizeOptions, useImageUrl, } from './image_size';
2
+ export { YouTube, Vimeo, addParametersToEmbeddedVideoUrl, useEmbeddedVideoUrl, } from './video_parameters';
3
+ export { loadScript } from './script_loader';
4
+ export { wrapPromise } from './suspense';
5
+ export { flattenConnection } from './connections';
6
+ export { isClient, isServer } from './environment';
7
+ export { getMeasurementAsParts, getMeasurementAsString } from './meaurement';
8
+ export { parseMetafieldValue } from './metafields';
@@ -0,0 +1,8 @@
1
+ export { addImageSizeParametersToUrl, useImageUrl, } from './image_size';
2
+ export { addParametersToEmbeddedVideoUrl, useEmbeddedVideoUrl, } from './video_parameters';
3
+ export { loadScript } from './script_loader';
4
+ export { wrapPromise } from './suspense';
5
+ export { flattenConnection } from './connections';
6
+ export { isClient, isServer } from './environment';
7
+ export { getMeasurementAsParts, getMeasurementAsString } from './meaurement';
8
+ export { parseMetafieldValue } from './metafields';
@@ -0,0 +1,3 @@
1
+ import { Measurement } from '../types';
2
+ export declare function getMeasurementAsString(measurement: Measurement, locale?: string, options?: Intl.NumberFormatOptions): string;
3
+ export declare function getMeasurementAsParts(measurement: Measurement, locale?: string, options?: Intl.NumberFormatOptions): Intl.NumberFormatPart[];
@@ -0,0 +1,98 @@
1
+ const UNIT_MAPPING = {
2
+ // Dimension
3
+ mm: 'millimeter',
4
+ cm: 'centimeter',
5
+ m: 'meter',
6
+ in: 'inch',
7
+ ft: 'foot',
8
+ yd: 'yard',
9
+ // Volume
10
+ ml: 'milliliter',
11
+ l: 'liter',
12
+ us_fl_oz: 'fluid-ounce',
13
+ us_gal: 'gallon',
14
+ // Weight
15
+ kg: 'kilogram',
16
+ g: 'gram',
17
+ lb: 'pound',
18
+ oz: 'ounce',
19
+ };
20
+ export function getMeasurementAsString(measurement, locale = 'en-us', options = {}) {
21
+ let measure = {
22
+ value: measurement.value,
23
+ unit: UNIT_MAPPING[measurement.unit],
24
+ };
25
+ if (measure.unit == null) {
26
+ measure = convertToSupportedUnit(measurement.value, measurement.unit);
27
+ }
28
+ return new Intl.NumberFormat(locale, {
29
+ ...options,
30
+ unit: measure.unit,
31
+ style: 'unit',
32
+ }).format(measure.value);
33
+ }
34
+ export function getMeasurementAsParts(measurement, locale = 'en-us', options = {}) {
35
+ let measure = {
36
+ value: measurement.value,
37
+ unit: UNIT_MAPPING[measurement.unit],
38
+ };
39
+ if (measure.unit == null) {
40
+ measure = convertToSupportedUnit(measurement.value, measurement.unit);
41
+ }
42
+ return new Intl.NumberFormat(locale, {
43
+ ...options,
44
+ unit: measure.unit,
45
+ style: 'unit',
46
+ }).formatToParts(measure.value);
47
+ }
48
+ function convertToSupportedUnit(value, unit) {
49
+ switch (unit) {
50
+ case 'cl':
51
+ return {
52
+ value: value / 1000,
53
+ unit: 'liter',
54
+ };
55
+ case 'm3':
56
+ return {
57
+ value: value * 1000,
58
+ unit: 'liter',
59
+ };
60
+ case 'us_pt':
61
+ return {
62
+ value: value * 0.125,
63
+ unit: 'gallon',
64
+ };
65
+ case 'us_qt':
66
+ return {
67
+ value: value * 0.5,
68
+ unit: 'gallon',
69
+ };
70
+ case 'us_oz':
71
+ return {
72
+ value: value / 128,
73
+ unit: 'gallon',
74
+ };
75
+ case 'imp_pt':
76
+ return {
77
+ value: value / 6.661,
78
+ unit: 'gallon',
79
+ };
80
+ case 'imp_qt':
81
+ return {
82
+ value: value / 3.331,
83
+ unit: 'gallon',
84
+ };
85
+ case 'imp_gal':
86
+ return {
87
+ value: value / 1.201,
88
+ unit: 'gallon',
89
+ };
90
+ case 'imp_fl_oz':
91
+ return {
92
+ value: value * 0.96076,
93
+ unit: 'fluid-ounce',
94
+ };
95
+ default:
96
+ throw new Error(`Unit not supported: ${unit}`);
97
+ }
98
+ }
@@ -0,0 +1,2 @@
1
+ import { Metafield } from '../graphql/types/types';
2
+ export declare function parseMetafieldValue(metafield: Partial<Metafield>): any;
@@ -0,0 +1,32 @@
1
+ export function parseMetafieldValue(metafield) {
2
+ if (metafield.value == null) {
3
+ return metafield.value;
4
+ }
5
+ switch (metafield.type) {
6
+ case 'boolean':
7
+ return metafield.value == 'true';
8
+ case 'number_integer':
9
+ return parseInt(metafield.value);
10
+ case 'number_decimal':
11
+ return parseFloat(metafield.value);
12
+ case 'date':
13
+ case 'date_time':
14
+ return new Date(metafield.value);
15
+ case 'json':
16
+ case 'weight':
17
+ case 'dimension':
18
+ case 'volume':
19
+ case 'rating':
20
+ return JSON.parse(metafield.value);
21
+ case 'color':
22
+ case 'single_line_text_field':
23
+ case 'multi_line_text_field':
24
+ case 'product_reference':
25
+ case 'page_reference':
26
+ case 'variant_reference':
27
+ case 'file_reference':
28
+ case 'url':
29
+ default:
30
+ return metafield.value;
31
+ }
32
+ }
@@ -0,0 +1,3 @@
1
+ export declare function loadScript(src: string, options?: {
2
+ module?: boolean;
3
+ }): Promise<boolean>;
@@ -0,0 +1,23 @@
1
+ const SCRIPTS_LOADED = {};
2
+ export function loadScript(src, options) {
3
+ const isScriptLoaded = SCRIPTS_LOADED[src];
4
+ if (isScriptLoaded) {
5
+ return isScriptLoaded;
6
+ }
7
+ const promise = new Promise((resolve, reject) => {
8
+ const script = document.createElement('script');
9
+ if (options === null || options === void 0 ? void 0 : options.module) {
10
+ script.type = 'module';
11
+ }
12
+ script.src = src;
13
+ script.onload = () => {
14
+ resolve(true);
15
+ };
16
+ script.onerror = () => {
17
+ reject(false);
18
+ };
19
+ document.body.appendChild(script);
20
+ });
21
+ SCRIPTS_LOADED[src] = promise;
22
+ return promise;
23
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Wrap the fetch promise in a way that React Suspense understands.
3
+ * Essentially, keep throwing something until you have legit data.
4
+ */
5
+ export declare function wrapPromise(promise: Promise<any>): {
6
+ read: () => any;
7
+ };
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Wrap the fetch promise in a way that React Suspense understands.
3
+ * Essentially, keep throwing something until you have legit data.
4
+ */
5
+ export function wrapPromise(promise) {
6
+ let status = 'pending';
7
+ let response;
8
+ const suspender = promise.then((res) => {
9
+ status = 'success';
10
+ response = res;
11
+ }, (err) => {
12
+ status = 'error';
13
+ response = err;
14
+ throw err;
15
+ });
16
+ const read = () => {
17
+ /**
18
+ * TODO: This logic doesn't hold up when an error is thrown. For some reason.
19
+ * We instead throw the exception above in the suspender. We should revisit
20
+ * this and add a better server fetch implementation.
21
+ */
22
+ switch (status) {
23
+ case 'pending':
24
+ throw suspender;
25
+ case 'error':
26
+ throw response;
27
+ default:
28
+ return response;
29
+ }
30
+ };
31
+ return { read };
32
+ }
@@ -0,0 +1,47 @@
1
+ export interface YouTube {
2
+ autoplay?: 0 | 1;
3
+ cc_lang_pref?: string;
4
+ cc_load_policy?: 1;
5
+ color?: 'red' | 'white';
6
+ controls?: 0 | 1;
7
+ disablekb?: 0 | 1;
8
+ enablejsapi?: 0 | 1;
9
+ end?: number;
10
+ fs?: 0 | 1;
11
+ hl?: string;
12
+ iv_load_policy?: 1 | 3;
13
+ list?: string;
14
+ list_type?: 'playlist' | 'user_uploads';
15
+ loop?: 0 | 1;
16
+ modest_branding?: 1;
17
+ origin?: string;
18
+ playlist?: string;
19
+ plays_inline?: 0 | 1;
20
+ rel?: 0 | 1;
21
+ start?: number;
22
+ widget_referrer?: string;
23
+ }
24
+ declare type VimeoBoolean = 0 | 1 | boolean;
25
+ export interface Vimeo {
26
+ autopause?: VimeoBoolean;
27
+ autoplay?: VimeoBoolean;
28
+ background?: VimeoBoolean;
29
+ byline?: VimeoBoolean;
30
+ color?: string;
31
+ controls?: VimeoBoolean;
32
+ dnt?: VimeoBoolean;
33
+ loop?: VimeoBoolean;
34
+ muted?: VimeoBoolean;
35
+ pip?: VimeoBoolean;
36
+ playsinline?: VimeoBoolean;
37
+ portrait?: VimeoBoolean;
38
+ quality?: '240p' | '360p' | '540p' | '720p' | '1080p' | '2k' | '4k';
39
+ speed?: VimeoBoolean;
40
+ '#t'?: string;
41
+ texttrack?: string;
42
+ title?: VimeoBoolean;
43
+ transparent?: VimeoBoolean;
44
+ }
45
+ export declare function addParametersToEmbeddedVideoUrl(url: string, parameters?: YouTube | Vimeo): string;
46
+ export declare function useEmbeddedVideoUrl(url: string, parameters?: YouTube | Vimeo): string;
47
+ export {};
@@ -0,0 +1,22 @@
1
+ import { useMemo } from 'react';
2
+ export function addParametersToEmbeddedVideoUrl(url, parameters) {
3
+ if (parameters == null) {
4
+ return url;
5
+ }
6
+ const params = Object.keys(parameters).reduce((accumulator, param) => {
7
+ const value = parameters[param];
8
+ if (value == null) {
9
+ return accumulator;
10
+ }
11
+ return accumulator + `&${param}=${value}`;
12
+ }, '');
13
+ return `${url}?${params}`;
14
+ }
15
+ export function useEmbeddedVideoUrl(url, parameters) {
16
+ return useMemo(() => {
17
+ if (!parameters) {
18
+ return url;
19
+ }
20
+ return addParametersToEmbeddedVideoUrl(url, parameters);
21
+ }, [url, parameters]);
22
+ }
@@ -0,0 +1 @@
1
+ export declare const LIB_VERSION = "0.1.0";
@@ -0,0 +1 @@
1
+ export const LIB_VERSION = '0.1.0';
@@ -0,0 +1,10 @@
1
+ import { FunctionComponent } from 'react';
2
+ interface Props {
3
+ name: string;
4
+ id: string;
5
+ props: any;
6
+ component: FunctionComponent;
7
+ named: boolean;
8
+ }
9
+ export declare function ClientMarker({ name, id, props: allProps, component: Component, named, }: Props): JSX.Element;
10
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ClientMarker = void 0;
23
+ const react_1 = __importStar(require("react"));
24
+ const HydrationContext_server_1 = require("../Hydration/HydrationContext.server");
25
+ const react_utils_1 = require("../Hydration/react-utils");
26
+ function ClientMarker({ name, id, props: allProps, component: Component, named, }) {
27
+ const isHydrating = react_1.useContext(HydrationContext_server_1.HydrationContext);
28
+ if (!isHydrating)
29
+ return react_1.default.createElement(Component, { ...allProps });
30
+ let { children, ...props } = allProps;
31
+ /**
32
+ * Convert props that happen to be React components to actual
33
+ * objects representing DOM elements. This is because we
34
+ * serialize props to JSON below, and React element Functions
35
+ * cannot be serialized.
36
+ */
37
+ props = react_utils_1.renderReactProps(props);
38
+ /**
39
+ * Components ending in *Provider are special components to
40
+ * Hydrogen's RSC implementation. They are rendered during
41
+ * the hydration process in the state tree even though they
42
+ * don't output any DOM. This is key to supporting crossing
43
+ * the server/client context boundary.
44
+ */
45
+ const shouldRenderDuringHydration = name.endsWith('Provider');
46
+ return (react_1.default.createElement("span", { "data-client-component": name, "data-id": id, "data-props": JSON.stringify(props), "data-named": named }, shouldRenderDuringHydration ? (react_1.default.createElement(Component, { ...allProps }, children)) : (children)));
47
+ }
48
+ exports.ClientMarker = ClientMarker;
@@ -0,0 +1 @@
1
+ export * from './ClientMarker';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./ClientMarker"), exports);
@@ -0,0 +1 @@
1
+ export declare const HydrationContext: import("react").Context<boolean>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HydrationContext = void 0;
4
+ const react_1 = require("react");
5
+ exports.HydrationContext = react_1.createContext(false);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This augments the `Request` object from the Fetch API:
3
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Request
4
+ *
5
+ * - Adds a `cookies` map for easy access
6
+ * - Adds a static constructor to convert a Node.js `IncomingMessage` to a Request.
7
+ */
8
+ export declare class ServerComponentRequest extends Request {
9
+ cookies: Map<string, string>;
10
+ constructor(input: any);
11
+ constructor(input: RequestInfo, init?: RequestInit);
12
+ private parseCookies;
13
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServerComponentRequest = void 0;
4
+ /**
5
+ * This augments the `Request` object from the Fetch API:
6
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Request
7
+ *
8
+ * - Adds a `cookies` map for easy access
9
+ * - Adds a static constructor to convert a Node.js `IncomingMessage` to a Request.
10
+ */
11
+ class ServerComponentRequest extends Request {
12
+ constructor(input, init) {
13
+ if (input instanceof Request) {
14
+ super(input, init);
15
+ }
16
+ else {
17
+ super(getUrlFromNodeRequest(input), {
18
+ headers: new Headers(input.headers),
19
+ method: input.method,
20
+ });
21
+ }
22
+ this.cookies = this.parseCookies();
23
+ }
24
+ parseCookies() {
25
+ const cookieString = this.headers.get('cookie') || '';
26
+ return new Map(cookieString
27
+ .split(';')
28
+ .map((chunk) => chunk.trim().split('=')));
29
+ }
30
+ }
31
+ exports.ServerComponentRequest = ServerComponentRequest;
32
+ /**
33
+ * @see https://github.com/frandiox/vitedge/blob/17f3cd943e86d7c0c71a862985ddd6caa2899425/src/node/utils.js#L19-L24
34
+ *
35
+ * Note: Request can sometimes be an instance of Express request, where `originalUrl` is the true source of what the
36
+ * URL pathname is. We want to use that if it's present, so we union type this to `any`.
37
+ */
38
+ function getUrlFromNodeRequest(request) {
39
+ var _a;
40
+ // TODO: Find out how to determine https from `request` object without forwarded proto
41
+ const secure = request.headers['x-forwarded-proto'] === 'https';
42
+ return new URL(`${secure ? 'https' : 'http'}://${request.headers.host + ((_a = request.originalUrl) !== null && _a !== void 0 ? _a : request.url)}`).toString();
43
+ }
@@ -0,0 +1,18 @@
1
+ export declare class ServerComponentResponse extends Response {
2
+ private wait;
3
+ /**
4
+ * Allow custom body to be a string or a Promise.
5
+ */
6
+ customBody: string | Promise<string>;
7
+ /**
8
+ * Buffer the current response until all queries have resolved,
9
+ * and prevent it from streaming back early.
10
+ */
11
+ doNotStream(): void;
12
+ canStream(): boolean;
13
+ /**
14
+ * Send the response from a Server Component. Renders React components to string,
15
+ * and returns `null` to make React happy.
16
+ */
17
+ send(body: any): null;
18
+ }