@shopify/hydrogen-react 2024.10.1 → 2025.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/customer-account.schema.json +1 -1
  2. package/dist/browser-dev/CartLineProvider.mjs.map +1 -1
  3. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  4. package/dist/browser-dev/Image.mjs.map +1 -1
  5. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  6. package/dist/browser-dev/Money.mjs.map +1 -1
  7. package/dist/browser-dev/Video.mjs.map +1 -1
  8. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  9. package/dist/browser-dev/getProductOptions.mjs +11 -9
  10. package/dist/browser-dev/getProductOptions.mjs.map +1 -1
  11. package/dist/browser-dev/optionValueDecoder.mjs +10 -8
  12. package/dist/browser-dev/optionValueDecoder.mjs.map +1 -1
  13. package/dist/browser-dev/packages/hydrogen-react/package.json.mjs +1 -1
  14. package/dist/browser-dev/storefront-api-constants.mjs +1 -1
  15. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  16. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  17. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  18. package/dist/browser-prod/CartLineProvider.mjs.map +1 -1
  19. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  20. package/dist/browser-prod/Image.mjs.map +1 -1
  21. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  22. package/dist/browser-prod/Money.mjs.map +1 -1
  23. package/dist/browser-prod/Video.mjs.map +1 -1
  24. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  25. package/dist/browser-prod/getProductOptions.mjs +11 -9
  26. package/dist/browser-prod/getProductOptions.mjs.map +1 -1
  27. package/dist/browser-prod/optionValueDecoder.mjs +10 -8
  28. package/dist/browser-prod/optionValueDecoder.mjs.map +1 -1
  29. package/dist/browser-prod/packages/hydrogen-react/package.json.mjs +1 -1
  30. package/dist/browser-prod/storefront-api-constants.mjs +1 -1
  31. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  32. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  33. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  34. package/dist/node-dev/CartLineProvider.js.map +1 -1
  35. package/dist/node-dev/CartLineProvider.mjs.map +1 -1
  36. package/dist/node-dev/CartProvider.js.map +1 -1
  37. package/dist/node-dev/CartProvider.mjs.map +1 -1
  38. package/dist/node-dev/Image.js.map +1 -1
  39. package/dist/node-dev/Image.mjs.map +1 -1
  40. package/dist/node-dev/ModelViewer.js.map +1 -1
  41. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  42. package/dist/node-dev/Money.js.map +1 -1
  43. package/dist/node-dev/Money.mjs.map +1 -1
  44. package/dist/node-dev/Video.js.map +1 -1
  45. package/dist/node-dev/Video.mjs.map +1 -1
  46. package/dist/node-dev/codegen.helpers.js.map +1 -1
  47. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  48. package/dist/node-dev/getProductOptions.js +11 -9
  49. package/dist/node-dev/getProductOptions.js.map +1 -1
  50. package/dist/node-dev/getProductOptions.mjs +11 -9
  51. package/dist/node-dev/getProductOptions.mjs.map +1 -1
  52. package/dist/node-dev/optionValueDecoder.js +10 -8
  53. package/dist/node-dev/optionValueDecoder.js.map +1 -1
  54. package/dist/node-dev/optionValueDecoder.mjs +10 -8
  55. package/dist/node-dev/optionValueDecoder.mjs.map +1 -1
  56. package/dist/node-dev/packages/hydrogen-react/package.json.js +1 -1
  57. package/dist/node-dev/packages/hydrogen-react/package.json.mjs +1 -1
  58. package/dist/node-dev/storefront-api-constants.js +1 -1
  59. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  60. package/dist/node-dev/storefront-api-constants.mjs +1 -1
  61. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  62. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  63. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  64. package/dist/node-dev/useCartActions.js.map +1 -1
  65. package/dist/node-dev/useCartActions.mjs.map +1 -1
  66. package/dist/node-prod/CartLineProvider.js.map +1 -1
  67. package/dist/node-prod/CartLineProvider.mjs.map +1 -1
  68. package/dist/node-prod/CartProvider.js.map +1 -1
  69. package/dist/node-prod/CartProvider.mjs.map +1 -1
  70. package/dist/node-prod/Image.js.map +1 -1
  71. package/dist/node-prod/Image.mjs.map +1 -1
  72. package/dist/node-prod/ModelViewer.js.map +1 -1
  73. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  74. package/dist/node-prod/Money.js.map +1 -1
  75. package/dist/node-prod/Money.mjs.map +1 -1
  76. package/dist/node-prod/Video.js.map +1 -1
  77. package/dist/node-prod/Video.mjs.map +1 -1
  78. package/dist/node-prod/codegen.helpers.js.map +1 -1
  79. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  80. package/dist/node-prod/getProductOptions.js +11 -9
  81. package/dist/node-prod/getProductOptions.js.map +1 -1
  82. package/dist/node-prod/getProductOptions.mjs +11 -9
  83. package/dist/node-prod/getProductOptions.mjs.map +1 -1
  84. package/dist/node-prod/optionValueDecoder.js +10 -8
  85. package/dist/node-prod/optionValueDecoder.js.map +1 -1
  86. package/dist/node-prod/optionValueDecoder.mjs +10 -8
  87. package/dist/node-prod/optionValueDecoder.mjs.map +1 -1
  88. package/dist/node-prod/packages/hydrogen-react/package.json.js +1 -1
  89. package/dist/node-prod/packages/hydrogen-react/package.json.mjs +1 -1
  90. package/dist/node-prod/storefront-api-constants.js +1 -1
  91. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  92. package/dist/node-prod/storefront-api-constants.mjs +1 -1
  93. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  94. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  95. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  96. package/dist/node-prod/useCartActions.js.map +1 -1
  97. package/dist/node-prod/useCartActions.mjs.map +1 -1
  98. package/dist/types/CartLineProvider.d.ts +1 -1
  99. package/dist/types/CartProvider.d.ts +2 -2
  100. package/dist/types/Image.d.ts +1 -1
  101. package/dist/types/ModelViewer.d.ts +1 -1
  102. package/dist/types/Money.d.ts +1 -1
  103. package/dist/types/Video.d.ts +1 -1
  104. package/dist/types/codegen.helpers.d.ts +2 -2
  105. package/dist/types/optionValueDecoder.d.ts +2 -2
  106. package/dist/types/storefront-api-constants.d.ts +1 -1
  107. package/dist/types/storefront-api-types.d.ts +641 -127
  108. package/dist/types/useCartAPIStateMachine.d.ts +2 -2
  109. package/dist/types/useCartActions.d.ts +2 -2
  110. package/dist/umd/hydrogen-react.dev.js +23 -19
  111. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  112. package/dist/umd/hydrogen-react.prod.js +7 -7
  113. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  114. package/package.json +3 -3
  115. package/storefront.schema.json +1 -1
