@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.
- package/CHANGELOG.md +1643 -0
- package/README.md +29 -0
- package/client.d.ts +1 -0
- package/client.js +1 -0
- package/config.d.ts +1 -0
- package/config.js +1 -0
- package/dist/esnext/FileSessionStorage.d.ts +1 -0
- package/dist/esnext/FileSessionStorage.js +1 -0
- package/dist/esnext/client.d.ts +16 -0
- package/dist/esnext/client.js +16 -0
- package/dist/esnext/components/AddToCartButton/AddToCartButton.client.d.ts +23 -0
- package/dist/esnext/components/AddToCartButton/AddToCartButton.client.js +47 -0
- package/dist/esnext/components/AddToCartButton/index.d.ts +1 -0
- package/dist/esnext/components/AddToCartButton/index.js +1 -0
- package/dist/esnext/components/BuyNowButton/BuyNowButton.client.d.ts +18 -0
- package/dist/esnext/components/BuyNowButton/BuyNowButton.client.js +26 -0
- package/dist/esnext/components/BuyNowButton/index.d.ts +1 -0
- package/dist/esnext/components/BuyNowButton/index.js +1 -0
- package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.d.ts +11 -0
- package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.js +17 -0
- package/dist/esnext/components/CartCheckoutButton/index.d.ts +1 -0
- package/dist/esnext/components/CartCheckoutButton/index.js +1 -0
- package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.d.ts +14 -0
- package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.js +29 -0
- package/dist/esnext/components/CartEstimatedCost/index.d.ts +1 -0
- package/dist/esnext/components/CartEstimatedCost/index.js +1 -0
- package/dist/esnext/components/CartLineImage/CartLineImage.client.d.ts +9 -0
- package/dist/esnext/components/CartLineImage/CartLineImage.client.js +11 -0
- package/dist/esnext/components/CartLineImage/index.d.ts +1 -0
- package/dist/esnext/components/CartLineImage/index.js +1 -0
- package/dist/esnext/components/CartLinePrice/CartLinePrice.client.d.ts +12 -0
- package/dist/esnext/components/CartLinePrice/CartLinePrice.client.js +21 -0
- package/dist/esnext/components/CartLinePrice/index.d.ts +1 -0
- package/dist/esnext/components/CartLinePrice/index.js +1 -0
- package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.d.ts +8 -0
- package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.js +12 -0
- package/dist/esnext/components/CartLineProductTitle/index.d.ts +1 -0
- package/dist/esnext/components/CartLineProductTitle/index.js +1 -0
- package/dist/esnext/components/CartLineProvider/CartLineProvider.client.d.ts +11 -0
- package/dist/esnext/components/CartLineProvider/CartLineProvider.client.js +8 -0
- package/dist/esnext/components/CartLineProvider/context.d.ts +26 -0
- package/dist/esnext/components/CartLineProvider/context.js +2 -0
- package/dist/esnext/components/CartLineProvider/index.d.ts +2 -0
- package/dist/esnext/components/CartLineProvider/index.js +2 -0
- package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.d.ts +8 -0
- package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.js +12 -0
- package/dist/esnext/components/CartLineQuantity/index.d.ts +1 -0
- package/dist/esnext/components/CartLineQuantity/index.js +1 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.d.ts +14 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.js +24 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/index.d.ts +1 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/index.js +1 -0
- package/dist/esnext/components/CartLines/CartLines.d.ts +15 -0
- package/dist/esnext/components/CartLines/CartLines.js +17 -0
- package/dist/esnext/components/CartLines/index.d.ts +1 -0
- package/dist/esnext/components/CartLines/index.js +1 -0
- package/dist/esnext/components/CartProvider/CartProvider.client.d.ts +41 -0
- package/dist/esnext/components/CartProvider/CartProvider.client.js +523 -0
- package/dist/esnext/components/CartProvider/cart-queries.d.ts +10 -0
- package/dist/esnext/components/CartProvider/cart-queries.js +191 -0
- package/dist/esnext/components/CartProvider/constants.d.ts +2 -0
- package/dist/esnext/components/CartProvider/constants.js +2 -0
- package/dist/esnext/components/CartProvider/context.d.ts +2 -0
- package/dist/esnext/components/CartProvider/context.js +2 -0
- package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +85 -0
- package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +72 -0
- package/dist/esnext/components/CartProvider/graphql/CartFragment.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +81 -0
- package/dist/esnext/components/CartProvider/graphql/CartQuery.js +1 -0
- package/dist/esnext/components/CartProvider/hooks.client.d.ts +15 -0
- package/dist/esnext/components/CartProvider/hooks.client.js +62 -0
- package/dist/esnext/components/CartProvider/index.d.ts +4 -0
- package/dist/esnext/components/CartProvider/index.js +3 -0
- package/dist/esnext/components/CartProvider/types.d.ts +102 -0
- package/dist/esnext/components/CartProvider/types.js +1 -0
- package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.d.ts +9 -0
- package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.js +19 -0
- package/dist/esnext/components/CartShopPayButton/index.d.ts +1 -0
- package/dist/esnext/components/CartShopPayButton/index.js +1 -0
- package/dist/esnext/components/DevTools.client.d.ts +1 -0
- package/dist/esnext/components/DevTools.client.js +129 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.d.ts +21 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.js +14 -0
- package/dist/esnext/components/ExternalVideo/index.d.ts +1 -0
- package/dist/esnext/components/ExternalVideo/index.js +1 -0
- package/dist/esnext/components/Image/Image.d.ts +84 -0
- package/dist/esnext/components/Image/Image.js +59 -0
- package/dist/esnext/components/Image/index.d.ts +2 -0
- package/dist/esnext/components/Image/index.js +1 -0
- package/dist/esnext/components/Link/Link.client.d.ts +23 -0
- package/dist/esnext/components/Link/Link.client.js +135 -0
- package/dist/esnext/components/Link/index.d.ts +1 -0
- package/dist/esnext/components/Link/index.js +1 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.d.ts +6 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.js +5 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.d.ts +6 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.js +2 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.d.ts +33 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +44 -0
- package/dist/esnext/components/LocalizationProvider/index.d.ts +2 -0
- package/dist/esnext/components/LocalizationProvider/index.js +2 -0
- package/dist/esnext/components/MediaFile/MediaFile.d.ts +19 -0
- package/dist/esnext/components/MediaFile/MediaFile.js +31 -0
- package/dist/esnext/components/MediaFile/index.d.ts +1 -0
- package/dist/esnext/components/MediaFile/index.js +1 -0
- package/dist/esnext/components/Metafield/Metafield.client.d.ts +21 -0
- package/dist/esnext/components/Metafield/Metafield.client.js +68 -0
- package/dist/esnext/components/Metafield/components/StarRating/StarRating.d.ts +12 -0
- package/dist/esnext/components/Metafield/components/StarRating/StarRating.js +48 -0
- package/dist/esnext/components/Metafield/components/StarRating/index.d.ts +1 -0
- package/dist/esnext/components/Metafield/components/StarRating/index.js +1 -0
- package/dist/esnext/components/Metafield/components/index.d.ts +1 -0
- package/dist/esnext/components/Metafield/components/index.js +1 -0
- package/dist/esnext/components/Metafield/index.d.ts +2 -0
- package/dist/esnext/components/Metafield/index.js +1 -0
- package/dist/esnext/components/Metafield/types.d.ts +4 -0
- package/dist/esnext/components/Metafield/types.js +1 -0
- package/dist/esnext/components/ModelViewer/ModelViewer.client.d.ts +128 -0
- package/dist/esnext/components/ModelViewer/ModelViewer.client.js +105 -0
- package/dist/esnext/components/ModelViewer/index.d.ts +1 -0
- package/dist/esnext/components/ModelViewer/index.js +1 -0
- package/dist/esnext/components/Money/Money.client.d.ts +25 -0
- package/dist/esnext/components/Money/Money.client.js +39 -0
- package/dist/esnext/components/Money/index.d.ts +1 -0
- package/dist/esnext/components/Money/index.js +1 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +15 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.js +56 -0
- package/dist/esnext/components/ProductPrice/index.d.ts +1 -0
- package/dist/esnext/components/ProductPrice/index.js +1 -0
- package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.d.ts +8 -0
- package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.js +12 -0
- package/dist/esnext/components/ProductProvider/ProductProvider.client.d.ts +24 -0
- package/dist/esnext/components/ProductProvider/ProductProvider.client.js +34 -0
- package/dist/esnext/components/ProductProvider/context.d.ts +29 -0
- package/dist/esnext/components/ProductProvider/context.js +3 -0
- package/dist/esnext/components/ProductProvider/index.d.ts +2 -0
- package/dist/esnext/components/ProductProvider/index.js +2 -0
- package/dist/esnext/components/Seo/CollectionSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/CollectionSeo.client.js +15 -0
- package/dist/esnext/components/Seo/DefaultPageSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/DefaultPageSeo.client.js +18 -0
- package/dist/esnext/components/Seo/DescriptionSeo.client.d.ts +4 -0
- package/dist/esnext/components/Seo/DescriptionSeo.client.js +10 -0
- package/dist/esnext/components/Seo/HomePageSeo.client.d.ts +2 -0
- package/dist/esnext/components/Seo/HomePageSeo.client.js +25 -0
- package/dist/esnext/components/Seo/ImageSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/ImageSeo.client.js +10 -0
- package/dist/esnext/components/Seo/NoIndexSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/NoIndexSeo.client.js +10 -0
- package/dist/esnext/components/Seo/PageSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/PageSeo.client.js +13 -0
- package/dist/esnext/components/Seo/ProductSeo.client.d.ts +5 -0
- package/dist/esnext/components/Seo/ProductSeo.client.js +63 -0
- package/dist/esnext/components/Seo/Seo.client.d.ts +30 -0
- package/dist/esnext/components/Seo/Seo.client.js +31 -0
- package/dist/esnext/components/Seo/TitleSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/TitleSeo.client.js +10 -0
- package/dist/esnext/components/Seo/TwitterSeo.client.d.ts +2 -0
- package/dist/esnext/components/Seo/TwitterSeo.client.js +9 -0
- package/dist/esnext/components/Seo/index.d.ts +1 -0
- package/dist/esnext/components/Seo/index.js +1 -0
- package/dist/esnext/components/Seo/seo-types.d.ts +17 -0
- package/dist/esnext/components/Seo/seo-types.js +1 -0
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.d.ts +38 -0
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +52 -0
- package/dist/esnext/components/ShopPayButton/index.d.ts +1 -0
- package/dist/esnext/components/ShopPayButton/index.js +1 -0
- package/dist/esnext/components/Video/Video.d.ts +14 -0
- package/dist/esnext/components/Video/Video.js +24 -0
- package/dist/esnext/components/Video/index.d.ts +1 -0
- package/dist/esnext/components/Video/index.js +1 -0
- package/dist/esnext/components/index.d.ts +28 -0
- package/dist/esnext/components/index.js +26 -0
- package/dist/esnext/components/types.d.ts +71 -0
- package/dist/esnext/components/types.js +10 -0
- package/dist/esnext/config.d.ts +3 -0
- package/dist/esnext/config.js +1 -0
- package/dist/esnext/constants.d.ts +7 -0
- package/dist/esnext/constants.js +7 -0
- package/dist/esnext/entry-client.d.ts +3 -0
- package/dist/esnext/entry-client.js +73 -0
- package/dist/esnext/entry-server.d.ts +35 -0
- package/dist/esnext/entry-server.js +529 -0
- package/dist/esnext/foundation/Analytics/Analytics.client.d.ts +3 -0
- package/dist/esnext/foundation/Analytics/Analytics.client.js +28 -0
- package/dist/esnext/foundation/Analytics/Analytics.server.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/Analytics.server.js +40 -0
- package/dist/esnext/foundation/Analytics/ClientAnalytics.d.ts +25 -0
- package/dist/esnext/foundation/Analytics/ClientAnalytics.js +97 -0
- package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +2 -0
- package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.js +33 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.client.d.ts +7 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.client.js +64 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.js +24 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetricsDebug.client.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetricsDebug.client.js +23 -0
- package/dist/esnext/foundation/Analytics/const.d.ts +9 -0
- package/dist/esnext/foundation/Analytics/const.js +9 -0
- package/dist/esnext/foundation/Analytics/hook.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/hook.js +7 -0
- package/dist/esnext/foundation/Analytics/index.d.ts +2 -0
- package/dist/esnext/foundation/Analytics/index.js +2 -0
- package/dist/esnext/foundation/Analytics/types.d.ts +5 -0
- package/dist/esnext/foundation/Analytics/types.js +1 -0
- package/dist/esnext/foundation/Analytics/utils.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/utils.js +8 -0
- package/dist/esnext/foundation/AnalyticsErrorBoundary.client.d.ts +4 -0
- package/dist/esnext/foundation/AnalyticsErrorBoundary.client.js +8 -0
- package/dist/esnext/foundation/Cookie/Cookie.d.ts +48 -0
- package/dist/esnext/foundation/Cookie/Cookie.js +67 -0
- package/dist/esnext/foundation/CookieSessionStorage/CookieSessionStorage.d.ts +5 -0
- package/dist/esnext/foundation/CookieSessionStorage/CookieSessionStorage.js +31 -0
- package/dist/esnext/foundation/FileRoutes/FileRoutes.server.d.ts +22 -0
- package/dist/esnext/foundation/FileRoutes/FileRoutes.server.js +74 -0
- package/dist/esnext/foundation/FileSessionStorage/FileSessionStorage.d.ts +6 -0
- package/dist/esnext/foundation/FileSessionStorage/FileSessionStorage.js +149 -0
- package/dist/esnext/foundation/Head/Head.client.d.ts +5 -0
- package/dist/esnext/foundation/Head/Head.client.js +10 -0
- package/dist/esnext/foundation/Head/index.d.ts +1 -0
- package/dist/esnext/foundation/Head/index.js +1 -0
- package/dist/esnext/foundation/MemorySessionStorage/MemorySessionStorage.d.ts +5 -0
- package/dist/esnext/foundation/MemorySessionStorage/MemorySessionStorage.js +53 -0
- package/dist/esnext/foundation/Redirect/Redirect.client.d.ts +5 -0
- package/dist/esnext/foundation/Redirect/Redirect.client.js +15 -0
- package/dist/esnext/foundation/Route/Route.server.d.ts +12 -0
- package/dist/esnext/foundation/Route/Route.server.js +28 -0
- package/dist/esnext/foundation/Router/BrowserRouter.client.d.ts +13 -0
- package/dist/esnext/foundation/Router/BrowserRouter.client.js +130 -0
- package/dist/esnext/foundation/Router/Router.server.d.ts +10 -0
- package/dist/esnext/foundation/Router/Router.server.js +8 -0
- package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +40 -0
- package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.js +67 -0
- package/dist/esnext/foundation/ServerPropsProvider/index.d.ts +2 -0
- package/dist/esnext/foundation/ServerPropsProvider/index.js +1 -0
- package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
- package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.js +128 -0
- package/dist/esnext/foundation/ServerRequestProvider/index.d.ts +1 -0
- package/dist/esnext/foundation/ServerRequestProvider/index.js +1 -0
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.d.ts +30 -0
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.js +59 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.client.d.ts +7 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.client.js +8 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.d.ts +16 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.js +58 -0
- package/dist/esnext/foundation/ShopifyProvider/index.d.ts +1 -0
- package/dist/esnext/foundation/ShopifyProvider/index.js +1 -0
- package/dist/esnext/foundation/ShopifyProvider/types.d.ts +13 -0
- package/dist/esnext/foundation/ShopifyProvider/types.js +1 -0
- package/dist/esnext/foundation/constants.d.ts +1 -0
- package/dist/esnext/foundation/constants.js +3 -0
- package/dist/esnext/foundation/fetchSync/client/fetchSync.d.ts +10 -0
- package/dist/esnext/foundation/fetchSync/client/fetchSync.js +28 -0
- package/dist/esnext/foundation/fetchSync/server/fetchSync.d.ts +8 -0
- package/dist/esnext/foundation/fetchSync/server/fetchSync.js +29 -0
- package/dist/esnext/foundation/fetchSync/types.d.ts +5 -0
- package/dist/esnext/foundation/fetchSync/types.js +1 -0
- package/dist/esnext/foundation/index.d.ts +3 -0
- package/dist/esnext/foundation/index.js +3 -0
- package/dist/esnext/foundation/session/session.d.ts +27 -0
- package/dist/esnext/foundation/session/session.js +37 -0
- package/dist/esnext/foundation/ssr-interop.d.ts +29 -0
- package/dist/esnext/foundation/ssr-interop.js +35 -0
- package/dist/esnext/foundation/useNavigate/useNavigate.d.ts +13 -0
- package/dist/esnext/foundation/useNavigate/useNavigate.js +14 -0
- package/dist/esnext/foundation/useQuery/hooks.d.ts +36 -0
- package/dist/esnext/foundation/useQuery/hooks.js +97 -0
- package/dist/esnext/foundation/useQuery/index.d.ts +1 -0
- package/dist/esnext/foundation/useQuery/index.js +1 -0
- package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.d.ts +9 -0
- package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.js +7 -0
- package/dist/esnext/foundation/useRouteParams/useRouteParams.d.ts +4 -0
- package/dist/esnext/foundation/useRouteParams/useRouteParams.js +9 -0
- package/dist/esnext/foundation/useServerProps/index.d.ts +1 -0
- package/dist/esnext/foundation/useServerProps/index.js +1 -0
- package/dist/esnext/foundation/useServerProps/use-server-props.d.ts +21 -0
- package/dist/esnext/foundation/useServerProps/use-server-props.js +35 -0
- package/dist/esnext/foundation/useSession/useSession.d.ts +2 -0
- package/dist/esnext/foundation/useSession/useSession.js +8 -0
- package/dist/esnext/foundation/useShop/index.d.ts +1 -0
- package/dist/esnext/foundation/useShop/index.js +1 -0
- package/dist/esnext/foundation/useShop/use-shop.d.ts +6 -0
- package/dist/esnext/foundation/useShop/use-shop.js +14 -0
- package/dist/esnext/foundation/useUrl/index.d.ts +1 -0
- package/dist/esnext/foundation/useUrl/index.js +1 -0
- package/dist/esnext/foundation/useUrl/useUrl.d.ts +4 -0
- package/dist/esnext/foundation/useUrl/useUrl.js +28 -0
- package/dist/esnext/framework/CachingStrategy/index.d.ts +10 -0
- package/dist/esnext/framework/CachingStrategy/index.js +96 -0
- package/dist/esnext/framework/Hydration/Html.d.ts +11 -0
- package/dist/esnext/framework/Hydration/Html.js +86 -0
- package/dist/esnext/framework/Hydration/ServerComponentRequest.server.d.ts +58 -0
- package/dist/esnext/framework/Hydration/ServerComponentRequest.server.js +146 -0
- package/dist/esnext/framework/Hydration/ServerComponentResponse.server.d.ts +26 -0
- package/dist/esnext/framework/Hydration/ServerComponentResponse.server.js +42 -0
- package/dist/esnext/framework/Hydration/rsc.d.ts +8 -0
- package/dist/esnext/framework/Hydration/rsc.js +100 -0
- package/dist/esnext/framework/cache/in-memory.d.ts +12 -0
- package/dist/esnext/framework/cache/in-memory.js +52 -0
- package/dist/esnext/framework/cache-sub-request.d.ts +17 -0
- package/dist/esnext/framework/cache-sub-request.js +64 -0
- package/dist/esnext/framework/cache.d.ts +17 -0
- package/dist/esnext/framework/cache.js +127 -0
- package/dist/esnext/framework/config.d.ts +6 -0
- package/dist/esnext/framework/config.js +6 -0
- package/dist/esnext/framework/graphiql.d.ts +1 -0
- package/dist/esnext/framework/graphiql.js +38 -0
- package/dist/esnext/framework/middleware.d.ts +21 -0
- package/dist/esnext/framework/middleware.js +98 -0
- package/dist/esnext/framework/plugin.d.ts +4 -0
- package/dist/esnext/framework/plugin.js +28 -0
- package/dist/esnext/framework/plugins/vite-plugin-client-imports.d.ts +2 -0
- package/dist/esnext/framework/plugins/vite-plugin-client-imports.js +25 -0
- package/dist/esnext/framework/plugins/vite-plugin-css-modules-rsc.d.ts +2 -0
- package/dist/esnext/framework/plugins/vite-plugin-css-modules-rsc.js +98 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydration-auto-import.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydration-auto-import.js +35 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-client-middleware.d.ts +9 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-client-middleware.js +37 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +96 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +110 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-rsc.d.ts +1 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-rsc.js +35 -0
- package/dist/esnext/framework/plugins/vite-plugin-platform-entry.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-platform-entry.js +70 -0
- package/dist/esnext/framework/plugins/vite-plugin-purge-query-cache.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-purge-query-cache.js +11 -0
- package/dist/esnext/framework/plugins/vite-plugin-ssr-interop.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-ssr-interop.js +16 -0
- package/dist/esnext/framework/runtime.d.ts +13 -0
- package/dist/esnext/framework/runtime.js +27 -0
- package/dist/esnext/hooks/index.d.ts +6 -0
- package/dist/esnext/hooks/index.js +6 -0
- package/dist/esnext/hooks/useCart/index.d.ts +1 -0
- package/dist/esnext/hooks/useCart/index.js +1 -0
- package/dist/esnext/hooks/useCart/useCart.d.ts +4 -0
- package/dist/esnext/hooks/useCart/useCart.js +12 -0
- package/dist/esnext/hooks/useCartLine/index.d.ts +1 -0
- package/dist/esnext/hooks/useCartLine/index.js +1 -0
- package/dist/esnext/hooks/useCartLine/useCartLine.d.ts +29 -0
- package/dist/esnext/hooks/useCartLine/useCartLine.js +12 -0
- package/dist/esnext/hooks/useCountry/index.d.ts +1 -0
- package/dist/esnext/hooks/useCountry/index.js +1 -0
- package/dist/esnext/hooks/useCountry/useCountry.d.ts +7 -0
- package/dist/esnext/hooks/useCountry/useCountry.js +17 -0
- package/dist/esnext/hooks/useLoadScript/index.d.ts +1 -0
- package/dist/esnext/hooks/useLoadScript/index.js +1 -0
- package/dist/esnext/hooks/useLoadScript/useLoadScript.client.d.ts +8 -0
- package/dist/esnext/hooks/useLoadScript/useLoadScript.client.js +23 -0
- package/dist/esnext/hooks/useMeasurement/hooks.d.ts +9 -0
- package/dist/esnext/hooks/useMeasurement/hooks.js +13 -0
- package/dist/esnext/hooks/useMeasurement/index.d.ts +1 -0
- package/dist/esnext/hooks/useMeasurement/index.js +1 -0
- package/dist/esnext/hooks/useMoney/hooks.d.ts +54 -0
- package/dist/esnext/hooks/useMoney/hooks.js +66 -0
- package/dist/esnext/hooks/useMoney/index.d.ts +1 -0
- package/dist/esnext/hooks/useMoney/index.js +1 -0
- package/dist/esnext/hooks/useParsedMetafields/index.d.ts +1 -0
- package/dist/esnext/hooks/useParsedMetafields/index.js +1 -0
- package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.d.ts +21 -0
- package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.js +21 -0
- package/dist/esnext/hooks/useProduct/index.d.ts +1 -0
- package/dist/esnext/hooks/useProduct/index.js +1 -0
- package/dist/esnext/hooks/useProduct/useProduct.d.ts +52 -0
- package/dist/esnext/hooks/useProduct/useProduct.js +43 -0
- package/dist/esnext/hooks/useProductOptions/helpers.d.ts +6 -0
- package/dist/esnext/hooks/useProductOptions/helpers.js +40 -0
- package/dist/esnext/hooks/useProductOptions/index.d.ts +2 -0
- package/dist/esnext/hooks/useProductOptions/index.js +2 -0
- package/dist/esnext/hooks/useProductOptions/types.d.ts +42 -0
- package/dist/esnext/hooks/useProductOptions/types.js +1 -0
- package/dist/esnext/hooks/useProductOptions/useProductOptions.client.d.ts +15 -0
- package/dist/esnext/hooks/useProductOptions/useProductOptions.client.js +108 -0
- package/dist/esnext/hooks/useShopQuery/hooks.d.ts +28 -0
- package/dist/esnext/hooks/useShopQuery/hooks.js +161 -0
- package/dist/esnext/hooks/useShopQuery/index.d.ts +1 -0
- package/dist/esnext/hooks/useShopQuery/index.js +1 -0
- package/dist/esnext/index.d.ts +27 -0
- package/dist/esnext/index.js +31 -0
- package/dist/esnext/node.d.ts +1 -0
- package/dist/esnext/node.js +1 -0
- package/dist/esnext/platforms/node.d.ts +9 -0
- package/dist/esnext/platforms/node.js +40 -0
- package/dist/esnext/platforms/worker-event.d.ts +1 -0
- package/dist/esnext/platforms/worker-event.js +3 -0
- package/dist/esnext/platforms/worker.d.ts +14 -0
- package/dist/esnext/platforms/worker.js +25 -0
- package/dist/esnext/storefront-api-types.d.ts +6405 -0
- package/dist/esnext/storefront-api-types.js +1763 -0
- package/dist/esnext/streaming.server.d.ts +24 -0
- package/dist/esnext/streaming.server.js +33 -0
- package/dist/esnext/types.d.ts +98 -0
- package/dist/esnext/types.js +1 -0
- package/dist/esnext/utilities/apiRoutes.d.ts +37 -0
- package/dist/esnext/utilities/apiRoutes.js +156 -0
- package/dist/esnext/utilities/bot-ua.d.ts +4 -0
- package/dist/esnext/utilities/bot-ua.js +61 -0
- package/dist/esnext/utilities/defer.d.ts +6 -0
- package/dist/esnext/utilities/defer.js +14 -0
- package/dist/esnext/utilities/devtools.d.ts +11 -0
- package/dist/esnext/utilities/devtools.js +11 -0
- package/dist/esnext/utilities/empty-hydrogen-config.d.ts +2 -0
- package/dist/esnext/utilities/empty-hydrogen-config.js +2 -0
- package/dist/esnext/utilities/error.d.ts +1 -0
- package/dist/esnext/utilities/error.js +6 -0
- package/dist/esnext/utilities/fetch.d.ts +9 -0
- package/dist/esnext/utilities/fetch.js +31 -0
- package/dist/esnext/utilities/findRoutePrefix.d.ts +1 -0
- package/dist/esnext/utilities/findRoutePrefix.js +17 -0
- package/dist/esnext/utilities/flattenConnection/flattenConnection.d.ts +6 -0
- package/dist/esnext/utilities/flattenConnection/flattenConnection.js +11 -0
- package/dist/esnext/utilities/flattenConnection/index.d.ts +1 -0
- package/dist/esnext/utilities/flattenConnection/index.js +1 -0
- package/dist/esnext/utilities/graphql-tag.d.ts +1 -0
- package/dist/esnext/utilities/graphql-tag.js +6 -0
- package/dist/esnext/utilities/graphql-tracker.d.ts +17 -0
- package/dist/esnext/utilities/graphql-tracker.js +123 -0
- package/dist/esnext/utilities/hash.d.ts +2 -0
- package/dist/esnext/utilities/hash.js +7 -0
- package/dist/esnext/utilities/html-encoding.d.ts +2 -0
- package/dist/esnext/utilities/html-encoding.js +16 -0
- package/dist/esnext/utilities/image_size.d.ts +12 -0
- package/dist/esnext/utilities/image_size.js +62 -0
- package/dist/esnext/utilities/index.d.ts +12 -0
- package/dist/esnext/utilities/index.js +12 -0
- package/dist/esnext/utilities/isClient/index.d.ts +1 -0
- package/dist/esnext/utilities/isClient/index.js +1 -0
- package/dist/esnext/utilities/isClient/isClient.d.ts +4 -0
- package/dist/esnext/utilities/isClient/isClient.js +6 -0
- package/dist/esnext/utilities/isServer/index.d.ts +1 -0
- package/dist/esnext/utilities/isServer/index.js +1 -0
- package/dist/esnext/utilities/isServer/isServer.d.ts +4 -0
- package/dist/esnext/utilities/isServer/isServer.js +7 -0
- package/dist/esnext/utilities/load_script.d.ts +3 -0
- package/dist/esnext/utilities/load_script.js +23 -0
- package/dist/esnext/utilities/log/index.d.ts +4 -0
- package/dist/esnext/utilities/log/index.js +4 -0
- package/dist/esnext/utilities/log/log-cache-api-status.d.ts +1 -0
- package/dist/esnext/utilities/log/log-cache-api-status.js +13 -0
- package/dist/esnext/utilities/log/log-cache-header.d.ts +10 -0
- package/dist/esnext/utilities/log/log-cache-header.js +30 -0
- package/dist/esnext/utilities/log/log-query-timeline.d.ts +12 -0
- package/dist/esnext/utilities/log/log-query-timeline.js +83 -0
- package/dist/esnext/utilities/log/log.d.ts +22 -0
- package/dist/esnext/utilities/log/log.js +66 -0
- package/dist/esnext/utilities/log/utils.d.ts +3 -0
- package/dist/esnext/utilities/log/utils.js +16 -0
- package/dist/esnext/utilities/matchPath.d.ts +10 -0
- package/dist/esnext/utilities/matchPath.js +54 -0
- package/dist/esnext/utilities/measurement.d.ts +3 -0
- package/dist/esnext/utilities/measurement.js +98 -0
- package/dist/esnext/utilities/object.d.ts +5 -0
- package/dist/esnext/utilities/object.js +7 -0
- package/dist/esnext/utilities/parse.d.ts +1 -0
- package/dist/esnext/utilities/parse.js +9 -0
- package/dist/esnext/utilities/parseMetafieldValue/index.d.ts +1 -0
- package/dist/esnext/utilities/parseMetafieldValue/index.js +1 -0
- package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +6 -0
- package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.js +36 -0
- package/dist/esnext/utilities/storefrontApi.d.ts +4 -0
- package/dist/esnext/utilities/storefrontApi.js +22 -0
- package/dist/esnext/utilities/suspense.d.ts +12 -0
- package/dist/esnext/utilities/suspense.js +58 -0
- package/dist/esnext/utilities/template.d.ts +9 -0
- package/dist/esnext/utilities/template.js +23 -0
- package/dist/esnext/utilities/timing.d.ts +7 -0
- package/dist/esnext/utilities/timing.js +14 -0
- package/dist/esnext/utilities/video_parameters.d.ts +47 -0
- package/dist/esnext/utilities/video_parameters.js +22 -0
- package/dist/esnext/utilities/web-api-polyfill.d.ts +1 -0
- package/dist/esnext/utilities/web-api-polyfill.js +19 -0
- package/dist/esnext/version.d.ts +1 -0
- package/dist/esnext/version.js +1 -0
- package/dist/node/components/Image/Image.d.ts +84 -0
- package/dist/node/components/Image/Image.js +86 -0
- package/dist/node/components/Image/index.d.ts +2 -0
- package/dist/node/components/Image/index.js +5 -0
- package/dist/node/constants.d.ts +7 -0
- package/dist/node/constants.js +10 -0
- package/dist/node/entry-server.d.ts +35 -0
- package/dist/node/entry-server.js +556 -0
- package/dist/node/foundation/Analytics/Analytics.client.d.ts +3 -0
- package/dist/node/foundation/Analytics/Analytics.client.js +32 -0
- package/dist/node/foundation/Analytics/Analytics.server.d.ts +1 -0
- package/dist/node/foundation/Analytics/Analytics.server.js +70 -0
- package/dist/node/foundation/Analytics/ClientAnalytics.d.ts +25 -0
- package/dist/node/foundation/Analytics/ClientAnalytics.js +100 -0
- package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +2 -0
- package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.js +37 -0
- package/dist/node/foundation/Analytics/const.d.ts +9 -0
- package/dist/node/foundation/Analytics/const.js +12 -0
- package/dist/node/foundation/Analytics/hook.d.ts +1 -0
- package/dist/node/foundation/Analytics/hook.js +11 -0
- package/dist/node/foundation/Analytics/index.d.ts +2 -0
- package/dist/node/foundation/Analytics/index.js +7 -0
- package/dist/node/foundation/Analytics/types.d.ts +5 -0
- package/dist/node/foundation/Analytics/types.js +2 -0
- package/dist/node/foundation/Analytics/utils.d.ts +1 -0
- package/dist/node/foundation/Analytics/utils.js +12 -0
- package/dist/node/foundation/AnalyticsErrorBoundary.client.d.ts +4 -0
- package/dist/node/foundation/AnalyticsErrorBoundary.client.js +14 -0
- package/dist/node/foundation/Redirect/Redirect.client.d.ts +5 -0
- package/dist/node/foundation/Redirect/Redirect.client.js +18 -0
- package/dist/node/foundation/Router/BrowserRouter.client.d.ts +13 -0
- package/dist/node/foundation/Router/BrowserRouter.client.js +159 -0
- package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +40 -0
- package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.js +92 -0
- package/dist/node/foundation/ServerPropsProvider/index.d.ts +2 -0
- package/dist/node/foundation/ServerPropsProvider/index.js +6 -0
- package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
- package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.js +158 -0
- package/dist/node/foundation/ServerRequestProvider/index.d.ts +1 -0
- package/dist/node/foundation/ServerRequestProvider/index.js +17 -0
- package/dist/node/foundation/ShopifyProvider/types.d.ts +13 -0
- package/dist/node/foundation/ShopifyProvider/types.js +2 -0
- package/dist/node/foundation/session/session.d.ts +27 -0
- package/dist/node/foundation/session/session.js +43 -0
- package/dist/node/foundation/ssr-interop.d.ts +29 -0
- package/dist/node/foundation/ssr-interop.js +39 -0
- package/dist/node/foundation/useNavigate/useNavigate.d.ts +13 -0
- package/dist/node/foundation/useNavigate/useNavigate.js +18 -0
- package/dist/node/foundation/useServerProps/use-server-props.d.ts +21 -0
- package/dist/node/foundation/useServerProps/use-server-props.js +40 -0
- package/dist/node/framework/CachingStrategy/index.d.ts +10 -0
- package/dist/node/framework/CachingStrategy/index.js +108 -0
- package/dist/node/framework/Hydration/Html.d.ts +11 -0
- package/dist/node/framework/Hydration/Html.js +94 -0
- package/dist/node/framework/Hydration/ServerComponentRequest.server.d.ts +58 -0
- package/dist/node/framework/Hydration/ServerComponentRequest.server.js +150 -0
- package/dist/node/framework/Hydration/ServerComponentResponse.server.d.ts +26 -0
- package/dist/node/framework/Hydration/ServerComponentResponse.server.js +49 -0
- package/dist/node/framework/Hydration/rsc.d.ts +8 -0
- package/dist/node/framework/Hydration/rsc.js +103 -0
- package/dist/node/framework/cache/in-memory.d.ts +12 -0
- package/dist/node/framework/cache/in-memory.js +56 -0
- package/dist/node/framework/cache-sub-request.d.ts +17 -0
- package/dist/node/framework/cache-sub-request.js +95 -0
- package/dist/node/framework/cache.d.ts +17 -0
- package/dist/node/framework/cache.js +135 -0
- package/dist/node/framework/config.d.ts +6 -0
- package/dist/node/framework/config.js +11 -0
- package/dist/node/framework/graphiql.d.ts +1 -0
- package/dist/node/framework/graphiql.js +42 -0
- package/dist/node/framework/middleware.d.ts +21 -0
- package/dist/node/framework/middleware.js +125 -0
- package/dist/node/framework/plugin.d.ts +4 -0
- package/dist/node/framework/plugin.js +33 -0
- package/dist/node/framework/plugins/vite-plugin-client-imports.d.ts +2 -0
- package/dist/node/framework/plugins/vite-plugin-client-imports.js +28 -0
- package/dist/node/framework/plugins/vite-plugin-css-modules-rsc.d.ts +2 -0
- package/dist/node/framework/plugins/vite-plugin-css-modules-rsc.js +104 -0
- package/dist/node/framework/plugins/vite-plugin-hydration-auto-import.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-hydration-auto-import.js +40 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-client-middleware.d.ts +9 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-client-middleware.js +39 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +98 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +116 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-rsc.d.ts +1 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-rsc.js +41 -0
- package/dist/node/framework/plugins/vite-plugin-platform-entry.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-platform-entry.js +75 -0
- package/dist/node/framework/plugins/vite-plugin-purge-query-cache.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-purge-query-cache.js +16 -0
- package/dist/node/framework/plugins/vite-plugin-ssr-interop.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-ssr-interop.js +18 -0
- package/dist/node/framework/runtime.d.ts +13 -0
- package/dist/node/framework/runtime.js +35 -0
- package/dist/node/storefront-api-types.d.ts +6405 -0
- package/dist/node/storefront-api-types.js +1766 -0
- package/dist/node/streaming.server.d.ts +24 -0
- package/dist/node/streaming.server.js +33 -0
- package/dist/node/types.d.ts +98 -0
- package/dist/node/types.js +2 -0
- package/dist/node/utilities/apiRoutes.d.ts +37 -0
- package/dist/node/utilities/apiRoutes.js +163 -0
- package/dist/node/utilities/bot-ua.d.ts +4 -0
- package/dist/node/utilities/bot-ua.js +65 -0
- package/dist/node/utilities/defer.d.ts +6 -0
- package/dist/node/utilities/defer.js +18 -0
- package/dist/node/utilities/error.d.ts +1 -0
- package/dist/node/utilities/error.js +10 -0
- package/dist/node/utilities/fetch.d.ts +9 -0
- package/dist/node/utilities/fetch.js +37 -0
- package/dist/node/utilities/findRoutePrefix.d.ts +1 -0
- package/dist/node/utilities/findRoutePrefix.js +21 -0
- package/dist/node/utilities/flattenConnection/flattenConnection.d.ts +6 -0
- package/dist/node/utilities/flattenConnection/flattenConnection.js +15 -0
- package/dist/node/utilities/flattenConnection/index.d.ts +1 -0
- package/dist/node/utilities/flattenConnection/index.js +5 -0
- package/dist/node/utilities/hash.d.ts +2 -0
- package/dist/node/utilities/hash.js +11 -0
- package/dist/node/utilities/html-encoding.d.ts +2 -0
- package/dist/node/utilities/html-encoding.js +21 -0
- package/dist/node/utilities/image_size.d.ts +12 -0
- package/dist/node/utilities/image_size.js +68 -0
- package/dist/node/utilities/index.d.ts +12 -0
- package/dist/node/utilities/index.js +34 -0
- package/dist/node/utilities/isClient/index.d.ts +1 -0
- package/dist/node/utilities/isClient/index.js +5 -0
- package/dist/node/utilities/isClient/isClient.d.ts +4 -0
- package/dist/node/utilities/isClient/isClient.js +10 -0
- package/dist/node/utilities/isServer/index.d.ts +1 -0
- package/dist/node/utilities/isServer/index.js +5 -0
- package/dist/node/utilities/isServer/isServer.d.ts +4 -0
- package/dist/node/utilities/isServer/isServer.js +11 -0
- package/dist/node/utilities/load_script.d.ts +3 -0
- package/dist/node/utilities/load_script.js +27 -0
- package/dist/node/utilities/log/index.d.ts +4 -0
- package/dist/node/utilities/log/index.js +18 -0
- package/dist/node/utilities/log/log-cache-api-status.d.ts +1 -0
- package/dist/node/utilities/log/log-cache-api-status.js +17 -0
- package/dist/node/utilities/log/log-cache-header.d.ts +10 -0
- package/dist/node/utilities/log/log-cache-header.js +35 -0
- package/dist/node/utilities/log/log-query-timeline.d.ts +12 -0
- package/dist/node/utilities/log/log-query-timeline.js +88 -0
- package/dist/node/utilities/log/log.d.ts +22 -0
- package/dist/node/utilities/log/log.js +74 -0
- package/dist/node/utilities/log/utils.d.ts +3 -0
- package/dist/node/utilities/log/utils.js +21 -0
- package/dist/node/utilities/matchPath.d.ts +10 -0
- package/dist/node/utilities/matchPath.js +58 -0
- package/dist/node/utilities/measurement.d.ts +3 -0
- package/dist/node/utilities/measurement.js +103 -0
- package/dist/node/utilities/parse.d.ts +1 -0
- package/dist/node/utilities/parse.js +13 -0
- package/dist/node/utilities/parseMetafieldValue/index.d.ts +1 -0
- package/dist/node/utilities/parseMetafieldValue/index.js +5 -0
- package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +6 -0
- package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.js +40 -0
- package/dist/node/utilities/storefrontApi.d.ts +4 -0
- package/dist/node/utilities/storefrontApi.js +26 -0
- package/dist/node/utilities/suspense.d.ts +12 -0
- package/dist/node/utilities/suspense.js +64 -0
- package/dist/node/utilities/template.d.ts +9 -0
- package/dist/node/utilities/template.js +27 -0
- package/dist/node/utilities/timing.d.ts +7 -0
- package/dist/node/utilities/timing.js +18 -0
- package/dist/node/utilities/video_parameters.d.ts +47 -0
- package/dist/node/utilities/video_parameters.js +27 -0
- package/dist/node/utilities/web-api-polyfill.d.ts +1 -0
- package/dist/node/utilities/web-api-polyfill.js +47 -0
- package/dist/node/version.d.ts +1 -0
- package/dist/node/version.js +4 -0
- package/entry-client.d.ts +1 -0
- package/entry-client.js +1 -0
- package/entry-server.d.ts +1 -0
- package/entry-server.js +1 -0
- package/middleware.d.ts +1 -0
- package/middleware.js +1 -0
- package/package.json +125 -0
- package/plugin.d.ts +1 -0
- package/plugin.js +1 -0
- package/vendor/react-server-dom-vite/LICENSE +21 -0
- package/vendor/react-server-dom-vite/README.md +5 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-plugin.js +356 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.development.server.js +1753 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.production.min.server.js +46 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.development.server.js +1716 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.production.min.server.js +44 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.development.js +613 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.production.min.js +19 -0
- package/vendor/react-server-dom-vite/esm/package.json +3 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js +88 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-plugin.js +352 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.browser.server.js +1745 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.node.server.js +1708 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite.js +603 -0
- package/vendor/react-server-dom-vite/index.js +7 -0
- package/vendor/react-server-dom-vite/package.json +67 -0
- package/vendor/react-server-dom-vite/plugin.js +3 -0
- package/vendor/react-server-dom-vite/writer.browser.server.js +7 -0
- package/vendor/react-server-dom-vite/writer.node.server.js +7 -0
- package/web-polyfills.js +1 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import React, { createContext, useContext } from 'react';
|
|
2
|
+
import { getTime } from '../../utilities/timing';
|
|
3
|
+
import { hashKey } from '../../utilities/hash';
|
|
4
|
+
import { collectQueryTimings } from '../../utilities/log';
|
|
5
|
+
// Context to inject current request in SSR
|
|
6
|
+
const RequestContextSSR = createContext(null);
|
|
7
|
+
// Cache to inject current request in RSC
|
|
8
|
+
function requestCacheRSC() {
|
|
9
|
+
return new Map();
|
|
10
|
+
}
|
|
11
|
+
requestCacheRSC.key = Symbol.for('HYDROGEN_REQUEST');
|
|
12
|
+
// Note: use this only during RSC/Flight rendering. The React dispatcher
|
|
13
|
+
// for SSR/Fizz rendering does not implement getCacheForType.
|
|
14
|
+
function getCacheForType(resource) {
|
|
15
|
+
var _a;
|
|
16
|
+
const dispatcher =
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
|
|
19
|
+
.ReactCurrentDispatcher.current;
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
if (__DEV__ && typeof jest !== 'undefined' && !dispatcher.getCacheForType) {
|
|
22
|
+
// Jest does not have access to the RSC runtime, mock it here:
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
return ((_a = globalThis.__jestRscCache) !== null && _a !== void 0 ? _a : (globalThis.__jestRscCache = resource()));
|
|
25
|
+
}
|
|
26
|
+
return dispatcher.getCacheForType(resource);
|
|
27
|
+
}
|
|
28
|
+
export function ServerRequestProvider({ isRSC, request, children, }) {
|
|
29
|
+
if (isRSC) {
|
|
30
|
+
// Save the request object in a React cache that is
|
|
31
|
+
// scoped to this current rendering.
|
|
32
|
+
const requestCache = getCacheForType(requestCacheRSC);
|
|
33
|
+
requestCache.set(requestCacheRSC.key, request);
|
|
34
|
+
return children;
|
|
35
|
+
}
|
|
36
|
+
// Use a normal provider in SSR to make the request object
|
|
37
|
+
// available in the current rendering.
|
|
38
|
+
return (React.createElement(RequestContextSSR.Provider, { value: request }, children));
|
|
39
|
+
}
|
|
40
|
+
export function useServerRequest() {
|
|
41
|
+
let request;
|
|
42
|
+
try {
|
|
43
|
+
// This cache only works during RSC rendering:
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
const cache = getCacheForType(requestCacheRSC);
|
|
46
|
+
request = cache ? cache.get(requestCacheRSC.key) : null;
|
|
47
|
+
}
|
|
48
|
+
catch (_a) {
|
|
49
|
+
// If RSC cache failed it means this is not an RSC request.
|
|
50
|
+
// Try getting SSR context instead:
|
|
51
|
+
request = useContext(RequestContextSSR); // eslint-disable-line react-hooks/rules-of-hooks
|
|
52
|
+
}
|
|
53
|
+
if (!request) {
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
if (__DEV__ && typeof jest !== 'undefined') {
|
|
56
|
+
// Unit tests are not wrapped in ServerRequestProvider.
|
|
57
|
+
// This mocks it, instead of providing it in every test.
|
|
58
|
+
return { ctx: {} };
|
|
59
|
+
}
|
|
60
|
+
throw new Error('No ServerRequest Context found');
|
|
61
|
+
}
|
|
62
|
+
return request;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Returns data stored in the request cache.
|
|
66
|
+
* It will throw the promise if data is not ready.
|
|
67
|
+
*/
|
|
68
|
+
export function useRequestCacheData(key, fetcher) {
|
|
69
|
+
const request = useServerRequest();
|
|
70
|
+
const cache = request.ctx.cache;
|
|
71
|
+
const cacheKey = hashKey(key);
|
|
72
|
+
if (!cache.has(cacheKey)) {
|
|
73
|
+
let result;
|
|
74
|
+
let promise;
|
|
75
|
+
cache.set(cacheKey, () => {
|
|
76
|
+
if (result !== undefined) {
|
|
77
|
+
collectQueryTimings(request, key, 'rendered');
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
if (!promise) {
|
|
81
|
+
const startApiTime = getTime();
|
|
82
|
+
const maybePromise = fetcher();
|
|
83
|
+
if (!(maybePromise instanceof Promise)) {
|
|
84
|
+
result = { data: maybePromise };
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
promise = maybePromise.then((data) => {
|
|
88
|
+
result = { data };
|
|
89
|
+
collectQueryTimings(request, key, 'resolved', getTime() - startApiTime);
|
|
90
|
+
}, (error) => (result = { error }));
|
|
91
|
+
}
|
|
92
|
+
throw promise;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
// Making sure the promise has returned data because it can be initated by a preload request,
|
|
96
|
+
// otherwise, we throw the promise
|
|
97
|
+
const result = cache.get(cacheKey).call();
|
|
98
|
+
if (result instanceof Promise)
|
|
99
|
+
throw result;
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
export function preloadRequestCacheData(request, preloadQueries) {
|
|
103
|
+
const cache = request.ctx.cache;
|
|
104
|
+
preloadQueries === null || preloadQueries === void 0 ? void 0 : preloadQueries.forEach((preloadQuery, cacheKey) => {
|
|
105
|
+
collectQueryTimings(request, preloadQuery.key, 'preload');
|
|
106
|
+
if (!cache.has(cacheKey)) {
|
|
107
|
+
let result;
|
|
108
|
+
let promise;
|
|
109
|
+
cache.set(cacheKey, () => {
|
|
110
|
+
if (result !== undefined) {
|
|
111
|
+
collectQueryTimings(request, preloadQuery.key, 'rendered');
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
if (!promise) {
|
|
115
|
+
const startApiTime = getTime();
|
|
116
|
+
promise = preloadQuery.fetcher().then((data) => {
|
|
117
|
+
result = { data };
|
|
118
|
+
collectQueryTimings(request, preloadQuery.key, 'resolved', getTime() - startApiTime);
|
|
119
|
+
}, (error) => {
|
|
120
|
+
result = { error };
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return promise;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
cache.get(cacheKey).call();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ServerRequestProvider';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ServerRequestProvider';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
declare global {
|
|
3
|
+
var __DEV__: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface ServerState {
|
|
6
|
+
pathname: string;
|
|
7
|
+
search: string;
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
declare type ServerStateSetterInput = ((prev: ServerState) => Partial<ServerState>) | Partial<ServerState> | string;
|
|
11
|
+
export interface ServerStateSetter {
|
|
12
|
+
(input: ServerStateSetterInput, propValue?: any): void;
|
|
13
|
+
}
|
|
14
|
+
interface ProposedServerStateSetter {
|
|
15
|
+
(input: ServerStateSetterInput, propValue?: any): ServerState;
|
|
16
|
+
}
|
|
17
|
+
export interface ServerStateContextValue {
|
|
18
|
+
pending: boolean;
|
|
19
|
+
serverState: ServerState;
|
|
20
|
+
setServerState: ServerStateSetter;
|
|
21
|
+
getProposedServerState: ProposedServerStateSetter;
|
|
22
|
+
}
|
|
23
|
+
export declare const ServerStateContext: React.Context<ServerStateContextValue>;
|
|
24
|
+
interface ServerStateProviderProps {
|
|
25
|
+
serverState: ServerState;
|
|
26
|
+
setServerState: React.Dispatch<React.SetStateAction<ServerState>>;
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
}
|
|
29
|
+
export declare function ServerStateProvider({ serverState, setServerState, children, }: ServerStateProviderProps): JSX.Element;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { createContext, useMemo, useCallback,
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
useTransition, } from 'react';
|
|
4
|
+
const PRIVATE_PROPS = ['request', 'response'];
|
|
5
|
+
export const ServerStateContext = createContext(null);
|
|
6
|
+
export function ServerStateProvider({ serverState, setServerState, children, }) {
|
|
7
|
+
const [pending, startTransition] = useTransition();
|
|
8
|
+
const setServerStateCallback = useCallback((input, propValue) => {
|
|
9
|
+
/**
|
|
10
|
+
* By wrapping this state change in a transition, React renders the new state
|
|
11
|
+
* concurrently in a new "tree" instead of Suspending and showing the (blank)
|
|
12
|
+
* fallback. This is preferred behavior, though we may want to revisit how
|
|
13
|
+
* we make this decision globally for the developer - and consider providing
|
|
14
|
+
* the `pending` flag also provided by the hook to display in the UI.
|
|
15
|
+
*/
|
|
16
|
+
startTransition(() => {
|
|
17
|
+
return setServerState((prev) => getNewServerState(prev, input, propValue));
|
|
18
|
+
});
|
|
19
|
+
}, [setServerState, startTransition]);
|
|
20
|
+
const getProposedServerStateCallback = useCallback((input, propValue) => {
|
|
21
|
+
return getNewServerState(serverState, input, propValue);
|
|
22
|
+
}, [serverState]);
|
|
23
|
+
function getNewServerState(prev, input, propValue) {
|
|
24
|
+
let newValue;
|
|
25
|
+
if (typeof input === 'function') {
|
|
26
|
+
newValue = input(prev);
|
|
27
|
+
}
|
|
28
|
+
else if (typeof input === 'string') {
|
|
29
|
+
newValue = { [input]: propValue };
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
newValue = input;
|
|
33
|
+
}
|
|
34
|
+
if (!newValue)
|
|
35
|
+
return { ...prev };
|
|
36
|
+
if (__DEV__) {
|
|
37
|
+
const privateProp = PRIVATE_PROPS.find((prop) => prop in newValue);
|
|
38
|
+
if (privateProp) {
|
|
39
|
+
console.warn(`Custom "${privateProp}" property in server state is ignored. Use a different name.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
...prev,
|
|
44
|
+
...newValue,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const value = useMemo(() => ({
|
|
48
|
+
pending,
|
|
49
|
+
serverState,
|
|
50
|
+
setServerState: setServerStateCallback,
|
|
51
|
+
getProposedServerState: getProposedServerStateCallback,
|
|
52
|
+
}), [
|
|
53
|
+
serverState,
|
|
54
|
+
getProposedServerStateCallback,
|
|
55
|
+
setServerStateCallback,
|
|
56
|
+
pending,
|
|
57
|
+
]);
|
|
58
|
+
return (React.createElement(ServerStateContext.Provider, { value: value }, children));
|
|
59
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ShopifyContextValue } from './types';
|
|
2
|
+
import React, { ReactNode } from 'react';
|
|
3
|
+
export declare const ShopifyContext: React.Context<ShopifyContextValue | null>;
|
|
4
|
+
export declare function ShopifyProviderClient({ children, shopifyConfig, }: {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
shopifyConfig: ShopifyContextValue;
|
|
7
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React, { createContext } from 'react';
|
|
2
|
+
export const ShopifyContext = createContext(null);
|
|
3
|
+
export function ShopifyProviderClient({ children, shopifyConfig, }) {
|
|
4
|
+
if (!shopifyConfig) {
|
|
5
|
+
throw new Error('The `shopifyConfig` prop should be passed to `ShopifyProvider`');
|
|
6
|
+
}
|
|
7
|
+
return (React.createElement(ShopifyContext.Provider, { value: shopifyConfig }, children));
|
|
8
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ShopifyProviderProps } from './types';
|
|
2
|
+
export declare const SHOPIFY_PROVIDER_CONTEXT_KEY: unique symbol;
|
|
3
|
+
/**
|
|
4
|
+
* The `ShopifyProvider` component wraps your entire app and provides support for hooks.
|
|
5
|
+
* You should place it in your app's entry point component. For example, `<App>`.
|
|
6
|
+
* If you're using the Hydrogen framework, you don't need to add this provider
|
|
7
|
+
* because it's automatically wrapped around your app in `renderHydrogen()`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function ShopifyProvider({
|
|
10
|
+
/**
|
|
11
|
+
* Shopify connection information. Defaults to
|
|
12
|
+
* [the `shopify` property in the `hydrogen.config.js` file](https://shopify.dev/custom-storefronts/hydrogen/framework/hydrogen-config).
|
|
13
|
+
*/
|
|
14
|
+
shopifyConfig,
|
|
15
|
+
/** Any `ReactNode` elements. */
|
|
16
|
+
children, }: ShopifyProviderProps): JSX.Element;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { ShopifyProviderClient } from './ShopifyProvider.client';
|
|
3
|
+
import { DEFAULT_LOCALE } from '../constants';
|
|
4
|
+
import { useRequestCacheData, useServerRequest } from '../ServerRequestProvider';
|
|
5
|
+
function makeShopifyContext(shopifyConfig) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const locale = (_a = shopifyConfig.defaultLocale) !== null && _a !== void 0 ? _a : DEFAULT_LOCALE;
|
|
8
|
+
const languageCode = locale.split(/[-_]/)[0];
|
|
9
|
+
return {
|
|
10
|
+
locale: locale.toUpperCase(),
|
|
11
|
+
languageCode: languageCode.toUpperCase(),
|
|
12
|
+
storeDomain: (_b = shopifyConfig === null || shopifyConfig === void 0 ? void 0 : shopifyConfig.storeDomain) === null || _b === void 0 ? void 0 : _b.replace(/^https?:\/\//, ''),
|
|
13
|
+
storefrontToken: shopifyConfig.storefrontToken,
|
|
14
|
+
storefrontApiVersion: shopifyConfig.storefrontApiVersion,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export const SHOPIFY_PROVIDER_CONTEXT_KEY = Symbol.for('SHOPIFY_PROVIDER_RSC');
|
|
18
|
+
/**
|
|
19
|
+
* The `ShopifyProvider` component wraps your entire app and provides support for hooks.
|
|
20
|
+
* You should place it in your app's entry point component. For example, `<App>`.
|
|
21
|
+
* If you're using the Hydrogen framework, you don't need to add this provider
|
|
22
|
+
* because it's automatically wrapped around your app in `renderHydrogen()`.
|
|
23
|
+
*/
|
|
24
|
+
export function ShopifyProvider({
|
|
25
|
+
/**
|
|
26
|
+
* Shopify connection information. Defaults to
|
|
27
|
+
* [the `shopify` property in the `hydrogen.config.js` file](https://shopify.dev/custom-storefronts/hydrogen/framework/hydrogen-config).
|
|
28
|
+
*/
|
|
29
|
+
shopifyConfig,
|
|
30
|
+
/** Any `ReactNode` elements. */
|
|
31
|
+
children, }) {
|
|
32
|
+
var _a;
|
|
33
|
+
const request = useServerRequest();
|
|
34
|
+
if (!shopifyConfig) {
|
|
35
|
+
shopifyConfig = (_a = request.ctx.hydrogenConfig) === null || _a === void 0 ? void 0 : _a.shopify;
|
|
36
|
+
if (!shopifyConfig) {
|
|
37
|
+
throw new Error('The `shopifyConfig` prop should be passed to `ShopifyProvider`');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
let actualShopifyConfig;
|
|
41
|
+
if (typeof shopifyConfig === 'function') {
|
|
42
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
43
|
+
const result = useRequestCacheData(['hydrogen-shopify-config'], () => shopifyConfig(request));
|
|
44
|
+
if (result.error) {
|
|
45
|
+
if (result.error instanceof Error) {
|
|
46
|
+
throw result.error;
|
|
47
|
+
}
|
|
48
|
+
throw new Error(`Failed to load Shopify config: ${result.error.statusText}`);
|
|
49
|
+
}
|
|
50
|
+
actualShopifyConfig = result.data;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
actualShopifyConfig = shopifyConfig;
|
|
54
|
+
}
|
|
55
|
+
const shopifyProviderValue = useMemo(() => makeShopifyContext(actualShopifyConfig), [actualShopifyConfig]);
|
|
56
|
+
request.ctx.shopifyConfig = shopifyProviderValue;
|
|
57
|
+
return (React.createElement(ShopifyProviderClient, { shopifyConfig: shopifyProviderValue }, children));
|
|
58
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ShopifyContext } from './ShopifyProvider.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ShopifyContext } from './ShopifyProvider.client';
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const DEFAULT_LOCALE = "EN-US";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FetchResponse } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Fetch a URL for use in a client component Suspense boundary.
|
|
4
|
+
*/
|
|
5
|
+
export declare function fetchSync(url: string, options?: RequestInit): FetchResponse;
|
|
6
|
+
/**
|
|
7
|
+
* Preload a URL for use in a client component Suspense boundary.
|
|
8
|
+
* Useful for placing higher in the tree to avoid waterfalls.
|
|
9
|
+
*/
|
|
10
|
+
export declare function preload(url: string, options?: RequestInit): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { parseJSON } from '../../../utilities/parse';
|
|
2
|
+
import { suspendFunction, preloadFunction } from '../../../utilities/suspense';
|
|
3
|
+
/**
|
|
4
|
+
* Fetch a URL for use in a client component Suspense boundary.
|
|
5
|
+
*/
|
|
6
|
+
export function fetchSync(url, options) {
|
|
7
|
+
const [text, response] = suspendFunction([url, options], async () => {
|
|
8
|
+
const response = await globalThis.fetch(url, options);
|
|
9
|
+
const text = await response.text();
|
|
10
|
+
return [text, response];
|
|
11
|
+
});
|
|
12
|
+
return {
|
|
13
|
+
response,
|
|
14
|
+
json: () => parseJSON(text),
|
|
15
|
+
text: () => text,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Preload a URL for use in a client component Suspense boundary.
|
|
20
|
+
* Useful for placing higher in the tree to avoid waterfalls.
|
|
21
|
+
*/
|
|
22
|
+
export function preload(url, options) {
|
|
23
|
+
preloadFunction([url, options], async () => {
|
|
24
|
+
const response = await globalThis.fetch(url, options);
|
|
25
|
+
const text = await response.text();
|
|
26
|
+
return [text, response];
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type HydrogenUseQueryOptions } from '../../useQuery/hooks';
|
|
2
|
+
import type { FetchResponse } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* The `fetchSync` hook makes API requests and is the recommended way to make simple fetch calls on the server and the client.
|
|
5
|
+
* It's designed similar to the [Web API's `fetch`](https://developer.mozilla.org/en-US/docs/Web/API/fetch), only in a way
|
|
6
|
+
* that supports [Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html).
|
|
7
|
+
*/
|
|
8
|
+
export declare function fetchSync(url: string, options?: Omit<RequestInit, 'cache'> & HydrogenUseQueryOptions): FetchResponse;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { parseJSON } from '../../../utilities/parse';
|
|
2
|
+
import { useQuery } from '../../useQuery/hooks';
|
|
3
|
+
/**
|
|
4
|
+
* The `fetchSync` hook makes API requests and is the recommended way to make simple fetch calls on the server and the client.
|
|
5
|
+
* It's designed similar to the [Web API's `fetch`](https://developer.mozilla.org/en-US/docs/Web/API/fetch), only in a way
|
|
6
|
+
* that supports [Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html).
|
|
7
|
+
*/
|
|
8
|
+
export function fetchSync(url, options) {
|
|
9
|
+
const { cache, preload, shouldCacheResponse, ...requestInit } = options !== null && options !== void 0 ? options : {};
|
|
10
|
+
const { data: useQueryResponse, error } = useQuery(// eslint-disable-line react-hooks/rules-of-hooks
|
|
11
|
+
[url, requestInit], async () => {
|
|
12
|
+
const response = await globalThis.fetch(url, requestInit);
|
|
13
|
+
const text = await response.text();
|
|
14
|
+
return [text, response];
|
|
15
|
+
}, {
|
|
16
|
+
cache,
|
|
17
|
+
preload,
|
|
18
|
+
shouldCacheResponse,
|
|
19
|
+
});
|
|
20
|
+
if (error) {
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
const [data, response] = useQueryResponse;
|
|
24
|
+
return {
|
|
25
|
+
response,
|
|
26
|
+
json: () => parseJSON(data),
|
|
27
|
+
text: () => data,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { wrapPromise } from '../../utilities/suspense';
|
|
2
|
+
export function getSyncSessionApi(request, componentResponse, log, session) {
|
|
3
|
+
const sessionPromises = {};
|
|
4
|
+
return session
|
|
5
|
+
? {
|
|
6
|
+
get() {
|
|
7
|
+
if (!sessionPromises.getPromise) {
|
|
8
|
+
sessionPromises.getPromise = wrapPromise(session.get(request));
|
|
9
|
+
}
|
|
10
|
+
return sessionPromises.getPromise.read();
|
|
11
|
+
},
|
|
12
|
+
}
|
|
13
|
+
: emptySyncSessionImplementation(log);
|
|
14
|
+
}
|
|
15
|
+
export const emptySessionImplementation = function (log) {
|
|
16
|
+
return {
|
|
17
|
+
async get() {
|
|
18
|
+
log.warn('No session adapter has been configured!');
|
|
19
|
+
return {};
|
|
20
|
+
},
|
|
21
|
+
async set(key, value) {
|
|
22
|
+
log.warn('No session adapter has been configured!');
|
|
23
|
+
},
|
|
24
|
+
async destroy() {
|
|
25
|
+
log.warn('No session adapter has been configured!');
|
|
26
|
+
return;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export const emptySyncSessionImplementation = function (log) {
|
|
31
|
+
return {
|
|
32
|
+
get() {
|
|
33
|
+
log.warn('No session adapter has been configured!');
|
|
34
|
+
return {};
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
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 {};
|
|
@@ -0,0 +1,35 @@
|
|
|
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 { useContext } from 'react';
|
|
8
|
+
//@SSR import {useServerRequest} from './ServerRequestProvider';
|
|
9
|
+
// This is replaced by Vite to import.meta.env.SSR
|
|
10
|
+
export const META_ENV_SSR = false;
|
|
11
|
+
const reactContextType = Symbol.for('react.context');
|
|
12
|
+
/**
|
|
13
|
+
* Isomorphic hook to access context data. It gives access to the current request
|
|
14
|
+
* when running on the server, and returns the provided client fallback in the browser.
|
|
15
|
+
* This can be used in server components (RSC) as a Context/Provider replacement. In client
|
|
16
|
+
* components, it uses the server getter in SSR and the client fallback in the browser.
|
|
17
|
+
* @param serverGetter - A function that gets the current server request and returns any
|
|
18
|
+
* desired request property. It only runs in the server (both in RSC and SSR).
|
|
19
|
+
* @param clientFallback - An optional raw value or a React.Context to be consumed that will be
|
|
20
|
+
* returned if the current environment is not the server. Note that, if this is a React.Context,
|
|
21
|
+
* there must be a React.Provider parent in the app tree.
|
|
22
|
+
* @returns A value retrieved from the current server request or a fallback value in the client.
|
|
23
|
+
* The returned type depends on what the server getter returns.
|
|
24
|
+
* @example
|
|
25
|
+
* ```js
|
|
26
|
+
* import {MyClientContext} from './my-client-react-context-provider';
|
|
27
|
+
* useEnvContext(req => req.ctx.myServerContext, MyClientContext)
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export function useEnvContext(serverGetter, clientFallback) {
|
|
31
|
+
//@SSR if (META_ENV_SSR) return serverGetter(useServerRequest());
|
|
32
|
+
return clientFallback && clientFallback.$$typeof === reactContextType
|
|
33
|
+
? useContext(clientFallback) // eslint-disable-line react-hooks/rules-of-hooks
|
|
34
|
+
: clientFallback;
|
|
35
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
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 {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useRouter } from '../Router/BrowserRouter.client';
|
|
2
|
+
/**
|
|
3
|
+
* The useNavigate hook imperatively navigates between routes.
|
|
4
|
+
*/
|
|
5
|
+
export function useNavigate() {
|
|
6
|
+
const router = useRouter();
|
|
7
|
+
return (path, options = { replace: false, reloadDocument: false }) => {
|
|
8
|
+
// @todo wait for RSC and then change focus for a11y?
|
|
9
|
+
if (options === null || options === void 0 ? void 0 : options.replace)
|
|
10
|
+
router.history.replace(path, (options === null || options === void 0 ? void 0 : options.clientState) || {});
|
|
11
|
+
else
|
|
12
|
+
router.history.push(path, (options === null || options === void 0 ? void 0 : options.clientState) || {});
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { CachingStrategy, PreloadOptions, QueryKey } from '../../types';
|
|
2
|
+
export interface HydrogenUseQueryOptions {
|
|
3
|
+
/** The [caching strategy](https://shopify.dev/custom-storefronts/hydrogen/framework/cache#caching-strategies) to help you
|
|
4
|
+
* determine which cache control header to set.
|
|
5
|
+
*/
|
|
6
|
+
cache?: CachingStrategy;
|
|
7
|
+
/** Whether to [preload the query](https://shopify.dev/custom-storefronts/hydrogen/framework/preloaded-queries).
|
|
8
|
+
* Defaults to `false`. Specify `true` to preload the query for the URL or `'*'`
|
|
9
|
+
* to preload the query for all requests.
|
|
10
|
+
*/
|
|
11
|
+
preload?: PreloadOptions;
|
|
12
|
+
/** A function that inspects the response body to determine if it should be cached.
|
|
13
|
+
*/
|
|
14
|
+
shouldCacheResponse?: (body: any) => boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The `useQuery` hook executes an asynchronous operation like `fetch` in a way that
|
|
18
|
+
* supports [Suspense](https://reactjs.org/docs/concurrent-mode-suspense.html). You can use this
|
|
19
|
+
* hook to call any third-party APIs from a server component.
|
|
20
|
+
*
|
|
21
|
+
* \> Note:
|
|
22
|
+
* \> If you're making a simple fetch call on the server, then we recommend using the [`fetchSync`](https://shopify.dev/api/hydrogen/hooks/global/fetchsync) hook instead.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useQuery<T>(
|
|
25
|
+
/** A string or array to uniquely identify the current query. */
|
|
26
|
+
key: QueryKey,
|
|
27
|
+
/** An asynchronous query function like `fetch` which returns data. */
|
|
28
|
+
queryFn: () => Promise<T>,
|
|
29
|
+
/** The options to manage the cache behavior of the sub-request. */
|
|
30
|
+
queryOptions?: HydrogenUseQueryOptions): {
|
|
31
|
+
data?: undefined;
|
|
32
|
+
error: Error | Response;
|
|
33
|
+
} | {
|
|
34
|
+
data: T;
|
|
35
|
+
error?: undefined;
|
|
36
|
+
};
|