@shopify/hydrogen 0.0.0-experimental-20220526194818

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 (692) hide show
  1. package/CHANGELOG.md +1643 -0
  2. package/README.md +29 -0
  3. package/client.d.ts +1 -0
  4. package/client.js +1 -0
  5. package/config.d.ts +1 -0
  6. package/config.js +1 -0
  7. package/dist/esnext/FileSessionStorage.d.ts +1 -0
  8. package/dist/esnext/FileSessionStorage.js +1 -0
  9. package/dist/esnext/client.d.ts +16 -0
  10. package/dist/esnext/client.js +16 -0
  11. package/dist/esnext/components/AddToCartButton/AddToCartButton.client.d.ts +23 -0
  12. package/dist/esnext/components/AddToCartButton/AddToCartButton.client.js +47 -0
  13. package/dist/esnext/components/AddToCartButton/index.d.ts +1 -0
  14. package/dist/esnext/components/AddToCartButton/index.js +1 -0
  15. package/dist/esnext/components/BuyNowButton/BuyNowButton.client.d.ts +18 -0
  16. package/dist/esnext/components/BuyNowButton/BuyNowButton.client.js +26 -0
  17. package/dist/esnext/components/BuyNowButton/index.d.ts +1 -0
  18. package/dist/esnext/components/BuyNowButton/index.js +1 -0
  19. package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.d.ts +11 -0
  20. package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.js +17 -0
  21. package/dist/esnext/components/CartCheckoutButton/index.d.ts +1 -0
  22. package/dist/esnext/components/CartCheckoutButton/index.js +1 -0
  23. package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.d.ts +14 -0
  24. package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.js +29 -0
  25. package/dist/esnext/components/CartEstimatedCost/index.d.ts +1 -0
  26. package/dist/esnext/components/CartEstimatedCost/index.js +1 -0
  27. package/dist/esnext/components/CartLineImage/CartLineImage.client.d.ts +9 -0
  28. package/dist/esnext/components/CartLineImage/CartLineImage.client.js +11 -0
  29. package/dist/esnext/components/CartLineImage/index.d.ts +1 -0
  30. package/dist/esnext/components/CartLineImage/index.js +1 -0
  31. package/dist/esnext/components/CartLinePrice/CartLinePrice.client.d.ts +12 -0
  32. package/dist/esnext/components/CartLinePrice/CartLinePrice.client.js +21 -0
  33. package/dist/esnext/components/CartLinePrice/index.d.ts +1 -0
  34. package/dist/esnext/components/CartLinePrice/index.js +1 -0
  35. package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.d.ts +8 -0
  36. package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.js +12 -0
  37. package/dist/esnext/components/CartLineProductTitle/index.d.ts +1 -0
  38. package/dist/esnext/components/CartLineProductTitle/index.js +1 -0
  39. package/dist/esnext/components/CartLineProvider/CartLineProvider.client.d.ts +11 -0
  40. package/dist/esnext/components/CartLineProvider/CartLineProvider.client.js +8 -0
  41. package/dist/esnext/components/CartLineProvider/context.d.ts +26 -0
  42. package/dist/esnext/components/CartLineProvider/context.js +2 -0
  43. package/dist/esnext/components/CartLineProvider/index.d.ts +2 -0
  44. package/dist/esnext/components/CartLineProvider/index.js +2 -0
  45. package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.d.ts +8 -0
  46. package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.js +12 -0
  47. package/dist/esnext/components/CartLineQuantity/index.d.ts +1 -0
  48. package/dist/esnext/components/CartLineQuantity/index.js +1 -0
  49. package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.d.ts +14 -0
  50. package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.js +24 -0
  51. package/dist/esnext/components/CartLineQuantityAdjustButton/index.d.ts +1 -0
  52. package/dist/esnext/components/CartLineQuantityAdjustButton/index.js +1 -0
  53. package/dist/esnext/components/CartLines/CartLines.d.ts +15 -0
  54. package/dist/esnext/components/CartLines/CartLines.js +17 -0
  55. package/dist/esnext/components/CartLines/index.d.ts +1 -0
  56. package/dist/esnext/components/CartLines/index.js +1 -0
  57. package/dist/esnext/components/CartProvider/CartProvider.client.d.ts +41 -0
  58. package/dist/esnext/components/CartProvider/CartProvider.client.js +523 -0
  59. package/dist/esnext/components/CartProvider/cart-queries.d.ts +10 -0
  60. package/dist/esnext/components/CartProvider/cart-queries.js +191 -0
  61. package/dist/esnext/components/CartProvider/constants.d.ts +2 -0
  62. package/dist/esnext/components/CartProvider/constants.js +2 -0
  63. package/dist/esnext/components/CartProvider/context.d.ts +2 -0
  64. package/dist/esnext/components/CartProvider/context.js +2 -0
  65. package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.d.ts +86 -0
  66. package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.js +1 -0
  67. package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +86 -0
  68. package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.js +1 -0
  69. package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +85 -0
  70. package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.js +1 -0
  71. package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +86 -0
  72. package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.js +1 -0
  73. package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +72 -0
  74. package/dist/esnext/components/CartProvider/graphql/CartFragment.js +1 -0
  75. package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +86 -0
  76. package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.js +1 -0
  77. package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +86 -0
  78. package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.js +1 -0
  79. package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +86 -0
  80. package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.js +1 -0
  81. package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +86 -0
  82. package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.js +1 -0
  83. package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +81 -0
  84. package/dist/esnext/components/CartProvider/graphql/CartQuery.js +1 -0
  85. package/dist/esnext/components/CartProvider/hooks.client.d.ts +15 -0
  86. package/dist/esnext/components/CartProvider/hooks.client.js +62 -0
  87. package/dist/esnext/components/CartProvider/index.d.ts +4 -0
  88. package/dist/esnext/components/CartProvider/index.js +3 -0
  89. package/dist/esnext/components/CartProvider/types.d.ts +102 -0
  90. package/dist/esnext/components/CartProvider/types.js +1 -0
  91. package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.d.ts +9 -0
  92. package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.js +19 -0
  93. package/dist/esnext/components/CartShopPayButton/index.d.ts +1 -0
  94. package/dist/esnext/components/CartShopPayButton/index.js +1 -0
  95. package/dist/esnext/components/DevTools.client.d.ts +1 -0
  96. package/dist/esnext/components/DevTools.client.js +129 -0
  97. package/dist/esnext/components/ExternalVideo/ExternalVideo.d.ts +21 -0
  98. package/dist/esnext/components/ExternalVideo/ExternalVideo.js +14 -0
  99. package/dist/esnext/components/ExternalVideo/index.d.ts +1 -0
  100. package/dist/esnext/components/ExternalVideo/index.js +1 -0
  101. package/dist/esnext/components/Image/Image.d.ts +84 -0
  102. package/dist/esnext/components/Image/Image.js +59 -0
  103. package/dist/esnext/components/Image/index.d.ts +2 -0
  104. package/dist/esnext/components/Image/index.js +1 -0
  105. package/dist/esnext/components/Link/Link.client.d.ts +23 -0
  106. package/dist/esnext/components/Link/Link.client.js +135 -0
  107. package/dist/esnext/components/Link/index.d.ts +1 -0
  108. package/dist/esnext/components/Link/index.js +1 -0
  109. package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.d.ts +6 -0
  110. package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.js +5 -0
  111. package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.d.ts +6 -0
  112. package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.js +2 -0
  113. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.d.ts +33 -0
  114. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +44 -0
  115. package/dist/esnext/components/LocalizationProvider/index.d.ts +2 -0
  116. package/dist/esnext/components/LocalizationProvider/index.js +2 -0
  117. package/dist/esnext/components/MediaFile/MediaFile.d.ts +19 -0
  118. package/dist/esnext/components/MediaFile/MediaFile.js +31 -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 +21 -0
  122. package/dist/esnext/components/Metafield/Metafield.client.js +68 -0
  123. package/dist/esnext/components/Metafield/components/StarRating/StarRating.d.ts +12 -0
  124. package/dist/esnext/components/Metafield/components/StarRating/StarRating.js +48 -0
  125. package/dist/esnext/components/Metafield/components/StarRating/index.d.ts +1 -0
  126. package/dist/esnext/components/Metafield/components/StarRating/index.js +1 -0
  127. package/dist/esnext/components/Metafield/components/index.d.ts +1 -0
  128. package/dist/esnext/components/Metafield/components/index.js +1 -0
  129. package/dist/esnext/components/Metafield/index.d.ts +2 -0
  130. package/dist/esnext/components/Metafield/index.js +1 -0
  131. package/dist/esnext/components/Metafield/types.d.ts +4 -0
  132. package/dist/esnext/components/Metafield/types.js +1 -0
  133. package/dist/esnext/components/ModelViewer/ModelViewer.client.d.ts +128 -0
  134. package/dist/esnext/components/ModelViewer/ModelViewer.client.js +105 -0
  135. package/dist/esnext/components/ModelViewer/index.d.ts +1 -0
  136. package/dist/esnext/components/ModelViewer/index.js +1 -0
  137. package/dist/esnext/components/Money/Money.client.d.ts +25 -0
  138. package/dist/esnext/components/Money/Money.client.js +39 -0
  139. package/dist/esnext/components/Money/index.d.ts +1 -0
  140. package/dist/esnext/components/Money/index.js +1 -0
  141. package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +15 -0
  142. package/dist/esnext/components/ProductPrice/ProductPrice.client.js +56 -0
  143. package/dist/esnext/components/ProductPrice/index.d.ts +1 -0
  144. package/dist/esnext/components/ProductPrice/index.js +1 -0
  145. package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.d.ts +8 -0
  146. package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.js +12 -0
  147. package/dist/esnext/components/ProductProvider/ProductProvider.client.d.ts +24 -0
  148. package/dist/esnext/components/ProductProvider/ProductProvider.client.js +34 -0
  149. package/dist/esnext/components/ProductProvider/context.d.ts +29 -0
  150. package/dist/esnext/components/ProductProvider/context.js +3 -0
  151. package/dist/esnext/components/ProductProvider/index.d.ts +2 -0
  152. package/dist/esnext/components/ProductProvider/index.js +2 -0
  153. package/dist/esnext/components/Seo/CollectionSeo.client.d.ts +3 -0
  154. package/dist/esnext/components/Seo/CollectionSeo.client.js +15 -0
  155. package/dist/esnext/components/Seo/DefaultPageSeo.client.d.ts +3 -0
  156. package/dist/esnext/components/Seo/DefaultPageSeo.client.js +18 -0
  157. package/dist/esnext/components/Seo/DescriptionSeo.client.d.ts +4 -0
  158. package/dist/esnext/components/Seo/DescriptionSeo.client.js +10 -0
  159. package/dist/esnext/components/Seo/HomePageSeo.client.d.ts +2 -0
  160. package/dist/esnext/components/Seo/HomePageSeo.client.js +25 -0
  161. package/dist/esnext/components/Seo/ImageSeo.client.d.ts +3 -0
  162. package/dist/esnext/components/Seo/ImageSeo.client.js +10 -0
  163. package/dist/esnext/components/Seo/NoIndexSeo.client.d.ts +3 -0
  164. package/dist/esnext/components/Seo/NoIndexSeo.client.js +10 -0
  165. package/dist/esnext/components/Seo/PageSeo.client.d.ts +3 -0
  166. package/dist/esnext/components/Seo/PageSeo.client.js +13 -0
  167. package/dist/esnext/components/Seo/ProductSeo.client.d.ts +5 -0
  168. package/dist/esnext/components/Seo/ProductSeo.client.js +63 -0
  169. package/dist/esnext/components/Seo/Seo.client.d.ts +30 -0
  170. package/dist/esnext/components/Seo/Seo.client.js +31 -0
  171. package/dist/esnext/components/Seo/TitleSeo.client.d.ts +3 -0
  172. package/dist/esnext/components/Seo/TitleSeo.client.js +10 -0
  173. package/dist/esnext/components/Seo/TwitterSeo.client.d.ts +2 -0
  174. package/dist/esnext/components/Seo/TwitterSeo.client.js +9 -0
  175. package/dist/esnext/components/Seo/index.d.ts +1 -0
  176. package/dist/esnext/components/Seo/index.js +1 -0
  177. package/dist/esnext/components/Seo/seo-types.d.ts +17 -0
  178. package/dist/esnext/components/Seo/seo-types.js +1 -0
  179. package/dist/esnext/components/ShopPayButton/ShopPayButton.client.d.ts +38 -0
  180. package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +52 -0
  181. package/dist/esnext/components/ShopPayButton/index.d.ts +1 -0
  182. package/dist/esnext/components/ShopPayButton/index.js +1 -0
  183. package/dist/esnext/components/Video/Video.d.ts +14 -0
  184. package/dist/esnext/components/Video/Video.js +24 -0
  185. package/dist/esnext/components/Video/index.d.ts +1 -0
  186. package/dist/esnext/components/Video/index.js +1 -0
  187. package/dist/esnext/components/index.d.ts +28 -0
  188. package/dist/esnext/components/index.js +26 -0
  189. package/dist/esnext/components/types.d.ts +71 -0
  190. package/dist/esnext/components/types.js +10 -0
  191. package/dist/esnext/config.d.ts +3 -0
  192. package/dist/esnext/config.js +1 -0
  193. package/dist/esnext/constants.d.ts +7 -0
  194. package/dist/esnext/constants.js +7 -0
  195. package/dist/esnext/entry-client.d.ts +3 -0
  196. package/dist/esnext/entry-client.js +73 -0
  197. package/dist/esnext/entry-server.d.ts +35 -0
  198. package/dist/esnext/entry-server.js +529 -0
  199. package/dist/esnext/foundation/Analytics/Analytics.client.d.ts +3 -0
  200. package/dist/esnext/foundation/Analytics/Analytics.client.js +28 -0
  201. package/dist/esnext/foundation/Analytics/Analytics.server.d.ts +1 -0
  202. package/dist/esnext/foundation/Analytics/Analytics.server.js +40 -0
  203. package/dist/esnext/foundation/Analytics/ClientAnalytics.d.ts +25 -0
  204. package/dist/esnext/foundation/Analytics/ClientAnalytics.js +97 -0
  205. package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +2 -0
  206. package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.js +33 -0
  207. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.client.d.ts +7 -0
  208. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.client.js +64 -0
  209. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.d.ts +1 -0
  210. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.js +24 -0
  211. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetricsDebug.client.d.ts +1 -0
  212. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetricsDebug.client.js +23 -0
  213. package/dist/esnext/foundation/Analytics/const.d.ts +9 -0
  214. package/dist/esnext/foundation/Analytics/const.js +9 -0
  215. package/dist/esnext/foundation/Analytics/hook.d.ts +1 -0
  216. package/dist/esnext/foundation/Analytics/hook.js +7 -0
  217. package/dist/esnext/foundation/Analytics/index.d.ts +2 -0
  218. package/dist/esnext/foundation/Analytics/index.js +2 -0
  219. package/dist/esnext/foundation/Analytics/types.d.ts +5 -0
  220. package/dist/esnext/foundation/Analytics/types.js +1 -0
  221. package/dist/esnext/foundation/Analytics/utils.d.ts +1 -0
  222. package/dist/esnext/foundation/Analytics/utils.js +8 -0
  223. package/dist/esnext/foundation/AnalyticsErrorBoundary.client.d.ts +4 -0
  224. package/dist/esnext/foundation/AnalyticsErrorBoundary.client.js +8 -0
  225. package/dist/esnext/foundation/Cookie/Cookie.d.ts +48 -0
  226. package/dist/esnext/foundation/Cookie/Cookie.js +67 -0
  227. package/dist/esnext/foundation/CookieSessionStorage/CookieSessionStorage.d.ts +5 -0
  228. package/dist/esnext/foundation/CookieSessionStorage/CookieSessionStorage.js +31 -0
  229. package/dist/esnext/foundation/FileRoutes/FileRoutes.server.d.ts +22 -0
  230. package/dist/esnext/foundation/FileRoutes/FileRoutes.server.js +74 -0
  231. package/dist/esnext/foundation/FileSessionStorage/FileSessionStorage.d.ts +6 -0
  232. package/dist/esnext/foundation/FileSessionStorage/FileSessionStorage.js +149 -0
  233. package/dist/esnext/foundation/Head/Head.client.d.ts +5 -0
  234. package/dist/esnext/foundation/Head/Head.client.js +10 -0
  235. package/dist/esnext/foundation/Head/index.d.ts +1 -0
  236. package/dist/esnext/foundation/Head/index.js +1 -0
  237. package/dist/esnext/foundation/MemorySessionStorage/MemorySessionStorage.d.ts +5 -0
  238. package/dist/esnext/foundation/MemorySessionStorage/MemorySessionStorage.js +53 -0
  239. package/dist/esnext/foundation/Redirect/Redirect.client.d.ts +5 -0
  240. package/dist/esnext/foundation/Redirect/Redirect.client.js +15 -0
  241. package/dist/esnext/foundation/Route/Route.server.d.ts +12 -0
  242. package/dist/esnext/foundation/Route/Route.server.js +28 -0
  243. package/dist/esnext/foundation/Router/BrowserRouter.client.d.ts +13 -0
  244. package/dist/esnext/foundation/Router/BrowserRouter.client.js +130 -0
  245. package/dist/esnext/foundation/Router/Router.server.d.ts +10 -0
  246. package/dist/esnext/foundation/Router/Router.server.js +8 -0
  247. package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +40 -0
  248. package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.js +67 -0
  249. package/dist/esnext/foundation/ServerPropsProvider/index.d.ts +2 -0
  250. package/dist/esnext/foundation/ServerPropsProvider/index.js +1 -0
  251. package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
  252. package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.js +128 -0
  253. package/dist/esnext/foundation/ServerRequestProvider/index.d.ts +1 -0
  254. package/dist/esnext/foundation/ServerRequestProvider/index.js +1 -0
  255. package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.d.ts +30 -0
  256. package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.js +59 -0
  257. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.client.d.ts +7 -0
  258. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.client.js +8 -0
  259. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.d.ts +16 -0
  260. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.js +58 -0
  261. package/dist/esnext/foundation/ShopifyProvider/index.d.ts +1 -0
  262. package/dist/esnext/foundation/ShopifyProvider/index.js +1 -0
  263. package/dist/esnext/foundation/ShopifyProvider/types.d.ts +13 -0
  264. package/dist/esnext/foundation/ShopifyProvider/types.js +1 -0
  265. package/dist/esnext/foundation/constants.d.ts +1 -0
  266. package/dist/esnext/foundation/constants.js +3 -0
  267. package/dist/esnext/foundation/fetchSync/client/fetchSync.d.ts +10 -0
  268. package/dist/esnext/foundation/fetchSync/client/fetchSync.js +28 -0
  269. package/dist/esnext/foundation/fetchSync/server/fetchSync.d.ts +8 -0
  270. package/dist/esnext/foundation/fetchSync/server/fetchSync.js +29 -0
  271. package/dist/esnext/foundation/fetchSync/types.d.ts +5 -0
  272. package/dist/esnext/foundation/fetchSync/types.js +1 -0
  273. package/dist/esnext/foundation/index.d.ts +3 -0
  274. package/dist/esnext/foundation/index.js +3 -0
  275. package/dist/esnext/foundation/session/session.d.ts +27 -0
  276. package/dist/esnext/foundation/session/session.js +37 -0
  277. package/dist/esnext/foundation/ssr-interop.d.ts +29 -0
  278. package/dist/esnext/foundation/ssr-interop.js +35 -0
  279. package/dist/esnext/foundation/useNavigate/useNavigate.d.ts +13 -0
  280. package/dist/esnext/foundation/useNavigate/useNavigate.js +14 -0
  281. package/dist/esnext/foundation/useQuery/hooks.d.ts +36 -0
  282. package/dist/esnext/foundation/useQuery/hooks.js +97 -0
  283. package/dist/esnext/foundation/useQuery/index.d.ts +1 -0
  284. package/dist/esnext/foundation/useQuery/index.js +1 -0
  285. package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.d.ts +9 -0
  286. package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.js +7 -0
  287. package/dist/esnext/foundation/useRouteParams/useRouteParams.d.ts +4 -0
  288. package/dist/esnext/foundation/useRouteParams/useRouteParams.js +9 -0
  289. package/dist/esnext/foundation/useServerProps/index.d.ts +1 -0
  290. package/dist/esnext/foundation/useServerProps/index.js +1 -0
  291. package/dist/esnext/foundation/useServerProps/use-server-props.d.ts +21 -0
  292. package/dist/esnext/foundation/useServerProps/use-server-props.js +35 -0
  293. package/dist/esnext/foundation/useSession/useSession.d.ts +2 -0
  294. package/dist/esnext/foundation/useSession/useSession.js +8 -0
  295. package/dist/esnext/foundation/useShop/index.d.ts +1 -0
  296. package/dist/esnext/foundation/useShop/index.js +1 -0
  297. package/dist/esnext/foundation/useShop/use-shop.d.ts +6 -0
  298. package/dist/esnext/foundation/useShop/use-shop.js +14 -0
  299. package/dist/esnext/foundation/useUrl/index.d.ts +1 -0
  300. package/dist/esnext/foundation/useUrl/index.js +1 -0
  301. package/dist/esnext/foundation/useUrl/useUrl.d.ts +4 -0
  302. package/dist/esnext/foundation/useUrl/useUrl.js +28 -0
  303. package/dist/esnext/framework/CachingStrategy/index.d.ts +10 -0
  304. package/dist/esnext/framework/CachingStrategy/index.js +96 -0
  305. package/dist/esnext/framework/Hydration/Html.d.ts +11 -0
  306. package/dist/esnext/framework/Hydration/Html.js +86 -0
  307. package/dist/esnext/framework/Hydration/ServerComponentRequest.server.d.ts +58 -0
  308. package/dist/esnext/framework/Hydration/ServerComponentRequest.server.js +146 -0
  309. package/dist/esnext/framework/Hydration/ServerComponentResponse.server.d.ts +26 -0
  310. package/dist/esnext/framework/Hydration/ServerComponentResponse.server.js +42 -0
  311. package/dist/esnext/framework/Hydration/rsc.d.ts +8 -0
  312. package/dist/esnext/framework/Hydration/rsc.js +100 -0
  313. package/dist/esnext/framework/cache/in-memory.d.ts +12 -0
  314. package/dist/esnext/framework/cache/in-memory.js +52 -0
  315. package/dist/esnext/framework/cache-sub-request.d.ts +17 -0
  316. package/dist/esnext/framework/cache-sub-request.js +64 -0
  317. package/dist/esnext/framework/cache.d.ts +17 -0
  318. package/dist/esnext/framework/cache.js +127 -0
  319. package/dist/esnext/framework/config.d.ts +6 -0
  320. package/dist/esnext/framework/config.js +6 -0
  321. package/dist/esnext/framework/graphiql.d.ts +1 -0
  322. package/dist/esnext/framework/graphiql.js +38 -0
  323. package/dist/esnext/framework/middleware.d.ts +21 -0
  324. package/dist/esnext/framework/middleware.js +98 -0
  325. package/dist/esnext/framework/plugin.d.ts +4 -0
  326. package/dist/esnext/framework/plugin.js +28 -0
  327. package/dist/esnext/framework/plugins/vite-plugin-client-imports.d.ts +2 -0
  328. package/dist/esnext/framework/plugins/vite-plugin-client-imports.js +25 -0
  329. package/dist/esnext/framework/plugins/vite-plugin-css-modules-rsc.d.ts +2 -0
  330. package/dist/esnext/framework/plugins/vite-plugin-css-modules-rsc.js +98 -0
  331. package/dist/esnext/framework/plugins/vite-plugin-hydration-auto-import.d.ts +3 -0
  332. package/dist/esnext/framework/plugins/vite-plugin-hydration-auto-import.js +35 -0
  333. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-client-middleware.d.ts +9 -0
  334. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-client-middleware.js +37 -0
  335. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
  336. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +96 -0
  337. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
  338. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +110 -0
  339. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-rsc.d.ts +1 -0
  340. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-rsc.js +35 -0
  341. package/dist/esnext/framework/plugins/vite-plugin-platform-entry.d.ts +3 -0
  342. package/dist/esnext/framework/plugins/vite-plugin-platform-entry.js +70 -0
  343. package/dist/esnext/framework/plugins/vite-plugin-purge-query-cache.d.ts +3 -0
  344. package/dist/esnext/framework/plugins/vite-plugin-purge-query-cache.js +11 -0
  345. package/dist/esnext/framework/plugins/vite-plugin-ssr-interop.d.ts +3 -0
  346. package/dist/esnext/framework/plugins/vite-plugin-ssr-interop.js +16 -0
  347. package/dist/esnext/framework/runtime.d.ts +13 -0
  348. package/dist/esnext/framework/runtime.js +27 -0
  349. package/dist/esnext/hooks/index.d.ts +6 -0
  350. package/dist/esnext/hooks/index.js +6 -0
  351. package/dist/esnext/hooks/useCart/index.d.ts +1 -0
  352. package/dist/esnext/hooks/useCart/index.js +1 -0
  353. package/dist/esnext/hooks/useCart/useCart.d.ts +4 -0
  354. package/dist/esnext/hooks/useCart/useCart.js +12 -0
  355. package/dist/esnext/hooks/useCartLine/index.d.ts +1 -0
  356. package/dist/esnext/hooks/useCartLine/index.js +1 -0
  357. package/dist/esnext/hooks/useCartLine/useCartLine.d.ts +29 -0
  358. package/dist/esnext/hooks/useCartLine/useCartLine.js +12 -0
  359. package/dist/esnext/hooks/useCountry/index.d.ts +1 -0
  360. package/dist/esnext/hooks/useCountry/index.js +1 -0
  361. package/dist/esnext/hooks/useCountry/useCountry.d.ts +7 -0
  362. package/dist/esnext/hooks/useCountry/useCountry.js +17 -0
  363. package/dist/esnext/hooks/useLoadScript/index.d.ts +1 -0
  364. package/dist/esnext/hooks/useLoadScript/index.js +1 -0
  365. package/dist/esnext/hooks/useLoadScript/useLoadScript.client.d.ts +8 -0
  366. package/dist/esnext/hooks/useLoadScript/useLoadScript.client.js +23 -0
  367. package/dist/esnext/hooks/useMeasurement/hooks.d.ts +9 -0
  368. package/dist/esnext/hooks/useMeasurement/hooks.js +13 -0
  369. package/dist/esnext/hooks/useMeasurement/index.d.ts +1 -0
  370. package/dist/esnext/hooks/useMeasurement/index.js +1 -0
  371. package/dist/esnext/hooks/useMoney/hooks.d.ts +54 -0
  372. package/dist/esnext/hooks/useMoney/hooks.js +66 -0
  373. package/dist/esnext/hooks/useMoney/index.d.ts +1 -0
  374. package/dist/esnext/hooks/useMoney/index.js +1 -0
  375. package/dist/esnext/hooks/useParsedMetafields/index.d.ts +1 -0
  376. package/dist/esnext/hooks/useParsedMetafields/index.js +1 -0
  377. package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.d.ts +21 -0
  378. package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.js +21 -0
  379. package/dist/esnext/hooks/useProduct/index.d.ts +1 -0
  380. package/dist/esnext/hooks/useProduct/index.js +1 -0
  381. package/dist/esnext/hooks/useProduct/useProduct.d.ts +52 -0
  382. package/dist/esnext/hooks/useProduct/useProduct.js +43 -0
  383. package/dist/esnext/hooks/useProductOptions/helpers.d.ts +6 -0
  384. package/dist/esnext/hooks/useProductOptions/helpers.js +40 -0
  385. package/dist/esnext/hooks/useProductOptions/index.d.ts +2 -0
  386. package/dist/esnext/hooks/useProductOptions/index.js +2 -0
  387. package/dist/esnext/hooks/useProductOptions/types.d.ts +42 -0
  388. package/dist/esnext/hooks/useProductOptions/types.js +1 -0
  389. package/dist/esnext/hooks/useProductOptions/useProductOptions.client.d.ts +15 -0
  390. package/dist/esnext/hooks/useProductOptions/useProductOptions.client.js +108 -0
  391. package/dist/esnext/hooks/useShopQuery/hooks.d.ts +28 -0
  392. package/dist/esnext/hooks/useShopQuery/hooks.js +161 -0
  393. package/dist/esnext/hooks/useShopQuery/index.d.ts +1 -0
  394. package/dist/esnext/hooks/useShopQuery/index.js +1 -0
  395. package/dist/esnext/index.d.ts +27 -0
  396. package/dist/esnext/index.js +31 -0
  397. package/dist/esnext/node.d.ts +1 -0
  398. package/dist/esnext/node.js +1 -0
  399. package/dist/esnext/platforms/node.d.ts +9 -0
  400. package/dist/esnext/platforms/node.js +40 -0
  401. package/dist/esnext/platforms/worker-event.d.ts +1 -0
  402. package/dist/esnext/platforms/worker-event.js +3 -0
  403. package/dist/esnext/platforms/worker.d.ts +14 -0
  404. package/dist/esnext/platforms/worker.js +25 -0
  405. package/dist/esnext/storefront-api-types.d.ts +6405 -0
  406. package/dist/esnext/storefront-api-types.js +1763 -0
  407. package/dist/esnext/streaming.server.d.ts +24 -0
  408. package/dist/esnext/streaming.server.js +33 -0
  409. package/dist/esnext/types.d.ts +98 -0
  410. package/dist/esnext/types.js +1 -0
  411. package/dist/esnext/utilities/apiRoutes.d.ts +37 -0
  412. package/dist/esnext/utilities/apiRoutes.js +156 -0
  413. package/dist/esnext/utilities/bot-ua.d.ts +4 -0
  414. package/dist/esnext/utilities/bot-ua.js +61 -0
  415. package/dist/esnext/utilities/defer.d.ts +6 -0
  416. package/dist/esnext/utilities/defer.js +14 -0
  417. package/dist/esnext/utilities/devtools.d.ts +11 -0
  418. package/dist/esnext/utilities/devtools.js +11 -0
  419. package/dist/esnext/utilities/empty-hydrogen-config.d.ts +2 -0
  420. package/dist/esnext/utilities/empty-hydrogen-config.js +2 -0
  421. package/dist/esnext/utilities/error.d.ts +1 -0
  422. package/dist/esnext/utilities/error.js +6 -0
  423. package/dist/esnext/utilities/fetch.d.ts +9 -0
  424. package/dist/esnext/utilities/fetch.js +31 -0
  425. package/dist/esnext/utilities/findRoutePrefix.d.ts +1 -0
  426. package/dist/esnext/utilities/findRoutePrefix.js +17 -0
  427. package/dist/esnext/utilities/flattenConnection/flattenConnection.d.ts +6 -0
  428. package/dist/esnext/utilities/flattenConnection/flattenConnection.js +11 -0
  429. package/dist/esnext/utilities/flattenConnection/index.d.ts +1 -0
  430. package/dist/esnext/utilities/flattenConnection/index.js +1 -0
  431. package/dist/esnext/utilities/graphql-tag.d.ts +1 -0
  432. package/dist/esnext/utilities/graphql-tag.js +6 -0
  433. package/dist/esnext/utilities/graphql-tracker.d.ts +17 -0
  434. package/dist/esnext/utilities/graphql-tracker.js +123 -0
  435. package/dist/esnext/utilities/hash.d.ts +2 -0
  436. package/dist/esnext/utilities/hash.js +7 -0
  437. package/dist/esnext/utilities/html-encoding.d.ts +2 -0
  438. package/dist/esnext/utilities/html-encoding.js +16 -0
  439. package/dist/esnext/utilities/image_size.d.ts +12 -0
  440. package/dist/esnext/utilities/image_size.js +62 -0
  441. package/dist/esnext/utilities/index.d.ts +12 -0
  442. package/dist/esnext/utilities/index.js +12 -0
  443. package/dist/esnext/utilities/isClient/index.d.ts +1 -0
  444. package/dist/esnext/utilities/isClient/index.js +1 -0
  445. package/dist/esnext/utilities/isClient/isClient.d.ts +4 -0
  446. package/dist/esnext/utilities/isClient/isClient.js +6 -0
  447. package/dist/esnext/utilities/isServer/index.d.ts +1 -0
  448. package/dist/esnext/utilities/isServer/index.js +1 -0
  449. package/dist/esnext/utilities/isServer/isServer.d.ts +4 -0
  450. package/dist/esnext/utilities/isServer/isServer.js +7 -0
  451. package/dist/esnext/utilities/load_script.d.ts +3 -0
  452. package/dist/esnext/utilities/load_script.js +23 -0
  453. package/dist/esnext/utilities/log/index.d.ts +4 -0
  454. package/dist/esnext/utilities/log/index.js +4 -0
  455. package/dist/esnext/utilities/log/log-cache-api-status.d.ts +1 -0
  456. package/dist/esnext/utilities/log/log-cache-api-status.js +13 -0
  457. package/dist/esnext/utilities/log/log-cache-header.d.ts +10 -0
  458. package/dist/esnext/utilities/log/log-cache-header.js +30 -0
  459. package/dist/esnext/utilities/log/log-query-timeline.d.ts +12 -0
  460. package/dist/esnext/utilities/log/log-query-timeline.js +83 -0
  461. package/dist/esnext/utilities/log/log.d.ts +22 -0
  462. package/dist/esnext/utilities/log/log.js +66 -0
  463. package/dist/esnext/utilities/log/utils.d.ts +3 -0
  464. package/dist/esnext/utilities/log/utils.js +16 -0
  465. package/dist/esnext/utilities/matchPath.d.ts +10 -0
  466. package/dist/esnext/utilities/matchPath.js +54 -0
  467. package/dist/esnext/utilities/measurement.d.ts +3 -0
  468. package/dist/esnext/utilities/measurement.js +98 -0
  469. package/dist/esnext/utilities/object.d.ts +5 -0
  470. package/dist/esnext/utilities/object.js +7 -0
  471. package/dist/esnext/utilities/parse.d.ts +1 -0
  472. package/dist/esnext/utilities/parse.js +9 -0
  473. package/dist/esnext/utilities/parseMetafieldValue/index.d.ts +1 -0
  474. package/dist/esnext/utilities/parseMetafieldValue/index.js +1 -0
  475. package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +6 -0
  476. package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.js +36 -0
  477. package/dist/esnext/utilities/storefrontApi.d.ts +4 -0
  478. package/dist/esnext/utilities/storefrontApi.js +22 -0
  479. package/dist/esnext/utilities/suspense.d.ts +12 -0
  480. package/dist/esnext/utilities/suspense.js +58 -0
  481. package/dist/esnext/utilities/template.d.ts +9 -0
  482. package/dist/esnext/utilities/template.js +23 -0
  483. package/dist/esnext/utilities/timing.d.ts +7 -0
  484. package/dist/esnext/utilities/timing.js +14 -0
  485. package/dist/esnext/utilities/video_parameters.d.ts +47 -0
  486. package/dist/esnext/utilities/video_parameters.js +22 -0
  487. package/dist/esnext/utilities/web-api-polyfill.d.ts +1 -0
  488. package/dist/esnext/utilities/web-api-polyfill.js +19 -0
  489. package/dist/esnext/version.d.ts +1 -0
  490. package/dist/esnext/version.js +1 -0
  491. package/dist/node/components/Image/Image.d.ts +84 -0
  492. package/dist/node/components/Image/Image.js +86 -0
  493. package/dist/node/components/Image/index.d.ts +2 -0
  494. package/dist/node/components/Image/index.js +5 -0
  495. package/dist/node/constants.d.ts +7 -0
  496. package/dist/node/constants.js +10 -0
  497. package/dist/node/entry-server.d.ts +35 -0
  498. package/dist/node/entry-server.js +556 -0
  499. package/dist/node/foundation/Analytics/Analytics.client.d.ts +3 -0
  500. package/dist/node/foundation/Analytics/Analytics.client.js +32 -0
  501. package/dist/node/foundation/Analytics/Analytics.server.d.ts +1 -0
  502. package/dist/node/foundation/Analytics/Analytics.server.js +70 -0
  503. package/dist/node/foundation/Analytics/ClientAnalytics.d.ts +25 -0
  504. package/dist/node/foundation/Analytics/ClientAnalytics.js +100 -0
  505. package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +2 -0
  506. package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.js +37 -0
  507. package/dist/node/foundation/Analytics/const.d.ts +9 -0
  508. package/dist/node/foundation/Analytics/const.js +12 -0
  509. package/dist/node/foundation/Analytics/hook.d.ts +1 -0
  510. package/dist/node/foundation/Analytics/hook.js +11 -0
  511. package/dist/node/foundation/Analytics/index.d.ts +2 -0
  512. package/dist/node/foundation/Analytics/index.js +7 -0
  513. package/dist/node/foundation/Analytics/types.d.ts +5 -0
  514. package/dist/node/foundation/Analytics/types.js +2 -0
  515. package/dist/node/foundation/Analytics/utils.d.ts +1 -0
  516. package/dist/node/foundation/Analytics/utils.js +12 -0
  517. package/dist/node/foundation/AnalyticsErrorBoundary.client.d.ts +4 -0
  518. package/dist/node/foundation/AnalyticsErrorBoundary.client.js +14 -0
  519. package/dist/node/foundation/Redirect/Redirect.client.d.ts +5 -0
  520. package/dist/node/foundation/Redirect/Redirect.client.js +18 -0
  521. package/dist/node/foundation/Router/BrowserRouter.client.d.ts +13 -0
  522. package/dist/node/foundation/Router/BrowserRouter.client.js +159 -0
  523. package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +40 -0
  524. package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.js +92 -0
  525. package/dist/node/foundation/ServerPropsProvider/index.d.ts +2 -0
  526. package/dist/node/foundation/ServerPropsProvider/index.js +6 -0
  527. package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
  528. package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.js +158 -0
  529. package/dist/node/foundation/ServerRequestProvider/index.d.ts +1 -0
  530. package/dist/node/foundation/ServerRequestProvider/index.js +17 -0
  531. package/dist/node/foundation/ShopifyProvider/types.d.ts +13 -0
  532. package/dist/node/foundation/ShopifyProvider/types.js +2 -0
  533. package/dist/node/foundation/session/session.d.ts +27 -0
  534. package/dist/node/foundation/session/session.js +43 -0
  535. package/dist/node/foundation/ssr-interop.d.ts +29 -0
  536. package/dist/node/foundation/ssr-interop.js +39 -0
  537. package/dist/node/foundation/useNavigate/useNavigate.d.ts +13 -0
  538. package/dist/node/foundation/useNavigate/useNavigate.js +18 -0
  539. package/dist/node/foundation/useServerProps/use-server-props.d.ts +21 -0
  540. package/dist/node/foundation/useServerProps/use-server-props.js +40 -0
  541. package/dist/node/framework/CachingStrategy/index.d.ts +10 -0
  542. package/dist/node/framework/CachingStrategy/index.js +108 -0
  543. package/dist/node/framework/Hydration/Html.d.ts +11 -0
  544. package/dist/node/framework/Hydration/Html.js +94 -0
  545. package/dist/node/framework/Hydration/ServerComponentRequest.server.d.ts +58 -0
  546. package/dist/node/framework/Hydration/ServerComponentRequest.server.js +150 -0
  547. package/dist/node/framework/Hydration/ServerComponentResponse.server.d.ts +26 -0
  548. package/dist/node/framework/Hydration/ServerComponentResponse.server.js +49 -0
  549. package/dist/node/framework/Hydration/rsc.d.ts +8 -0
  550. package/dist/node/framework/Hydration/rsc.js +103 -0
  551. package/dist/node/framework/cache/in-memory.d.ts +12 -0
  552. package/dist/node/framework/cache/in-memory.js +56 -0
  553. package/dist/node/framework/cache-sub-request.d.ts +17 -0
  554. package/dist/node/framework/cache-sub-request.js +95 -0
  555. package/dist/node/framework/cache.d.ts +17 -0
  556. package/dist/node/framework/cache.js +135 -0
  557. package/dist/node/framework/config.d.ts +6 -0
  558. package/dist/node/framework/config.js +11 -0
  559. package/dist/node/framework/graphiql.d.ts +1 -0
  560. package/dist/node/framework/graphiql.js +42 -0
  561. package/dist/node/framework/middleware.d.ts +21 -0
  562. package/dist/node/framework/middleware.js +125 -0
  563. package/dist/node/framework/plugin.d.ts +4 -0
  564. package/dist/node/framework/plugin.js +33 -0
  565. package/dist/node/framework/plugins/vite-plugin-client-imports.d.ts +2 -0
  566. package/dist/node/framework/plugins/vite-plugin-client-imports.js +28 -0
  567. package/dist/node/framework/plugins/vite-plugin-css-modules-rsc.d.ts +2 -0
  568. package/dist/node/framework/plugins/vite-plugin-css-modules-rsc.js +104 -0
  569. package/dist/node/framework/plugins/vite-plugin-hydration-auto-import.d.ts +3 -0
  570. package/dist/node/framework/plugins/vite-plugin-hydration-auto-import.js +40 -0
  571. package/dist/node/framework/plugins/vite-plugin-hydrogen-client-middleware.d.ts +9 -0
  572. package/dist/node/framework/plugins/vite-plugin-hydrogen-client-middleware.js +39 -0
  573. package/dist/node/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
  574. package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +98 -0
  575. package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
  576. package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +116 -0
  577. package/dist/node/framework/plugins/vite-plugin-hydrogen-rsc.d.ts +1 -0
  578. package/dist/node/framework/plugins/vite-plugin-hydrogen-rsc.js +41 -0
  579. package/dist/node/framework/plugins/vite-plugin-platform-entry.d.ts +3 -0
  580. package/dist/node/framework/plugins/vite-plugin-platform-entry.js +75 -0
  581. package/dist/node/framework/plugins/vite-plugin-purge-query-cache.d.ts +3 -0
  582. package/dist/node/framework/plugins/vite-plugin-purge-query-cache.js +16 -0
  583. package/dist/node/framework/plugins/vite-plugin-ssr-interop.d.ts +3 -0
  584. package/dist/node/framework/plugins/vite-plugin-ssr-interop.js +18 -0
  585. package/dist/node/framework/runtime.d.ts +13 -0
  586. package/dist/node/framework/runtime.js +35 -0
  587. package/dist/node/storefront-api-types.d.ts +6405 -0
  588. package/dist/node/storefront-api-types.js +1766 -0
  589. package/dist/node/streaming.server.d.ts +24 -0
  590. package/dist/node/streaming.server.js +33 -0
  591. package/dist/node/types.d.ts +98 -0
  592. package/dist/node/types.js +2 -0
  593. package/dist/node/utilities/apiRoutes.d.ts +37 -0
  594. package/dist/node/utilities/apiRoutes.js +163 -0
  595. package/dist/node/utilities/bot-ua.d.ts +4 -0
  596. package/dist/node/utilities/bot-ua.js +65 -0
  597. package/dist/node/utilities/defer.d.ts +6 -0
  598. package/dist/node/utilities/defer.js +18 -0
  599. package/dist/node/utilities/error.d.ts +1 -0
  600. package/dist/node/utilities/error.js +10 -0
  601. package/dist/node/utilities/fetch.d.ts +9 -0
  602. package/dist/node/utilities/fetch.js +37 -0
  603. package/dist/node/utilities/findRoutePrefix.d.ts +1 -0
  604. package/dist/node/utilities/findRoutePrefix.js +21 -0
  605. package/dist/node/utilities/flattenConnection/flattenConnection.d.ts +6 -0
  606. package/dist/node/utilities/flattenConnection/flattenConnection.js +15 -0
  607. package/dist/node/utilities/flattenConnection/index.d.ts +1 -0
  608. package/dist/node/utilities/flattenConnection/index.js +5 -0
  609. package/dist/node/utilities/hash.d.ts +2 -0
  610. package/dist/node/utilities/hash.js +11 -0
  611. package/dist/node/utilities/html-encoding.d.ts +2 -0
  612. package/dist/node/utilities/html-encoding.js +21 -0
  613. package/dist/node/utilities/image_size.d.ts +12 -0
  614. package/dist/node/utilities/image_size.js +68 -0
  615. package/dist/node/utilities/index.d.ts +12 -0
  616. package/dist/node/utilities/index.js +34 -0
  617. package/dist/node/utilities/isClient/index.d.ts +1 -0
  618. package/dist/node/utilities/isClient/index.js +5 -0
  619. package/dist/node/utilities/isClient/isClient.d.ts +4 -0
  620. package/dist/node/utilities/isClient/isClient.js +10 -0
  621. package/dist/node/utilities/isServer/index.d.ts +1 -0
  622. package/dist/node/utilities/isServer/index.js +5 -0
  623. package/dist/node/utilities/isServer/isServer.d.ts +4 -0
  624. package/dist/node/utilities/isServer/isServer.js +11 -0
  625. package/dist/node/utilities/load_script.d.ts +3 -0
  626. package/dist/node/utilities/load_script.js +27 -0
  627. package/dist/node/utilities/log/index.d.ts +4 -0
  628. package/dist/node/utilities/log/index.js +18 -0
  629. package/dist/node/utilities/log/log-cache-api-status.d.ts +1 -0
  630. package/dist/node/utilities/log/log-cache-api-status.js +17 -0
  631. package/dist/node/utilities/log/log-cache-header.d.ts +10 -0
  632. package/dist/node/utilities/log/log-cache-header.js +35 -0
  633. package/dist/node/utilities/log/log-query-timeline.d.ts +12 -0
  634. package/dist/node/utilities/log/log-query-timeline.js +88 -0
  635. package/dist/node/utilities/log/log.d.ts +22 -0
  636. package/dist/node/utilities/log/log.js +74 -0
  637. package/dist/node/utilities/log/utils.d.ts +3 -0
  638. package/dist/node/utilities/log/utils.js +21 -0
  639. package/dist/node/utilities/matchPath.d.ts +10 -0
  640. package/dist/node/utilities/matchPath.js +58 -0
  641. package/dist/node/utilities/measurement.d.ts +3 -0
  642. package/dist/node/utilities/measurement.js +103 -0
  643. package/dist/node/utilities/parse.d.ts +1 -0
  644. package/dist/node/utilities/parse.js +13 -0
  645. package/dist/node/utilities/parseMetafieldValue/index.d.ts +1 -0
  646. package/dist/node/utilities/parseMetafieldValue/index.js +5 -0
  647. package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +6 -0
  648. package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.js +40 -0
  649. package/dist/node/utilities/storefrontApi.d.ts +4 -0
  650. package/dist/node/utilities/storefrontApi.js +26 -0
  651. package/dist/node/utilities/suspense.d.ts +12 -0
  652. package/dist/node/utilities/suspense.js +64 -0
  653. package/dist/node/utilities/template.d.ts +9 -0
  654. package/dist/node/utilities/template.js +27 -0
  655. package/dist/node/utilities/timing.d.ts +7 -0
  656. package/dist/node/utilities/timing.js +18 -0
  657. package/dist/node/utilities/video_parameters.d.ts +47 -0
  658. package/dist/node/utilities/video_parameters.js +27 -0
  659. package/dist/node/utilities/web-api-polyfill.d.ts +1 -0
  660. package/dist/node/utilities/web-api-polyfill.js +47 -0
  661. package/dist/node/version.d.ts +1 -0
  662. package/dist/node/version.js +4 -0
  663. package/entry-client.d.ts +1 -0
  664. package/entry-client.js +1 -0
  665. package/entry-server.d.ts +1 -0
  666. package/entry-server.js +1 -0
  667. package/middleware.d.ts +1 -0
  668. package/middleware.js +1 -0
  669. package/package.json +125 -0
  670. package/plugin.d.ts +1 -0
  671. package/plugin.js +1 -0
  672. package/vendor/react-server-dom-vite/LICENSE +21 -0
  673. package/vendor/react-server-dom-vite/README.md +5 -0
  674. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-plugin.js +356 -0
  675. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.development.server.js +1753 -0
  676. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.production.min.server.js +46 -0
  677. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.development.server.js +1716 -0
  678. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.production.min.server.js +44 -0
  679. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.development.js +613 -0
  680. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.production.min.js +19 -0
  681. package/vendor/react-server-dom-vite/esm/package.json +3 -0
  682. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js +88 -0
  683. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-plugin.js +352 -0
  684. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.browser.server.js +1745 -0
  685. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.node.server.js +1708 -0
  686. package/vendor/react-server-dom-vite/esm/react-server-dom-vite.js +603 -0
  687. package/vendor/react-server-dom-vite/index.js +7 -0
  688. package/vendor/react-server-dom-vite/package.json +67 -0
  689. package/vendor/react-server-dom-vite/plugin.js +3 -0
  690. package/vendor/react-server-dom-vite/writer.browser.server.js +7 -0
  691. package/vendor/react-server-dom-vite/writer.node.server.js +7 -0
  692. package/web-polyfills.js +1 -0
