@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,43 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { ProductContext, ProductOptionsContext, } from '../../components/ProductProvider/context';
|
|
3
|
+
/**
|
|
4
|
+
* The `useProduct` hook returns the product object of the nearest `ProductProvider`. It must be a descendent of
|
|
5
|
+
* a `ProductProvider` component.
|
|
6
|
+
*/
|
|
7
|
+
export function useProduct() {
|
|
8
|
+
var _a;
|
|
9
|
+
const data = useContext(ProductContext);
|
|
10
|
+
let state;
|
|
11
|
+
try {
|
|
12
|
+
state = (_a = useContext(ProductOptionsContext)) !== null && _a !== void 0 ? _a : { ...stateFallback }; // eslint-disable-line react-hooks/rules-of-hooks
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
// for server components which can't use state
|
|
16
|
+
state = { ...stateFallback };
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
...state,
|
|
20
|
+
...data,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const stateFallback = {
|
|
24
|
+
variants: undefined,
|
|
25
|
+
variantsConnection: undefined,
|
|
26
|
+
options: undefined,
|
|
27
|
+
selectedVariant: undefined,
|
|
28
|
+
setSelectedVariant: NotAvailable('setSelectedVariant'),
|
|
29
|
+
selectedOptions: undefined,
|
|
30
|
+
setSelectedOption: NotAvailable('setSelectedOption'),
|
|
31
|
+
setSelectedOptions: NotAvailable('setSelectedOptions'),
|
|
32
|
+
isOptionInStock: undefined,
|
|
33
|
+
setSelectedSellingPlan: NotAvailable('setSelectedSellingPlan'),
|
|
34
|
+
selectedSellingPlan: undefined,
|
|
35
|
+
selectedSellingPlanAllocation: undefined,
|
|
36
|
+
sellingPlanGroups: undefined,
|
|
37
|
+
sellingPlanGroupsConnection: undefined,
|
|
38
|
+
};
|
|
39
|
+
function NotAvailable(propName) {
|
|
40
|
+
return () => {
|
|
41
|
+
throw new Error(`The '${propName}' function is not available in server components`);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SelectedOptions, OptionWithValues } from './types';
|
|
2
|
+
import type { ProductVariant as ProductVariantType } from '../../storefront-api-types';
|
|
3
|
+
import type { PartialDeep } from 'type-fest';
|
|
4
|
+
export declare function getAllOptionValues(variants: ProductVariantType[], option: string): string[];
|
|
5
|
+
export declare function getSelectedVariant(variants: PartialDeep<ProductVariantType>[], choices: SelectedOptions): PartialDeep<ProductVariantType> | undefined;
|
|
6
|
+
export declare function getOptions(variants: PartialDeep<ProductVariantType>[]): OptionWithValues[];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export function getAllOptionValues(variants, option) {
|
|
2
|
+
return Array.from(new Set(variants.map((variant) => variant.selectedOptions.find((selection) => selection.name == option)
|
|
3
|
+
.value)));
|
|
4
|
+
}
|
|
5
|
+
export function getSelectedVariant(variants, choices) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
/**
|
|
8
|
+
* Ensure the user has selected all the required options, not just some.
|
|
9
|
+
*/
|
|
10
|
+
if (!variants.length ||
|
|
11
|
+
((_b = (_a = variants === null || variants === void 0 ? void 0 : variants[0]) === null || _a === void 0 ? void 0 : _a.selectedOptions) === null || _b === void 0 ? void 0 : _b.length) !== Object.keys(choices).length) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
return variants === null || variants === void 0 ? void 0 : variants.find((variant) => {
|
|
15
|
+
return Object.entries(choices).every(([name, value]) => {
|
|
16
|
+
var _a;
|
|
17
|
+
return (_a = variant === null || variant === void 0 ? void 0 : variant.selectedOptions) === null || _a === void 0 ? void 0 : _a.some((option) => (option === null || option === void 0 ? void 0 : option.name) === name && (option === null || option === void 0 ? void 0 : option.value) === value);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export function getOptions(variants) {
|
|
22
|
+
const map = variants.reduce((memo, variant) => {
|
|
23
|
+
var _a;
|
|
24
|
+
if (!variant.selectedOptions) {
|
|
25
|
+
throw new Error(`getOptions requires 'variant.selectedOptions`);
|
|
26
|
+
}
|
|
27
|
+
(_a = variant === null || variant === void 0 ? void 0 : variant.selectedOptions) === null || _a === void 0 ? void 0 : _a.forEach((opt) => {
|
|
28
|
+
var _a, _b, _c, _d;
|
|
29
|
+
memo[(_a = opt === null || opt === void 0 ? void 0 : opt.name) !== null && _a !== void 0 ? _a : ''] = memo[(_b = opt === null || opt === void 0 ? void 0 : opt.name) !== null && _b !== void 0 ? _b : ''] || new Set();
|
|
30
|
+
memo[(_c = opt === null || opt === void 0 ? void 0 : opt.name) !== null && _c !== void 0 ? _c : ''].add((_d = opt === null || opt === void 0 ? void 0 : opt.value) !== null && _d !== void 0 ? _d : '');
|
|
31
|
+
});
|
|
32
|
+
return memo;
|
|
33
|
+
}, {});
|
|
34
|
+
return Object.keys(map).map((option) => {
|
|
35
|
+
return {
|
|
36
|
+
name: option,
|
|
37
|
+
values: Array.from(map[option]),
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { SelectedOption as SelectedOptionType, ProductVariant as ProductVariantType, ProductVariantConnection, SellingPlan as SellingPlanType, SellingPlanAllocation as SellingPlanAllocationType, SellingPlanGroup as SellingPlanGroupType, SellingPlanConnection } from '../../storefront-api-types';
|
|
2
|
+
export declare type SelectedOptions = {
|
|
3
|
+
[key: string]: string;
|
|
4
|
+
};
|
|
5
|
+
export declare type SelectVariantCallback = (variant: ProductVariantType) => void;
|
|
6
|
+
export declare type SelectOptionCallback = (name: SelectedOptionType['name'], value: SelectedOptionType['value']) => void;
|
|
7
|
+
export declare type SelectOptionsCallback = (options: SelectedOptions) => void;
|
|
8
|
+
export declare type OptionsInStockCallback = (name: SelectedOptionType['name'], value: SelectedOptionType['value']) => boolean;
|
|
9
|
+
export declare type SelectedSellingPlanCallback = (sellingPlan: SellingPlanType) => void;
|
|
10
|
+
export interface OptionWithValues {
|
|
11
|
+
name: SelectedOptionType['name'];
|
|
12
|
+
values: SelectedOptionType['value'][];
|
|
13
|
+
}
|
|
14
|
+
export interface ProductOptionsHookValue {
|
|
15
|
+
/** An array of the variant `nodes` from the `VariantConnection`. */
|
|
16
|
+
variants: ProductVariantType[];
|
|
17
|
+
variantsConnection?: ProductVariantConnection;
|
|
18
|
+
/** An array of the product's options and values. */
|
|
19
|
+
options: OptionWithValues[];
|
|
20
|
+
/** The selected variant. */
|
|
21
|
+
selectedVariant?: ProductVariantType | null;
|
|
22
|
+
/** A callback to set the selected variant to the variant passed as an argument. */
|
|
23
|
+
setSelectedVariant: SelectVariantCallback;
|
|
24
|
+
selectedOptions: SelectedOptions;
|
|
25
|
+
/** A callback to set the selected option. */
|
|
26
|
+
setSelectedOption: SelectOptionCallback;
|
|
27
|
+
/** A callback to set multiple selected options at once. */
|
|
28
|
+
setSelectedOptions: SelectOptionsCallback;
|
|
29
|
+
/** A callback that returns a boolean indicating if the option is in stock. */
|
|
30
|
+
isOptionInStock: OptionsInStockCallback;
|
|
31
|
+
/** A callback to set the selected selling plan to the one passed as an argument. */
|
|
32
|
+
setSelectedSellingPlan: SelectedSellingPlanCallback;
|
|
33
|
+
/** The selected selling plan. */
|
|
34
|
+
selectedSellingPlan?: SellingPlanType;
|
|
35
|
+
/** The selected selling plan allocation. */
|
|
36
|
+
selectedSellingPlanAllocation?: SellingPlanAllocationType;
|
|
37
|
+
/** The selling plan groups. */
|
|
38
|
+
sellingPlanGroups?: (Omit<SellingPlanGroupType, 'sellingPlans'> & {
|
|
39
|
+
sellingPlans: SellingPlanType[];
|
|
40
|
+
})[];
|
|
41
|
+
sellingPlanGroupsConnection?: SellingPlanConnection;
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ProductOptionsHookValue } from './types';
|
|
2
|
+
import type { ProductVariantConnection, SellingPlanGroupConnection, ProductVariant as ProductVariantType } from '../../storefront-api-types';
|
|
3
|
+
import type { PartialDeep } from 'type-fest';
|
|
4
|
+
/**
|
|
5
|
+
* The `useProductOptions` hook returns an object that enables you to keep track of the
|
|
6
|
+
* selected variant and/or selling plan state, as well as callbacks for modifying the state.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useProductOptions({ variants: variantsConnection, sellingPlanGroups: sellingPlanGroupsConnection, initialVariantId: explicitVariantId, }: {
|
|
9
|
+
/** The product's `VariantConnection`. */
|
|
10
|
+
variants?: PartialDeep<ProductVariantConnection>;
|
|
11
|
+
/** The product's `SellingPlanGroups`. */
|
|
12
|
+
sellingPlanGroups?: PartialDeep<SellingPlanGroupConnection>;
|
|
13
|
+
/** The initially selected variant. */
|
|
14
|
+
initialVariantId?: ProductVariantType['id'] | null;
|
|
15
|
+
}): ProductOptionsHookValue;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { flattenConnection } from '../../utilities';
|
|
3
|
+
import { getOptions, getSelectedVariant } from './helpers';
|
|
4
|
+
/**
|
|
5
|
+
* The `useProductOptions` hook returns an object that enables you to keep track of the
|
|
6
|
+
* selected variant and/or selling plan state, as well as callbacks for modifying the state.
|
|
7
|
+
*/
|
|
8
|
+
export function useProductOptions({ variants: variantsConnection, sellingPlanGroups: sellingPlanGroupsConnection, initialVariantId: explicitVariantId, }) {
|
|
9
|
+
// The flattened variants
|
|
10
|
+
const variants = useMemo(() => (variantsConnection ? flattenConnection(variantsConnection) : []), [variantsConnection]);
|
|
11
|
+
// All the options available for a product, based on all the variants
|
|
12
|
+
const options = useMemo(() => getOptions(variants), [variants]);
|
|
13
|
+
// TODO: we have some weird variable shadowing going on here that probably needs to be looked at. This variable is the same name as a prop
|
|
14
|
+
const initialVariantId = explicitVariantId === null
|
|
15
|
+
? explicitVariantId
|
|
16
|
+
: variants.find((variant) => variant.id === explicitVariantId) ||
|
|
17
|
+
variants.find((variant) => variant.availableForSale) ||
|
|
18
|
+
variants[0];
|
|
19
|
+
/**
|
|
20
|
+
* Track the selectedVariant within the hook. If `initialVariantId`
|
|
21
|
+
* is passed, use that as an initial value.
|
|
22
|
+
*/
|
|
23
|
+
const [selectedVariant, setSelectedVariant] = useState(initialVariantId);
|
|
24
|
+
/**
|
|
25
|
+
* Track the selectedOptions within the hook. If a `initialVariantId`
|
|
26
|
+
* is passed, use that to select initial options.
|
|
27
|
+
*/
|
|
28
|
+
const [selectedOptions, setSelectedOptions] = useState((selectedVariant === null || selectedVariant === void 0 ? void 0 : selectedVariant.selectedOptions)
|
|
29
|
+
? selectedVariant.selectedOptions.reduce((memo, optionSet) => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
memo[(_a = optionSet === null || optionSet === void 0 ? void 0 : optionSet.name) !== null && _a !== void 0 ? _a : ''] = (_b = optionSet === null || optionSet === void 0 ? void 0 : optionSet.value) !== null && _b !== void 0 ? _b : '';
|
|
32
|
+
return memo;
|
|
33
|
+
}, {})
|
|
34
|
+
: {});
|
|
35
|
+
/**
|
|
36
|
+
* When the initialVariantId changes, we need to make sure we
|
|
37
|
+
* update the selected variant and selected options. If not,
|
|
38
|
+
* then the selected variant and options will reference incorrect
|
|
39
|
+
* values.
|
|
40
|
+
*/
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const variant = getSelectedVariant(variants, selectedOptions);
|
|
43
|
+
setSelectedVariant(variant);
|
|
44
|
+
}, [selectedOptions, variants]);
|
|
45
|
+
/**
|
|
46
|
+
* Allow the developer to select an option.
|
|
47
|
+
*/
|
|
48
|
+
const setSelectedOption = useCallback((name, value) => {
|
|
49
|
+
setSelectedOptions((selectedOptions) => ({
|
|
50
|
+
...selectedOptions,
|
|
51
|
+
[name]: value,
|
|
52
|
+
}));
|
|
53
|
+
}, [setSelectedOptions]);
|
|
54
|
+
const isOptionInStock = useCallback((option, value) => {
|
|
55
|
+
var _a;
|
|
56
|
+
const proposedVariant = getSelectedVariant(variants, {
|
|
57
|
+
...selectedOptions,
|
|
58
|
+
...{ [option]: value },
|
|
59
|
+
});
|
|
60
|
+
return (_a = proposedVariant === null || proposedVariant === void 0 ? void 0 : proposedVariant.availableForSale) !== null && _a !== void 0 ? _a : true;
|
|
61
|
+
}, [selectedOptions, variants]);
|
|
62
|
+
const sellingPlanGroups = useMemo(() => sellingPlanGroupsConnection
|
|
63
|
+
? flattenConnection(sellingPlanGroupsConnection).map((sellingPlanGroup) => ({
|
|
64
|
+
...sellingPlanGroup,
|
|
65
|
+
sellingPlans: (sellingPlanGroup === null || sellingPlanGroup === void 0 ? void 0 : sellingPlanGroup.sellingPlans)
|
|
66
|
+
? flattenConnection(sellingPlanGroup.sellingPlans)
|
|
67
|
+
: [],
|
|
68
|
+
}))
|
|
69
|
+
: [], [sellingPlanGroupsConnection]);
|
|
70
|
+
/**
|
|
71
|
+
* Track the selectedSellingPlan within the hook. If `initialSellingPlanId`
|
|
72
|
+
* is passed, use that as an initial value. Look it up from the `selectedVariant`, since
|
|
73
|
+
* that is also a requirement.
|
|
74
|
+
*/
|
|
75
|
+
const [selectedSellingPlan, setSelectedSellingPlan] = useState(undefined);
|
|
76
|
+
const selectedSellingPlanAllocation = useMemo(() => {
|
|
77
|
+
if (!selectedVariant || !selectedSellingPlan) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (!selectedVariant.sellingPlanAllocations) {
|
|
81
|
+
throw new Error(`You must include sellingPlanAllocations in your variants in order to calculate selectedSellingPlanAllocation`);
|
|
82
|
+
}
|
|
83
|
+
return flattenConnection(selectedVariant.sellingPlanAllocations).find(
|
|
84
|
+
// @ts-ignore The types here are broken on main, need to come back and fix them sometime
|
|
85
|
+
(allocation) => allocation.sellingPlan.id === selectedSellingPlan.id);
|
|
86
|
+
}, [selectedVariant, selectedSellingPlan]);
|
|
87
|
+
return {
|
|
88
|
+
// @ts-ignore The types here are broken on main, need to come back and fix them sometime
|
|
89
|
+
variants,
|
|
90
|
+
// @ts-ignore The types here are broken on main, need to come back and fix them sometime
|
|
91
|
+
variantsConnection,
|
|
92
|
+
options,
|
|
93
|
+
// @ts-ignore The types here are broken on main, need to come back and fix them sometime
|
|
94
|
+
selectedVariant,
|
|
95
|
+
setSelectedVariant,
|
|
96
|
+
selectedOptions,
|
|
97
|
+
setSelectedOption,
|
|
98
|
+
setSelectedOptions,
|
|
99
|
+
isOptionInStock,
|
|
100
|
+
selectedSellingPlan,
|
|
101
|
+
setSelectedSellingPlan,
|
|
102
|
+
selectedSellingPlanAllocation,
|
|
103
|
+
// @ts-ignore The types here are broken on main, need to come back and fix them sometime
|
|
104
|
+
sellingPlanGroups,
|
|
105
|
+
// @ts-ignore The types here are broken on main, need to come back and fix them sometime
|
|
106
|
+
sellingPlanGroupsConnection,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CachingStrategy, PreloadOptions } from '../../types';
|
|
2
|
+
export interface UseShopQueryResponse<T> {
|
|
3
|
+
/** The data returned by the query. */
|
|
4
|
+
data: T;
|
|
5
|
+
errors: any;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The `useShopQuery` hook allows you to make server-only GraphQL queries to the Storefront API. It must be a descendent of a `ShopifyProvider` component.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useShopQuery<T>({ query, variables, cache, preload, }: {
|
|
11
|
+
/** A string of the GraphQL query.
|
|
12
|
+
* If no query is provided, useShopQuery will make no calls to the Storefront API.
|
|
13
|
+
*/
|
|
14
|
+
query?: string;
|
|
15
|
+
/** An object of the variables for the GraphQL query. */
|
|
16
|
+
variables?: Record<string, any>;
|
|
17
|
+
/** The [caching strategy](https://shopify.dev/custom-storefronts/hydrogen/framework/cache#caching-strategies) to
|
|
18
|
+
* help you determine which cache control header to set.
|
|
19
|
+
*/
|
|
20
|
+
cache?: CachingStrategy;
|
|
21
|
+
/** A string corresponding to a valid locale identifier like `en-us` used to make the request. */
|
|
22
|
+
locale?: string;
|
|
23
|
+
/** Whether to[preload the query](https://shopify.dev/custom-storefronts/hydrogen/framework/preloaded-queries).
|
|
24
|
+
* Defaults to `false`. Specify `true` to preload the query for the URL or `'*'`
|
|
25
|
+
* to preload the query for all requests.
|
|
26
|
+
*/
|
|
27
|
+
preload?: PreloadOptions;
|
|
28
|
+
}): UseShopQueryResponse<T>;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { useShop } from '../../foundation/useShop';
|
|
2
|
+
import { getLoggerWithContext } from '../../utilities/log';
|
|
3
|
+
import { graphqlRequestBody } from '../../utilities';
|
|
4
|
+
import { getConfig } from '../../framework/config';
|
|
5
|
+
import { useServerRequest } from '../../foundation/ServerRequestProvider';
|
|
6
|
+
import { injectGraphQLTracker } from '../../utilities/graphql-tracker';
|
|
7
|
+
import { sendMessageToClient } from '../../utilities/devtools';
|
|
8
|
+
import { fetchSync } from '../../foundation/fetchSync/server/fetchSync';
|
|
9
|
+
import { META_ENV_SSR } from '../../foundation/ssr-interop';
|
|
10
|
+
import { getStorefrontApiRequestHeaders } from '../../utilities/storefrontApi';
|
|
11
|
+
import { parseJSON } from '../../utilities/parse';
|
|
12
|
+
// Check if the response body has GraphQL errors
|
|
13
|
+
// https://spec.graphql.org/June2018/#sec-Response-Format
|
|
14
|
+
const shouldCacheResponse = ([body]) => {
|
|
15
|
+
var _a;
|
|
16
|
+
try {
|
|
17
|
+
return !((_a = parseJSON(body)) === null || _a === void 0 ? void 0 : _a.errors);
|
|
18
|
+
}
|
|
19
|
+
catch (_b) {
|
|
20
|
+
// If we can't parse the response, then assume
|
|
21
|
+
// an error and don't cache the response
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* The `useShopQuery` hook allows you to make server-only GraphQL queries to the Storefront API. It must be a descendent of a `ShopifyProvider` component.
|
|
27
|
+
*/
|
|
28
|
+
export function useShopQuery({ query, variables = {}, cache, preload = false, }) {
|
|
29
|
+
var _a;
|
|
30
|
+
/**
|
|
31
|
+
* If no query is passed, we no-op here to allow developers to obey the Rules of Hooks.
|
|
32
|
+
*/
|
|
33
|
+
if (!query) {
|
|
34
|
+
return { data: undefined, errors: undefined };
|
|
35
|
+
}
|
|
36
|
+
if (!META_ENV_SSR) {
|
|
37
|
+
throw new Error('Shopify Storefront API requests should only be made from the server.');
|
|
38
|
+
}
|
|
39
|
+
const serverRequest = useServerRequest(); // eslint-disable-line react-hooks/rules-of-hooks
|
|
40
|
+
const log = getLoggerWithContext(serverRequest);
|
|
41
|
+
const body = query ? graphqlRequestBody(query, variables) : '';
|
|
42
|
+
const { url, requestInit } = useCreateShopRequest(body); // eslint-disable-line react-hooks/rules-of-hooks
|
|
43
|
+
let data;
|
|
44
|
+
let useQueryError;
|
|
45
|
+
try {
|
|
46
|
+
data = fetchSync(url, {
|
|
47
|
+
...requestInit,
|
|
48
|
+
cache,
|
|
49
|
+
preload,
|
|
50
|
+
shouldCacheResponse,
|
|
51
|
+
}).json();
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
// Pass-through thrown promise for Suspense functionality
|
|
55
|
+
if (error === null || error === void 0 ? void 0 : error.then) {
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
useQueryError = error;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The fetch request itself failed, so we handle that differently than a GraphQL error
|
|
62
|
+
*/
|
|
63
|
+
if (useQueryError) {
|
|
64
|
+
const errorMessage = createErrorMessage(useQueryError);
|
|
65
|
+
log.error(errorMessage);
|
|
66
|
+
log.error(useQueryError);
|
|
67
|
+
if (getConfig().dev) {
|
|
68
|
+
throw new Error(errorMessage);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// in non-dev environments, we probably don't want super-detailed error messages for the user
|
|
72
|
+
throw new Error(`The fetch attempt failed; there was an issue connecting to the data source.`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* GraphQL errors get printed to the console but ultimately
|
|
77
|
+
* get returned to the consumer.
|
|
78
|
+
*/
|
|
79
|
+
if (data === null || data === void 0 ? void 0 : data.errors) {
|
|
80
|
+
const errors = Array.isArray(data.errors) ? data.errors : [data.errors];
|
|
81
|
+
for (const error of errors) {
|
|
82
|
+
if (getConfig().dev) {
|
|
83
|
+
throw new Error(error.message);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
log.error('GraphQL Error', error);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
log.error(`GraphQL errors: ${errors.length}`);
|
|
90
|
+
}
|
|
91
|
+
if (__DEV__ &&
|
|
92
|
+
log.options().showUnusedQueryProperties &&
|
|
93
|
+
query &&
|
|
94
|
+
(data === null || data === void 0 ? void 0 : data.data)) {
|
|
95
|
+
const fileLine = (_a = new Error('').stack) === null || _a === void 0 ? void 0 : _a.split('\n').find((line) => line.includes('.server.'));
|
|
96
|
+
const [, functionName, fileName] = (fileLine === null || fileLine === void 0 ? void 0 : fileLine.match(/^\s*at (\w+) \(([^)]+)\)/)) || [];
|
|
97
|
+
injectGraphQLTracker({
|
|
98
|
+
query,
|
|
99
|
+
data,
|
|
100
|
+
onUnusedData: ({ queryName, properties }) => {
|
|
101
|
+
const footer = `Examine the list of fields above to confirm that they are being used.\n`;
|
|
102
|
+
const header = `Potentially overfetching fields in GraphQL query.\n`;
|
|
103
|
+
let info = `Query \`${queryName}\``;
|
|
104
|
+
if (fileName) {
|
|
105
|
+
info += ` in file \`${fileName}\` (function \`${functionName}\`)`;
|
|
106
|
+
}
|
|
107
|
+
const n = 6;
|
|
108
|
+
const shouldTrim = properties.length > n + 1;
|
|
109
|
+
const shownProperties = shouldTrim
|
|
110
|
+
? properties.slice(0, n)
|
|
111
|
+
: properties;
|
|
112
|
+
const hiddenInfo = shouldTrim
|
|
113
|
+
? ` ...and ${properties.length - shownProperties.length} more\n`
|
|
114
|
+
: '';
|
|
115
|
+
const warning = header +
|
|
116
|
+
info +
|
|
117
|
+
`:\n• ${shownProperties.join(`\n• `)}\n` +
|
|
118
|
+
hiddenInfo +
|
|
119
|
+
footer;
|
|
120
|
+
log.warn(warning);
|
|
121
|
+
sendMessageToClient({ type: 'warn', data: warning });
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return data;
|
|
126
|
+
}
|
|
127
|
+
function useCreateShopRequest(body) {
|
|
128
|
+
const { storeDomain, storefrontToken, storefrontApiVersion } = useShop();
|
|
129
|
+
const request = useServerRequest();
|
|
130
|
+
const buyerIp = request.getBuyerIp();
|
|
131
|
+
const extraHeaders = getStorefrontApiRequestHeaders({
|
|
132
|
+
buyerIp,
|
|
133
|
+
storefrontToken,
|
|
134
|
+
});
|
|
135
|
+
return {
|
|
136
|
+
key: [storeDomain, storefrontApiVersion, body],
|
|
137
|
+
url: `https://${storeDomain}/api/${storefrontApiVersion}/graphql.json`,
|
|
138
|
+
requestInit: {
|
|
139
|
+
body,
|
|
140
|
+
method: 'POST',
|
|
141
|
+
headers: {
|
|
142
|
+
'X-SDK-Variant': 'hydrogen',
|
|
143
|
+
'X-SDK-Version': storefrontApiVersion,
|
|
144
|
+
'content-type': 'application/json',
|
|
145
|
+
...extraHeaders,
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
function createErrorMessage(fetchError) {
|
|
151
|
+
if (fetchError instanceof Response) {
|
|
152
|
+
return `An error occurred while fetching from the Storefront API. ${
|
|
153
|
+
// 403s to the SF API (almost?) always mean that your Shopify credentials are bad/wrong
|
|
154
|
+
fetchError.status === 403
|
|
155
|
+
? `You may have a bad value in 'hydrogen.config.js'`
|
|
156
|
+
: `${fetchError.statusText}`}`;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
return `Failed to connect to the Storefront API: ${fetchError.message}`;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useShopQuery } from './hooks';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useShopQuery } from './hooks';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * from './foundation/';
|
|
2
|
+
export * from './components/';
|
|
3
|
+
export * from './hooks/';
|
|
4
|
+
export { flattenConnection, fetchBuilder, graphqlRequestBody, decodeShopifyId, isClient, getTime, } from './utilities';
|
|
5
|
+
export { gql } from './utilities/graphql-tag';
|
|
6
|
+
export { FileRoutes } from './foundation/FileRoutes/FileRoutes.server';
|
|
7
|
+
export { Route } from './foundation/Route/Route.server';
|
|
8
|
+
export { Router } from './foundation/Router/Router.server';
|
|
9
|
+
export { log, setLogger, setLoggerOptions, Logger } from './utilities/log';
|
|
10
|
+
export { useRouteParams } from './foundation/useRouteParams/useRouteParams';
|
|
11
|
+
export { LocalizationProvider } from './components/LocalizationProvider/LocalizationProvider.server';
|
|
12
|
+
export { ShopifyProvider } from './foundation/ShopifyProvider/ShopifyProvider.server';
|
|
13
|
+
export * from './hooks/useShopQuery/hooks';
|
|
14
|
+
export * from './foundation/useQuery/hooks';
|
|
15
|
+
export * from './foundation/useServerProps';
|
|
16
|
+
export { Head } from './foundation/Head';
|
|
17
|
+
export { CartQuery } from './components/CartProvider/cart-queries';
|
|
18
|
+
export { generateCacheControlHeader, NoStore, CacheSeconds, CacheMinutes, CacheHours, CacheDays, CacheWeeks, CacheMonths, CacheCustom, } from './framework/CachingStrategy';
|
|
19
|
+
export { fetchSync } from './foundation/fetchSync/server/fetchSync';
|
|
20
|
+
export { useServerAnalytics } from './foundation/Analytics';
|
|
21
|
+
export * as PerformanceMetricsServerAnalyticsConnector from './foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server';
|
|
22
|
+
export { PerformanceMetrics } from './foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.client';
|
|
23
|
+
export { PerformanceMetricsDebug } from './foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetricsDebug.client';
|
|
24
|
+
export { useSession } from './foundation/useSession/useSession';
|
|
25
|
+
export { CookieSessionStorage } from './foundation/CookieSessionStorage/CookieSessionStorage';
|
|
26
|
+
export { MemorySessionStorage } from './foundation/MemorySessionStorage/MemorySessionStorage';
|
|
27
|
+
export { Cookie } from './foundation/Cookie/Cookie';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export * from './foundation/';
|
|
2
|
+
export * from './components/';
|
|
3
|
+
export * from './hooks/';
|
|
4
|
+
export { flattenConnection, fetchBuilder, graphqlRequestBody, decodeShopifyId, isClient, getTime, } from './utilities';
|
|
5
|
+
export { gql } from './utilities/graphql-tag';
|
|
6
|
+
export { FileRoutes } from './foundation/FileRoutes/FileRoutes.server';
|
|
7
|
+
export { Route } from './foundation/Route/Route.server';
|
|
8
|
+
export { Router } from './foundation/Router/Router.server';
|
|
9
|
+
export { log, setLogger, setLoggerOptions } from './utilities/log';
|
|
10
|
+
export { useRouteParams } from './foundation/useRouteParams/useRouteParams';
|
|
11
|
+
// This is exported here because it contains a Server Component
|
|
12
|
+
export { LocalizationProvider } from './components/LocalizationProvider/LocalizationProvider.server';
|
|
13
|
+
export { ShopifyProvider } from './foundation/ShopifyProvider/ShopifyProvider.server';
|
|
14
|
+
// Exported here because users shouldn't be making `useShopQuery` calls from the client
|
|
15
|
+
export * from './hooks/useShopQuery/hooks';
|
|
16
|
+
export * from './foundation/useQuery/hooks';
|
|
17
|
+
export * from './foundation/useServerProps';
|
|
18
|
+
export { Head } from './foundation/Head';
|
|
19
|
+
// Export server-only CartQuery here instead of `CartProvider.client` to prevent
|
|
20
|
+
// it from being bundled with other client components
|
|
21
|
+
export { CartQuery } from './components/CartProvider/cart-queries';
|
|
22
|
+
export { generateCacheControlHeader, NoStore, CacheSeconds, CacheMinutes, CacheHours, CacheDays, CacheWeeks, CacheMonths, CacheCustom, } from './framework/CachingStrategy';
|
|
23
|
+
export { fetchSync } from './foundation/fetchSync/server/fetchSync';
|
|
24
|
+
export { useServerAnalytics } from './foundation/Analytics';
|
|
25
|
+
export * as PerformanceMetricsServerAnalyticsConnector from './foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server';
|
|
26
|
+
export { PerformanceMetrics } from './foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.client';
|
|
27
|
+
export { PerformanceMetricsDebug } from './foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetricsDebug.client';
|
|
28
|
+
export { useSession } from './foundation/useSession/useSession';
|
|
29
|
+
export { CookieSessionStorage } from './foundation/CookieSessionStorage/CookieSessionStorage';
|
|
30
|
+
export { MemorySessionStorage } from './foundation/MemorySessionStorage/MemorySessionStorage';
|
|
31
|
+
export { Cookie } from './foundation/Cookie/Cookie';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FileSessionStorage } from './foundation/FileSessionStorage/FileSessionStorage';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FileSessionStorage } from './foundation/FileSessionStorage/FileSessionStorage';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import '../utilities/web-api-polyfill';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
// eslint-disable-next-line node/no-missing-import
|
|
5
|
+
import entrypoint from '__SERVER_ENTRY__';
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
// eslint-disable-next-line node/no-missing-import
|
|
8
|
+
import indexTemplate from '__INDEX_TEMPLATE__?raw';
|
|
9
|
+
import { hydrogenMiddleware } from '../framework/middleware';
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
import serveStatic from 'serve-static';
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
import compression from 'compression';
|
|
14
|
+
import bodyParser from 'body-parser';
|
|
15
|
+
import connect from 'connect';
|
|
16
|
+
const handleRequest = entrypoint;
|
|
17
|
+
export async function createServer({ cache } = {}) {
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
globalThis.Oxygen = { env: process.env };
|
|
20
|
+
const app = connect();
|
|
21
|
+
app.use(compression());
|
|
22
|
+
app.use(serveStatic(path.resolve(__dirname, '../client'), {
|
|
23
|
+
index: false,
|
|
24
|
+
}));
|
|
25
|
+
app.use(bodyParser.raw({ type: '*/*' }));
|
|
26
|
+
app.use(hydrogenMiddleware({
|
|
27
|
+
getServerEntrypoint: () => handleRequest,
|
|
28
|
+
indexTemplate,
|
|
29
|
+
cache,
|
|
30
|
+
}));
|
|
31
|
+
return { app };
|
|
32
|
+
}
|
|
33
|
+
if (require.main === module) {
|
|
34
|
+
createServer().then(({ app }) => {
|
|
35
|
+
const port = process.env.PORT || 8080;
|
|
36
|
+
app.listen(port, () => {
|
|
37
|
+
console.log(`Hydrogen server running at http://localhost:${port}`);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
var globalThis: {
|
|
3
|
+
Oxygen: {
|
|
4
|
+
env: any;
|
|
5
|
+
};
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
declare const _default: {
|
|
10
|
+
fetch(request: Request, env: unknown, context: {
|
|
11
|
+
waitUntil: (promise: Promise<any>) => void;
|
|
12
|
+
}): Promise<Response>;
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// @ts-ignore
|
|
2
|
+
// eslint-disable-next-line node/no-missing-import
|
|
3
|
+
import entrypoint from '__SERVER_ENTRY__';
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
// eslint-disable-next-line node/no-missing-import
|
|
6
|
+
import indexTemplate from '__INDEX_TEMPLATE__?raw';
|
|
7
|
+
const handleRequest = entrypoint;
|
|
8
|
+
export default {
|
|
9
|
+
async fetch(request, env, context) {
|
|
10
|
+
if (!globalThis.Oxygen) {
|
|
11
|
+
globalThis.Oxygen = { env };
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
return (await handleRequest(request, {
|
|
15
|
+
indexTemplate,
|
|
16
|
+
cache: await caches.open('oxygen'),
|
|
17
|
+
context,
|
|
18
|
+
buyerIpHeader: 'oxygen-buyer-ip',
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return new Response(error.message || error.toString(), { status: 500 });
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
};
|