@@ -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/2024-10/objects/cart). */
14
+ /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-01/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/2024-10/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
18
+ /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-01/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/2024-10/objects/Cart)
9
+ * See [cart API graphql mutations](https://shopify.dev/api/storefront/2025-01/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/2024-10/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
14
+ /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-01/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;
@@ -796,7 +796,7 @@
796
796
  }
797
797
  `
798
798
  );
799
- const SFAPI_VERSION = "2024-10";
799
+ const SFAPI_VERSION = "2025-01";
800
800
  const MOCK_SHOP_DOMAIN = "mock.shop";
801
801
  const isMockShop = (domain) => domain.includes(MOCK_SHOP_DOMAIN);
802
802
  function createStorefrontClient({
@@ -2405,7 +2405,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2405
2405
  }
2406
2406
  return false;
2407
2407
  }
2408
- const version = "2024.10.1";
2408
+ const version = "2025.1.0";
2409
2409
  const SCHEMA_ID = "custom_storefront_customer_tracking/1.2";
2410
2410
  const PAGE_RENDERED_EVENT_NAME = "page_rendered";
2411
2411
  const COLLECTION_PAGE_RENDERED_EVENT_NAME = "collection_page_rendered";
@@ -3203,14 +3203,16 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3203
3203
  }
3204
3204
  index2 = tokenizer.lastIndex;
3205
3205
  }
3206
- const lastRangeStartIndex = encodedVariantField.lastIndexOf("-");
3207
- if (rangeStart != null && lastRangeStartIndex > 0) {
3208
- const finalValueIndex = parseInt(
3209
- encodedVariantField.substring(lastRangeStartIndex + 1)
3210
- );
3211
- for (; rangeStart <= finalValueIndex; rangeStart++) {
3212
- currentOptionValue[depth] = rangeStart;
3213
- options.push([...currentOptionValue]);
3206
+ const encodingEndsWithIndex = encodedVariantField.match(/\d+$/g);
3207
+ if (encodingEndsWithIndex) {
3208
+ const finalValueIndex = parseInt(encodingEndsWithIndex[0]);
3209
+ if (rangeStart != null) {
3210
+ for (; rangeStart <= finalValueIndex; rangeStart++) {
3211
+ currentOptionValue[depth] = rangeStart;
3212
+ options.push([...currentOptionValue]);
3213
+ }
3214
+ } else {
3215
+ options.push([finalValueIndex]);
3214
3216
  }
3215
3217
  }
3216
3218
  return options;
@@ -3294,10 +3296,13 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3294
3296
  validParam = logErrorAndReturnFalse("options.name");
3295
3297
  }
3296
3298
  if ((_a = product == null ? void 0 : product.options[0]) == null ? void 0 : _a.optionValues) {
3297
- const firstOptionValues = product.options[0].optionValues[0];
3299
+ let firstOptionValues = product.options[0].optionValues[0];
3298
3300
  if (checkAll && !(firstOptionValues == null ? void 0 : firstOptionValues.name)) {
3299
3301
  validParam = logErrorAndReturnFalse("options.optionValues.name");
3300
3302
  }
3303
+ firstOptionValues = product.options[0].optionValues.filter(
3304
+ (value) => !!(value == null ? void 0 : value.firstSelectableVariant)
3305
+ )[0];
3301
3306
  if (firstOptionValues == null ? void 0 : firstOptionValues.firstSelectableVariant) {
3302
3307
  validParam = checkProductVariantParam(
3303
3308
  firstOptionValues.firstSelectableVariant,
@@ -3305,10 +3310,6 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3305
3310
  validParam,
3306
3311
  checkAll
3307
3312
  );
3308
- } else {
3309
- validParam = logErrorAndReturnFalse(
3310
- "options.optionValues.firstSelectableVariant"
3311
- );
3312
3313
  }
3313
3314
  } else {
3314
3315
  validParam = logErrorAndReturnFalse("options.optionValues");
@@ -3426,11 +3427,14 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3426
3427
  encodedVariantAvailability || ""
3427
3428
  );
3428
3429
  const variant = variants[targetKey] || value.firstSelectableVariant;
3429
- const variantOptionParam = mapSelectedProductOptionToObject(
3430
- variant.selectedOptions || []
3431
- );
3430
+ let variantOptionParam = {};
3431
+ if (variant) {
3432
+ variantOptionParam = mapSelectedProductOptionToObject(
3433
+ variant.selectedOptions || []
3434
+ );
3435
+ }
3432
3436
  const searchParams = new URLSearchParams(variantOptionParam);
3433
- const handle = (_a = variant == null ? void 0 : variant.product) == null ? void 0 : _a.handle;
3437
+ const handle = ((_a = variant == null ? void 0 : variant.product) == null ? void 0 : _a.handle) || productHandle;
3434
3438
  return {
3435
3439
  ...value,
3436
3440
  variant,