@shopify/hydrogen-react 2024.1.1 → 2024.4.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 (204) 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 +4 -0
  4. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  5. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  6. package/dist/browser-dev/Image.mjs.map +1 -1
  7. package/dist/browser-dev/ModelViewer.mjs +15 -15
  8. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  9. package/dist/browser-dev/Money.mjs.map +1 -1
  10. package/dist/browser-dev/Video.mjs.map +1 -1
  11. package/dist/browser-dev/analytics-constants.mjs +5 -1
  12. package/dist/browser-dev/analytics-constants.mjs.map +1 -1
  13. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +84 -6
  14. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  15. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +1 -1
  16. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  17. package/dist/browser-dev/analytics.mjs +13 -2
  18. package/dist/browser-dev/analytics.mjs.map +1 -1
  19. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  20. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  21. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  22. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  23. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  24. package/dist/browser-dev/storefront-api-constants.mjs +1 -1
  25. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  26. package/dist/browser-dev/storefront-client.mjs +18 -16
  27. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  28. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  29. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  30. package/dist/browser-dev/useShopifyCookies.mjs +1 -1
  31. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -1
  32. package/dist/browser-prod/CartLineProvider.mjs.map +1 -1
  33. package/dist/browser-prod/CartProvider.mjs +4 -0
  34. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  35. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  36. package/dist/browser-prod/Image.mjs.map +1 -1
  37. package/dist/browser-prod/ModelViewer.mjs +15 -15
  38. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  39. package/dist/browser-prod/Money.mjs.map +1 -1
  40. package/dist/browser-prod/Video.mjs.map +1 -1
  41. package/dist/browser-prod/analytics-constants.mjs +5 -1
  42. package/dist/browser-prod/analytics-constants.mjs.map +1 -1
  43. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +84 -6
  44. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  45. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +1 -1
  46. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  47. package/dist/browser-prod/analytics.mjs +13 -2
  48. package/dist/browser-prod/analytics.mjs.map +1 -1
  49. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  50. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  51. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  52. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  53. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  54. package/dist/browser-prod/storefront-api-constants.mjs +1 -1
  55. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  56. package/dist/browser-prod/storefront-client.mjs +16 -16
  57. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  58. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  59. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  60. package/dist/browser-prod/useShopifyCookies.mjs +1 -1
  61. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -1
  62. package/dist/node-dev/CartLineProvider.js.map +1 -1
  63. package/dist/node-dev/CartLineProvider.mjs.map +1 -1
  64. package/dist/node-dev/CartProvider.js +4 -0
  65. package/dist/node-dev/CartProvider.js.map +1 -1
  66. package/dist/node-dev/CartProvider.mjs +4 -0
  67. package/dist/node-dev/CartProvider.mjs.map +1 -1
  68. package/dist/node-dev/ExternalVideo.js.map +1 -1
  69. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  70. package/dist/node-dev/Image.js.map +1 -1
  71. package/dist/node-dev/Image.mjs.map +1 -1
  72. package/dist/node-dev/ModelViewer.js +15 -15
  73. package/dist/node-dev/ModelViewer.js.map +1 -1
  74. package/dist/node-dev/ModelViewer.mjs +15 -15
  75. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  76. package/dist/node-dev/Money.js.map +1 -1
  77. package/dist/node-dev/Money.mjs.map +1 -1
  78. package/dist/node-dev/Video.js.map +1 -1
  79. package/dist/node-dev/Video.mjs.map +1 -1
  80. package/dist/node-dev/analytics-constants.js +5 -1
  81. package/dist/node-dev/analytics-constants.js.map +1 -1
  82. package/dist/node-dev/analytics-constants.mjs +5 -1
  83. package/dist/node-dev/analytics-constants.mjs.map +1 -1
  84. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +83 -5
  85. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  86. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +84 -6
  87. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  88. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +1 -1
  89. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  90. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +1 -1
  91. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  92. package/dist/node-dev/analytics.js +12 -1
  93. package/dist/node-dev/analytics.js.map +1 -1
  94. package/dist/node-dev/analytics.mjs +13 -2
  95. package/dist/node-dev/analytics.mjs.map +1 -1
  96. package/dist/node-dev/codegen.helpers.js.map +1 -1
  97. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  98. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +1 -1
  99. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  100. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  101. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  102. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  103. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  104. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  105. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  106. package/dist/node-dev/storefront-api-constants.js +1 -1
  107. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  108. package/dist/node-dev/storefront-api-constants.mjs +1 -1
  109. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  110. package/dist/node-dev/storefront-client.js +18 -16
  111. package/dist/node-dev/storefront-client.js.map +1 -1
  112. package/dist/node-dev/storefront-client.mjs +18 -16
  113. package/dist/node-dev/storefront-client.mjs.map +1 -1
  114. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  115. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  116. package/dist/node-dev/useCartActions.js.map +1 -1
  117. package/dist/node-dev/useCartActions.mjs.map +1 -1
  118. package/dist/node-dev/useShopifyCookies.js +1 -1
  119. package/dist/node-dev/useShopifyCookies.js.map +1 -1
  120. package/dist/node-dev/useShopifyCookies.mjs +1 -1
  121. package/dist/node-dev/useShopifyCookies.mjs.map +1 -1
  122. package/dist/node-prod/CartLineProvider.js.map +1 -1
  123. package/dist/node-prod/CartLineProvider.mjs.map +1 -1
  124. package/dist/node-prod/CartProvider.js +4 -0
  125. package/dist/node-prod/CartProvider.js.map +1 -1
  126. package/dist/node-prod/CartProvider.mjs +4 -0
  127. package/dist/node-prod/CartProvider.mjs.map +1 -1
  128. package/dist/node-prod/ExternalVideo.js.map +1 -1
  129. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  130. package/dist/node-prod/Image.js.map +1 -1
  131. package/dist/node-prod/Image.mjs.map +1 -1
  132. package/dist/node-prod/ModelViewer.js +15 -15
  133. package/dist/node-prod/ModelViewer.js.map +1 -1
  134. package/dist/node-prod/ModelViewer.mjs +15 -15
  135. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  136. package/dist/node-prod/Money.js.map +1 -1
  137. package/dist/node-prod/Money.mjs.map +1 -1
  138. package/dist/node-prod/Video.js.map +1 -1
  139. package/dist/node-prod/Video.mjs.map +1 -1
  140. package/dist/node-prod/analytics-constants.js +5 -1
  141. package/dist/node-prod/analytics-constants.js.map +1 -1
  142. package/dist/node-prod/analytics-constants.mjs +5 -1
  143. package/dist/node-prod/analytics-constants.mjs.map +1 -1
  144. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +83 -5
  145. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  146. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +84 -6
  147. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  148. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +1 -1
  149. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  150. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +1 -1
  151. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  152. package/dist/node-prod/analytics.js +12 -1
  153. package/dist/node-prod/analytics.js.map +1 -1
  154. package/dist/node-prod/analytics.mjs +13 -2
  155. package/dist/node-prod/analytics.mjs.map +1 -1
  156. package/dist/node-prod/codegen.helpers.js.map +1 -1
  157. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  158. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +1 -1
  159. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  160. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  161. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  162. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  163. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  164. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  165. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  166. package/dist/node-prod/storefront-api-constants.js +1 -1
  167. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  168. package/dist/node-prod/storefront-api-constants.mjs +1 -1
  169. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  170. package/dist/node-prod/storefront-client.js +16 -16
  171. package/dist/node-prod/storefront-client.js.map +1 -1
  172. package/dist/node-prod/storefront-client.mjs +16 -16
  173. package/dist/node-prod/storefront-client.mjs.map +1 -1
  174. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  175. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  176. package/dist/node-prod/useCartActions.js.map +1 -1
  177. package/dist/node-prod/useCartActions.mjs.map +1 -1
  178. package/dist/node-prod/useShopifyCookies.js +1 -1
  179. package/dist/node-prod/useShopifyCookies.js.map +1 -1
  180. package/dist/node-prod/useShopifyCookies.mjs +1 -1
  181. package/dist/node-prod/useShopifyCookies.mjs.map +1 -1
  182. package/dist/types/CartLineProvider.d.ts +1 -1
  183. package/dist/types/CartProvider.d.ts +2 -2
  184. package/dist/types/ExternalVideo.d.ts +1 -1
  185. package/dist/types/Image.d.ts +1 -1
  186. package/dist/types/ModelViewer.d.ts +1 -1
  187. package/dist/types/Money.d.ts +1 -1
  188. package/dist/types/Video.d.ts +1 -1
  189. package/dist/types/analytics-constants.d.ts +11 -5
  190. package/dist/types/analytics-schema-custom-storefront-customer-tracking.d.ts +4 -0
  191. package/dist/types/analytics-types.d.ts +4 -0
  192. package/dist/types/cart-types.d.ts +2 -0
  193. package/dist/types/codegen.helpers.d.ts +2 -2
  194. package/dist/types/storefront-api-constants.d.ts +1 -1
  195. package/dist/types/storefront-api-types.d.ts +395 -25
  196. package/dist/types/storefront-client.d.ts +2 -2
  197. package/dist/types/useCartAPIStateMachine.d.ts +2 -2
  198. package/dist/types/useCartActions.d.ts +2 -2
  199. package/dist/umd/hydrogen-react.dev.js +136 -41
  200. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  201. package/dist/umd/hydrogen-react.prod.js +17 -18
  202. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  203. package/package.json +3 -3
  204. package/storefront.schema.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useShopifyCookies.js","sources":["../../src/useShopifyCookies.tsx"],"sourcesContent":["import {useEffect} from 'react';\nimport {stringify} from 'worktop/cookie';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\nimport {buildUUID, getShopifyCookies} from './cookies-utils.js';\n\nconst longTermLength = 60 * 60 * 24 * 360 * 1; // ~1 year expiry\nconst shortTermLength = 60 * 30; // 30 mins\n\ntype UseShopifyCookiesOptions = {\n /**\n * If set to `false`, Shopify cookies will be removed.\n * If set to `true`, Shopify unique user token cookie will have cookie expiry of 1 year.\n * Defaults to false.\n **/\n hasUserConsent?: boolean;\n /**\n * The domain scope of the cookie. Defaults to empty string.\n **/\n domain?: string;\n};\n\nexport function useShopifyCookies(options?: UseShopifyCookiesOptions): void {\n const {hasUserConsent = false, domain = ''} = options || {};\n useEffect(() => {\n const cookies = getShopifyCookies(document.cookie);\n\n /**\n * Set user and session cookies and refresh the expiry time\n */\n if (hasUserConsent) {\n setCookie(\n SHOPIFY_Y,\n cookies[SHOPIFY_Y] || buildUUID(),\n longTermLength,\n domain,\n );\n setCookie(\n SHOPIFY_S,\n cookies[SHOPIFY_S] || buildUUID(),\n shortTermLength,\n domain,\n );\n } else {\n setCookie(SHOPIFY_Y, '', 0, domain);\n setCookie(SHOPIFY_S, '', 0, domain);\n }\n });\n}\n\nfunction setCookie(\n name: string,\n value: string,\n maxage: number,\n domain: string,\n): void {\n document.cookie = stringify(name, value, {\n maxage,\n domain,\n samesite: 'Lax',\n path: '/',\n });\n}\n"],"names":["useEffect","getShopifyCookies","SHOPIFY_Y","buildUUID","SHOPIFY_S","stringify"],"mappings":";;;;;;AAKA,MAAM,iBAAiB,KAAK,KAAK,KAAK,MAAM;AAC5C,MAAM,kBAAkB,KAAK;AAetB,SAAS,kBAAkB,SAA0C;AAC1E,QAAM,EAAC,iBAAiB,OAAO,SAAS,GAAE,IAAI,WAAW;AACzDA,QAAAA,UAAU,MAAM;AACR,UAAA,UAAUC,aAAAA,kBAAkB,SAAS,MAAM;AAKjD,QAAI,gBAAgB;AAClB;AAAA,QACEC,cAAA;AAAA,QACA,QAAQA,cAAAA,SAAS,KAAKC,uBAAU;AAAA,QAChC;AAAA,QACA;AAAA,MAAA;AAEF;AAAA,QACEC,cAAA;AAAA,QACA,QAAQA,cAAAA,SAAS,KAAKD,uBAAU;AAAA,QAChC;AAAA,QACA;AAAA,MAAA;AAAA,IACF,OACK;AACK,gBAAAD,cAAAA,WAAW,IAAI,GAAG,MAAM;AACxB,gBAAAE,cAAAA,WAAW,IAAI,GAAG,MAAM;AAAA,IACpC;AAAA,EAAA,CACD;AACH;AAEA,SAAS,UACP,MACA,OACA,QACA,QACM;AACG,WAAA,SAASC,iBAAU,MAAM,OAAO;AAAA,IACvC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,MAAM;AAAA,EAAA,CACP;AACH;;"}
