@shopify/hydrogen 0.22.1 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/CHANGELOG.md +378 -0
  2. package/dist/esnext/components/AddToCartButton/AddToCartButton.client.d.ts +2 -5
  3. package/dist/esnext/components/AddToCartButton/AddToCartButton.client.js +18 -17
  4. package/dist/esnext/components/BaseButton/BaseButton.client.d.ts +14 -0
  5. package/dist/esnext/components/BaseButton/BaseButton.client.js +15 -0
  6. package/dist/esnext/components/BaseButton/index.d.ts +1 -0
  7. package/dist/esnext/components/BaseButton/index.js +1 -0
  8. package/dist/esnext/components/BuyNowButton/BuyNowButton.client.d.ts +2 -5
  9. package/dist/esnext/components/BuyNowButton/BuyNowButton.client.js +5 -4
  10. package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.js +4 -4
  11. package/dist/esnext/components/CartLinePrice/CartLinePrice.client.js +5 -8
  12. package/dist/esnext/components/CartLineProvider/context.d.ts +10 -0
  13. package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.d.ts +4 -5
  14. package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.js +16 -14
  15. package/dist/esnext/components/CartLines/{CartLines.d.ts → CartLines.client.d.ts} +0 -0
  16. package/dist/esnext/components/CartLines/{CartLines.js → CartLines.client.js} +1 -1
  17. package/dist/esnext/components/CartLines/index.d.ts +1 -1
  18. package/dist/esnext/components/CartLines/index.js +1 -1
  19. package/dist/esnext/components/CartProvider/CartProvider.client.js +31 -38
  20. package/dist/esnext/components/CartProvider/cart-queries.d.ts +1 -1
  21. package/dist/esnext/components/CartProvider/cart-queries.js +11 -0
  22. package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.d.ts +11 -1
  23. package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +11 -1
  24. package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +11 -1
  25. package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +11 -1
  26. package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +11 -1
  27. package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +11 -1
  28. package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +11 -1
  29. package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +11 -1
  30. package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +11 -1
  31. package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +11 -1
  32. package/dist/esnext/components/CartProvider/hooks.client.js +5 -8
  33. package/dist/esnext/components/CartProvider/types.d.ts +2 -0
  34. package/dist/esnext/components/ExternalVideo/ExternalVideo.js +1 -1
  35. package/dist/esnext/components/Image/Image.d.ts +21 -0
  36. package/dist/esnext/components/Image/Image.js +88 -14
  37. package/dist/esnext/components/Link/Link.client.d.ts +2 -0
  38. package/dist/esnext/components/Link/Link.client.js +8 -5
  39. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +2 -2
  40. package/dist/esnext/components/Metafield/Metafield.client.d.ts +6 -10
  41. package/dist/esnext/components/Metafield/Metafield.client.js +67 -31
  42. package/dist/esnext/components/Metafield/components/StarRating/StarRating.js +1 -1
  43. package/dist/esnext/components/ModelViewer/ModelViewer.client.js +2 -3
  44. package/dist/esnext/components/Money/Money.client.js +1 -1
  45. package/dist/esnext/components/ProductOptionsProvider/ProductOptionsProvider.client.d.ts +21 -0
  46. package/dist/esnext/components/ProductOptionsProvider/ProductOptionsProvider.client.js +133 -0
  47. package/dist/esnext/components/ProductOptionsProvider/context.d.ts +2 -0
  48. package/dist/esnext/components/{ProductProvider → ProductOptionsProvider}/context.js +0 -1
  49. package/dist/esnext/components/ProductOptionsProvider/index.d.ts +2 -0
  50. package/dist/esnext/components/ProductOptionsProvider/index.js +2 -0
  51. package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +5 -2
  52. package/dist/esnext/components/ProductPrice/ProductPrice.client.js +10 -12
  53. package/dist/esnext/components/Seo/CollectionSeo.client.js +2 -3
  54. package/dist/esnext/components/Seo/DefaultPageSeo.client.js +3 -3
  55. package/dist/esnext/components/Seo/NoIndexSeo.client.js +2 -2
  56. package/dist/esnext/components/Seo/PageSeo.client.js +2 -3
  57. package/dist/esnext/components/Seo/ProductSeo.client.js +9 -10
  58. package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +2 -3
  59. package/dist/esnext/components/Video/Video.js +2 -3
  60. package/dist/esnext/components/index.d.ts +1 -1
  61. package/dist/esnext/components/index.js +1 -1
  62. package/dist/esnext/config.d.ts +4 -0
  63. package/dist/esnext/config.js +4 -0
  64. package/dist/esnext/constants.d.ts +2 -0
  65. package/dist/esnext/constants.js +2 -0
  66. package/dist/esnext/entry-client.js +107 -21
  67. package/dist/esnext/entry-server.d.ts +2 -31
  68. package/dist/esnext/entry-server.js +400 -335
  69. package/dist/esnext/foundation/Analytics/Analytics.client.js +15 -13
  70. package/dist/esnext/foundation/Analytics/Analytics.server.js +27 -20
  71. package/dist/esnext/foundation/Analytics/ClientAnalytics.d.ts +4 -2
  72. package/dist/esnext/foundation/Analytics/ClientAnalytics.js +16 -14
  73. package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.d.ts +4 -0
  74. package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.js +36 -0
  75. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/ServerAnalyticsConnector.d.ts +3 -0
  76. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/ServerAnalyticsConnector.js +27 -0
  77. package/dist/esnext/foundation/Analytics/connectors/Shopify/ServerAnalyticsConnector.d.ts +3 -0
  78. package/dist/esnext/foundation/Analytics/connectors/Shopify/ServerAnalyticsConnector.js +21 -0
  79. package/dist/esnext/foundation/Analytics/connectors/Shopify/ShopifyAnalytics.client.d.ts +3 -0
  80. package/dist/esnext/foundation/Analytics/connectors/Shopify/ShopifyAnalytics.client.js +190 -0
  81. package/dist/esnext/foundation/Analytics/connectors/Shopify/ShopifyAnalytics.server.d.ts +3 -0
  82. package/dist/esnext/foundation/Analytics/connectors/Shopify/ShopifyAnalytics.server.js +23 -0
  83. package/dist/esnext/foundation/Analytics/connectors/Shopify/const.d.ts +28 -0
  84. package/dist/esnext/foundation/Analytics/connectors/Shopify/const.js +51 -0
  85. package/dist/esnext/foundation/Analytics/connectors/Shopify/utils.d.ts +3 -0
  86. package/dist/esnext/foundation/Analytics/connectors/Shopify/utils.js +56 -0
  87. package/dist/esnext/foundation/Analytics/hook.js +4 -2
  88. package/dist/esnext/foundation/Analytics/utils.d.ts +2 -0
  89. package/dist/esnext/foundation/Analytics/utils.js +21 -0
  90. package/dist/esnext/foundation/BuiltInRoutes/BuiltInRoutes.d.ts +2 -0
  91. package/dist/esnext/foundation/BuiltInRoutes/BuiltInRoutes.js +23 -0
  92. package/dist/esnext/foundation/BuiltInRoutes/healthCheck.d.ts +1 -0
  93. package/dist/esnext/foundation/BuiltInRoutes/healthCheck.js +3 -0
  94. package/dist/{node/framework → esnext/foundation/Cache}/cache-sub-request.d.ts +1 -1
  95. package/dist/esnext/{framework → foundation/Cache}/cache-sub-request.js +4 -4
  96. package/dist/esnext/{framework → foundation/Cache}/cache.d.ts +1 -1
  97. package/dist/esnext/{framework → foundation/Cache}/cache.js +4 -4
  98. package/dist/esnext/foundation/Cache/strategies/index.d.ts +7 -0
  99. package/dist/esnext/foundation/Cache/strategies/index.js +54 -0
  100. package/dist/esnext/foundation/Cookie/Cookie.d.ts +3 -3
  101. package/dist/esnext/foundation/Cookie/Cookie.js +5 -0
  102. package/dist/esnext/foundation/DevTools/DevTools.client.d.ts +3 -0
  103. package/dist/esnext/foundation/DevTools/DevTools.client.js +17 -0
  104. package/dist/esnext/foundation/DevTools/DevTools.server.d.ts +1 -0
  105. package/dist/esnext/foundation/DevTools/DevTools.server.js +14 -0
  106. package/dist/esnext/foundation/DevTools/components/GraphQL.client.d.ts +1 -0
  107. package/dist/esnext/foundation/DevTools/components/GraphQL.client.js +25 -0
  108. package/dist/esnext/foundation/DevTools/components/Heading.d.ts +5 -0
  109. package/dist/esnext/foundation/DevTools/components/Heading.js +12 -0
  110. package/dist/esnext/foundation/DevTools/components/Interface.client.d.ts +11 -0
  111. package/dist/esnext/foundation/DevTools/components/Interface.client.js +47 -0
  112. package/dist/esnext/foundation/DevTools/components/Panels.d.ts +8 -0
  113. package/dist/esnext/foundation/DevTools/components/Panels.js +60 -0
  114. package/dist/esnext/foundation/DevTools/components/Performance.client.d.ts +14 -0
  115. package/dist/esnext/foundation/DevTools/components/Performance.client.js +26 -0
  116. package/dist/esnext/foundation/DevTools/components/Settings.client.d.ts +7 -0
  117. package/dist/esnext/foundation/DevTools/components/Settings.client.js +20 -0
  118. package/dist/esnext/foundation/DevTools/components/Table.d.ts +9 -0
  119. package/dist/esnext/foundation/DevTools/components/Table.js +7 -0
  120. package/dist/esnext/foundation/DevTools/components/icons.d.ts +2 -0
  121. package/dist/esnext/foundation/DevTools/components/icons.js +13 -0
  122. package/dist/esnext/foundation/DevTools/components/index.d.ts +2 -0
  123. package/dist/esnext/foundation/DevTools/components/index.js +2 -0
  124. package/dist/esnext/foundation/FileRoutes/FileRoutes.server.js +4 -4
  125. package/dist/{node/framework/Hydration → esnext/foundation/Html}/Html.d.ts +3 -1
  126. package/dist/esnext/{framework/Hydration → foundation/Html}/Html.js +15 -5
  127. package/dist/esnext/{framework/Hydration/ServerComponentRequest.server.d.ts → foundation/HydrogenRequest/HydrogenRequest.server.d.ts} +14 -4
  128. package/dist/esnext/{framework/Hydration/ServerComponentRequest.server.js → foundation/HydrogenRequest/HydrogenRequest.server.js} +70 -12
  129. package/dist/esnext/{framework/Hydration/ServerComponentResponse.server.d.ts → foundation/HydrogenResponse/HydrogenResponse.server.d.ts} +6 -11
  130. package/dist/esnext/foundation/HydrogenResponse/HydrogenResponse.server.js +48 -0
  131. package/dist/esnext/foundation/Router/BrowserRouter.client.js +15 -9
  132. package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +2 -1
  133. package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.js +1 -1
  134. package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +5 -6
  135. package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.js +19 -24
  136. package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.d.ts +1 -1
  137. package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.js +1 -1
  138. package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.js +4 -5
  139. package/dist/esnext/foundation/fetchSync/server/fetchSync.js +1 -1
  140. package/dist/esnext/foundation/index.d.ts +1 -1
  141. package/dist/esnext/foundation/index.js +1 -1
  142. package/dist/esnext/foundation/runtime.d.ts +2 -0
  143. package/dist/esnext/foundation/runtime.js +6 -0
  144. package/dist/esnext/foundation/session/session.d.ts +3 -3
  145. package/dist/esnext/foundation/ssr-interop.d.ts +2 -2
  146. package/dist/esnext/foundation/useNavigate/useNavigate.d.ts +2 -0
  147. package/dist/esnext/foundation/useNavigate/useNavigate.js +10 -4
  148. package/dist/esnext/foundation/useQuery/hooks.d.ts +1 -0
  149. package/dist/esnext/foundation/useQuery/hooks.js +29 -18
  150. package/dist/esnext/foundation/useRequestContext/index.d.ts +15 -0
  151. package/dist/esnext/foundation/useRequestContext/index.js +23 -0
  152. package/dist/esnext/foundation/useServerProps/use-server-props.js +2 -2
  153. package/dist/esnext/foundation/useSession/useSession.js +1 -2
  154. package/dist/esnext/foundation/useUrl/useUrl.js +1 -2
  155. package/dist/esnext/framework/cache/in-memory.js +3 -3
  156. package/dist/esnext/framework/middleware.d.ts +1 -1
  157. package/dist/esnext/framework/middleware.js +3 -4
  158. package/dist/esnext/framework/plugin.d.ts +7 -3
  159. package/dist/esnext/framework/plugin.js +4 -1
  160. package/dist/esnext/framework/plugins/vite-plugin-client-imports.js +1 -1
  161. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +70 -64
  162. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +1 -1
  163. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +3 -4
  164. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-rsc.js +5 -13
  165. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-suppress-warnings.d.ts +3 -0
  166. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-suppress-warnings.js +19 -0
  167. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-virtual-files.d.ts +1 -1
  168. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-virtual-files.js +6 -4
  169. package/dist/esnext/framework/types.d.ts +5 -0
  170. package/dist/esnext/framework/types.js +1 -0
  171. package/dist/esnext/hooks/index.d.ts +0 -1
  172. package/dist/esnext/hooks/index.js +0 -1
  173. package/dist/esnext/hooks/useCartLine/useCartLine.d.ts +10 -0
  174. package/dist/esnext/hooks/useMoney/hooks.js +53 -39
  175. package/dist/esnext/hooks/useProductOptions/helpers.js +6 -10
  176. package/dist/esnext/hooks/useProductOptions/types.d.ts +17 -15
  177. package/dist/esnext/hooks/useProductOptions/useProductOptions.client.d.ts +1 -15
  178. package/dist/esnext/hooks/useProductOptions/useProductOptions.client.js +8 -107
  179. package/dist/esnext/hooks/useShopQuery/hooks.js +30 -18
  180. package/dist/esnext/index.d.ts +7 -5
  181. package/dist/esnext/index.js +5 -5
  182. package/dist/esnext/shared-types.d.ts +26 -0
  183. package/dist/esnext/shared-types.js +4 -0
  184. package/dist/esnext/storefront-api-types.d.ts +37 -443
  185. package/dist/esnext/streaming.server.d.ts +9 -19
  186. package/dist/esnext/streaming.server.js +2 -11
  187. package/dist/esnext/types.d.ts +40 -40
  188. package/dist/esnext/types.js +1 -1
  189. package/dist/esnext/utilities/apiRoutes.d.ts +8 -4
  190. package/dist/esnext/utilities/apiRoutes.js +6 -4
  191. package/dist/esnext/utilities/devtools.d.ts +1 -1
  192. package/dist/esnext/utilities/devtools.js +3 -3
  193. package/dist/esnext/utilities/flattenConnection/flattenConnection.d.ts +1 -0
  194. package/dist/esnext/utilities/flattenConnection/flattenConnection.js +13 -6
  195. package/dist/esnext/utilities/graphql-tracker.js +7 -9
  196. package/dist/esnext/utilities/hash.d.ts +2 -2
  197. package/dist/esnext/utilities/hash.js +29 -6
  198. package/dist/esnext/utilities/image_size.d.ts +24 -3
  199. package/dist/esnext/utilities/image_size.js +53 -31
  200. package/dist/esnext/utilities/index.d.ts +2 -2
  201. package/dist/esnext/utilities/index.js +2 -2
  202. package/dist/esnext/utilities/isBrowser/index.d.ts +1 -0
  203. package/dist/esnext/utilities/isBrowser/index.js +1 -0
  204. package/dist/esnext/utilities/isBrowser/isBrowser.d.ts +4 -0
  205. package/dist/esnext/utilities/isBrowser/isBrowser.js +6 -0
  206. package/dist/esnext/utilities/isServer/isServer.js +2 -2
  207. package/dist/esnext/utilities/load_script.js +1 -1
  208. package/dist/esnext/utilities/log/index.d.ts +1 -1
  209. package/dist/esnext/utilities/log/index.js +1 -1
  210. package/dist/esnext/utilities/log/log-cache-api-status.js +3 -2
  211. package/dist/esnext/utilities/log/log-cache-header.d.ts +4 -4
  212. package/dist/esnext/utilities/log/log-query-timeline.d.ts +3 -3
  213. package/dist/esnext/utilities/log/log-query-timeline.js +29 -10
  214. package/dist/esnext/utilities/log/log.d.ts +17 -11
  215. package/dist/esnext/utilities/log/log.js +28 -20
  216. package/dist/esnext/utilities/log/utils.js +1 -6
  217. package/dist/esnext/utilities/parseMetafield/index.d.ts +1 -0
  218. package/dist/esnext/utilities/parseMetafield/index.js +1 -0
  219. package/dist/esnext/utilities/parseMetafield/parseMetafield.d.ts +15 -0
  220. package/dist/esnext/utilities/{parseMetafieldValue/parseMetafieldValue.js → parseMetafield/parseMetafield.js} +28 -2
  221. package/dist/esnext/utilities/storefrontApi.js +9 -5
  222. package/dist/esnext/utilities/template.js +1 -2
  223. package/dist/esnext/utilities/web-api-polyfill.js +6 -0
  224. package/dist/esnext/version.d.ts +1 -1
  225. package/dist/esnext/version.js +1 -1
  226. package/dist/node/framework/cache/in-memory.js +3 -3
  227. package/dist/node/framework/middleware.d.ts +1 -1
  228. package/dist/node/framework/middleware.js +3 -4
  229. package/dist/node/framework/plugin.d.ts +4 -3
  230. package/dist/node/framework/plugin.js +5 -2
  231. package/dist/node/framework/plugins/vite-plugin-client-imports.js +1 -1
  232. package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +70 -64
  233. package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +1 -1
  234. package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +3 -4
  235. package/dist/node/framework/plugins/vite-plugin-hydrogen-rsc.js +6 -14
  236. package/dist/node/framework/plugins/vite-plugin-hydrogen-suppress-warnings.d.ts +3 -0
  237. package/dist/node/framework/plugins/vite-plugin-hydrogen-suppress-warnings.js +21 -0
  238. package/dist/node/framework/plugins/vite-plugin-hydrogen-virtual-files.d.ts +1 -1
  239. package/dist/node/framework/plugins/vite-plugin-hydrogen-virtual-files.js +6 -4
  240. package/dist/node/framework/types.d.ts +5 -0
  241. package/dist/node/{foundation/Analytics → framework}/types.js +0 -0
  242. package/dist/node/shared-types.d.ts +26 -0
  243. package/dist/node/shared-types.js +5 -0
  244. package/dist/node/utilities/web-api-polyfill.js +6 -0
  245. package/package.json +34 -26
  246. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-plugin.js +275 -60
  247. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.development.server.js +119 -64
  248. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.production.min.server.js +33 -32
  249. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.development.server.js +241 -75
  250. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.production.min.server.js +38 -35
  251. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.development.js +9 -8
  252. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.production.min.js +3 -3
  253. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js +3 -9
  254. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-plugin.js +276 -61
  255. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.browser.server.js +119 -64
  256. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.node.server.js +241 -75
  257. package/vendor/react-server-dom-vite/esm/react-server-dom-vite.js +9 -8
  258. package/vendor/react-server-dom-vite/package.json +1 -1
  259. package/client.d.ts +0 -1
  260. package/client.js +0 -1
  261. package/config.d.ts +0 -1
  262. package/config.js +0 -1
  263. package/dist/esnext/components/DevTools.client.d.ts +0 -1
  264. package/dist/esnext/components/DevTools.client.js +0 -129
  265. package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.d.ts +0 -8
  266. package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.js +0 -12
  267. package/dist/esnext/components/ProductProvider/ProductProvider.client.d.ts +0 -24
  268. package/dist/esnext/components/ProductProvider/ProductProvider.client.js +0 -34
  269. package/dist/esnext/components/ProductProvider/context.d.ts +0 -29
  270. package/dist/esnext/components/ProductProvider/index.d.ts +0 -2
  271. package/dist/esnext/components/ProductProvider/index.js +0 -2
  272. package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +0 -2
  273. package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.js +0 -33
  274. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.d.ts +0 -1
  275. package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.js +0 -24
  276. package/dist/esnext/framework/CachingStrategy/index.d.ts +0 -10
  277. package/dist/esnext/framework/CachingStrategy/index.js +0 -96
  278. package/dist/esnext/framework/Hydration/Html.d.ts +0 -11
  279. package/dist/esnext/framework/Hydration/ServerComponentResponse.server.js +0 -42
  280. package/dist/esnext/framework/Hydration/rsc.d.ts +0 -8
  281. package/dist/esnext/framework/Hydration/rsc.js +0 -100
  282. package/dist/esnext/framework/cache-sub-request.d.ts +0 -17
  283. package/dist/esnext/framework/config.d.ts +0 -6
  284. package/dist/esnext/framework/config.js +0 -6
  285. package/dist/esnext/framework/runtime.d.ts +0 -13
  286. package/dist/esnext/framework/runtime.js +0 -27
  287. package/dist/esnext/hooks/useParsedMetafields/index.d.ts +0 -1
  288. package/dist/esnext/hooks/useParsedMetafields/index.js +0 -1
  289. package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.d.ts +0 -21
  290. package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.js +0 -21
  291. package/dist/esnext/hooks/useProduct/index.d.ts +0 -1
  292. package/dist/esnext/hooks/useProduct/index.js +0 -1
  293. package/dist/esnext/hooks/useProduct/useProduct.d.ts +0 -52
  294. package/dist/esnext/hooks/useProduct/useProduct.js +0 -43
  295. package/dist/esnext/utilities/isClient/index.d.ts +0 -1
  296. package/dist/esnext/utilities/isClient/index.js +0 -1
  297. package/dist/esnext/utilities/isClient/isClient.d.ts +0 -4
  298. package/dist/esnext/utilities/isClient/isClient.js +0 -6
  299. package/dist/esnext/utilities/parseMetafieldValue/index.d.ts +0 -1
  300. package/dist/esnext/utilities/parseMetafieldValue/index.js +0 -1
  301. package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +0 -6
  302. package/dist/node/components/Image/Image.d.ts +0 -84
  303. package/dist/node/components/Image/Image.js +0 -89
  304. package/dist/node/components/Image/index.d.ts +0 -2
  305. package/dist/node/components/Image/index.js +0 -5
  306. package/dist/node/constants.d.ts +0 -7
  307. package/dist/node/constants.js +0 -10
  308. package/dist/node/entry-server.d.ts +0 -35
  309. package/dist/node/entry-server.js +0 -571
  310. package/dist/node/foundation/Analytics/Analytics.client.d.ts +0 -3
  311. package/dist/node/foundation/Analytics/Analytics.client.js +0 -32
  312. package/dist/node/foundation/Analytics/Analytics.server.d.ts +0 -1
  313. package/dist/node/foundation/Analytics/Analytics.server.js +0 -70
  314. package/dist/node/foundation/Analytics/ClientAnalytics.d.ts +0 -25
  315. package/dist/node/foundation/Analytics/ClientAnalytics.js +0 -100
  316. package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +0 -2
  317. package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.js +0 -37
  318. package/dist/node/foundation/Analytics/const.d.ts +0 -9
  319. package/dist/node/foundation/Analytics/const.js +0 -12
  320. package/dist/node/foundation/Analytics/hook.d.ts +0 -1
  321. package/dist/node/foundation/Analytics/hook.js +0 -11
  322. package/dist/node/foundation/Analytics/types.d.ts +0 -5
  323. package/dist/node/foundation/Analytics/utils.d.ts +0 -1
  324. package/dist/node/foundation/Analytics/utils.js +0 -12
  325. package/dist/node/foundation/AnalyticsErrorBoundary.client.d.ts +0 -4
  326. package/dist/node/foundation/AnalyticsErrorBoundary.client.js +0 -14
  327. package/dist/node/foundation/Redirect/Redirect.client.d.ts +0 -5
  328. package/dist/node/foundation/Redirect/Redirect.client.js +0 -18
  329. package/dist/node/foundation/Router/BrowserRouter.client.d.ts +0 -14
  330. package/dist/node/foundation/Router/BrowserRouter.client.js +0 -159
  331. package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +0 -40
  332. package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.js +0 -90
  333. package/dist/node/foundation/ServerPropsProvider/index.d.ts +0 -2
  334. package/dist/node/foundation/ServerPropsProvider/index.js +0 -6
  335. package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +0 -23
  336. package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.js +0 -158
  337. package/dist/node/foundation/ServerRequestProvider/index.d.ts +0 -1
  338. package/dist/node/foundation/ServerRequestProvider/index.js +0 -17
  339. package/dist/node/foundation/ShopifyProvider/types.d.ts +0 -13
  340. package/dist/node/foundation/ShopifyProvider/types.js +0 -2
  341. package/dist/node/foundation/session/session.d.ts +0 -27
  342. package/dist/node/foundation/session/session.js +0 -43
  343. package/dist/node/foundation/ssr-interop.d.ts +0 -29
  344. package/dist/node/foundation/ssr-interop.js +0 -39
  345. package/dist/node/foundation/useNavigate/useNavigate.d.ts +0 -13
  346. package/dist/node/foundation/useNavigate/useNavigate.js +0 -18
  347. package/dist/node/foundation/useServerProps/use-server-props.d.ts +0 -21
  348. package/dist/node/foundation/useServerProps/use-server-props.js +0 -40
  349. package/dist/node/framework/CachingStrategy/index.d.ts +0 -10
  350. package/dist/node/framework/CachingStrategy/index.js +0 -108
  351. package/dist/node/framework/Hydration/Html.js +0 -94
  352. package/dist/node/framework/Hydration/ServerComponentRequest.server.d.ts +0 -58
  353. package/dist/node/framework/Hydration/ServerComponentRequest.server.js +0 -150
  354. package/dist/node/framework/Hydration/ServerComponentResponse.server.d.ts +0 -26
  355. package/dist/node/framework/Hydration/ServerComponentResponse.server.js +0 -49
  356. package/dist/node/framework/Hydration/rsc.d.ts +0 -8
  357. package/dist/node/framework/Hydration/rsc.js +0 -103
  358. package/dist/node/framework/cache-sub-request.js +0 -95
  359. package/dist/node/framework/cache.d.ts +0 -17
  360. package/dist/node/framework/cache.js +0 -135
  361. package/dist/node/framework/config.d.ts +0 -6
  362. package/dist/node/framework/config.js +0 -11
  363. package/dist/node/framework/runtime.d.ts +0 -13
  364. package/dist/node/framework/runtime.js +0 -35
  365. package/dist/node/storefront-api-types.d.ts +0 -6405
  366. package/dist/node/storefront-api-types.js +0 -1766
  367. package/dist/node/streaming.server.d.ts +0 -26
  368. package/dist/node/streaming.server.js +0 -33
  369. package/dist/node/types.d.ts +0 -105
  370. package/dist/node/types.js +0 -2
  371. package/dist/node/utilities/apiRoutes.d.ts +0 -37
  372. package/dist/node/utilities/apiRoutes.js +0 -157
  373. package/dist/node/utilities/bot-ua.d.ts +0 -4
  374. package/dist/node/utilities/bot-ua.js +0 -65
  375. package/dist/node/utilities/defer.d.ts +0 -6
  376. package/dist/node/utilities/defer.js +0 -18
  377. package/dist/node/utilities/error.d.ts +0 -1
  378. package/dist/node/utilities/error.js +0 -10
  379. package/dist/node/utilities/fetch.d.ts +0 -9
  380. package/dist/node/utilities/fetch.js +0 -37
  381. package/dist/node/utilities/flattenConnection/flattenConnection.d.ts +0 -6
  382. package/dist/node/utilities/flattenConnection/flattenConnection.js +0 -15
  383. package/dist/node/utilities/flattenConnection/index.d.ts +0 -1
  384. package/dist/node/utilities/flattenConnection/index.js +0 -5
  385. package/dist/node/utilities/hash.d.ts +0 -2
  386. package/dist/node/utilities/hash.js +0 -11
  387. package/dist/node/utilities/html-encoding.d.ts +0 -1
  388. package/dist/node/utilities/html-encoding.js +0 -12
  389. package/dist/node/utilities/image_size.d.ts +0 -12
  390. package/dist/node/utilities/image_size.js +0 -68
  391. package/dist/node/utilities/index.d.ts +0 -12
  392. package/dist/node/utilities/index.js +0 -33
  393. package/dist/node/utilities/isClient/index.d.ts +0 -1
  394. package/dist/node/utilities/isClient/index.js +0 -5
  395. package/dist/node/utilities/isClient/isClient.d.ts +0 -4
  396. package/dist/node/utilities/isClient/isClient.js +0 -10
  397. package/dist/node/utilities/isServer/index.d.ts +0 -1
  398. package/dist/node/utilities/isServer/index.js +0 -5
  399. package/dist/node/utilities/isServer/isServer.d.ts +0 -4
  400. package/dist/node/utilities/isServer/isServer.js +0 -11
  401. package/dist/node/utilities/load_script.d.ts +0 -3
  402. package/dist/node/utilities/load_script.js +0 -27
  403. package/dist/node/utilities/log/index.d.ts +0 -4
  404. package/dist/node/utilities/log/index.js +0 -18
  405. package/dist/node/utilities/log/log-cache-api-status.d.ts +0 -1
  406. package/dist/node/utilities/log/log-cache-api-status.js +0 -17
  407. package/dist/node/utilities/log/log-cache-header.d.ts +0 -10
  408. package/dist/node/utilities/log/log-cache-header.js +0 -35
  409. package/dist/node/utilities/log/log-query-timeline.d.ts +0 -12
  410. package/dist/node/utilities/log/log-query-timeline.js +0 -88
  411. package/dist/node/utilities/log/log.d.ts +0 -22
  412. package/dist/node/utilities/log/log.js +0 -74
  413. package/dist/node/utilities/log/utils.d.ts +0 -3
  414. package/dist/node/utilities/log/utils.js +0 -21
  415. package/dist/node/utilities/matchPath.d.ts +0 -10
  416. package/dist/node/utilities/matchPath.js +0 -58
  417. package/dist/node/utilities/measurement.d.ts +0 -3
  418. package/dist/node/utilities/measurement.js +0 -103
  419. package/dist/node/utilities/parse.d.ts +0 -1
  420. package/dist/node/utilities/parse.js +0 -13
  421. package/dist/node/utilities/parseMetafieldValue/index.d.ts +0 -1
  422. package/dist/node/utilities/parseMetafieldValue/index.js +0 -5
  423. package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +0 -6
  424. package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.js +0 -40
  425. package/dist/node/utilities/storefrontApi.d.ts +0 -4
  426. package/dist/node/utilities/storefrontApi.js +0 -26
  427. package/dist/node/utilities/suspense.d.ts +0 -12
  428. package/dist/node/utilities/suspense.js +0 -64
  429. package/dist/node/utilities/template.d.ts +0 -9
  430. package/dist/node/utilities/template.js +0 -27
  431. package/dist/node/utilities/timing.d.ts +0 -7
  432. package/dist/node/utilities/timing.js +0 -18
  433. package/dist/node/utilities/video_parameters.d.ts +0 -47
  434. package/dist/node/utilities/video_parameters.js +0 -27
  435. package/dist/node/version.d.ts +0 -1
  436. package/dist/node/version.js +0 -4
  437. package/entry-client.d.ts +0 -1
  438. package/entry-client.js +0 -1
  439. package/entry-server.d.ts +0 -1
  440. package/entry-server.js +0 -1
  441. package/middleware.d.ts +0 -1
  442. package/middleware.js +0 -1
  443. package/plugin.d.ts +0 -1
  444. package/plugin.js +0 -1
  445. package/web-polyfills.js +0 -1
