@shopify/hydrogen 0.0.0-unstable-20220314172608

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 (578) hide show
  1. package/CHANGELOG.md +869 -0
  2. package/README.md +29 -0
  3. package/client.d.ts +1 -0
  4. package/client.js +1 -0
  5. package/dist/esnext/client.d.ts +9 -0
  6. package/dist/esnext/client.js +9 -0
  7. package/dist/esnext/components/AddToCartButton/AddToCartButton.client.d.ts +23 -0
  8. package/dist/esnext/components/AddToCartButton/AddToCartButton.client.js +47 -0
  9. package/dist/esnext/components/AddToCartButton/index.d.ts +1 -0
  10. package/dist/esnext/components/AddToCartButton/index.js +1 -0
  11. package/dist/esnext/components/BuyNowButton/BuyNowButton.client.d.ts +18 -0
  12. package/dist/esnext/components/BuyNowButton/BuyNowButton.client.js +26 -0
  13. package/dist/esnext/components/BuyNowButton/index.d.ts +1 -0
  14. package/dist/esnext/components/BuyNowButton/index.js +1 -0
  15. package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.d.ts +11 -0
  16. package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.js +17 -0
  17. package/dist/esnext/components/CartCheckoutButton/index.d.ts +1 -0
  18. package/dist/esnext/components/CartCheckoutButton/index.js +1 -0
  19. package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.d.ts +14 -0
  20. package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.js +29 -0
  21. package/dist/esnext/components/CartEstimatedCost/index.d.ts +1 -0
  22. package/dist/esnext/components/CartEstimatedCost/index.js +1 -0
  23. package/dist/esnext/components/CartLineImage/CartLineImage.client.d.ts +12 -0
  24. package/dist/esnext/components/CartLineImage/CartLineImage.client.js +12 -0
  25. package/dist/esnext/components/CartLineImage/index.d.ts +1 -0
  26. package/dist/esnext/components/CartLineImage/index.js +1 -0
  27. package/dist/esnext/components/CartLinePrice/CartLinePrice.client.d.ts +12 -0
  28. package/dist/esnext/components/CartLinePrice/CartLinePrice.client.js +21 -0
  29. package/dist/esnext/components/CartLinePrice/index.d.ts +1 -0
  30. package/dist/esnext/components/CartLinePrice/index.js +1 -0
  31. package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.d.ts +8 -0
  32. package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.js +12 -0
  33. package/dist/esnext/components/CartLineProductTitle/index.d.ts +1 -0
  34. package/dist/esnext/components/CartLineProductTitle/index.js +1 -0
  35. package/dist/esnext/components/CartLineProvider/CartLineProvider.client.d.ts +11 -0
  36. package/dist/esnext/components/CartLineProvider/CartLineProvider.client.js +8 -0
  37. package/dist/esnext/components/CartLineProvider/context.d.ts +26 -0
  38. package/dist/esnext/components/CartLineProvider/context.js +2 -0
  39. package/dist/esnext/components/CartLineProvider/index.d.ts +2 -0
  40. package/dist/esnext/components/CartLineProvider/index.js +2 -0
  41. package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.d.ts +8 -0
  42. package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.js +12 -0
  43. package/dist/esnext/components/CartLineQuantity/index.d.ts +1 -0
  44. package/dist/esnext/components/CartLineQuantity/index.js +1 -0
  45. package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.d.ts +14 -0
  46. package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.js +24 -0
  47. package/dist/esnext/components/CartLineQuantityAdjustButton/index.d.ts +1 -0
  48. package/dist/esnext/components/CartLineQuantityAdjustButton/index.js +1 -0
  49. package/dist/esnext/components/CartLines/CartLines.d.ts +15 -0
  50. package/dist/esnext/components/CartLines/CartLines.js +17 -0
  51. package/dist/esnext/components/CartLines/index.d.ts +1 -0
  52. package/dist/esnext/components/CartLines/index.js +1 -0
  53. package/dist/esnext/components/CartProvider/CartProvider.client.d.ts +36 -0
  54. package/dist/esnext/components/CartProvider/CartProvider.client.js +486 -0
  55. package/dist/esnext/components/CartProvider/constants.d.ts +2 -0
  56. package/dist/esnext/components/CartProvider/constants.js +2 -0
  57. package/dist/esnext/components/CartProvider/context.d.ts +2 -0
  58. package/dist/esnext/components/CartProvider/context.js +2 -0
  59. package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.d.ts +86 -0
  60. package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.js +1 -0
  61. package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +86 -0
  62. package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.js +1 -0
  63. package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +85 -0
  64. package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.js +1 -0
  65. package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +86 -0
  66. package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.js +1 -0
  67. package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +72 -0
  68. package/dist/esnext/components/CartProvider/graphql/CartFragment.js +1 -0
  69. package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +86 -0
  70. package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.js +1 -0
  71. package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +86 -0
  72. package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.js +1 -0
  73. package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +86 -0
  74. package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.js +1 -0
  75. package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +86 -0
  76. package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.js +1 -0
  77. package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +81 -0
  78. package/dist/esnext/components/CartProvider/graphql/CartQuery.js +1 -0
  79. package/dist/esnext/components/CartProvider/hooks.d.ts +15 -0
  80. package/dist/esnext/components/CartProvider/hooks.js +57 -0
  81. package/dist/esnext/components/CartProvider/index.d.ts +4 -0
  82. package/dist/esnext/components/CartProvider/index.js +3 -0
  83. package/dist/esnext/components/CartProvider/types.d.ts +100 -0
  84. package/dist/esnext/components/CartProvider/types.js +1 -0
  85. package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.d.ts +9 -0
  86. package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.js +19 -0
  87. package/dist/esnext/components/CartShopPayButton/index.d.ts +1 -0
  88. package/dist/esnext/components/CartShopPayButton/index.js +1 -0
  89. package/dist/esnext/components/ExternalVideo/ExternalVideo.d.ts +20 -0
  90. package/dist/esnext/components/ExternalVideo/ExternalVideo.js +11 -0
  91. package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.d.ts +8 -0
  92. package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.js +1 -0
  93. package/dist/esnext/components/ExternalVideo/index.d.ts +1 -0
  94. package/dist/esnext/components/ExternalVideo/index.js +1 -0
  95. package/dist/esnext/components/Image/Image.d.ts +38 -0
  96. package/dist/esnext/components/Image/Image.js +51 -0
  97. package/dist/esnext/components/Image/ImageFragment.d.ts +8 -0
  98. package/dist/esnext/components/Image/ImageFragment.js +1 -0
  99. package/dist/esnext/components/Image/index.d.ts +1 -0
  100. package/dist/esnext/components/Image/index.js +1 -0
  101. package/dist/esnext/components/Link/Link.client.d.ts +18 -0
  102. package/dist/esnext/components/Link/Link.client.js +43 -0
  103. package/dist/esnext/components/Link/index.d.ts +1 -0
  104. package/dist/esnext/components/Link/index.js +1 -0
  105. package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.d.ts +6 -0
  106. package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.js +20 -0
  107. package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.d.ts +8 -0
  108. package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.js +2 -0
  109. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.d.ts +21 -0
  110. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +22 -0
  111. package/dist/esnext/components/LocalizationProvider/LocalizationQuery.d.ts +30 -0
  112. package/dist/esnext/components/LocalizationProvider/LocalizationQuery.js +1 -0
  113. package/dist/esnext/components/LocalizationProvider/index.d.ts +3 -0
  114. package/dist/esnext/components/LocalizationProvider/index.js +3 -0
  115. package/dist/esnext/components/MediaFile/MediaFile.d.ts +18 -0
  116. package/dist/esnext/components/MediaFile/MediaFile.js +31 -0
  117. package/dist/esnext/components/MediaFile/MediaFileFragment.d.ts +36 -0
  118. package/dist/esnext/components/MediaFile/MediaFileFragment.js +1 -0
  119. package/dist/esnext/components/MediaFile/index.d.ts +1 -0
  120. package/dist/esnext/components/MediaFile/index.js +1 -0
  121. package/dist/esnext/components/Metafield/Metafield.client.d.ts +17 -0
  122. package/dist/esnext/components/Metafield/Metafield.client.js +65 -0
  123. package/dist/esnext/components/Metafield/MetafieldFragment.d.ts +22 -0
  124. package/dist/esnext/components/Metafield/MetafieldFragment.js +1 -0
  125. package/dist/esnext/components/Metafield/components/StarRating/StarRating.d.ts +12 -0
  126. package/dist/esnext/components/Metafield/components/StarRating/StarRating.js +48 -0
  127. package/dist/esnext/components/Metafield/components/StarRating/index.d.ts +1 -0
  128. package/dist/esnext/components/Metafield/components/StarRating/index.js +1 -0
  129. package/dist/esnext/components/Metafield/components/index.d.ts +1 -0
  130. package/dist/esnext/components/Metafield/components/index.js +1 -0
  131. package/dist/esnext/components/Metafield/index.d.ts +2 -0
  132. package/dist/esnext/components/Metafield/index.js +1 -0
  133. package/dist/esnext/components/Metafield/types.d.ts +4 -0
  134. package/dist/esnext/components/Metafield/types.js +1 -0
  135. package/dist/esnext/components/ModelViewer/Model3DFragment.d.ts +15 -0
  136. package/dist/esnext/components/ModelViewer/Model3DFragment.js +1 -0
  137. package/dist/esnext/components/ModelViewer/ModelViewer.client.d.ts +127 -0
  138. package/dist/esnext/components/ModelViewer/ModelViewer.client.js +99 -0
  139. package/dist/esnext/components/ModelViewer/index.d.ts +1 -0
  140. package/dist/esnext/components/ModelViewer/index.js +1 -0
  141. package/dist/esnext/components/Money/Money.client.d.ts +14 -0
  142. package/dist/esnext/components/Money/Money.client.js +13 -0
  143. package/dist/esnext/components/Money/MoneyFragment.d.ts +8 -0
  144. package/dist/esnext/components/Money/MoneyFragment.js +1 -0
  145. package/dist/esnext/components/Money/index.d.ts +1 -0
  146. package/dist/esnext/components/Money/index.js +1 -0
  147. package/dist/esnext/components/ProductDescription/ProductDescription.client.d.ts +13 -0
  148. package/dist/esnext/components/ProductDescription/ProductDescription.client.js +16 -0
  149. package/dist/esnext/components/ProductDescription/index.d.ts +1 -0
  150. package/dist/esnext/components/ProductDescription/index.js +1 -0
  151. package/dist/esnext/components/ProductMetafield/ProductMetafield.client.d.ts +21 -0
  152. package/dist/esnext/components/ProductMetafield/ProductMetafield.client.js +42 -0
  153. package/dist/esnext/components/ProductMetafield/index.d.ts +2 -0
  154. package/dist/esnext/components/ProductMetafield/index.js +1 -0
  155. package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +16 -0
  156. package/dist/esnext/components/ProductPrice/ProductPrice.client.js +57 -0
  157. package/dist/esnext/components/ProductPrice/index.d.ts +1 -0
  158. package/dist/esnext/components/ProductPrice/index.js +1 -0
  159. package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.d.ts +8 -0
  160. package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.js +12 -0
  161. package/dist/esnext/components/ProductProvider/ProductProvider.client.d.ts +19 -0
  162. package/dist/esnext/components/ProductProvider/ProductProvider.client.js +33 -0
  163. package/dist/esnext/components/ProductProvider/ProductProviderFragment.d.ts +247 -0
  164. package/dist/esnext/components/ProductProvider/ProductProviderFragment.js +1 -0
  165. package/dist/esnext/components/ProductProvider/context.d.ts +20 -0
  166. package/dist/esnext/components/ProductProvider/context.js +3 -0
  167. package/dist/esnext/components/ProductProvider/index.d.ts +2 -0
  168. package/dist/esnext/components/ProductProvider/index.js +2 -0
  169. package/dist/esnext/components/ProductProvider/types.d.ts +19 -0
  170. package/dist/esnext/components/ProductProvider/types.js +1 -0
  171. package/dist/esnext/components/ProductTitle/ProductTitle.client.d.ts +13 -0
  172. package/dist/esnext/components/ProductTitle/ProductTitle.client.js +16 -0
  173. package/dist/esnext/components/ProductTitle/index.d.ts +1 -0
  174. package/dist/esnext/components/ProductTitle/index.js +1 -0
  175. package/dist/esnext/components/Seo/CollectionSeo.client.d.ts +2 -0
  176. package/dist/esnext/components/Seo/CollectionSeo.client.js +15 -0
  177. package/dist/esnext/components/Seo/DefaultPageSeo.client.d.ts +2 -0
  178. package/dist/esnext/components/Seo/DefaultPageSeo.client.js +19 -0
  179. package/dist/esnext/components/Seo/DescriptionSeo.client.d.ts +4 -0
  180. package/dist/esnext/components/Seo/DescriptionSeo.client.js +10 -0
  181. package/dist/esnext/components/Seo/HomePageSeo.client.d.ts +2 -0
  182. package/dist/esnext/components/Seo/HomePageSeo.client.js +25 -0
  183. package/dist/esnext/components/Seo/ImageSeo.client.d.ts +2 -0
  184. package/dist/esnext/components/Seo/ImageSeo.client.js +10 -0
  185. package/dist/esnext/components/Seo/PageSeo.client.d.ts +2 -0
  186. package/dist/esnext/components/Seo/PageSeo.client.js +13 -0
  187. package/dist/esnext/components/Seo/ProductSeo.client.d.ts +5 -0
  188. package/dist/esnext/components/Seo/ProductSeo.client.js +58 -0
  189. package/dist/esnext/components/Seo/Seo.client.d.ts +23 -0
  190. package/dist/esnext/components/Seo/Seo.client.js +28 -0
  191. package/dist/esnext/components/Seo/SeoFragment.d.ts +66 -0
  192. package/dist/esnext/components/Seo/SeoFragment.js +1 -0
  193. package/dist/esnext/components/Seo/TitleSeo.client.d.ts +4 -0
  194. package/dist/esnext/components/Seo/TitleSeo.client.js +10 -0
  195. package/dist/esnext/components/Seo/TwitterSeo.client.d.ts +2 -0
  196. package/dist/esnext/components/Seo/TwitterSeo.client.js +9 -0
  197. package/dist/esnext/components/Seo/index.d.ts +1 -0
  198. package/dist/esnext/components/Seo/index.js +1 -0
  199. package/dist/esnext/components/Seo/types.d.ts +15 -0
  200. package/dist/esnext/components/Seo/types.js +1 -0
  201. package/dist/esnext/components/ShopPayButton/ShopPayButton.client.d.ts +38 -0
  202. package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +48 -0
  203. package/dist/esnext/components/ShopPayButton/index.d.ts +1 -0
  204. package/dist/esnext/components/ShopPayButton/index.js +1 -0
  205. package/dist/esnext/components/UnitPrice/UnitPrice.client.d.ts +14 -0
  206. package/dist/esnext/components/UnitPrice/UnitPrice.client.js +22 -0
  207. package/dist/esnext/components/UnitPrice/UnitPriceFragment.d.ts +15 -0
  208. package/dist/esnext/components/UnitPrice/UnitPriceFragment.js +1 -0
  209. package/dist/esnext/components/UnitPrice/index.d.ts +1 -0
  210. package/dist/esnext/components/UnitPrice/index.js +1 -0
  211. package/dist/esnext/components/Video/Video.d.ts +13 -0
  212. package/dist/esnext/components/Video/Video.js +11 -0
  213. package/dist/esnext/components/Video/VideoFragment.d.ts +15 -0
  214. package/dist/esnext/components/Video/VideoFragment.js +1 -0
  215. package/dist/esnext/components/Video/index.d.ts +1 -0
  216. package/dist/esnext/components/Video/index.js +1 -0
  217. package/dist/esnext/components/index.d.ts +32 -0
  218. package/dist/esnext/components/index.js +30 -0
  219. package/dist/esnext/components/types.d.ts +71 -0
  220. package/dist/esnext/components/types.js +10 -0
  221. package/dist/esnext/constants.d.ts +1 -0
  222. package/dist/esnext/constants.js +1 -0
  223. package/dist/esnext/entry-client.d.ts +3 -0
  224. package/dist/esnext/entry-client.js +48 -0
  225. package/dist/esnext/entry-server.d.ts +22 -0
  226. package/dist/esnext/entry-server.js +511 -0
  227. package/dist/esnext/foundation/Boomerang/Boomerang.client.d.ts +9 -0
  228. package/dist/esnext/foundation/Boomerang/Boomerang.client.js +64 -0
  229. package/dist/esnext/foundation/FileRoutes/FileRoutes.server.d.ts +23 -0
  230. package/dist/esnext/foundation/FileRoutes/FileRoutes.server.js +78 -0
  231. package/dist/esnext/foundation/Head/Head.client.d.ts +5 -0
  232. package/dist/esnext/foundation/Head/Head.client.js +10 -0
  233. package/dist/esnext/foundation/Head/index.d.ts +1 -0
  234. package/dist/esnext/foundation/Head/index.js +1 -0
  235. package/dist/esnext/foundation/Route/Route.server.d.ts +13 -0
  236. package/dist/esnext/foundation/Route/Route.server.js +34 -0
  237. package/dist/esnext/foundation/Router/BrowserRouter.client.d.ts +13 -0
  238. package/dist/esnext/foundation/Router/BrowserRouter.client.js +48 -0
  239. package/dist/esnext/foundation/Router/Router.server.d.ts +11 -0
  240. package/dist/esnext/foundation/Router/Router.server.js +10 -0
  241. package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
  242. package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.js +113 -0
  243. package/dist/esnext/foundation/ServerRequestProvider/index.d.ts +1 -0
  244. package/dist/esnext/foundation/ServerRequestProvider/index.js +1 -0
  245. package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.d.ts +25 -0
  246. package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.js +47 -0
  247. package/dist/esnext/foundation/ServerStateProvider/index.d.ts +2 -0
  248. package/dist/esnext/foundation/ServerStateProvider/index.js +1 -0
  249. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.client.d.ts +7 -0
  250. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.client.js +8 -0
  251. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.d.ts +9 -0
  252. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.js +29 -0
  253. package/dist/esnext/foundation/ShopifyProvider/index.d.ts +1 -0
  254. package/dist/esnext/foundation/ShopifyProvider/index.js +1 -0
  255. package/dist/esnext/foundation/ShopifyProvider/types.d.ts +15 -0
  256. package/dist/esnext/foundation/ShopifyProvider/types.js +1 -0
  257. package/dist/esnext/foundation/constants.d.ts +1 -0
  258. package/dist/esnext/foundation/constants.js +3 -0
  259. package/dist/esnext/foundation/index.d.ts +3 -0
  260. package/dist/esnext/foundation/index.js +3 -0
  261. package/dist/esnext/foundation/ssr-interop.d.ts +29 -0
  262. package/dist/esnext/foundation/ssr-interop.js +35 -0
  263. package/dist/esnext/foundation/useNavigate/useNavigate.d.ts +13 -0
  264. package/dist/esnext/foundation/useNavigate/useNavigate.js +14 -0
  265. package/dist/esnext/foundation/useQuery/hooks.d.ts +31 -0
  266. package/dist/esnext/foundation/useQuery/hooks.js +85 -0
  267. package/dist/esnext/foundation/useQuery/index.d.ts +1 -0
  268. package/dist/esnext/foundation/useQuery/index.js +1 -0
  269. package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.d.ts +9 -0
  270. package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.js +7 -0
  271. package/dist/esnext/foundation/useRouteParams/useRouteParams.d.ts +4 -0
  272. package/dist/esnext/foundation/useRouteParams/useRouteParams.js +9 -0
  273. package/dist/esnext/foundation/useServerState/index.d.ts +1 -0
  274. package/dist/esnext/foundation/useServerState/index.js +1 -0
  275. package/dist/esnext/foundation/useServerState/use-server-state.d.ts +16 -0
  276. package/dist/esnext/foundation/useServerState/use-server-state.js +20 -0
  277. package/dist/esnext/foundation/useShop/index.d.ts +1 -0
  278. package/dist/esnext/foundation/useShop/index.js +1 -0
  279. package/dist/esnext/foundation/useShop/use-shop.d.ts +4 -0
  280. package/dist/esnext/foundation/useShop/use-shop.js +12 -0
  281. package/dist/esnext/foundation/useUrl/index.d.ts +1 -0
  282. package/dist/esnext/foundation/useUrl/index.js +1 -0
  283. package/dist/esnext/foundation/useUrl/useUrl.d.ts +4 -0
  284. package/dist/esnext/foundation/useUrl/useUrl.js +18 -0
  285. package/dist/esnext/fragments.d.ts +20 -0
  286. package/dist/esnext/fragments.js +10 -0
  287. package/dist/esnext/framework/CachingStrategy/index.d.ts +10 -0
  288. package/dist/esnext/framework/CachingStrategy/index.js +96 -0
  289. package/dist/esnext/framework/Hydration/Html.d.ts +11 -0
  290. package/dist/esnext/framework/Hydration/Html.js +84 -0
  291. package/dist/esnext/framework/Hydration/ServerComponentRequest.server.d.ts +47 -0
  292. package/dist/esnext/framework/Hydration/ServerComponentRequest.server.js +114 -0
  293. package/dist/esnext/framework/Hydration/ServerComponentResponse.server.d.ts +32 -0
  294. package/dist/esnext/framework/Hydration/ServerComponentResponse.server.js +55 -0
  295. package/dist/esnext/framework/Hydration/rsc.d.ts +11 -0
  296. package/dist/esnext/framework/Hydration/rsc.js +72 -0
  297. package/dist/esnext/framework/cache/in-memory.d.ts +11 -0
  298. package/dist/esnext/framework/cache/in-memory.js +48 -0
  299. package/dist/esnext/framework/cache.d.ts +26 -0
  300. package/dist/esnext/framework/cache.js +87 -0
  301. package/dist/esnext/framework/config.d.ts +6 -0
  302. package/dist/esnext/framework/config.js +6 -0
  303. package/dist/esnext/framework/graphiql.d.ts +1 -0
  304. package/dist/esnext/framework/graphiql.js +38 -0
  305. package/dist/esnext/framework/middleware.d.ts +22 -0
  306. package/dist/esnext/framework/middleware.js +107 -0
  307. package/dist/esnext/framework/plugin.d.ts +4 -0
  308. package/dist/esnext/framework/plugin.js +41 -0
  309. package/dist/esnext/framework/plugins/vite-plugin-hydration-auto-import.d.ts +3 -0
  310. package/dist/esnext/framework/plugins/vite-plugin-hydration-auto-import.js +38 -0
  311. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-client-middleware.d.ts +9 -0
  312. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-client-middleware.js +37 -0
  313. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
  314. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +84 -0
  315. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
  316. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +56 -0
  317. package/dist/esnext/framework/plugins/vite-plugin-platform-entry.d.ts +3 -0
  318. package/dist/esnext/framework/plugins/vite-plugin-platform-entry.js +70 -0
  319. package/dist/esnext/framework/plugins/vite-plugin-purge-query-cache.d.ts +3 -0
  320. package/dist/esnext/framework/plugins/vite-plugin-purge-query-cache.js +11 -0
  321. package/dist/esnext/framework/plugins/vite-plugin-ssr-interop.d.ts +3 -0
  322. package/dist/esnext/framework/plugins/vite-plugin-ssr-interop.js +13 -0
  323. package/dist/esnext/framework/runtime.d.ts +13 -0
  324. package/dist/esnext/framework/runtime.js +27 -0
  325. package/dist/esnext/graphql/graphql-constants.d.ts +1756 -0
  326. package/dist/esnext/graphql/graphql-constants.js +3447 -0
  327. package/dist/esnext/hooks/index.d.ts +6 -0
  328. package/dist/esnext/hooks/index.js +6 -0
  329. package/dist/esnext/hooks/useAvailableCountries/index.d.ts +1 -0
  330. package/dist/esnext/hooks/useAvailableCountries/index.js +1 -0
  331. package/dist/esnext/hooks/useAvailableCountries/useAvailableCountries.d.ts +11 -0
  332. package/dist/esnext/hooks/useAvailableCountries/useAvailableCountries.js +17 -0
  333. package/dist/esnext/hooks/useCart/index.d.ts +1 -0
  334. package/dist/esnext/hooks/useCart/index.js +1 -0
  335. package/dist/esnext/hooks/useCart/useCart.d.ts +4 -0
  336. package/dist/esnext/hooks/useCart/useCart.js +12 -0
  337. package/dist/esnext/hooks/useCartLine/index.d.ts +1 -0
  338. package/dist/esnext/hooks/useCartLine/index.js +1 -0
  339. package/dist/esnext/hooks/useCartLine/useCartLine.d.ts +29 -0
  340. package/dist/esnext/hooks/useCartLine/useCartLine.js +12 -0
  341. package/dist/esnext/hooks/useCountry/index.d.ts +1 -0
  342. package/dist/esnext/hooks/useCountry/index.js +1 -0
  343. package/dist/esnext/hooks/useCountry/useCountry.d.ts +17 -0
  344. package/dist/esnext/hooks/useCountry/useCountry.js +17 -0
  345. package/dist/esnext/hooks/useLoadScript/index.d.ts +1 -0
  346. package/dist/esnext/hooks/useLoadScript/index.js +1 -0
  347. package/dist/esnext/hooks/useLoadScript/useLoadScript.d.ts +8 -0
  348. package/dist/esnext/hooks/useLoadScript/useLoadScript.js +22 -0
  349. package/dist/esnext/hooks/useMeasurement/hooks.d.ts +9 -0
  350. package/dist/esnext/hooks/useMeasurement/hooks.js +13 -0
  351. package/dist/esnext/hooks/useMeasurement/index.d.ts +1 -0
  352. package/dist/esnext/hooks/useMeasurement/index.js +1 -0
  353. package/dist/esnext/hooks/useMoney/hooks.d.ts +42 -0
  354. package/dist/esnext/hooks/useMoney/hooks.js +42 -0
  355. package/dist/esnext/hooks/useMoney/index.d.ts +1 -0
  356. package/dist/esnext/hooks/useMoney/index.js +1 -0
  357. package/dist/esnext/hooks/useParsedMetafields/index.d.ts +1 -0
  358. package/dist/esnext/hooks/useParsedMetafields/index.js +1 -0
  359. package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.d.ts +6 -0
  360. package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.js +19 -0
  361. package/dist/esnext/hooks/useProduct/index.d.ts +1 -0
  362. package/dist/esnext/hooks/useProduct/index.js +1 -0
  363. package/dist/esnext/hooks/useProduct/useProduct.d.ts +114 -0
  364. package/dist/esnext/hooks/useProduct/useProduct.js +43 -0
  365. package/dist/esnext/hooks/useProductOptions/SellingPlanFragment.d.ts +31 -0
  366. package/dist/esnext/hooks/useProductOptions/SellingPlanFragment.js +1 -0
  367. package/dist/esnext/hooks/useProductOptions/SellingPlanGroupsFragment.d.ts +46 -0
  368. package/dist/esnext/hooks/useProductOptions/SellingPlanGroupsFragment.js +1 -0
  369. package/dist/esnext/hooks/useProductOptions/VariantFragment.d.ts +106 -0
  370. package/dist/esnext/hooks/useProductOptions/VariantFragment.js +1 -0
  371. package/dist/esnext/hooks/useProductOptions/helpers.d.ts +4 -0
  372. package/dist/esnext/hooks/useProductOptions/helpers.js +33 -0
  373. package/dist/esnext/hooks/useProductOptions/index.d.ts +2 -0
  374. package/dist/esnext/hooks/useProductOptions/index.js +2 -0
  375. package/dist/esnext/hooks/useProductOptions/types.d.ts +62 -0
  376. package/dist/esnext/hooks/useProductOptions/types.js +1 -0
  377. package/dist/esnext/hooks/useProductOptions/useProductOptions.d.ts +14 -0
  378. package/dist/esnext/hooks/useProductOptions/useProductOptions.js +115 -0
  379. package/dist/esnext/hooks/useShopQuery/hooks.d.ts +29 -0
  380. package/dist/esnext/hooks/useShopQuery/hooks.js +83 -0
  381. package/dist/esnext/hooks/useShopQuery/index.d.ts +1 -0
  382. package/dist/esnext/hooks/useShopQuery/index.js +1 -0
  383. package/dist/esnext/index.d.ts +15 -0
  384. package/dist/esnext/index.js +19 -0
  385. package/dist/esnext/platforms/node.d.ts +10 -0
  386. package/dist/esnext/platforms/node.js +38 -0
  387. package/dist/esnext/platforms/worker-event.d.ts +9 -0
  388. package/dist/esnext/platforms/worker-event.js +24 -0
  389. package/dist/esnext/storefront-api-types.d.ts +6121 -0
  390. package/dist/esnext/storefront-api-types.js +1709 -0
  391. package/dist/esnext/streaming.server.d.ts +20 -0
  392. package/dist/esnext/streaming.server.js +49 -0
  393. package/dist/esnext/types.d.ts +98 -0
  394. package/dist/esnext/types.js +1 -0
  395. package/dist/esnext/utilities/apiRoutes.d.ts +36 -0
  396. package/dist/esnext/utilities/apiRoutes.js +109 -0
  397. package/dist/esnext/utilities/bot-ua.d.ts +4 -0
  398. package/dist/esnext/utilities/bot-ua.js +54 -0
  399. package/dist/esnext/utilities/defer.d.ts +6 -0
  400. package/dist/esnext/utilities/defer.js +14 -0
  401. package/dist/esnext/utilities/error.d.ts +1 -0
  402. package/dist/esnext/utilities/error.js +6 -0
  403. package/dist/esnext/utilities/fetch.d.ts +4 -0
  404. package/dist/esnext/utilities/fetch.js +34 -0
  405. package/dist/esnext/utilities/flattenConnection/flattenConnection.d.ts +5 -0
  406. package/dist/esnext/utilities/flattenConnection/flattenConnection.js +7 -0
  407. package/dist/esnext/utilities/flattenConnection/index.d.ts +1 -0
  408. package/dist/esnext/utilities/flattenConnection/index.js +1 -0
  409. package/dist/esnext/utilities/image_size.d.ts +29 -0
  410. package/dist/esnext/utilities/image_size.js +80 -0
  411. package/dist/esnext/utilities/index.d.ts +11 -0
  412. package/dist/esnext/utilities/index.js +11 -0
  413. package/dist/esnext/utilities/isClient/index.d.ts +1 -0
  414. package/dist/esnext/utilities/isClient/index.js +1 -0
  415. package/dist/esnext/utilities/isClient/isClient.d.ts +4 -0
  416. package/dist/esnext/utilities/isClient/isClient.js +6 -0
  417. package/dist/esnext/utilities/isServer/index.d.ts +1 -0
  418. package/dist/esnext/utilities/isServer/index.js +1 -0
  419. package/dist/esnext/utilities/isServer/isServer.d.ts +4 -0
  420. package/dist/esnext/utilities/isServer/isServer.js +7 -0
  421. package/dist/esnext/utilities/load_script.d.ts +3 -0
  422. package/dist/esnext/utilities/load_script.js +23 -0
  423. package/dist/esnext/utilities/log/index.d.ts +4 -0
  424. package/dist/esnext/utilities/log/index.js +4 -0
  425. package/dist/esnext/utilities/log/log-cache-api-status.d.ts +1 -0
  426. package/dist/esnext/utilities/log/log-cache-api-status.js +9 -0
  427. package/dist/esnext/utilities/log/log-cache-header.d.ts +10 -0
  428. package/dist/esnext/utilities/log/log-cache-header.js +30 -0
  429. package/dist/esnext/utilities/log/log-query-timeline.d.ts +12 -0
  430. package/dist/esnext/utilities/log/log-query-timeline.js +84 -0
  431. package/dist/esnext/utilities/log/log.d.ts +21 -0
  432. package/dist/esnext/utilities/log/log.js +66 -0
  433. package/dist/esnext/utilities/log/utils.d.ts +3 -0
  434. package/dist/esnext/utilities/log/utils.js +13 -0
  435. package/dist/esnext/utilities/matchPath.d.ts +10 -0
  436. package/dist/esnext/utilities/matchPath.js +54 -0
  437. package/dist/esnext/utilities/measurement.d.ts +3 -0
  438. package/dist/esnext/utilities/measurement.js +98 -0
  439. package/dist/esnext/utilities/object.d.ts +5 -0
  440. package/dist/esnext/utilities/object.js +7 -0
  441. package/dist/esnext/utilities/parseMetafieldValue/index.d.ts +1 -0
  442. package/dist/esnext/utilities/parseMetafieldValue/index.js +1 -0
  443. package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +5 -0
  444. package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.js +35 -0
  445. package/dist/esnext/utilities/suspense.d.ts +7 -0
  446. package/dist/esnext/utilities/suspense.js +26 -0
  447. package/dist/esnext/utilities/template.d.ts +9 -0
  448. package/dist/esnext/utilities/template.js +23 -0
  449. package/dist/esnext/utilities/timing.d.ts +7 -0
  450. package/dist/esnext/utilities/timing.js +14 -0
  451. package/dist/esnext/utilities/video_parameters.d.ts +47 -0
  452. package/dist/esnext/utilities/video_parameters.js +22 -0
  453. package/dist/esnext/utilities/web-api-polyfill.d.ts +1 -0
  454. package/dist/esnext/utilities/web-api-polyfill.js +19 -0
  455. package/dist/esnext/version.d.ts +1 -0
  456. package/dist/esnext/version.js +1 -0
  457. package/dist/node/constants.d.ts +1 -0
  458. package/dist/node/constants.js +4 -0
  459. package/dist/node/entry-server.d.ts +22 -0
  460. package/dist/node/entry-server.js +541 -0
  461. package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
  462. package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.js +143 -0
  463. package/dist/node/foundation/ServerRequestProvider/index.d.ts +1 -0
  464. package/dist/node/foundation/ServerRequestProvider/index.js +17 -0
  465. package/dist/node/foundation/ServerStateProvider/ServerStateProvider.d.ts +25 -0
  466. package/dist/node/foundation/ServerStateProvider/ServerStateProvider.js +72 -0
  467. package/dist/node/foundation/ServerStateProvider/index.d.ts +2 -0
  468. package/dist/node/foundation/ServerStateProvider/index.js +6 -0
  469. package/dist/node/foundation/ShopifyProvider/types.d.ts +15 -0
  470. package/dist/node/foundation/ShopifyProvider/types.js +2 -0
  471. package/dist/node/framework/CachingStrategy/index.d.ts +10 -0
  472. package/dist/node/framework/CachingStrategy/index.js +108 -0
  473. package/dist/node/framework/Hydration/Html.d.ts +11 -0
  474. package/dist/node/framework/Hydration/Html.js +92 -0
  475. package/dist/node/framework/Hydration/ServerComponentRequest.server.d.ts +47 -0
  476. package/dist/node/framework/Hydration/ServerComponentRequest.server.js +118 -0
  477. package/dist/node/framework/Hydration/ServerComponentResponse.server.d.ts +32 -0
  478. package/dist/node/framework/Hydration/ServerComponentResponse.server.js +59 -0
  479. package/dist/node/framework/Hydration/rsc.d.ts +11 -0
  480. package/dist/node/framework/Hydration/rsc.js +75 -0
  481. package/dist/node/framework/cache/in-memory.d.ts +11 -0
  482. package/dist/node/framework/cache/in-memory.js +52 -0
  483. package/dist/node/framework/cache.d.ts +26 -0
  484. package/dist/node/framework/cache.js +97 -0
  485. package/dist/node/framework/config.d.ts +6 -0
  486. package/dist/node/framework/config.js +11 -0
  487. package/dist/node/framework/graphiql.d.ts +1 -0
  488. package/dist/node/framework/graphiql.js +42 -0
  489. package/dist/node/framework/middleware.d.ts +22 -0
  490. package/dist/node/framework/middleware.js +134 -0
  491. package/dist/node/framework/plugin.d.ts +4 -0
  492. package/dist/node/framework/plugin.js +69 -0
  493. package/dist/node/framework/plugins/vite-plugin-hydration-auto-import.d.ts +3 -0
  494. package/dist/node/framework/plugins/vite-plugin-hydration-auto-import.js +43 -0
  495. package/dist/node/framework/plugins/vite-plugin-hydrogen-client-middleware.d.ts +9 -0
  496. package/dist/node/framework/plugins/vite-plugin-hydrogen-client-middleware.js +39 -0
  497. package/dist/node/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
  498. package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +86 -0
  499. package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
  500. package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +62 -0
  501. package/dist/node/framework/plugins/vite-plugin-platform-entry.d.ts +3 -0
  502. package/dist/node/framework/plugins/vite-plugin-platform-entry.js +75 -0
  503. package/dist/node/framework/plugins/vite-plugin-purge-query-cache.d.ts +3 -0
  504. package/dist/node/framework/plugins/vite-plugin-purge-query-cache.js +16 -0
  505. package/dist/node/framework/plugins/vite-plugin-ssr-interop.d.ts +3 -0
  506. package/dist/node/framework/plugins/vite-plugin-ssr-interop.js +15 -0
  507. package/dist/node/framework/runtime.d.ts +13 -0
  508. package/dist/node/framework/runtime.js +35 -0
  509. package/dist/node/storefront-api-types.d.ts +6121 -0
  510. package/dist/node/storefront-api-types.js +1712 -0
  511. package/dist/node/streaming.server.d.ts +20 -0
  512. package/dist/node/streaming.server.js +49 -0
  513. package/dist/node/types.d.ts +98 -0
  514. package/dist/node/types.js +2 -0
  515. package/dist/node/utilities/apiRoutes.d.ts +36 -0
  516. package/dist/node/utilities/apiRoutes.js +115 -0
  517. package/dist/node/utilities/bot-ua.d.ts +4 -0
  518. package/dist/node/utilities/bot-ua.js +58 -0
  519. package/dist/node/utilities/defer.d.ts +6 -0
  520. package/dist/node/utilities/defer.js +18 -0
  521. package/dist/node/utilities/error.d.ts +1 -0
  522. package/dist/node/utilities/error.js +10 -0
  523. package/dist/node/utilities/fetch.d.ts +4 -0
  524. package/dist/node/utilities/fetch.js +40 -0
  525. package/dist/node/utilities/log/index.d.ts +4 -0
  526. package/dist/node/utilities/log/index.js +18 -0
  527. package/dist/node/utilities/log/log-cache-api-status.d.ts +1 -0
  528. package/dist/node/utilities/log/log-cache-api-status.js +13 -0
  529. package/dist/node/utilities/log/log-cache-header.d.ts +10 -0
  530. package/dist/node/utilities/log/log-cache-header.js +35 -0
  531. package/dist/node/utilities/log/log-query-timeline.d.ts +12 -0
  532. package/dist/node/utilities/log/log-query-timeline.js +89 -0
  533. package/dist/node/utilities/log/log.d.ts +21 -0
  534. package/dist/node/utilities/log/log.js +74 -0
  535. package/dist/node/utilities/log/utils.d.ts +3 -0
  536. package/dist/node/utilities/log/utils.js +18 -0
  537. package/dist/node/utilities/matchPath.d.ts +10 -0
  538. package/dist/node/utilities/matchPath.js +58 -0
  539. package/dist/node/utilities/template.d.ts +9 -0
  540. package/dist/node/utilities/template.js +27 -0
  541. package/dist/node/utilities/timing.d.ts +7 -0
  542. package/dist/node/utilities/timing.js +18 -0
  543. package/dist/node/utilities/web-api-polyfill.d.ts +1 -0
  544. package/dist/node/utilities/web-api-polyfill.js +47 -0
  545. package/dist/node/version.d.ts +1 -0
  546. package/dist/node/version.js +4 -0
  547. package/entry-client.d.ts +1 -0
  548. package/entry-client.js +1 -0
  549. package/entry-server.d.ts +1 -0
  550. package/entry-server.js +1 -0
  551. package/fragments.d.ts +1 -0
  552. package/fragments.js +1 -0
  553. package/middleware.d.ts +1 -0
  554. package/middleware.js +1 -0
  555. package/package.json +121 -0
  556. package/plugin.d.ts +1 -0
  557. package/plugin.js +1 -0
  558. package/vendor/react-server-dom-vite/LICENSE +21 -0
  559. package/vendor/react-server-dom-vite/README.md +5 -0
  560. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-plugin.js +243 -0
  561. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.development.server.js +1031 -0
  562. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.production.min.server.js +430 -0
  563. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.development.server.js +1053 -0
  564. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.production.min.server.js +446 -0
  565. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.development.js +623 -0
  566. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.production.min.js +255 -0
  567. package/vendor/react-server-dom-vite/esm/package.json +3 -0
  568. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js +83 -0
  569. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-plugin.js +239 -0
  570. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.browser.server.js +1014 -0
  571. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.node.server.js +1032 -0
  572. package/vendor/react-server-dom-vite/esm/react-server-dom-vite.js +613 -0
  573. package/vendor/react-server-dom-vite/index.js +7 -0
  574. package/vendor/react-server-dom-vite/package.json +68 -0
  575. package/vendor/react-server-dom-vite/plugin.js +3 -0
  576. package/vendor/react-server-dom-vite/writer.browser.server.js +7 -0
  577. package/vendor/react-server-dom-vite/writer.node.server.js +7 -0
  578. package/web-polyfills.js +1 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,869 @@