1
+ {"version":3,"file":"useShopifyCookies.js","sources":["../../src/useShopifyCookies.tsx"],"sourcesContent":["import {useEffect} from 'react';\nimport {stringify} from 'worktop/cookie';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\nimport {buildUUID, getShopifyCookies} from './cookies-utils.js';\n\nconst longTermLength = 60 * 60 * 24 * 360 * 1; // ~1 year expiry\nconst shortTermLength = 60 * 30; // 30 mins\n\ntype UseShopifyCookiesOptions = {\n /**\n * If set to `false`, Shopify cookies will be removed.\n * If set to `true`, Shopify unique user token cookie will have cookie expiry of 1 year.\n * Defaults to false.\n **/\n hasUserConsent?: boolean;\n /**\n * The domain scope of the cookie. Defaults to empty string.\n **/\n domain?: string;\n};\n\nexport function useShopifyCookies(options?: UseShopifyCookiesOptions): void {\n const {hasUserConsent = false, domain = ''} = options || {};\n useEffect(() => {\n const cookies = getShopifyCookies(document.cookie);\n\n /**\n * Set user and session cookies and refresh the expiry time\n */\n if (hasUserConsent) {\n setCookie(\n SHOPIFY_Y,\n cookies[SHOPIFY_Y] || buildUUID(),\n longTermLength,\n domain,\n );\n setCookie(\n SHOPIFY_S,\n cookies[SHOPIFY_S] || buildUUID(),\n shortTermLength,\n domain,\n );\n } else {\n setCookie(SHOPIFY_Y, '', 0, domain);\n setCookie(SHOPIFY_S, '', 0, domain);\n }\n }, [options, hasUserConsent, domain]);\n}\n\nfunction setCookie(\n name: string,\n value: string,\n maxage: number,\n domain: string,\n): void {\n document.cookie = stringify(name, value, {\n maxage,\n domain,\n samesite: 'Lax',\n path: '/',\n });\n}\n"],"names":["useEffect","getShopifyCookies","SHOPIFY_Y","buildUUID","SHOPIFY_S","stringify"],"mappings":";;;;;;AAKA,MAAM,iBAAiB,KAAK,KAAK,KAAK,MAAM;AAC5C,MAAM,kBAAkB,KAAK;AAetB,SAAS,kBAAkB,SAA0C;AAC1E,QAAM,EAAC,iBAAiB,OAAO,SAAS,GAAE,IAAI,WAAW;AACzDA,QAAAA,UAAU,MAAM;AACR,UAAA,UAAUC,aAAAA,kBAAkB,SAAS,MAAM;AAKjD,QAAI,gBAAgB;AAClB;AAAA,QACEC,cAAA;AAAA,QACA,QAAQA,cAAAA,SAAS,KAAKC,uBAAU;AAAA,QAChC;AAAA,QACA;AAAA,MAAA;AAEF;AAAA,QACEC,cAAA;AAAA,QACA,QAAQA,cAAAA,SAAS,KAAKD,uBAAU;AAAA,QAChC;AAAA,QACA;AAAA,MAAA;AAAA,IACF,OACK;AACK,gBAAAD,cAAAA,WAAW,IAAI,GAAG,MAAM;AACxB,gBAAAE,cAAAA,WAAW,IAAI,GAAG,MAAM;AAAA,IACpC;AAAA,EACC,GAAA,CAAC,SAAS,gBAAgB,MAAM,CAAC;AACtC;AAEA,SAAS,UACP,MACA,OACA,QACA,QACM;AACG,WAAA,SAASC,iBAAU,MAAM,OAAO;AAAA,IACvC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,MAAM;AAAA,EAAA,CACP;AACH;;"}
@@ -25,7 +25,7 @@ function useShopifyCookies(options) {
25
25
  setCookie(SHOPIFY_Y, "", 0, domain);
26
26
  setCookie(SHOPIFY_S, "", 0, domain);
27
27
  }