@@ -1,158 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.preloadRequestCacheData = exports.useRequestCacheData = exports.useServerRequest = exports.ServerRequestProvider = void 0;
27
- const react_1 = __importStar(require("react"));
28
- const timing_1 = require("../../utilities/timing");
29
- const hash_1 = require("../../utilities/hash");
30
- const log_1 = require("../../utilities/log");
31
- // Context to inject current request in SSR
32
- const RequestContextSSR = (0, react_1.createContext)(null);
33
- // Cache to inject current request in RSC
34
- function requestCacheRSC() {
35
- return new Map();
36
- }
37
- requestCacheRSC.key = Symbol.for('HYDROGEN_REQUEST');
38
- // Note: use this only during RSC/Flight rendering. The React dispatcher
39
- // for SSR/Fizz rendering does not implement getCacheForType.
40
- function getCacheForType(resource) {
41
- var _a;
42
- const dispatcher =
43
- // @ts-ignore
44
- react_1.default.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
45
- .ReactCurrentDispatcher.current;
46
- // @ts-ignore
47
- if (__DEV__ && typeof jest !== 'undefined' && !dispatcher.getCacheForType) {
48
- // Jest does not have access to the RSC runtime, mock it here:
49
- // @ts-ignore
50
- return ((_a = globalThis.__jestRscCache) !== null && _a !== void 0 ? _a : (globalThis.__jestRscCache = resource()));
51
- }
52
- return dispatcher.getCacheForType(resource);
53
- }
54
- function ServerRequestProvider({ isRSC, request, children, }) {
55
- if (isRSC) {
56
- // Save the request object in a React cache that is
57
- // scoped to this current rendering.
58
- const requestCache = getCacheForType(requestCacheRSC);
59
- requestCache.set(requestCacheRSC.key, request);
60
- return children;
61
- }
62
- // Use a normal provider in SSR to make the request object
63
- // available in the current rendering.
64
- return (react_1.default.createElement(RequestContextSSR.Provider, { value: request }, children));
65
- }
66
- exports.ServerRequestProvider = ServerRequestProvider;
67
- function useServerRequest() {
68
- let request;
69
- try {
70
- // This cache only works during RSC rendering:
71
- // @ts-ignore
72
- const cache = getCacheForType(requestCacheRSC);
73
- request = cache ? cache.get(requestCacheRSC.key) : null;
74
- }
75
- catch (_a) {
76
- // If RSC cache failed it means this is not an RSC request.
77
- // Try getting SSR context instead:
78
- request = (0, react_1.useContext)(RequestContextSSR); // eslint-disable-line react-hooks/rules-of-hooks
79
- }
80
- if (!request) {
81
- // @ts-ignore
82
- if (__DEV__ && typeof jest !== 'undefined') {
83
- // Unit tests are not wrapped in ServerRequestProvider.
84
- // This mocks it, instead of providing it in every test.
85
- return { ctx: {} };
86
- }
87
- throw new Error('No ServerRequest Context found');
88
- }
89
- return request;
90
- }
91
- exports.useServerRequest = useServerRequest;
92
- /**
93
- * Returns data stored in the request cache.
94
- * It will throw the promise if data is not ready.
95
- */
96
- function useRequestCacheData(key, fetcher) {
97
- const request = useServerRequest();
98
- const cache = request.ctx.cache;
99
- const cacheKey = (0, hash_1.hashKey)(key);
100
- if (!cache.has(cacheKey)) {
101
- let result;
102
- let promise;
103
- cache.set(cacheKey, () => {
104
- if (result !== undefined) {
105
- (0, log_1.collectQueryTimings)(request, key, 'rendered');
106
- return result;
107
- }
108
- if (!promise) {
109
- const startApiTime = (0, timing_1.getTime)();
110
- const maybePromise = fetcher();
111
- if (!(maybePromise instanceof Promise)) {
112
- result = { data: maybePromise };
113
- return result;
114
- }
115
- promise = maybePromise.then((data) => {
116
- result = { data };
117
- (0, log_1.collectQueryTimings)(request, key, 'resolved', (0, timing_1.getTime)() - startApiTime);
118
- }, (error) => (result = { error }));
119
- }
120
- throw promise;
121
- });
122
- }
123
- // Making sure the promise has returned data because it can be initated by a preload request,
124
- // otherwise, we throw the promise
125
- const result = cache.get(cacheKey).call();
126
- if (result instanceof Promise)
127
- throw result;
128
- return result;
129
- }
130
- exports.useRequestCacheData = useRequestCacheData;
131
- function preloadRequestCacheData(request, preloadQueries) {
132
- const cache = request.ctx.cache;
133
- preloadQueries === null || preloadQueries === void 0 ? void 0 : preloadQueries.forEach((preloadQuery, cacheKey) => {
134
- (0, log_1.collectQueryTimings)(request, preloadQuery.key, 'preload');
135
- if (!cache.has(cacheKey)) {
136
- let result;
137
- let promise;
138
- cache.set(cacheKey, () => {
139
- if (result !== undefined) {
140
- (0, log_1.collectQueryTimings)(request, preloadQuery.key, 'rendered');
141
- return result;
142
- }
143
- if (!promise) {
144
- const startApiTime = (0, timing_1.getTime)();
145
- promise = preloadQuery.fetcher().then((data) => {
146
- result = { data };
147
- (0, log_1.collectQueryTimings)(request, preloadQuery.key, 'resolved', (0, timing_1.getTime)() - startApiTime);
148
- }, (error) => {
149
- result = { error };
150
- });
151
- }
152
- return promise;
153
- });
154
- }
155
- cache.get(cacheKey).call();
156
- });
157
- }
158
- exports.preloadRequestCacheData = preloadRequestCacheData;
@@ -1 +0,0 @@
1
- export * from './ServerRequestProvider';
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ServerRequestProvider"), exports);
@@ -1,13 +0,0 @@
1
- import type { CountryCode, LanguageCode } from '../../storefront-api-types';
2
- import type { ReactNode } from 'react';
3
- import type { ShopifyConfigFetcher, ShopifyConfig } from '../../types';
4
- export interface ShopifyContextValue extends Omit<ShopifyConfig, 'defaultLocale'> {
5
- locale: `${LanguageCode}-${CountryCode}`;
6
- languageCode: `${LanguageCode}`;
7
- }
8
- export declare type ShopifyProviderProps = {
9
- /** Shopify connection information. Defaults to the `shopify` property in the `hydrogen.config.js` file. */
10
- shopifyConfig?: ShopifyConfig | ShopifyConfigFetcher;
11
- /** Any `ReactNode` elements. */
12
- children?: ReactNode;
13
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,27 +0,0 @@
1
- import { Logger } from '../../utilities/log';
2
- import type { ServerComponentResponse } from '../../framework/Hydration/ServerComponentResponse.server';
3
- import type { ServerComponentRequest } from '../../framework/Hydration/ServerComponentRequest.server';
4
- export declare type SessionSyncApi = {
5
- get: () => Record<string, string>;
6
- };
7
- export declare type SessionApi = {
8
- get: () => Promise<Record<string, string>>;
9
- set: (key: string, value: string) => Promise<void>;
10
- destroy: () => Promise<void>;
11
- };
12
- export declare type SessionStorageAdapter = {
13
- get: (request: Request) => Promise<Record<string, string>>;
14
- set: (request: Request, value: Record<string, string>) => Promise<string>;
15
- destroy: (request: Request) => Promise<string>;
16
- };
17
- export declare function getSyncSessionApi(request: ServerComponentRequest, componentResponse: ServerComponentResponse, log: Logger, session?: SessionStorageAdapter): {
18
- get(): any;
19
- };
20
- export declare const emptySessionImplementation: (log: Logger) => {
21
- get(): Promise<{}>;
22
- set(key: string, value: string): Promise<void>;
23
- destroy(): Promise<void>;
24
- };
25
- export declare const emptySyncSessionImplementation: (log: Logger) => {
26
- get(): {};
27
- };
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.emptySyncSessionImplementation = exports.emptySessionImplementation = exports.getSyncSessionApi = void 0;
4
- const suspense_1 = require("../../utilities/suspense");
5
- function getSyncSessionApi(request, componentResponse, log, session) {
6
- const sessionPromises = {};
7
- return session
8
- ? {
9
- get() {
10
- if (!sessionPromises.getPromise) {
11
- sessionPromises.getPromise = (0, suspense_1.wrapPromise)(session.get(request));
12
- }
13
- return sessionPromises.getPromise.read();
14
- },
15
- }
16
- : (0, exports.emptySyncSessionImplementation)(log);
17
- }
18
- exports.getSyncSessionApi = getSyncSessionApi;
19
- const emptySessionImplementation = function (log) {
20
- return {
21
- async get() {
22
- log.warn('No session adapter has been configured!');
23
- return {};
24
- },
25
- async set(key, value) {
26
- log.warn('No session adapter has been configured!');
27
- },
28
- async destroy() {
29
- log.warn('No session adapter has been configured!');
30
- return;
31
- },
32
- };
33
- };
34
- exports.emptySessionImplementation = emptySessionImplementation;
35
- const emptySyncSessionImplementation = function (log) {
36
- return {
37
- get() {
38
- log.warn('No session adapter has been configured!');
39
- return {};
40
- },
41
- };
42
- };
43
- exports.emptySyncSessionImplementation = emptySyncSessionImplementation;
@@ -1,29 +0,0 @@
1
- /**
2
- * This file is used for compatibility between browser and server environments.
3
- * The browser loads this file as is, without leaking server logic.
4
- * In the server, this file is transformed by Vite to inject server logic.
5
- * NOTE: Do not remove SSR-prefixed comments in this file.
6
- */
7
- import type { ServerComponentRequest } from '../framework/Hydration/ServerComponentRequest.server';
8
- export declare const META_ENV_SSR = false;
9
- declare type ServerGetter<T> = (request: ServerComponentRequest) => T;
10
- /**
11
- * Isomorphic hook to access context data. It gives access to the current request
12
- * when running on the server, and returns the provided client fallback in the browser.
13
- * This can be used in server components (RSC) as a Context/Provider replacement. In client
14
- * components, it uses the server getter in SSR and the client fallback in the browser.
15
- * @param serverGetter - A function that gets the current server request and returns any
16
- * desired request property. It only runs in the server (both in RSC and SSR).
17
- * @param clientFallback - An optional raw value or a React.Context to be consumed that will be
18
- * returned if the current environment is not the server. Note that, if this is a React.Context,
19
- * there must be a React.Provider parent in the app tree.
20
- * @returns A value retrieved from the current server request or a fallback value in the client.
21
- * The returned type depends on what the server getter returns.
22
- * @example
23
- * ```js
24
- * import {MyClientContext} from './my-client-react-context-provider';
25
- * useEnvContext(req => req.ctx.myServerContext, MyClientContext)
26
- * ```
27
- */
28
- export declare function useEnvContext<T>(serverGetter: ServerGetter<T>, clientFallback?: any): T;
29
- export {};
@@ -1,39 +0,0 @@
1
- "use strict";
2
- /**
3
- * This file is used for compatibility between browser and server environments.
4
- * The browser loads this file as is, without leaking server logic.
5
- * In the server, this file is transformed by Vite to inject server logic.
6
- * NOTE: Do not remove SSR-prefixed comments in this file.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.useEnvContext = exports.META_ENV_SSR = void 0;
10
- const react_1 = require("react");
11
- //@SSR import {useServerRequest} from './ServerRequestProvider';
12
- // This is replaced by Vite to import.meta.env.SSR
13
- exports.META_ENV_SSR = false;
14
- const reactContextType = Symbol.for('react.context');
15
- /**
16
- * Isomorphic hook to access context data. It gives access to the current request
17
- * when running on the server, and returns the provided client fallback in the browser.
18
- * This can be used in server components (RSC) as a Context/Provider replacement. In client
19
- * components, it uses the server getter in SSR and the client fallback in the browser.
20
- * @param serverGetter - A function that gets the current server request and returns any
21
- * desired request property. It only runs in the server (both in RSC and SSR).
22
- * @param clientFallback - An optional raw value or a React.Context to be consumed that will be
23
- * returned if the current environment is not the server. Note that, if this is a React.Context,
24
- * there must be a React.Provider parent in the app tree.
25
- * @returns A value retrieved from the current server request or a fallback value in the client.
26
- * The returned type depends on what the server getter returns.
27
- * @example
28
- * ```js
29
- * import {MyClientContext} from './my-client-react-context-provider';
30
- * useEnvContext(req => req.ctx.myServerContext, MyClientContext)
31
- * ```
32
- */
33
- function useEnvContext(serverGetter, clientFallback) {
34
- //@SSR if (META_ENV_SSR) return serverGetter(useServerRequest());
35
- return clientFallback && clientFallback.$$typeof === reactContextType
36
- ? (0, react_1.useContext)(clientFallback) // eslint-disable-line react-hooks/rules-of-hooks
37
- : clientFallback;
38
- }
39
- exports.useEnvContext = useEnvContext;
@@ -1,13 +0,0 @@
1
- declare type NavigationOptions = {
2
- /** Whether to update the state object or URL of the current history entry. Defaults to false. */
3
- replace?: boolean;
4
- /** Whether to reload the whole document on navigation. */
5
- reloadDocument?: boolean;
6
- /** The custom client state with the navigation. */
7
- clientState?: any;
8
- };
9
- /**
10
- * The useNavigate hook imperatively navigates between routes.
11
- */
12
- export declare function useNavigate(): (path: string, options?: NavigationOptions) => void;
13
- export {};
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useNavigate = void 0;
4
- const BrowserRouter_client_1 = require("../Router/BrowserRouter.client");
5
- /**
6
- * The useNavigate hook imperatively navigates between routes.
7
- */
8
- function useNavigate() {
9
- const router = (0, BrowserRouter_client_1.useRouter)();
10
- return (path, options = { replace: false, reloadDocument: false }) => {
11
- // @todo wait for RSC and then change focus for a11y?
12
- if (options === null || options === void 0 ? void 0 : options.replace)
13
- router.history.replace(path, (options === null || options === void 0 ? void 0 : options.clientState) || {});
14
- else
15
- router.history.push(path, (options === null || options === void 0 ? void 0 : options.clientState) || {});
16
- };
17
- }
18
- exports.useNavigate = useNavigate;
@@ -1,21 +0,0 @@
1
- import { ServerPropsContextValue, InternalServerPropsContextValue } from '../ServerPropsProvider/ServerPropsProvider';
2
- /**
3
- * The `useServerProps` hook allows you to manage the [server props](https://shopify.dev/custom-storefronts/hydrogen/framework/server-props) passed to your server components when using Hydrogen as a React Server Component framework. The server props get cleared when you navigate from one route to another.
4
- *
5
- * ## Return value
6
- *
7
- * The `useServerProps` hook returns an object with the following keys:
8
- *
9
- * | Key | Description |
10
- * | ---------------- | -------------------------------------------------------------------------------------- |
11
- * | `serverProps` | The current server props. |
12
- * | `setServerProps` | A function used to modify server props. |
13
- * | `pending` | Whether a [transition is pending](https://github.com/reactwg/react-18/discussions/41). |
14
- *
15
- */
16
- export declare function useServerProps(): ServerPropsContextValue;
17
- /**
18
- * Internal-only hook to manage server state, including to set location server state
19
- * @internal
20
- */
21
- export declare function useInternalServerProps(): InternalServerPropsContextValue;
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useInternalServerProps = exports.useServerProps = void 0;
4
- const react_1 = require("react");
5
- const ServerPropsProvider_1 = require("../ServerPropsProvider/ServerPropsProvider");
6
- /**
7
- * The `useServerProps` hook allows you to manage the [server props](https://shopify.dev/custom-storefronts/hydrogen/framework/server-props) passed to your server components when using Hydrogen as a React Server Component framework. The server props get cleared when you navigate from one route to another.
8
- *
9
- * ## Return value
10
- *
11
- * The `useServerProps` hook returns an object with the following keys:
12
- *
13
- * | Key | Description |
14
- * | ---------------- | -------------------------------------------------------------------------------------- |
15
- * | `serverProps` | The current server props. |
16
- * | `setServerProps` | A function used to modify server props. |
17
- * | `pending` | Whether a [transition is pending](https://github.com/reactwg/react-18/discussions/41). |
18
- *
19
- */
20
- function useServerProps() {
21
- const internalServerPropsContext = (0, react_1.useContext)(ServerPropsProvider_1.ServerPropsContext);
22
- if (!internalServerPropsContext) {
23
- return {};
24
- }
25
- return {
26
- serverProps: internalServerPropsContext.serverProps,
27
- setServerProps: internalServerPropsContext.setServerProps,
28
- pending: internalServerPropsContext.pending,
29
- };
30
- }
31
- exports.useServerProps = useServerProps;
32
- /**
33
- * Internal-only hook to manage server state, including to set location server state
34
- * @internal
35
- */
36
- function useInternalServerProps() {
37
- var _a;
38
- return ((_a = (0, react_1.useContext)(ServerPropsProvider_1.ServerPropsContext)) !== null && _a !== void 0 ? _a : {});
39
- }
40
- exports.useInternalServerProps = useInternalServerProps;
@@ -1,10 +0,0 @@
1
- import type { CachingStrategy, AllCacheOptions, NoStoreStrategy } from '../../types';
2
- export declare function generateCacheControlHeader(cacheOptions: CachingStrategy): string;
3
- export declare function NoStore(): NoStoreStrategy;
4
- export declare function CacheSeconds(overrideOptions?: CachingStrategy): AllCacheOptions;
5
- export declare function CacheMinutes(overrideOptions?: CachingStrategy): AllCacheOptions;
6
- export declare function CacheHours(overrideOptions?: CachingStrategy): AllCacheOptions;
7
- export declare function CacheDays(overrideOptions?: CachingStrategy): AllCacheOptions;
8
- export declare function CacheWeeks(overrideOptions?: CachingStrategy): AllCacheOptions;
9
- export declare function CacheMonths(overrideOptions?: CachingStrategy): AllCacheOptions;
10
- export declare function CacheCustom(overrideOptions: CachingStrategy): AllCacheOptions;
@@ -1,108 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CacheCustom = exports.CacheMonths = exports.CacheWeeks = exports.CacheDays = exports.CacheHours = exports.CacheMinutes = exports.CacheSeconds = exports.NoStore = exports.generateCacheControlHeader = void 0;
4
- const PUBLIC = 'public';
5
- const PRIVATE = 'private';
6
- const NO_STORE = 'no-store';
7
- const optionMapping = {
8
- maxAge: 'max-age',
9
- staleWhileRevalidate: 'stale-while-revalidate',
10
- sMaxAge: 's-maxage',
11
- staleIfError: 'stale-if-error',
12
- };
13
- function generateCacheControlHeader(cacheOptions) {
14
- const cacheControl = [];
15
- Object.keys(cacheOptions).forEach((key) => {
16
- if (key === 'mode') {
17
- cacheControl.push(cacheOptions[key]);
18
- }
19
- else if (optionMapping[key]) {
20
- cacheControl.push(`${optionMapping[key]}=${cacheOptions[key]}`);
21
- }
22
- });
23
- return cacheControl.join(', ');
24
- }
25
- exports.generateCacheControlHeader = generateCacheControlHeader;
26
- function NoStore() {
27
- return {
28
- mode: NO_STORE,
29
- };
30
- }
31
- exports.NoStore = NoStore;
32
- function guardExpirableModeType(overrideOptions) {
33
- if ((overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.mode) &&
34
- (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.mode) !== PUBLIC &&
35
- (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.mode) !== PRIVATE) {
36
- throw Error("'mode' must be either 'public' or 'private'");
37
- }
38
- }
39
- // 10 seconds
40
- function CacheSeconds(overrideOptions) {
41
- guardExpirableModeType(overrideOptions);
42
- return {
43
- mode: PUBLIC,
44
- maxAge: 1,
45
- staleWhileRevalidate: 9,
46
- ...overrideOptions,
47
- };
48
- }
49
- exports.CacheSeconds = CacheSeconds;
50
- // 30 minutes
51
- function CacheMinutes(overrideOptions) {
52
- guardExpirableModeType(overrideOptions);
53
- return {
54
- mode: PUBLIC,
55
- maxAge: 900,
56
- staleWhileRevalidate: 900,
57
- ...overrideOptions,
58
- };
59
- }
60
- exports.CacheMinutes = CacheMinutes;
61
- // 1 hour
62
- function CacheHours(overrideOptions) {
63
- guardExpirableModeType(overrideOptions);
64
- return {
65
- mode: PUBLIC,
66
- maxAge: 1800,
67
- staleWhileRevalidate: 1800,
68
- ...overrideOptions,
69
- };
70
- }
71
- exports.CacheHours = CacheHours;
72
- // 1 day
73
- function CacheDays(overrideOptions) {
74
- guardExpirableModeType(overrideOptions);
75
- return {
76
- mode: PUBLIC,
77
- maxAge: 3600,
78
- staleWhileRevalidate: 82800,
79
- ...overrideOptions,
80
- };
81
- }
82
- exports.CacheDays = CacheDays;
83
- // 2 weeks
84
- function CacheWeeks(overrideOptions) {
85
- guardExpirableModeType(overrideOptions);
86
- return {
87
- mode: PUBLIC,
88
- maxAge: 604800,
89
- staleWhileRevalidate: 604800,
90
- ...overrideOptions,
91
- };
92
- }
93
- exports.CacheWeeks = CacheWeeks;
94
- // 1 month
95
- function CacheMonths(overrideOptions) {
96
- guardExpirableModeType(overrideOptions);
97
- return {
98
- mode: PUBLIC,
99
- maxAge: 1296000,
100
- staleWhileRevalidate: 1296000,
101
- ...overrideOptions,
102
- };
103
- }
104
- exports.CacheMonths = CacheMonths;
105
- function CacheCustom(overrideOptions) {
106
- return overrideOptions;
107
- }
108
- exports.CacheCustom = CacheCustom;
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.applyHtmlHead = exports.Html = void 0;
7
- /// <reference types="vite/client" />
8
- const react_1 = __importDefault(require("react"));
9
- const HTML_ATTR_SEP_RE = /(?<!=)"\s+/gim;
10
- const getHtmlAttrs = (template) => { var _a; return ((_a = template.match(/<html\s+([^>]+?)\s*>/s)) === null || _a === void 0 ? void 0 : _a[1]) || ''; };
11
- const getBodyAttrs = (template) => { var _a; return ((_a = template.match(/<body\s+([^>]+?)\s*>/s)) === null || _a === void 0 ? void 0 : _a[1]) || ''; };
12
- const REACT_ATTR_MAP = Object.create(null);
13
- REACT_ATTR_MAP.class = 'className';
14
- REACT_ATTR_MAP.style = 'data-style'; // Ignore string styles, it breaks React
15
- function attrsToProps(attrs) {
16
- attrs = attrs === null || attrs === void 0 ? void 0 : attrs.trim();
17
- // Assume all attributes are surrounded by double quotes.
18
- return attrs
19
- ? Object.fromEntries(attrs.split(HTML_ATTR_SEP_RE).map((attr) => {
20
- const [key, value] = attr.replace(/"/g, '').split(/=(.+)/);
21
- return [REACT_ATTR_MAP[key.toLowerCase()] || key, value];
22
- }))
23
- : {};
24
- }
25
- function propsToAttrs(props) {
26
- return Object.entries(props)
27
- .map(([key, value]) => `${key === REACT_ATTR_MAP.class ? 'class' : key}="${value}"`)
28
- .join(' ');
29
- }
30
- function Html({ children, template, htmlAttrs, bodyAttrs }) {
31
- let head = template.match(/<head>(.+?)<\/head>/s)[1] || '';
32
- // @ts-ignore
33
- if (import.meta.env.DEV) {
34
- // Fix React Refresh for async scripts.
35
- // https://github.com/vitejs/vite/issues/6759
36
- head =
37
- '<script></script>' + // Fix for Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1737882
38
- head.replace(/>(\s*?import[\s\w]+?['"]\/@react-refresh)/, ' async="">$1');
39
- }
40
- return (react_1.default.createElement("html", { ...attrsToProps(getHtmlAttrs(template)), ...htmlAttrs },
41
- react_1.default.createElement("head", { dangerouslySetInnerHTML: { __html: head } }),
42
- react_1.default.createElement("body", { ...attrsToProps(getBodyAttrs(template)), ...bodyAttrs },
43
- react_1.default.createElement("div", { id: "root" }, children))));
44
- }
45
- exports.Html = Html;
46
- function applyHtmlHead(html, head, template) {
47
- const { bodyAttrs, htmlAttrs, ...headTags } = extractHeadElements(head, template);
48
- return html
49
- .replace(/<head>(.*?)<\/head>/s, generateHeadTag(headTags))
50
- .replace(/<html[^>]*?>/s, htmlAttrs ? `<html ${htmlAttrs}>` : '$&')
51
- .replace(/<body[^>]*?>/s, bodyAttrs ? `<body ${bodyAttrs}>` : '$&');
52
- }
53
- exports.applyHtmlHead = applyHtmlHead;
54
- function extractHeadElements({ context: { helmet } }, template) {
55
- // There might be existing attributes in the template that are
56
- // duplicated in the helmet. Transform them to props and back
57
- // to string attributes to remove duplicates.
58
- const htmlUniqueProps = attrsToProps(`${getHtmlAttrs(template)} ${helmet.htmlAttributes}`);
59
- const bodyUniqueProps = attrsToProps(`${getBodyAttrs(template)} ${helmet.bodyAttributes}`);
60
- return {
61
- htmlAttrs: propsToAttrs(htmlUniqueProps),
62
- bodyAttrs: propsToAttrs(bodyUniqueProps),
63
- base: helmet.base.toString(),
64
- link: helmet.link.toString(),
65
- meta: helmet.meta.toString(),
66
- noscript: helmet.noscript.toString(),
67
- script: helmet.script.toString(),
68
- style: helmet.style.toString(),
69
- title: helmet.title.toString(),
70
- };
71
- }
72
- /**
73
- * Generate the contents of the `head` tag, and update the existing `<title>` tag
74
- * if one exists, and if a title is passed.
75
- */
76
- function generateHeadTag({ title, ...rest }) {
77
- const headProps = ['base', 'meta', 'style', 'noscript', 'script', 'link'];
78
- const otherHeadProps = headProps
79
- .map((prop) => rest[prop])
80
- .filter(Boolean)
81
- .join('\n');
82
- return (_outerHtml, innerHtml) => {
83
- let headHtml = otherHeadProps + innerHtml;
84
- if (title) {
85
- if (headHtml.includes('<title>')) {
86
- headHtml = headHtml.replace(/(<title>(?:.|\n)*?<\/title>)/, title);
87
- }
88
- else {
89
- headHtml += title;
90
- }
91
- }
92
- return `<head>${headHtml}</head>`;
93
- };
94
- }