@shopify/hydrogen-react 2022.10.2 → 2022.10.3
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 +49 -0
- package/dist/{dev → browser-dev}/AddToCartButton.mjs +0 -0
- package/dist/browser-dev/AddToCartButton.mjs.map +1 -0
- package/dist/{dev → browser-dev}/BaseButton.mjs +0 -0
- package/dist/{dev → browser-dev}/BaseButton.mjs.map +0 -0
- package/dist/{dev → browser-dev}/BuyNowButton.mjs +0 -0
- package/dist/{dev → browser-dev}/BuyNowButton.mjs.map +0 -0
- package/dist/{dev → browser-dev}/CartCheckoutButton.mjs +0 -0
- package/dist/{dev → browser-dev}/CartCheckoutButton.mjs.map +0 -0
- package/dist/{dev → browser-dev}/CartProvider.mjs +0 -0
- package/dist/{dev → browser-dev}/CartProvider.mjs.map +0 -0
- package/dist/{dev → browser-dev}/ExternalVideo.mjs +0 -0
- package/dist/{dev → browser-dev}/ExternalVideo.mjs.map +0 -0
- package/dist/{dev → browser-dev}/Image.mjs +0 -0
- package/dist/{dev → browser-dev}/Image.mjs.map +0 -0
- package/dist/{dev → browser-dev}/MediaFile.mjs +0 -0
- package/dist/{dev → browser-dev}/MediaFile.mjs.map +0 -0
- package/dist/{dev → browser-dev}/Metafield.mjs +0 -0
- package/dist/{dev → browser-dev}/Metafield.mjs.map +0 -0
- package/dist/{dev → browser-dev}/ModelViewer.mjs +0 -0
- package/dist/{dev → browser-dev}/ModelViewer.mjs.map +0 -0
- package/dist/{dev → browser-dev}/Money.mjs +0 -0
- package/dist/{dev → browser-dev}/Money.mjs.map +0 -0
- package/dist/{dev → browser-dev}/ProductPrice.mjs +0 -0
- package/dist/{dev → browser-dev}/ProductPrice.mjs.map +0 -0
- package/dist/{dev → browser-dev}/ProductProvider.mjs +0 -0
- package/dist/{dev → browser-dev}/ProductProvider.mjs.map +0 -0
- package/dist/{dev → browser-dev}/ShopPayButton.mjs +0 -0
- package/dist/{dev → browser-dev}/ShopPayButton.mjs.map +0 -0
- package/dist/{prod → browser-dev}/ShopifyProvider.mjs +23 -5
- package/dist/browser-dev/ShopifyProvider.mjs.map +1 -0
- package/dist/{dev → browser-dev}/Video.mjs +0 -0
- package/dist/{dev → browser-dev}/Video.mjs.map +0 -0
- package/dist/{dev → browser-dev}/_virtual/index.mjs +0 -0
- package/dist/{dev → browser-dev}/_virtual/index.mjs.map +0 -0
- package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.development.mjs +0 -0
- package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.development.mjs.map +0 -0
- package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.production.min.mjs +0 -0
- package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.production.min.mjs.map +0 -0
- package/dist/{dev → browser-dev}/_virtual/with-selector.development.mjs +0 -0
- package/dist/{dev → browser-dev}/_virtual/with-selector.development.mjs.map +0 -0
- package/dist/{dev → browser-dev}/_virtual/with-selector.mjs +0 -0
- package/dist/{dev → browser-dev}/_virtual/with-selector.mjs.map +0 -0
- package/dist/{dev → browser-dev}/_virtual/with-selector.production.min.mjs +0 -0
- package/dist/{dev → browser-dev}/_virtual/with-selector.production.min.mjs.map +0 -0
- package/dist/{prod → browser-dev}/cart-constants.mjs +1 -3
- package/dist/browser-dev/cart-constants.mjs.map +1 -0
- package/dist/{dev → browser-dev}/cart-hooks.mjs +9 -13
- package/dist/browser-dev/cart-hooks.mjs.map +1 -0
- package/dist/{dev → browser-dev}/cart-queries.mjs +0 -0
- package/dist/{dev → browser-dev}/cart-queries.mjs.map +0 -0
- package/dist/browser-dev/codegen.helpers.mjs +12 -0
- package/dist/browser-dev/codegen.helpers.mjs.map +1 -0
- package/dist/{dev → browser-dev}/flatten-connection.mjs +0 -0
- package/dist/{dev → browser-dev}/flatten-connection.mjs.map +0 -0
- package/dist/{dev → browser-dev}/image-size.mjs +0 -0
- package/dist/{dev → browser-dev}/image-size.mjs.map +0 -0
- package/dist/{prod → browser-dev}/index.mjs +2 -0
- package/dist/browser-dev/index.mjs.map +1 -0
- package/dist/{dev → browser-dev}/load-script.mjs +0 -0
- package/dist/{dev → browser-dev}/load-script.mjs.map +0 -0
- package/dist/{dev → browser-dev}/metafield-parser.mjs +0 -0
- package/dist/{dev → browser-dev}/metafield-parser.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/@xstate/fsm/es/index.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/@xstate/fsm/es/index.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/fsm.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/fsm.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/useConstant.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/useConstant.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/index.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/index.mjs.map +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/with-selector.mjs +0 -0
- package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/with-selector.mjs.map +0 -0
- package/dist/{dev → browser-dev}/storefront-api-constants.mjs +0 -0
- package/dist/{dev → browser-dev}/storefront-api-constants.mjs.map +0 -0
- package/dist/{dev → browser-dev}/storefront-client.mjs +22 -10
- package/dist/browser-dev/storefront-client.mjs.map +1 -0
- package/dist/{dev → browser-dev}/useCartAPIStateMachine.mjs +0 -0
- package/dist/{dev → browser-dev}/useCartAPIStateMachine.mjs.map +0 -0
- package/dist/{dev → browser-dev}/useCartActions.mjs +0 -0
- package/dist/{dev → browser-dev}/useCartActions.mjs.map +0 -0
- package/dist/{dev → browser-dev}/useMoney.mjs +0 -0
- package/dist/{dev → browser-dev}/useMoney.mjs.map +0 -0
- package/dist/{prod → browser-prod}/AddToCartButton.mjs +0 -0
- package/dist/browser-prod/AddToCartButton.mjs.map +1 -0
- package/dist/{prod → browser-prod}/BaseButton.mjs +0 -0
- package/dist/{prod → browser-prod}/BaseButton.mjs.map +0 -0
- package/dist/{prod → browser-prod}/BuyNowButton.mjs +0 -0
- package/dist/{prod → browser-prod}/BuyNowButton.mjs.map +0 -0
- package/dist/{prod → browser-prod}/CartCheckoutButton.mjs +0 -0
- package/dist/{prod → browser-prod}/CartCheckoutButton.mjs.map +0 -0
- package/dist/{prod → browser-prod}/CartProvider.mjs +0 -0
- package/dist/{prod → browser-prod}/CartProvider.mjs.map +0 -0
- package/dist/{prod → browser-prod}/ExternalVideo.mjs +0 -0
- package/dist/{prod → browser-prod}/ExternalVideo.mjs.map +0 -0
- package/dist/{prod → browser-prod}/Image.mjs +0 -0
- package/dist/{prod → browser-prod}/Image.mjs.map +0 -0
- package/dist/{prod → browser-prod}/MediaFile.mjs +0 -0
- package/dist/{prod → browser-prod}/MediaFile.mjs.map +0 -0
- package/dist/{prod → browser-prod}/Metafield.mjs +0 -0
- package/dist/{prod → browser-prod}/Metafield.mjs.map +0 -0
- package/dist/{prod → browser-prod}/ModelViewer.mjs +0 -0
- package/dist/{prod → browser-prod}/ModelViewer.mjs.map +0 -0
- package/dist/{prod → browser-prod}/Money.mjs +0 -0
- package/dist/{prod → browser-prod}/Money.mjs.map +0 -0
- package/dist/{prod → browser-prod}/ProductPrice.mjs +0 -0
- package/dist/{prod → browser-prod}/ProductPrice.mjs.map +0 -0
- package/dist/{prod → browser-prod}/ProductProvider.mjs +0 -0
- package/dist/{prod → browser-prod}/ProductProvider.mjs.map +0 -0
- package/dist/{prod → browser-prod}/ShopPayButton.mjs +0 -0
- package/dist/{prod → browser-prod}/ShopPayButton.mjs.map +0 -0
- package/dist/{dev → browser-prod}/ShopifyProvider.mjs +23 -5
- package/dist/browser-prod/ShopifyProvider.mjs.map +1 -0
- package/dist/{prod → browser-prod}/Video.mjs +0 -0
- package/dist/{prod → browser-prod}/Video.mjs.map +0 -0
- package/dist/{prod → browser-prod}/_virtual/index.mjs +0 -0
- package/dist/{prod → browser-prod}/_virtual/index.mjs.map +0 -0
- package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.development.mjs +0 -0
- package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.development.mjs.map +0 -0
- package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.production.min.mjs +0 -0
- package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.production.min.mjs.map +0 -0
- package/dist/{prod → browser-prod}/_virtual/with-selector.development.mjs +0 -0
- package/dist/{prod → browser-prod}/_virtual/with-selector.development.mjs.map +0 -0
- package/dist/{prod → browser-prod}/_virtual/with-selector.mjs +0 -0
- package/dist/{prod → browser-prod}/_virtual/with-selector.mjs.map +0 -0
- package/dist/{prod → browser-prod}/_virtual/with-selector.production.min.mjs +0 -0
- package/dist/{prod → browser-prod}/_virtual/with-selector.production.min.mjs.map +0 -0
- package/dist/{dev → browser-prod}/cart-constants.mjs +1 -3
- package/dist/browser-prod/cart-constants.mjs.map +1 -0
- package/dist/{prod → browser-prod}/cart-hooks.mjs +9 -13
- package/dist/browser-prod/cart-hooks.mjs.map +1 -0
- package/dist/{prod → browser-prod}/cart-queries.mjs +0 -0
- package/dist/{prod → browser-prod}/cart-queries.mjs.map +0 -0
- package/dist/browser-prod/codegen.helpers.mjs +12 -0
- package/dist/browser-prod/codegen.helpers.mjs.map +1 -0
- package/dist/{prod → browser-prod}/flatten-connection.mjs +0 -0
- package/dist/{prod → browser-prod}/flatten-connection.mjs.map +0 -0
- package/dist/{prod → browser-prod}/image-size.mjs +0 -0
- package/dist/{prod → browser-prod}/image-size.mjs.map +0 -0
- package/dist/{dev → browser-prod}/index.mjs +2 -0
- package/dist/browser-prod/index.mjs.map +1 -0
- package/dist/{prod → browser-prod}/load-script.mjs +0 -0
- package/dist/{prod → browser-prod}/load-script.mjs.map +0 -0
- package/dist/{prod → browser-prod}/metafield-parser.mjs +0 -0
- package/dist/{prod → browser-prod}/metafield-parser.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/@xstate/fsm/es/index.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/@xstate/fsm/es/index.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/fsm.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/fsm.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/useConstant.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/useConstant.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/index.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/index.mjs.map +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/with-selector.mjs +0 -0
- package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/with-selector.mjs.map +0 -0
- package/dist/{prod → browser-prod}/storefront-api-constants.mjs +0 -0
- package/dist/{prod → browser-prod}/storefront-api-constants.mjs.map +0 -0
- package/dist/{prod → browser-prod}/storefront-client.mjs +22 -10
- package/dist/browser-prod/storefront-client.mjs.map +1 -0
- package/dist/{prod → browser-prod}/useCartAPIStateMachine.mjs +0 -0
- package/dist/{prod → browser-prod}/useCartAPIStateMachine.mjs.map +0 -0
- package/dist/{prod → browser-prod}/useCartActions.mjs +0 -0
- package/dist/{prod → browser-prod}/useCartActions.mjs.map +0 -0
- package/dist/{prod → browser-prod}/useMoney.mjs +0 -0
- package/dist/{prod → browser-prod}/useMoney.mjs.map +0 -0
- package/dist/{dev → node-dev}/AddToCartButton.js +0 -0
- package/dist/node-dev/AddToCartButton.js.map +1 -0
- package/dist/node-dev/AddToCartButton.mjs +70 -0
- package/dist/node-dev/AddToCartButton.mjs.map +1 -0
- package/dist/{dev → node-dev}/BaseButton.js +0 -0
- package/dist/{dev → node-dev}/BaseButton.js.map +0 -0
- package/dist/node-dev/BaseButton.mjs +31 -0
- package/dist/node-dev/BaseButton.mjs.map +1 -0
- package/dist/{dev → node-dev}/BuyNowButton.js +0 -0
- package/dist/{dev → node-dev}/BuyNowButton.js.map +0 -0
- package/dist/node-dev/BuyNowButton.mjs +45 -0
- package/dist/node-dev/BuyNowButton.mjs.map +1 -0
- package/dist/{dev → node-dev}/CartCheckoutButton.js +0 -0
- package/dist/{dev → node-dev}/CartCheckoutButton.js.map +0 -0
- package/dist/node-dev/CartCheckoutButton.mjs +30 -0
- package/dist/node-dev/CartCheckoutButton.mjs.map +1 -0
- package/dist/{dev → node-dev}/CartProvider.js +0 -0
- package/dist/{dev → node-dev}/CartProvider.js.map +0 -0
- package/dist/node-dev/CartProvider.mjs +485 -0
- package/dist/node-dev/CartProvider.mjs.map +1 -0
- package/dist/{dev → node-dev}/ExternalVideo.js +0 -0
- package/dist/{dev → node-dev}/ExternalVideo.js.map +0 -0
- package/dist/node-dev/ExternalVideo.mjs +39 -0
- package/dist/node-dev/ExternalVideo.mjs.map +1 -0
- package/dist/{dev → node-dev}/Image.js +0 -0
- package/dist/{dev → node-dev}/Image.js.map +0 -0
- package/dist/node-dev/Image.mjs +104 -0
- package/dist/node-dev/Image.mjs.map +1 -0
- package/dist/{dev → node-dev}/MediaFile.js +0 -0
- package/dist/{dev → node-dev}/MediaFile.js.map +0 -0
- package/dist/node-dev/MediaFile.mjs +57 -0
- package/dist/node-dev/MediaFile.mjs.map +1 -0
- package/dist/{dev → node-dev}/Metafield.js +0 -0
- package/dist/{dev → node-dev}/Metafield.js.map +0 -0
- package/dist/node-dev/Metafield.mjs +301 -0
- package/dist/node-dev/Metafield.mjs.map +1 -0
- package/dist/{dev → node-dev}/ModelViewer.js +0 -0
- package/dist/{dev → node-dev}/ModelViewer.js.map +0 -0
- package/dist/node-dev/ModelViewer.mjs +145 -0
- package/dist/node-dev/ModelViewer.mjs.map +1 -0
- package/dist/{dev → node-dev}/Money.js +0 -0
- package/dist/{dev → node-dev}/Money.js.map +0 -0
- package/dist/node-dev/Money.mjs +40 -0
- package/dist/node-dev/Money.mjs.map +1 -0
- package/dist/{dev → node-dev}/ProductPrice.js +0 -0
- package/dist/{dev → node-dev}/ProductPrice.js.map +0 -0
- package/dist/node-dev/ProductPrice.mjs +61 -0
- package/dist/node-dev/ProductPrice.mjs.map +1 -0
- package/dist/{dev → node-dev}/ProductProvider.js +0 -0
- package/dist/{dev → node-dev}/ProductProvider.js.map +0 -0
- package/dist/node-dev/ProductProvider.mjs +161 -0
- package/dist/node-dev/ProductProvider.mjs.map +1 -0
- package/dist/{dev → node-dev}/ShopPayButton.js +0 -0
- package/dist/{dev → node-dev}/ShopPayButton.js.map +0 -0
- package/dist/node-dev/ShopPayButton.mjs +64 -0
- package/dist/node-dev/ShopPayButton.mjs.map +1 -0
- package/dist/{prod → node-dev}/ShopifyProvider.js +23 -5
- package/dist/node-dev/ShopifyProvider.js.map +1 -0
- package/dist/node-dev/ShopifyProvider.mjs +64 -0
- package/dist/node-dev/ShopifyProvider.mjs.map +1 -0
- package/dist/{dev → node-dev}/Video.js +0 -0
- package/dist/{dev → node-dev}/Video.js.map +0 -0
- package/dist/node-dev/Video.mjs +44 -0
- package/dist/node-dev/Video.mjs.map +1 -0
- package/dist/{dev → node-dev}/_virtual/index.js +0 -0
- package/dist/{dev → node-dev}/_virtual/index.js.map +0 -0
- package/dist/node-dev/_virtual/index.mjs +5 -0
- package/dist/{dev → node-dev/_virtual}/index.mjs.map +1 -1
- package/dist/{dev → node-dev}/_virtual/use-sync-external-store-shim.development.js +0 -0
- package/dist/{dev → node-dev}/_virtual/use-sync-external-store-shim.development.js.map +0 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.development.mjs +5 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/{dev → node-dev}/_virtual/use-sync-external-store-shim.production.min.js +0 -0
- package/dist/{dev → node-dev}/_virtual/use-sync-external-store-shim.production.min.js.map +0 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/{dev → node-dev}/_virtual/with-selector.development.js +0 -0
- package/dist/{dev → node-dev}/_virtual/with-selector.development.js.map +0 -0
- package/dist/node-dev/_virtual/with-selector.development.mjs +5 -0
- package/dist/node-dev/_virtual/with-selector.development.mjs.map +1 -0
- package/dist/{dev → node-dev}/_virtual/with-selector.js +0 -0
- package/dist/{dev → node-dev}/_virtual/with-selector.js.map +0 -0
- package/dist/node-dev/_virtual/with-selector.mjs +5 -0
- package/dist/node-dev/_virtual/with-selector.mjs.map +1 -0
- package/dist/{dev → node-dev}/_virtual/with-selector.production.min.js +0 -0
- package/dist/{dev → node-dev}/_virtual/with-selector.production.min.js.map +0 -0
- package/dist/node-dev/_virtual/with-selector.production.min.mjs +5 -0
- package/dist/node-dev/_virtual/with-selector.production.min.mjs.map +1 -0
- package/dist/{dev → node-dev}/cart-constants.js +0 -2
- package/dist/node-dev/cart-constants.js.map +1 -0
- package/dist/node-dev/cart-constants.mjs +15 -0
- package/dist/node-dev/cart-constants.mjs.map +1 -0
- package/dist/{dev → node-dev}/cart-hooks.js +8 -12
- package/dist/node-dev/cart-hooks.js.map +1 -0
- package/dist/node-dev/cart-hooks.mjs +44 -0
- package/dist/node-dev/cart-hooks.mjs.map +1 -0
- package/dist/{dev → node-dev}/cart-queries.js +0 -0
- package/dist/{dev → node-dev}/cart-queries.js.map +0 -0
- package/dist/node-dev/cart-queries.mjs +114 -0
- package/dist/node-dev/cart-queries.mjs.map +1 -0
- package/dist/node-dev/codegen.helpers.js +12 -0
- package/dist/node-dev/codegen.helpers.js.map +1 -0
- package/dist/node-dev/codegen.helpers.mjs +12 -0
- package/dist/node-dev/codegen.helpers.mjs.map +1 -0
- package/dist/{dev → node-dev}/flatten-connection.js +0 -0
- package/dist/{dev → node-dev}/flatten-connection.js.map +0 -0
- package/dist/node-dev/flatten-connection.mjs +29 -0
- package/dist/node-dev/flatten-connection.mjs.map +1 -0
- package/dist/{dev → node-dev}/image-size.js +0 -0
- package/dist/{dev → node-dev}/image-size.js.map +0 -0
- package/dist/node-dev/image-size.mjs +80 -0
- package/dist/node-dev/image-size.mjs.map +1 -0
- package/dist/{dev → node-dev}/index.js +2 -0
- package/dist/{dev → node-dev}/index.js.map +1 -1
- package/dist/node-dev/index.mjs +48 -0
- package/dist/node-dev/index.mjs.map +1 -0
- package/dist/{dev → node-dev}/load-script.js +0 -0
- package/dist/{dev → node-dev}/load-script.js.map +0 -0
- package/dist/node-dev/load-script.mjs +52 -0
- package/dist/node-dev/load-script.mjs.map +1 -0
- package/dist/{dev → node-dev}/metafield-parser.js +0 -0
- package/dist/{dev → node-dev}/metafield-parser.js.map +0 -0
- package/dist/node-dev/metafield-parser.mjs +103 -0
- package/dist/node-dev/metafield-parser.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/@xstate/fsm/es/index.js +0 -0
- package/dist/{dev → node-dev}/node_modules/@xstate/fsm/es/index.js.map +0 -0
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs +159 -0
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/@xstate/react/es/fsm.js +2 -2
- package/dist/{dev → node-dev}/node_modules/@xstate/react/es/fsm.js.map +1 -1
- package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +94 -0
- package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/@xstate/react/es/useConstant.js +0 -0
- package/dist/{dev → node-dev}/node_modules/@xstate/react/es/useConstant.js.map +0 -0
- package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs +12 -0
- package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +5 -0
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +1 -0
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +6 -0
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +105 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +72 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +136 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +0 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +0 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +58 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/shim/index.js +0 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/shim/index.js.map +0 -0
- package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +21 -0
- package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/shim/with-selector.js +0 -0
- package/dist/{dev → node-dev}/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -0
- package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
- package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
- package/dist/{dev → node-dev}/storefront-api-constants.js +0 -0
- package/dist/{dev → node-dev}/storefront-api-constants.js.map +0 -0
- package/dist/node-dev/storefront-api-constants.mjs +5 -0
- package/dist/node-dev/storefront-api-constants.mjs.map +1 -0
- package/dist/{dev → node-dev}/storefront-client.js +21 -9
- package/dist/node-dev/storefront-client.js.map +1 -0
- package/dist/node-dev/storefront-client.mjs +84 -0
- package/dist/node-dev/storefront-client.mjs.map +1 -0
- package/dist/{dev → node-dev}/useCartAPIStateMachine.js +0 -0
- package/dist/{dev → node-dev}/useCartAPIStateMachine.js.map +0 -0
- package/dist/node-dev/useCartAPIStateMachine.mjs +326 -0
- package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -0
- package/dist/{dev → node-dev}/useCartActions.js +0 -0
- package/dist/{dev → node-dev}/useCartActions.js.map +0 -0
- package/dist/node-dev/useCartActions.mjs +123 -0
- package/dist/node-dev/useCartActions.mjs.map +1 -0
- package/dist/{dev → node-dev}/useMoney.js +0 -0
- package/dist/{dev → node-dev}/useMoney.js.map +0 -0
- package/dist/node-dev/useMoney.mjs +72 -0
- package/dist/node-dev/useMoney.mjs.map +1 -0
- package/dist/{prod → node-prod}/AddToCartButton.js +0 -0
- package/dist/node-prod/AddToCartButton.js.map +1 -0
- package/dist/node-prod/AddToCartButton.mjs +70 -0
- package/dist/node-prod/AddToCartButton.mjs.map +1 -0
- package/dist/{prod → node-prod}/BaseButton.js +0 -0
- package/dist/{prod → node-prod}/BaseButton.js.map +0 -0
- package/dist/node-prod/BaseButton.mjs +31 -0
- package/dist/node-prod/BaseButton.mjs.map +1 -0
- package/dist/{prod → node-prod}/BuyNowButton.js +0 -0
- package/dist/{prod → node-prod}/BuyNowButton.js.map +0 -0
- package/dist/node-prod/BuyNowButton.mjs +45 -0
- package/dist/node-prod/BuyNowButton.mjs.map +1 -0
- package/dist/{prod → node-prod}/CartCheckoutButton.js +0 -0
- package/dist/{prod → node-prod}/CartCheckoutButton.js.map +0 -0
- package/dist/node-prod/CartCheckoutButton.mjs +30 -0
- package/dist/node-prod/CartCheckoutButton.mjs.map +1 -0
- package/dist/{prod → node-prod}/CartProvider.js +0 -0
- package/dist/{prod → node-prod}/CartProvider.js.map +0 -0
- package/dist/node-prod/CartProvider.mjs +485 -0
- package/dist/node-prod/CartProvider.mjs.map +1 -0
- package/dist/{prod → node-prod}/ExternalVideo.js +0 -0
- package/dist/{prod → node-prod}/ExternalVideo.js.map +0 -0
- package/dist/node-prod/ExternalVideo.mjs +39 -0
- package/dist/node-prod/ExternalVideo.mjs.map +1 -0
- package/dist/{prod → node-prod}/Image.js +0 -0
- package/dist/{prod → node-prod}/Image.js.map +0 -0
- package/dist/node-prod/Image.mjs +99 -0
- package/dist/node-prod/Image.mjs.map +1 -0
- package/dist/{prod → node-prod}/MediaFile.js +0 -0
- package/dist/{prod → node-prod}/MediaFile.js.map +0 -0
- package/dist/node-prod/MediaFile.mjs +59 -0
- package/dist/node-prod/MediaFile.mjs.map +1 -0
- package/dist/{prod → node-prod}/Metafield.js +0 -0
- package/dist/{prod → node-prod}/Metafield.js.map +0 -0
- package/dist/node-prod/Metafield.mjs +288 -0
- package/dist/node-prod/Metafield.mjs.map +1 -0
- package/dist/{prod → node-prod}/ModelViewer.js +0 -0
- package/dist/{prod → node-prod}/ModelViewer.js.map +0 -0
- package/dist/node-prod/ModelViewer.mjs +143 -0
- package/dist/node-prod/ModelViewer.mjs.map +1 -0
- package/dist/{prod → node-prod}/Money.js +0 -0
- package/dist/{prod → node-prod}/Money.js.map +0 -0
- package/dist/node-prod/Money.mjs +40 -0
- package/dist/node-prod/Money.mjs.map +1 -0
- package/dist/{prod → node-prod}/ProductPrice.js +0 -0
- package/dist/{prod → node-prod}/ProductPrice.js.map +0 -0
- package/dist/node-prod/ProductPrice.mjs +61 -0
- package/dist/node-prod/ProductPrice.mjs.map +1 -0
- package/dist/{prod → node-prod}/ProductProvider.js +0 -0
- package/dist/{prod → node-prod}/ProductProvider.js.map +0 -0
- package/dist/node-prod/ProductProvider.mjs +161 -0
- package/dist/node-prod/ProductProvider.mjs.map +1 -0
- package/dist/{prod → node-prod}/ShopPayButton.js +0 -0
- package/dist/{prod → node-prod}/ShopPayButton.js.map +0 -0
- package/dist/node-prod/ShopPayButton.mjs +64 -0
- package/dist/node-prod/ShopPayButton.mjs.map +1 -0
- package/dist/{dev → node-prod}/ShopifyProvider.js +23 -5
- package/dist/node-prod/ShopifyProvider.js.map +1 -0
- package/dist/node-prod/ShopifyProvider.mjs +64 -0
- package/dist/node-prod/ShopifyProvider.mjs.map +1 -0
- package/dist/{prod → node-prod}/Video.js +0 -0
- package/dist/{prod → node-prod}/Video.js.map +0 -0
- package/dist/node-prod/Video.mjs +44 -0
- package/dist/node-prod/Video.mjs.map +1 -0
- package/dist/{prod → node-prod}/_virtual/index.js +0 -0
- package/dist/{prod → node-prod}/_virtual/index.js.map +0 -0
- package/dist/node-prod/_virtual/index.mjs +5 -0
- package/dist/{prod → node-prod/_virtual}/index.mjs.map +1 -1
- package/dist/{prod → node-prod}/_virtual/use-sync-external-store-shim.development.js +0 -0
- package/dist/{prod → node-prod}/_virtual/use-sync-external-store-shim.development.js.map +0 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.development.mjs +5 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/{prod → node-prod}/_virtual/use-sync-external-store-shim.production.min.js +0 -0
- package/dist/{prod → node-prod}/_virtual/use-sync-external-store-shim.production.min.js.map +0 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/{prod → node-prod}/_virtual/with-selector.development.js +0 -0
- package/dist/{prod → node-prod}/_virtual/with-selector.development.js.map +0 -0
- package/dist/node-prod/_virtual/with-selector.development.mjs +5 -0
- package/dist/node-prod/_virtual/with-selector.development.mjs.map +1 -0
- package/dist/{prod → node-prod}/_virtual/with-selector.js +0 -0
- package/dist/{prod → node-prod}/_virtual/with-selector.js.map +0 -0
- package/dist/node-prod/_virtual/with-selector.mjs +5 -0
- package/dist/node-prod/_virtual/with-selector.mjs.map +1 -0
- package/dist/{prod → node-prod}/_virtual/with-selector.production.min.js +0 -0
- package/dist/{prod → node-prod}/_virtual/with-selector.production.min.js.map +0 -0
- package/dist/node-prod/_virtual/with-selector.production.min.mjs +5 -0
- package/dist/node-prod/_virtual/with-selector.production.min.mjs.map +1 -0
- package/dist/{prod → node-prod}/cart-constants.js +0 -2
- package/dist/node-prod/cart-constants.js.map +1 -0
- package/dist/node-prod/cart-constants.mjs +15 -0
- package/dist/node-prod/cart-constants.mjs.map +1 -0
- package/dist/{prod → node-prod}/cart-hooks.js +8 -12
- package/dist/node-prod/cart-hooks.js.map +1 -0
- package/dist/node-prod/cart-hooks.mjs +44 -0
- package/dist/node-prod/cart-hooks.mjs.map +1 -0
- package/dist/{prod → node-prod}/cart-queries.js +0 -0
- package/dist/{prod → node-prod}/cart-queries.js.map +0 -0
- package/dist/node-prod/cart-queries.mjs +114 -0
- package/dist/node-prod/cart-queries.mjs.map +1 -0
- package/dist/node-prod/codegen.helpers.js +12 -0
- package/dist/node-prod/codegen.helpers.js.map +1 -0
- package/dist/node-prod/codegen.helpers.mjs +12 -0
- package/dist/node-prod/codegen.helpers.mjs.map +1 -0
- package/dist/{prod → node-prod}/flatten-connection.js +0 -0
- package/dist/{prod → node-prod}/flatten-connection.js.map +0 -0
- package/dist/node-prod/flatten-connection.mjs +25 -0
- package/dist/node-prod/flatten-connection.mjs.map +1 -0
- package/dist/{prod → node-prod}/image-size.js +0 -0
- package/dist/{prod → node-prod}/image-size.js.map +0 -0
- package/dist/node-prod/image-size.mjs +80 -0
- package/dist/node-prod/image-size.mjs.map +1 -0
- package/dist/{prod → node-prod}/index.js +2 -0
- package/dist/{prod → node-prod}/index.js.map +1 -1
- package/dist/node-prod/index.mjs +48 -0
- package/dist/node-prod/index.mjs.map +1 -0
- package/dist/{prod → node-prod}/load-script.js +0 -0
- package/dist/{prod → node-prod}/load-script.js.map +0 -0
- package/dist/node-prod/load-script.mjs +52 -0
- package/dist/node-prod/load-script.mjs.map +1 -0
- package/dist/{prod → node-prod}/metafield-parser.js +0 -0
- package/dist/{prod → node-prod}/metafield-parser.js.map +0 -0
- package/dist/node-prod/metafield-parser.mjs +114 -0
- package/dist/node-prod/metafield-parser.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/@xstate/fsm/es/index.js +0 -0
- package/dist/{prod → node-prod}/node_modules/@xstate/fsm/es/index.js.map +0 -0
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs +159 -0
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/@xstate/react/es/fsm.js +2 -2
- package/dist/{prod → node-prod}/node_modules/@xstate/react/es/fsm.js.map +1 -1
- package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +94 -0
- package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/@xstate/react/es/useConstant.js +0 -0
- package/dist/{prod → node-prod}/node_modules/@xstate/react/es/useConstant.js.map +0 -0
- package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs +12 -0
- package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +5 -0
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +1 -0
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +6 -0
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +105 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +72 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +136 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +0 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +0 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +58 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/shim/index.js +0 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/shim/index.js.map +0 -0
- package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +21 -0
- package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/shim/with-selector.js +0 -0
- package/dist/{prod → node-prod}/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -0
- package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
- package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
- package/dist/{prod → node-prod}/storefront-api-constants.js +0 -0
- package/dist/{prod → node-prod}/storefront-api-constants.js.map +0 -0
- package/dist/node-prod/storefront-api-constants.mjs +5 -0
- package/dist/node-prod/storefront-api-constants.mjs.map +1 -0
- package/dist/{prod → node-prod}/storefront-client.js +21 -9
- package/dist/node-prod/storefront-client.js.map +1 -0
- package/dist/node-prod/storefront-client.mjs +69 -0
- package/dist/node-prod/storefront-client.mjs.map +1 -0
- package/dist/{prod → node-prod}/useCartAPIStateMachine.js +0 -0
- package/dist/{prod → node-prod}/useCartAPIStateMachine.js.map +0 -0
- package/dist/node-prod/useCartAPIStateMachine.mjs +326 -0
- package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -0
- package/dist/{prod → node-prod}/useCartActions.js +0 -0
- package/dist/{prod → node-prod}/useCartActions.js.map +0 -0
- package/dist/node-prod/useCartActions.mjs +123 -0
- package/dist/node-prod/useCartActions.mjs.map +1 -0
- package/dist/{prod → node-prod}/useMoney.js +0 -0
- package/dist/{prod → node-prod}/useMoney.js.map +0 -0
- package/dist/node-prod/useMoney.mjs +72 -0
- package/dist/node-prod/useMoney.mjs.map +1 -0
- package/dist/types/AddToCartButton.d.ts +1 -2
- package/dist/types/CartLineProvider.d.ts +16 -0
- package/dist/types/ShopifyProvider.d.ts +35 -2
- package/dist/types/cart-constants.d.ts +0 -1
- package/dist/types/codegen.helpers.d.ts +9 -0
- package/dist/types/index.d.cts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/storefront-api-types.d.ts +1 -1
- package/dist/types/storefront-client.d.ts +17 -2
- package/dist/umd/hydrogen-react.dev.js +118 -86
- package/dist/umd/hydrogen-react.dev.js.map +1 -1
- package/dist/umd/hydrogen-react.prod.js +15 -15
- package/dist/umd/hydrogen-react.prod.js.map +1 -1
- package/package.json +35 -20
- package/dist/dev/AddToCartButton.js.map +0 -1
- package/dist/dev/AddToCartButton.mjs.map +0 -1
- package/dist/dev/ShopifyProvider.js.map +0 -1
- package/dist/dev/ShopifyProvider.mjs.map +0 -1
- package/dist/dev/cart-constants.js.map +0 -1
- package/dist/dev/cart-constants.mjs.map +0 -1
- package/dist/dev/cart-hooks.js.map +0 -1
- package/dist/dev/cart-hooks.mjs.map +0 -1
- package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +0 -5
- package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +0 -1
- package/dist/dev/storefront-client.js.map +0 -1
- package/dist/dev/storefront-client.mjs.map +0 -1
- package/dist/prod/AddToCartButton.js.map +0 -1
- package/dist/prod/AddToCartButton.mjs.map +0 -1
- package/dist/prod/ShopifyProvider.js.map +0 -1
- package/dist/prod/ShopifyProvider.mjs.map +0 -1
- package/dist/prod/cart-constants.js.map +0 -1
- package/dist/prod/cart-constants.mjs.map +0 -1
- package/dist/prod/cart-hooks.js.map +0 -1
- package/dist/prod/cart-hooks.mjs.map +0 -1
- package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +0 -5
- package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +0 -1
- package/dist/prod/storefront-client.js.map +0 -1
- package/dist/prod/storefront-client.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -59,6 +59,7 @@ const client = createStorefrontClient({
|
|
|
59
59
|
|
|
60
60
|
export const getStorefrontApiUrl = client.getStorefrontApiUrl;
|
|
61
61
|
export const getPrivateTokenHeaders = client.getPrivateTokenHeaders;
|
|
62
|
+
export const getShopifyDomain = client.getShopifyDomain;
|
|
62
63
|
```
|
|
63
64
|
|
|
64
65
|
You can then use this in your server-side queries. Here's an example of using it for [NextJS's `getServerSideProps`](https://nextjs.org/docs/basic-features/data-fetching/get-server-side-props):
|
|
@@ -84,6 +85,31 @@ export async function getServerSideProps() {
|
|
|
84
85
|
}
|
|
85
86
|
```
|
|
86
87
|
|
|
88
|
+
You can also use this to proxy the liquid online store:
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
|
|
92
|
+
import {getShopifyDomain} from '../shopify-client.js';
|
|
93
|
+
|
|
94
|
+
export default function handler(req, res) {
|
|
95
|
+
fetch(getShopifyDomain() + '/products', {
|
|
96
|
+
headers: {
|
|
97
|
+
/** forward some of the headers from the original request **/
|
|
98
|
+
},
|
|
99
|
+
})
|
|
100
|
+
.then((resp) => resp.text())
|
|
101
|
+
.then((text) => res.status(200).send(text))
|
|
102
|
+
.catch((error) => {
|
|
103
|
+
console.error(
|
|
104
|
+
`Error proxying the online store: ${
|
|
105
|
+
error instanceof Error ? error.stack : error
|
|
106
|
+
}`
|
|
107
|
+
);
|
|
108
|
+
res.status(500).send('Server error occurred');
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
87
113
|
### (Optional) Set the content type for the Storefront client
|
|
88
114
|
|
|
89
115
|
By default, the Storefront client sends the `"content-type": "application/json"` header. Use the `json` content type when you have GraphQL variables and when the body is an object with the following shape:
|
|
@@ -154,6 +180,29 @@ If you're having trouble getting it to work, then consult our [troubleshooting s
|
|
|
154
180
|
|
|
155
181
|
Improve your development experience by adding strong typing to Storefront API responses. The following are some options for doing this.
|
|
156
182
|
|
|
183
|
+
## GraphQL CodeGen
|
|
184
|
+
|
|
185
|
+
To use GraphQL CodeGen, follow [their guide](https://the-guild.dev/graphql/codegen/docs/getting-started/installation) to get started. Then, when you have a `codegen.ts` file, you can modify the following lines in the codegen object to improve the CodgeGen experience:
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
import {storefrontApiCustomScalars} from '@shopify/hydrogen-react';
|
|
189
|
+
|
|
190
|
+
const config: CodegenConfig = {
|
|
191
|
+
// Use the schema that's bundled with @shopify/hydrogen-react
|
|
192
|
+
schema: './node_modules/@shopify/hydrogen-react/storefront.schema.json',
|
|
193
|
+
generates: {
|
|
194
|
+
'./gql/': {
|
|
195
|
+
preset: 'client',
|
|
196
|
+
plugins: [],
|
|
197
|
+
config: {
|
|
198
|
+
// Use the custom scalar definitions that @shopify/hydrogen-react provides to improve the types
|
|
199
|
+
scalars: storefrontApiCustomScalars,
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
```
|
|
205
|
+
|
|
157
206
|
### Use the `StorefrontApiResponseError` and `StorefrontApiResponseOk` helpers
|
|
158
207
|
|
|
159
208
|
The following is an example:
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddToCartButton.mjs","sources":["../../src/AddToCartButton.tsx"],"sourcesContent":["import {useCallback, useEffect, useState} from 'react';\n\nimport {useCart} from './CartProvider.js';\nimport {useProduct} from './ProductProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\nexport interface AddToCartButtonProps {\n /** An array of cart line attributes that belong to the item being added to the cart. */\n attributes?: {\n key: string;\n value: string;\n }[];\n /** The ID of the variant. */\n variantId?: string | null;\n /** The item quantity. */\n quantity?: number;\n /** The text that is announced by the screen reader when the item is being added to the cart. Used for accessibility purposes only and not displayed on the page. */\n accessibleAddingToCartLabel?: string;\n /** The selling plan ID of the subscription variant */\n sellingPlanId?: string;\n}\n\n/**\n * The `AddToCartButton` component renders a button that adds an item to the cart when pressed.\n * It must be a descendent of the `CartProvider` component.\n */\nexport function AddToCartButton<AsType extends React.ElementType = 'button'>(\n props: AddToCartButtonProps & BaseButtonProps<AsType>\n) {\n const [addingItem, setAddingItem] = useState<boolean>(false);\n const {\n variantId: explicitVariantId,\n quantity = 1,\n attributes,\n sellingPlanId,\n onClick,\n children,\n accessibleAddingToCartLabel,\n ...passthroughProps\n } = props;\n const {status, linesAdd} = useCart();\n const {selectedVariant} = useProduct();\n const variantId = explicitVariantId ?? selectedVariant?.id ?? '';\n const disabled =\n explicitVariantId === null ||\n variantId === '' ||\n selectedVariant === null ||\n addingItem ||\n passthroughProps.disabled;\n\n useEffect(() => {\n if (addingItem && status === 'idle') {\n setAddingItem(false);\n }\n }, [status, addingItem]);\n\n const handleAddItem = useCallback(() => {\n setAddingItem(true);\n linesAdd([\n {\n quantity,\n merchandiseId: variantId || '',\n attributes,\n sellingPlanId,\n },\n ]);\n }, [linesAdd, quantity, variantId, attributes, sellingPlanId]);\n\n return (\n <>\n <BaseButton\n {...passthroughProps}\n disabled={disabled}\n onClick={onClick}\n defaultOnClick={handleAddItem}\n >\n {children}\n </BaseButton>\n {accessibleAddingToCartLabel ? (\n <p\n style={{\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: '0',\n }}\n role=\"alert\"\n aria-live=\"assertive\"\n >\n {addingItem ? accessibleAddingToCartLabel : null}\n </p>\n ) : null}\n </>\n );\n}\n"],"names":["AddToCartButton","props","addingItem","setAddingItem","useState","variantId","explicitVariantId","quantity","attributes","sellingPlanId","onClick","children","accessibleAddingToCartLabel","passthroughProps","status","linesAdd","useCart","selectedVariant","useProduct","id","disabled","useEffect","handleAddItem","useCallback","merchandiseId","_Fragment","_jsx","position","width","height","padding","margin","overflow","clip","whiteSpace","borderWidth"],"mappings":";;;;;AA0BO,SAASA,gBACdC,OACA;;AACA,QAAM,CAACC,YAAYC,aAAb,IAA8BC,SAAkB,KAAV;AACtC,QAAA;AAAA,IACJC,WAAWC;AAAAA,IACXC,WAAW;AAAA,IACXC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,OACGC;AAAAA,EACDZ,IAAAA;AACE,QAAA;AAAA,IAACa;AAAAA,IAAQC;AAAAA,MAAYC,QAA3B;AACM,QAAA;AAAA,IAACC;AAAAA,MAAmBC,WAA1B;AACMb,QAAAA,aAAYC,qDAAqBW,mDAAiBE,OAAtCb,YAA4C;AACxDc,QAAAA,WACJd,sBAAsB,QACtBD,cAAc,MACdY,oBAAoB,QACpBf,cACAW,iBAAiBO;AAEnBC,YAAU,MAAM;AACVnB,QAAAA,cAAcY,WAAW,QAAQ;AACnCX,oBAAc,KAAD;AAAA,IACd;AAAA,EAAA,GACA,CAACW,QAAQZ,UAAT,CAJM;AAMHoB,QAAAA,gBAAgBC,YAAY,MAAM;AACtCpB,kBAAc,IAAD;AACbY,aAAS,CACP;AAAA,MACER;AAAAA,MACAiB,eAAenB,aAAa;AAAA,MAC5BG;AAAAA,MACAC;AAAAA,IALK,CAAA,CAAD;AAAA,EAAA,GAQP,CAACM,UAAUR,UAAUF,WAAWG,YAAYC,aAA5C,CAV8B;AAYjC,8BACEgB,UAAA;AAAA,IAAA,UACE,CAAAC,oBAAC,YAAD;AAAA,MAAA,GACMb;AAAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgBS;AAAAA,MAJlB;AAAA,IAAA,CADF,GASGV,8BACCc,oBAAA,KAAA;AAAA,MACE,OAAO;AAAA,QACLC,UAAU;AAAA,QACVC,OAAO;AAAA,QACPC,QAAQ;AAAA,QACRC,SAAS;AAAA,QACTC,QAAQ;AAAA,QACRC,UAAU;AAAA,QACVC,MAAM;AAAA,QACNC,YAAY;AAAA,QACZC,aAAa;AAAA,MATR;AAAA,MAWP,MAAK;AAAA,MACL,aAAU;AAAA,MAbZ,UAeGjC,aAAaU,8BAA8B;AAAA,IAf9C,CAAA,IAiBE,IA3BN;AAAA,EAAA,CADF;AA+BD;"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createContext, useMemo, useContext } from "react";
|
|
2
2
|
import { SFAPI_VERSION } from "./storefront-api-constants.mjs";
|
|
3
|
+
import { getPublicTokenHeadersRaw } from "./storefront-client.mjs";
|
|
3
4
|
import { jsx } from "react/jsx-runtime";
|
|
4
5
|
const ShopifyContext = createContext({
|
|
5
6
|
storeDomain: "test.myshopify.com",
|
|
@@ -11,7 +12,13 @@ const ShopifyContext = createContext({
|
|
|
11
12
|
language: {
|
|
12
13
|
isoCode: "EN"
|
|
13
14
|
},
|
|
14
|
-
locale: "EN-US"
|
|
15
|
+
locale: "EN-US",
|
|
16
|
+
getStorefrontApiUrl() {
|
|
17
|
+
return "";
|
|
18
|
+
},
|
|
19
|
+
getPublicTokenHeaders() {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
15
22
|
});
|
|
16
23
|
function ShopifyProvider({
|
|
17
24
|
children,
|
|
@@ -23,10 +30,21 @@ function ShopifyProvider({
|
|
|
23
30
|
if (shopifyConfig.storefrontApiVersion !== SFAPI_VERSION) {
|
|
24
31
|
console.warn(`This version of Hydrogen-UI is built for Shopify's Storefront API version ${SFAPI_VERSION}, but it looks like you're using version ${shopifyConfig.storefrontApiVersion}. There may be issues or bugs if you use a mismatched version of Hydrogen-UI and the Storefront API.`);
|
|
25
32
|
}
|
|
26
|
-
const finalConfig = useMemo(() =>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
const finalConfig = useMemo(() => {
|
|
34
|
+
const storeDomain = shopifyConfig.storeDomain.replace(/^https?:\/\//, "");
|
|
35
|
+
return {
|
|
36
|
+
...shopifyConfig,
|
|
37
|
+
storeDomain,
|
|
38
|
+
getPublicTokenHeaders(overrideProps) {
|
|
39
|
+
var _a;
|
|
40
|
+
return getPublicTokenHeadersRaw(overrideProps.contentType, shopifyConfig.storefrontApiVersion, (_a = overrideProps.storefrontToken) != null ? _a : shopifyConfig.storefrontToken);
|
|
41
|
+
},
|
|
42
|
+
getStorefrontApiUrl(overrideProps) {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
return `https://${(_a = overrideProps == null ? void 0 : overrideProps.storeDomain) != null ? _a : storeDomain}/api/${(_b = overrideProps == null ? void 0 : overrideProps.storefrontApiVersion) != null ? _b : shopifyConfig.storefrontApiVersion}/graphql.json`;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}, [shopifyConfig]);
|
|
30
48
|
return /* @__PURE__ */ jsx(ShopifyContext.Provider, {
|
|
31
49
|
value: finalConfig,
|
|
32
50
|
children
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShopifyProvider.mjs","sources":["../../src/ShopifyProvider.tsx"],"sourcesContent":["import {createContext, useContext, useMemo, type ReactNode} from 'react';\nimport type {LanguageCode, CountryCode, Shop} from './storefront-api-types.js';\nimport {SFAPI_VERSION} from './storefront-api-constants.js';\nimport {getPublicTokenHeadersRaw} from './storefront-client.js';\n\nconst ShopifyContext = createContext<ShopifyContextValue>({\n storeDomain: 'test.myshopify.com',\n storefrontToken: 'abc123',\n storefrontApiVersion: SFAPI_VERSION,\n country: {\n isoCode: 'US',\n },\n language: {\n isoCode: 'EN',\n },\n locale: 'EN-US',\n getStorefrontApiUrl() {\n return '';\n },\n getPublicTokenHeaders() {\n return {};\n },\n});\n\n/**\n * The `<ShopifyProvider/>` component enables use of the `useShop()` hook. The component should wrap your app.\n */\nexport function ShopifyProvider({\n children,\n shopifyConfig,\n}: {\n children: ReactNode;\n shopifyConfig: ShopifyContextProps;\n}) {\n if (!shopifyConfig) {\n throw new Error(\n `The 'shopifyConfig' prop must be passed to '<ShopifyProvider/>'`\n );\n }\n\n if (shopifyConfig.storefrontApiVersion !== SFAPI_VERSION) {\n console.warn(\n `This version of Hydrogen-UI is built for Shopify's Storefront API version ${SFAPI_VERSION}, but it looks like you're using version ${shopifyConfig.storefrontApiVersion}. There may be issues or bugs if you use a mismatched version of Hydrogen-UI and the Storefront API.`\n );\n }\n\n const finalConfig = useMemo<ShopifyContextValue>(() => {\n const storeDomain = shopifyConfig.storeDomain.replace(/^https?:\\/\\//, '');\n return {\n ...shopifyConfig,\n storeDomain,\n getPublicTokenHeaders(overrideProps) {\n return getPublicTokenHeadersRaw(\n overrideProps.contentType,\n shopifyConfig.storefrontApiVersion,\n overrideProps.storefrontToken ?? shopifyConfig.storefrontToken\n );\n },\n getStorefrontApiUrl(overrideProps) {\n return `https://${overrideProps?.storeDomain ?? storeDomain}/api/${\n overrideProps?.storefrontApiVersion ??\n shopifyConfig.storefrontApiVersion\n }/graphql.json`;\n },\n };\n }, [shopifyConfig]);\n\n return (\n <ShopifyContext.Provider value={finalConfig}>\n {children}\n </ShopifyContext.Provider>\n );\n}\n\n/**\n * Provides access to the `shopifyConfig` prop of `<ShopifyProvider/>`. Must be a descendent of `<ShopifyProvider/>`.\n */\nexport function useShop() {\n const shopContext = useContext(ShopifyContext);\n if (!shopContext) {\n throw new Error(`'useShop()' must be a descendent of <ShopifyProvider/>`);\n }\n return shopContext;\n}\n\n/**\n * Shopify-specific values that are used in various Hydrogen-UI components and hooks.\n */\nexport type ShopifyContextProps = {\n /** The globally-unique identifier for the Shop */\n storefrontId?: string;\n /** The host name of the domain (eg: `{shop}.myshopify.com`). If a URL with a scheme (for example `https://`) is passed in, then the scheme is removed. */\n storeDomain: Shop['primaryDomain']['host'];\n /** The Storefront API public access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) documentation for more details. */\n storefrontToken: string;\n /** The Storefront API version. This should almost always be the same as the version Hydrogen-UI was built for. Learn more about Shopify [API versioning](https://shopify.dev/api/usage/versioning) for more details. */\n storefrontApiVersion: string;\n country?: {\n /**\n * The code designating a country, which generally follows ISO 3166-1 alpha-2 guidelines. If a territory doesn't have a country code value in the `CountryCode` enum, it might be considered a subdivision of another country. For example, the territories associated with Spain are represented by the country code `ES`, and the territories associated with the United States of America are represented by the country code `US`.\n */\n isoCode: CountryCode;\n };\n language?: {\n /**\n * `ISO 369` language codes supported by Shopify.\n */\n isoCode: LanguageCode;\n };\n /**\n * The locale string based on `country` and `language`.\n */\n locale?: string;\n};\n\nexport type ShopifyContextValue = ShopifyContextProps & {\n /**\n * Creates the fully-qualified URL to your store's GraphQL endpoint.\n *\n * By default, it will use the config you passed in when creating `<ShopifyProvider/>`. However, you can override the following settings on each invocation of `getStorefrontApiUrl({...})`:\n *\n * - `storeDomain`\n * - `storefrontApiVersion`\n */\n getStorefrontApiUrl: (props?: {\n /** The host name of the domain (eg: `{shop}.myshopify.com`). */\n storeDomain?: string;\n /** The Storefront API version. This should almost always be the same as the version Hydrogen-UI was built for. Learn more about Shopify [API versioning](https://shopify.dev/api/usage/versioning) for more details. */\n storefrontApiVersion?: string;\n }) => string;\n /**\n * Returns an object that contains headers that are needed for each query to Storefront API GraphQL endpoint. This uses the public Storefront API token.\n *\n * By default, it will use the config you passed in when creating `<ShopifyProvider/>`. However, you can override the following settings on each invocation of `getPublicTokenHeaders({...})`:\n *\n * - `contentType`\n * - `storefrontToken`\n *\n */\n getPublicTokenHeaders: (props: {\n /**\n * Customizes which `\"content-type\"` header is added when using `getPrivateTokenHeaders()` and `getPublicTokenHeaders()`. When fetching with a `JSON.stringify()`-ed `body`, use `\"json\"`. When fetching with a `body` that is a plain string, use `\"graphql\"`. Defaults to `\"json\"`\n */\n contentType: 'json' | 'graphql';\n /** The Storefront API access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) documentation for more details. */\n storefrontToken?: string;\n }) => Record<string, string>;\n};\n"],"names":["ShopifyContext","createContext","storeDomain","storefrontToken","storefrontApiVersion","SFAPI_VERSION","country","isoCode","language","locale","getStorefrontApiUrl","getPublicTokenHeaders","ShopifyProvider","children","shopifyConfig","Error","console","warn","finalConfig","useMemo","replace","overrideProps","getPublicTokenHeadersRaw","contentType","_jsx","useShop","shopContext","useContext"],"mappings":";;;;AAKA,MAAMA,iBAAiBC,cAAmC;AAAA,EACxDC,aAAa;AAAA,EACbC,iBAAiB;AAAA,EACjBC,sBAAsBC;AAAAA,EACtBC,SAAS;AAAA,IACPC,SAAS;AAAA,EADF;AAAA,EAGTC,UAAU;AAAA,IACRD,SAAS;AAAA,EADD;AAAA,EAGVE,QAAQ;AAAA,EACRC,sBAAsB;AACb,WAAA;AAAA,EACR;AAAA,EACDC,wBAAwB;AACtB,WAAO;EACR;AAhBuD,CAAtB;AAsB7B,SAASC,gBAAgB;AAAA,EAC9BC;AAAAA,EACAC;AAF8B,GAM7B;AACD,MAAI,CAACA,eAAe;AACZ,UAAA,IAAIC,MACP,iEADG;AAAA,EAGP;AAEGD,MAAAA,cAAcV,yBAAyBC,eAAe;AACxDW,YAAQC,KACL,6EAA4EZ,yDAAyDS,cAAcV,0HADtJ;AAAA,EAGD;AAEKc,QAAAA,cAAcC,QAA6B,MAAM;AACrD,UAAMjB,cAAcY,cAAcZ,YAAYkB,QAAQ,gBAAgB,EAAlD;AACb,WAAA;AAAA,MACL,GAAGN;AAAAA,MACHZ;AAAAA,MACAS,sBAAsBU,eAAe;;AAC5BC,eAAAA,yBACLD,cAAcE,aACdT,cAAcV,uBACdiB,mBAAclB,oBAAdkB,YAAiCP,cAAcX,eAHlB;AAAA,MAKhC;AAAA,MACDO,oBAAoBW,eAAe;;AACjC,eAAQ,YAAUA,oDAAenB,gBAAfmB,YAA8BnB,oBAC9CmB,oDAAejB,yBAAfiB,YACAP,cAAcV;AAAAA,MAEjB;AAAA,IAAA;AAAA,EAfI,GAiBN,CAACU,aAAD,CAnBwB;AAsBzB,SAAAU,oBAAC,eAAe,UAAhB;AAAA,IAAyB,OAAON;AAAAA,IAAhC;AAAA,EAAA,CADF;AAKD;AAKM,SAASO,UAAU;AAClBC,QAAAA,cAAcC,WAAW3B,cAAD;AAC9B,MAAI,CAAC0B,aAAa;AACV,UAAA,IAAIX,MAAO,wDAAX;AAAA,EACP;AACMW,SAAAA;AACR;"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.production.min.mjs.map
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
const CART_ID_STORAGE_KEY = "shopifyCartId";
|
|
2
|
-
const STOREFRONT_API_PUBLIC_TOKEN_HEADER = "X-Shopify-Storefront-Access-Token";
|
|
3
2
|
const SHOPIFY_STOREFRONT_ID_HEADER = "Shopify-Storefront-Id";
|
|
4
3
|
const SHOPIFY_STOREFRONT_Y_HEADER = "Shopify-Storefront-Y";
|
|
5
4
|
const SHOPIFY_STOREFRONT_S_HEADER = "Shopify-Storefront-S";
|
|
@@ -11,7 +10,6 @@ export {
|
|
|
11
10
|
SHOPIFY_STOREFRONT_ID_HEADER,
|
|
12
11
|
SHOPIFY_STOREFRONT_S_HEADER,
|
|
13
12
|
SHOPIFY_STOREFRONT_Y_HEADER,
|
|
14
|
-
SHOPIFY_Y
|
|
15
|
-
STOREFRONT_API_PUBLIC_TOKEN_HEADER
|
|
13
|
+
SHOPIFY_Y
|
|
16
14
|
};
|
|
17
15
|
//# sourceMappingURL=cart-constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cart-constants.mjs","sources":["../../src/cart-constants.ts"],"sourcesContent":["export const CART_ID_STORAGE_KEY = 'shopifyCartId';\nexport const CART_COOKIE_TTL_DAYS = 14;\n\n// Needed for cart analytics within Shopify\nexport const SHOPIFY_STOREFRONT_ID_HEADER = 'Shopify-Storefront-Id';\nexport const SHOPIFY_STOREFRONT_Y_HEADER = 'Shopify-Storefront-Y';\nexport const SHOPIFY_STOREFRONT_S_HEADER = 'Shopify-Storefront-S';\nexport const SHOPIFY_Y = '_shopify_y';\nexport const SHOPIFY_S = '_shopify_s';\n"],"names":[],"mappings":"AAAO,MAAM,sBAAsB;AAI5B,MAAM,+BAA+B;AACrC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,YAAY;AAClB,MAAM,YAAY;"}
|
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
2
|
import { useShop } from "./ShopifyProvider.mjs";
|
|
3
|
-
import { SHOPIFY_Y, SHOPIFY_S,
|
|
3
|
+
import { SHOPIFY_STOREFRONT_ID_HEADER, SHOPIFY_Y, SHOPIFY_S, SHOPIFY_STOREFRONT_Y_HEADER, SHOPIFY_STOREFRONT_S_HEADER } from "./cart-constants.mjs";
|
|
4
4
|
import { parse } from "worktop/cookie";
|
|
5
5
|
function useCartFetch() {
|
|
6
6
|
const {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
storefrontId
|
|
7
|
+
storefrontId,
|
|
8
|
+
getPublicTokenHeaders,
|
|
9
|
+
getStorefrontApiUrl
|
|
11
10
|
} = useShop();
|
|
12
11
|
return useCallback(({
|
|
13
12
|
query,
|
|
14
13
|
variables
|
|
15
14
|
}) => {
|
|
16
|
-
const headers = {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"X-SDK-Version": storefrontApiVersion,
|
|
20
|
-
[STOREFRONT_API_PUBLIC_TOKEN_HEADER]: storefrontToken
|
|
21
|
-
};
|
|
15
|
+
const headers = getPublicTokenHeaders({
|
|
16
|
+
contentType: "json"
|
|
17
|
+
});
|
|
22
18
|
if (storefrontId) {
|
|
23
19
|
headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
|
|
24
20
|
}
|
|
@@ -27,7 +23,7 @@ function useCartFetch() {
|
|
|
27
23
|
headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];
|
|
28
24
|
headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];
|
|
29
25
|
}
|
|
30
|
-
return fetch(
|
|
26
|
+
return fetch(getStorefrontApiUrl(), {
|
|
31
27
|
method: "POST",
|
|
32
28
|
headers,
|
|
33
29
|
body: JSON.stringify({
|
|
@@ -40,7 +36,7 @@ function useCartFetch() {
|
|
|
40
36
|
errors: error.toString()
|
|
41
37
|
};
|
|
42
38
|
});
|
|
43
|
-
}, [
|
|
39
|
+
}, [getPublicTokenHeaders, storefrontId, getStorefrontApiUrl]);
|
|
44
40
|
}
|
|
45
41
|
export {
|
|
46
42
|
useCartFetch
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cart-hooks.mjs","sources":["../../src/cart-hooks.tsx"],"sourcesContent":["import {useState, useCallback} from 'react';\nimport {useShop} from './ShopifyProvider.js';\nimport {flattenConnection} from './flatten-connection.js';\nimport {CartInput, Cart as CartType} from './storefront-api-types.js';\nimport {CartCreate, defaultCartFragment} from './cart-queries.js';\nimport {Cart} from './cart-types.js';\nimport {\n SHOPIFY_STOREFRONT_ID_HEADER,\n SHOPIFY_STOREFRONT_Y_HEADER,\n SHOPIFY_STOREFRONT_S_HEADER,\n SHOPIFY_Y,\n SHOPIFY_S,\n} from './cart-constants.js';\nimport {parse} from 'worktop/cookie';\nimport type {StorefrontApiResponseOkPartial} from './storefront-api-response.types.js';\n\nexport function useCartFetch() {\n const {storefrontId, getPublicTokenHeaders, getStorefrontApiUrl} = useShop();\n\n return useCallback(\n <ReturnDataGeneric,>({\n query,\n variables,\n }: {\n query: string;\n variables: Record<string, unknown>;\n }): Promise<StorefrontApiResponseOkPartial<ReturnDataGeneric>> => {\n const headers = getPublicTokenHeaders({contentType: 'json'});\n\n if (storefrontId) {\n headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;\n }\n\n // Find Shopify cookies\n const cookieData = parse(document.cookie);\n if (cookieData[SHOPIFY_Y] && cookieData[SHOPIFY_S]) {\n headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];\n headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];\n }\n\n return fetch(getStorefrontApiUrl(), {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query: query.toString(),\n variables,\n }),\n })\n .then((res) => res.json())\n .catch((error) => {\n return {\n data: undefined,\n errors: error.toString(),\n };\n });\n },\n [getPublicTokenHeaders, storefrontId, getStorefrontApiUrl]\n );\n}\n\nexport function useInstantCheckout() {\n const [cart, updateCart] = useState<Cart | undefined>();\n const [checkoutUrl, updateCheckoutUrl] = useState<Cart['checkoutUrl']>();\n const [error, updateError] = useState<string | undefined>();\n\n const fetch = useCartFetch();\n\n const createInstantCheckout = useCallback(\n async (cartInput: CartInput) => {\n const {data, errors} = await fetch<{\n cartCreate: {cart: CartType};\n }>({\n query: CartCreate(defaultCartFragment),\n variables: {\n input: cartInput,\n },\n });\n\n if (errors) {\n updateError(errors.toString());\n updateCart(undefined);\n updateCheckoutUrl(undefined);\n }\n\n if (data?.cartCreate?.cart) {\n const dataCart = data.cartCreate.cart;\n updateCart({\n ...dataCart,\n lines: flattenConnection(dataCart.lines),\n note: dataCart.note ?? undefined,\n });\n updateCheckoutUrl(dataCart.checkoutUrl);\n }\n },\n [fetch]\n );\n\n return {cart, checkoutUrl, error, createInstantCheckout};\n}\n"],"names":["useCartFetch","storefrontId","getPublicTokenHeaders","getStorefrontApiUrl","useShop","useCallback","query","variables","headers","contentType","SHOPIFY_STOREFRONT_ID_HEADER","cookieData","parse","document","cookie","SHOPIFY_Y","SHOPIFY_S","SHOPIFY_STOREFRONT_Y_HEADER","SHOPIFY_STOREFRONT_S_HEADER","fetch","method","body","JSON","stringify","toString","then","res","json","catch","error","data","undefined","errors"],"mappings":";;;;AAgBO,SAASA,eAAe;AACvB,QAAA;AAAA,IAACC;AAAAA,IAAcC;AAAAA,IAAuBC;AAAAA,MAAuBC,QAAnE;AAEA,SAAOC,YACL,CAAqB;AAAA,IACnBC;AAAAA,IACAC;AAAAA,EAAAA,MAIgE;AAChE,UAAMC,UAAUN,sBAAsB;AAAA,MAACO,aAAa;AAAA,IAAA,CAAf;AAErC,QAAIR,cAAc;AAChBO,cAAQE,gCAAgCT;AAAAA,IACzC;AAGKU,UAAAA,aAAaC,MAAMC,SAASC,MAAV;AACpBH,QAAAA,WAAWI,cAAcJ,WAAWK,YAAY;AAClDR,cAAQS,+BAA+BN,WAAWI;AAClDP,cAAQU,+BAA+BP,WAAWK;AAAAA,IACnD;AAEMG,WAAAA,MAAMhB,uBAAuB;AAAA,MAClCiB,QAAQ;AAAA,MACRZ;AAAAA,MACAa,MAAMC,KAAKC,UAAU;AAAA,QACnBjB,OAAOA,MAAMkB,SADM;AAAA,QAEnBjB;AAAAA,MAAAA,CAFI;AAAA,IAAA,CAHI,EAQTkB,KAAMC,CAAAA,QAAQA,IAAIC,MARd,EASJC,MAAOC,CAAU,UAAA;AACT,aAAA;AAAA,QACLC,MAAMC;AAAAA,QACNC,QAAQH,MAAML,SAAN;AAAA,MAAA;AAAA,IAFH,CAVJ;AAAA,EAgBT,GAAA,CAACtB,uBAAuBD,cAAcE,mBAAtC,CArCgB;AAuCnB;"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const storefrontApiCustomScalars = {
|
|
2
|
+
DateTime: "string",
|
|
3
|
+
Decimal: "string",
|
|
4
|
+
HTML: "string",
|
|
5
|
+
URL: "string",
|
|
6
|
+
Color: "string",
|
|
7
|
+
UnsignedInt64: "string"
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
storefrontApiCustomScalars
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=codegen.helpers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen.helpers.mjs","sources":["../../src/codegen.helpers.ts"],"sourcesContent":["/** Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly */\nexport const storefrontApiCustomScalars = {\n // Keep in sync with the definitions in the app/nextjs/codegen.ts!\n DateTime: 'string',\n Decimal: 'string',\n HTML: 'string',\n URL: 'string',\n Color: 'string',\n UnsignedInt64: 'string',\n};\n"],"names":[],"mappings":"AACO,MAAM,6BAA6B;AAAA,EAExC,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,eAAe;AACjB;"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -2,6 +2,7 @@ import { AddToCartButton } from "./AddToCartButton.mjs";
|
|
|
2
2
|
import { BuyNowButton } from "./BuyNowButton.mjs";
|
|
3
3
|
import { CartCheckoutButton } from "./CartCheckoutButton.mjs";
|
|
4
4
|
import { CartProvider, useCart } from "./CartProvider.mjs";
|
|
5
|
+
import { storefrontApiCustomScalars } from "./codegen.helpers.mjs";
|
|
5
6
|
import { ExternalVideo } from "./ExternalVideo.mjs";
|
|
6
7
|
import { flattenConnection } from "./flatten-connection.mjs";
|
|
7
8
|
import { Image } from "./Image.mjs";
|
|
@@ -38,6 +39,7 @@ export {
|
|
|
38
39
|
metafieldParser,
|
|
39
40
|
parseMetafield,
|
|
40
41
|
parseMetafieldValue,
|
|
42
|
+
storefrontApiCustomScalars,
|
|
41
43
|
useCart,
|
|
42
44
|
useMoney,
|
|
43
45
|
useProduct,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/with-selector.mjs
RENAMED
|
File without changes
|
package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/with-selector.mjs.map
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -22,6 +22,10 @@ function createStorefrontClient({
|
|
|
22
22
|
);
|
|
23
23
|
}
|
|
24
24
|
return {
|
|
25
|
+
getShopifyDomain(overrideProps) {
|
|
26
|
+
var _a;
|
|
27
|
+
return `https://${(_a = overrideProps == null ? void 0 : overrideProps.storeDomain) != null ? _a : storeDomain}.myshopify.com`;
|
|
28
|
+
},
|
|
25
29
|
getStorefrontApiUrl(overrideProps) {
|
|
26
30
|
var _a, _b;
|
|
27
31
|
return `https://${(_a = overrideProps == null ? void 0 : overrideProps.storeDomain) != null ? _a : storeDomain}.myshopify.com/api/${(_b = overrideProps == null ? void 0 : overrideProps.storefrontApiVersion) != null ? _b : storefrontApiVersion}/graphql.json`;
|
|
@@ -49,24 +53,32 @@ function createStorefrontClient({
|
|
|
49
53
|
};
|
|
50
54
|
},
|
|
51
55
|
getPublicTokenHeaders(overrideProps) {
|
|
52
|
-
var _a, _b, _c;
|
|
56
|
+
var _a, _b, _c, _d;
|
|
53
57
|
if (!publicStorefrontToken && !(overrideProps == null ? void 0 : overrideProps.publicStorefrontToken)) {
|
|
54
58
|
throw new Error(
|
|
55
59
|
`StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'`
|
|
56
60
|
);
|
|
57
61
|
}
|
|
58
|
-
const finalContentType = (_a = overrideProps == null ? void 0 : overrideProps.contentType) != null ? _a : contentType;
|
|
59
|
-
return
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"X-Shopify-Storefront-Access-Token": (_c = (_b = overrideProps == null ? void 0 : overrideProps.publicStorefrontToken) != null ? _b : publicStorefrontToken) != null ? _c : ""
|
|
65
|
-
};
|
|
62
|
+
const finalContentType = (_b = (_a = overrideProps == null ? void 0 : overrideProps.contentType) != null ? _a : contentType) != null ? _b : "json";
|
|
63
|
+
return getPublicTokenHeadersRaw(
|
|
64
|
+
finalContentType,
|
|
65
|
+
storefrontApiVersion,
|
|
66
|
+
(_d = (_c = overrideProps == null ? void 0 : overrideProps.publicStorefrontToken) != null ? _c : publicStorefrontToken) != null ? _d : ""
|
|
67
|
+
);
|
|
66
68
|
}
|
|
67
69
|
};
|
|
68
70
|
}
|
|
71
|
+
function getPublicTokenHeadersRaw(contentType, storefrontApiVersion, accessToken) {
|
|
72
|
+
return {
|
|
73
|
+
"content-type": contentType === "graphql" ? "application/graphql" : "application/json",
|
|
74
|
+
"X-SDK-Variant": "hydrogen-ui",
|
|
75
|
+
"X-SDK-Variant-Source": "react",
|
|
76
|
+
"X-SDK-Version": storefrontApiVersion,
|
|
77
|
+
"X-Shopify-Storefront-Access-Token": accessToken
|
|
78
|
+
};
|
|
79
|
+
}
|
|
69
80
|
export {
|
|
70
|
-
createStorefrontClient
|
|
81
|
+
createStorefrontClient,
|
|
82
|
+
getPublicTokenHeadersRaw
|
|
71
83
|
};
|
|
72
84
|
//# sourceMappingURL=storefront-client.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storefront-client.mjs","sources":["../../src/storefront-client.ts"],"sourcesContent":["import {SFAPI_VERSION} from './storefront-api-constants.js';\n\n/**\n * The `createStorefrontClient()` function creates helpers that enable you to quickly query the Shopify Storefront API.\n *\n * When used on the server, it is recommended to use the `privateStorefrontToken` prop. When used on the client, it is recommended to use the `publicStorefrontToken` prop.\n */\nexport function createStorefrontClient({\n storeDomain,\n privateStorefrontToken,\n publicStorefrontToken,\n storefrontApiVersion,\n contentType,\n}: StorefrontClientProps): StorefrontClientReturn {\n if (storefrontApiVersion !== SFAPI_VERSION) {\n console.warn(\n `StorefrontClient: The Storefront API version that you're using is different than the version this build of Hydrogen-UI is targeting. You may run into unexpected errors if these versions don't match. Received verion: \"${storefrontApiVersion}\"; expected version \"${SFAPI_VERSION}\"`\n );\n }\n\n // only warn if not in a browser environment\n if (__HYDROGEN_DEV__ && !privateStorefrontToken && !globalThis.document) {\n console.warn(\n `StorefrontClient: Using a private storefront token is recommended for server environments. Refer to the authentication https://shopify.dev/api/storefront#authentication documentation for more details. `\n );\n }\n\n // only warn if in a browser environment and you're using the privateStorefrontToken\n if (__HYDROGEN_DEV__ && privateStorefrontToken && globalThis) {\n console.warn(\n `StorefrontClient: You are attempting to use a private token in an environment where it can be easily accessed by anyone. This is a security risk; please use the public token and the 'publicStorefrontToken' prop`\n );\n }\n\n return {\n getShopifyDomain(overrideProps) {\n return `https://${\n overrideProps?.storeDomain ?? storeDomain\n }.myshopify.com`;\n },\n getStorefrontApiUrl(overrideProps) {\n return `https://${\n overrideProps?.storeDomain ?? storeDomain\n }.myshopify.com/api/${\n overrideProps?.storefrontApiVersion ?? storefrontApiVersion\n }/graphql.json`;\n },\n getPrivateTokenHeaders(overrideProps) {\n if (!privateStorefrontToken && !overrideProps?.privateStorefrontToken) {\n throw new Error(\n `StorefrontClient: You did not pass in a 'privateStorefrontToken' while using 'getPrivateTokenHeaders()'`\n );\n }\n\n if (__HYDROGEN_DEV__ && !overrideProps?.buyerIp) {\n console.warn(\n `StorefrontClient: it is recommended to pass in the 'buyerIp' property which improves analytics and data in the admin.`\n );\n }\n\n const finalContentType = overrideProps?.contentType ?? contentType;\n\n return {\n // default to json\n 'content-type':\n finalContentType === 'graphql'\n ? 'application/graphql'\n : 'application/json',\n 'X-SDK-Variant': 'hydrogen-ui',\n 'X-SDK-Variant-Source': 'react',\n 'X-SDK-Version': storefrontApiVersion,\n 'Shopify-Storefront-Private-Token':\n overrideProps?.privateStorefrontToken ?? privateStorefrontToken ?? '',\n ...(overrideProps?.buyerIp\n ? {'Shopify-Storefront-Buyer-IP': overrideProps.buyerIp}\n : {}),\n };\n },\n getPublicTokenHeaders(overrideProps) {\n if (!publicStorefrontToken && !overrideProps?.publicStorefrontToken) {\n throw new Error(\n `StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'`\n );\n }\n\n const finalContentType =\n overrideProps?.contentType ?? contentType ?? 'json';\n\n return getPublicTokenHeadersRaw(\n finalContentType,\n storefrontApiVersion,\n overrideProps?.publicStorefrontToken ?? publicStorefrontToken ?? ''\n );\n },\n };\n}\n\nexport function getPublicTokenHeadersRaw(\n contentType: 'graphql' | 'json',\n storefrontApiVersion: string,\n accessToken: string\n) {\n return {\n // default to json\n 'content-type':\n contentType === 'graphql' ? 'application/graphql' : 'application/json',\n 'X-SDK-Variant': 'hydrogen-ui',\n 'X-SDK-Variant-Source': 'react',\n 'X-SDK-Version': storefrontApiVersion,\n 'X-Shopify-Storefront-Access-Token': accessToken,\n };\n}\n\ntype StorefrontClientProps = {\n /** The host name of the domain (eg: `{shop}.myshopify.com`). */\n storeDomain: string;\n /** The Storefront API delegate access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) and [delegate access token](https://shopify.dev/apps/auth/oauth/delegate-access-tokens) documentation for more details. */\n privateStorefrontToken?: string;\n /** The Storefront API access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) documentation for more details. */\n publicStorefrontToken?: string;\n /** The Storefront API version. This should almost always be the same as the version Hydrogen-UI was built for. Learn more about Shopify [API versioning](https://shopify.dev/api/usage/versioning) for more details. */\n storefrontApiVersion: string;\n /**\n * Customizes which `\"content-type\"` header is added when using `getPrivateTokenHeaders()` and `getPublicTokenHeaders()`. When fetching with a `JSON.stringify()`-ed `body`, use `\"json\"`. When fetching with a `body` that is a plain string, use `\"graphql\"`. Defaults to `\"json\"`\n *\n * Can also be customized on a call-by-call basis by passing in `'contentType'` to both `getPrivateTokenHeaders({...})` and `getPublicTokenHeaders({...})`, for example: `getPublicTokenHeaders({contentType: 'graphql'})`\n */\n contentType?: 'json' | 'graphql';\n};\n\ntype OverrideTokenHeaderProps = Partial<\n Pick<StorefrontClientProps, 'contentType'>\n>;\n\ntype StorefrontClientReturn = {\n /**\n * Creates the fully-qualified URL to your myshopify.com domain.\n *\n * By default, it will use the config you passed in when calling `createStorefrontClient()`. However, you can override the following settings on each invocation of `getShopifyDomain({...})`:\n *\n * - `storeDomain`\n */\n getShopifyDomain: (\n props?: Partial<Pick<StorefrontClientProps, 'storeDomain'>>\n ) => string;\n /**\n * Creates the fully-qualified URL to your store's GraphQL endpoint.\n *\n * By default, it will use the config you passed in when calling `createStorefrontClient()`. However, you can override the following settings on each invocation of `getStorefrontApiUrl({...})`:\n *\n * - `storeDomain`\n * - `storefrontApiVersion`\n */\n getStorefrontApiUrl: (\n props?: Partial<\n Pick<StorefrontClientProps, 'storeDomain' | 'storefrontApiVersion'>\n >\n ) => string;\n /**\n * Returns an object that contains headers that are needed for each query to Storefront API GraphQL endpoint. This method uses the private Server-to-Server token which reduces the chance of throttling but must not be exposed to clients. Server-side calls should prefer using this over `getPublicTokenHeaders()`.\n *\n * By default, it will use the config you passed in when calling `createStorefrontClient()`. However, you can override the following settings on each invocation of `getPrivateTokenHeaders({...})`:\n *\n * - `contentType`\n * - `privateStorefrontToken`\n * - `buyerIp`\n *\n * Note that `contentType` defaults to what you configured in `createStorefrontClient({...})` and defaults to `'json'`, but a specific call may require using `graphql`. When using `JSON.stringify()` on the `body`, use `'json'`; otherwise, use `'graphql'`.\n */\n getPrivateTokenHeaders: (\n props?: OverrideTokenHeaderProps &\n Pick<StorefrontClientProps, 'privateStorefrontToken'> & {\n /**\n * The client's IP address. Passing this to the Storefront API when using a server-to-server token will help improve your store's analytics data.\n */\n buyerIp?: string;\n }\n ) => Record<string, string>;\n /**\n * Returns an object that contains headers that are needed for each query to Storefront API GraphQL endpoint. This method uses the public token which increases the chance of throttling but also can be exposed to clients. Server-side calls should prefer using `getPublicTokenHeaders()`.\n *\n * By default, it will use the config you passed in when calling `createStorefrontClient()`. However, you can override the following settings on each invocation of `getPublicTokenHeaders({...})`:\n *\n * - `contentType`\n * - `publicStorefrontToken`\n *\n * Note that `contentType` defaults to what you configured in `createStorefrontClient({...})` and defaults to `'json'`, but a specific call may require using `graphql`. When using `JSON.stringify()` on the `body`, use `'json'`; otherwise, use `'graphql'`.\n */\n getPublicTokenHeaders: (\n props?: OverrideTokenHeaderProps &\n Pick<StorefrontClientProps, 'publicStorefrontToken'>\n ) => Record<string, string>;\n};\n"],"names":[],"mappings":";AAOO,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAkD;AAChD,MAAI,yBAAyB,eAAe;AAClC,YAAA;AAAA,MACN,4NAA4N,4CAA4C;AAAA,IAAA;AAAA,EAE5Q;AAGA,MAAwB,CAAC,0BAA0B,CAAC,WAAW,UAAU;AAC/D,YAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAGI,MAAoB,0BAA0B,YAAY;AACpD,YAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAEO,SAAA;AAAA,IACL,iBAAiB,eAAe;;AACvB,aAAA,YACL,oDAAe,gBAAf,YAA8B;AAAA,IAElC;AAAA,IACA,oBAAoB,eAAe;;AACjC,aAAO,YACL,oDAAe,gBAAf,YAA8B,kCAE9B,oDAAe,yBAAf,YAAuC;AAAA,IAE3C;AAAA,IACA,uBAAuB,eAAe;;AACpC,UAAI,CAAC,0BAA0B,EAAC,+CAAe,yBAAwB;AACrE,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAAA,MAEJ;AAEI,UAAoB,EAAC,+CAAe,UAAS;AACvC,gBAAA;AAAA,UACN;AAAA,QAAA;AAAA,MAEJ;AAEM,YAAA,oBAAmB,oDAAe,gBAAf,YAA8B;AAEhD,aAAA;AAAA,QAEL,gBACE,qBAAqB,YACjB,wBACA;AAAA,QACN,iBAAiB;AAAA,QACjB,wBAAwB;AAAA,QACxB,iBAAiB;AAAA,QACjB,qCACE,0DAAe,2BAAf,YAAyC,2BAAzC,YAAmE;AAAA,QACrE,IAAI,+CAAe,WACf,EAAC,+BAA+B,cAAc,QAAA,IAC9C,CAAC;AAAA,MAAA;AAAA,IAET;AAAA,IACA,sBAAsB,eAAe;;AACnC,UAAI,CAAC,yBAAyB,EAAC,+CAAe,wBAAuB;AACnE,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAAA,MAEJ;AAEM,YAAA,oBACJ,0DAAe,gBAAf,YAA8B,gBAA9B,YAA6C;AAExC,aAAA;AAAA,QACL;AAAA,QACA;AAAA,SACA,0DAAe,0BAAf,YAAwC,0BAAxC,YAAiE;AAAA,MAAA;AAAA,IAErE;AAAA,EAAA;AAEJ;AAEgB,SAAA,yBACd,aACA,sBACA,aACA;AACO,SAAA;AAAA,IAEL,gBACE,gBAAgB,YAAY,wBAAwB;AAAA,IACtD,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,IACjB,qCAAqC;AAAA,EAAA;AAEzC;"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddToCartButton.mjs","sources":["../../src/AddToCartButton.tsx"],"sourcesContent":["import {useCallback, useEffect, useState} from 'react';\n\nimport {useCart} from './CartProvider.js';\nimport {useProduct} from './ProductProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\nexport interface AddToCartButtonProps {\n /** An array of cart line attributes that belong to the item being added to the cart. */\n attributes?: {\n key: string;\n value: string;\n }[];\n /** The ID of the variant. */\n variantId?: string | null;\n /** The item quantity. */\n quantity?: number;\n /** The text that is announced by the screen reader when the item is being added to the cart. Used for accessibility purposes only and not displayed on the page. */\n accessibleAddingToCartLabel?: string;\n /** The selling plan ID of the subscription variant */\n sellingPlanId?: string;\n}\n\n/**\n * The `AddToCartButton` component renders a button that adds an item to the cart when pressed.\n * It must be a descendent of the `CartProvider` component.\n */\nexport function AddToCartButton<AsType extends React.ElementType = 'button'>(\n props: AddToCartButtonProps & BaseButtonProps<AsType>\n) {\n const [addingItem, setAddingItem] = useState<boolean>(false);\n const {\n variantId: explicitVariantId,\n quantity = 1,\n attributes,\n sellingPlanId,\n onClick,\n children,\n accessibleAddingToCartLabel,\n ...passthroughProps\n } = props;\n const {status, linesAdd} = useCart();\n const {selectedVariant} = useProduct();\n const variantId = explicitVariantId ?? selectedVariant?.id ?? '';\n const disabled =\n explicitVariantId === null ||\n variantId === '' ||\n selectedVariant === null ||\n addingItem ||\n passthroughProps.disabled;\n\n useEffect(() => {\n if (addingItem && status === 'idle') {\n setAddingItem(false);\n }\n }, [status, addingItem]);\n\n const handleAddItem = useCallback(() => {\n setAddingItem(true);\n linesAdd([\n {\n quantity,\n merchandiseId: variantId || '',\n attributes,\n sellingPlanId,\n },\n ]);\n }, [linesAdd, quantity, variantId, attributes, sellingPlanId]);\n\n return (\n <>\n <BaseButton\n {...passthroughProps}\n disabled={disabled}\n onClick={onClick}\n defaultOnClick={handleAddItem}\n >\n {children}\n </BaseButton>\n {accessibleAddingToCartLabel ? (\n <p\n style={{\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: '0',\n }}\n role=\"alert\"\n aria-live=\"assertive\"\n >\n {addingItem ? accessibleAddingToCartLabel : null}\n </p>\n ) : null}\n </>\n );\n}\n"],"names":["AddToCartButton","props","addingItem","setAddingItem","useState","variantId","explicitVariantId","quantity","attributes","sellingPlanId","onClick","children","accessibleAddingToCartLabel","passthroughProps","status","linesAdd","useCart","selectedVariant","useProduct","id","disabled","useEffect","handleAddItem","useCallback","merchandiseId","_Fragment","_jsx","position","width","height","padding","margin","overflow","clip","whiteSpace","borderWidth"],"mappings":";;;;;AA0BO,SAASA,gBACdC,OACA;;AACA,QAAM,CAACC,YAAYC,aAAb,IAA8BC,SAAkB,KAAV;AACtC,QAAA;AAAA,IACJC,WAAWC;AAAAA,IACXC,WAAW;AAAA,IACXC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,OACGC;AAAAA,EACDZ,IAAAA;AACE,QAAA;AAAA,IAACa;AAAAA,IAAQC;AAAAA,MAAYC,QAA3B;AACM,QAAA;AAAA,IAACC;AAAAA,MAAmBC,WAA1B;AACMb,QAAAA,aAAYC,qDAAqBW,mDAAiBE,OAAtCb,YAA4C;AACxDc,QAAAA,WACJd,sBAAsB,QACtBD,cAAc,MACdY,oBAAoB,QACpBf,cACAW,iBAAiBO;AAEnBC,YAAU,MAAM;AACVnB,QAAAA,cAAcY,WAAW,QAAQ;AACnCX,oBAAc,KAAD;AAAA,IACd;AAAA,EAAA,GACA,CAACW,QAAQZ,UAAT,CAJM;AAMHoB,QAAAA,gBAAgBC,YAAY,MAAM;AACtCpB,kBAAc,IAAD;AACbY,aAAS,CACP;AAAA,MACER;AAAAA,MACAiB,eAAenB,aAAa;AAAA,MAC5BG;AAAAA,MACAC;AAAAA,IALK,CAAA,CAAD;AAAA,EAAA,GAQP,CAACM,UAAUR,UAAUF,WAAWG,YAAYC,aAA5C,CAV8B;AAYjC,8BACEgB,UAAA;AAAA,IAAA,UACE,CAAAC,oBAAC,YAAD;AAAA,MAAA,GACMb;AAAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgBS;AAAAA,MAJlB;AAAA,IAAA,CADF,GASGV,8BACCc,oBAAA,KAAA;AAAA,MACE,OAAO;AAAA,QACLC,UAAU;AAAA,QACVC,OAAO;AAAA,QACPC,QAAQ;AAAA,QACRC,SAAS;AAAA,QACTC,QAAQ;AAAA,QACRC,UAAU;AAAA,QACVC,MAAM;AAAA,QACNC,YAAY;AAAA,QACZC,aAAa;AAAA,MATR;AAAA,MAWP,MAAK;AAAA,MACL,aAAU;AAAA,MAbZ,UAeGjC,aAAaU,8BAA8B;AAAA,IAf9C,CAAA,IAiBE,IA3BN;AAAA,EAAA,CADF;AA+BD;"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|