@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,21 @@
|
|
|
1
|
+
import type { IncomingMessage, NextFunction } from 'connect';
|
|
2
|
+
import type { ServerResponse } from 'http';
|
|
3
|
+
import type { ViteDevServer } from 'vite';
|
|
4
|
+
import type { ShopifyConfig } from '../types';
|
|
5
|
+
declare type HydrogenMiddlewareArgs = {
|
|
6
|
+
dev?: boolean;
|
|
7
|
+
indexTemplate: string | ((url: string) => Promise<string>);
|
|
8
|
+
getServerEntrypoint: () => any;
|
|
9
|
+
devServer?: ViteDevServer;
|
|
10
|
+
cache?: Cache;
|
|
11
|
+
};
|
|
12
|
+
export declare function graphiqlMiddleware({ getShopifyConfig, dev, }: {
|
|
13
|
+
getShopifyConfig: (request: IncomingMessage) => ShopifyConfig | Promise<ShopifyConfig>;
|
|
14
|
+
dev?: boolean;
|
|
15
|
+
}): (request: IncomingMessage, response: ServerResponse, next: NextFunction) => Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Provides middleware to Node.js Express-like servers. Used by the Hydrogen
|
|
18
|
+
* Vite dev server plugin as well as production Node.js implementation.
|
|
19
|
+
*/
|
|
20
|
+
export declare function hydrogenMiddleware({ dev, cache, indexTemplate, getServerEntrypoint, devServer, }: HydrogenMiddlewareArgs): (request: IncomingMessage, response: ServerResponse, next: NextFunction) => Promise<void>;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { graphiqlHtml } from './graphiql';
|
|
2
|
+
export function graphiqlMiddleware({ getShopifyConfig, dev, }) {
|
|
3
|
+
return async function (request, response, next) {
|
|
4
|
+
if (dev && isGraphiqlRequest(request)) {
|
|
5
|
+
const shopifyConfig = await getShopifyConfig(request);
|
|
6
|
+
return respondWithGraphiql(response, shopifyConfig);
|
|
7
|
+
}
|
|
8
|
+
next();
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
let entrypointError = null;
|
|
12
|
+
/**
|
|
13
|
+
* Provides middleware to Node.js Express-like servers. Used by the Hydrogen
|
|
14
|
+
* Vite dev server plugin as well as production Node.js implementation.
|
|
15
|
+
*/
|
|
16
|
+
export function hydrogenMiddleware({ dev, cache, indexTemplate, getServerEntrypoint, devServer, }) {
|
|
17
|
+
if (dev && devServer) {
|
|
18
|
+
// Store this globally for devtools
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
globalThis.__viteDevServer = devServer;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* We're running in the Node.js runtime without access to `fetch`,
|
|
24
|
+
* which is needed for proxy requests and server-side API requests.
|
|
25
|
+
*/
|
|
26
|
+
const webPolyfills = !globalThis.fetch || !globalThis.ReadableStream
|
|
27
|
+
? import('../utilities/web-api-polyfill')
|
|
28
|
+
: undefined;
|
|
29
|
+
return async function (request, response, next) {
|
|
30
|
+
var _a, _b, _c;
|
|
31
|
+
try {
|
|
32
|
+
await webPolyfills;
|
|
33
|
+
const entrypoint = await Promise.resolve(getServerEntrypoint()).catch((error) => {
|
|
34
|
+
// Errors are only thrown the first time we try to load the entry point.
|
|
35
|
+
// After refreshing the browser, this just loads an empty module
|
|
36
|
+
// and doesn't throw anymore. Store this error in the outer scope
|
|
37
|
+
// to keep throwing it on refresh until things are fixed.
|
|
38
|
+
entrypointError = error;
|
|
39
|
+
});
|
|
40
|
+
const handleRequest = (_a = entrypoint === null || entrypoint === void 0 ? void 0 : entrypoint.default) !== null && _a !== void 0 ? _a : entrypoint;
|
|
41
|
+
if (typeof handleRequest !== 'function') {
|
|
42
|
+
if (entrypointError) {
|
|
43
|
+
throw entrypointError;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// This means there is no error when loading the entry point but
|
|
47
|
+
// we are still not getting a function as the default export.
|
|
48
|
+
throw new Error('Something is wrong in your project. Make sure to add "export default renderHydrogen(...)" in your server entry file.');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
entrypointError = null;
|
|
52
|
+
await handleRequest(request, {
|
|
53
|
+
dev,
|
|
54
|
+
cache,
|
|
55
|
+
indexTemplate,
|
|
56
|
+
streamableResponse: response,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
if (dev && devServer)
|
|
61
|
+
devServer.ssrFixStacktrace(e);
|
|
62
|
+
response.statusCode = 500;
|
|
63
|
+
/**
|
|
64
|
+
* Attempt to print the error stack within the template.
|
|
65
|
+
* This allows the react-refresh plugin and other Vite runtime helpers
|
|
66
|
+
* to display the error and auto-refresh when the error is fixed, instead
|
|
67
|
+
* of a white screen that needs a manual refresh.
|
|
68
|
+
*/
|
|
69
|
+
try {
|
|
70
|
+
const template = typeof indexTemplate === 'function'
|
|
71
|
+
? await indexTemplate((_c = (_b = request.originalUrl) !== null && _b !== void 0 ? _b : request.url) !== null && _c !== void 0 ? _c : '')
|
|
72
|
+
: indexTemplate;
|
|
73
|
+
const html = template.replace(`<div id="root"></div>`, `<div id="root"><pre><code>${e.stack}</code></pre></div>`);
|
|
74
|
+
response.write(html);
|
|
75
|
+
next(e);
|
|
76
|
+
}
|
|
77
|
+
catch (_e) {
|
|
78
|
+
// If template loading is the culprit, give up and just return the error stack.
|
|
79
|
+
response.write(e.stack);
|
|
80
|
+
next(e);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* /graphiql and /___graphql are supported
|
|
87
|
+
*/
|
|
88
|
+
function isGraphiqlRequest(request) {
|
|
89
|
+
return /^\/(?:_{3})?graphi?ql/.test(request.url || '');
|
|
90
|
+
}
|
|
91
|
+
async function respondWithGraphiql(response, shopifyConfig) {
|
|
92
|
+
if (!shopifyConfig) {
|
|
93
|
+
throw new Error("You must provide a 'shopify' property in your Hydrogen config file");
|
|
94
|
+
}
|
|
95
|
+
const { storeDomain, storefrontToken, storefrontApiVersion } = shopifyConfig;
|
|
96
|
+
response.setHeader('Content-Type', 'text/html');
|
|
97
|
+
response.end(graphiqlHtml(storeDomain === null || storeDomain === void 0 ? void 0 : storeDomain.replace(/^https?:\/\//, ''), storefrontToken, storefrontApiVersion));
|
|
98
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import hydrogenConfig from './plugins/vite-plugin-hydrogen-config';
|
|
2
|
+
import hydrogenMiddleware from './plugins/vite-plugin-hydrogen-middleware';
|
|
3
|
+
import hydrogenClientMiddleware from './plugins/vite-plugin-hydrogen-client-middleware';
|
|
4
|
+
import platformEntry from './plugins/vite-plugin-platform-entry';
|
|
5
|
+
import rsc from './plugins/vite-plugin-hydrogen-rsc';
|
|
6
|
+
import ssrInterop from './plugins/vite-plugin-ssr-interop';
|
|
7
|
+
import purgeQueryCache from './plugins/vite-plugin-purge-query-cache';
|
|
8
|
+
import hydrationAutoImport from './plugins/vite-plugin-hydration-auto-import';
|
|
9
|
+
import inspect from 'vite-plugin-inspect';
|
|
10
|
+
import react from '@vitejs/plugin-react';
|
|
11
|
+
import cssModulesRsc from './plugins/vite-plugin-css-modules-rsc';
|
|
12
|
+
import clientImports from './plugins/vite-plugin-client-imports';
|
|
13
|
+
export default (pluginOptions = {}) => {
|
|
14
|
+
return [
|
|
15
|
+
process.env.VITE_INSPECT && inspect(),
|
|
16
|
+
hydrogenConfig(),
|
|
17
|
+
hydrogenClientMiddleware(),
|
|
18
|
+
clientImports(),
|
|
19
|
+
hydrogenMiddleware(pluginOptions),
|
|
20
|
+
react(),
|
|
21
|
+
hydrationAutoImport(),
|
|
22
|
+
ssrInterop(),
|
|
23
|
+
cssModulesRsc(),
|
|
24
|
+
rsc(),
|
|
25
|
+
platformEntry(),
|
|
26
|
+
pluginOptions.purgeQueryCacheOnBuild && purgeQueryCache(),
|
|
27
|
+
];
|
|
28
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export default function clientImports() {
|
|
2
|
+
return {
|
|
3
|
+
name: 'hydrogen:client-imports',
|
|
4
|
+
enforce: 'pre',
|
|
5
|
+
/**
|
|
6
|
+
* When importer does not end in `server.jsx`, and source is `@shopify/hydrogen`,
|
|
7
|
+
* replace with `@shopify/hydrogen/client`. This prevents other server-only imports
|
|
8
|
+
* from "leaking" into the client bundle.
|
|
9
|
+
*/
|
|
10
|
+
async resolveId(source, importer, { ssr }) {
|
|
11
|
+
if (ssr)
|
|
12
|
+
return;
|
|
13
|
+
if (/\.server\.(j|t)sx?/.test(importer !== null && importer !== void 0 ? importer : ''))
|
|
14
|
+
return;
|
|
15
|
+
if ('@shopify/hydrogen' !== source)
|
|
16
|
+
return;
|
|
17
|
+
const resolution = await this.resolve('@shopify/hydrogen/client', importer, {
|
|
18
|
+
skipSelf: true,
|
|
19
|
+
});
|
|
20
|
+
if (resolution) {
|
|
21
|
+
return resolution.id;
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { HYDROGEN_DEFAULT_SERVER_ENTRY } from './vite-plugin-hydrogen-middleware';
|
|
2
|
+
import MagicString from 'magic-string';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
const cssModuleRE = /\.module\.(s?css|sass|less|stylus)/;
|
|
5
|
+
export default function cssModulesRsc() {
|
|
6
|
+
// 1. Original CSS module: `.myStyle { color: red; }`
|
|
7
|
+
// 2. CSS module after 'pre' Vite transforms: `.myStyle_hashedXYZ { color: red; }`
|
|
8
|
+
// 3. CSS module after 'post' Vite transforms: `export const myStyle = 'myStyle_hashedXYZ';`
|
|
9
|
+
let cssMap = new Map();
|
|
10
|
+
let config;
|
|
11
|
+
return [
|
|
12
|
+
{
|
|
13
|
+
name: 'css-modules-rsc',
|
|
14
|
+
configResolved(_config) {
|
|
15
|
+
config = _config;
|
|
16
|
+
cssMap = new Map();
|
|
17
|
+
// Place this plugin before react-refresh to
|
|
18
|
+
// modify files before JSX is compiled.
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
config.plugins.unshift(autoStyleTagPlugin());
|
|
21
|
+
},
|
|
22
|
+
transform(code, id) {
|
|
23
|
+
if (cssModuleRE.test(id)) {
|
|
24
|
+
cssMap.set(id, code);
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'css-modules-rsc-post',
|
|
30
|
+
enforce: 'post',
|
|
31
|
+
transform(code, id) {
|
|
32
|
+
if (id.includes('.module.') && cssMap.has(id)) {
|
|
33
|
+
const isDev = config.command === 'serve';
|
|
34
|
+
const key = path.relative(config.root, id.split('?')[0]);
|
|
35
|
+
const s = new MagicString(code);
|
|
36
|
+
s.prepend((isDev
|
|
37
|
+
? `import {jsxDEV as _jsx} from 'react/jsx-dev-runtime';`
|
|
38
|
+
: `import {jsx as _jsx} from 'react/jsx-runtime';`) +
|
|
39
|
+
`export const StyleTag = () => _jsx('style', {dangerouslySetInnerHTML: {__html: ${JSON.stringify(cssMap.get(id))}}});` +
|
|
40
|
+
`\nStyleTag.key = '${key}';\n`);
|
|
41
|
+
s.replace(/export default \{/gs, `export default {\n StyleTag,`);
|
|
42
|
+
return {
|
|
43
|
+
code: s.toString(),
|
|
44
|
+
map: s.generateMap({ file: id, source: id }),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
function autoStyleTagPlugin() {
|
|
52
|
+
return {
|
|
53
|
+
name: 'css-modules-auto-style-tag',
|
|
54
|
+
transform(code, id) {
|
|
55
|
+
id = id.split('?')[0];
|
|
56
|
+
if (/\.[jt]sx$/.test(id) &&
|
|
57
|
+
!id.endsWith(HYDROGEN_DEFAULT_SERVER_ENTRY) &&
|
|
58
|
+
!id.endsWith(path.format({
|
|
59
|
+
name: HYDROGEN_DEFAULT_SERVER_ENTRY,
|
|
60
|
+
ext: path.extname(id),
|
|
61
|
+
})) &&
|
|
62
|
+
cssModuleRE.test(code) &&
|
|
63
|
+
code.includes('export default')) {
|
|
64
|
+
const s = new MagicString(code);
|
|
65
|
+
// 1. Gather style tags in an array
|
|
66
|
+
let styleCount = 0;
|
|
67
|
+
s.prepend(`const __styleTags = [];\n`);
|
|
68
|
+
s.replace(/^import\s+(.+?)\s+from\s+['"]([^'"]+?\.module\.[^'"]+?)['"]/gm, (all, statements, from) => {
|
|
69
|
+
if (!cssModuleRE.test(from)) {
|
|
70
|
+
return all;
|
|
71
|
+
}
|
|
72
|
+
if (statements.startsWith('{')) {
|
|
73
|
+
// Add default import
|
|
74
|
+
const replacement = `__style${styleCount++}, {`;
|
|
75
|
+
statements = statements.replace('{', replacement);
|
|
76
|
+
all = all.replace('{', replacement);
|
|
77
|
+
}
|
|
78
|
+
const defaultImport = statements
|
|
79
|
+
.split(',')[0]
|
|
80
|
+
.replace(/\*\s+as\s+/, '')
|
|
81
|
+
.trim();
|
|
82
|
+
return all + `; __styleTags.push(${defaultImport}.StyleTag)`;
|
|
83
|
+
});
|
|
84
|
+
// 2. Wrap default export in a new component that includes the style tags
|
|
85
|
+
s.replace(/export default/gm, 'const __defaultExport = ');
|
|
86
|
+
s.append(`\nconst __ApplyStyleTags = function (props) {\n` +
|
|
87
|
+
` return <>{__styleTags.map(ST => <ST key={ST.key} />)}<__defaultExport {...props} /></>;` +
|
|
88
|
+
`\n}\n\n` +
|
|
89
|
+
`Object.defineProperty(__ApplyStyleTags, 'name', {value: 'ApplyStyleTags_' + (__defaultExport.name || '')});\n` +
|
|
90
|
+
`export default __ApplyStyleTags;`);
|
|
91
|
+
return {
|
|
92
|
+
code: s.toString(),
|
|
93
|
+
map: s.generateMap({ file: id, source: id }),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { normalizePath } from 'vite';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import MagicString from 'magic-string';
|
|
4
|
+
const HYDROGEN_ENTRY_FILE = 'hydrogen-entry-client.jsx';
|
|
5
|
+
export default () => {
|
|
6
|
+
let config;
|
|
7
|
+
return {
|
|
8
|
+
name: 'vite-plugin-hydration-auto-import',
|
|
9
|
+
enforce: 'pre',
|
|
10
|
+
configResolved(_config) {
|
|
11
|
+
config = _config;
|
|
12
|
+
},
|
|
13
|
+
resolveId(id, importer) {
|
|
14
|
+
if ((/^\/?@shopify\/hydrogen\/entry-client$/.test(id) ||
|
|
15
|
+
id.endsWith(path.sep + HYDROGEN_ENTRY_FILE)) &&
|
|
16
|
+
normalizePath(importer || '').endsWith('/index.html')) {
|
|
17
|
+
// Make this virtual import look like a local project file
|
|
18
|
+
// to enable React Refresh normally.
|
|
19
|
+
return path.join(config.root, HYDROGEN_ENTRY_FILE + '?virtual');
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
},
|
|
23
|
+
load(id) {
|
|
24
|
+
if (id.includes(HYDROGEN_ENTRY_FILE + '?virtual')) {
|
|
25
|
+
const code = new MagicString(`import renderHydrogen from '@shopify/hydrogen/entry-client';\n` +
|
|
26
|
+
`export default renderHydrogen((props) => props.children);`);
|
|
27
|
+
return {
|
|
28
|
+
code: code.toString(),
|
|
29
|
+
map: { mappings: '' },
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Plugin } from 'vite';
|
|
2
|
+
declare const _default: () => Plugin;
|
|
3
|
+
/**
|
|
4
|
+
* This dev server middleware prevents Vite from applying immutable cache control headers to client
|
|
5
|
+
* components. These client components are part of the user's local source, but since they are
|
|
6
|
+
* referenced via import globs in the `react-dom-server-vite` NPM package, Vite assumes they
|
|
7
|
+
* are 3P deps that can be cached. This middleware responds to the requests early with `no-cache`.
|
|
8
|
+
*/
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { send } from 'vite';
|
|
2
|
+
/**
|
|
3
|
+
* This dev server middleware prevents Vite from applying immutable cache control headers to client
|
|
4
|
+
* components. These client components are part of the user's local source, but since they are
|
|
5
|
+
* referenced via import globs in the `react-dom-server-vite` NPM package, Vite assumes they
|
|
6
|
+
* are 3P deps that can be cached. This middleware responds to the requests early with `no-cache`.
|
|
7
|
+
*/
|
|
8
|
+
export default () => {
|
|
9
|
+
return {
|
|
10
|
+
name: 'vite-plugin-hydrogen-client-middleware',
|
|
11
|
+
enforce: 'pre',
|
|
12
|
+
configureServer(server) {
|
|
13
|
+
server.middlewares.use(async (req, res, next) => {
|
|
14
|
+
const url = req.url;
|
|
15
|
+
try {
|
|
16
|
+
if (url.includes('.client.js') &&
|
|
17
|
+
url.includes('?v=') &&
|
|
18
|
+
!url.includes('node_modules')) {
|
|
19
|
+
const result = await server.transformRequest(url, { html: false });
|
|
20
|
+
if (result) {
|
|
21
|
+
return send(req, res, result.code, 'js', {
|
|
22
|
+
etag: result.etag,
|
|
23
|
+
cacheControl: 'no-cache',
|
|
24
|
+
headers: server.config.server.headers,
|
|
25
|
+
map: result.map,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
next(e);
|
|
32
|
+
}
|
|
33
|
+
next();
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export default () => {
|
|
2
|
+
const rollupOptions = {
|
|
3
|
+
output: {},
|
|
4
|
+
};
|
|
5
|
+
const isWorker = Boolean(process.env.WORKER) && process.env.WORKER !== 'undefined';
|
|
6
|
+
if (isWorker) {
|
|
7
|
+
/**
|
|
8
|
+
* By default, SSR dedupe logic gets bundled which runs `require('module')`.
|
|
9
|
+
* We don't want this in our workers runtime, because `require` is not supported.
|
|
10
|
+
*/
|
|
11
|
+
rollupOptions.output = {
|
|
12
|
+
format: 'es',
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (process.env.NODE_ENV !== 'development') {
|
|
16
|
+
/**
|
|
17
|
+
* Ofuscate production asset name - To prevent ad blocker logics that blocks
|
|
18
|
+
* certain files due to how it is named.
|
|
19
|
+
*/
|
|
20
|
+
rollupOptions.output = {
|
|
21
|
+
...rollupOptions.output,
|
|
22
|
+
chunkFileNames: 'assets/[hash].js',
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
name: 'vite-plugin-hydrogen-config',
|
|
27
|
+
config: async (config, env) => {
|
|
28
|
+
var _a, _b, _c;
|
|
29
|
+
return ({
|
|
30
|
+
resolve: {
|
|
31
|
+
alias: {
|
|
32
|
+
// This library is currently included as a compiled vendor lib, not published yet to NPM
|
|
33
|
+
'react-server-dom-vite/client-proxy': require.resolve('@shopify/hydrogen/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js'),
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
build: {
|
|
37
|
+
minify: (_b = (_a = config.build) === null || _a === void 0 ? void 0 : _a.minify) !== null && _b !== void 0 ? _b : 'esbuild',
|
|
38
|
+
sourcemap: true,
|
|
39
|
+
rollupOptions: ((_c = config.build) === null || _c === void 0 ? void 0 : _c.rollupOptions)
|
|
40
|
+
? Object.assign(rollupOptions, config.build.rollupOptions)
|
|
41
|
+
: rollupOptions,
|
|
42
|
+
},
|
|
43
|
+
ssr: {
|
|
44
|
+
/**
|
|
45
|
+
* Tell Vite to bundle everything when we're building for Workers.
|
|
46
|
+
* Otherwise, bundle RSC plugin as a workaround to apply the vendor alias above.
|
|
47
|
+
*/
|
|
48
|
+
noExternal: isWorker || [/react-server-dom-vite/],
|
|
49
|
+
target: isWorker ? 'webworker' : 'node',
|
|
50
|
+
},
|
|
51
|
+
// Reload when updating local Hydrogen lib
|
|
52
|
+
server: process.env.LOCAL_DEV && {
|
|
53
|
+
watch: {
|
|
54
|
+
ignored: [
|
|
55
|
+
'!**/node_modules/@shopify/hydrogen/**',
|
|
56
|
+
'!**/node_modules/@shopify/hydrogen-ui/**',
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
optimizeDeps: {
|
|
61
|
+
exclude: [
|
|
62
|
+
'@shopify/hydrogen',
|
|
63
|
+
'@shopify/hydrogen/client',
|
|
64
|
+
'@shopify/hydrogen/entry-client',
|
|
65
|
+
'@shopify/hydrogen-ui',
|
|
66
|
+
],
|
|
67
|
+
include: [
|
|
68
|
+
/**
|
|
69
|
+
* Additionally, the following dependencies have trouble loading the
|
|
70
|
+
* correct version of the dependency (server vs client). This tells Vite to take the
|
|
71
|
+
* server versions and optimize them for ESM.
|
|
72
|
+
*/
|
|
73
|
+
'react-helmet-async',
|
|
74
|
+
'react-error-boundary',
|
|
75
|
+
/**
|
|
76
|
+
* Vite cannot find the following dependencies since they might be
|
|
77
|
+
* required in RSC asynchronously. This tells Vite to optimize them
|
|
78
|
+
* at server start to avoid posterior page reloads and issues (#429 #430).
|
|
79
|
+
*/
|
|
80
|
+
'react',
|
|
81
|
+
'react-dom/client',
|
|
82
|
+
'react-server-dom-vite/client-proxy',
|
|
83
|
+
// https://github.com/vitejs/vite/issues/6215
|
|
84
|
+
'react/jsx-runtime',
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
define: {
|
|
88
|
+
__DEV__: env.mode !== 'production',
|
|
89
|
+
__WORKER__: isWorker,
|
|
90
|
+
},
|
|
91
|
+
envPrefix: ['VITE_', 'PUBLIC_'],
|
|
92
|
+
base: process.env.HYDROGEN_ASSET_BASE_URL,
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Plugin } from 'vite';
|
|
2
|
+
import type { HydrogenVitePluginOptions } from '../../types';
|
|
3
|
+
export declare const HYDROGEN_DEFAULT_SERVER_ENTRY: string;
|
|
4
|
+
declare const _default: (pluginOptions: HydrogenVitePluginOptions) => Plugin;
|
|
5
|
+
export default _default;
|
|
6
|
+
declare global {
|
|
7
|
+
var Oxygen: {
|
|
8
|
+
env: any;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { loadEnv, normalizePath } from 'vite';
|
|
2
|
+
import bodyParser from 'body-parser';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { promises as fs } from 'fs';
|
|
5
|
+
import { hydrogenMiddleware, graphiqlMiddleware } from '../middleware';
|
|
6
|
+
import { InMemoryCache } from '../cache/in-memory';
|
|
7
|
+
export const HYDROGEN_DEFAULT_SERVER_ENTRY = process.env.HYDROGEN_SERVER_ENTRY || '/src/App.server';
|
|
8
|
+
const virtualModuleId = 'virtual:hydrogen-config';
|
|
9
|
+
const virtualProxyModuleId = virtualModuleId + ':proxy';
|
|
10
|
+
export default (pluginOptions) => {
|
|
11
|
+
let config;
|
|
12
|
+
return {
|
|
13
|
+
name: 'vite-plugin-hydrogen-middleware',
|
|
14
|
+
configResolved(_config) {
|
|
15
|
+
config = _config;
|
|
16
|
+
},
|
|
17
|
+
/**
|
|
18
|
+
* By adding a middleware to the Vite dev server, we can handle SSR without needing
|
|
19
|
+
* a custom node script. It works by handling any requests for `text/html` documents,
|
|
20
|
+
* loading them in an SSR context, rendering them using the `entry-server` endpoint in the
|
|
21
|
+
* user's project, and injecting the static HTML into the template.
|
|
22
|
+
*/
|
|
23
|
+
async configureServer(server) {
|
|
24
|
+
const resolve = (p) => path.resolve(server.config.root, p);
|
|
25
|
+
async function getIndexTemplate(url) {
|
|
26
|
+
const indexHtml = await fs.readFile(resolve('index.html'), 'utf-8');
|
|
27
|
+
return await server.transformIndexHtml(url, indexHtml);
|
|
28
|
+
}
|
|
29
|
+
await polyfillOxygenEnv(server.config);
|
|
30
|
+
// The default vite middleware rewrites the URL `/graphqil` to `/index.html`
|
|
31
|
+
// By running this middleware first, we avoid that.
|
|
32
|
+
server.middlewares.use(graphiqlMiddleware({
|
|
33
|
+
dev: true,
|
|
34
|
+
getShopifyConfig: async (incomingMessage) => {
|
|
35
|
+
var _a;
|
|
36
|
+
const { default: hydrogenConfig } = await server.ssrLoadModule('virtual:hydrogen-config:proxy');
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
const { address = 'localhost', port = '3000' } = ((_a = server.httpServer) === null || _a === void 0 ? void 0 : _a.address()) || {};
|
|
39
|
+
const url = new URL(`http://${address}:${port}${incomingMessage.url}`);
|
|
40
|
+
const request = new Request(url.toString(), {
|
|
41
|
+
headers: incomingMessage.headers,
|
|
42
|
+
});
|
|
43
|
+
// @ts-expect-error Manually set `normalizedUrl` which a developer expects to be available
|
|
44
|
+
// via `ServerComponentRequest` during production runtime.
|
|
45
|
+
request.normalizedUrl = request.url;
|
|
46
|
+
return typeof hydrogenConfig.shopify === 'function'
|
|
47
|
+
? hydrogenConfig.shopify(request)
|
|
48
|
+
: hydrogenConfig.shopify;
|
|
49
|
+
},
|
|
50
|
+
}));
|
|
51
|
+
server.middlewares.use(bodyParser.raw({ type: '*/*' }));
|
|
52
|
+
return () => server.middlewares.use(hydrogenMiddleware({
|
|
53
|
+
dev: true,
|
|
54
|
+
indexTemplate: getIndexTemplate,
|
|
55
|
+
getServerEntrypoint: () => server.ssrLoadModule(HYDROGEN_DEFAULT_SERVER_ENTRY),
|
|
56
|
+
devServer: server,
|
|
57
|
+
cache: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.devCache)
|
|
58
|
+
? new InMemoryCache()
|
|
59
|
+
: undefined,
|
|
60
|
+
}));
|
|
61
|
+
},
|
|
62
|
+
async resolveId(source, importer) {
|
|
63
|
+
if (source === virtualModuleId) {
|
|
64
|
+
const configPath = await findHydrogenConfigPath(config.root, pluginOptions.configPath);
|
|
65
|
+
return this.resolve(configPath, importer, {
|
|
66
|
+
skipSelf: true,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (source === virtualProxyModuleId) {
|
|
70
|
+
// Virtual modules convention
|
|
71
|
+
// https://vitejs.dev/guide/api-plugin.html#virtual-modules-convention
|
|
72
|
+
return '\0' + virtualProxyModuleId;
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
async load(id) {
|
|
76
|
+
if (id === '\0' + virtualProxyModuleId) {
|
|
77
|
+
// Likely due to a bug in Vite, but the config cannot be loaded
|
|
78
|
+
// directly using ssrLoadModule. It needs to be proxied as follows:
|
|
79
|
+
return `import hc from 'virtual:hydrogen-config'; export default hc;`;
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
async function polyfillOxygenEnv(config) {
|
|
85
|
+
const env = await loadEnv(config.mode, config.root, '');
|
|
86
|
+
const publicPrefixes = Array.isArray(config.envPrefix)
|
|
87
|
+
? config.envPrefix
|
|
88
|
+
: [config.envPrefix || ''];
|
|
89
|
+
for (const key of Object.keys(env)) {
|
|
90
|
+
if (publicPrefixes.some((prefix) => key.startsWith(prefix))) {
|
|
91
|
+
delete env[key];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
globalThis.Oxygen = { env };
|
|
95
|
+
}
|
|
96
|
+
async function findHydrogenConfigPath(root, userProvidedPath) {
|
|
97
|
+
let configPath = userProvidedPath;
|
|
98
|
+
if (!configPath) {
|
|
99
|
+
// Find the config file in the project root
|
|
100
|
+
const files = await fs.readdir(root);
|
|
101
|
+
configPath = files.find((file) => /^hydrogen\.config\.[jt]s$/.test(file));
|
|
102
|
+
}
|
|
103
|
+
if (configPath) {
|
|
104
|
+
configPath = normalizePath(configPath);
|
|
105
|
+
if (!configPath.startsWith('/'))
|
|
106
|
+
configPath = path.resolve(root, configPath);
|
|
107
|
+
}
|
|
108
|
+
return (configPath ||
|
|
109
|
+
require.resolve('@shopify/hydrogen/dist/esnext/utilities/empty-hydrogen-config.js'));
|
|
110
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (): any;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
import reactServerDomVite from '@shopify/hydrogen/vendor/react-server-dom-vite/plugin';
|
|
3
|
+
import { HYDROGEN_DEFAULT_SERVER_ENTRY } from './vite-plugin-hydrogen-middleware';
|
|
4
|
+
import { createServer } from 'vite';
|
|
5
|
+
export default function () {
|
|
6
|
+
return reactServerDomVite({
|
|
7
|
+
isServerComponentImporterAllowed(importer, source) {
|
|
8
|
+
return (
|
|
9
|
+
// Always allow the entry server (e.g. App.server.jsx) to be imported
|
|
10
|
+
// in other files such as worker.js or server.js.
|
|
11
|
+
source.includes(HYDROGEN_DEFAULT_SERVER_ENTRY) ||
|
|
12
|
+
/(index|entry-server|hydrogen\.config)\.[jt]s/.test(importer) ||
|
|
13
|
+
// Support importing server components for testing
|
|
14
|
+
// TODO: revisit this when RSC splits into two bundles
|
|
15
|
+
/\.test\.[tj]sx?$/.test(importer));
|
|
16
|
+
},
|
|
17
|
+
async findClientComponentsForClientBuild() {
|
|
18
|
+
// In client build, we create a local server to discover client compoents.
|
|
19
|
+
const server = await createServer({
|
|
20
|
+
clearScreen: false,
|
|
21
|
+
server: { middlewareMode: 'ssr' },
|
|
22
|
+
});
|
|
23
|
+
await Promise.all([
|
|
24
|
+
// Load server entry to discover client components early
|
|
25
|
+
server.ssrLoadModule(HYDROGEN_DEFAULT_SERVER_ENTRY),
|
|
26
|
+
// Route globs are placed in hydrogen.config.js and need to
|
|
27
|
+
// be loaded to discover client components in routes
|
|
28
|
+
server.ssrLoadModule('virtual:hydrogen-config:proxy'),
|
|
29
|
+
]);
|
|
30
|
+
await server.close();
|
|
31
|
+
// At this point, the server has loaded all the components in the module graph
|
|
32
|
+
return reactServerDomVite.findClientComponentsFromServer(server);
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|