@shopify/hydrogen-react 2025.5.0 → 2025.7.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/customer-account.schema.json +1 -1
- package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
- package/dist/browser-dev/BaseButton.mjs.map +1 -1
- package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
- package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
- package/dist/browser-dev/CartCost.mjs.map +1 -1
- package/dist/browser-dev/CartLineProvider.mjs.map +1 -1
- package/dist/browser-dev/CartLineQuantity.mjs.map +1 -1
- package/dist/browser-dev/CartLineQuantityAdjustButton.mjs.map +1 -1
- package/dist/browser-dev/CartProvider.mjs.map +1 -1
- package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
- package/dist/browser-dev/Image.mjs.map +1 -1
- package/dist/browser-dev/MediaFile.mjs.map +1 -1
- package/dist/browser-dev/ModelViewer.mjs.map +1 -1
- package/dist/browser-dev/Money.mjs.map +1 -1
- package/dist/browser-dev/ProductPrice.mjs.map +1 -1
- package/dist/browser-dev/ProductProvider.mjs.map +1 -1
- package/dist/browser-dev/RichText.components.mjs.map +1 -1
- package/dist/browser-dev/RichText.mjs.map +1 -1
- package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
- package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
- package/dist/browser-dev/Video.mjs.map +1 -1
- package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
- package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
- package/dist/browser-dev/analytics-utils.mjs.map +1 -1
- package/dist/browser-dev/analytics.mjs.map +1 -1
- package/dist/browser-dev/cart-hooks.mjs.map +1 -1
- package/dist/browser-dev/cart-queries.mjs.map +1 -1
- package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
- package/dist/browser-dev/cookies-utils.mjs.map +1 -1
- package/dist/browser-dev/flatten-connection.mjs.map +1 -1
- package/dist/browser-dev/getProductOptions.mjs.map +1 -1
- package/dist/browser-dev/load-script.mjs.map +1 -1
- package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs +17 -17
- package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
- package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
- package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
- package/dist/browser-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -1
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
- package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
- package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
- package/dist/browser-dev/optionValueDecoder.mjs.map +1 -1
- package/dist/browser-dev/packages/hydrogen-react/package.json.mjs +1 -1
- package/dist/browser-dev/parse-metafield.mjs +26 -1
- package/dist/browser-dev/parse-metafield.mjs.map +1 -1
- package/dist/browser-dev/storefront-api-constants.mjs +1 -1
- package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
- package/dist/browser-dev/storefront-client.mjs.map +1 -1
- package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
- package/dist/browser-dev/useCartActions.mjs.map +1 -1
- package/dist/browser-dev/useMoney.mjs +53 -7
- package/dist/browser-dev/useMoney.mjs.map +1 -1
- package/dist/browser-dev/useSelectedOptionInUrlParam.mjs.map +1 -1
- package/dist/browser-dev/useShopifyCookies.mjs.map +1 -1
- package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
- package/dist/browser-prod/BaseButton.mjs.map +1 -1
- package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
- package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
- package/dist/browser-prod/CartCost.mjs.map +1 -1
- package/dist/browser-prod/CartLineProvider.mjs.map +1 -1
- package/dist/browser-prod/CartLineQuantity.mjs.map +1 -1
- package/dist/browser-prod/CartLineQuantityAdjustButton.mjs.map +1 -1
- package/dist/browser-prod/CartProvider.mjs.map +1 -1
- package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
- package/dist/browser-prod/Image.mjs.map +1 -1
- package/dist/browser-prod/MediaFile.mjs.map +1 -1
- package/dist/browser-prod/ModelViewer.mjs.map +1 -1
- package/dist/browser-prod/Money.mjs.map +1 -1
- package/dist/browser-prod/ProductPrice.mjs.map +1 -1
- package/dist/browser-prod/ProductProvider.mjs.map +1 -1
- package/dist/browser-prod/RichText.components.mjs.map +1 -1
- package/dist/browser-prod/RichText.mjs.map +1 -1
- package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
- package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
- package/dist/browser-prod/Video.mjs.map +1 -1
- package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
- package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
- package/dist/browser-prod/analytics-utils.mjs.map +1 -1
- package/dist/browser-prod/analytics.mjs.map +1 -1
- package/dist/browser-prod/cart-hooks.mjs.map +1 -1
- package/dist/browser-prod/cart-queries.mjs.map +1 -1
- package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
- package/dist/browser-prod/cookies-utils.mjs.map +1 -1
- package/dist/browser-prod/flatten-connection.mjs.map +1 -1
- package/dist/browser-prod/getProductOptions.mjs.map +1 -1
- package/dist/browser-prod/load-script.mjs.map +1 -1
- package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs +17 -17
- package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
- package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
- package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
- package/dist/browser-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -1
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
- package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
- package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
- package/dist/browser-prod/optionValueDecoder.mjs.map +1 -1
- package/dist/browser-prod/packages/hydrogen-react/package.json.mjs +1 -1
- package/dist/browser-prod/parse-metafield.mjs +27 -1
- package/dist/browser-prod/parse-metafield.mjs.map +1 -1
- package/dist/browser-prod/storefront-api-constants.mjs +1 -1
- package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
- package/dist/browser-prod/storefront-client.mjs.map +1 -1
- package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
- package/dist/browser-prod/useCartActions.mjs.map +1 -1
- package/dist/browser-prod/useMoney.mjs +53 -7
- package/dist/browser-prod/useMoney.mjs.map +1 -1
- package/dist/browser-prod/useSelectedOptionInUrlParam.mjs.map +1 -1
- package/dist/browser-prod/useShopifyCookies.mjs.map +1 -1
- package/dist/node-dev/AddToCartButton.js.map +1 -1
- package/dist/node-dev/AddToCartButton.mjs.map +1 -1
- package/dist/node-dev/BaseButton.js.map +1 -1
- package/dist/node-dev/BaseButton.mjs.map +1 -1
- package/dist/node-dev/BuyNowButton.js.map +1 -1
- package/dist/node-dev/BuyNowButton.mjs.map +1 -1
- package/dist/node-dev/CartCheckoutButton.js.map +1 -1
- package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
- package/dist/node-dev/CartCost.js.map +1 -1
- package/dist/node-dev/CartCost.mjs.map +1 -1
- package/dist/node-dev/CartLineProvider.js.map +1 -1
- package/dist/node-dev/CartLineProvider.mjs.map +1 -1
- package/dist/node-dev/CartLineQuantity.js.map +1 -1
- package/dist/node-dev/CartLineQuantity.mjs.map +1 -1
- package/dist/node-dev/CartLineQuantityAdjustButton.js.map +1 -1
- package/dist/node-dev/CartLineQuantityAdjustButton.mjs.map +1 -1
- package/dist/node-dev/CartProvider.js.map +1 -1
- package/dist/node-dev/CartProvider.mjs.map +1 -1
- package/dist/node-dev/ExternalVideo.js.map +1 -1
- package/dist/node-dev/ExternalVideo.mjs.map +1 -1
- package/dist/node-dev/Image.js.map +1 -1
- package/dist/node-dev/Image.mjs.map +1 -1
- package/dist/node-dev/MediaFile.js.map +1 -1
- package/dist/node-dev/MediaFile.mjs.map +1 -1
- package/dist/node-dev/ModelViewer.js.map +1 -1
- package/dist/node-dev/ModelViewer.mjs.map +1 -1
- package/dist/node-dev/Money.js.map +1 -1
- package/dist/node-dev/Money.mjs.map +1 -1
- package/dist/node-dev/ProductPrice.js.map +1 -1
- package/dist/node-dev/ProductPrice.mjs.map +1 -1
- package/dist/node-dev/ProductProvider.js.map +1 -1
- package/dist/node-dev/ProductProvider.mjs.map +1 -1
- package/dist/node-dev/RichText.components.js.map +1 -1
- package/dist/node-dev/RichText.components.mjs.map +1 -1
- package/dist/node-dev/RichText.js.map +1 -1
- package/dist/node-dev/RichText.mjs.map +1 -1
- package/dist/node-dev/ShopPayButton.js.map +1 -1
- package/dist/node-dev/ShopPayButton.mjs.map +1 -1
- package/dist/node-dev/ShopifyProvider.js.map +1 -1
- package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
- package/dist/node-dev/Video.js.map +1 -1
- package/dist/node-dev/Video.mjs.map +1 -1
- package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
- package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
- package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
- package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
- package/dist/node-dev/analytics-utils.js.map +1 -1
- package/dist/node-dev/analytics-utils.mjs.map +1 -1
- package/dist/node-dev/analytics.js.map +1 -1
- package/dist/node-dev/analytics.mjs.map +1 -1
- package/dist/node-dev/cart-hooks.js.map +1 -1
- package/dist/node-dev/cart-hooks.mjs.map +1 -1
- package/dist/node-dev/cart-queries.js.map +1 -1
- package/dist/node-dev/cart-queries.mjs.map +1 -1
- package/dist/node-dev/codegen.helpers.js.map +1 -1
- package/dist/node-dev/codegen.helpers.mjs.map +1 -1
- package/dist/node-dev/cookies-utils.js.map +1 -1
- package/dist/node-dev/cookies-utils.mjs.map +1 -1
- package/dist/node-dev/flatten-connection.js.map +1 -1
- package/dist/node-dev/flatten-connection.mjs.map +1 -1
- package/dist/node-dev/getProductOptions.js.map +1 -1
- package/dist/node-dev/getProductOptions.mjs.map +1 -1
- package/dist/node-dev/load-script.js.map +1 -1
- package/dist/node-dev/load-script.mjs.map +1 -1
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +17 -17
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs +17 -17
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
- package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +2 -2
- package/dist/node-dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
- package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
- package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
- package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
- package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
- package/dist/node-dev/optionValueDecoder.js.map +1 -1
- package/dist/node-dev/optionValueDecoder.mjs.map +1 -1
- package/dist/node-dev/packages/hydrogen-react/package.json.js +1 -1
- package/dist/node-dev/packages/hydrogen-react/package.json.mjs +1 -1
- package/dist/node-dev/parse-metafield.js +26 -1
- package/dist/node-dev/parse-metafield.js.map +1 -1
- package/dist/node-dev/parse-metafield.mjs +26 -1
- package/dist/node-dev/parse-metafield.mjs.map +1 -1
- package/dist/node-dev/storefront-api-constants.js +1 -1
- package/dist/node-dev/storefront-api-constants.js.map +1 -1
- package/dist/node-dev/storefront-api-constants.mjs +1 -1
- package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
- package/dist/node-dev/storefront-client.js.map +1 -1
- package/dist/node-dev/storefront-client.mjs.map +1 -1
- package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
- package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
- package/dist/node-dev/useCartActions.js.map +1 -1
- package/dist/node-dev/useCartActions.mjs.map +1 -1
- package/dist/node-dev/useMoney.js +53 -7
- package/dist/node-dev/useMoney.js.map +1 -1
- package/dist/node-dev/useMoney.mjs +53 -7
- package/dist/node-dev/useMoney.mjs.map +1 -1
- package/dist/node-dev/useSelectedOptionInUrlParam.js.map +1 -1
- package/dist/node-dev/useSelectedOptionInUrlParam.mjs.map +1 -1
- package/dist/node-dev/useShopifyCookies.js.map +1 -1
- package/dist/node-dev/useShopifyCookies.mjs.map +1 -1
- package/dist/node-prod/AddToCartButton.js.map +1 -1
- package/dist/node-prod/AddToCartButton.mjs.map +1 -1
- package/dist/node-prod/BaseButton.js.map +1 -1
- package/dist/node-prod/BaseButton.mjs.map +1 -1
- package/dist/node-prod/BuyNowButton.js.map +1 -1
- package/dist/node-prod/BuyNowButton.mjs.map +1 -1
- package/dist/node-prod/CartCheckoutButton.js.map +1 -1
- package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
- package/dist/node-prod/CartCost.js.map +1 -1
- package/dist/node-prod/CartCost.mjs.map +1 -1
- package/dist/node-prod/CartLineProvider.js.map +1 -1
- package/dist/node-prod/CartLineProvider.mjs.map +1 -1
- package/dist/node-prod/CartLineQuantity.js.map +1 -1
- package/dist/node-prod/CartLineQuantity.mjs.map +1 -1
- package/dist/node-prod/CartLineQuantityAdjustButton.js.map +1 -1
- package/dist/node-prod/CartLineQuantityAdjustButton.mjs.map +1 -1
- package/dist/node-prod/CartProvider.js.map +1 -1
- package/dist/node-prod/CartProvider.mjs.map +1 -1
- package/dist/node-prod/ExternalVideo.js.map +1 -1
- package/dist/node-prod/ExternalVideo.mjs.map +1 -1
- package/dist/node-prod/Image.js.map +1 -1
- package/dist/node-prod/Image.mjs.map +1 -1
- package/dist/node-prod/MediaFile.js.map +1 -1
- package/dist/node-prod/MediaFile.mjs.map +1 -1
- package/dist/node-prod/ModelViewer.js.map +1 -1
- package/dist/node-prod/ModelViewer.mjs.map +1 -1
- package/dist/node-prod/Money.js.map +1 -1
- package/dist/node-prod/Money.mjs.map +1 -1
- package/dist/node-prod/ProductPrice.js.map +1 -1
- package/dist/node-prod/ProductPrice.mjs.map +1 -1
- package/dist/node-prod/ProductProvider.js.map +1 -1
- package/dist/node-prod/ProductProvider.mjs.map +1 -1
- package/dist/node-prod/RichText.components.js.map +1 -1
- package/dist/node-prod/RichText.components.mjs.map +1 -1
- package/dist/node-prod/RichText.js.map +1 -1
- package/dist/node-prod/RichText.mjs.map +1 -1
- package/dist/node-prod/ShopPayButton.js.map +1 -1
- package/dist/node-prod/ShopPayButton.mjs.map +1 -1
- package/dist/node-prod/ShopifyProvider.js.map +1 -1
- package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
- package/dist/node-prod/Video.js.map +1 -1
- package/dist/node-prod/Video.mjs.map +1 -1
- package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
- package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
- package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
- package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
- package/dist/node-prod/analytics-utils.js.map +1 -1
- package/dist/node-prod/analytics-utils.mjs.map +1 -1
- package/dist/node-prod/analytics.js.map +1 -1
- package/dist/node-prod/analytics.mjs.map +1 -1
- package/dist/node-prod/cart-hooks.js.map +1 -1
- package/dist/node-prod/cart-hooks.mjs.map +1 -1
- package/dist/node-prod/cart-queries.js.map +1 -1
- package/dist/node-prod/cart-queries.mjs.map +1 -1
- package/dist/node-prod/codegen.helpers.js.map +1 -1
- package/dist/node-prod/codegen.helpers.mjs.map +1 -1
- package/dist/node-prod/cookies-utils.js.map +1 -1
- package/dist/node-prod/cookies-utils.mjs.map +1 -1
- package/dist/node-prod/flatten-connection.js.map +1 -1
- package/dist/node-prod/flatten-connection.mjs.map +1 -1
- package/dist/node-prod/getProductOptions.js.map +1 -1
- package/dist/node-prod/getProductOptions.mjs.map +1 -1
- package/dist/node-prod/load-script.js.map +1 -1
- package/dist/node-prod/load-script.mjs.map +1 -1
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +17 -17
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs +17 -17
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
- package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +2 -2
- package/dist/node-prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
- package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
- package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
- package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
- package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
- package/dist/node-prod/optionValueDecoder.js.map +1 -1
- package/dist/node-prod/optionValueDecoder.mjs.map +1 -1
- package/dist/node-prod/packages/hydrogen-react/package.json.js +1 -1
- package/dist/node-prod/packages/hydrogen-react/package.json.mjs +1 -1
- package/dist/node-prod/parse-metafield.js +27 -1
- package/dist/node-prod/parse-metafield.js.map +1 -1
- package/dist/node-prod/parse-metafield.mjs +27 -1
- package/dist/node-prod/parse-metafield.mjs.map +1 -1
- package/dist/node-prod/storefront-api-constants.js +1 -1
- package/dist/node-prod/storefront-api-constants.js.map +1 -1
- package/dist/node-prod/storefront-api-constants.mjs +1 -1
- package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
- package/dist/node-prod/storefront-client.js.map +1 -1
- package/dist/node-prod/storefront-client.mjs.map +1 -1
- package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
- package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
- package/dist/node-prod/useCartActions.js.map +1 -1
- package/dist/node-prod/useCartActions.mjs.map +1 -1
- package/dist/node-prod/useMoney.js +53 -7
- package/dist/node-prod/useMoney.js.map +1 -1
- package/dist/node-prod/useMoney.mjs +53 -7
- package/dist/node-prod/useMoney.mjs.map +1 -1
- package/dist/node-prod/useSelectedOptionInUrlParam.js.map +1 -1
- package/dist/node-prod/useSelectedOptionInUrlParam.mjs.map +1 -1
- package/dist/node-prod/useShopifyCookies.js.map +1 -1
- package/dist/node-prod/useShopifyCookies.mjs.map +1 -1
- package/dist/types/CartLineProvider.d.ts +1 -1
- package/dist/types/CartProvider.d.ts +2 -2
- package/dist/types/Image.d.ts +1 -1
- package/dist/types/ModelViewer.d.ts +1 -1
- package/dist/types/Money.d.ts +13 -5
- package/dist/types/Video.d.ts +1 -1
- package/dist/types/cart-hooks.d.ts +3 -4
- package/dist/types/codegen.helpers.d.ts +2 -2
- package/dist/types/customer-account-api-types.d.ts +9386 -0
- package/dist/types/optionValueDecoder.d.ts +2 -2
- package/dist/types/storefront-api-constants.d.ts +1 -1
- package/dist/types/storefront-api-types.d.ts +143 -8
- package/dist/types/useCartAPIStateMachine.d.ts +2 -2
- package/dist/types/useCartActions.d.ts +2 -2
- package/dist/types/useMoney.d.ts +16 -2
- package/dist/umd/hydrogen-react.dev.js +100 -29
- package/dist/umd/hydrogen-react.dev.js.map +1 -1
- package/dist/umd/hydrogen-react.prod.js +13 -13
- package/dist/umd/hydrogen-react.prod.js.map +1 -1
- package/package.json +26 -25
- package/storefront.schema.json +1 -1
- package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +0 -6
- package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -1
- package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +0 -6
- package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -1
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +0 -5
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +0 -1
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +0 -6
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +0 -1
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +0 -5
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +0 -1
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +0 -6
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +0 -1
|
@@ -14,7 +14,7 @@ export type IsOptionValueCombinationInEncodedVariant = (targetOptionValueCombina
|
|
|
14
14
|
* Determine whether an option value combination is present in an encoded option value string. Function is memoized by encodedVariantField.
|
|
15
15
|
*
|
|
16
16
|
* @param targetOptionValueCombination - Indices of option values to look up in the encoded option value string. A partial set of indices may be passed to determine whether a node or any children is present. For example, if a product has 3 options, passing [0] will return true if any option value combination for the first option's option value is present in the encoded string.
|
|
17
|
-
* @param encodedVariantField - Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-
|
|
17
|
+
* @param encodedVariantField - Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-07/objects/Product#field-encodedvariantexistence) or [product.encodedVariantAvailability](/docs/api/storefront/2025-07/objects/Product#field-encodedvariantavailability)
|
|
18
18
|
* @returns - True if a full or partial targetOptionValueIndices is present in the encoded option value string, false otherwise.
|
|
19
19
|
*/
|
|
20
20
|
export declare const isOptionValueCombinationInEncodedVariant: IsOptionValueCombinationInEncodedVariant;
|
|
@@ -22,7 +22,7 @@ type EncodedVariantField = Product['encodedVariantAvailability'] | Product['enco
|
|
|
22
22
|
type DecodedOptionValues = number[][];
|
|
23
23
|
/**
|
|
24
24
|
* For an encoded option value string, decode into option value combinations. Entries represent a valid combination formatted as an array of option value positions.
|
|
25
|
-
* @param encodedVariantField - Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-
|
|
25
|
+
* @param encodedVariantField - Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-07/objects/Product#field-encodedvariantexistence) or [product.encodedVariantAvailability](/docs/api/storefront/2025-07/objects/Product#field-encodedvariantavailability)
|
|
26
26
|
* @returns Decoded option value combinations
|
|
27
27
|
*/
|
|
28
28
|
export declare function decodeEncodedVariant(encodedVariantField: EncodedVariantField): DecodedOptionValues;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SFAPI_VERSION = "2025-
|
|
1
|
+
export declare const SFAPI_VERSION = "2025-07";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THIS FILE IS AUTO-GENERATED, DO NOT EDIT
|
|
3
|
-
* Based on Storefront API 2025-
|
|
3
|
+
* Based on Storefront API 2025-07
|
|
4
4
|
* If changes need to happen to the types defined in this file, then generally the Storefront API needs to update. After it's updated, you can run `npm run graphql-types`.
|
|
5
5
|
* Except custom Scalars, which are defined in the `codegen.ts` file
|
|
6
6
|
*/
|
|
@@ -708,7 +708,7 @@ export type CartBuyerIdentity = {
|
|
|
708
708
|
* The rank of the preferences is determined by the order of the addresses in the array. Preferences
|
|
709
709
|
* can be used to populate relevant fields in the checkout flow.
|
|
710
710
|
*
|
|
711
|
-
* As of the `2025-
|
|
711
|
+
* As of the `2025-01` release, `buyerIdentity.deliveryAddressPreferences` is deprecated.
|
|
712
712
|
* Delivery addresses are now part of the `CartDelivery` object and managed with three new mutations:
|
|
713
713
|
* - `cartDeliveryAddressAdd`
|
|
714
714
|
* - `cartDeliveryAddressUpdate`
|
|
@@ -1307,6 +1307,10 @@ export type CartErrorCode =
|
|
|
1307
1307
|
| 'ADDRESS_FIELD_IS_REQUIRED'
|
|
1308
1308
|
/** The specified address field is too long. */
|
|
1309
1309
|
| 'ADDRESS_FIELD_IS_TOO_LONG'
|
|
1310
|
+
/** Buyer cannot purchase for company location. */
|
|
1311
|
+
| 'BUYER_CANNOT_PURCHASE_FOR_COMPANY_LOCATION'
|
|
1312
|
+
/** The cart is too large to save. */
|
|
1313
|
+
| 'CART_TOO_LARGE'
|
|
1310
1314
|
/** The input value is invalid. */
|
|
1311
1315
|
| 'INVALID'
|
|
1312
1316
|
/** Company location not found or not allowed. */
|
|
@@ -1325,6 +1329,8 @@ export type CartErrorCode =
|
|
|
1325
1329
|
| 'INVALID_METAFIELDS'
|
|
1326
1330
|
/** The payment wasn't valid. */
|
|
1327
1331
|
| 'INVALID_PAYMENT'
|
|
1332
|
+
/** The payment is invalid. Deferred payment is required. */
|
|
1333
|
+
| 'INVALID_PAYMENT_DEFERRED_PAYMENT_REQUIRED'
|
|
1328
1334
|
/** Cannot update payment on an empty cart */
|
|
1329
1335
|
| 'INVALID_PAYMENT_EMPTY_CART'
|
|
1330
1336
|
/** The given zip code is invalid for the provided country. */
|
|
@@ -1347,16 +1353,46 @@ export type CartErrorCode =
|
|
|
1347
1353
|
| 'NOTE_TOO_LONG'
|
|
1348
1354
|
/** Only one delivery address can be selected. */
|
|
1349
1355
|
| 'ONLY_ONE_DELIVERY_ADDRESS_CAN_BE_SELECTED'
|
|
1356
|
+
/** Credit card has expired. */
|
|
1357
|
+
| 'PAYMENTS_CREDIT_CARD_BASE_EXPIRED'
|
|
1358
|
+
/** Credit card gateway is not supported. */
|
|
1359
|
+
| 'PAYMENTS_CREDIT_CARD_BASE_GATEWAY_NOT_SUPPORTED'
|
|
1360
|
+
/** Credit card error. */
|
|
1361
|
+
| 'PAYMENTS_CREDIT_CARD_GENERIC'
|
|
1362
|
+
/** Credit card month is invalid. */
|
|
1363
|
+
| 'PAYMENTS_CREDIT_CARD_MONTH_INCLUSION'
|
|
1364
|
+
/** Credit card number is invalid. */
|
|
1365
|
+
| 'PAYMENTS_CREDIT_CARD_NUMBER_INVALID'
|
|
1366
|
+
/** Credit card number format is invalid. */
|
|
1367
|
+
| 'PAYMENTS_CREDIT_CARD_NUMBER_INVALID_FORMAT'
|
|
1368
|
+
/** Credit card verification value is blank. */
|
|
1369
|
+
| 'PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_BLANK'
|
|
1370
|
+
/** Credit card verification value is invalid for card type. */
|
|
1371
|
+
| 'PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_INVALID_FOR_CARD_TYPE'
|
|
1372
|
+
/** Credit card has expired. */
|
|
1373
|
+
| 'PAYMENTS_CREDIT_CARD_YEAR_EXPIRED'
|
|
1374
|
+
/** Credit card expiry year is invalid. */
|
|
1375
|
+
| 'PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR'
|
|
1376
|
+
/** The payment method is not applicable. */
|
|
1377
|
+
| 'PAYMENT_METHOD_NOT_APPLICABLE'
|
|
1350
1378
|
/** The payment method is not supported. */
|
|
1351
1379
|
| 'PAYMENT_METHOD_NOT_SUPPORTED'
|
|
1380
|
+
/** The delivery group is in a pending state. */
|
|
1381
|
+
| 'PENDING_DELIVERY_GROUPS'
|
|
1352
1382
|
/** The given province cannot be found. */
|
|
1353
1383
|
| 'PROVINCE_NOT_FOUND'
|
|
1384
|
+
/** Selling plan is not applicable. */
|
|
1385
|
+
| 'SELLING_PLAN_NOT_APPLICABLE'
|
|
1386
|
+
/** An error occurred while saving the cart. */
|
|
1387
|
+
| 'SERVICE_UNAVAILABLE'
|
|
1354
1388
|
/** Too many delivery addresses on Cart. */
|
|
1355
1389
|
| 'TOO_MANY_DELIVERY_ADDRESSES'
|
|
1356
1390
|
/** A general error occurred during address validation. */
|
|
1357
1391
|
| 'UNSPECIFIED_ADDRESS_ERROR'
|
|
1358
1392
|
/** Validation failed. */
|
|
1359
1393
|
| 'VALIDATION_CUSTOM'
|
|
1394
|
+
/** Variant can only be purchased with a selling plan. */
|
|
1395
|
+
| 'VARIANT_REQUIRES_SELLING_PLAN'
|
|
1360
1396
|
/** The given zip code is unsupported. */
|
|
1361
1397
|
| 'ZIP_CODE_NOT_SUPPORTED';
|
|
1362
1398
|
|
|
@@ -1759,6 +1795,17 @@ export type CartPrepareForCompletionResult =
|
|
|
1759
1795
|
| CartStatusReady
|
|
1760
1796
|
| CartThrottled;
|
|
1761
1797
|
|
|
1798
|
+
/** Return type for `cartRemovePersonalData` mutation. */
|
|
1799
|
+
export type CartRemovePersonalDataPayload = {
|
|
1800
|
+
__typename?: 'CartRemovePersonalDataPayload';
|
|
1801
|
+
/** The updated cart. */
|
|
1802
|
+
cart?: Maybe<Cart>;
|
|
1803
|
+
/** The list of errors that occurred from executing the mutation. */
|
|
1804
|
+
userErrors: Array<CartUserError>;
|
|
1805
|
+
/** A list of warnings that occurred during the mutation. */
|
|
1806
|
+
warnings: Array<CartWarning>;
|
|
1807
|
+
};
|
|
1808
|
+
|
|
1762
1809
|
/**
|
|
1763
1810
|
* A selectable delivery address for a cart.
|
|
1764
1811
|
*
|
|
@@ -1862,6 +1909,8 @@ export type CartSubmitForCompletionResult =
|
|
|
1862
1909
|
*/
|
|
1863
1910
|
export type CartThrottled = {
|
|
1864
1911
|
__typename?: 'CartThrottled';
|
|
1912
|
+
/** The result of cart preparation for completion. */
|
|
1913
|
+
cart?: Maybe<Cart>;
|
|
1865
1914
|
/** The polling delay. */
|
|
1866
1915
|
pollAfter: Scalars['DateTime']['output'];
|
|
1867
1916
|
};
|
|
@@ -1901,6 +1950,30 @@ export type CartWarning = {
|
|
|
1901
1950
|
|
|
1902
1951
|
/** The code for the cart warning. */
|
|
1903
1952
|
export type CartWarningCode =
|
|
1953
|
+
/** The discount code cannot be honored. */
|
|
1954
|
+
| 'DISCOUNT_CODE_NOT_HONOURED'
|
|
1955
|
+
/** The discount is currently inactive. */
|
|
1956
|
+
| 'DISCOUNT_CURRENTLY_INACTIVE'
|
|
1957
|
+
/** The customer is not eligible for this discount. */
|
|
1958
|
+
| 'DISCOUNT_CUSTOMER_NOT_ELIGIBLE'
|
|
1959
|
+
/** The customer's discount usage limit has been reached. */
|
|
1960
|
+
| 'DISCOUNT_CUSTOMER_USAGE_LIMIT_REACHED'
|
|
1961
|
+
/** An eligible customer is missing for this discount. */
|
|
1962
|
+
| 'DISCOUNT_ELIGIBLE_CUSTOMER_MISSING'
|
|
1963
|
+
/** The purchase type is incompatible with this discount. */
|
|
1964
|
+
| 'DISCOUNT_INCOMPATIBLE_PURCHASE_TYPE'
|
|
1965
|
+
/** The discount was not found. */
|
|
1966
|
+
| 'DISCOUNT_NOT_FOUND'
|
|
1967
|
+
/** There are no entitled line items for this discount. */
|
|
1968
|
+
| 'DISCOUNT_NO_ENTITLED_LINE_ITEMS'
|
|
1969
|
+
/** There are no entitled shipping lines for this discount. */
|
|
1970
|
+
| 'DISCOUNT_NO_ENTITLED_SHIPPING_LINES'
|
|
1971
|
+
/** The purchase is not in range for this discount. */
|
|
1972
|
+
| 'DISCOUNT_PURCHASE_NOT_IN_RANGE'
|
|
1973
|
+
/** The quantity is not in range for this discount. */
|
|
1974
|
+
| 'DISCOUNT_QUANTITY_NOT_IN_RANGE'
|
|
1975
|
+
/** The discount usage limit has been reached. */
|
|
1976
|
+
| 'DISCOUNT_USAGE_LIMIT_REACHED'
|
|
1904
1977
|
/** A delivery address with the same details already exists on this cart. */
|
|
1905
1978
|
| 'DUPLICATE_DELIVERY_ADDRESS'
|
|
1906
1979
|
/** The merchandise does not have enough stock. */
|
|
@@ -2272,9 +2345,14 @@ export type Country = {
|
|
|
2272
2345
|
availableLanguages: Array<Language>;
|
|
2273
2346
|
/** The currency of the country. */
|
|
2274
2347
|
currency: Currency;
|
|
2348
|
+
/** The default language for the country. */
|
|
2349
|
+
defaultLanguage: Language;
|
|
2275
2350
|
/** The ISO code of the country. */
|
|
2276
2351
|
isoCode: CountryCode;
|
|
2277
|
-
/**
|
|
2352
|
+
/**
|
|
2353
|
+
* The market that includes this country.
|
|
2354
|
+
* @deprecated This `market` field will be removed in a future version of the API.
|
|
2355
|
+
*/
|
|
2278
2356
|
market?: Maybe<Market>;
|
|
2279
2357
|
/** The name of the country. */
|
|
2280
2358
|
name: Scalars['String']['output'];
|
|
@@ -3980,6 +4058,15 @@ export type Image = {
|
|
|
3980
4058
|
* @deprecated Use `url` instead.
|
|
3981
4059
|
*/
|
|
3982
4060
|
src: Scalars['URL']['output'];
|
|
4061
|
+
/**
|
|
4062
|
+
* The ThumbHash of the image.
|
|
4063
|
+
*
|
|
4064
|
+
* Useful to display placeholder images while the original image is loading.
|
|
4065
|
+
*
|
|
4066
|
+
* See https://evanw.github.io/thumbhash/ for details on how to use it.
|
|
4067
|
+
*
|
|
4068
|
+
*/
|
|
4069
|
+
thumbhash?: Maybe<Scalars['String']['output']>;
|
|
3983
4070
|
/**
|
|
3984
4071
|
* The location of the transformed image as a URL.
|
|
3985
4072
|
*
|
|
@@ -4422,7 +4509,10 @@ export type Localization = {
|
|
|
4422
4509
|
country: Country;
|
|
4423
4510
|
/** The language of the active localized experience. Use the `@inContext` directive to change this value. */
|
|
4424
4511
|
language: Language;
|
|
4425
|
-
/**
|
|
4512
|
+
/**
|
|
4513
|
+
* The market including the country of the active localized experience. Use the `@inContext` directive to change this value.
|
|
4514
|
+
* @deprecated This `market` field will be removed in a future version of the API.
|
|
4515
|
+
*/
|
|
4426
4516
|
market: Market;
|
|
4427
4517
|
};
|
|
4428
4518
|
|
|
@@ -4944,6 +5034,8 @@ export type MetafieldReferencesArgs = {
|
|
|
4944
5034
|
|
|
4945
5035
|
/** Possible error codes that can be returned by `MetafieldDeleteUserError`. */
|
|
4946
5036
|
export type MetafieldDeleteErrorCode =
|
|
5037
|
+
/** The current app is not authorized to perform this action. */
|
|
5038
|
+
| 'APP_NOT_AUTHORIZED'
|
|
4947
5039
|
/** The owner ID is invalid. */
|
|
4948
5040
|
| 'INVALID_OWNER'
|
|
4949
5041
|
/** Metafield not found. */
|
|
@@ -5053,6 +5145,8 @@ export type MetafieldsSetUserError = DisplayableError & {
|
|
|
5053
5145
|
|
|
5054
5146
|
/** Possible error codes that can be returned by `MetafieldsSetUserError`. */
|
|
5055
5147
|
export type MetafieldsSetUserErrorCode =
|
|
5148
|
+
/** The current app is not authorized to perform this action. */
|
|
5149
|
+
| 'APP_NOT_AUTHORIZED'
|
|
5056
5150
|
/** The input value is blank. */
|
|
5057
5151
|
| 'BLANK'
|
|
5058
5152
|
/** The input value isn't included in the list. */
|
|
@@ -5278,6 +5372,8 @@ export type Mutation = {
|
|
|
5278
5372
|
cartPaymentUpdate?: Maybe<CartPaymentUpdatePayload>;
|
|
5279
5373
|
/** Prepare the cart for cart checkout completion. */
|
|
5280
5374
|
cartPrepareForCompletion?: Maybe<CartPrepareForCompletionPayload>;
|
|
5375
|
+
/** Removes personally identifiable information from the cart. */
|
|
5376
|
+
cartRemovePersonalData?: Maybe<CartRemovePersonalDataPayload>;
|
|
5281
5377
|
/** Update the selected delivery options for a delivery group. */
|
|
5282
5378
|
cartSelectedDeliveryOptionsUpdate?: Maybe<CartSelectedDeliveryOptionsUpdatePayload>;
|
|
5283
5379
|
/** Submit the cart for checkout completion. */
|
|
@@ -5458,6 +5554,11 @@ export type MutationCartPrepareForCompletionArgs = {
|
|
|
5458
5554
|
cartId: Scalars['ID']['input'];
|
|
5459
5555
|
};
|
|
5460
5556
|
|
|
5557
|
+
/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */
|
|
5558
|
+
export type MutationCartRemovePersonalDataArgs = {
|
|
5559
|
+
cartId: Scalars['ID']['input'];
|
|
5560
|
+
};
|
|
5561
|
+
|
|
5461
5562
|
/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */
|
|
5462
5563
|
export type MutationCartSelectedDeliveryOptionsUpdateArgs = {
|
|
5463
5564
|
cartId: Scalars['ID']['input'];
|
|
@@ -5572,8 +5673,8 @@ export type MutationShopPayPaymentRequestSessionSubmitArgs = {
|
|
|
5572
5673
|
/**
|
|
5573
5674
|
* An object with an ID field to support global identification, in accordance with the
|
|
5574
5675
|
* [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface).
|
|
5575
|
-
* This interface is used by the [node](
|
|
5576
|
-
* and [nodes](
|
|
5676
|
+
* This interface is used by the [node](/docs/api/storefront/latest/queries/node)
|
|
5677
|
+
* and [nodes](/docs/api/storefront/latest/queries/nodes) queries.
|
|
5577
5678
|
*
|
|
5578
5679
|
*/
|
|
5579
5680
|
export type Node = {
|
|
@@ -7924,6 +8025,8 @@ export type Shop = HasMetafields &
|
|
|
7924
8025
|
__typename?: 'Shop';
|
|
7925
8026
|
/** The shop's branding configuration. */
|
|
7926
8027
|
brand?: Maybe<Brand>;
|
|
8028
|
+
/** The URL for the customer account (only present if shop has a customer account vanity domain). */
|
|
8029
|
+
customerAccountUrl?: Maybe<Scalars['String']['output']>;
|
|
7927
8030
|
/** A description of the shop. */
|
|
7928
8031
|
description?: Maybe<Scalars['String']['output']>;
|
|
7929
8032
|
/** A globally-unique ID. */
|
|
@@ -8681,9 +8784,13 @@ export type SubmissionErrorCode =
|
|
|
8681
8784
|
| 'PAYMENTS_SHOPIFY_PAYMENTS_REQUIRED'
|
|
8682
8785
|
| 'PAYMENTS_UNACCEPTABLE_PAYMENT_AMOUNT'
|
|
8683
8786
|
| 'PAYMENTS_WALLET_CONTENT_MISSING'
|
|
8787
|
+
/** Redirect to checkout required to complete this action. */
|
|
8788
|
+
| 'REDIRECT_TO_CHECKOUT_REQUIRED'
|
|
8684
8789
|
| 'TAXES_DELIVERY_GROUP_ID_NOT_FOUND'
|
|
8685
8790
|
| 'TAXES_LINE_ID_NOT_FOUND'
|
|
8686
|
-
| 'TAXES_MUST_BE_DEFINED'
|
|
8791
|
+
| 'TAXES_MUST_BE_DEFINED'
|
|
8792
|
+
/** Validation failed. */
|
|
8793
|
+
| 'VALIDATION_CUSTOM';
|
|
8687
8794
|
|
|
8688
8795
|
/** Cart submit for checkout completion is successful. */
|
|
8689
8796
|
export type SubmitAlreadyAccepted = {
|
|
@@ -8786,8 +8893,12 @@ export type UnitPriceMeasurement = {
|
|
|
8786
8893
|
export type UnitPriceMeasurementMeasuredType =
|
|
8787
8894
|
/** Unit of measurements representing areas. */
|
|
8788
8895
|
| 'AREA'
|
|
8896
|
+
/** Unit of measurements representing counts. */
|
|
8897
|
+
| 'COUNT'
|
|
8789
8898
|
/** Unit of measurements representing lengths. */
|
|
8790
8899
|
| 'LENGTH'
|
|
8900
|
+
/** The type of measurement is unknown. Upgrade to the latest version of the API to resolve this type. */
|
|
8901
|
+
| 'UNKNOWN'
|
|
8791
8902
|
/** Unit of measurements representing volumes. */
|
|
8792
8903
|
| 'VOLUME'
|
|
8793
8904
|
/** Unit of measurements representing weights. */
|
|
@@ -8799,12 +8910,26 @@ export type UnitPriceMeasurementMeasuredUnit =
|
|
|
8799
8910
|
| 'CL'
|
|
8800
8911
|
/** 100 centimeters equals 1 meter. */
|
|
8801
8912
|
| 'CM'
|
|
8913
|
+
/** Imperial system unit of volume (U.S. customary unit). */
|
|
8914
|
+
| 'FLOZ'
|
|
8915
|
+
/** 1 foot equals 12 inches. */
|
|
8916
|
+
| 'FT'
|
|
8917
|
+
/** Imperial system unit of area. */
|
|
8918
|
+
| 'FT2'
|
|
8802
8919
|
/** Metric system unit of weight. */
|
|
8803
8920
|
| 'G'
|
|
8921
|
+
/** 1 gallon equals 128 fluid ounces (U.S. customary unit). */
|
|
8922
|
+
| 'GAL'
|
|
8923
|
+
/** Imperial system unit of length. */
|
|
8924
|
+
| 'IN'
|
|
8925
|
+
/** 1 item, a unit of count. */
|
|
8926
|
+
| 'ITEM'
|
|
8804
8927
|
/** 1 kilogram equals 1000 grams. */
|
|
8805
8928
|
| 'KG'
|
|
8806
8929
|
/** Metric system unit of volume. */
|
|
8807
8930
|
| 'L'
|
|
8931
|
+
/** Imperial system unit of weight. */
|
|
8932
|
+
| 'LB'
|
|
8808
8933
|
/** Metric system unit of length. */
|
|
8809
8934
|
| 'M'
|
|
8810
8935
|
/** Metric system unit of area. */
|
|
@@ -8816,7 +8941,17 @@ export type UnitPriceMeasurementMeasuredUnit =
|
|
|
8816
8941
|
/** 1000 milliliters equals 1 liter. */
|
|
8817
8942
|
| 'ML'
|
|
8818
8943
|
/** 1000 millimeters equals 1 meter. */
|
|
8819
|
-
| 'MM'
|
|
8944
|
+
| 'MM'
|
|
8945
|
+
/** 16 ounces equals 1 pound. */
|
|
8946
|
+
| 'OZ'
|
|
8947
|
+
/** 1 pint equals 16 fluid ounces (U.S. customary unit). */
|
|
8948
|
+
| 'PT'
|
|
8949
|
+
/** 1 quart equals 32 fluid ounces (U.S. customary unit). */
|
|
8950
|
+
| 'QT'
|
|
8951
|
+
/** The unit of measurement is unknown. Upgrade to the latest version of the API to resolve this unit. */
|
|
8952
|
+
| 'UNKNOWN'
|
|
8953
|
+
/** 1 yard equals 36 inches. */
|
|
8954
|
+
| 'YD';
|
|
8820
8955
|
|
|
8821
8956
|
/** Systems of weights and measures. */
|
|
8822
8957
|
export type UnitSystem =
|
|
@@ -11,11 +11,11 @@ export declare function useCartAPIStateMachine({ numCartLines, onCartActionEntry
|
|
|
11
11
|
onCartActionOptimisticUI?: (context: CartMachineContext, event: CartMachineEvent) => Partial<CartMachineContext>;
|
|
12
12
|
/** A callback that is invoked after a Cart API completes. */
|
|
13
13
|
onCartActionComplete?: (context: CartMachineContext, event: CartMachineFetchResultEvent) => void;
|
|
14
|
-
/** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-
|
|
14
|
+
/** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-07/objects/cart). */
|
|
15
15
|
data?: PartialDeep<CartType, {
|
|
16
16
|
recurseIntoArrays: true;
|
|
17
17
|
}>;
|
|
18
|
-
/** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-
|
|
18
|
+
/** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-07/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
|
|
19
19
|
cartFragment: string;
|
|
20
20
|
/** The ISO country code for i18n. */
|
|
21
21
|
countryCode?: CountryCode;
|
|
@@ -6,12 +6,12 @@ type CartResponse = PartialDeep<CartType, {
|
|
|
6
6
|
/**
|
|
7
7
|
* The `useCartActions` hook returns helper graphql functions for Storefront Cart API
|
|
8
8
|
*
|
|
9
|
-
* See [cart API graphql mutations](https://shopify.dev/api/storefront/2025-
|
|
9
|
+
* See [cart API graphql mutations](https://shopify.dev/api/storefront/2025-07/objects/Cart)
|
|
10
10
|
*/
|
|
11
11
|
export declare function useCartActions({ numCartLines, cartFragment, countryCode, languageCode, }: {
|
|
12
12
|
/** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */
|
|
13
13
|
numCartLines?: number;
|
|
14
|
-
/** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-
|
|
14
|
+
/** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-07/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
|
|
15
15
|
cartFragment: string;
|
|
16
16
|
/** The ISO country code for i18n. Default to `US` */
|
|
17
17
|
countryCode?: CountryCode;
|
package/dist/types/useMoney.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import { CurrencyCode, MoneyV2 } from './storefront-api-types.js';
|
|
1
|
+
import { CurrencyCode as StorefrontApiCurrencyCode, MoneyV2 as StorefrontApiMoneyV2 } from './storefront-api-types.js';
|
|
2
|
+
import type { MoneyV2 as CustomerAccountApiMoneyV2, CurrencyCode as CustomerAccountApiCurrencyCode } from './customer-account-api-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Supports MoneyV2 from both Storefront API and Customer Account API.
|
|
5
|
+
* The APIs may have different CurrencyCode enums (e.g., Customer Account API added USDC in 2025-07, but Storefront API doesn't support USDC in 2025-07).
|
|
6
|
+
* This union type ensures useMoney works with data from either API.
|
|
7
|
+
*/
|
|
8
|
+
type MoneyV2 = StorefrontApiMoneyV2 | CustomerAccountApiMoneyV2;
|
|
9
|
+
/**
|
|
10
|
+
* Supports CurrencyCode from both Storefront API and Customer Account API. The APIs may have different CurrencyCode enums (e.g., Customer Account API added USDC in 2025-07, but Storefront API doesn't support USDC in 2025-07).
|
|
11
|
+
* This union type ensures useMoney works with data from either API.
|
|
12
|
+
*/
|
|
13
|
+
type CurrencyCode = StorefrontApiCurrencyCode | CustomerAccountApiCurrencyCode;
|
|
2
14
|
export type UseMoneyValue = {
|
|
3
15
|
/**
|
|
4
16
|
* The currency code from the `MoneyV2` object.
|
|
@@ -47,7 +59,8 @@ export type UseMoneyValue = {
|
|
|
47
59
|
withoutTrailingZerosAndCurrency: string;
|
|
48
60
|
};
|
|
49
61
|
/**
|
|
50
|
-
* The `useMoney` hook takes a [MoneyV2 object](https://shopify.dev/api/storefront/
|
|
62
|
+
* The `useMoney` hook takes a [MoneyV2 object from the Storefront API](https://shopify.dev/docs/api/storefront/2025-07/objects/MoneyV2)
|
|
63
|
+
* or a [MoneyV2 object from the Customer Account API](https://shopify.dev/docs/api/customer/2025-07/objects/moneyv2) and returns a
|
|
51
64
|
* default-formatted string of the amount with the correct currency indicator, along with some of the parts provided by
|
|
52
65
|
* [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat).
|
|
53
66
|
* Uses `locale` from `ShopifyProvider`
|
|
@@ -98,3 +111,4 @@ export type UseMoneyValue = {
|
|
|
98
111
|
* ```
|
|
99
112
|
*/
|
|
100
113
|
export declare function useMoney(money: MoneyV2): UseMoneyValue;
|
|
114
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(function(global, factory) {
|
|
2
2
|
typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("react")) : typeof define === "function" && define.amd ? define(["exports", "react"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.hydrogenreact = {}, global.React));
|
|
3
|
-
})(this, function(exports2, React$1) {
|
|
3
|
+
})(this, (function(exports2, React$1) {
|
|
4
4
|
"use strict";
|
|
5
5
|
function _interopNamespaceDefault(e2) {
|
|
6
6
|
const n2 = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
return a2;
|
|
52
52
|
}
|
|
53
53
|
var n;
|
|
54
|
-
!function(t2) {
|
|
54
|
+
!(function(t2) {
|
|
55
55
|
t2[t2.NotStarted = 0] = "NotStarted", t2[t2.Running = 1] = "Running", t2[t2.Stopped = 2] = "Stopped";
|
|
56
|
-
}(n || (n = {}));
|
|
56
|
+
})(n || (n = {}));
|
|
57
57
|
var e = { type: "xstate.init" };
|
|
58
58
|
function r(t2) {
|
|
59
59
|
return void 0 === t2 ? [] : [].concat(t2);
|
|
@@ -77,45 +77,45 @@
|
|
|
77
77
|
}
|
|
78
78
|
function f(t2, n2, e2) {
|
|
79
79
|
var r2 = n2, i2 = false;
|
|
80
|
-
return [t2.filter(function(t3) {
|
|
80
|
+
return [t2.filter((function(t3) {
|
|
81
81
|
if ("xstate.assign" === t3.type) {
|
|
82
82
|
i2 = true;
|
|
83
83
|
var n3 = Object.assign({}, r2);
|
|
84
|
-
return "function" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(i3) {
|
|
84
|
+
return "function" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach((function(i3) {
|
|
85
85
|
n3[i3] = "function" == typeof t3.assignment[i3] ? t3.assignment[i3](r2, e2) : t3.assignment[i3];
|
|
86
|
-
}), r2 = n3, false;
|
|
86
|
+
})), r2 = n3, false;
|
|
87
87
|
}
|
|
88
88
|
return true;
|
|
89
|
-
}), r2, i2];
|
|
89
|
+
})), r2, i2];
|
|
90
90
|
}
|
|
91
91
|
function s(n2, i2) {
|
|
92
92
|
void 0 === i2 && (i2 = {});
|
|
93
|
-
var s2 = t(f(r(n2.states[n2.initial].entry).map(function(t2) {
|
|
93
|
+
var s2 = t(f(r(n2.states[n2.initial].entry).map((function(t2) {
|
|
94
94
|
return o(t2, i2.actions);
|
|
95
|
-
}), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: i2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, i3) {
|
|
95
|
+
})), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: i2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, i3) {
|
|
96
96
|
var s3, l3, v3 = "string" == typeof e2 ? { value: e2, context: n2.context } : e2, p = v3.value, g2 = v3.context, d = u$1(i3), x = n2.states[p];
|
|
97
97
|
if (x.on) {
|
|
98
98
|
var m = r(x.on[d.type]);
|
|
99
99
|
try {
|
|
100
|
-
for (var h = function(t2) {
|
|
100
|
+
for (var h = (function(t2) {
|
|
101
101
|
var n3 = "function" == typeof Symbol && Symbol.iterator, e3 = n3 && t2[n3], r2 = 0;
|
|
102
102
|
if (e3) return e3.call(t2);
|
|
103
103
|
if (t2 && "number" == typeof t2.length) return { next: function() {
|
|
104
104
|
return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };
|
|
105
105
|
} };
|
|
106
106
|
throw new TypeError(n3 ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
107
|
-
}(m), b = h.next(); !b.done; b = h.next()) {
|
|
107
|
+
})(m), b = h.next(); !b.done; b = h.next()) {
|
|
108
108
|
var S = b.value;
|
|
109
109
|
if (void 0 === S) return c(p, g2);
|
|
110
110
|
var w = "string" == typeof S ? { target: S } : S, j = w.target, E = w.actions, R = void 0 === E ? [] : E, N = w.cond, O = void 0 === N ? function() {
|
|
111
111
|
return true;
|
|
112
112
|
} : N, _ = void 0 === j, k = null != j ? j : p, T = n2.states[k];
|
|
113
113
|
if (O(g2, d)) {
|
|
114
|
-
var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function(t2) {
|
|
114
|
+
var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter((function(t2) {
|
|
115
115
|
return t2;
|
|
116
|
-
})).map(function(t2) {
|
|
116
|
+
}))).map((function(t2) {
|
|
117
117
|
return o(t2, y._options.actions);
|
|
118
|
-
}), g2, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;
|
|
118
|
+
})), g2, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;
|
|
119
119
|
return { value: C, context: A, actions: z, changed: j !== p || z.length > 0 || B, matches: a(C) };
|
|
120
120
|
}
|
|
121
121
|
}
|
|
@@ -134,16 +134,16 @@
|
|
|
134
134
|
return y;
|
|
135
135
|
}
|
|
136
136
|
var l$1 = function(t2, n2) {
|
|
137
|
-
return t2.actions.forEach(function(e2) {
|
|
137
|
+
return t2.actions.forEach((function(e2) {
|
|
138
138
|
var r2 = e2.exec;
|
|
139
139
|
return r2 && r2(t2.context, n2);
|
|
140
|
-
});
|
|
140
|
+
}));
|
|
141
141
|
};
|
|
142
142
|
function v(t2) {
|
|
143
143
|
var r2 = t2.initialState, i2 = n.NotStarted, o2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {
|
|
144
|
-
i2 === n.Running && (r2 = t2.transition(r2, e2), l$1(r2, u$1(e2)), o2.forEach(function(t3) {
|
|
144
|
+
i2 === n.Running && (r2 = t2.transition(r2, e2), l$1(r2, u$1(e2)), o2.forEach((function(t3) {
|
|
145
145
|
return t3(r2);
|
|
146
|
-
}));
|
|
146
|
+
})));
|
|
147
147
|
}, subscribe: function(t3) {
|
|
148
148
|
return o2.add(t3), t3(r2), { unsubscribe: function() {
|
|
149
149
|
return o2.delete(t3);
|
|
@@ -807,7 +807,7 @@
|
|
|
807
807
|
}
|
|
808
808
|
`
|
|
809
809
|
);
|
|
810
|
-
const SFAPI_VERSION = "2025-
|
|
810
|
+
const SFAPI_VERSION = "2025-07";
|
|
811
811
|
const MOCK_SHOP_DOMAIN = "mock.shop";
|
|
812
812
|
const isMockShop = (domain) => domain.includes(MOCK_SHOP_DOMAIN);
|
|
813
813
|
function createStorefrontClient({
|
|
@@ -2409,7 +2409,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
|
|
|
2409
2409
|
}
|
|
2410
2410
|
return false;
|
|
2411
2411
|
}
|
|
2412
|
-
const version = "2025.
|
|
2412
|
+
const version = "2025.7.0";
|
|
2413
2413
|
const SCHEMA_ID = "custom_storefront_customer_tracking/1.2";
|
|
2414
2414
|
const PAGE_RENDERED_EVENT_NAME = "page_rendered";
|
|
2415
2415
|
const COLLECTION_PAGE_RENDERED_EVENT_NAME = "collection_page_rendered";
|
|
@@ -2861,6 +2861,17 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
|
|
|
2861
2861
|
);
|
|
2862
2862
|
}
|
|
2863
2863
|
const amount = parseFloat(money.amount);
|
|
2864
|
+
let isCurrencySupported = true;
|
|
2865
|
+
try {
|
|
2866
|
+
new Intl.NumberFormat(locale, {
|
|
2867
|
+
style: "currency",
|
|
2868
|
+
currency: money.currencyCode
|
|
2869
|
+
});
|
|
2870
|
+
} catch (e2) {
|
|
2871
|
+
if (e2 instanceof RangeError && e2.message.includes("currency")) {
|
|
2872
|
+
isCurrencySupported = false;
|
|
2873
|
+
}
|
|
2874
|
+
}
|
|
2864
2875
|
const {
|
|
2865
2876
|
defaultFormatter,
|
|
2866
2877
|
nameFormatter,
|
|
@@ -2869,9 +2880,13 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
|
|
|
2869
2880
|
withoutCurrencyFormatter,
|
|
2870
2881
|
withoutTrailingZerosOrCurrencyFormatter
|
|
2871
2882
|
} = React$1.useMemo(() => {
|
|
2872
|
-
const options = {
|
|
2883
|
+
const options = isCurrencySupported ? {
|
|
2873
2884
|
style: "currency",
|
|
2874
2885
|
currency: money.currencyCode
|
|
2886
|
+
} : {
|
|
2887
|
+
style: "decimal",
|
|
2888
|
+
minimumFractionDigits: 2,
|
|
2889
|
+
maximumFractionDigits: 2
|
|
2875
2890
|
};
|
|
2876
2891
|
return {
|
|
2877
2892
|
defaultFormatter: getLazyFormatter(locale, options),
|
|
@@ -2888,21 +2903,39 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
|
|
|
2888
2903
|
minimumFractionDigits: 0,
|
|
2889
2904
|
maximumFractionDigits: 0
|
|
2890
2905
|
}),
|
|
2891
|
-
withoutCurrencyFormatter: getLazyFormatter(locale
|
|
2906
|
+
withoutCurrencyFormatter: getLazyFormatter(locale, {
|
|
2907
|
+
minimumFractionDigits: 2,
|
|
2908
|
+
maximumFractionDigits: 2
|
|
2909
|
+
}),
|
|
2892
2910
|
withoutTrailingZerosOrCurrencyFormatter: getLazyFormatter(locale, {
|
|
2893
2911
|
minimumFractionDigits: 0,
|
|
2894
2912
|
maximumFractionDigits: 0
|
|
2895
2913
|
})
|
|
2896
2914
|
};
|
|
2897
|
-
}, [money.currencyCode, locale]);
|
|
2915
|
+
}, [money.currencyCode, locale, isCurrencySupported]);
|
|
2898
2916
|
const isPartCurrency = (part) => part.type === "currency";
|
|
2899
2917
|
const lazyFormatters = React$1.useMemo(
|
|
2900
2918
|
() => ({
|
|
2901
2919
|
original: () => money,
|
|
2902
2920
|
currencyCode: () => money.currencyCode,
|
|
2903
|
-
localizedString: () =>
|
|
2904
|
-
|
|
2905
|
-
|
|
2921
|
+
localizedString: () => {
|
|
2922
|
+
const formatted = defaultFormatter().format(amount);
|
|
2923
|
+
return isCurrencySupported ? formatted : `${formatted} ${money.currencyCode}`;
|
|
2924
|
+
},
|
|
2925
|
+
parts: () => {
|
|
2926
|
+
const parts = defaultFormatter().formatToParts(amount);
|
|
2927
|
+
if (!isCurrencySupported) {
|
|
2928
|
+
parts.push(
|
|
2929
|
+
{ type: "literal", value: " " },
|
|
2930
|
+
{ type: "currency", value: money.currencyCode }
|
|
2931
|
+
);
|
|
2932
|
+
}
|
|
2933
|
+
return parts;
|
|
2934
|
+
},
|
|
2935
|
+
withoutTrailingZeros: () => {
|
|
2936
|
+
const formatted = amount % 1 === 0 ? withoutTrailingZerosFormatter().format(amount) : defaultFormatter().format(amount);
|
|
2937
|
+
return isCurrencySupported ? formatted : `${formatted} ${money.currencyCode}`;
|
|
2938
|
+
},
|
|
2906
2939
|
withoutTrailingZerosAndCurrency: () => amount % 1 === 0 ? withoutTrailingZerosOrCurrencyFormatter().format(amount) : withoutCurrencyFormatter().format(amount),
|
|
2907
2940
|
currencyName: () => {
|
|
2908
2941
|
var _a;
|
|
@@ -2928,6 +2961,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
|
|
|
2928
2961
|
[
|
|
2929
2962
|
money,
|
|
2930
2963
|
amount,
|
|
2964
|
+
isCurrencySupported,
|
|
2931
2965
|
nameFormatter,
|
|
2932
2966
|
defaultFormatter,
|
|
2933
2967
|
narrowSymbolFormatter,
|
|
@@ -2953,7 +2987,19 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
|
|
|
2953
2987
|
return function() {
|
|
2954
2988
|
let formatter = formatterCache.get(key);
|
|
2955
2989
|
if (!formatter) {
|
|
2956
|
-
|
|
2990
|
+
try {
|
|
2991
|
+
formatter = new Intl.NumberFormat(locale, options);
|
|
2992
|
+
} catch (error) {
|
|
2993
|
+
if (error instanceof RangeError && error.message.includes("currency")) {
|
|
2994
|
+
const fallbackOptions = { ...options };
|
|
2995
|
+
delete fallbackOptions.currency;
|
|
2996
|
+
delete fallbackOptions.currencyDisplay;
|
|
2997
|
+
delete fallbackOptions.currencySign;
|
|
2998
|
+
formatter = new Intl.NumberFormat(locale, fallbackOptions);
|
|
2999
|
+
} else {
|
|
3000
|
+
throw error;
|
|
3001
|
+
}
|
|
3002
|
+
}
|
|
2957
3003
|
formatterCache.set(key, formatter);
|
|
2958
3004
|
}
|
|
2959
3005
|
return formatter;
|
|
@@ -4127,8 +4173,33 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
|
|
|
4127
4173
|
parsedValue: metafield.value
|
|
4128
4174
|
};
|
|
4129
4175
|
// TODO: 'money' should probably be parsed even further to like `useMoney()`, but that logic needs to be extracted first so it's not a hook
|
|
4176
|
+
case "money": {
|
|
4177
|
+
let parsedValue = null;
|
|
4178
|
+
try {
|
|
4179
|
+
const parsed = parseJSON(metafield.value ?? "");
|
|
4180
|
+
if (parsed && typeof parsed === "object" && "currency_code" in parsed) {
|
|
4181
|
+
const moneyData = parsed;
|
|
4182
|
+
parsedValue = {
|
|
4183
|
+
amount: moneyData.amount,
|
|
4184
|
+
currencyCode: moneyData.currency_code
|
|
4185
|
+
};
|
|
4186
|
+
} else if (parsed && typeof parsed === "object" && "currencyCode" in parsed) {
|
|
4187
|
+
parsedValue = parsed;
|
|
4188
|
+
} else {
|
|
4189
|
+
parsedValue = parsed;
|
|
4190
|
+
}
|
|
4191
|
+
} catch (err) {
|
|
4192
|
+
const parseError = `parseMetafield(): attempted to JSON.parse the 'metafield.value' property, but failed.`;
|
|
4193
|
+
{
|
|
4194
|
+
throw new Error(parseError);
|
|
4195
|
+
}
|
|
4196
|
+
}
|
|
4197
|
+
return {
|
|
4198
|
+
...metafield,
|
|
4199
|
+
parsedValue
|
|
4200
|
+
};
|
|
4201
|
+
}
|
|
4130
4202
|
case "dimension":
|
|
4131
|
-
case "money":
|
|
4132
4203
|
case "json":
|
|
4133
4204
|
case "rating":
|
|
4134
4205
|
case "volume":
|
|
@@ -4659,5 +4730,5 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
|
|
|
4659
4730
|
exports2.useShop = useShop;
|
|
4660
4731
|
exports2.useShopifyCookies = useShopifyCookies;
|
|
4661
4732
|
Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
|
|
4662
|
-
});
|
|
4733
|
+
}));
|
|
4663
4734
|
//# sourceMappingURL=hydrogen-react.dev.js.map
|