@shopify/hydrogen-react 2025.1.0 → 2025.1.1

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 (90) hide show
  1. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  2. package/dist/browser-dev/Image.mjs.map +1 -1
  3. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  4. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +1 -2
  5. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  6. package/dist/browser-dev/analytics.mjs +0 -3
  7. package/dist/browser-dev/analytics.mjs.map +1 -1
  8. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  9. package/dist/browser-dev/flatten-connection.mjs.map +1 -1
  10. package/dist/browser-dev/getProductOptions.mjs +39 -27
  11. package/dist/browser-dev/getProductOptions.mjs.map +1 -1
  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/useMoney.mjs.map +1 -1
  15. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  16. package/dist/browser-prod/Image.mjs.map +1 -1
  17. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  18. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +1 -2
  19. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  20. package/dist/browser-prod/analytics.mjs +0 -3
  21. package/dist/browser-prod/analytics.mjs.map +1 -1
  22. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  23. package/dist/browser-prod/flatten-connection.mjs.map +1 -1
  24. package/dist/browser-prod/getProductOptions.mjs +39 -27
  25. package/dist/browser-prod/getProductOptions.mjs.map +1 -1
  26. package/dist/browser-prod/optionValueDecoder.mjs.map +1 -1
  27. package/dist/browser-prod/packages/hydrogen-react/package.json.mjs +1 -1
  28. package/dist/browser-prod/useMoney.mjs.map +1 -1
  29. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  30. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  31. package/dist/node-dev/Image.js.map +1 -1
  32. package/dist/node-dev/Image.mjs.map +1 -1
  33. package/dist/node-dev/ModelViewer.js.map +1 -1
  34. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  35. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +1 -2
  36. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  37. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +1 -2
  38. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  39. package/dist/node-dev/analytics.js +0 -3
  40. package/dist/node-dev/analytics.js.map +1 -1
  41. package/dist/node-dev/analytics.mjs +0 -3
  42. package/dist/node-dev/analytics.mjs.map +1 -1
  43. package/dist/node-dev/cart-hooks.js.map +1 -1
  44. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  45. package/dist/node-dev/flatten-connection.js.map +1 -1
  46. package/dist/node-dev/flatten-connection.mjs.map +1 -1
  47. package/dist/node-dev/getProductOptions.js +39 -27
  48. package/dist/node-dev/getProductOptions.js.map +1 -1
  49. package/dist/node-dev/getProductOptions.mjs +39 -27
  50. package/dist/node-dev/getProductOptions.mjs.map +1 -1
  51. package/dist/node-dev/optionValueDecoder.js.map +1 -1
  52. package/dist/node-dev/optionValueDecoder.mjs.map +1 -1
  53. package/dist/node-dev/packages/hydrogen-react/package.json.js +1 -1
  54. package/dist/node-dev/packages/hydrogen-react/package.json.mjs +1 -1
  55. package/dist/node-dev/useMoney.js.map +1 -1
  56. package/dist/node-dev/useMoney.mjs.map +1 -1
  57. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  58. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  59. package/dist/node-prod/Image.js.map +1 -1
  60. package/dist/node-prod/Image.mjs.map +1 -1
  61. package/dist/node-prod/ModelViewer.js.map +1 -1
  62. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  63. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +1 -2
  64. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  65. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +1 -2
  66. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  67. package/dist/node-prod/analytics.js +0 -3
  68. package/dist/node-prod/analytics.js.map +1 -1
  69. package/dist/node-prod/analytics.mjs +0 -3
  70. package/dist/node-prod/analytics.mjs.map +1 -1
  71. package/dist/node-prod/cart-hooks.js.map +1 -1
  72. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  73. package/dist/node-prod/flatten-connection.js.map +1 -1
  74. package/dist/node-prod/flatten-connection.mjs.map +1 -1
  75. package/dist/node-prod/getProductOptions.js +39 -27
  76. package/dist/node-prod/getProductOptions.js.map +1 -1
  77. package/dist/node-prod/getProductOptions.mjs +39 -27
  78. package/dist/node-prod/getProductOptions.mjs.map +1 -1
  79. package/dist/node-prod/optionValueDecoder.js.map +1 -1
  80. package/dist/node-prod/optionValueDecoder.mjs.map +1 -1
  81. package/dist/node-prod/packages/hydrogen-react/package.json.js +1 -1
  82. package/dist/node-prod/packages/hydrogen-react/package.json.mjs +1 -1
  83. package/dist/node-prod/useMoney.js.map +1 -1
  84. package/dist/node-prod/useMoney.mjs.map +1 -1
  85. package/dist/types/flatten-connection.d.ts +1 -1
  86. package/dist/umd/hydrogen-react.dev.js +41 -33
  87. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  88. package/dist/umd/hydrogen-react.prod.js +7 -7
  89. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  90. package/package.json +5 -13
