@shopify/hydrogen 0.1.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/README.md +29 -0
- package/client.d.ts +1 -0
- package/client.js +1 -0
- package/dist/esnext/client.d.ts +7 -0
- package/dist/esnext/client.js +7 -0
- package/dist/esnext/components/AddToCartButton/AddToCartButton.client.d.ts +15 -0
- package/dist/esnext/components/AddToCartButton/AddToCartButton.client.js +44 -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.d.ts +12 -0
- package/dist/esnext/components/BuyNowButton/BuyNowButton.js +29 -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 +7 -0
- package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.js +14 -0
- package/dist/esnext/components/CartCheckoutButton/index.d.ts +1 -0
- package/dist/esnext/components/CartCheckoutButton/index.js +1 -0
- package/dist/esnext/components/CartContainer/CartContainer.client.d.ts +9 -0
- package/dist/esnext/components/CartContainer/CartContainer.client.js +24 -0
- package/dist/esnext/components/CartContainer/index.d.ts +1 -0
- package/dist/esnext/components/CartContainer/index.js +1 -0
- package/dist/esnext/components/CartLineAttributes/CartLineAttributes.client.d.ts +10 -0
- package/dist/esnext/components/CartLineAttributes/CartLineAttributes.client.js +9 -0
- package/dist/esnext/components/CartLineAttributes/index.d.ts +1 -0
- package/dist/esnext/components/CartLineAttributes/index.js +1 -0
- package/dist/esnext/components/CartLineImage/CartLineImage.client.d.ts +6 -0
- package/dist/esnext/components/CartLineImage/CartLineImage.client.js +8 -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 +6 -0
- package/dist/esnext/components/CartLinePrice/CartLinePrice.client.js +17 -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 +3 -0
- package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.js +8 -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 +6 -0
- package/dist/esnext/components/CartLineProvider/CartLineProvider.client.js +5 -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/hooks.d.ts +26 -0
- package/dist/esnext/components/CartLineProvider/hooks.js +9 -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 +3 -0
- package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.js +8 -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 +8 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.js +17 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/index.d.ts +1 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/index.js +1 -0
- package/dist/esnext/components/CartLineSelectedOptions/CartLineSelectedOptions.client.d.ts +10 -0
- package/dist/esnext/components/CartLineSelectedOptions/CartLineSelectedOptions.client.js +9 -0
- package/dist/esnext/components/CartLineSelectedOptions/index.d.ts +1 -0
- package/dist/esnext/components/CartLineSelectedOptions/index.js +1 -0
- package/dist/esnext/components/CartLines/CartLines.d.ts +7 -0
- package/dist/esnext/components/CartLines/CartLines.js +15 -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 +7 -0
- package/dist/esnext/components/CartProvider/CartProvider.client.js +422 -0
- package/dist/esnext/components/CartProvider/CartServerProvider.server.d.ts +11 -0
- package/dist/esnext/components/CartProvider/CartServerProvider.server.js +20 -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 +18 -0
- package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +18 -0
- package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +17 -0
- package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +18 -0
- package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +68 -0
- package/dist/esnext/components/CartProvider/graphql/CartFragment.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +18 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +18 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +18 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +18 -0
- package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +13 -0
- package/dist/esnext/components/CartProvider/graphql/CartQuery.js +1 -0
- package/dist/esnext/components/CartProvider/hooks.d.ts +18 -0
- package/dist/esnext/components/CartProvider/hooks.js +79 -0
- package/dist/esnext/components/CartProvider/index.d.ts +4 -0
- package/dist/esnext/components/CartProvider/index.js +4 -0
- package/dist/esnext/components/CartProvider/types.d.ts +105 -0
- package/dist/esnext/components/CartProvider/types.js +1 -0
- package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.d.ts +2 -0
- package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.js +10 -0
- package/dist/esnext/components/CartShopPayButton/index.d.ts +1 -0
- package/dist/esnext/components/CartShopPayButton/index.js +1 -0
- package/dist/esnext/components/CartToggle/CartToggle.client.d.ts +8 -0
- package/dist/esnext/components/CartToggle/CartToggle.client.js +11 -0
- package/dist/esnext/components/CartToggle/index.d.ts +1 -0
- package/dist/esnext/components/CartToggle/index.js +1 -0
- package/dist/esnext/components/CartTotal/CartTotal.client.d.ts +3 -0
- package/dist/esnext/components/CartTotal/CartTotal.client.js +8 -0
- package/dist/esnext/components/CartTotal/index.d.ts +1 -0
- package/dist/esnext/components/CartTotal/index.js +1 -0
- package/dist/esnext/components/CartUIProvider/CartUIProvider.client.d.ts +5 -0
- package/dist/esnext/components/CartUIProvider/CartUIProvider.client.js +26 -0
- package/dist/esnext/components/CartUIProvider/context.d.ts +9 -0
- package/dist/esnext/components/CartUIProvider/context.js +2 -0
- package/dist/esnext/components/CartUIProvider/hooks.d.ts +1 -0
- package/dist/esnext/components/CartUIProvider/hooks.js +9 -0
- package/dist/esnext/components/CartUIProvider/index.d.ts +2 -0
- package/dist/esnext/components/CartUIProvider/index.js +2 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.d.ts +14 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.js +9 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.d.ts +4 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.js +1 -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 +14 -0
- package/dist/esnext/components/Image/Image.js +10 -0
- package/dist/esnext/components/Image/ImageFragment.d.ts +4 -0
- package/dist/esnext/components/Image/ImageFragment.js +1 -0
- package/dist/esnext/components/Image/index.d.ts +1 -0
- package/dist/esnext/components/Image/index.js +1 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.d.ts +6 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.js +14 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.d.ts +8 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.js +2 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.d.ts +4 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +8 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationQuery.d.ts +18 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationQuery.js +1 -0
- package/dist/esnext/components/LocalizationProvider/hooks.d.ts +8 -0
- package/dist/esnext/components/LocalizationProvider/hooks.js +17 -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 +22 -0
- package/dist/esnext/components/MediaFile/MediaFileFragment.d.ts +22 -0
- package/dist/esnext/components/MediaFile/MediaFileFragment.js +1 -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 +8 -0
- package/dist/esnext/components/Metafield/Metafield.client.js +50 -0
- package/dist/esnext/components/Metafield/MetafieldFragment.d.ts +4 -0
- package/dist/esnext/components/Metafield/MetafieldFragment.js +1 -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 +3 -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/Model3D/Model3D.client.d.ts +25 -0
- package/dist/esnext/components/Model3D/Model3D.client.js +30 -0
- package/dist/esnext/components/Model3D/Model3DFragment.d.ts +11 -0
- package/dist/esnext/components/Model3D/Model3DFragment.js +1 -0
- package/dist/esnext/components/Model3D/index.d.ts +1 -0
- package/dist/esnext/components/Model3D/index.js +1 -0
- package/dist/esnext/components/Money/Money.client.d.ts +7 -0
- package/dist/esnext/components/Money/Money.client.js +10 -0
- package/dist/esnext/components/Money/index.d.ts +1 -0
- package/dist/esnext/components/Money/index.js +1 -0
- package/dist/esnext/components/ProductDescription/ProductDescription.client.d.ts +3 -0
- package/dist/esnext/components/ProductDescription/ProductDescription.client.js +10 -0
- package/dist/esnext/components/ProductDescription/index.d.ts +1 -0
- package/dist/esnext/components/ProductDescription/index.js +1 -0
- package/dist/esnext/components/ProductMetafield/ProductMetafield.client.d.ts +7 -0
- package/dist/esnext/components/ProductMetafield/ProductMetafield.client.js +16 -0
- package/dist/esnext/components/ProductMetafield/index.d.ts +1 -0
- package/dist/esnext/components/ProductMetafield/index.js +1 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +7 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.js +32 -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/ProductProvider.client.d.ts +7 -0
- package/dist/esnext/components/ProductProvider/ProductProvider.client.js +35 -0
- package/dist/esnext/components/ProductProvider/ProductProviderFragment.d.ts +96 -0
- package/dist/esnext/components/ProductProvider/ProductProviderFragment.js +1 -0
- package/dist/esnext/components/ProductProvider/context.d.ts +13 -0
- package/dist/esnext/components/ProductProvider/context.js +2 -0
- package/dist/esnext/components/ProductProvider/hooks.d.ts +1 -0
- package/dist/esnext/components/ProductProvider/hooks.js +6 -0
- package/dist/esnext/components/ProductProvider/index.d.ts +2 -0
- package/dist/esnext/components/ProductProvider/index.js +2 -0
- package/dist/esnext/components/ProductProvider/types.d.ts +5 -0
- package/dist/esnext/components/ProductProvider/types.js +1 -0
- package/dist/esnext/components/ProductTitle/ProductTitle.client.d.ts +3 -0
- package/dist/esnext/components/ProductTitle/ProductTitle.client.js +11 -0
- package/dist/esnext/components/ProductTitle/index.d.ts +1 -0
- package/dist/esnext/components/ProductTitle/index.js +1 -0
- package/dist/esnext/components/RawHtml/RawHtml.d.ts +7 -0
- package/dist/esnext/components/RawHtml/RawHtml.js +13 -0
- package/dist/esnext/components/RawHtml/index.d.ts +1 -0
- package/dist/esnext/components/RawHtml/index.js +1 -0
- package/dist/esnext/components/SelectedVariantAddToCartButton/SelectedVariantAddToCartButton.client.d.ts +6 -0
- package/dist/esnext/components/SelectedVariantAddToCartButton/SelectedVariantAddToCartButton.client.js +12 -0
- package/dist/esnext/components/SelectedVariantAddToCartButton/index.d.ts +1 -0
- package/dist/esnext/components/SelectedVariantAddToCartButton/index.js +1 -0
- package/dist/esnext/components/SelectedVariantBuyNowButton/SelectedVariantBuyNowButton.d.ts +4 -0
- package/dist/esnext/components/SelectedVariantBuyNowButton/SelectedVariantBuyNowButton.js +12 -0
- package/dist/esnext/components/SelectedVariantBuyNowButton/index.d.ts +1 -0
- package/dist/esnext/components/SelectedVariantBuyNowButton/index.js +1 -0
- package/dist/esnext/components/SelectedVariantImage/SelectedVariantImage.client.d.ts +6 -0
- package/dist/esnext/components/SelectedVariantImage/SelectedVariantImage.client.js +12 -0
- package/dist/esnext/components/SelectedVariantImage/index.d.ts +1 -0
- package/dist/esnext/components/SelectedVariantImage/index.js +1 -0
- package/dist/esnext/components/SelectedVariantMetafield/SelectedVariantMetafield.client.d.ts +7 -0
- package/dist/esnext/components/SelectedVariantMetafield/SelectedVariantMetafield.client.js +15 -0
- package/dist/esnext/components/SelectedVariantMetafield/index.d.ts +1 -0
- package/dist/esnext/components/SelectedVariantMetafield/index.js +1 -0
- package/dist/esnext/components/SelectedVariantPrice/SelectedVariantPrice.client.d.ts +6 -0
- package/dist/esnext/components/SelectedVariantPrice/SelectedVariantPrice.client.js +18 -0
- package/dist/esnext/components/SelectedVariantPrice/index.d.ts +1 -0
- package/dist/esnext/components/SelectedVariantPrice/index.js +1 -0
- package/dist/esnext/components/SelectedVariantShopPayButton/SelectedVariantShopPayButton.client.d.ts +2 -0
- package/dist/esnext/components/SelectedVariantShopPayButton/SelectedVariantShopPayButton.client.js +12 -0
- package/dist/esnext/components/SelectedVariantShopPayButton/index.d.ts +1 -0
- package/dist/esnext/components/SelectedVariantShopPayButton/index.js +1 -0
- package/dist/esnext/components/SelectedVariantUnitPrice/SelectedVariantUnitPrice.client.d.ts +3 -0
- package/dist/esnext/components/SelectedVariantUnitPrice/SelectedVariantUnitPrice.client.js +12 -0
- package/dist/esnext/components/SelectedVariantUnitPrice/index.d.ts +1 -0
- package/dist/esnext/components/SelectedVariantUnitPrice/index.js +1 -0
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.d.ts +15 -0
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +32 -0
- package/dist/esnext/components/ShopPayButton/index.d.ts +1 -0
- package/dist/esnext/components/ShopPayButton/index.js +1 -0
- package/dist/esnext/components/UnitPrice/UnitPrice.client.d.ts +8 -0
- package/dist/esnext/components/UnitPrice/UnitPrice.client.js +16 -0
- package/dist/esnext/components/UnitPrice/index.d.ts +1 -0
- package/dist/esnext/components/UnitPrice/index.js +1 -0
- package/dist/esnext/components/Video/Video.d.ts +13 -0
- package/dist/esnext/components/Video/Video.js +8 -0
- package/dist/esnext/components/Video/VideoFragment.d.ts +11 -0
- package/dist/esnext/components/Video/VideoFragment.js +1 -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 +41 -0
- package/dist/esnext/components/index.js +87 -0
- package/dist/esnext/components/types.d.ts +73 -0
- package/dist/esnext/components/types.js +10 -0
- package/dist/esnext/entry-client.d.ts +3 -0
- package/dist/esnext/entry-client.js +36 -0
- package/dist/esnext/entry-server.d.ts +3 -0
- package/dist/esnext/entry-server.js +286 -0
- package/dist/esnext/foundation/ClientMarker/ClientMarker.d.ts +10 -0
- package/dist/esnext/foundation/ClientMarker/ClientMarker.js +25 -0
- package/dist/esnext/foundation/ClientMarker/index.d.ts +1 -0
- package/dist/esnext/foundation/ClientMarker/index.js +1 -0
- package/dist/esnext/foundation/Hydration/Cache.client.d.ts +9 -0
- package/dist/esnext/foundation/Hydration/Cache.client.js +131 -0
- package/dist/esnext/foundation/Hydration/ClientComponents.server.d.ts +13 -0
- package/dist/esnext/foundation/Hydration/ClientComponents.server.js +18 -0
- package/dist/esnext/foundation/Hydration/Html.d.ts +5 -0
- package/dist/esnext/foundation/Hydration/Html.js +9 -0
- package/dist/esnext/foundation/Hydration/HydrationContext.server.d.ts +1 -0
- package/dist/esnext/foundation/Hydration/HydrationContext.server.js +2 -0
- package/dist/esnext/foundation/Hydration/ServerComponentRequest.server.d.ts +13 -0
- package/dist/esnext/foundation/Hydration/ServerComponentRequest.server.js +39 -0
- package/dist/esnext/foundation/Hydration/ServerComponentResponse.server.d.ts +18 -0
- package/dist/esnext/foundation/Hydration/ServerComponentResponse.server.js +35 -0
- package/dist/esnext/foundation/Hydration/react-utils.d.ts +5 -0
- package/dist/esnext/foundation/Hydration/react-utils.js +55 -0
- package/dist/esnext/foundation/Hydration/wire.server.d.ts +4 -0
- package/dist/esnext/foundation/Hydration/wire.server.js +75 -0
- package/dist/esnext/foundation/Hydration/writer.server.d.ts +14 -0
- package/dist/esnext/foundation/Hydration/writer.server.js +29 -0
- package/dist/esnext/foundation/Router/DefaultRoutes.d.ts +20 -0
- package/dist/esnext/foundation/Router/DefaultRoutes.js +54 -0
- package/dist/esnext/foundation/Router/ServerStateRouter.client.d.ts +6 -0
- package/dist/esnext/foundation/Router/ServerStateRouter.client.js +27 -0
- package/dist/esnext/foundation/Router/index.d.ts +1 -0
- package/dist/esnext/foundation/Router/index.js +1 -0
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.client.d.ts +11 -0
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.client.js +48 -0
- package/dist/esnext/foundation/ServerStateProvider/index.d.ts +1 -0
- package/dist/esnext/foundation/ServerStateProvider/index.js +1 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyContext.d.ts +1 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyContext.js +2 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.d.ts +3 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.js +11 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyServerProvider.server.d.ts +8 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyServerProvider.server.js +7 -0
- package/dist/esnext/foundation/ShopifyProvider/hooks.d.ts +2 -0
- package/dist/esnext/foundation/ShopifyProvider/hooks.js +9 -0
- package/dist/esnext/foundation/ShopifyProvider/index.d.ts +2 -0
- package/dist/esnext/foundation/ShopifyProvider/index.js +2 -0
- package/dist/esnext/foundation/ShopifyProvider/types.d.ts +12 -0
- package/dist/esnext/foundation/ShopifyProvider/types.js +1 -0
- package/dist/esnext/foundation/index.d.ts +4 -0
- package/dist/esnext/foundation/index.js +4 -0
- package/dist/esnext/framework/graphiql.d.ts +1 -0
- package/dist/esnext/framework/graphiql.js +39 -0
- package/dist/esnext/framework/middleware.d.ts +17 -0
- package/dist/esnext/framework/middleware.js +116 -0
- package/dist/esnext/framework/plugin.d.ts +3 -0
- package/dist/esnext/framework/plugin.js +14 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +43 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +4 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +28 -0
- package/dist/esnext/framework/plugins/vite-plugin-react-server-components-shim.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-react-server-components-shim.js +123 -0
- package/dist/esnext/framework/server-components.d.ts +12 -0
- package/dist/esnext/framework/server-components.js +72 -0
- package/dist/esnext/graphql/graphql-constants.d.ts +1295 -0
- package/dist/esnext/graphql/graphql-constants.js +2482 -0
- package/dist/esnext/graphql/types/types.d.ts +5583 -0
- package/dist/esnext/graphql/types/types.js +1414 -0
- package/dist/esnext/handle-event.d.ts +20 -0
- package/dist/esnext/handle-event.js +140 -0
- package/dist/esnext/handle-worker-event.d.ts +11 -0
- package/dist/esnext/handle-worker-event.js +14 -0
- package/dist/esnext/hooks/index.d.ts +5 -0
- package/dist/esnext/hooks/index.js +5 -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 +11 -0
- package/dist/esnext/hooks/useMoney/hooks.js +33 -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/hooks.d.ts +3 -0
- package/dist/esnext/hooks/useParsedMetafields/hooks.js +15 -0
- package/dist/esnext/hooks/useParsedMetafields/index.d.ts +1 -0
- package/dist/esnext/hooks/useParsedMetafields/index.js +1 -0
- package/dist/esnext/hooks/useProductOptions/helpers.d.ts +4 -0
- package/dist/esnext/hooks/useProductOptions/helpers.js +33 -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 +50 -0
- package/dist/esnext/hooks/useProductOptions/types.js +1 -0
- package/dist/esnext/hooks/useProductOptions/useProductOptions.d.ts +23 -0
- package/dist/esnext/hooks/useProductOptions/useProductOptions.js +84 -0
- package/dist/esnext/hooks/useQuery/QueryProvider.d.ts +6 -0
- package/dist/esnext/hooks/useQuery/QueryProvider.js +13 -0
- package/dist/esnext/hooks/useQuery/hooks.d.ts +12 -0
- package/dist/esnext/hooks/useQuery/hooks.js +28 -0
- package/dist/esnext/hooks/useQuery/index.d.ts +2 -0
- package/dist/esnext/hooks/useQuery/index.js +2 -0
- package/dist/esnext/hooks/useShopQuery/hooks.d.ts +9 -0
- package/dist/esnext/hooks/useShopQuery/hooks.js +34 -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 +9 -0
- package/dist/esnext/index.js +11 -0
- package/dist/esnext/types.d.ts +62 -0
- package/dist/esnext/types.js +1 -0
- package/dist/esnext/utilities/connections.d.ts +2 -0
- package/dist/esnext/utilities/connections.js +4 -0
- package/dist/esnext/utilities/environment.d.ts +2 -0
- package/dist/esnext/utilities/environment.js +2 -0
- package/dist/esnext/utilities/image_size.d.ts +17 -0
- package/dist/esnext/utilities/image_size.js +45 -0
- package/dist/esnext/utilities/index.d.ts +8 -0
- package/dist/esnext/utilities/index.js +8 -0
- package/dist/esnext/utilities/meaurement.d.ts +3 -0
- package/dist/esnext/utilities/meaurement.js +98 -0
- package/dist/esnext/utilities/metafields.d.ts +2 -0
- package/dist/esnext/utilities/metafields.js +32 -0
- package/dist/esnext/utilities/script_loader.d.ts +3 -0
- package/dist/esnext/utilities/script_loader.js +23 -0
- package/dist/esnext/utilities/suspense.d.ts +7 -0
- package/dist/esnext/utilities/suspense.js +32 -0
- package/dist/esnext/utilities/video_parameters.d.ts +47 -0
- package/dist/esnext/utilities/video_parameters.js +22 -0
- package/dist/esnext/version.d.ts +1 -0
- package/dist/esnext/version.js +1 -0
- package/dist/node/foundation/ClientMarker/ClientMarker.d.ts +10 -0
- package/dist/node/foundation/ClientMarker/ClientMarker.js +48 -0
- package/dist/node/foundation/ClientMarker/index.d.ts +1 -0
- package/dist/node/foundation/ClientMarker/index.js +13 -0
- package/dist/node/foundation/Hydration/HydrationContext.server.d.ts +1 -0
- package/dist/node/foundation/Hydration/HydrationContext.server.js +5 -0
- package/dist/node/foundation/Hydration/ServerComponentRequest.server.d.ts +13 -0
- package/dist/node/foundation/Hydration/ServerComponentRequest.server.js +43 -0
- package/dist/node/foundation/Hydration/ServerComponentResponse.server.d.ts +18 -0
- package/dist/node/foundation/Hydration/ServerComponentResponse.server.js +39 -0
- package/dist/node/foundation/Hydration/react-utils.d.ts +5 -0
- package/dist/node/foundation/Hydration/react-utils.js +63 -0
- package/dist/node/foundation/Router/DefaultRoutes.d.ts +20 -0
- package/dist/node/foundation/Router/DefaultRoutes.js +78 -0
- package/dist/node/foundation/Router/index.d.ts +1 -0
- package/dist/node/foundation/Router/index.js +5 -0
- package/dist/node/foundation/ShopifyProvider/ShopifyContext.d.ts +1 -0
- package/dist/node/foundation/ShopifyProvider/ShopifyContext.js +5 -0
- package/dist/node/foundation/ShopifyProvider/ShopifyProvider.d.ts +3 -0
- package/dist/node/foundation/ShopifyProvider/ShopifyProvider.js +34 -0
- package/dist/node/foundation/ShopifyProvider/ShopifyServerProvider.server.d.ts +8 -0
- package/dist/node/foundation/ShopifyProvider/ShopifyServerProvider.server.js +14 -0
- package/dist/node/foundation/ShopifyProvider/hooks.d.ts +2 -0
- package/dist/node/foundation/ShopifyProvider/hooks.js +13 -0
- package/dist/node/foundation/ShopifyProvider/index.d.ts +2 -0
- package/dist/node/foundation/ShopifyProvider/index.js +8 -0
- package/dist/node/foundation/ShopifyProvider/types.d.ts +12 -0
- package/dist/node/foundation/ShopifyProvider/types.js +2 -0
- package/dist/node/foundation/index.d.ts +4 -0
- package/dist/node/foundation/index.js +13 -0
- package/dist/node/framework/graphiql.d.ts +1 -0
- package/dist/node/framework/graphiql.js +43 -0
- package/dist/node/framework/middleware.d.ts +17 -0
- package/dist/node/framework/middleware.js +141 -0
- package/dist/node/framework/plugin.d.ts +3 -0
- package/dist/node/framework/plugin.js +19 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +45 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +4 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +33 -0
- package/dist/node/framework/plugins/vite-plugin-react-server-components-shim.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-react-server-components-shim.js +128 -0
- package/dist/node/framework/server-components.d.ts +12 -0
- package/dist/node/framework/server-components.js +77 -0
- package/dist/node/graphql/types/types.d.ts +5583 -0
- package/dist/node/graphql/types/types.js +1417 -0
- package/dist/node/handle-event.d.ts +20 -0
- package/dist/node/handle-event.js +143 -0
- package/dist/node/hooks/useQuery/QueryProvider.d.ts +6 -0
- package/dist/node/hooks/useQuery/QueryProvider.js +20 -0
- package/dist/node/hooks/useQuery/hooks.d.ts +12 -0
- package/dist/node/hooks/useQuery/hooks.js +32 -0
- package/dist/node/hooks/useQuery/index.d.ts +2 -0
- package/dist/node/hooks/useQuery/index.js +14 -0
- package/dist/node/types.d.ts +62 -0
- package/dist/node/types.js +2 -0
- package/dist/worker/foundation/Hydration/ServerComponentRequest.server.d.ts +13 -0
- package/dist/worker/foundation/Hydration/ServerComponentRequest.server.js +39 -0
- package/dist/worker/foundation/Hydration/ServerComponentResponse.server.d.ts +18 -0
- package/dist/worker/foundation/Hydration/ServerComponentResponse.server.js +35 -0
- package/dist/worker/graphql/types/types.d.ts +5583 -0
- package/dist/worker/graphql/types/types.js +1414 -0
- package/dist/worker/handle-event.d.ts +20 -0
- package/dist/worker/handle-event.js +140 -0
- package/dist/worker/handle-worker-event.d.ts +11 -0
- package/dist/worker/handle-worker-event.js +14 -0
- package/dist/worker/types.d.ts +62 -0
- package/dist/worker/types.js +1 -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/marker.js +1 -0
- package/middleware.d.ts +1 -0
- package/middleware.js +1 -0
- package/package.json +98 -0
- package/plugin.d.ts +1 -0
- package/plugin.js +1 -0
- package/worker.js +1 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './foundation/';
|
|
2
|
+
export * from './components/';
|
|
3
|
+
export * from './hooks/';
|
|
4
|
+
export * from './graphql/graphql-constants';
|
|
5
|
+
export { flattenConnection } from './utilities';
|
|
6
|
+
export { Helmet } from 'react-helmet-async';
|
|
7
|
+
export * from './components/LocalizationProvider';
|
|
8
|
+
export * from './components/CartProvider/CartServerProvider.server';
|
|
9
|
+
export * from './hooks/useShopQuery';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './foundation/';
|
|
2
|
+
export * from './components/';
|
|
3
|
+
export * from './hooks/';
|
|
4
|
+
export * from './graphql/graphql-constants';
|
|
5
|
+
export { flattenConnection } from './utilities';
|
|
6
|
+
export { Helmet } from 'react-helmet-async';
|
|
7
|
+
// This is exported here because it contains a Server Component
|
|
8
|
+
export * from './components/LocalizationProvider';
|
|
9
|
+
export * from './components/CartProvider/CartServerProvider.server';
|
|
10
|
+
// Exported here because users shouldn't be making `useShopQuery` calls from the client
|
|
11
|
+
export * from './hooks/useShopQuery';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { ServerResponse } from 'http';
|
|
3
|
+
import type { ServerComponentResponse } from './foundation/Hydration/ServerComponentResponse.server';
|
|
4
|
+
import type { ServerComponentRequest } from './foundation/Hydration/ServerComponentRequest.server';
|
|
5
|
+
import type { Metafield } from './graphql/types/types';
|
|
6
|
+
export declare type Renderer = (url: URL, options: {
|
|
7
|
+
request: ServerComponentRequest;
|
|
8
|
+
context?: Record<string, any>;
|
|
9
|
+
isReactHydrationRequest?: boolean;
|
|
10
|
+
}) => Promise<{
|
|
11
|
+
body: string;
|
|
12
|
+
componentResponse: ServerComponentResponse;
|
|
13
|
+
} & Record<string, any>>;
|
|
14
|
+
export declare type Streamer = (url: URL, options: {
|
|
15
|
+
context: any;
|
|
16
|
+
request: ServerComponentRequest;
|
|
17
|
+
response: ServerResponse;
|
|
18
|
+
template: string;
|
|
19
|
+
}) => void;
|
|
20
|
+
export declare type Hydrator = (url: URL, options: {
|
|
21
|
+
context: any;
|
|
22
|
+
request: ServerComponentRequest;
|
|
23
|
+
response: ServerResponse;
|
|
24
|
+
}) => void;
|
|
25
|
+
export declare type EntryServerHandler = {
|
|
26
|
+
render: Renderer;
|
|
27
|
+
stream: Streamer;
|
|
28
|
+
hydrate: Hydrator;
|
|
29
|
+
};
|
|
30
|
+
export declare type ShopifyConfig = {
|
|
31
|
+
locale?: string;
|
|
32
|
+
storeDomain: string;
|
|
33
|
+
storefrontToken: string;
|
|
34
|
+
graphqlApiVersion?: string;
|
|
35
|
+
};
|
|
36
|
+
export declare type Hook = (params: {
|
|
37
|
+
url: URL;
|
|
38
|
+
} & Record<string, any>) => any | Promise<any>;
|
|
39
|
+
export declare type ServerHandler = (App: any, hook?: Hook) => {
|
|
40
|
+
render: Renderer;
|
|
41
|
+
stream: Streamer;
|
|
42
|
+
hydrate: Hydrator;
|
|
43
|
+
};
|
|
44
|
+
export declare type ClientHandler = (App: any, hook?: Hook) => Promise<void>;
|
|
45
|
+
export interface GraphQLConnection<T> {
|
|
46
|
+
edges?: {
|
|
47
|
+
node: T;
|
|
48
|
+
}[];
|
|
49
|
+
}
|
|
50
|
+
export declare type RawMetafield = Partial<Metafield>;
|
|
51
|
+
export declare type ParsedMetafield = Omit<Partial<Metafield>, 'value'> & {
|
|
52
|
+
value?: string | number | boolean | Record<any, string> | Date | Rating | Measurement;
|
|
53
|
+
};
|
|
54
|
+
export interface Rating {
|
|
55
|
+
value: number;
|
|
56
|
+
scale_min: number;
|
|
57
|
+
scale_max: number;
|
|
58
|
+
}
|
|
59
|
+
export interface Measurement {
|
|
60
|
+
unit: string;
|
|
61
|
+
value: number;
|
|
62
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare type Width = string | 'original';
|
|
2
|
+
export declare type Height = string | 'original';
|
|
3
|
+
export declare type Crop = 'top' | 'bottom' | 'left' | 'right' | 'center';
|
|
4
|
+
export declare type Scale = 2 | 3;
|
|
5
|
+
export declare type Format = 'jpg' | 'pjpg';
|
|
6
|
+
export interface ImageSizeOptions {
|
|
7
|
+
width?: Width;
|
|
8
|
+
height?: Height;
|
|
9
|
+
crop?: Crop;
|
|
10
|
+
scale?: Scale;
|
|
11
|
+
format?: Format;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Adds image size parameters to an image URL hosted by Shopify's CDN
|
|
15
|
+
*/
|
|
16
|
+
export declare function addImageSizeParametersToUrl(url: string, { width, height, crop, scale, format }: ImageSizeOptions): string;
|
|
17
|
+
export declare function useImageUrl(url?: string, options?: ImageSizeOptions): string | undefined;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
// TODO: Are there other CDNs missing from here?
|
|
3
|
+
const PRODUCTION_CDN_HOSTNAMES = [
|
|
4
|
+
'cdn.shopify.com',
|
|
5
|
+
'cdn.shopifycdn.net',
|
|
6
|
+
'shopify-assets.shopifycdn.com',
|
|
7
|
+
'shopify-assets.shopifycdn.net',
|
|
8
|
+
];
|
|
9
|
+
const LOCAL_CDN_HOSTNAMES = ['spin.dev'];
|
|
10
|
+
/**
|
|
11
|
+
* Adds image size parameters to an image URL hosted by Shopify's CDN
|
|
12
|
+
*/
|
|
13
|
+
export function addImageSizeParametersToUrl(url, { width, height, crop, scale, format }) {
|
|
14
|
+
const newUrl = new URL(url);
|
|
15
|
+
const allowedCDNHostnames = PRODUCTION_CDN_HOSTNAMES.concat(LOCAL_CDN_HOSTNAMES);
|
|
16
|
+
if (!allowedCDNHostnames.some((allowedHostname) => newUrl.hostname.endsWith(allowedHostname))) {
|
|
17
|
+
throw new Error('addImageSizeParametersToUrl only operates on Shopify-served image assets');
|
|
18
|
+
}
|
|
19
|
+
const sizePath = width || height ? `_${width !== null && width !== void 0 ? width : ''}x${height !== null && height !== void 0 ? height : ''}` : '';
|
|
20
|
+
const cropPath = crop ? `_crop_${crop}` : '';
|
|
21
|
+
const scalePath = scale ? `@${scale}x` : '';
|
|
22
|
+
const progressive = format === 'pjpg' ? `.progressive` : '';
|
|
23
|
+
const asJPG = format === 'jpg' ? `.jpg` : '';
|
|
24
|
+
// We assume here that the last `.` is the delimiter
|
|
25
|
+
// between the file name and the file type
|
|
26
|
+
const fileDelimiterIndex = newUrl.pathname.lastIndexOf('.');
|
|
27
|
+
const fileName = newUrl.pathname.substr(0, fileDelimiterIndex);
|
|
28
|
+
const fileType = newUrl.pathname.substr(fileDelimiterIndex);
|
|
29
|
+
newUrl.pathname = `${fileName}${sizePath}${cropPath}${scalePath}${progressive}${fileType}${asJPG}`;
|
|
30
|
+
return newUrl.toString();
|
|
31
|
+
}
|
|
32
|
+
export function useImageUrl(url, options) {
|
|
33
|
+
return React.useMemo(() => {
|
|
34
|
+
if (url == null ||
|
|
35
|
+
options == null ||
|
|
36
|
+
(!options.width &&
|
|
37
|
+
!options.height &&
|
|
38
|
+
!options.crop &&
|
|
39
|
+
!options.scale &&
|
|
40
|
+
!options.format)) {
|
|
41
|
+
return url;
|
|
42
|
+
}
|
|
43
|
+
return addImageSizeParametersToUrl(url, options);
|
|
44
|
+
}, [options, url]);
|
|
45
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { addImageSizeParametersToUrl, ImageSizeOptions, useImageUrl, } from './image_size';
|
|
2
|
+
export { YouTube, Vimeo, addParametersToEmbeddedVideoUrl, useEmbeddedVideoUrl, } from './video_parameters';
|
|
3
|
+
export { loadScript } from './script_loader';
|
|
4
|
+
export { wrapPromise } from './suspense';
|
|
5
|
+
export { flattenConnection } from './connections';
|
|
6
|
+
export { isClient, isServer } from './environment';
|
|
7
|
+
export { getMeasurementAsParts, getMeasurementAsString } from './meaurement';
|
|
8
|
+
export { parseMetafieldValue } from './metafields';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { addImageSizeParametersToUrl, useImageUrl, } from './image_size';
|
|
2
|
+
export { addParametersToEmbeddedVideoUrl, useEmbeddedVideoUrl, } from './video_parameters';
|
|
3
|
+
export { loadScript } from './script_loader';
|
|
4
|
+
export { wrapPromise } from './suspense';
|
|
5
|
+
export { flattenConnection } from './connections';
|
|
6
|
+
export { isClient, isServer } from './environment';
|
|
7
|
+
export { getMeasurementAsParts, getMeasurementAsString } from './meaurement';
|
|
8
|
+
export { parseMetafieldValue } from './metafields';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Measurement } from '../types';
|
|
2
|
+
export declare function getMeasurementAsString(measurement: Measurement, locale?: string, options?: Intl.NumberFormatOptions): string;
|
|
3
|
+
export declare function getMeasurementAsParts(measurement: Measurement, locale?: string, options?: Intl.NumberFormatOptions): Intl.NumberFormatPart[];
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
const UNIT_MAPPING = {
|
|
2
|
+
// Dimension
|
|
3
|
+
mm: 'millimeter',
|
|
4
|
+
cm: 'centimeter',
|
|
5
|
+
m: 'meter',
|
|
6
|
+
in: 'inch',
|
|
7
|
+
ft: 'foot',
|
|
8
|
+
yd: 'yard',
|
|
9
|
+
// Volume
|
|
10
|
+
ml: 'milliliter',
|
|
11
|
+
l: 'liter',
|
|
12
|
+
us_fl_oz: 'fluid-ounce',
|
|
13
|
+
us_gal: 'gallon',
|
|
14
|
+
// Weight
|
|
15
|
+
kg: 'kilogram',
|
|
16
|
+
g: 'gram',
|
|
17
|
+
lb: 'pound',
|
|
18
|
+
oz: 'ounce',
|
|
19
|
+
};
|
|
20
|
+
export function getMeasurementAsString(measurement, locale = 'en-us', options = {}) {
|
|
21
|
+
let measure = {
|
|
22
|
+
value: measurement.value,
|
|
23
|
+
unit: UNIT_MAPPING[measurement.unit],
|
|
24
|
+
};
|
|
25
|
+
if (measure.unit == null) {
|
|
26
|
+
measure = convertToSupportedUnit(measurement.value, measurement.unit);
|
|
27
|
+
}
|
|
28
|
+
return new Intl.NumberFormat(locale, {
|
|
29
|
+
...options,
|
|
30
|
+
unit: measure.unit,
|
|
31
|
+
style: 'unit',
|
|
32
|
+
}).format(measure.value);
|
|
33
|
+
}
|
|
34
|
+
export function getMeasurementAsParts(measurement, locale = 'en-us', options = {}) {
|
|
35
|
+
let measure = {
|
|
36
|
+
value: measurement.value,
|
|
37
|
+
unit: UNIT_MAPPING[measurement.unit],
|
|
38
|
+
};
|
|
39
|
+
if (measure.unit == null) {
|
|
40
|
+
measure = convertToSupportedUnit(measurement.value, measurement.unit);
|
|
41
|
+
}
|
|
42
|
+
return new Intl.NumberFormat(locale, {
|
|
43
|
+
...options,
|
|
44
|
+
unit: measure.unit,
|
|
45
|
+
style: 'unit',
|
|
46
|
+
}).formatToParts(measure.value);
|
|
47
|
+
}
|
|
48
|
+
function convertToSupportedUnit(value, unit) {
|
|
49
|
+
switch (unit) {
|
|
50
|
+
case 'cl':
|
|
51
|
+
return {
|
|
52
|
+
value: value / 1000,
|
|
53
|
+
unit: 'liter',
|
|
54
|
+
};
|
|
55
|
+
case 'm3':
|
|
56
|
+
return {
|
|
57
|
+
value: value * 1000,
|
|
58
|
+
unit: 'liter',
|
|
59
|
+
};
|
|
60
|
+
case 'us_pt':
|
|
61
|
+
return {
|
|
62
|
+
value: value * 0.125,
|
|
63
|
+
unit: 'gallon',
|
|
64
|
+
};
|
|
65
|
+
case 'us_qt':
|
|
66
|
+
return {
|
|
67
|
+
value: value * 0.5,
|
|
68
|
+
unit: 'gallon',
|
|
69
|
+
};
|
|
70
|
+
case 'us_oz':
|
|
71
|
+
return {
|
|
72
|
+
value: value / 128,
|
|
73
|
+
unit: 'gallon',
|
|
74
|
+
};
|
|
75
|
+
case 'imp_pt':
|
|
76
|
+
return {
|
|
77
|
+
value: value / 6.661,
|
|
78
|
+
unit: 'gallon',
|
|
79
|
+
};
|
|
80
|
+
case 'imp_qt':
|
|
81
|
+
return {
|
|
82
|
+
value: value / 3.331,
|
|
83
|
+
unit: 'gallon',
|
|
84
|
+
};
|
|
85
|
+
case 'imp_gal':
|
|
86
|
+
return {
|
|
87
|
+
value: value / 1.201,
|
|
88
|
+
unit: 'gallon',
|
|
89
|
+
};
|
|
90
|
+
case 'imp_fl_oz':
|
|
91
|
+
return {
|
|
92
|
+
value: value * 0.96076,
|
|
93
|
+
unit: 'fluid-ounce',
|
|
94
|
+
};
|
|
95
|
+
default:
|
|
96
|
+
throw new Error(`Unit not supported: ${unit}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export function parseMetafieldValue(metafield) {
|
|
2
|
+
if (metafield.value == null) {
|
|
3
|
+
return metafield.value;
|
|
4
|
+
}
|
|
5
|
+
switch (metafield.type) {
|
|
6
|
+
case 'boolean':
|
|
7
|
+
return metafield.value == 'true';
|
|
8
|
+
case 'number_integer':
|
|
9
|
+
return parseInt(metafield.value);
|
|
10
|
+
case 'number_decimal':
|
|
11
|
+
return parseFloat(metafield.value);
|
|
12
|
+
case 'date':
|
|
13
|
+
case 'date_time':
|
|
14
|
+
return new Date(metafield.value);
|
|
15
|
+
case 'json':
|
|
16
|
+
case 'weight':
|
|
17
|
+
case 'dimension':
|
|
18
|
+
case 'volume':
|
|
19
|
+
case 'rating':
|
|
20
|
+
return JSON.parse(metafield.value);
|
|
21
|
+
case 'color':
|
|
22
|
+
case 'single_line_text_field':
|
|
23
|
+
case 'multi_line_text_field':
|
|
24
|
+
case 'product_reference':
|
|
25
|
+
case 'page_reference':
|
|
26
|
+
case 'variant_reference':
|
|
27
|
+
case 'file_reference':
|
|
28
|
+
case 'url':
|
|
29
|
+
default:
|
|
30
|
+
return metafield.value;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const SCRIPTS_LOADED = {};
|
|
2
|
+
export function loadScript(src, options) {
|
|
3
|
+
const isScriptLoaded = SCRIPTS_LOADED[src];
|
|
4
|
+
if (isScriptLoaded) {
|
|
5
|
+
return isScriptLoaded;
|
|
6
|
+
}
|
|
7
|
+
const promise = new Promise((resolve, reject) => {
|
|
8
|
+
const script = document.createElement('script');
|
|
9
|
+
if (options === null || options === void 0 ? void 0 : options.module) {
|
|
10
|
+
script.type = 'module';
|
|
11
|
+
}
|
|
12
|
+
script.src = src;
|
|
13
|
+
script.onload = () => {
|
|
14
|
+
resolve(true);
|
|
15
|
+
};
|
|
16
|
+
script.onerror = () => {
|
|
17
|
+
reject(false);
|
|
18
|
+
};
|
|
19
|
+
document.body.appendChild(script);
|
|
20
|
+
});
|
|
21
|
+
SCRIPTS_LOADED[src] = promise;
|
|
22
|
+
return promise;
|
|
23
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wrap the fetch promise in a way that React Suspense understands.
|
|
3
|
+
* Essentially, keep throwing something until you have legit data.
|
|
4
|
+
*/
|
|
5
|
+
export function wrapPromise(promise) {
|
|
6
|
+
let status = 'pending';
|
|
7
|
+
let response;
|
|
8
|
+
const suspender = promise.then((res) => {
|
|
9
|
+
status = 'success';
|
|
10
|
+
response = res;
|
|
11
|
+
}, (err) => {
|
|
12
|
+
status = 'error';
|
|
13
|
+
response = err;
|
|
14
|
+
throw err;
|
|
15
|
+
});
|
|
16
|
+
const read = () => {
|
|
17
|
+
/**
|
|
18
|
+
* TODO: This logic doesn't hold up when an error is thrown. For some reason.
|
|
19
|
+
* We instead throw the exception above in the suspender. We should revisit
|
|
20
|
+
* this and add a better server fetch implementation.
|
|
21
|
+
*/
|
|
22
|
+
switch (status) {
|
|
23
|
+
case 'pending':
|
|
24
|
+
throw suspender;
|
|
25
|
+
case 'error':
|
|
26
|
+
throw response;
|
|
27
|
+
default:
|
|
28
|
+
return response;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return { read };
|
|
32
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface YouTube {
|
|
2
|
+
autoplay?: 0 | 1;
|
|
3
|
+
cc_lang_pref?: string;
|
|
4
|
+
cc_load_policy?: 1;
|
|
5
|
+
color?: 'red' | 'white';
|
|
6
|
+
controls?: 0 | 1;
|
|
7
|
+
disablekb?: 0 | 1;
|
|
8
|
+
enablejsapi?: 0 | 1;
|
|
9
|
+
end?: number;
|
|
10
|
+
fs?: 0 | 1;
|
|
11
|
+
hl?: string;
|
|
12
|
+
iv_load_policy?: 1 | 3;
|
|
13
|
+
list?: string;
|
|
14
|
+
list_type?: 'playlist' | 'user_uploads';
|
|
15
|
+
loop?: 0 | 1;
|
|
16
|
+
modest_branding?: 1;
|
|
17
|
+
origin?: string;
|
|
18
|
+
playlist?: string;
|
|
19
|
+
plays_inline?: 0 | 1;
|
|
20
|
+
rel?: 0 | 1;
|
|
21
|
+
start?: number;
|
|
22
|
+
widget_referrer?: string;
|
|
23
|
+
}
|
|
24
|
+
declare type VimeoBoolean = 0 | 1 | boolean;
|
|
25
|
+
export interface Vimeo {
|
|
26
|
+
autopause?: VimeoBoolean;
|
|
27
|
+
autoplay?: VimeoBoolean;
|
|
28
|
+
background?: VimeoBoolean;
|
|
29
|
+
byline?: VimeoBoolean;
|
|
30
|
+
color?: string;
|
|
31
|
+
controls?: VimeoBoolean;
|
|
32
|
+
dnt?: VimeoBoolean;
|
|
33
|
+
loop?: VimeoBoolean;
|
|
34
|
+
muted?: VimeoBoolean;
|
|
35
|
+
pip?: VimeoBoolean;
|
|
36
|
+
playsinline?: VimeoBoolean;
|
|
37
|
+
portrait?: VimeoBoolean;
|
|
38
|
+
quality?: '240p' | '360p' | '540p' | '720p' | '1080p' | '2k' | '4k';
|
|
39
|
+
speed?: VimeoBoolean;
|
|
40
|
+
'#t'?: string;
|
|
41
|
+
texttrack?: string;
|
|
42
|
+
title?: VimeoBoolean;
|
|
43
|
+
transparent?: VimeoBoolean;
|
|
44
|
+
}
|
|
45
|
+
export declare function addParametersToEmbeddedVideoUrl(url: string, parameters?: YouTube | Vimeo): string;
|
|
46
|
+
export declare function useEmbeddedVideoUrl(url: string, parameters?: YouTube | Vimeo): string;
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
export function addParametersToEmbeddedVideoUrl(url, parameters) {
|
|
3
|
+
if (parameters == null) {
|
|
4
|
+
return url;
|
|
5
|
+
}
|
|
6
|
+
const params = Object.keys(parameters).reduce((accumulator, param) => {
|
|
7
|
+
const value = parameters[param];
|
|
8
|
+
if (value == null) {
|
|
9
|
+
return accumulator;
|
|
10
|
+
}
|
|
11
|
+
return accumulator + `&${param}=${value}`;
|
|
12
|
+
}, '');
|
|
13
|
+
return `${url}?${params}`;
|
|
14
|
+
}
|
|
15
|
+
export function useEmbeddedVideoUrl(url, parameters) {
|
|
16
|
+
return useMemo(() => {
|
|
17
|
+
if (!parameters) {
|
|
18
|
+
return url;
|
|
19
|
+
}
|
|
20
|
+
return addParametersToEmbeddedVideoUrl(url, parameters);
|
|
21
|
+
}, [url, parameters]);
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LIB_VERSION = "0.1.0";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const LIB_VERSION = '0.1.0';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
name: string;
|
|
4
|
+
id: string;
|
|
5
|
+
props: any;
|
|
6
|
+
component: FunctionComponent;
|
|
7
|
+
named: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function ClientMarker({ name, id, props: allProps, component: Component, named, }: Props): JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.ClientMarker = void 0;
|
|
23
|
+
const react_1 = __importStar(require("react"));
|
|
24
|
+
const HydrationContext_server_1 = require("../Hydration/HydrationContext.server");
|
|
25
|
+
const react_utils_1 = require("../Hydration/react-utils");
|
|
26
|
+
function ClientMarker({ name, id, props: allProps, component: Component, named, }) {
|
|
27
|
+
const isHydrating = react_1.useContext(HydrationContext_server_1.HydrationContext);
|
|
28
|
+
if (!isHydrating)
|
|
29
|
+
return react_1.default.createElement(Component, { ...allProps });
|
|
30
|
+
let { children, ...props } = allProps;
|
|
31
|
+
/**
|
|
32
|
+
* Convert props that happen to be React components to actual
|
|
33
|
+
* objects representing DOM elements. This is because we
|
|
34
|
+
* serialize props to JSON below, and React element Functions
|
|
35
|
+
* cannot be serialized.
|
|
36
|
+
*/
|
|
37
|
+
props = react_utils_1.renderReactProps(props);
|
|
38
|
+
/**
|
|
39
|
+
* Components ending in *Provider are special components to
|
|
40
|
+
* Hydrogen's RSC implementation. They are rendered during
|
|
41
|
+
* the hydration process in the state tree even though they
|
|
42
|
+
* don't output any DOM. This is key to supporting crossing
|
|
43
|
+
* the server/client context boundary.
|
|
44
|
+
*/
|
|
45
|
+
const shouldRenderDuringHydration = name.endsWith('Provider');
|
|
46
|
+
return (react_1.default.createElement("span", { "data-client-component": name, "data-id": id, "data-props": JSON.stringify(props), "data-named": named }, shouldRenderDuringHydration ? (react_1.default.createElement(Component, { ...allProps }, children)) : (children)));
|
|
47
|
+
}
|
|
48
|
+
exports.ClientMarker = ClientMarker;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ClientMarker';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./ClientMarker"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const HydrationContext: import("react").Context<boolean>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This augments the `Request` object from the Fetch API:
|
|
3
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Request
|
|
4
|
+
*
|
|
5
|
+
* - Adds a `cookies` map for easy access
|
|
6
|
+
* - Adds a static constructor to convert a Node.js `IncomingMessage` to a Request.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ServerComponentRequest extends Request {
|
|
9
|
+
cookies: Map<string, string>;
|
|
10
|
+
constructor(input: any);
|
|
11
|
+
constructor(input: RequestInfo, init?: RequestInit);
|
|
12
|
+
private parseCookies;
|
|
13
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServerComponentRequest = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* This augments the `Request` object from the Fetch API:
|
|
6
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Request
|
|
7
|
+
*
|
|
8
|
+
* - Adds a `cookies` map for easy access
|
|
9
|
+
* - Adds a static constructor to convert a Node.js `IncomingMessage` to a Request.
|
|
10
|
+
*/
|
|
11
|
+
class ServerComponentRequest extends Request {
|
|
12
|
+
constructor(input, init) {
|
|
13
|
+
if (input instanceof Request) {
|
|
14
|
+
super(input, init);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
super(getUrlFromNodeRequest(input), {
|
|
18
|
+
headers: new Headers(input.headers),
|
|
19
|
+
method: input.method,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
this.cookies = this.parseCookies();
|
|
23
|
+
}
|
|
24
|
+
parseCookies() {
|
|
25
|
+
const cookieString = this.headers.get('cookie') || '';
|
|
26
|
+
return new Map(cookieString
|
|
27
|
+
.split(';')
|
|
28
|
+
.map((chunk) => chunk.trim().split('=')));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.ServerComponentRequest = ServerComponentRequest;
|
|
32
|
+
/**
|
|
33
|
+
* @see https://github.com/frandiox/vitedge/blob/17f3cd943e86d7c0c71a862985ddd6caa2899425/src/node/utils.js#L19-L24
|
|
34
|
+
*
|
|
35
|
+
* Note: Request can sometimes be an instance of Express request, where `originalUrl` is the true source of what the
|
|
36
|
+
* URL pathname is. We want to use that if it's present, so we union type this to `any`.
|
|
37
|
+
*/
|
|
38
|
+
function getUrlFromNodeRequest(request) {
|
|
39
|
+
var _a;
|
|
40
|
+
// TODO: Find out how to determine https from `request` object without forwarded proto
|
|
41
|
+
const secure = request.headers['x-forwarded-proto'] === 'https';
|
|
42
|
+
return new URL(`${secure ? 'https' : 'http'}://${request.headers.host + ((_a = request.originalUrl) !== null && _a !== void 0 ? _a : request.url)}`).toString();
|
|
43
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class ServerComponentResponse extends Response {
|
|
2
|
+
private wait;
|
|
3
|
+
/**
|
|
4
|
+
* Allow custom body to be a string or a Promise.
|
|
5
|
+
*/
|
|
6
|
+
customBody: string | Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Buffer the current response until all queries have resolved,
|
|
9
|
+
* and prevent it from streaming back early.
|
|
10
|
+
*/
|
|
11
|
+
doNotStream(): void;
|
|
12
|
+
canStream(): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Send the response from a Server Component. Renders React components to string,
|
|
15
|
+
* and returns `null` to make React happy.
|
|
16
|
+
*/
|
|
17
|
+
send(body: any): null;
|
|
18
|
+
}
|