1
+ # Changelog
2
+
3
+ ## 0.0.0-unstable-20220314172608
4
+
5
+ ### Major Changes
6
+
7
+ - [`a10e166`](https://github.com/Shopify/hydrogen/commit/a10e1665a95d27525f0b07df187b1346a62850cb) Thanks [@jplhomer](https://github.com/jplhomer)! - Hydrogen v1.0 is now available as a release candidate.
8
+
9
+ Install it using the `rc1` tag for new apps:
10
+
11
+ ```bash
12
+ npx create-hydrogen-app@rc1
13
+ ```
14
+
15
+ Or update existing apps:
16
+
17
+ ```bash
18
+ yarn add @shopify/hydrogen@rc1
19
+ ```
20
+
21
+ ### Minor Changes
22
+
23
+ - [#698](https://github.com/Shopify/hydrogen/pull/698) [`6f30b9a`](https://github.com/Shopify/hydrogen/commit/6f30b9a1327f06d648a01dd94d539c7dcb3061e0) Thanks [@jplhomer](https://github.com/jplhomer)! - Basic end-to-end tests have been added to the default Hydrogen template. You can run tests in development:
24
+
25
+ ```bash
26
+ yarn test
27
+ ```
28
+
29
+ Or in continuous-integration (CI) environments:
30
+
31
+ ```bash
32
+ yarn test:ci
33
+ ```
34
+
35
+ * [#846](https://github.com/Shopify/hydrogen/pull/846) [`58c823b`](https://github.com/Shopify/hydrogen/commit/58c823b5eb5c5c33caa25cae629409ce651b3991) Thanks [@blittle](https://github.com/blittle)! - ## New `<Route>` Component
36
+
37
+ The `<Route>` component is available for routes not defined by the file system. The `<Route>` component must be used within the `<Router>` component.
38
+
39
+ ```jsx
40
+ // app.server.jsx
41
+
42
+ function App({routes, ...serverProps}) {
43
+ return (
44
+ <Suspense fallback={<LoadingFallback />}>
45
+ <ShopifyProvider shopifyConfig={shopifyConfig}>
46
+ <CartProvider>
47
+ <DefaultSeo />
48
+ <Router serverProps={serverProps}>
49
+ <Route path="/custom" page={<CustomRoute />} />
50
+ </Router>
51
+ </CartProvider>
52
+ </ShopifyProvider>
53
+ </Suspense>
54
+ );
55
+ }
56
+
57
+ function CustomRoute() {
58
+ return <h1>Custom route</h1>;
59
+ }
60
+ ```
61
+
62
+ `<Route>` accepts two props:
63
+
64
+ | Property | Type | Required | Description |
65
+ | -------- | --------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------ |
66
+ | `path` | `string` | Yes | The URL path where the route exists. The path can contain variables. For example, `/products/:handle`. |
67
+ | `page` | `A rendered Server Component reference` | Yes | A reference to a React Server Component that's rendered when the route is active. |
68
+
69
+ ## Changes to `<Router>`
70
+
71
+ You can have multiple `<Route>` and `<FileRoutes>` components in your app. Hydrogen will only render one route for each request — whichever it finds first. This means the `<Router>` component no longer takes `fallback` as a prop. It also doesn't need `serverProps`. Instead, to render a 404 "Not Found" page, add `<Route path="*" page={<NotFound />} />` to your app. Make sure it's the last `<Route>` defined inside your app:
72
+
73
+ ```diff
74
+ function App({routes, ...serverProps}) {
75
+ return (
76
+ <ShopifyProvider shopifyConfig={shopifyConfig}>
77
+ <CartProvider>
78
+ <DefaultSeo />
79
+ - <Router
80
+ - fallback={<NotFound response={serverProps.response} />}
81
+ - serverProps={serverProps}
82
+ - >
83
+ + <Router>
84
+ <FileRoutes routes={routes} />
85
+ + <Route path="*" page={<NotFound />} />
86
+ </Router>
87
+ </CartProvider>
88
+ </ShopifyProvider>
89
+ );
90
+ }
91
+ ```
92
+
93
+ ## Changes to `<FileRoutes>`
94
+
95
+ The `<FileRoutes>` component now accepts two additional optional props:
96
+
97
+ | Property | Type | Required | Default Value | Description |
98
+ | ----------- | -------- | -------- | ------------- | ----------------------------------------------------------------------- |
99
+ | `basePath` | `string` | No | `"/"` | A path that's prepended to all file routes. |
100
+ | `dirPrefix` | `string` | No | `"./routes"` | The portion of the file route path that shouldn't be a part of the URL. |
101
+
102
+ You need to modify `dirPrefix` if you want to import routes from a location other than `src/routes`.
103
+
104
+ You can modify `basePath` if you want to prefix all file routes. For example, you can prefix all file routes with a locale:
105
+
106
+ ```jsx
107
+ <Router>
108
+ <FileRoutes basePath={`/${locale}`} routes={routes} />
109
+ <Route path="*" page={<NotFound />} />
110
+ </Router>
111
+ ```
112
+
113
+ ## New `useRouteParams()` hook
114
+
115
+ You can use the `useRouteParams()` hook to retrieve the parameters of an active route. The hook is available in both server and client components:
116
+
117
+ ```jsx
118
+ // products/[handle].server.jsx
119
+
120
+ import {useRouteParams} from '@shopify/hydrogen';
121
+
122
+ export default function Product() {
123
+ const {handle} = useRouteParams();
124
+ // ...
125
+ }
126
+ ```
127
+
128
+ ```jsx
129
+ // ProductDetails.client.jsx
130
+ import {useRouteParams} from '@shopify/hydrogen/client';
131
+
132
+ export default function ProductDetails() {
133
+ const {handle} = useRouteParams();
134
+ // ...
135
+ }
136
+ ```
137
+
138
+ - [#842](https://github.com/Shopify/hydrogen/pull/842) [`626e58e`](https://github.com/Shopify/hydrogen/commit/626e58eebe3cf994423895bbdf7754c009d701fe) Thanks [@wizardlyhel](https://github.com/wizardlyhel)! - Removed the `Rawhtml` component.
139
+
140
+ Upgrade your project by replacing references to the `RawHtml` component to follow
141
+ [React's `dangerouslySetInnerHTML`](https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml):
142
+
143
+ Change all `RawHtml` component
144
+
145
+ ```jsx
146
+ <RawHtml string="<p>Hello world</p>" />
147
+ ```
148
+
149
+ to jsx equivalent
150
+
151
+ ```jsx
152
+ <div dangerouslySetInnerHTML={{__html: '<p>Hello world</p>'}} />
153
+ ```
154
+
155
+ ### Patch Changes
156
+
157
+ - [#870](https://github.com/Shopify/hydrogen/pull/870) [`4c0fcd8`](https://github.com/Shopify/hydrogen/commit/4c0fcd8f55a7956ab4641f12a5d9ebcb2587264c) Thanks [@frandiox](https://github.com/frandiox)! - Remove useQuery hook from client exports to avoid leaking server logic to the browser.
158
+
159
+ * [#895](https://github.com/Shopify/hydrogen/pull/895) [`1017b54`](https://github.com/Shopify/hydrogen/commit/1017b541c275c030f97ee6dee1e310df1fe89fb5) Thanks [@frandiox](https://github.com/frandiox)! - Improve error thrown in development when entry point fails on load.
160
+
161
+ - [#871](https://github.com/Shopify/hydrogen/pull/871) [`4cb07c7`](https://github.com/Shopify/hydrogen/commit/4cb07c7357cf05cc63f9d3c2834ac3c43e8859b5) Thanks [@scottdixon](https://github.com/scottdixon)! - Hydrogen docs: Update ProductProvider example query
162
+
163
+ ## 0.12.0
164
+
165
+ ### Minor Changes
166
+
167
+ - [`8271be8`](https://github.com/Shopify/hydrogen/commit/8271be83331c99f27a258e6532983da4fe4f0b5b) Thanks [@michenly](https://github.com/michenly)! - Export Seo components Fragement and use them in the starter template.
168
+
169
+ * [#827](https://github.com/Shopify/hydrogen/pull/827) [`745e8c0`](https://github.com/Shopify/hydrogen/commit/745e8c0a87a7c41803934565e5a756295ff629c2) Thanks [@michenly](https://github.com/michenly)! - Move any static `Fragment` properties on components to the entry point `@shopify/hydrogen/fragments`.
170
+ The migration diff are as follows:
171
+
172
+ ```diff
173
+ - import {ExternalVideoFragment} from '@shopify/hydrogen';
174
+ + import {ExternalVideoFragment} from '@shopify/hydrogen/fragments';
175
+ - import type {ExternalVideoFragmentFragment} from '@shopify/hydrogen';
176
+ + import type {ExternalVideoFragmentFragment} from '@shopify/hydrogen/fragments';
177
+ ```
178
+
179
+ ```diff
180
+ - import {ImageFragment} from '@shopify/hydrogen';
181
+ + import {ImageFragment} from '@shopify/hydrogen/fragments';
182
+ - import type {ImageFragmentFragment} from '@shopify/hydrogen';
183
+ + import type {ImageFragmentFragment} from '@shopify/hydrogen/fragments';
184
+ ```
185
+
186
+ ```diff
187
+ - import {MediaFileFragment} from '@shopify/hydrogen';
188
+ + import {MediaFileFragment} from '@shopify/hydrogen/fragments';
189
+ - import type {MediaFileFragmentFragment} from '@shopify/hydrogen';
190
+ + import type {MediaFileFragmentFragment} from '@shopify/hydrogen/fragments';
191
+ ```
192
+
193
+ ```diff
194
+ - import {MetafieldFragment} from '@shopify/hydrogen';
195
+ + import {MetafieldFragment} from '@shopify/hydrogen/fragments';
196
+ - import type {MetafieldFragmentFragment} from '@shopify/hydrogen';
197
+ + import type {MetafieldFragmentFragment} from '@shopify/hydrogen/fragments';
198
+ ```
199
+
200
+ ```diff
201
+ - import {Model3DFragment} from '@shopify/hydrogen';
202
+ + import {Model3DFragment} from '@shopify/hydrogen/fragments';
203
+ - import type {Model3DFragmentFragment} from '@shopify/hydrogen';
204
+ + import type {Model3DFragmentFragment} from '@shopify/hydrogen/fragments';
205
+ ```
206
+
207
+ ```diff
208
+ - import {MoneyFragment} from '@shopify/hydrogen';
209
+ + import {MoneyFragment} from '@shopify/hydrogen/fragments';
210
+ - import type {MoneyFragmentFragment} from '@shopify/hydrogen';
211
+ + import type {MoneyFragmentFragment} from '@shopify/hydrogen/fragments';
212
+ ```
213
+
214
+ ```diff
215
+ - import {ProductProviderFragment} from '@shopify/hydrogen';
216
+ + import {ProductProviderFragment} from '@shopify/hydrogen/fragments';
217
+ - import type {ProductProviderFragmentFragment} from '@shopify/hydrogen';
218
+ + import type {ProductProviderFragmentFragment} from '@shopify/hydrogen/fragments';
219
+ ```
220
+
221
+ ```diff
222
+ - import {UnitPriceFragment} from '@shopify/hydrogen';
223
+ + import {UnitPriceFragment} from '@shopify/hydrogen/fragments';
224
+ - import type {UnitPriceFragmentFragment} from '@shopify/hydrogen';
225
+ + import type {UnitPriceFragmentFragment} from '@shopify/hydrogen/fragments';
226
+ ```
227
+
228
+ ```diff
229
+ - import {VideoFragment} from '@shopify/hydrogen';
230
+ + import {VideoFragment} from '@shopify/hydrogen/fragments';
231
+ - import type {VideoFragmentFragment} from '@shopify/hydrogen';
232
+ + import type {VideoFragmentFragment} from '@shopify/hydrogen/fragments';
233
+ ```
234
+
235
+ - [#455](https://github.com/Shopify/hydrogen/pull/455) [`81ac653`](https://github.com/Shopify/hydrogen/commit/81ac6534b8464e187b09ee13525319ed0c6c7c1d) Thanks [@johncraigcole](https://github.com/johncraigcole)! - Updated the ExternalVideo component to use the new `embedUrl` Storefront API ([introduced in 2022-04](https://shopify.dev/api/release-notes/2022-04#non-encoded-object-ids-in-the-graphql-storefront-api)) on ExternalVideo.
236
+
237
+ * [#809](https://github.com/Shopify/hydrogen/pull/809) [`47f23f9`](https://github.com/Shopify/hydrogen/commit/47f23f921873b782947aed2e54d997ad034801b8) Thanks [@frehner](https://github.com/frehner)! - Upgrade default Storefront API to version '2022-04'. Some components have been updated to use the 2022-04 features and types as well.
238
+
239
+ One important change is that the `2022-04` Storefront API no longer encodes object IDs: see more [details here](https://shopify.dev/api/release-notes/2022-04#non-encoded-object-ids-in-the-graphql-storefront-api). Because of this, Hydrogen will no longer decode IDs, either, which will cause issues if you are using a previous version of the Storefront API with Hydrogen components.
240
+
241
+ - [#780](https://github.com/Shopify/hydrogen/pull/780) [`122a5c5`](https://github.com/Shopify/hydrogen/commit/122a5c5e0b70fa2a11c2c708b303da987f25fc53) Thanks [@jplhomer](https://github.com/jplhomer)! - Adds `queryShop` helper to API routes. This makes it easy to query the Storefront API, similar to how `useShopQuery` is available in server components:
242
+
243
+ ```jsx
244
+ // my-api.server.js
245
+
246
+ export default function api(request, {queryShop}) {
247
+ return await queryShop({
248
+ query: `query ShopName { shop { name } }`,
249
+ });
250
+ }
251
+ ```
252
+
253
+ `queryShop` accepts a single argument object with the following properties:
254
+
255
+ | Property | Type | Required |
256
+ | ----------- | -------------------------------------- | -------- |
257
+ | `query` | `string \| ASTNode` | Yes |
258
+ | `variables` | `Record<string, any>` | No |
259
+ | `locale` | `string` (defaults to `defaultLocale`) | No |
260
+
261
+ **Important**: In order to use `queryShop`, you should pass `shopifyConfig` to `renderHydrogen` inside `App.server.jsx`:
262
+
263
+ ```diff
264
+ -export default renderHydrogen(App, {routes});
265
+ +export default renderHydrogen(App, {shopifyConfig, routes});
266
+ ```
267
+
268
+ * [#712](https://github.com/Shopify/hydrogen/pull/712) [`6368968`](https://github.com/Shopify/hydrogen/commit/6368968e4c68bb44b01b6b0b6903e403269dc233) Thanks [@blittle](https://github.com/blittle)! - Routing in Hydrogen has been updated according to [Custom Routes proposal](https://github.com/Shopify/hydrogen/discussions/569). Specifically, a new `Router` component has been added, and `DefaultRoutes` has been renamed to `FileRoutes`, along with other minor changes. Custom route components are not implemented yet.
269
+
270
+ Follow these steps to upgrade your `App.server.jsx` file:
271
+
272
+ 1. Rename the parameter `pages` to `routes` when calling `renderHydrogen`.
273
+ 2. Rename the `DefaultRoutes` component to `FileRoutes`.
274
+ 3. Add the new `Router` component as a parent of `FileRoutes` and pass `fallback` and `serverProps` props (previously in `DefaultRoutes`).
275
+ 4. Rename `src/pages` directory to `src/routes` and update the glob import in `App.server.jsx` to `import.meta.globEager('./routes/**/*.server.[jt](s|sx)')`.
276
+
277
+ #### Full example of `App.server.jsx`
278
+
279
+ ```jsx
280
+ import renderHydrogen from '@shopify/hydrogen/entry-server';
281
+ import {Router, FileRoutes, ShopifyProvider} from '@shopify/hydrogen';
282
+ import {Suspense} from 'react';
283
+ import shopifyConfig from '../shopify.config';
284
+ import DefaultSeo from './components/DefaultSeo.server';
285
+ import NotFound from './components/NotFound.server';
286
+ import LoadingFallback from './components/LoadingFallback';
287
+ import CartProvider from './components/CartProvider.client';
288
+
289
+ function App({routes, ...serverProps}) {
290
+ return (
291
+ <Suspense fallback={<LoadingFallback />}>
292
+ <ShopifyProvider shopifyConfig={shopifyConfig}>
293
+ <CartProvider>
294
+ <DefaultSeo />
295
+ <Router fallback={<NotFound />} serverProps={serverProps}>
296
+ <FileRoutes routes={routes} />
297
+ </Router>
298
+ </CartProvider>
299
+ </ShopifyProvider>
300
+ </Suspense>
301
+ );
302
+ }
303
+
304
+ const routes = import.meta.globEager('./routes/**/*.server.[jt](s|sx)');
305
+ export default renderHydrogen(App, {shopifyConfig, routes});
306
+ ```
307
+
308
+ ### Patch Changes
309
+
310
+ - [#799](https://github.com/Shopify/hydrogen/pull/799) [`350293a`](https://github.com/Shopify/hydrogen/commit/350293a9fa113fa9950aad27cf7ccaa6b535bedb) Thanks [@michenly](https://github.com/michenly)! - Update `linesAdd` to create cart if cart does not exist.
311
+
312
+ * [#788](https://github.com/Shopify/hydrogen/pull/788) [`9d4c43d`](https://github.com/Shopify/hydrogen/commit/9d4c43d6cc4f0b52affc33274c438a356c95ad37) Thanks [@mcvinci](https://github.com/mcvinci)! - Hydrogen docs: Static assets and component props
313
+
314
+ - [#813](https://github.com/Shopify/hydrogen/pull/813) [`b1b959c`](https://github.com/Shopify/hydrogen/commit/b1b959c45ae43d7078c655b4012b6d6cd2db6491) Thanks [@frandiox](https://github.com/frandiox)! - Do not scroll to top if the URL pathname has not changed.
315
+
316
+ * [#821](https://github.com/Shopify/hydrogen/pull/821) [`548979e`](https://github.com/Shopify/hydrogen/commit/548979ea7cbc38e52628d3359fd6c4edd19b41cc) Thanks [@jplhomer](https://github.com/jplhomer)! - Add null check for ShopifyProvider
317
+
318
+ - [#850](https://github.com/Shopify/hydrogen/pull/850) [`74b14e4`](https://github.com/Shopify/hydrogen/commit/74b14e4a66c72125bc1b372c57f305a86a2e1fe4) Thanks [@blittle](https://github.com/blittle)! - Ignore when boomerang doesn't load. This often happens when a adblocker is present on the client.
319
+ There is no longer an uncaught promise exception in the console.
320
+
321
+ * [#803](https://github.com/Shopify/hydrogen/pull/803) [`7528bf4`](https://github.com/Shopify/hydrogen/commit/7528bf4956970d76f37452bd33f9c9a692187c4f) Thanks [@frandiox](https://github.com/frandiox)! - Avoid accessing undefined global \_\_flight as a side effect of another unknown error.
322
+
323
+ - [#833](https://github.com/Shopify/hydrogen/pull/833) [`214927a`](https://github.com/Shopify/hydrogen/commit/214927a071b9350d1f70fa02c74227f1e5d77238) Thanks [@frandiox](https://github.com/frandiox)! - Disable worker streaming until it is properly supported.
324
+
325
+ * [#837](https://github.com/Shopify/hydrogen/pull/837) [`2e76d66`](https://github.com/Shopify/hydrogen/commit/2e76d66ac23d84c13cf9c60e0b7aacf9eddda9ce) Thanks [@jplhomer](https://github.com/jplhomer)! - Minify server build output
326
+
327
+ - [#819](https://github.com/Shopify/hydrogen/pull/819) [`09d9ad5`](https://github.com/Shopify/hydrogen/commit/09d9ad5d7b65942d9187c6b766bf4c60a6979453) Thanks [@jplhomer](https://github.com/jplhomer)! - Improve logging for useShopQuery errors
328
+
329
+ * [#825](https://github.com/Shopify/hydrogen/pull/825) [`1215fdb`](https://github.com/Shopify/hydrogen/commit/1215fdb02910190096c6920f533d06f00fc59a6c) Thanks [@michenly](https://github.com/michenly)! - `@shopify/hydrogen` will no longer export the following types
330
+
331
+ - MediaFileProps
332
+ - VideoProps
333
+ - ImageProps
334
+ - ExternalVideoProps
335
+ - RawHtmlProps
336
+ - AddToCartButtonProps
337
+ - ModelViewerProps
338
+ - MoneyProps
339
+ - BuyNowButtonProps
340
+ - BuyNowButtonPropsWeControl
341
+ - ShopPayButtonProps
342
+
343
+ Any Component props type should be typed instead with `React.ComponentProps<typeof MyComponent>`.
344
+
345
+ - [#792](https://github.com/Shopify/hydrogen/pull/792) [`8aad0b5`](https://github.com/Shopify/hydrogen/commit/8aad0b561ddbef55abc598c91c6e9bd642c46d9c) Thanks [@frandiox](https://github.com/frandiox)! - Attributes from `<html>` and `<body>` elements in `index.html` are now included in the SSR response.
346
+
347
+ * [#811](https://github.com/Shopify/hydrogen/pull/811) [`2226b6e`](https://github.com/Shopify/hydrogen/commit/2226b6eda30a29ad79fb89c600a210b615dc5406) Thanks [@frandiox](https://github.com/frandiox)! - Support non-PascalCase filenames for client components.
348
+
349
+ - [#786](https://github.com/Shopify/hydrogen/pull/786) [`d1ecaf7`](https://github.com/Shopify/hydrogen/commit/d1ecaf7efff4595da46b0ece08c3cd94c6cdd55f) Thanks [@frehner](https://github.com/frehner)! - Updated graphql-codegen, which updates the Typescript types available for each Storefront API object
350
+
351
+ * [#849](https://github.com/Shopify/hydrogen/pull/849) [`e64fa17`](https://github.com/Shopify/hydrogen/commit/e64fa17c61585a7dc967bef5a2216dde40b2fc42) Thanks [@blittle](https://github.com/blittle)! - Fix server the server to only log once for the full time it takes to stream render a page
352
+
353
+ - [#394](https://github.com/Shopify/hydrogen/pull/394) [`818312d`](https://github.com/Shopify/hydrogen/commit/818312d72618882056d0344f069568e71766d32d) Thanks [@sahilmob](https://github.com/sahilmob)! - Respond with 404 if the route has no matches.
354
+
355
+ * [#841](https://github.com/Shopify/hydrogen/pull/841) [`0aa74cf`](https://github.com/Shopify/hydrogen/commit/0aa74cf78dae555fc111c06df3d2b73b022af4f0) Thanks [@michenly](https://github.com/michenly)! - Update MediaFile's options prop type to included Image options.
356
+
357
+ - [#796](https://github.com/Shopify/hydrogen/pull/796) [`1dc62e2`](https://github.com/Shopify/hydrogen/commit/1dc62e2514b53411ae750d81c0a1b4f50eae9aff) Thanks [@mcvinci](https://github.com/mcvinci)! - Hydrogen docs: Strict mode
358
+
359
+ * [#813](https://github.com/Shopify/hydrogen/pull/813) [`b1b959c`](https://github.com/Shopify/hydrogen/commit/b1b959c45ae43d7078c655b4012b6d6cd2db6491) Thanks [@frandiox](https://github.com/frandiox)! - Remove Router client-only logic from server bundle and avoid extra waterfall requests during Hydration.
360
+ Extract part of the client bundle into separate modules that can be loaded in parallel.
361
+
362
+ ## 0.11.1
363
+
364
+ ### Patch Changes
365
+
366
+ - [#770](https://github.com/Shopify/hydrogen/pull/770) [`71e0255`](https://github.com/Shopify/hydrogen/commit/71e0255ea48dc1caa34d2c05a1556cc0ce6d4ce9) Thanks [@mcvinci](https://github.com/mcvinci)! - Hydrogen docs: Framework and global hooks content updates
367
+
368
+ * [#761](https://github.com/Shopify/hydrogen/pull/761) [`1142647`](https://github.com/Shopify/hydrogen/commit/114264716bc8f3027e3e6395d523714adbc92014) Thanks [@frehner](https://github.com/frehner)! - Fix issue with components that take in the `as` prop not validating other props when a component is passed to `as`.
369
+
370
+ - [#752](https://github.com/Shopify/hydrogen/pull/752) [`428aa7a`](https://github.com/Shopify/hydrogen/commit/428aa7adac179dd1efffc29bf382a7bb0a2c8971) Thanks [@michenly](https://github.com/michenly)! - Ensure ProductSeo knows how to handle `featuredImage = null`
371
+
372
+ * [#774](https://github.com/Shopify/hydrogen/pull/774) [`052f148`](https://github.com/Shopify/hydrogen/commit/052f148e0d33029cdc2540afa5ead32825962f3a) Thanks [@frandiox](https://github.com/frandiox)! - Fix internal url usage in platforms like Vercel, which already provides protocol and host in `request.url`.
373
+
374
+ - [#744](https://github.com/Shopify/hydrogen/pull/744) [`2e487b7`](https://github.com/Shopify/hydrogen/commit/2e487b7e70fe0572538dc2a24b6b6b36ba9fc804) Thanks [@jplhomer](https://github.com/jplhomer)! - Switch to using Changesets for changelogs.
375
+
376
+ * [#775](https://github.com/Shopify/hydrogen/pull/775) [`d5b7ee1`](https://github.com/Shopify/hydrogen/commit/d5b7ee1d8312f64922d1f78afc82ec5ad4a3f457) Thanks [@cartogram](https://github.com/cartogram)! - In cases where the `initialVariantId` is missing on the `<ProductProvider />`, the `selectedVariantId` in the returned `object` from `useProduct()` will now use the first available variant _or_ the first variant (if non are available).
377
+
378
+ - [#773](https://github.com/Shopify/hydrogen/pull/773) [`b6a053e`](https://github.com/Shopify/hydrogen/commit/b6a053e774da443b5692dec51546f5558b3018ad) Thanks [@frandiox](https://github.com/frandiox)! - Fix server bundle name in cases where CSS or images are imported in server components.
379
+
380
+ * [#764](https://github.com/Shopify/hydrogen/pull/764) [`5e55da4`](https://github.com/Shopify/hydrogen/commit/5e55da4090692369ff6a3d57fbc6d29124bdf2e9) Thanks [@wizardlyhel](https://github.com/wizardlyhel)! - Preload queries breaking fetch on Cloudfare [#764](https://github.com/Shopify/hydrogen/pull/764)
381
+
382
+ - [#763](https://github.com/Shopify/hydrogen/pull/763) [`ea2857a`](https://github.com/Shopify/hydrogen/commit/ea2857a515866f37f392bca5da8be1139c055a64) Thanks [@frehner](https://github.com/frehner)! - Client-side apps now have React's `StrictMode` component wrapping the whole app, with an option to disable it. If you do turn it off, it is recommended that you still include the `StrictMode` component at as high of a level as possible in your React tree.
383
+
384
+ See also [React 17's docs](https://reactjs.org/docs/strict-mode.html) on `StrictMode`, and [React 18's updates](https://github.com/reactwg/react-18/discussions/19) to `StrictMode`.
385
+
386
+ * [#747](https://github.com/Shopify/hydrogen/pull/747) [`2d8ab7e`](https://github.com/Shopify/hydrogen/commit/2d8ab7e2a8038ff8b43e6e9398e0bb2da72220a0) Thanks [@mcvinci](https://github.com/mcvinci)! - Hydrogen docs: Preloaded queries and query timing
387
+
388
+ ## [0.11.0] - 2022-02-24
389
+
390
+ ### Added
391
+
392
+ - New React hook `useScriptLoader` is available to more easily load external scripts
393
+ - Add `totalQuantity` to the returned object from `useCart()`
394
+ - Export `ProductPrice` and `ProductMetafield` standalone components
395
+ - Added `useUrl` hook that allows the consumer to get the current url in server or client component
396
+ - Added logging option `showCacheApiStatus` and `cacheControlHeader` by @wizardlyhel in [#472](https://github.com/Shopify/hydrogen/pull/472)
397
+ - Pass HYDROGEN_ASSET_BASE_URL into config to set base URL for compiled assets
398
+ - Introduce Hydrogen the `<Link>` component and `useNavigate` hook for routing
399
+ - Add a default virtual entry-client in `/@shopify/hydrogen/entry-client` that can be used in `index.html`
400
+ - Enable early hydration when streaming
401
+ - Add variantId prop to `<ProductMetafield />` component [#730](https://github.com/Shopify/hydrogen/pull/730)
402
+ - Add query timing logging option `showQueryTiming` [#699](https://github.com/Shopify/hydrogen/pull/699)
403
+ - Add variantId prop to `<ProductPrice />` component
404
+ - Add `preload` option to `useQuery` and `useShopQuery` [#700](https://github.com/Shopify/hydrogen/pull/700)
405
+
406
+ ### Breaking Change
407
+
408
+ - `<Model3D>` has been renamed to `<ModelViewer>`
409
+ - `<Product />` and `<CartLine />` aliases have been removed; use the original components `<ProductProvider />` and `<CartLineProvider />` instead. Their nested component aliases, such as `<Product.Image />`, have also been removed; in this example you should use `<ProductImage />`.
410
+ - Merge `/src/entry-server.jsx` entry point into `App.server.jsx`
411
+ - The following components had their prop name renamed. Refer to the documentation or [#627](https://github.com/Shopify/hydrogen/issues/627) for more details.
412
+ - `<ExternalVideo />`: renamed video prop to data
413
+ - `<Video />`: renamed video prop to data
414
+ - `<Image>`: renamed image prop to data
415
+ - `<MediaFile>`: renamed media prop to data
416
+ - `<ModelViewer>`: renamed model prop to data
417
+ - `<Metafield>`: renamed metafield prop to data
418
+ - `<Money>`: renamed money prop to data
419
+ - `<UnitPrice>`: renamed unitPrice prop to data, unitPriceMeasurement prop to measurement
420
+ - `<ProductProvider>`: renamed product prop to data
421
+ - `<CartProvider>`: renamed cart prop to data
422
+ - Helmet component has been renamed to Head
423
+ - Remove the `<SelectedVariantBuyNowButton />` component in favour of using `<BuyNowButton variantId={product.selectedVariant.id} />`
424
+ - `<SelectedVariantAddToCartButton />` has been removed; the `<AddToCartButton />` will now use the selectedVariant by default.
425
+ - Remove the `<SelectedVariantImage />` component in favour of using `<Image data={product.selectedVariant.image} />`
426
+ - Remove the `<SelectedVariantMetafield />` component in favour of using `<ProductMetafield variantId={product.selectedVariant.id} />`
427
+ - Remove the `<SelectedVariantShopPayButton />` component in favour of using `<ShopPayButton variantId={product.selectedVariant.id} />`
428
+ - Remove the `<SelectedVariantPrice/>` and `<SelectedVariantUnitPrice/>` component in favour of using `<ProductPrice variantId={product.selectedVariant.id} />`
429
+
430
+ ### Changed
431
+
432
+ - Change `/react` RSC path to `/__rsc`
433
+ - `<ShopifyProvider>` can again be used in server components
434
+ - Use hashes as client component ids instead of absolute paths
435
+ - Transition away from deprecated currency selector in favor of country selector
436
+ - Simplify Helmet usage and make it compatible with RSC
437
+ - The `Seo.client` component has been moved from `src/components` to `@shopify/hydrogen`. The props of the `Seo.client` component also changed to always take in `type` and `data`. Refer to the [`Seo` component reference](../src/components/Seo/README.md) for more details. [#539](https://github.com/Shopify/hydrogen/pull/539)
438
+ - Standardize cache control header into caching strategies by @wizardlyhel in [#629](https://github.com/Shopify/hydrogen/pull/629)
439
+ - Target future release to use '2022-01' API Version
440
+ - Correct Typescript issue where `as` was a default prop for all components when it should not be
441
+ - Update types and docs for `useCart()` hook and `<CartProvider>`
442
+ - Track page load performance
443
+ - The following money components no longer allow the function-as-a-child (also known as "render props") pattern; see [#589](https://github.com/Shopify/hydrogen/pull/589)
444
+ - `<Money>` Use `useMoney()` for customization
445
+ - `<CartLinePrice>` Use `useMoney()` for customization
446
+ - `<ProductPrice>` Use `useMoney()` for customization
447
+ - `<SelectedVariantPrice>` Use `useMoney()` for customization
448
+ - `<Metafield>` Use `useParsedMetafields()` for customization
449
+ - `<ProductMetafield>` Use `useParsedMetafields()` for customization
450
+ - `<SelectedVariantMetafield>` Use `useParsedMetafields()` for customization
451
+ - `<UnitPrice>` Use `useMoney()` for customization
452
+ - `<CartLines>` Use `useCart()` for customization
453
+ - `<Metafield>` now renders `ratings` as a `<span>` with text instead of stars; `multi_line_text_field` inside of a `<span>` instead of a `<div>`
454
+ - Use `featureImage` instead of images(first:1) on product query
455
+ - Update `react-helmet-async` to 1.2.3 and remove our custom types
456
+
457
+ ### Fixed
458
+
459
+ - Fix index routes. See [#562](https://github.com/Shopify/hydrogen/issues/562)
460
+ - Fix missing server state on SSR pass
461
+ - Fix mobile navigation in example that scrolls the body underneath when shown by @Francismori7 in [#582](https://github.com/Shopify/hydrogen/pull/582)
462
+ - Add charset to content type in HTML responses
463
+ - Fix header shift when cart is opened by @Francismori7 in [#600](https://github.com/Shopify/hydrogen/pull/600)
464
+ - Fix bug where search param is not being pass along during RSC streaming call [#623](https://github.com/Shopify/hydrogen/pull/623)
465
+ - Allow custom entry-client filenames
466
+ - Clear browser fetch cache by @wizardlyhel in [#591](https://github.com/Shopify/hydrogen/pull/591)
467
+ - Cannot redefine property error when updating client components
468
+ - `ShopPayButton` supports quantities greater than 1. Also fixed issues with IDs in Storefront API version 2022-01
469
+ - Render error in `Gallery.client.jsx` component when product resource has an external video or no images.
470
+ - Ensure youtube external videos are embed compatible urls
471
+ - Prevent client components from being cached during development
472
+ - Backticks in HTML break RSC hydration.
473
+
474
+ ### Removed
475
+
476
+ - <CartLineSelectedOptions /> and <CartLineAttributes /> components. These components used the “function-as-a-child” pattern which doesn’t allow the `children` prop to be serialized, preventing them from being rendered within Server components.
477
+
478
+ _Migration_
479
+
480
+ The functionality provided by these components can be replicated using the `useCartLine()` hook instead.
481
+
482
+ _Example_
483
+
484
+ ```tsx
485
+ // Before
486
+ function SomeComponent() {
487
+ return (
488
+ <>
489
+ <CartLineSelectedOptions as="ul" className="text-xs space-y-1">
490
+ {({name, value}) => (
491
+ <>
492
+ {name}: {value}
493
+ </>
494
+ )}
495
+ </CartLineSelectedOptions>
496
+ <CartLineAttributes as="ul" className="text-sm space-y-1">
497
+ {({key, value}) => (
498
+ <>
499
+ {key}: {value}
500
+ </>
501
+ )}
502
+ </CartLineAttributes>
503
+ </>
504
+ );
505
+ }
506
+
507
+ // After
508
+ function SomeComponent() {
509
+ const {merchandise} = useCartLine();
510
+
511
+ return (
512
+ <>
513
+ <ul className="text-xs space-y-1">
514
+ {merchandise.selectedOptions.map(({name, value}) => (
515
+ <li key={name}>
516
+ {name}: {value}
517
+ </li>
518
+ ))}
519
+ </ul>
520
+ </>
521
+ );
522
+ }
523
+ ```
524
+
525
+ - Remove `fetch` workaround
526
+ - Remove the following hooks. (All the same functionality can be retrieved through the `useCart()` hook)
527
+ - `useCartAttributesUpdateCallback`
528
+ - `useCartBuyerIdentityUpdateCallback`
529
+ - `useCartCheckoutUrl`
530
+ - `useCartCreateCallback`
531
+ - `useCartDiscountCodesUpdateCallback`
532
+ - `useCartLinesAddCallback`
533
+ - `useCartLinesRemoveCallback`
534
+ - `useCartLinesTotalQuantity`
535
+ - `useCartLinesUpdateCallback`
536
+ - `useCartNoteUpdateCallback`
537
+ - Remove React Router on the client
538
+ - Remove `handleEvent` in favor of `handleRequest`
539
+ - Remove `assetHandler` parameter in the new `handleRequest`
540
+ - `<SelectedVariantAddToCartButton />` has been removed; the `<AddToCartButton />` will now use the selectedVariant by default.
541
+ - Remove the `<SelectedVariantImage />` component in favour of using `<Image data={product.selectedVariant.image} />`
542
+ - Remove the `<SelectedVariantMetafield />` component in favour of using `<ProductMetafield variantId={product.selectedVariant.id} />`
543
+ - Remove the `<SelectedVariantBuyNowButton />` component in favour of using `<BuyNowButton variantId={product.selectedVariant.id} />`
544
+ - Remove the `<SelectedVariantShopPayButton />` component in favour of using `<ShopPayButton variantId={product.selectedVariant.id} />`
545
+
546
+ ## [0.10.1] - 2022-01-26
547
+
548
+ ### Fixed
549
+
550
+ - Hot reload for newly added page files
551
+
552
+ ## [0.10.0] - 2022-01-25
553
+
554
+ ### Changed
555
+
556
+ - Warn instead of error when a page server component is missing valid exports
557
+ - Adopt upstream version of React Server Components. See [#498](https://github.com/Shopify/hydrogen/pull/498) for breaking changes
558
+ - Bump to latest version of React experimental to include [upstream context bugfix](https://github.com/facebook/react/issues/23089)
559
+ - Improve API routes by allowing [strings and JS objects](https://github.com/Shopify/hydrogen/issues/476) to be returned.
560
+
561
+ ### Breaking Change
562
+
563
+ - The 'locale' option in shopify.config.js had been renamed to 'defaultLocale'
564
+ - Rename `graphqlApiVersion` to `storefrontApiVersion` in `shopify.config.js`
565
+
566
+ ### Fixed
567
+
568
+ - Make sure that API routes [hot reload properly](https://github.com/Shopify/hydrogen/issues/497)
569
+
570
+ ## [0.9.1] - 2022-01-20
571
+
572
+ ### Changed
573
+
574
+ - Transitive dependency bump.
575
+
576
+ ## [0.9.0] - 2022-01-20
577
+
578
+ ### Added
579
+
580
+ - API routes 🎉
581
+
582
+ ### Changed
583
+
584
+ - Move to undici instead of node-fetch
585
+
586
+ ## [0.8.3] - 2022-01-13
587
+
588
+ ### Added
589
+
590
+ - Add optional `locale` param to `useShopQuery` to be used as `Accept-Language` in the store Storefront API query
591
+ - Optional purge query cache per build
592
+
593
+ ### Fixed
594
+
595
+ - Replace log abbreviations with full text.
596
+
597
+ ## [0.8.2] - 2022-01-07
598
+
599
+ ### Changed
600
+
601
+ - Warn when requests take longer than 3000ms instead of erroring
602
+ - `useQuery` returns an error if the query's fetch was unsuccessful
603
+ - `useShopQuery` will give error hints to look at `shopify.config.js` when the Storefront API responds with a 403
604
+
605
+ ### Fixed
606
+
607
+ - Load logger only once.
608
+ - Do not attempt to decode product IDs, as they are no longer base64-encoded in `unstable`
609
+
610
+ ## [0.8.1] - 2022-01-04
611
+
612
+ ### Added
613
+
614
+ - Detect bot user agents and give bots a non-streamed response.
615
+ - Add global `Oxygen.env` for server-only environment variables.
616
+ - Logging abstraction with default timing information
617
+
618
+ ### Changed
619
+
620
+ - Upgrade to latest React 18 experimental version
621
+
622
+ ### Fixed
623
+
624
+ - Cart decrease button removes at zero quantity
625
+
626
+ ## [0.8.0] - 2021-12-07
627
+
628
+ ### Fixed
629
+
630
+ - Export `CartLineSelectedOptions` properly
631
+ - Fix suspense utility function
632
+
633
+ ## [0.7.1] - 2021-12-02
634
+
635
+ ### Changed
636
+
637
+ - Allow `useShopQuery` to be skippable if no query is passed
638
+ - Remove usage of `react-query` (Not a breaking change)
639
+
640
+ ### Fixed
641
+
642
+ - Avoid repeating the same identifier for default and named exports
643
+ - Remove sourcemap warnings
644
+
645
+ ## [0.7.0] - 2021-11-22
646
+
647
+ ### Added
648
+
649
+ - Add file reference metafield support
650
+ - Allow custom Model3D poster
651
+ - Support synchronous server redirects
652
+
653
+ ### Fixed
654
+
655
+ - Binding of waitUntil in playground/server-components-worker
656
+ - Default to `retry: false` in `useQuery`
657
+ - Warn and ignore reserved properties in server state
658
+ - Run graphiql middleware before vite, fixing graphiql
659
+
660
+ ## [0.6.4] - 2021-11-11
661
+
662
+ ### Fixed
663
+
664
+ - Let Vite handle public assets in development
665
+ - New lines in hydration request break JSON.parse
666
+ - Normalize POSIX separators to support windows [#201](https://github.com/Shopify/hydrogen/pull/201)
667
+ - Scroll to top on app first load
668
+ - Update variantID to variantId [#78](https://github.com/Shopify/hydrogen/pull/78)
669
+
670
+ ## [0.6.3] - 2021-11-10
671
+
672
+ ### Fixed
673
+
674
+ - Add trailing slash to user components glob
675
+
676
+ ## [0.6.2] - 2021-11-10
677
+
678
+ ### Fixed
679
+
680
+ - Remove CartProvider from BuyNowButton
681
+ - Reading property of null for component props
682
+ - Transform deeply-imported client components
683
+ - Duplicated files and contexts in browser
684
+
685
+ ## [0.6.1] - 2021-11-08
686
+
687
+ ### Changed
688
+
689
+ - Transitive dependency bump.
690
+
691
+ ### Fixed
692
+
693
+ - Do not set headers after they are sent to client
694
+
695
+ ## [0.6.0] - 2021-11-05
696
+
697
+ ### Changed
698
+
699
+ - Disable the quantity adjust button when the cart is not idle
700
+ - Use country server state in cart for the inContext directive
701
+ - Use Image url field instead of deprecated originalSrc field
702
+ - Switch to unstable API
703
+
704
+ ### Fixed
705
+
706
+ - Update interaction prompt and interaction promp style attributes for Model3d
707
+ - Make sure all errors show an error dialog when hydrogen is in dev mode
708
+ - MediaFile component warning on non-Model3D types
709
+ - Remove console logs for caching
710
+ - Lowercased SVG tags in RSC
711
+ - Make the URL search property available via hooks
712
+
713
+ ## 0.5.8 - 2021-11-04
714
+
715
+ ### Fixed
716
+
717
+ - Ensure delayed callback is fired for cache purposes in Workers runtimes.
718
+
719
+ ## 0.5.3 - 2021-11-02
720
+
721
+ ### Changed
722
+
723
+ - No updates. Transitive dependency bump.
724
+
725
+ ## 0.5.2 - 2021-11-02
726
+
727
+ ### Changed
728
+
729
+ - No updates. Transitive dependency bump.
730
+
731
+ ## 0.5.1 - 2021-11-02
732
+
733
+ ### Changed
734
+
735
+ - No updates. Transitive dependency bump.
736
+
737
+ ## 0.5.0 - 2021-11-01
738
+
739
+ ### Fixed
740
+
741
+ - Update the ServerStateProvider context
742
+ - Add tabIndex to ShopPayButton
743
+ - Update LocalizationProvider query, context, and exports
744
+
745
+ ## 0.4.3 - 2021-10-29
746
+
747
+ ### Added
748
+
749
+ - Introduct full-page and sub-request caching API.
750
+
751
+ ## 0.4.2 - 2021-10-29
752
+
753
+ ### Changed
754
+
755
+ - Update Model3D props and add binding to model-viewer events
756
+
757
+ ### Fixed
758
+
759
+ - Add `passthoughProps.disabled` to `AddToCartButton`
760
+ - Do not show undefined currency symbol in production
761
+
762
+ ## 0.4.0 - 2021-10-27
763
+
764
+ ### Added
765
+
766
+ - Add external image support to Image component
767
+
768
+ ### Changed
769
+
770
+ - Make `CartProvider` a client-only concern. [#631](https://github.com/Shopify/hydrogen/pull/631)
771
+ - Use `Accept: application/hydrogen` as a header when making `fetch` calls against a Hydrogen page. Useful for Custom Responses.
772
+
773
+ ### Fixed
774
+
775
+ - Lock model-viewer.js version to 1.8
776
+ - Use the Intl.NumberFormat parts for determining the amount value returned by the useMoney hook
777
+ - Optimize React related dependencies at server start to avoid page reloads
778
+ - Do not throw when `storeDomain` contains protocol.
779
+
780
+ ## 0.3.0 - 2021-10-20
781
+
782
+ ### Added
783
+
784
+ - Export utilities in client bundle
785
+
786
+ ### Fixed
787
+
788
+ - `parseCookies` will split only on first =
789
+ - Make BuyNowButton a client component since it uses useEffect
790
+ - Preserve original aspect ratio for product images
791
+ - Invoke CartProvider callbacks before performing the GraphQL mutations
792
+ - Fix the accessible label in the AddToCartButton component when an item is added to cart
793
+ - Cart fetch to return stringified error
794
+
795
+ ### Removed
796
+
797
+ - Remove sourcemap warnings
798
+
799
+ ## 0.2.1 - 2021-10-12
800
+
801
+ ### Fixed
802
+
803
+ - Starter template GalleryPreview unique key warning
804
+ - Mitigation for upcoming breaking minor Vite update
805
+
806
+ ## 0.2.0 - 2021-10-08
807
+
808
+ ### Added
809
+
810
+ - Added support for images and collections in the ProductProvider component
811
+ - Added more GraphQL fragments for building block components (Metafield, UnitPrice) and updated exports of these fragments
812
+
813
+ ### Breaking Change
814
+
815
+ - `useQuery` now behaves exactly like [react-query's hook of the same name](https://react-query.tanstack.com/reference/useQuery#_top)
816
+
817
+ ### Fixed
818
+
819
+ - Handle products with selling plans
820
+
821
+ ## 0.1.2 - 2021-09-30
822
+
823
+ ### Fixed
824
+
825
+ - SSR issue when running Vite 2.6
826
+ - Occasional `ProductProviderFragment` error when booting Hydrogen dev server [#571](https://github.com/Shopify/hydrogen/issues/571)
827
+
828
+ ## 0.1.1 - 2021-09-24
829
+
830
+ ### Added
831
+
832
+ - New GraphQL fragments for Variants, SellingPlans, and SellingPlanGroups
833
+
834
+ ### Changed
835
+
836
+ - Updated types for the `useProductOptions` hook
837
+
838
+ ### Fixed
839
+
840
+ - `Dynamic require of "stream" is not supported` error in browser logs
841
+
842
+ ## 0.1.0 - 2021-09-23
843
+
844
+ ### Changed
845
+
846
+ - No updates. Transitive dependency bump.
847
+
848
+ ## 1.0.0-alpha.22 - 2021-09-22
849
+
850
+ ### Changed
851
+
852
+ - No updates. Transitive dependency bump.
853
+
854
+ [0.6.0]: https://github.com/Shopify/hydrogen/releases/tag/v0.6.0
855
+ [0.6.1]: https://github.com/Shopify/hydrogen/releases/tag/v0.6.1
856
+ [0.6.2]: https://github.com/Shopify/hydrogen/releases/tag/v0.6.2
857
+ [0.6.3]: https://github.com/Shopify/hydrogen/releases/tag/v0.6.3
858
+ [0.6.4]: https://github.com/Shopify/hydrogen/releases/tag/v0.6.4
859
+ [0.7.0]: https://github.com/Shopify/hydrogen/releases/tag/v0.7.0
860
+ [0.7.1]: https://github.com/Shopify/hydrogen/releases/tag/v0.7.1
861
+ [0.8.0]: https://github.com/Shopify/hydrogen/releases/tag/v0.8.0
862
+ [0.8.1]: https://github.com/Shopify/hydrogen/releases/tag/v0.8.1
863
+ [0.8.2]: https://github.com/Shopify/hydrogen/releases/tag/v0.8.2
864
+ [0.8.3]: https://github.com/Shopify/hydrogen/releases/tag/v0.8.3
865
+ [0.9.0]: https://github.com/Shopify/hydrogen/releases/tag/v0.9.0
866
+ [0.9.1]: https://github.com/Shopify/hydrogen/releases/tag/v0.9.1
867
+ [0.10.0]: https://github.com/Shopify/hydrogen/releases/tag/v0.10.0
868
+ [0.10.1]: https://github.com/Shopify/hydrogen/releases/tag/v0.10.1
869
+ [0.11.0]: https://github.com/Shopify/hydrogen/releases/tag/v0.11.0