@@ -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 = "2025.1.0";
2408
+ const version = "2025.1.1";
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";
@@ -2560,7 +2560,6 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2560
2560
  function addToCart(payload) {
2561
2561
  const addToCartPayload = payload;
2562
2562
  const cartToken = parseGid(addToCartPayload.cartId);
2563
- const cart_token = (cartToken == null ? void 0 : cartToken.id) ? `${cartToken.id}` : null;
2564
2563
  return [
2565
2564
  schemaWrapper(
2566
2565
  SCHEMA_ID,
@@ -2568,7 +2567,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2568
2567
  {
2569
2568
  event_name: PRODUCT_ADDED_TO_CART_EVENT_NAME,
2570
2569
  customerId: addToCartPayload.customerId,
2571
- cart_token,
2570
+ cart_token: (cartToken == null ? void 0 : cartToken.id) ? `${cartToken.id}` : null,
2572
2571
  total_value: addToCartPayload.totalValue,
2573
2572
  products: formatProductPayload(addToCartPayload.products),
2574
2573
  customer_id: parseInt(
@@ -2762,13 +2761,10 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2762
2761
  switch (rawType) {
2763
2762
  case PerformanceNavigation.TYPE_NAVIGATE:
2764
2763
  return "navigate";
2765
- break;
2766
2764
  case PerformanceNavigation.TYPE_RELOAD:
2767
2765
  return "reload";
2768
- break;
2769
2766
  case PerformanceNavigation.TYPE_BACK_FORWARD:
2770
2767
  return "back_forward";
2771
- break;
2772
2768
  default:
2773
2769
  return `unknown: ${rawType}`;
2774
2770
  }
@@ -3218,14 +3214,19 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3218
3214
  return options;
3219
3215
  }
3220
3216
  function mapProductOptions(options) {
3221
- return options.map((option) => {
3222
- return Object.assign(
3223
- {},
3224
- ...(option == null ? void 0 : option.optionValues) ? option.optionValues.map((value, index2) => {
3225
- return { [value.name]: index2 };
3226
- }) : []
3227
- );
3228
- });
3217
+ return Object.assign(
3218
+ {},
3219
+ ...options.map((option) => {
3220
+ return {
3221
+ [option.name]: Object.assign(
3222
+ {},
3223
+ ...(option == null ? void 0 : option.optionValues) ? option.optionValues.map((value, index2) => {
3224
+ return { [value.name]: index2 };
3225
+ }) : []
3226
+ )
3227
+ };
3228
+ })
3229
+ );
3229
3230
  }
3230
3231
  function mapSelectedProductOptionToObject(options) {
3231
3232
  return Object.assign(
@@ -3238,28 +3239,30 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3238
3239
  function mapSelectedProductOptionToObjectAsString(options) {
3239
3240
  return JSON.stringify(mapSelectedProductOptionToObject(options));
3240
3241
  }
3241
- function encodeSelectedProductOptionAsKey(selectedOption, productOptionMappings) {
3242
+ function encodeSelectedProductOptionAsKey(selectedOption) {
3242
3243
  if (Array.isArray(selectedOption)) {
3243
3244
  return JSON.stringify(
3244
- selectedOption.map((key, index2) => {
3245
- return productOptionMappings[index2][key.value];
3246
- })
3245
+ Object.assign(
3246
+ {},
3247
+ ...selectedOption.map((option) => ({ [option.name]: option.value }))
3248
+ )
3247
3249
  );
3248
3250
  } else {
3249
- return JSON.stringify(
3250
- Object.keys(selectedOption).map((key, index2) => {
3251
- return productOptionMappings[index2][selectedOption[key]];
3252
- })
3253
- );
3251
+ return JSON.stringify(selectedOption);
3254
3252
  }
3255
3253
  }
3256
- function mapVariants(variants, productOptionMappings) {
3254
+ function buildEncodingArrayFromSelectedOptions(selectedOption, productOptionMappings) {
3255
+ const encoding = Object.keys(selectedOption).map((key) => {
3256
+ return productOptionMappings[key] ? productOptionMappings[key][selectedOption[key]] : null;
3257
+ });
3258
+ return encoding.filter((code) => code !== null);
3259
+ }
3260
+ function mapVariants(variants) {
3257
3261
  return Object.assign(
3258
3262
  {},
3259
3263
  ...variants.map((variant) => {
3260
3264
  const variantKey = encodeSelectedProductOptionAsKey(
3261
- variant.selectedOptions || [],
3262
- productOptionMappings
3265
+ variant.selectedOptions || []
3263
3266
  );
3264
3267
  return { [variantKey]: variant };
3265
3268
  })
@@ -3395,15 +3398,20 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3395
3398
  encodedVariantAvailability,
3396
3399
  handle: productHandle
3397
3400
  } = checkedProduct;
3401
+ const selectedOptionKeys = selectedVariant == null ? void 0 : selectedVariant.selectedOptions.map(
3402
+ (option) => option.name
3403
+ );
3404
+ const filteredOptions = options.filter((option) => {
3405
+ return selectedOptionKeys && selectedOptionKeys.indexOf(option.name) >= 0;
3406
+ });
3398
3407
  const productOptionMappings = mapProductOptions(options);
3399
3408
  const variants = mapVariants(
3400
- selectedVariant ? [selectedVariant, ...adjacentVariants] : adjacentVariants,
3401
- productOptionMappings
3409
+ selectedVariant ? [selectedVariant, ...adjacentVariants] : adjacentVariants
3402
3410
  );
3403
3411
  const selectedOptions = mapSelectedProductOptionToObject(
3404
3412
  selectedVariant ? selectedVariant.selectedOptions : []
3405
3413
  );
3406
- const productOptions = options.map((option, optionIndex) => {
3414
+ const productOptions = filteredOptions.map((option, optionIndex) => {
3407
3415
  return {
3408
3416
  ...option,
3409
3417
  optionValues: option.optionValues.map((value) => {
@@ -3411,13 +3419,13 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3411
3419
  const targetOptionParams = { ...selectedOptions };
3412
3420
  targetOptionParams[option.name] = value.name;
3413
3421
  const targetKey = encodeSelectedProductOptionAsKey(
3422
+ targetOptionParams || []
3423
+ );
3424
+ const encodingKey = buildEncodingArrayFromSelectedOptions(
3414
3425
  targetOptionParams || [],
3415
3426
  productOptionMappings
3416
3427
  );
3417
- const topDownKey = JSON.parse(targetKey).slice(
3418
- 0,
3419
- optionIndex + 1
3420
- );
3428
+ const topDownKey = encodingKey.slice(0, optionIndex + 1);
3421
3429
  const exists = isOptionValueCombinationInEncodedVariant(
3422
3430
  topDownKey,
3423
3431
  encodedVariantExistence || ""