@@ -0,0 +1,21 @@
1
+ import type { IncomingMessage, NextFunction } from 'connect';
2
+ import type { ServerResponse } from 'http';
3
+ import type { ViteDevServer } from 'vite';
4
+ import type { ShopifyConfig } from '../types';
5
+ declare type HydrogenMiddlewareArgs = {
6
+ dev?: boolean;
7
+ indexTemplate: string | ((url: string) => Promise<string>);
8
+ getServerEntrypoint: () => any;
9
+ devServer?: ViteDevServer;
10
+ cache?: Cache;
11
+ };
12
+ export declare function graphiqlMiddleware({ getShopifyConfig, dev, }: {
13
+ getShopifyConfig: (request: IncomingMessage) => ShopifyConfig | Promise<ShopifyConfig>;
14
+ dev?: boolean;
15
+ }): (request: IncomingMessage, response: ServerResponse, next: NextFunction) => Promise<void>;
16
+ /**
17
+ * Provides middleware to Node.js Express-like servers. Used by the Hydrogen
18
+ * Vite dev server plugin as well as production Node.js implementation.
19
+ */
20
+ export declare function hydrogenMiddleware({ dev, cache, indexTemplate, getServerEntrypoint, devServer, }: HydrogenMiddlewareArgs): (request: IncomingMessage, response: ServerResponse, next: NextFunction) => Promise<void>;
21
+ export {};
@@ -0,0 +1,98 @@
1
+ import { graphiqlHtml } from './graphiql';
2
+ export function graphiqlMiddleware({ getShopifyConfig, dev, }) {
3
+ return async function (request, response, next) {
4
+ if (dev && isGraphiqlRequest(request)) {
5
+ const shopifyConfig = await getShopifyConfig(request);
6
+ return respondWithGraphiql(response, shopifyConfig);
7
+ }
8
+ next();
9
+ };
10
+ }
11
+ let entrypointError = null;
12
+ /**
13
+ * Provides middleware to Node.js Express-like servers. Used by the Hydrogen
14
+ * Vite dev server plugin as well as production Node.js implementation.
15
+ */
16
+ export function hydrogenMiddleware({ dev, cache, indexTemplate, getServerEntrypoint, devServer, }) {
17
+ if (dev && devServer) {
18
+ // Store this globally for devtools
19
+ // @ts-ignore
20
+ globalThis.__viteDevServer = devServer;
21
+ }
22
+ /**
23
+ * We're running in the Node.js runtime without access to `fetch`,
24
+ * which is needed for proxy requests and server-side API requests.
25
+ */
26
+ const webPolyfills = !globalThis.fetch || !globalThis.ReadableStream
27
+ ? import('../utilities/web-api-polyfill')
28
+ : undefined;
29
+ return async function (request, response, next) {
30
+ var _a, _b, _c;
31
+ try {
32
+ await webPolyfills;
33
+ const entrypoint = await Promise.resolve(getServerEntrypoint()).catch((error) => {
34
+ // Errors are only thrown the first time we try to load the entry point.
35
+ // After refreshing the browser, this just loads an empty module
36
+ // and doesn't throw anymore. Store this error in the outer scope
37
+ // to keep throwing it on refresh until things are fixed.
38
+ entrypointError = error;
39
+ });
40
+ const handleRequest = (_a = entrypoint === null || entrypoint === void 0 ? void 0 : entrypoint.default) !== null && _a !== void 0 ? _a : entrypoint;
41
+ if (typeof handleRequest !== 'function') {
42
+ if (entrypointError) {
43
+ throw entrypointError;
44
+ }
45
+ else {
46
+ // This means there is no error when loading the entry point but
47
+ // we are still not getting a function as the default export.
48
+ throw new Error('Something is wrong in your project. Make sure to add "export default renderHydrogen(...)" in your server entry file.');
49
+ }
50
+ }
51
+ entrypointError = null;
52
+ await handleRequest(request, {
53
+ dev,
54
+ cache,
55
+ indexTemplate,
56
+ streamableResponse: response,
57
+ });
58
+ }
59
+ catch (e) {
60
+ if (dev && devServer)
61
+ devServer.ssrFixStacktrace(e);
62
+ response.statusCode = 500;
63
+ /**
64
+ * Attempt to print the error stack within the template.
65
+ * This allows the react-refresh plugin and other Vite runtime helpers
66
+ * to display the error and auto-refresh when the error is fixed, instead
67
+ * of a white screen that needs a manual refresh.
68
+ */
69
+ try {
70
+ const template = typeof indexTemplate === 'function'
71
+ ? await indexTemplate((_c = (_b = request.originalUrl) !== null && _b !== void 0 ? _b : request.url) !== null && _c !== void 0 ? _c : '')
72
+ : indexTemplate;
73
+ const html = template.replace(`<div id="root"></div>`, `<div id="root"><pre><code>${e.stack}</code></pre></div>`);
74
+ response.write(html);
75
+ next(e);
76
+ }
77
+ catch (_e) {
78
+ // If template loading is the culprit, give up and just return the error stack.
79
+ response.write(e.stack);
80
+ next(e);
81
+ }
82
+ }
83
+ };
84
+ }
85
+ /**
86
+ * /graphiql and /___graphql are supported
87
+ */
88
+ function isGraphiqlRequest(request) {
89
+ return /^\/(?:_{3})?graphi?ql/.test(request.url || '');
90
+ }
91
+ async function respondWithGraphiql(response, shopifyConfig) {
92
+ if (!shopifyConfig) {
93
+ throw new Error("You must provide a 'shopify' property in your Hydrogen config file");
94
+ }
95
+ const { storeDomain, storefrontToken, storefrontApiVersion } = shopifyConfig;
96
+ response.setHeader('Content-Type', 'text/html');
97
+ response.end(graphiqlHtml(storeDomain === null || storeDomain === void 0 ? void 0 : storeDomain.replace(/^https?:\/\//, ''), storefrontToken, storefrontApiVersion));
98
+ }
@@ -0,0 +1,4 @@
1
+ import type { HydrogenVitePluginOptions } from '../types';
2
+ import type { Plugin } from 'vite';
3
+ declare const _default: (pluginOptions?: HydrogenVitePluginOptions) => Plugin[];
4
+ export default _default;
@@ -0,0 +1,28 @@
1
+ import hydrogenConfig from './plugins/vite-plugin-hydrogen-config';
2
+ import hydrogenMiddleware from './plugins/vite-plugin-hydrogen-middleware';
3
+ import hydrogenClientMiddleware from './plugins/vite-plugin-hydrogen-client-middleware';
4
+ import platformEntry from './plugins/vite-plugin-platform-entry';
5
+ import rsc from './plugins/vite-plugin-hydrogen-rsc';
6
+ import ssrInterop from './plugins/vite-plugin-ssr-interop';
7
+ import purgeQueryCache from './plugins/vite-plugin-purge-query-cache';
8
+ import hydrationAutoImport from './plugins/vite-plugin-hydration-auto-import';
9
+ import inspect from 'vite-plugin-inspect';
10
+ import react from '@vitejs/plugin-react';
11
+ import cssModulesRsc from './plugins/vite-plugin-css-modules-rsc';
12
+ import clientImports from './plugins/vite-plugin-client-imports';
13
+ export default (pluginOptions = {}) => {
14
+ return [
15
+ process.env.VITE_INSPECT && inspect(),
16
+ hydrogenConfig(),
17
+ hydrogenClientMiddleware(),
18
+ clientImports(),
19
+ hydrogenMiddleware(pluginOptions),
20
+ react(),
21
+ hydrationAutoImport(),
22
+ ssrInterop(),
23
+ cssModulesRsc(),
24
+ rsc(),
25
+ platformEntry(),
26
+ pluginOptions.purgeQueryCacheOnBuild && purgeQueryCache(),
27
+ ];
28
+ };
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export default function clientImports(): Plugin;
@@ -0,0 +1,25 @@
1
+ export default function clientImports() {
2
+ return {
3
+ name: 'hydrogen:client-imports',
4
+ enforce: 'pre',
5
+ /**
6
+ * When importer does not end in `server.jsx`, and source is `@shopify/hydrogen`,
7
+ * replace with `@shopify/hydrogen/client`. This prevents other server-only imports
8
+ * from "leaking" into the client bundle.
9
+ */
10
+ async resolveId(source, importer, { ssr }) {
11
+ if (ssr)
12
+ return;
13
+ if (/\.server\.(j|t)sx?/.test(importer !== null && importer !== void 0 ? importer : ''))
14
+ return;
15
+ if ('@shopify/hydrogen' !== source)
16
+ return;
17
+ const resolution = await this.resolve('@shopify/hydrogen/client', importer, {
18
+ skipSelf: true,
19
+ });
20
+ if (resolution) {
21
+ return resolution.id;
22
+ }
23
+ },
24
+ };
25
+ }
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export default function cssModulesRsc(): Plugin[];
@@ -0,0 +1,98 @@
1
+ import { HYDROGEN_DEFAULT_SERVER_ENTRY } from './vite-plugin-hydrogen-middleware';
2
+ import MagicString from 'magic-string';
3
+ import path from 'path';
4
+ const cssModuleRE = /\.module\.(s?css|sass|less|stylus)/;
5
+ export default function cssModulesRsc() {
6
+ // 1. Original CSS module: `.myStyle { color: red; }`
7
+ // 2. CSS module after 'pre' Vite transforms: `.myStyle_hashedXYZ { color: red; }`
8
+ // 3. CSS module after 'post' Vite transforms: `export const myStyle = 'myStyle_hashedXYZ';`
9
+ let cssMap = new Map();
10
+ let config;
11
+ return [
12
+ {
13
+ name: 'css-modules-rsc',
14
+ configResolved(_config) {
15
+ config = _config;
16
+ cssMap = new Map();
17
+ // Place this plugin before react-refresh to
18
+ // modify files before JSX is compiled.
19
+ // @ts-ignore
20
+ config.plugins.unshift(autoStyleTagPlugin());
21
+ },
22
+ transform(code, id) {
23
+ if (cssModuleRE.test(id)) {
24
+ cssMap.set(id, code);
25
+ }
26
+ },
27
+ },
28
+ {
29
+ name: 'css-modules-rsc-post',
30
+ enforce: 'post',
31
+ transform(code, id) {
32
+ if (id.includes('.module.') && cssMap.has(id)) {
33
+ const isDev = config.command === 'serve';
34
+ const key = path.relative(config.root, id.split('?')[0]);
35
+ const s = new MagicString(code);
36
+ s.prepend((isDev
37
+ ? `import {jsxDEV as _jsx} from 'react/jsx-dev-runtime';`
38
+ : `import {jsx as _jsx} from 'react/jsx-runtime';`) +
39
+ `export const StyleTag = () => _jsx('style', {dangerouslySetInnerHTML: {__html: ${JSON.stringify(cssMap.get(id))}}});` +
40
+ `\nStyleTag.key = '${key}';\n`);
41
+ s.replace(/export default \{/gs, `export default {\n StyleTag,`);
42
+ return {
43
+ code: s.toString(),
44
+ map: s.generateMap({ file: id, source: id }),
45
+ };
46
+ }
47
+ },
48
+ },
49
+ ];
50
+ }
51
+ function autoStyleTagPlugin() {
52
+ return {
53
+ name: 'css-modules-auto-style-tag',
54
+ transform(code, id) {
55
+ id = id.split('?')[0];
56
+ if (/\.[jt]sx$/.test(id) &&
57
+ !id.endsWith(HYDROGEN_DEFAULT_SERVER_ENTRY) &&
58
+ !id.endsWith(path.format({
59
+ name: HYDROGEN_DEFAULT_SERVER_ENTRY,
60
+ ext: path.extname(id),
61
+ })) &&
62
+ cssModuleRE.test(code) &&
63
+ code.includes('export default')) {
64
+ const s = new MagicString(code);
65
+ // 1. Gather style tags in an array
66
+ let styleCount = 0;
67
+ s.prepend(`const __styleTags = [];\n`);
68
+ s.replace(/^import\s+(.+?)\s+from\s+['"]([^'"]+?\.module\.[^'"]+?)['"]/gm, (all, statements, from) => {
69
+ if (!cssModuleRE.test(from)) {
70
+ return all;
71
+ }
72
+ if (statements.startsWith('{')) {
73
+ // Add default import
74
+ const replacement = `__style${styleCount++}, {`;
75
+ statements = statements.replace('{', replacement);
76
+ all = all.replace('{', replacement);
77
+ }
78
+ const defaultImport = statements
79
+ .split(',')[0]
80
+ .replace(/\*\s+as\s+/, '')
81
+ .trim();
82
+ return all + `; __styleTags.push(${defaultImport}.StyleTag)`;
83
+ });
84
+ // 2. Wrap default export in a new component that includes the style tags
85
+ s.replace(/export default/gm, 'const __defaultExport = ');
86
+ s.append(`\nconst __ApplyStyleTags = function (props) {\n` +
87
+ ` return <>{__styleTags.map(ST => <ST key={ST.key} />)}<__defaultExport {...props} /></>;` +
88
+ `\n}\n\n` +
89
+ `Object.defineProperty(__ApplyStyleTags, 'name', {value: 'ApplyStyleTags_' + (__defaultExport.name || '')});\n` +
90
+ `export default __ApplyStyleTags;`);
91
+ return {
92
+ code: s.toString(),
93
+ map: s.generateMap({ file: id, source: id }),
94
+ };
95
+ }
96
+ },
97
+ };
98
+ }
@@ -0,0 +1,3 @@
1
+ import { Plugin } from 'vite';
2
+ declare const _default: () => Plugin;
3
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import { normalizePath } from 'vite';
2
+ import path from 'path';
3
+ import MagicString from 'magic-string';
4
+ const HYDROGEN_ENTRY_FILE = 'hydrogen-entry-client.jsx';
5
+ export default () => {
6
+ let config;
7
+ return {
8
+ name: 'vite-plugin-hydration-auto-import',
9
+ enforce: 'pre',
10
+ configResolved(_config) {
11
+ config = _config;
12
+ },
13
+ resolveId(id, importer) {
14
+ if ((/^\/?@shopify\/hydrogen\/entry-client$/.test(id) ||
15
+ id.endsWith(path.sep + HYDROGEN_ENTRY_FILE)) &&
16
+ normalizePath(importer || '').endsWith('/index.html')) {
17
+ // Make this virtual import look like a local project file
18
+ // to enable React Refresh normally.
19
+ return path.join(config.root, HYDROGEN_ENTRY_FILE + '?virtual');
20
+ }
21
+ return null;
22
+ },
23
+ load(id) {
24
+ if (id.includes(HYDROGEN_ENTRY_FILE + '?virtual')) {
25
+ const code = new MagicString(`import renderHydrogen from '@shopify/hydrogen/entry-client';\n` +
26
+ `export default renderHydrogen((props) => props.children);`);
27
+ return {
28
+ code: code.toString(),
29
+ map: { mappings: '' },
30
+ };
31
+ }
32
+ return null;
33
+ },
34
+ };
35
+ };
@@ -0,0 +1,9 @@
1
+ import { type Plugin } from 'vite';
2
+ declare const _default: () => Plugin;
3
+ /**
4
+ * This dev server middleware prevents Vite from applying immutable cache control headers to client
5
+ * components. These client components are part of the user's local source, but since they are
6
+ * referenced via import globs in the `react-dom-server-vite` NPM package, Vite assumes they
7
+ * are 3P deps that can be cached. This middleware responds to the requests early with `no-cache`.
8
+ */
9
+ export default _default;
@@ -0,0 +1,37 @@
1
+ import { send } from 'vite';
2
+ /**
3
+ * This dev server middleware prevents Vite from applying immutable cache control headers to client
4
+ * components. These client components are part of the user's local source, but since they are
5
+ * referenced via import globs in the `react-dom-server-vite` NPM package, Vite assumes they
6
+ * are 3P deps that can be cached. This middleware responds to the requests early with `no-cache`.
7
+ */
8
+ export default () => {
9
+ return {
10
+ name: 'vite-plugin-hydrogen-client-middleware',
11
+ enforce: 'pre',
12
+ configureServer(server) {
13
+ server.middlewares.use(async (req, res, next) => {
14
+ const url = req.url;
15
+ try {
16
+ if (url.includes('.client.js') &&
17
+ url.includes('?v=') &&
18
+ !url.includes('node_modules')) {
19
+ const result = await server.transformRequest(url, { html: false });
20
+ if (result) {
21
+ return send(req, res, result.code, 'js', {
22
+ etag: result.etag,
23
+ cacheControl: 'no-cache',
24
+ headers: server.config.server.headers,
25
+ map: result.map,
26
+ });
27
+ }
28
+ }
29
+ }
30
+ catch (e) {
31
+ next(e);
32
+ }
33
+ next();
34
+ });
35
+ },
36
+ };
37
+ };
@@ -0,0 +1,3 @@
1
+ import { Plugin } from 'vite';
2
+ declare const _default: () => Plugin;
3
+ export default _default;
@@ -0,0 +1,96 @@
1
+ export default () => {
2
+ const rollupOptions = {
3
+ output: {},
4
+ };
5
+ const isWorker = Boolean(process.env.WORKER) && process.env.WORKER !== 'undefined';
6
+ if (isWorker) {
7
+ /**
8
+ * By default, SSR dedupe logic gets bundled which runs `require('module')`.
9
+ * We don't want this in our workers runtime, because `require` is not supported.
10
+ */
11
+ rollupOptions.output = {
12
+ format: 'es',
13
+ };
14
+ }
15
+ if (process.env.NODE_ENV !== 'development') {
16
+ /**
17
+ * Ofuscate production asset name - To prevent ad blocker logics that blocks
18
+ * certain files due to how it is named.
19
+ */
20
+ rollupOptions.output = {
21
+ ...rollupOptions.output,
22
+ chunkFileNames: 'assets/[hash].js',
23
+ };
24
+ }
25
+ return {
26
+ name: 'vite-plugin-hydrogen-config',
27
+ config: async (config, env) => {
28
+ var _a, _b, _c;
29
+ return ({
30
+ resolve: {
31
+ alias: {
32
+ // This library is currently included as a compiled vendor lib, not published yet to NPM
33
+ 'react-server-dom-vite/client-proxy': require.resolve('@shopify/hydrogen/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js'),
34
+ },
35
+ },
36
+ build: {
37
+ minify: (_b = (_a = config.build) === null || _a === void 0 ? void 0 : _a.minify) !== null && _b !== void 0 ? _b : 'esbuild',
38
+ sourcemap: true,
39
+ rollupOptions: ((_c = config.build) === null || _c === void 0 ? void 0 : _c.rollupOptions)
40
+ ? Object.assign(rollupOptions, config.build.rollupOptions)
41
+ : rollupOptions,
42
+ },
43
+ ssr: {
44
+ /**
45
+ * Tell Vite to bundle everything when we're building for Workers.
46
+ * Otherwise, bundle RSC plugin as a workaround to apply the vendor alias above.
47
+ */
48
+ noExternal: isWorker || [/react-server-dom-vite/],
49
+ target: isWorker ? 'webworker' : 'node',
50
+ },
51
+ // Reload when updating local Hydrogen lib
52
+ server: process.env.LOCAL_DEV && {
53
+ watch: {
54
+ ignored: [
55
+ '!**/node_modules/@shopify/hydrogen/**',
56
+ '!**/node_modules/@shopify/hydrogen-ui/**',
57
+ ],
58
+ },
59
+ },
60
+ optimizeDeps: {
61
+ exclude: [
62
+ '@shopify/hydrogen',
63
+ '@shopify/hydrogen/client',
64
+ '@shopify/hydrogen/entry-client',
65
+ '@shopify/hydrogen-ui',
66
+ ],
67
+ include: [
68
+ /**
69
+ * Additionally, the following dependencies have trouble loading the
70
+ * correct version of the dependency (server vs client). This tells Vite to take the
71
+ * server versions and optimize them for ESM.
72
+ */
73
+ 'react-helmet-async',
74
+ 'react-error-boundary',
75
+ /**
76
+ * Vite cannot find the following dependencies since they might be
77
+ * required in RSC asynchronously. This tells Vite to optimize them
78
+ * at server start to avoid posterior page reloads and issues (#429 #430).
79
+ */
80
+ 'react',
81
+ 'react-dom/client',
82
+ 'react-server-dom-vite/client-proxy',
83
+ // https://github.com/vitejs/vite/issues/6215
84
+ 'react/jsx-runtime',
85
+ ],
86
+ },
87
+ define: {
88
+ __DEV__: env.mode !== 'production',
89
+ __WORKER__: isWorker,
90
+ },
91
+ envPrefix: ['VITE_', 'PUBLIC_'],
92
+ base: process.env.HYDROGEN_ASSET_BASE_URL,
93
+ });
94
+ },
95
+ };
96
+ };
@@ -0,0 +1,11 @@
1
+ import { Plugin } from 'vite';
2
+ import type { HydrogenVitePluginOptions } from '../../types';
3
+ export declare const HYDROGEN_DEFAULT_SERVER_ENTRY: string;
4
+ declare const _default: (pluginOptions: HydrogenVitePluginOptions) => Plugin;
5
+ export default _default;
6
+ declare global {
7
+ var Oxygen: {
8
+ env: any;
9
+ [key: string]: any;
10
+ };
11
+ }
@@ -0,0 +1,110 @@
1
+ import { loadEnv, normalizePath } from 'vite';
2
+ import bodyParser from 'body-parser';
3
+ import path from 'path';
4
+ import { promises as fs } from 'fs';
5
+ import { hydrogenMiddleware, graphiqlMiddleware } from '../middleware';
6
+ import { InMemoryCache } from '../cache/in-memory';
7
+ export const HYDROGEN_DEFAULT_SERVER_ENTRY = process.env.HYDROGEN_SERVER_ENTRY || '/src/App.server';
8
+ const virtualModuleId = 'virtual:hydrogen-config';
9
+ const virtualProxyModuleId = virtualModuleId + ':proxy';
10
+ export default (pluginOptions) => {
11
+ let config;
12
+ return {
13
+ name: 'vite-plugin-hydrogen-middleware',
14
+ configResolved(_config) {
15
+ config = _config;
16
+ },
17
+ /**
18
+ * By adding a middleware to the Vite dev server, we can handle SSR without needing
19
+ * a custom node script. It works by handling any requests for `text/html` documents,
20
+ * loading them in an SSR context, rendering them using the `entry-server` endpoint in the
21
+ * user's project, and injecting the static HTML into the template.
22
+ */
23
+ async configureServer(server) {
24
+ const resolve = (p) => path.resolve(server.config.root, p);
25
+ async function getIndexTemplate(url) {
26
+ const indexHtml = await fs.readFile(resolve('index.html'), 'utf-8');
27
+ return await server.transformIndexHtml(url, indexHtml);
28
+ }
29
+ await polyfillOxygenEnv(server.config);
30
+ // The default vite middleware rewrites the URL `/graphqil` to `/index.html`
31
+ // By running this middleware first, we avoid that.
32
+ server.middlewares.use(graphiqlMiddleware({
33
+ dev: true,
34
+ getShopifyConfig: async (incomingMessage) => {
35
+ var _a;
36
+ const { default: hydrogenConfig } = await server.ssrLoadModule('virtual:hydrogen-config:proxy');
37
+ // @ts-ignore
38
+ const { address = 'localhost', port = '3000' } = ((_a = server.httpServer) === null || _a === void 0 ? void 0 : _a.address()) || {};
39
+ const url = new URL(`http://${address}:${port}${incomingMessage.url}`);
40
+ const request = new Request(url.toString(), {
41
+ headers: incomingMessage.headers,
42
+ });
43
+ // @ts-expect-error Manually set `normalizedUrl` which a developer expects to be available
44
+ // via `ServerComponentRequest` during production runtime.
45
+ request.normalizedUrl = request.url;
46
+ return typeof hydrogenConfig.shopify === 'function'
47
+ ? hydrogenConfig.shopify(request)
48
+ : hydrogenConfig.shopify;
49
+ },
50
+ }));
51
+ server.middlewares.use(bodyParser.raw({ type: '*/*' }));
52
+ return () => server.middlewares.use(hydrogenMiddleware({
53
+ dev: true,
54
+ indexTemplate: getIndexTemplate,
55
+ getServerEntrypoint: () => server.ssrLoadModule(HYDROGEN_DEFAULT_SERVER_ENTRY),
56
+ devServer: server,
57
+ cache: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.devCache)
58
+ ? new InMemoryCache()
59
+ : undefined,
60
+ }));
61
+ },
62
+ async resolveId(source, importer) {
63
+ if (source === virtualModuleId) {
64
+ const configPath = await findHydrogenConfigPath(config.root, pluginOptions.configPath);
65
+ return this.resolve(configPath, importer, {
66
+ skipSelf: true,
67
+ });
68
+ }
69
+ if (source === virtualProxyModuleId) {
70
+ // Virtual modules convention
71
+ // https://vitejs.dev/guide/api-plugin.html#virtual-modules-convention
72
+ return '\0' + virtualProxyModuleId;
73
+ }
74
+ },
75
+ async load(id) {
76
+ if (id === '\0' + virtualProxyModuleId) {
77
+ // Likely due to a bug in Vite, but the config cannot be loaded
78
+ // directly using ssrLoadModule. It needs to be proxied as follows:
79
+ return `import hc from 'virtual:hydrogen-config'; export default hc;`;
80
+ }
81
+ },
82
+ };
83
+ };
84
+ async function polyfillOxygenEnv(config) {
85
+ const env = await loadEnv(config.mode, config.root, '');
86
+ const publicPrefixes = Array.isArray(config.envPrefix)
87
+ ? config.envPrefix
88
+ : [config.envPrefix || ''];
89
+ for (const key of Object.keys(env)) {
90
+ if (publicPrefixes.some((prefix) => key.startsWith(prefix))) {
91
+ delete env[key];
92
+ }
93
+ }
94
+ globalThis.Oxygen = { env };
95
+ }
96
+ async function findHydrogenConfigPath(root, userProvidedPath) {
97
+ let configPath = userProvidedPath;
98
+ if (!configPath) {
99
+ // Find the config file in the project root
100
+ const files = await fs.readdir(root);
101
+ configPath = files.find((file) => /^hydrogen\.config\.[jt]s$/.test(file));
102
+ }
103
+ if (configPath) {
104
+ configPath = normalizePath(configPath);
105
+ if (!configPath.startsWith('/'))
106
+ configPath = path.resolve(root, configPath);
107
+ }
108
+ return (configPath ||
109
+ require.resolve('@shopify/hydrogen/dist/esnext/utilities/empty-hydrogen-config.js'));
110
+ }
@@ -0,0 +1 @@
1
+ export default function (): any;
@@ -0,0 +1,35 @@
1
+ // @ts-ignore
2
+ import reactServerDomVite from '@shopify/hydrogen/vendor/react-server-dom-vite/plugin';
3
+ import { HYDROGEN_DEFAULT_SERVER_ENTRY } from './vite-plugin-hydrogen-middleware';
4
+ import { createServer } from 'vite';
5
+ export default function () {
6
+ return reactServerDomVite({
7
+ isServerComponentImporterAllowed(importer, source) {
8
+ return (
9
+ // Always allow the entry server (e.g. App.server.jsx) to be imported
10
+ // in other files such as worker.js or server.js.
11
+ source.includes(HYDROGEN_DEFAULT_SERVER_ENTRY) ||
12
+ /(index|entry-server|hydrogen\.config)\.[jt]s/.test(importer) ||
13
+ // Support importing server components for testing
14
+ // TODO: revisit this when RSC splits into two bundles
15
+ /\.test\.[tj]sx?$/.test(importer));
16
+ },
17
+ async findClientComponentsForClientBuild() {
18
+ // In client build, we create a local server to discover client compoents.
19
+ const server = await createServer({
20
+ clearScreen: false,
21
+ server: { middlewareMode: 'ssr' },
22
+ });
23
+ await Promise.all([
24
+ // Load server entry to discover client components early
25
+ server.ssrLoadModule(HYDROGEN_DEFAULT_SERVER_ENTRY),
26
+ // Route globs are placed in hydrogen.config.js and need to
27
+ // be loaded to discover client components in routes
28
+ server.ssrLoadModule('virtual:hydrogen-config:proxy'),
29
+ ]);
30
+ await server.close();
31
+ // At this point, the server has loaded all the components in the module graph
32
+ return reactServerDomVite.findClientComponentsFromServer(server);
33
+ },
34
+ });
35
+ }
@@ -0,0 +1,3 @@
1
+ import { Plugin } from 'vite';
2
+ declare const _default: () => Plugin;
3
+ export default _default;