@shopify/hydrogen 0.22.1 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +378 -0
- package/dist/esnext/components/AddToCartButton/AddToCartButton.client.d.ts +2 -5
- package/dist/esnext/components/AddToCartButton/AddToCartButton.client.js +18 -17
- package/dist/esnext/components/BaseButton/BaseButton.client.d.ts +14 -0
- package/dist/esnext/components/BaseButton/BaseButton.client.js +15 -0
- package/dist/esnext/components/BaseButton/index.d.ts +1 -0
- package/dist/esnext/components/BaseButton/index.js +1 -0
- package/dist/esnext/components/BuyNowButton/BuyNowButton.client.d.ts +2 -5
- package/dist/esnext/components/BuyNowButton/BuyNowButton.client.js +5 -4
- package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.js +4 -4
- package/dist/esnext/components/CartLinePrice/CartLinePrice.client.js +5 -8
- package/dist/esnext/components/CartLineProvider/context.d.ts +10 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.d.ts +4 -5
- package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.js +16 -14
- package/dist/esnext/components/CartLines/{CartLines.d.ts → CartLines.client.d.ts} +0 -0
- package/dist/esnext/components/CartLines/{CartLines.js → CartLines.client.js} +1 -1
- package/dist/esnext/components/CartLines/index.d.ts +1 -1
- package/dist/esnext/components/CartLines/index.js +1 -1
- package/dist/esnext/components/CartProvider/CartProvider.client.js +31 -38
- package/dist/esnext/components/CartProvider/cart-queries.d.ts +1 -1
- package/dist/esnext/components/CartProvider/cart-queries.js +11 -0
- package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +11 -1
- package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +11 -1
- package/dist/esnext/components/CartProvider/hooks.client.js +5 -8
- package/dist/esnext/components/CartProvider/types.d.ts +2 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.js +1 -1
- package/dist/esnext/components/Image/Image.d.ts +21 -0
- package/dist/esnext/components/Image/Image.js +88 -14
- package/dist/esnext/components/Link/Link.client.d.ts +2 -0
- package/dist/esnext/components/Link/Link.client.js +8 -5
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +2 -2
- package/dist/esnext/components/Metafield/Metafield.client.d.ts +6 -10
- package/dist/esnext/components/Metafield/Metafield.client.js +67 -31
- package/dist/esnext/components/Metafield/components/StarRating/StarRating.js +1 -1
- package/dist/esnext/components/ModelViewer/ModelViewer.client.js +2 -3
- package/dist/esnext/components/Money/Money.client.js +1 -1
- package/dist/esnext/components/ProductOptionsProvider/ProductOptionsProvider.client.d.ts +21 -0
- package/dist/esnext/components/ProductOptionsProvider/ProductOptionsProvider.client.js +133 -0
- package/dist/esnext/components/ProductOptionsProvider/context.d.ts +2 -0
- package/dist/esnext/components/{ProductProvider → ProductOptionsProvider}/context.js +0 -1
- package/dist/esnext/components/ProductOptionsProvider/index.d.ts +2 -0
- package/dist/esnext/components/ProductOptionsProvider/index.js +2 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +5 -2
- package/dist/esnext/components/ProductPrice/ProductPrice.client.js +10 -12
- package/dist/esnext/components/Seo/CollectionSeo.client.js +2 -3
- package/dist/esnext/components/Seo/DefaultPageSeo.client.js +3 -3
- package/dist/esnext/components/Seo/NoIndexSeo.client.js +2 -2
- package/dist/esnext/components/Seo/PageSeo.client.js +2 -3
- package/dist/esnext/components/Seo/ProductSeo.client.js +9 -10
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +2 -3
- package/dist/esnext/components/Video/Video.js +2 -3
- package/dist/esnext/components/index.d.ts +1 -1
- package/dist/esnext/components/index.js +1 -1
- package/dist/esnext/config.d.ts +4 -0
- package/dist/esnext/config.js +4 -0
- package/dist/esnext/constants.d.ts +2 -0
- package/dist/esnext/constants.js +2 -0
- package/dist/esnext/entry-client.js +107 -21
- package/dist/esnext/entry-server.d.ts +2 -31
- package/dist/esnext/entry-server.js +400 -335
- package/dist/esnext/foundation/Analytics/Analytics.client.js +15 -13
- package/dist/esnext/foundation/Analytics/Analytics.server.js +27 -20
- package/dist/esnext/foundation/Analytics/ClientAnalytics.d.ts +4 -2
- package/dist/esnext/foundation/Analytics/ClientAnalytics.js +16 -14
- package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.d.ts +4 -0
- package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.js +36 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/ServerAnalyticsConnector.d.ts +3 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/ServerAnalyticsConnector.js +27 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/ServerAnalyticsConnector.d.ts +3 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/ServerAnalyticsConnector.js +21 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/ShopifyAnalytics.client.d.ts +3 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/ShopifyAnalytics.client.js +190 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/ShopifyAnalytics.server.d.ts +3 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/ShopifyAnalytics.server.js +23 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/const.d.ts +28 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/const.js +51 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/utils.d.ts +3 -0
- package/dist/esnext/foundation/Analytics/connectors/Shopify/utils.js +56 -0
- package/dist/esnext/foundation/Analytics/hook.js +4 -2
- package/dist/esnext/foundation/Analytics/utils.d.ts +2 -0
- package/dist/esnext/foundation/Analytics/utils.js +21 -0
- package/dist/esnext/foundation/BuiltInRoutes/BuiltInRoutes.d.ts +2 -0
- package/dist/esnext/foundation/BuiltInRoutes/BuiltInRoutes.js +23 -0
- package/dist/esnext/foundation/BuiltInRoutes/healthCheck.d.ts +1 -0
- package/dist/esnext/foundation/BuiltInRoutes/healthCheck.js +3 -0
- package/dist/{node/framework → esnext/foundation/Cache}/cache-sub-request.d.ts +1 -1
- package/dist/esnext/{framework → foundation/Cache}/cache-sub-request.js +4 -4
- package/dist/esnext/{framework → foundation/Cache}/cache.d.ts +1 -1
- package/dist/esnext/{framework → foundation/Cache}/cache.js +4 -4
- package/dist/esnext/foundation/Cache/strategies/index.d.ts +7 -0
- package/dist/esnext/foundation/Cache/strategies/index.js +54 -0
- package/dist/esnext/foundation/Cookie/Cookie.d.ts +3 -3
- package/dist/esnext/foundation/Cookie/Cookie.js +5 -0
- package/dist/esnext/foundation/DevTools/DevTools.client.d.ts +3 -0
- package/dist/esnext/foundation/DevTools/DevTools.client.js +17 -0
- package/dist/esnext/foundation/DevTools/DevTools.server.d.ts +1 -0
- package/dist/esnext/foundation/DevTools/DevTools.server.js +14 -0
- package/dist/esnext/foundation/DevTools/components/GraphQL.client.d.ts +1 -0
- package/dist/esnext/foundation/DevTools/components/GraphQL.client.js +25 -0
- package/dist/esnext/foundation/DevTools/components/Heading.d.ts +5 -0
- package/dist/esnext/foundation/DevTools/components/Heading.js +12 -0
- package/dist/esnext/foundation/DevTools/components/Interface.client.d.ts +11 -0
- package/dist/esnext/foundation/DevTools/components/Interface.client.js +47 -0
- package/dist/esnext/foundation/DevTools/components/Panels.d.ts +8 -0
- package/dist/esnext/foundation/DevTools/components/Panels.js +60 -0
- package/dist/esnext/foundation/DevTools/components/Performance.client.d.ts +14 -0
- package/dist/esnext/foundation/DevTools/components/Performance.client.js +26 -0
- package/dist/esnext/foundation/DevTools/components/Settings.client.d.ts +7 -0
- package/dist/esnext/foundation/DevTools/components/Settings.client.js +20 -0
- package/dist/esnext/foundation/DevTools/components/Table.d.ts +9 -0
- package/dist/esnext/foundation/DevTools/components/Table.js +7 -0
- package/dist/esnext/foundation/DevTools/components/icons.d.ts +2 -0
- package/dist/esnext/foundation/DevTools/components/icons.js +13 -0
- package/dist/esnext/foundation/DevTools/components/index.d.ts +2 -0
- package/dist/esnext/foundation/DevTools/components/index.js +2 -0
- package/dist/esnext/foundation/FileRoutes/FileRoutes.server.js +4 -4
- package/dist/{node/framework/Hydration → esnext/foundation/Html}/Html.d.ts +3 -1
- package/dist/esnext/{framework/Hydration → foundation/Html}/Html.js +15 -5
- package/dist/esnext/{framework/Hydration/ServerComponentRequest.server.d.ts → foundation/HydrogenRequest/HydrogenRequest.server.d.ts} +14 -4
- package/dist/esnext/{framework/Hydration/ServerComponentRequest.server.js → foundation/HydrogenRequest/HydrogenRequest.server.js} +70 -12
- package/dist/esnext/{framework/Hydration/ServerComponentResponse.server.d.ts → foundation/HydrogenResponse/HydrogenResponse.server.d.ts} +6 -11
- package/dist/esnext/foundation/HydrogenResponse/HydrogenResponse.server.js +48 -0
- package/dist/esnext/foundation/Router/BrowserRouter.client.js +15 -9
- package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +2 -1
- package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.js +1 -1
- package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +5 -6
- package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.js +19 -24
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.d.ts +1 -1
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.js +1 -1
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.js +4 -5
- package/dist/esnext/foundation/fetchSync/server/fetchSync.js +1 -1
- package/dist/esnext/foundation/index.d.ts +1 -1
- package/dist/esnext/foundation/index.js +1 -1
- package/dist/esnext/foundation/runtime.d.ts +2 -0
- package/dist/esnext/foundation/runtime.js +6 -0
- package/dist/esnext/foundation/session/session.d.ts +3 -3
- package/dist/esnext/foundation/ssr-interop.d.ts +2 -2
- package/dist/esnext/foundation/useNavigate/useNavigate.d.ts +2 -0
- package/dist/esnext/foundation/useNavigate/useNavigate.js +10 -4
- package/dist/esnext/foundation/useQuery/hooks.d.ts +1 -0
- package/dist/esnext/foundation/useQuery/hooks.js +29 -18
- package/dist/esnext/foundation/useRequestContext/index.d.ts +15 -0
- package/dist/esnext/foundation/useRequestContext/index.js +23 -0
- package/dist/esnext/foundation/useServerProps/use-server-props.js +2 -2
- package/dist/esnext/foundation/useSession/useSession.js +1 -2
- package/dist/esnext/foundation/useUrl/useUrl.js +1 -2
- package/dist/esnext/framework/cache/in-memory.js +3 -3
- package/dist/esnext/framework/middleware.d.ts +1 -1
- package/dist/esnext/framework/middleware.js +3 -4
- package/dist/esnext/framework/plugin.d.ts +7 -3
- package/dist/esnext/framework/plugin.js +4 -1
- package/dist/esnext/framework/plugins/vite-plugin-client-imports.js +1 -1
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +70 -64
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +1 -1
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +3 -4
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-rsc.js +5 -13
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-suppress-warnings.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-suppress-warnings.js +19 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-virtual-files.d.ts +1 -1
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-virtual-files.js +6 -4
- package/dist/esnext/framework/types.d.ts +5 -0
- package/dist/esnext/framework/types.js +1 -0
- package/dist/esnext/hooks/index.d.ts +0 -1
- package/dist/esnext/hooks/index.js +0 -1
- package/dist/esnext/hooks/useCartLine/useCartLine.d.ts +10 -0
- package/dist/esnext/hooks/useMoney/hooks.js +53 -39
- package/dist/esnext/hooks/useProductOptions/helpers.js +6 -10
- package/dist/esnext/hooks/useProductOptions/types.d.ts +17 -15
- package/dist/esnext/hooks/useProductOptions/useProductOptions.client.d.ts +1 -15
- package/dist/esnext/hooks/useProductOptions/useProductOptions.client.js +8 -107
- package/dist/esnext/hooks/useShopQuery/hooks.js +30 -18
- package/dist/esnext/index.d.ts +7 -5
- package/dist/esnext/index.js +5 -5
- package/dist/esnext/shared-types.d.ts +26 -0
- package/dist/esnext/shared-types.js +4 -0
- package/dist/esnext/storefront-api-types.d.ts +37 -443
- package/dist/esnext/streaming.server.d.ts +9 -19
- package/dist/esnext/streaming.server.js +2 -11
- package/dist/esnext/types.d.ts +40 -40
- package/dist/esnext/types.js +1 -1
- package/dist/esnext/utilities/apiRoutes.d.ts +8 -4
- package/dist/esnext/utilities/apiRoutes.js +6 -4
- package/dist/esnext/utilities/devtools.d.ts +1 -1
- package/dist/esnext/utilities/devtools.js +3 -3
- package/dist/esnext/utilities/flattenConnection/flattenConnection.d.ts +1 -0
- package/dist/esnext/utilities/flattenConnection/flattenConnection.js +13 -6
- package/dist/esnext/utilities/graphql-tracker.js +7 -9
- package/dist/esnext/utilities/hash.d.ts +2 -2
- package/dist/esnext/utilities/hash.js +29 -6
- package/dist/esnext/utilities/image_size.d.ts +24 -3
- package/dist/esnext/utilities/image_size.js +53 -31
- package/dist/esnext/utilities/index.d.ts +2 -2
- package/dist/esnext/utilities/index.js +2 -2
- package/dist/esnext/utilities/isBrowser/index.d.ts +1 -0
- package/dist/esnext/utilities/isBrowser/index.js +1 -0
- package/dist/esnext/utilities/isBrowser/isBrowser.d.ts +4 -0
- package/dist/esnext/utilities/isBrowser/isBrowser.js +6 -0
- package/dist/esnext/utilities/isServer/isServer.js +2 -2
- package/dist/esnext/utilities/load_script.js +1 -1
- package/dist/esnext/utilities/log/index.d.ts +1 -1
- package/dist/esnext/utilities/log/index.js +1 -1
- package/dist/esnext/utilities/log/log-cache-api-status.js +3 -2
- package/dist/esnext/utilities/log/log-cache-header.d.ts +4 -4
- package/dist/esnext/utilities/log/log-query-timeline.d.ts +3 -3
- package/dist/esnext/utilities/log/log-query-timeline.js +29 -10
- package/dist/esnext/utilities/log/log.d.ts +17 -11
- package/dist/esnext/utilities/log/log.js +28 -20
- package/dist/esnext/utilities/log/utils.js +1 -6
- package/dist/esnext/utilities/parseMetafield/index.d.ts +1 -0
- package/dist/esnext/utilities/parseMetafield/index.js +1 -0
- package/dist/esnext/utilities/parseMetafield/parseMetafield.d.ts +15 -0
- package/dist/esnext/utilities/{parseMetafieldValue/parseMetafieldValue.js → parseMetafield/parseMetafield.js} +28 -2
- package/dist/esnext/utilities/storefrontApi.js +9 -5
- package/dist/esnext/utilities/template.js +1 -2
- package/dist/esnext/utilities/web-api-polyfill.js +6 -0
- package/dist/esnext/version.d.ts +1 -1
- package/dist/esnext/version.js +1 -1
- package/dist/node/framework/cache/in-memory.js +3 -3
- package/dist/node/framework/middleware.d.ts +1 -1
- package/dist/node/framework/middleware.js +3 -4
- package/dist/node/framework/plugin.d.ts +4 -3
- package/dist/node/framework/plugin.js +5 -2
- package/dist/node/framework/plugins/vite-plugin-client-imports.js +1 -1
- package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +70 -64
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +1 -1
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +3 -4
- package/dist/node/framework/plugins/vite-plugin-hydrogen-rsc.js +6 -14
- package/dist/node/framework/plugins/vite-plugin-hydrogen-suppress-warnings.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-suppress-warnings.js +21 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-virtual-files.d.ts +1 -1
- package/dist/node/framework/plugins/vite-plugin-hydrogen-virtual-files.js +6 -4
- package/dist/node/framework/types.d.ts +5 -0
- package/dist/node/{foundation/Analytics → framework}/types.js +0 -0
- package/dist/node/shared-types.d.ts +26 -0
- package/dist/node/shared-types.js +5 -0
- package/dist/node/utilities/web-api-polyfill.js +6 -0
- package/package.json +34 -26
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-plugin.js +275 -60
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.development.server.js +119 -64
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.production.min.server.js +33 -32
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.development.server.js +241 -75
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.production.min.server.js +38 -35
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.development.js +9 -8
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.production.min.js +3 -3
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js +3 -9
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-plugin.js +276 -61
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.browser.server.js +119 -64
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.node.server.js +241 -75
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite.js +9 -8
- package/vendor/react-server-dom-vite/package.json +1 -1
- package/client.d.ts +0 -1
- package/client.js +0 -1
- package/config.d.ts +0 -1
- package/config.js +0 -1
- package/dist/esnext/components/DevTools.client.d.ts +0 -1
- package/dist/esnext/components/DevTools.client.js +0 -129
- package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.d.ts +0 -8
- package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.js +0 -12
- package/dist/esnext/components/ProductProvider/ProductProvider.client.d.ts +0 -24
- package/dist/esnext/components/ProductProvider/ProductProvider.client.js +0 -34
- package/dist/esnext/components/ProductProvider/context.d.ts +0 -29
- package/dist/esnext/components/ProductProvider/index.d.ts +0 -2
- package/dist/esnext/components/ProductProvider/index.js +0 -2
- package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +0 -2
- package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.js +0 -33
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.d.ts +0 -1
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.js +0 -24
- package/dist/esnext/framework/CachingStrategy/index.d.ts +0 -10
- package/dist/esnext/framework/CachingStrategy/index.js +0 -96
- package/dist/esnext/framework/Hydration/Html.d.ts +0 -11
- package/dist/esnext/framework/Hydration/ServerComponentResponse.server.js +0 -42
- package/dist/esnext/framework/Hydration/rsc.d.ts +0 -8
- package/dist/esnext/framework/Hydration/rsc.js +0 -100
- package/dist/esnext/framework/cache-sub-request.d.ts +0 -17
- package/dist/esnext/framework/config.d.ts +0 -6
- package/dist/esnext/framework/config.js +0 -6
- package/dist/esnext/framework/runtime.d.ts +0 -13
- package/dist/esnext/framework/runtime.js +0 -27
- package/dist/esnext/hooks/useParsedMetafields/index.d.ts +0 -1
- package/dist/esnext/hooks/useParsedMetafields/index.js +0 -1
- package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.d.ts +0 -21
- package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.js +0 -21
- package/dist/esnext/hooks/useProduct/index.d.ts +0 -1
- package/dist/esnext/hooks/useProduct/index.js +0 -1
- package/dist/esnext/hooks/useProduct/useProduct.d.ts +0 -52
- package/dist/esnext/hooks/useProduct/useProduct.js +0 -43
- package/dist/esnext/utilities/isClient/index.d.ts +0 -1
- package/dist/esnext/utilities/isClient/index.js +0 -1
- package/dist/esnext/utilities/isClient/isClient.d.ts +0 -4
- package/dist/esnext/utilities/isClient/isClient.js +0 -6
- package/dist/esnext/utilities/parseMetafieldValue/index.d.ts +0 -1
- package/dist/esnext/utilities/parseMetafieldValue/index.js +0 -1
- package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +0 -6
- package/dist/node/components/Image/Image.d.ts +0 -84
- package/dist/node/components/Image/Image.js +0 -89
- package/dist/node/components/Image/index.d.ts +0 -2
- package/dist/node/components/Image/index.js +0 -5
- package/dist/node/constants.d.ts +0 -7
- package/dist/node/constants.js +0 -10
- package/dist/node/entry-server.d.ts +0 -35
- package/dist/node/entry-server.js +0 -571
- package/dist/node/foundation/Analytics/Analytics.client.d.ts +0 -3
- package/dist/node/foundation/Analytics/Analytics.client.js +0 -32
- package/dist/node/foundation/Analytics/Analytics.server.d.ts +0 -1
- package/dist/node/foundation/Analytics/Analytics.server.js +0 -70
- package/dist/node/foundation/Analytics/ClientAnalytics.d.ts +0 -25
- package/dist/node/foundation/Analytics/ClientAnalytics.js +0 -100
- package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +0 -2
- package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.js +0 -37
- package/dist/node/foundation/Analytics/const.d.ts +0 -9
- package/dist/node/foundation/Analytics/const.js +0 -12
- package/dist/node/foundation/Analytics/hook.d.ts +0 -1
- package/dist/node/foundation/Analytics/hook.js +0 -11
- package/dist/node/foundation/Analytics/types.d.ts +0 -5
- package/dist/node/foundation/Analytics/utils.d.ts +0 -1
- package/dist/node/foundation/Analytics/utils.js +0 -12
- package/dist/node/foundation/AnalyticsErrorBoundary.client.d.ts +0 -4
- package/dist/node/foundation/AnalyticsErrorBoundary.client.js +0 -14
- package/dist/node/foundation/Redirect/Redirect.client.d.ts +0 -5
- package/dist/node/foundation/Redirect/Redirect.client.js +0 -18
- package/dist/node/foundation/Router/BrowserRouter.client.d.ts +0 -14
- package/dist/node/foundation/Router/BrowserRouter.client.js +0 -159
- package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +0 -40
- package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.js +0 -90
- package/dist/node/foundation/ServerPropsProvider/index.d.ts +0 -2
- package/dist/node/foundation/ServerPropsProvider/index.js +0 -6
- package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +0 -23
- package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.js +0 -158
- package/dist/node/foundation/ServerRequestProvider/index.d.ts +0 -1
- package/dist/node/foundation/ServerRequestProvider/index.js +0 -17
- package/dist/node/foundation/ShopifyProvider/types.d.ts +0 -13
- package/dist/node/foundation/ShopifyProvider/types.js +0 -2
- package/dist/node/foundation/session/session.d.ts +0 -27
- package/dist/node/foundation/session/session.js +0 -43
- package/dist/node/foundation/ssr-interop.d.ts +0 -29
- package/dist/node/foundation/ssr-interop.js +0 -39
- package/dist/node/foundation/useNavigate/useNavigate.d.ts +0 -13
- package/dist/node/foundation/useNavigate/useNavigate.js +0 -18
- package/dist/node/foundation/useServerProps/use-server-props.d.ts +0 -21
- package/dist/node/foundation/useServerProps/use-server-props.js +0 -40
- package/dist/node/framework/CachingStrategy/index.d.ts +0 -10
- package/dist/node/framework/CachingStrategy/index.js +0 -108
- package/dist/node/framework/Hydration/Html.js +0 -94
- package/dist/node/framework/Hydration/ServerComponentRequest.server.d.ts +0 -58
- package/dist/node/framework/Hydration/ServerComponentRequest.server.js +0 -150
- package/dist/node/framework/Hydration/ServerComponentResponse.server.d.ts +0 -26
- package/dist/node/framework/Hydration/ServerComponentResponse.server.js +0 -49
- package/dist/node/framework/Hydration/rsc.d.ts +0 -8
- package/dist/node/framework/Hydration/rsc.js +0 -103
- package/dist/node/framework/cache-sub-request.js +0 -95
- package/dist/node/framework/cache.d.ts +0 -17
- package/dist/node/framework/cache.js +0 -135
- package/dist/node/framework/config.d.ts +0 -6
- package/dist/node/framework/config.js +0 -11
- package/dist/node/framework/runtime.d.ts +0 -13
- package/dist/node/framework/runtime.js +0 -35
- package/dist/node/storefront-api-types.d.ts +0 -6405
- package/dist/node/storefront-api-types.js +0 -1766
- package/dist/node/streaming.server.d.ts +0 -26
- package/dist/node/streaming.server.js +0 -33
- package/dist/node/types.d.ts +0 -105
- package/dist/node/types.js +0 -2
- package/dist/node/utilities/apiRoutes.d.ts +0 -37
- package/dist/node/utilities/apiRoutes.js +0 -157
- package/dist/node/utilities/bot-ua.d.ts +0 -4
- package/dist/node/utilities/bot-ua.js +0 -65
- package/dist/node/utilities/defer.d.ts +0 -6
- package/dist/node/utilities/defer.js +0 -18
- package/dist/node/utilities/error.d.ts +0 -1
- package/dist/node/utilities/error.js +0 -10
- package/dist/node/utilities/fetch.d.ts +0 -9
- package/dist/node/utilities/fetch.js +0 -37
- package/dist/node/utilities/flattenConnection/flattenConnection.d.ts +0 -6
- package/dist/node/utilities/flattenConnection/flattenConnection.js +0 -15
- package/dist/node/utilities/flattenConnection/index.d.ts +0 -1
- package/dist/node/utilities/flattenConnection/index.js +0 -5
- package/dist/node/utilities/hash.d.ts +0 -2
- package/dist/node/utilities/hash.js +0 -11
- package/dist/node/utilities/html-encoding.d.ts +0 -1
- package/dist/node/utilities/html-encoding.js +0 -12
- package/dist/node/utilities/image_size.d.ts +0 -12
- package/dist/node/utilities/image_size.js +0 -68
- package/dist/node/utilities/index.d.ts +0 -12
- package/dist/node/utilities/index.js +0 -33
- package/dist/node/utilities/isClient/index.d.ts +0 -1
- package/dist/node/utilities/isClient/index.js +0 -5
- package/dist/node/utilities/isClient/isClient.d.ts +0 -4
- package/dist/node/utilities/isClient/isClient.js +0 -10
- package/dist/node/utilities/isServer/index.d.ts +0 -1
- package/dist/node/utilities/isServer/index.js +0 -5
- package/dist/node/utilities/isServer/isServer.d.ts +0 -4
- package/dist/node/utilities/isServer/isServer.js +0 -11
- package/dist/node/utilities/load_script.d.ts +0 -3
- package/dist/node/utilities/load_script.js +0 -27
- package/dist/node/utilities/log/index.d.ts +0 -4
- package/dist/node/utilities/log/index.js +0 -18
- package/dist/node/utilities/log/log-cache-api-status.d.ts +0 -1
- package/dist/node/utilities/log/log-cache-api-status.js +0 -17
- package/dist/node/utilities/log/log-cache-header.d.ts +0 -10
- package/dist/node/utilities/log/log-cache-header.js +0 -35
- package/dist/node/utilities/log/log-query-timeline.d.ts +0 -12
- package/dist/node/utilities/log/log-query-timeline.js +0 -88
- package/dist/node/utilities/log/log.d.ts +0 -22
- package/dist/node/utilities/log/log.js +0 -74
- package/dist/node/utilities/log/utils.d.ts +0 -3
- package/dist/node/utilities/log/utils.js +0 -21
- package/dist/node/utilities/matchPath.d.ts +0 -10
- package/dist/node/utilities/matchPath.js +0 -58
- package/dist/node/utilities/measurement.d.ts +0 -3
- package/dist/node/utilities/measurement.js +0 -103
- package/dist/node/utilities/parse.d.ts +0 -1
- package/dist/node/utilities/parse.js +0 -13
- package/dist/node/utilities/parseMetafieldValue/index.d.ts +0 -1
- package/dist/node/utilities/parseMetafieldValue/index.js +0 -5
- package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +0 -6
- package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.js +0 -40
- package/dist/node/utilities/storefrontApi.d.ts +0 -4
- package/dist/node/utilities/storefrontApi.js +0 -26
- package/dist/node/utilities/suspense.d.ts +0 -12
- package/dist/node/utilities/suspense.js +0 -64
- package/dist/node/utilities/template.d.ts +0 -9
- package/dist/node/utilities/template.js +0 -27
- package/dist/node/utilities/timing.d.ts +0 -7
- package/dist/node/utilities/timing.js +0 -18
- package/dist/node/utilities/video_parameters.d.ts +0 -47
- package/dist/node/utilities/video_parameters.js +0 -27
- package/dist/node/version.d.ts +0 -1
- package/dist/node/version.js +0 -4
- package/entry-client.d.ts +0 -1
- package/entry-client.js +0 -1
- package/entry-server.d.ts +0 -1
- package/entry-server.js +0 -1
- package/middleware.d.ts +0 -1
- package/middleware.js +0 -1
- package/plugin.d.ts +0 -1
- package/plugin.js +0 -1
- package/web-polyfills.js +0 -1
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.preloadRequestCacheData = exports.useRequestCacheData = exports.useServerRequest = exports.ServerRequestProvider = void 0;
|
|
27
|
-
const react_1 = __importStar(require("react"));
|
|
28
|
-
const timing_1 = require("../../utilities/timing");
|
|
29
|
-
const hash_1 = require("../../utilities/hash");
|
|
30
|
-
const log_1 = require("../../utilities/log");
|
|
31
|
-
// Context to inject current request in SSR
|
|
32
|
-
const RequestContextSSR = (0, react_1.createContext)(null);
|
|
33
|
-
// Cache to inject current request in RSC
|
|
34
|
-
function requestCacheRSC() {
|
|
35
|
-
return new Map();
|
|
36
|
-
}
|
|
37
|
-
requestCacheRSC.key = Symbol.for('HYDROGEN_REQUEST');
|
|
38
|
-
// Note: use this only during RSC/Flight rendering. The React dispatcher
|
|
39
|
-
// for SSR/Fizz rendering does not implement getCacheForType.
|
|
40
|
-
function getCacheForType(resource) {
|
|
41
|
-
var _a;
|
|
42
|
-
const dispatcher =
|
|
43
|
-
// @ts-ignore
|
|
44
|
-
react_1.default.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
|
|
45
|
-
.ReactCurrentDispatcher.current;
|
|
46
|
-
// @ts-ignore
|
|
47
|
-
if (__DEV__ && typeof jest !== 'undefined' && !dispatcher.getCacheForType) {
|
|
48
|
-
// Jest does not have access to the RSC runtime, mock it here:
|
|
49
|
-
// @ts-ignore
|
|
50
|
-
return ((_a = globalThis.__jestRscCache) !== null && _a !== void 0 ? _a : (globalThis.__jestRscCache = resource()));
|
|
51
|
-
}
|
|
52
|
-
return dispatcher.getCacheForType(resource);
|
|
53
|
-
}
|
|
54
|
-
function ServerRequestProvider({ isRSC, request, children, }) {
|
|
55
|
-
if (isRSC) {
|
|
56
|
-
// Save the request object in a React cache that is
|
|
57
|
-
// scoped to this current rendering.
|
|
58
|
-
const requestCache = getCacheForType(requestCacheRSC);
|
|
59
|
-
requestCache.set(requestCacheRSC.key, request);
|
|
60
|
-
return children;
|
|
61
|
-
}
|
|
62
|
-
// Use a normal provider in SSR to make the request object
|
|
63
|
-
// available in the current rendering.
|
|
64
|
-
return (react_1.default.createElement(RequestContextSSR.Provider, { value: request }, children));
|
|
65
|
-
}
|
|
66
|
-
exports.ServerRequestProvider = ServerRequestProvider;
|
|
67
|
-
function useServerRequest() {
|
|
68
|
-
let request;
|
|
69
|
-
try {
|
|
70
|
-
// This cache only works during RSC rendering:
|
|
71
|
-
// @ts-ignore
|
|
72
|
-
const cache = getCacheForType(requestCacheRSC);
|
|
73
|
-
request = cache ? cache.get(requestCacheRSC.key) : null;
|
|
74
|
-
}
|
|
75
|
-
catch (_a) {
|
|
76
|
-
// If RSC cache failed it means this is not an RSC request.
|
|
77
|
-
// Try getting SSR context instead:
|
|
78
|
-
request = (0, react_1.useContext)(RequestContextSSR); // eslint-disable-line react-hooks/rules-of-hooks
|
|
79
|
-
}
|
|
80
|
-
if (!request) {
|
|
81
|
-
// @ts-ignore
|
|
82
|
-
if (__DEV__ && typeof jest !== 'undefined') {
|
|
83
|
-
// Unit tests are not wrapped in ServerRequestProvider.
|
|
84
|
-
// This mocks it, instead of providing it in every test.
|
|
85
|
-
return { ctx: {} };
|
|
86
|
-
}
|
|
87
|
-
throw new Error('No ServerRequest Context found');
|
|
88
|
-
}
|
|
89
|
-
return request;
|
|
90
|
-
}
|
|
91
|
-
exports.useServerRequest = useServerRequest;
|
|
92
|
-
/**
|
|
93
|
-
* Returns data stored in the request cache.
|
|
94
|
-
* It will throw the promise if data is not ready.
|
|
95
|
-
*/
|
|
96
|
-
function useRequestCacheData(key, fetcher) {
|
|
97
|
-
const request = useServerRequest();
|
|
98
|
-
const cache = request.ctx.cache;
|
|
99
|
-
const cacheKey = (0, hash_1.hashKey)(key);
|
|
100
|
-
if (!cache.has(cacheKey)) {
|
|
101
|
-
let result;
|
|
102
|
-
let promise;
|
|
103
|
-
cache.set(cacheKey, () => {
|
|
104
|
-
if (result !== undefined) {
|
|
105
|
-
(0, log_1.collectQueryTimings)(request, key, 'rendered');
|
|
106
|
-
return result;
|
|
107
|
-
}
|
|
108
|
-
if (!promise) {
|
|
109
|
-
const startApiTime = (0, timing_1.getTime)();
|
|
110
|
-
const maybePromise = fetcher();
|
|
111
|
-
if (!(maybePromise instanceof Promise)) {
|
|
112
|
-
result = { data: maybePromise };
|
|
113
|
-
return result;
|
|
114
|
-
}
|
|
115
|
-
promise = maybePromise.then((data) => {
|
|
116
|
-
result = { data };
|
|
117
|
-
(0, log_1.collectQueryTimings)(request, key, 'resolved', (0, timing_1.getTime)() - startApiTime);
|
|
118
|
-
}, (error) => (result = { error }));
|
|
119
|
-
}
|
|
120
|
-
throw promise;
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
// Making sure the promise has returned data because it can be initated by a preload request,
|
|
124
|
-
// otherwise, we throw the promise
|
|
125
|
-
const result = cache.get(cacheKey).call();
|
|
126
|
-
if (result instanceof Promise)
|
|
127
|
-
throw result;
|
|
128
|
-
return result;
|
|
129
|
-
}
|
|
130
|
-
exports.useRequestCacheData = useRequestCacheData;
|
|
131
|
-
function preloadRequestCacheData(request, preloadQueries) {
|
|
132
|
-
const cache = request.ctx.cache;
|
|
133
|
-
preloadQueries === null || preloadQueries === void 0 ? void 0 : preloadQueries.forEach((preloadQuery, cacheKey) => {
|
|
134
|
-
(0, log_1.collectQueryTimings)(request, preloadQuery.key, 'preload');
|
|
135
|
-
if (!cache.has(cacheKey)) {
|
|
136
|
-
let result;
|
|
137
|
-
let promise;
|
|
138
|
-
cache.set(cacheKey, () => {
|
|
139
|
-
if (result !== undefined) {
|
|
140
|
-
(0, log_1.collectQueryTimings)(request, preloadQuery.key, 'rendered');
|
|
141
|
-
return result;
|
|
142
|
-
}
|
|
143
|
-
if (!promise) {
|
|
144
|
-
const startApiTime = (0, timing_1.getTime)();
|
|
145
|
-
promise = preloadQuery.fetcher().then((data) => {
|
|
146
|
-
result = { data };
|
|
147
|
-
(0, log_1.collectQueryTimings)(request, preloadQuery.key, 'resolved', (0, timing_1.getTime)() - startApiTime);
|
|
148
|
-
}, (error) => {
|
|
149
|
-
result = { error };
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
return promise;
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
cache.get(cacheKey).call();
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
exports.preloadRequestCacheData = preloadRequestCacheData;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ServerRequestProvider';
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./ServerRequestProvider"), exports);
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { CountryCode, LanguageCode } from '../../storefront-api-types';
|
|
2
|
-
import type { ReactNode } from 'react';
|
|
3
|
-
import type { ShopifyConfigFetcher, ShopifyConfig } from '../../types';
|
|
4
|
-
export interface ShopifyContextValue extends Omit<ShopifyConfig, 'defaultLocale'> {
|
|
5
|
-
locale: `${LanguageCode}-${CountryCode}`;
|
|
6
|
-
languageCode: `${LanguageCode}`;
|
|
7
|
-
}
|
|
8
|
-
export declare type ShopifyProviderProps = {
|
|
9
|
-
/** Shopify connection information. Defaults to the `shopify` property in the `hydrogen.config.js` file. */
|
|
10
|
-
shopifyConfig?: ShopifyConfig | ShopifyConfigFetcher;
|
|
11
|
-
/** Any `ReactNode` elements. */
|
|
12
|
-
children?: ReactNode;
|
|
13
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Logger } from '../../utilities/log';
|
|
2
|
-
import type { ServerComponentResponse } from '../../framework/Hydration/ServerComponentResponse.server';
|
|
3
|
-
import type { ServerComponentRequest } from '../../framework/Hydration/ServerComponentRequest.server';
|
|
4
|
-
export declare type SessionSyncApi = {
|
|
5
|
-
get: () => Record<string, string>;
|
|
6
|
-
};
|
|
7
|
-
export declare type SessionApi = {
|
|
8
|
-
get: () => Promise<Record<string, string>>;
|
|
9
|
-
set: (key: string, value: string) => Promise<void>;
|
|
10
|
-
destroy: () => Promise<void>;
|
|
11
|
-
};
|
|
12
|
-
export declare type SessionStorageAdapter = {
|
|
13
|
-
get: (request: Request) => Promise<Record<string, string>>;
|
|
14
|
-
set: (request: Request, value: Record<string, string>) => Promise<string>;
|
|
15
|
-
destroy: (request: Request) => Promise<string>;
|
|
16
|
-
};
|
|
17
|
-
export declare function getSyncSessionApi(request: ServerComponentRequest, componentResponse: ServerComponentResponse, log: Logger, session?: SessionStorageAdapter): {
|
|
18
|
-
get(): any;
|
|
19
|
-
};
|
|
20
|
-
export declare const emptySessionImplementation: (log: Logger) => {
|
|
21
|
-
get(): Promise<{}>;
|
|
22
|
-
set(key: string, value: string): Promise<void>;
|
|
23
|
-
destroy(): Promise<void>;
|
|
24
|
-
};
|
|
25
|
-
export declare const emptySyncSessionImplementation: (log: Logger) => {
|
|
26
|
-
get(): {};
|
|
27
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.emptySyncSessionImplementation = exports.emptySessionImplementation = exports.getSyncSessionApi = void 0;
|
|
4
|
-
const suspense_1 = require("../../utilities/suspense");
|
|
5
|
-
function getSyncSessionApi(request, componentResponse, log, session) {
|
|
6
|
-
const sessionPromises = {};
|
|
7
|
-
return session
|
|
8
|
-
? {
|
|
9
|
-
get() {
|
|
10
|
-
if (!sessionPromises.getPromise) {
|
|
11
|
-
sessionPromises.getPromise = (0, suspense_1.wrapPromise)(session.get(request));
|
|
12
|
-
}
|
|
13
|
-
return sessionPromises.getPromise.read();
|
|
14
|
-
},
|
|
15
|
-
}
|
|
16
|
-
: (0, exports.emptySyncSessionImplementation)(log);
|
|
17
|
-
}
|
|
18
|
-
exports.getSyncSessionApi = getSyncSessionApi;
|
|
19
|
-
const emptySessionImplementation = function (log) {
|
|
20
|
-
return {
|
|
21
|
-
async get() {
|
|
22
|
-
log.warn('No session adapter has been configured!');
|
|
23
|
-
return {};
|
|
24
|
-
},
|
|
25
|
-
async set(key, value) {
|
|
26
|
-
log.warn('No session adapter has been configured!');
|
|
27
|
-
},
|
|
28
|
-
async destroy() {
|
|
29
|
-
log.warn('No session adapter has been configured!');
|
|
30
|
-
return;
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
exports.emptySessionImplementation = emptySessionImplementation;
|
|
35
|
-
const emptySyncSessionImplementation = function (log) {
|
|
36
|
-
return {
|
|
37
|
-
get() {
|
|
38
|
-
log.warn('No session adapter has been configured!');
|
|
39
|
-
return {};
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
exports.emptySyncSessionImplementation = emptySyncSessionImplementation;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is used for compatibility between browser and server environments.
|
|
3
|
-
* The browser loads this file as is, without leaking server logic.
|
|
4
|
-
* In the server, this file is transformed by Vite to inject server logic.
|
|
5
|
-
* NOTE: Do not remove SSR-prefixed comments in this file.
|
|
6
|
-
*/
|
|
7
|
-
import type { ServerComponentRequest } from '../framework/Hydration/ServerComponentRequest.server';
|
|
8
|
-
export declare const META_ENV_SSR = false;
|
|
9
|
-
declare type ServerGetter<T> = (request: ServerComponentRequest) => T;
|
|
10
|
-
/**
|
|
11
|
-
* Isomorphic hook to access context data. It gives access to the current request
|
|
12
|
-
* when running on the server, and returns the provided client fallback in the browser.
|
|
13
|
-
* This can be used in server components (RSC) as a Context/Provider replacement. In client
|
|
14
|
-
* components, it uses the server getter in SSR and the client fallback in the browser.
|
|
15
|
-
* @param serverGetter - A function that gets the current server request and returns any
|
|
16
|
-
* desired request property. It only runs in the server (both in RSC and SSR).
|
|
17
|
-
* @param clientFallback - An optional raw value or a React.Context to be consumed that will be
|
|
18
|
-
* returned if the current environment is not the server. Note that, if this is a React.Context,
|
|
19
|
-
* there must be a React.Provider parent in the app tree.
|
|
20
|
-
* @returns A value retrieved from the current server request or a fallback value in the client.
|
|
21
|
-
* The returned type depends on what the server getter returns.
|
|
22
|
-
* @example
|
|
23
|
-
* ```js
|
|
24
|
-
* import {MyClientContext} from './my-client-react-context-provider';
|
|
25
|
-
* useEnvContext(req => req.ctx.myServerContext, MyClientContext)
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export declare function useEnvContext<T>(serverGetter: ServerGetter<T>, clientFallback?: any): T;
|
|
29
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* This file is used for compatibility between browser and server environments.
|
|
4
|
-
* The browser loads this file as is, without leaking server logic.
|
|
5
|
-
* In the server, this file is transformed by Vite to inject server logic.
|
|
6
|
-
* NOTE: Do not remove SSR-prefixed comments in this file.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.useEnvContext = exports.META_ENV_SSR = void 0;
|
|
10
|
-
const react_1 = require("react");
|
|
11
|
-
//@SSR import {useServerRequest} from './ServerRequestProvider';
|
|
12
|
-
// This is replaced by Vite to import.meta.env.SSR
|
|
13
|
-
exports.META_ENV_SSR = false;
|
|
14
|
-
const reactContextType = Symbol.for('react.context');
|
|
15
|
-
/**
|
|
16
|
-
* Isomorphic hook to access context data. It gives access to the current request
|
|
17
|
-
* when running on the server, and returns the provided client fallback in the browser.
|
|
18
|
-
* This can be used in server components (RSC) as a Context/Provider replacement. In client
|
|
19
|
-
* components, it uses the server getter in SSR and the client fallback in the browser.
|
|
20
|
-
* @param serverGetter - A function that gets the current server request and returns any
|
|
21
|
-
* desired request property. It only runs in the server (both in RSC and SSR).
|
|
22
|
-
* @param clientFallback - An optional raw value or a React.Context to be consumed that will be
|
|
23
|
-
* returned if the current environment is not the server. Note that, if this is a React.Context,
|
|
24
|
-
* there must be a React.Provider parent in the app tree.
|
|
25
|
-
* @returns A value retrieved from the current server request or a fallback value in the client.
|
|
26
|
-
* The returned type depends on what the server getter returns.
|
|
27
|
-
* @example
|
|
28
|
-
* ```js
|
|
29
|
-
* import {MyClientContext} from './my-client-react-context-provider';
|
|
30
|
-
* useEnvContext(req => req.ctx.myServerContext, MyClientContext)
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
function useEnvContext(serverGetter, clientFallback) {
|
|
34
|
-
//@SSR if (META_ENV_SSR) return serverGetter(useServerRequest());
|
|
35
|
-
return clientFallback && clientFallback.$$typeof === reactContextType
|
|
36
|
-
? (0, react_1.useContext)(clientFallback) // eslint-disable-line react-hooks/rules-of-hooks
|
|
37
|
-
: clientFallback;
|
|
38
|
-
}
|
|
39
|
-
exports.useEnvContext = useEnvContext;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
declare type NavigationOptions = {
|
|
2
|
-
/** Whether to update the state object or URL of the current history entry. Defaults to false. */
|
|
3
|
-
replace?: boolean;
|
|
4
|
-
/** Whether to reload the whole document on navigation. */
|
|
5
|
-
reloadDocument?: boolean;
|
|
6
|
-
/** The custom client state with the navigation. */
|
|
7
|
-
clientState?: any;
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* The useNavigate hook imperatively navigates between routes.
|
|
11
|
-
*/
|
|
12
|
-
export declare function useNavigate(): (path: string, options?: NavigationOptions) => void;
|
|
13
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useNavigate = void 0;
|
|
4
|
-
const BrowserRouter_client_1 = require("../Router/BrowserRouter.client");
|
|
5
|
-
/**
|
|
6
|
-
* The useNavigate hook imperatively navigates between routes.
|
|
7
|
-
*/
|
|
8
|
-
function useNavigate() {
|
|
9
|
-
const router = (0, BrowserRouter_client_1.useRouter)();
|
|
10
|
-
return (path, options = { replace: false, reloadDocument: false }) => {
|
|
11
|
-
// @todo wait for RSC and then change focus for a11y?
|
|
12
|
-
if (options === null || options === void 0 ? void 0 : options.replace)
|
|
13
|
-
router.history.replace(path, (options === null || options === void 0 ? void 0 : options.clientState) || {});
|
|
14
|
-
else
|
|
15
|
-
router.history.push(path, (options === null || options === void 0 ? void 0 : options.clientState) || {});
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
exports.useNavigate = useNavigate;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ServerPropsContextValue, InternalServerPropsContextValue } from '../ServerPropsProvider/ServerPropsProvider';
|
|
2
|
-
/**
|
|
3
|
-
* The `useServerProps` hook allows you to manage the [server props](https://shopify.dev/custom-storefronts/hydrogen/framework/server-props) passed to your server components when using Hydrogen as a React Server Component framework. The server props get cleared when you navigate from one route to another.
|
|
4
|
-
*
|
|
5
|
-
* ## Return value
|
|
6
|
-
*
|
|
7
|
-
* The `useServerProps` hook returns an object with the following keys:
|
|
8
|
-
*
|
|
9
|
-
* | Key | Description |
|
|
10
|
-
* | ---------------- | -------------------------------------------------------------------------------------- |
|
|
11
|
-
* | `serverProps` | The current server props. |
|
|
12
|
-
* | `setServerProps` | A function used to modify server props. |
|
|
13
|
-
* | `pending` | Whether a [transition is pending](https://github.com/reactwg/react-18/discussions/41). |
|
|
14
|
-
*
|
|
15
|
-
*/
|
|
16
|
-
export declare function useServerProps(): ServerPropsContextValue;
|
|
17
|
-
/**
|
|
18
|
-
* Internal-only hook to manage server state, including to set location server state
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export declare function useInternalServerProps(): InternalServerPropsContextValue;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useInternalServerProps = exports.useServerProps = void 0;
|
|
4
|
-
const react_1 = require("react");
|
|
5
|
-
const ServerPropsProvider_1 = require("../ServerPropsProvider/ServerPropsProvider");
|
|
6
|
-
/**
|
|
7
|
-
* The `useServerProps` hook allows you to manage the [server props](https://shopify.dev/custom-storefronts/hydrogen/framework/server-props) passed to your server components when using Hydrogen as a React Server Component framework. The server props get cleared when you navigate from one route to another.
|
|
8
|
-
*
|
|
9
|
-
* ## Return value
|
|
10
|
-
*
|
|
11
|
-
* The `useServerProps` hook returns an object with the following keys:
|
|
12
|
-
*
|
|
13
|
-
* | Key | Description |
|
|
14
|
-
* | ---------------- | -------------------------------------------------------------------------------------- |
|
|
15
|
-
* | `serverProps` | The current server props. |
|
|
16
|
-
* | `setServerProps` | A function used to modify server props. |
|
|
17
|
-
* | `pending` | Whether a [transition is pending](https://github.com/reactwg/react-18/discussions/41). |
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
|
-
function useServerProps() {
|
|
21
|
-
const internalServerPropsContext = (0, react_1.useContext)(ServerPropsProvider_1.ServerPropsContext);
|
|
22
|
-
if (!internalServerPropsContext) {
|
|
23
|
-
return {};
|
|
24
|
-
}
|
|
25
|
-
return {
|
|
26
|
-
serverProps: internalServerPropsContext.serverProps,
|
|
27
|
-
setServerProps: internalServerPropsContext.setServerProps,
|
|
28
|
-
pending: internalServerPropsContext.pending,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
exports.useServerProps = useServerProps;
|
|
32
|
-
/**
|
|
33
|
-
* Internal-only hook to manage server state, including to set location server state
|
|
34
|
-
* @internal
|
|
35
|
-
*/
|
|
36
|
-
function useInternalServerProps() {
|
|
37
|
-
var _a;
|
|
38
|
-
return ((_a = (0, react_1.useContext)(ServerPropsProvider_1.ServerPropsContext)) !== null && _a !== void 0 ? _a : {});
|
|
39
|
-
}
|
|
40
|
-
exports.useInternalServerProps = useInternalServerProps;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { CachingStrategy, AllCacheOptions, NoStoreStrategy } from '../../types';
|
|
2
|
-
export declare function generateCacheControlHeader(cacheOptions: CachingStrategy): string;
|
|
3
|
-
export declare function NoStore(): NoStoreStrategy;
|
|
4
|
-
export declare function CacheSeconds(overrideOptions?: CachingStrategy): AllCacheOptions;
|
|
5
|
-
export declare function CacheMinutes(overrideOptions?: CachingStrategy): AllCacheOptions;
|
|
6
|
-
export declare function CacheHours(overrideOptions?: CachingStrategy): AllCacheOptions;
|
|
7
|
-
export declare function CacheDays(overrideOptions?: CachingStrategy): AllCacheOptions;
|
|
8
|
-
export declare function CacheWeeks(overrideOptions?: CachingStrategy): AllCacheOptions;
|
|
9
|
-
export declare function CacheMonths(overrideOptions?: CachingStrategy): AllCacheOptions;
|
|
10
|
-
export declare function CacheCustom(overrideOptions: CachingStrategy): AllCacheOptions;
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CacheCustom = exports.CacheMonths = exports.CacheWeeks = exports.CacheDays = exports.CacheHours = exports.CacheMinutes = exports.CacheSeconds = exports.NoStore = exports.generateCacheControlHeader = void 0;
|
|
4
|
-
const PUBLIC = 'public';
|
|
5
|
-
const PRIVATE = 'private';
|
|
6
|
-
const NO_STORE = 'no-store';
|
|
7
|
-
const optionMapping = {
|
|
8
|
-
maxAge: 'max-age',
|
|
9
|
-
staleWhileRevalidate: 'stale-while-revalidate',
|
|
10
|
-
sMaxAge: 's-maxage',
|
|
11
|
-
staleIfError: 'stale-if-error',
|
|
12
|
-
};
|
|
13
|
-
function generateCacheControlHeader(cacheOptions) {
|
|
14
|
-
const cacheControl = [];
|
|
15
|
-
Object.keys(cacheOptions).forEach((key) => {
|
|
16
|
-
if (key === 'mode') {
|
|
17
|
-
cacheControl.push(cacheOptions[key]);
|
|
18
|
-
}
|
|
19
|
-
else if (optionMapping[key]) {
|
|
20
|
-
cacheControl.push(`${optionMapping[key]}=${cacheOptions[key]}`);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
return cacheControl.join(', ');
|
|
24
|
-
}
|
|
25
|
-
exports.generateCacheControlHeader = generateCacheControlHeader;
|
|
26
|
-
function NoStore() {
|
|
27
|
-
return {
|
|
28
|
-
mode: NO_STORE,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
exports.NoStore = NoStore;
|
|
32
|
-
function guardExpirableModeType(overrideOptions) {
|
|
33
|
-
if ((overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.mode) &&
|
|
34
|
-
(overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.mode) !== PUBLIC &&
|
|
35
|
-
(overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.mode) !== PRIVATE) {
|
|
36
|
-
throw Error("'mode' must be either 'public' or 'private'");
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// 10 seconds
|
|
40
|
-
function CacheSeconds(overrideOptions) {
|
|
41
|
-
guardExpirableModeType(overrideOptions);
|
|
42
|
-
return {
|
|
43
|
-
mode: PUBLIC,
|
|
44
|
-
maxAge: 1,
|
|
45
|
-
staleWhileRevalidate: 9,
|
|
46
|
-
...overrideOptions,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
exports.CacheSeconds = CacheSeconds;
|
|
50
|
-
// 30 minutes
|
|
51
|
-
function CacheMinutes(overrideOptions) {
|
|
52
|
-
guardExpirableModeType(overrideOptions);
|
|
53
|
-
return {
|
|
54
|
-
mode: PUBLIC,
|
|
55
|
-
maxAge: 900,
|
|
56
|
-
staleWhileRevalidate: 900,
|
|
57
|
-
...overrideOptions,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
exports.CacheMinutes = CacheMinutes;
|
|
61
|
-
// 1 hour
|
|
62
|
-
function CacheHours(overrideOptions) {
|
|
63
|
-
guardExpirableModeType(overrideOptions);
|
|
64
|
-
return {
|
|
65
|
-
mode: PUBLIC,
|
|
66
|
-
maxAge: 1800,
|
|
67
|
-
staleWhileRevalidate: 1800,
|
|
68
|
-
...overrideOptions,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
exports.CacheHours = CacheHours;
|
|
72
|
-
// 1 day
|
|
73
|
-
function CacheDays(overrideOptions) {
|
|
74
|
-
guardExpirableModeType(overrideOptions);
|
|
75
|
-
return {
|
|
76
|
-
mode: PUBLIC,
|
|
77
|
-
maxAge: 3600,
|
|
78
|
-
staleWhileRevalidate: 82800,
|
|
79
|
-
...overrideOptions,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
exports.CacheDays = CacheDays;
|
|
83
|
-
// 2 weeks
|
|
84
|
-
function CacheWeeks(overrideOptions) {
|
|
85
|
-
guardExpirableModeType(overrideOptions);
|
|
86
|
-
return {
|
|
87
|
-
mode: PUBLIC,
|
|
88
|
-
maxAge: 604800,
|
|
89
|
-
staleWhileRevalidate: 604800,
|
|
90
|
-
...overrideOptions,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
exports.CacheWeeks = CacheWeeks;
|
|
94
|
-
// 1 month
|
|
95
|
-
function CacheMonths(overrideOptions) {
|
|
96
|
-
guardExpirableModeType(overrideOptions);
|
|
97
|
-
return {
|
|
98
|
-
mode: PUBLIC,
|
|
99
|
-
maxAge: 1296000,
|
|
100
|
-
staleWhileRevalidate: 1296000,
|
|
101
|
-
...overrideOptions,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
exports.CacheMonths = CacheMonths;
|
|
105
|
-
function CacheCustom(overrideOptions) {
|
|
106
|
-
return overrideOptions;
|
|
107
|
-
}
|
|
108
|
-
exports.CacheCustom = CacheCustom;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.applyHtmlHead = exports.Html = void 0;
|
|
7
|
-
/// <reference types="vite/client" />
|
|
8
|
-
const react_1 = __importDefault(require("react"));
|
|
9
|
-
const HTML_ATTR_SEP_RE = /(?<!=)"\s+/gim;
|
|
10
|
-
const getHtmlAttrs = (template) => { var _a; return ((_a = template.match(/<html\s+([^>]+?)\s*>/s)) === null || _a === void 0 ? void 0 : _a[1]) || ''; };
|
|
11
|
-
const getBodyAttrs = (template) => { var _a; return ((_a = template.match(/<body\s+([^>]+?)\s*>/s)) === null || _a === void 0 ? void 0 : _a[1]) || ''; };
|
|
12
|
-
const REACT_ATTR_MAP = Object.create(null);
|
|
13
|
-
REACT_ATTR_MAP.class = 'className';
|
|
14
|
-
REACT_ATTR_MAP.style = 'data-style'; // Ignore string styles, it breaks React
|
|
15
|
-
function attrsToProps(attrs) {
|
|
16
|
-
attrs = attrs === null || attrs === void 0 ? void 0 : attrs.trim();
|
|
17
|
-
// Assume all attributes are surrounded by double quotes.
|
|
18
|
-
return attrs
|
|
19
|
-
? Object.fromEntries(attrs.split(HTML_ATTR_SEP_RE).map((attr) => {
|
|
20
|
-
const [key, value] = attr.replace(/"/g, '').split(/=(.+)/);
|
|
21
|
-
return [REACT_ATTR_MAP[key.toLowerCase()] || key, value];
|
|
22
|
-
}))
|
|
23
|
-
: {};
|
|
24
|
-
}
|
|
25
|
-
function propsToAttrs(props) {
|
|
26
|
-
return Object.entries(props)
|
|
27
|
-
.map(([key, value]) => `${key === REACT_ATTR_MAP.class ? 'class' : key}="${value}"`)
|
|
28
|
-
.join(' ');
|
|
29
|
-
}
|
|
30
|
-
function Html({ children, template, htmlAttrs, bodyAttrs }) {
|
|
31
|
-
let head = template.match(/<head>(.+?)<\/head>/s)[1] || '';
|
|
32
|
-
// @ts-ignore
|
|
33
|
-
if (import.meta.env.DEV) {
|
|
34
|
-
// Fix React Refresh for async scripts.
|
|
35
|
-
// https://github.com/vitejs/vite/issues/6759
|
|
36
|
-
head =
|
|
37
|
-
'<script></script>' + // Fix for Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1737882
|
|
38
|
-
head.replace(/>(\s*?import[\s\w]+?['"]\/@react-refresh)/, ' async="">$1');
|
|
39
|
-
}
|
|
40
|
-
return (react_1.default.createElement("html", { ...attrsToProps(getHtmlAttrs(template)), ...htmlAttrs },
|
|
41
|
-
react_1.default.createElement("head", { dangerouslySetInnerHTML: { __html: head } }),
|
|
42
|
-
react_1.default.createElement("body", { ...attrsToProps(getBodyAttrs(template)), ...bodyAttrs },
|
|
43
|
-
react_1.default.createElement("div", { id: "root" }, children))));
|
|
44
|
-
}
|
|
45
|
-
exports.Html = Html;
|
|
46
|
-
function applyHtmlHead(html, head, template) {
|
|
47
|
-
const { bodyAttrs, htmlAttrs, ...headTags } = extractHeadElements(head, template);
|
|
48
|
-
return html
|
|
49
|
-
.replace(/<head>(.*?)<\/head>/s, generateHeadTag(headTags))
|
|
50
|
-
.replace(/<html[^>]*?>/s, htmlAttrs ? `<html ${htmlAttrs}>` : '$&')
|
|
51
|
-
.replace(/<body[^>]*?>/s, bodyAttrs ? `<body ${bodyAttrs}>` : '$&');
|
|
52
|
-
}
|
|
53
|
-
exports.applyHtmlHead = applyHtmlHead;
|
|
54
|
-
function extractHeadElements({ context: { helmet } }, template) {
|
|
55
|
-
// There might be existing attributes in the template that are
|
|
56
|
-
// duplicated in the helmet. Transform them to props and back
|
|
57
|
-
// to string attributes to remove duplicates.
|
|
58
|
-
const htmlUniqueProps = attrsToProps(`${getHtmlAttrs(template)} ${helmet.htmlAttributes}`);
|
|
59
|
-
const bodyUniqueProps = attrsToProps(`${getBodyAttrs(template)} ${helmet.bodyAttributes}`);
|
|
60
|
-
return {
|
|
61
|
-
htmlAttrs: propsToAttrs(htmlUniqueProps),
|
|
62
|
-
bodyAttrs: propsToAttrs(bodyUniqueProps),
|
|
63
|
-
base: helmet.base.toString(),
|
|
64
|
-
link: helmet.link.toString(),
|
|
65
|
-
meta: helmet.meta.toString(),
|
|
66
|
-
noscript: helmet.noscript.toString(),
|
|
67
|
-
script: helmet.script.toString(),
|
|
68
|
-
style: helmet.style.toString(),
|
|
69
|
-
title: helmet.title.toString(),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Generate the contents of the `head` tag, and update the existing `<title>` tag
|
|
74
|
-
* if one exists, and if a title is passed.
|
|
75
|
-
*/
|
|
76
|
-
function generateHeadTag({ title, ...rest }) {
|
|
77
|
-
const headProps = ['base', 'meta', 'style', 'noscript', 'script', 'link'];
|
|
78
|
-
const otherHeadProps = headProps
|
|
79
|
-
.map((prop) => rest[prop])
|
|
80
|
-
.filter(Boolean)
|
|
81
|
-
.join('\n');
|
|
82
|
-
return (_outerHtml, innerHtml) => {
|
|
83
|
-
let headHtml = otherHeadProps + innerHtml;
|
|
84
|
-
if (title) {
|
|
85
|
-
if (headHtml.includes('<title>')) {
|
|
86
|
-
headHtml = headHtml.replace(/(<title>(?:.|\n)*?<\/title>)/, title);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
headHtml += title;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return `<head>${headHtml}</head>`;
|
|
93
|
-
};
|
|
94
|
-
}
|