28
- });
28
+ }, [options, hasUserConsent, domain]);
29
29
  }
30
30
  function setCookie(name, value, maxage, domain) {
31
31
  document.cookie = stringify(name, value, {
@@ -1 +1 @@
1
- {"version":3,"file":"useShopifyCookies.mjs","sources":["../../src/useShopifyCookies.tsx"],"sourcesContent":["import {useEffect} from 'react';\nimport {stringify} from 'worktop/cookie';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\nimport {buildUUID, getShopifyCookies} from './cookies-utils.js';\n\nconst longTermLength = 60 * 60 * 24 * 360 * 1; // ~1 year expiry\nconst shortTermLength = 60 * 30; // 30 mins\n\ntype UseShopifyCookiesOptions = {\n /**\n * If set to `false`, Shopify cookies will be removed.\n * If set to `true`, Shopify unique user token cookie will have cookie expiry of 1 year.\n * Defaults to false.\n **/\n hasUserConsent?: boolean;\n /**\n * The domain scope of the cookie. Defaults to empty string.\n **/\n domain?: string;\n};\n\nexport function useShopifyCookies(options?: UseShopifyCookiesOptions): void {\n const {hasUserConsent = false, domain = ''} = options || {};\n useEffect(() => {\n const cookies = getShopifyCookies(document.cookie);\n\n /**\n * Set user and session cookies and refresh the expiry time\n */\n if (hasUserConsent) {\n setCookie(\n SHOPIFY_Y,\n cookies[SHOPIFY_Y] || buildUUID(),\n longTermLength,\n domain,\n );\n setCookie(\n SHOPIFY_S,\n cookies[SHOPIFY_S] || buildUUID(),\n shortTermLength,\n domain,\n );\n } else {\n setCookie(SHOPIFY_Y, '', 0, domain);\n setCookie(SHOPIFY_S, '', 0, domain);\n }\n });\n}\n\nfunction setCookie(\n name: string,\n value: string,\n maxage: number,\n domain: string,\n): void {\n document.cookie = stringify(name, value, {\n maxage,\n domain,\n samesite: 'Lax',\n path: '/',\n });\n}\n"],"names":[],"mappings":";;;;AAKA,MAAM,iBAAiB,KAAK,KAAK,KAAK,MAAM;AAC5C,MAAM,kBAAkB,KAAK;AAetB,SAAS,kBAAkB,SAA0C;AAC1E,QAAM,EAAC,iBAAiB,OAAO,SAAS,GAAE,IAAI,WAAW;AACzD,YAAU,MAAM;AACR,UAAA,UAAU,kBAAkB,SAAS,MAAM;AAKjD,QAAI,gBAAgB;AAClB;AAAA,QACE;AAAA,QACA,QAAQ,SAAS,KAAK,UAAU;AAAA,QAChC;AAAA,QACA;AAAA,MAAA;AAEF;AAAA,QACE;AAAA,QACA,QAAQ,SAAS,KAAK,UAAU;AAAA,QAChC;AAAA,QACA;AAAA,MAAA;AAAA,IACF,OACK;AACK,gBAAA,WAAW,IAAI,GAAG,MAAM;AACxB,gBAAA,WAAW,IAAI,GAAG,MAAM;AAAA,IACpC;AAAA,EAAA,CACD;AACH;AAEA,SAAS,UACP,MACA,OACA,QACA,QACM;AACG,WAAA,SAAS,UAAU,MAAM,OAAO;AAAA,IACvC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,MAAM;AAAA,EAAA,CACP;AACH;"}
1
+ {"version":3,"file":"useShopifyCookies.mjs","sources":["../../src/useShopifyCookies.tsx"],"sourcesContent":["import {useEffect} from 'react';\nimport {stringify} from 'worktop/cookie';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\nimport {buildUUID, getShopifyCookies} from './cookies-utils.js';\n\nconst longTermLength = 60 * 60 * 24 * 360 * 1; // ~1 year expiry\nconst shortTermLength = 60 * 30; // 30 mins\n\ntype UseShopifyCookiesOptions = {\n /**\n * If set to `false`, Shopify cookies will be removed.\n * If set to `true`, Shopify unique user token cookie will have cookie expiry of 1 year.\n * Defaults to false.\n **/\n hasUserConsent?: boolean;\n /**\n * The domain scope of the cookie. Defaults to empty string.\n **/\n domain?: string;\n};\n\nexport function useShopifyCookies(options?: UseShopifyCookiesOptions): void {\n const {hasUserConsent = false, domain = ''} = options || {};\n useEffect(() => {\n const cookies = getShopifyCookies(document.cookie);\n\n /**\n * Set user and session cookies and refresh the expiry time\n */\n if (hasUserConsent) {\n setCookie(\n SHOPIFY_Y,\n cookies[SHOPIFY_Y] || buildUUID(),\n longTermLength,\n domain,\n );\n setCookie(\n SHOPIFY_S,\n cookies[SHOPIFY_S] || buildUUID(),\n shortTermLength,\n domain,\n );\n } else {\n setCookie(SHOPIFY_Y, '', 0, domain);\n setCookie(SHOPIFY_S, '', 0, domain);\n }\n }, [options, hasUserConsent, domain]);\n}\n\nfunction setCookie(\n name: string,\n value: string,\n maxage: number,\n domain: string,\n): void {\n document.cookie = stringify(name, value, {\n maxage,\n domain,\n samesite: 'Lax',\n path: '/',\n });\n}\n"],"names":[],"mappings":";;;;AAKA,MAAM,iBAAiB,KAAK,KAAK,KAAK,MAAM;AAC5C,MAAM,kBAAkB,KAAK;AAetB,SAAS,kBAAkB,SAA0C;AAC1E,QAAM,EAAC,iBAAiB,OAAO,SAAS,GAAE,IAAI,WAAW;AACzD,YAAU,MAAM;AACR,UAAA,UAAU,kBAAkB,SAAS,MAAM;AAKjD,QAAI,gBAAgB;AAClB;AAAA,QACE;AAAA,QACA,QAAQ,SAAS,KAAK,UAAU;AAAA,QAChC;AAAA,QACA;AAAA,MAAA;AAEF;AAAA,QACE;AAAA,QACA,QAAQ,SAAS,KAAK,UAAU;AAAA,QAChC;AAAA,QACA;AAAA,MAAA;AAAA,IACF,OACK;AACK,gBAAA,WAAW,IAAI,GAAG,MAAM;AACxB,gBAAA,WAAW,IAAI,GAAG,MAAM;AAAA,IACpC;AAAA,EACC,GAAA,CAAC,SAAS,gBAAgB,MAAM,CAAC;AACtC;AAEA,SAAS,UACP,MACA,OACA,QACA,QACM;AACG,WAAA,SAAS,UAAU,MAAM,OAAO;AAAA,IACvC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,MAAM;AAAA,EAAA,CACP;AACH;"}
@@ -6,7 +6,7 @@ type CartLinePartialDeep = PartialDeep<CartLine | ComponentizableCartLine, {
6
6
  }>;
7
7
  export declare const CartLineContext: import("react").Context<CartLinePartialDeep | null>;
8
8
  /**
9
- * The `useCartLine` hook provides access to the [CartLine object](https://shopify.dev/api/storefront/unstable/objects/cartline) from the Storefront API. It must be a descendent of a `CartProvider` component.
9
+ * The `useCartLine` hook provides access to the [CartLine object](https://shopify.dev/api/storefront/2024-04/objects/cartline) from the Storefront API. It must be a descendent of a `CartProvider` component.
10
10
  */
11
11
  export declare function useCartLine(): CartLinePartialDeep;
12
12
  type CartLineProviderProps = {
@@ -43,11 +43,11 @@ type CartProviderProps = {
43
43
  onAttributesUpdateComplete?: () => void;
44
44
  /** A callback that is invoked when the process to update the cart discount codes completes */
45
45
  onDiscountCodesUpdateComplete?: () => void;
46
- /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/2024-01/objects/cart). */
46
+ /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/2024-04/objects/cart). */
47
47
  data?: PartialDeep<CartType, {
48
48
  recurseIntoArrays: true;
49
49
  }>;
50
- /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2024-01/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
50
+ /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2024-04/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
51
51
  cartFragment?: string;
52
52
  /** A customer access token that's accessible on the server if there's a customer login. */
53
53
  customerAccessToken?: CartBuyerIdentityInput['customerAccessToken'];
@@ -1,7 +1,7 @@
1
1
  import type { ExternalVideo as ExternalVideoType } from './storefront-api-types.js';
2
2
  import type { PartialDeep } from 'type-fest';
3
3
  import { IframeHTMLAttributes } from 'react';
4
- interface ExternalVideoBaseProps {
4
+ export interface ExternalVideoBaseProps {
5
5
  /**
6
6
  * An object with fields that correspond to the Storefront API's [ExternalVideo object](https://shopify.dev/api/storefront/reference/products/externalvideo).
7
7
  */
@@ -42,7 +42,7 @@ type HydrogenImageBaseProps = {
42
42
  * @defaultValue `center`
43
43
  */
44
44
  crop?: Crop;
45
- /** Data mapping to the [Storefront API `Image`](https://shopify.dev/docs/api/storefront/2024-01/objects/Image) object. Must be an Image object.
45
+ /** Data mapping to the [Storefront API `Image`](https://shopify.dev/docs/api/storefront/2024-04/objects/Image) object. Must be an Image object.
46
46
  *
47
47
  * @example
48
48
  * ```
@@ -14,7 +14,7 @@ type ModelViewerProps = Omit<PartialDeep<JSX.IntrinsicElements['model-viewer'],
14
14
  recurseIntoArrays: true;
15
15
  }>, 'src'> & ModelViewerBaseProps;
16
16
  type ModelViewerBaseProps = {
17
- /** An object with fields that correspond to the Storefront API's [Model3D object](https://shopify.dev/api/storefront/2024-01/objects/model3d). */
17
+ /** An object with fields that correspond to the Storefront API's [Model3D object](https://shopify.dev/api/storefront/2024-04/objects/model3d). */
18
18
  data: PartialDeep<Model3d, {
19
19
  recurseIntoArrays: true;
20
20
  }>;
@@ -12,7 +12,7 @@ export interface MoneyPropsBase<ComponentGeneric extends React.ElementType> {
12
12
  withoutCurrency?: boolean;
13
13
  /** Whether to remove trailing zeros (fractional money) from the output. */
14
14
  withoutTrailingZeros?: boolean;
15
- /** A [UnitPriceMeasurement object](https://shopify.dev/api/storefront/2024-01/objects/unitpricemeasurement). */
15
+ /** A [UnitPriceMeasurement object](https://shopify.dev/api/storefront/2024-04/objects/unitpricemeasurement). */
16
16
  measurement?: PartialDeep<UnitPriceMeasurement, {
17
17
  recurseIntoArrays: true;
18
18
  }>;
@@ -3,7 +3,7 @@ import { shopifyLoader } from './Image.js';
3
3
  import type { Video as VideoType } from './storefront-api-types.js';
4
4
  import type { PartialDeep } from 'type-fest';
5
5
  export interface VideoProps {
6
- /** An object with fields that correspond to the Storefront API's [Video object](https://shopify.dev/api/storefront/2024-01/objects/video). */
6
+ /** An object with fields that correspond to the Storefront API's [Video object](https://shopify.dev/api/storefront/2024-04/objects/video). */
7
7
  data: PartialDeep<VideoType, {
8
8
  recurseIntoArrays: true;
9
9
  }>;
@@ -1,4 +1,11 @@
1
- export declare const AnalyticsEventName: AnalyticsEventName;
1
+ export declare const AnalyticsEventName: {
2
+ readonly PAGE_VIEW: "PAGE_VIEW";
3
+ readonly ADD_TO_CART: "ADD_TO_CART";
4
+ readonly PAGE_VIEW_2: "PAGE_VIEW_2";
5
+ readonly COLLECTION_VIEW: "COLLECTION_VIEW";
6
+ readonly PRODUCT_VIEW: "PRODUCT_VIEW";
7
+ readonly SEARCH_VIEW: "SEARCH_VIEW";
8
+ };
2
9
  export declare const AnalyticsPageType: AnalyticsPageType;
3
10
  export declare const ShopifySalesChannel: ShopifySalesChannel;
4
11
  export declare const ShopifyAppId: {
@@ -9,13 +16,13 @@ export declare const ShopifyAppId: {
9
16
  * These duplicated interface declaration is so that we can generate proper documentation
10
17
  * for these public facing constants
11
18
  */
12
- interface AnalyticsEventName {
19
+ export interface AnalyticsEventName {
13
20
  /** Page view */
14
21
  PAGE_VIEW: 'PAGE_VIEW';
15
22
  /** Add to cart */
16
23
  ADD_TO_CART: 'ADD_TO_CART';
17
24
  }
18
- interface AnalyticsPageType {
25
+ export interface AnalyticsPageType {
19
26
  article: 'article';
20
27
  blog: 'blog';
21
28
  captcha: 'captcha';
@@ -39,10 +46,9 @@ interface AnalyticsPageType {
39
46
  policy: 'policy';
40
47
  search: 'search';
41
48
  }
42
- interface ShopifySalesChannel {
49
+ export interface ShopifySalesChannel {
43
50
  /** Shopify Hydrogen sales channel */
44
51
  hydrogen: 'hydrogen';
45
52
  /** Shopify Headless sales channel */
46
53
  headless: 'headless';
47
54
  }
48
- export {};
@@ -1,3 +1,7 @@
1
1
  import { ShopifyPageViewPayload, ShopifyAddToCartPayload, ShopifyMonorailEvent } from './analytics-types.js';
2
2
  export declare function pageView(payload: ShopifyPageViewPayload): ShopifyMonorailEvent[];
3
+ export declare function pageView2(payload: ShopifyPageViewPayload): ShopifyMonorailEvent[];
4
+ export declare function collectionView(payload: ShopifyPageViewPayload): ShopifyMonorailEvent[];
5
+ export declare function productView(payload: ShopifyPageViewPayload): ShopifyMonorailEvent[];
6
+ export declare function searchView(payload: ShopifyPageViewPayload): ShopifyMonorailEvent[];
3
7
  export declare function addToCart(payload: ShopifyAddToCartPayload): ShopifyMonorailEvent[];
@@ -102,6 +102,10 @@ type ShopifyAnalyticsBase = {
102
102
  totalValue?: number;
103
103
  /** Product list. */
104
104
  products?: ShopifyAnalyticsProduct[];
105
+ /** Result of customerPrivacyApi.saleOfDataNotAllowed() */
106
+ ccpaEnforced?: boolean;
107
+ /** Result of customerPrivacyApi.notMarketingOrAnalyticsAllowed() */
108
+ gdprEnforced?: boolean;
105
109
  };
106
110
  export type ShopifySalesChannels = keyof typeof ShopifySalesChannel;
107
111
  export type AnalyticsEventNames = keyof typeof AnalyticsEventName;
@@ -47,6 +47,8 @@ interface CartActions {
47
47
  totalQuantity?: number;
48
48
  /** The fragment used to query the cart object for all queries and mutations. */
49
49
  cartFragment: string;
50
+ /** A boolean indicating if the cart is ready to be interacted with. */
51
+ cartReady?: boolean;
50
52
  }
51
53
  export type Cart = PartialDeep<CartBase, {
52
54
  recurseIntoArrays: true;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly.
3
- * Reference for the GraphQL types: https://shopify.dev/docs/api/storefront/2024-01/scalars/HTML
3
+ * Reference for the GraphQL types: https://shopify.dev/docs/api/storefront/2024-04/scalars/HTML
4
4
  * Note: JSON is generated as 'unknown' by default.
5
5
  */
6
6
  export declare const storefrontApiCustomScalars: {
@@ -13,7 +13,7 @@ export declare const storefrontApiCustomScalars: {
13
13
  };
14
14
  /**
15
15
  * Meant to be used with GraphQL CodeGen to type the Storefront API's custom scalars correctly.
16
- * Reference for the GraphQL types: https://shopify.dev/docs/api/customer/2024-01/scalars/HTML
16
+ * Reference for the GraphQL types: https://shopify.dev/docs/api/customer/2024-04/scalars/HTML
17
17
  * Note: JSON is generated as 'unknown' by default.
18
18
  */
19
19
  export declare const customerAccountApiCustomScalars: {
@@ -1 +1 @@
1
- export declare const SFAPI_VERSION = "2024-01";
1
+ export declare const SFAPI_VERSION = "2024-04";