@shopify/hydrogen-react 0.0.0-next-ea3959b → 0.0.0-next-dada720

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 (291) hide show
  1. package/README.md +21 -21
  2. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  3. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  4. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  5. package/dist/browser-dev/CartCost.mjs +25 -0
  6. package/dist/browser-dev/CartCost.mjs.map +1 -0
  7. package/dist/browser-dev/CartLinePrice.mjs +18 -0
  8. package/dist/browser-dev/CartLinePrice.mjs.map +1 -0
  9. package/dist/browser-dev/CartLineProvider.mjs +19 -0
  10. package/dist/browser-dev/CartLineProvider.mjs.map +1 -0
  11. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  12. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  13. package/dist/browser-dev/Image.mjs.map +1 -1
  14. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  15. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  16. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  17. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  18. package/dist/browser-dev/ShopPayButton.mjs +10 -10
  19. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  20. package/dist/browser-dev/ShopifyProvider.mjs +9 -21
  21. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  22. package/dist/browser-dev/analytics-constants.mjs +43 -0
  23. package/dist/browser-dev/analytics-constants.mjs.map +1 -0
  24. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  25. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  26. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  27. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  28. package/dist/browser-dev/analytics-utils.mjs +49 -0
  29. package/dist/browser-dev/analytics-utils.mjs.map +1 -0
  30. package/dist/browser-dev/analytics.mjs +159 -0
  31. package/dist/browser-dev/analytics.mjs.map +1 -0
  32. package/dist/browser-dev/cart-hooks.mjs +5 -7
  33. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  34. package/dist/browser-dev/cookies-utils.mjs +50 -0
  35. package/dist/browser-dev/cookies-utils.mjs.map +1 -0
  36. package/dist/browser-dev/index.mjs +20 -2
  37. package/dist/browser-dev/index.mjs.map +1 -1
  38. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  39. package/dist/browser-dev/storefront-client.mjs +13 -12
  40. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  41. package/dist/browser-dev/useMoney.mjs +2 -1
  42. package/dist/browser-dev/useMoney.mjs.map +1 -1
  43. package/dist/browser-dev/useShopifyCookies.mjs +41 -0
  44. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -0
  45. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  46. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  47. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  48. package/dist/browser-prod/CartCost.mjs +25 -0
  49. package/dist/browser-prod/CartCost.mjs.map +1 -0
  50. package/dist/browser-prod/CartLinePrice.mjs +18 -0
  51. package/dist/browser-prod/CartLinePrice.mjs.map +1 -0
  52. package/dist/browser-prod/CartLineProvider.mjs +19 -0
  53. package/dist/browser-prod/CartLineProvider.mjs.map +1 -0
  54. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  55. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  56. package/dist/browser-prod/Image.mjs.map +1 -1
  57. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  58. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  59. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  60. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  61. package/dist/browser-prod/ShopPayButton.mjs +10 -10
  62. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  63. package/dist/browser-prod/ShopifyProvider.mjs +9 -16
  64. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  65. package/dist/browser-prod/analytics-constants.mjs +43 -0
  66. package/dist/browser-prod/analytics-constants.mjs.map +1 -0
  67. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  68. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  69. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  70. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  71. package/dist/browser-prod/analytics-utils.mjs +49 -0
  72. package/dist/browser-prod/analytics-utils.mjs.map +1 -0
  73. package/dist/browser-prod/analytics.mjs +158 -0
  74. package/dist/browser-prod/analytics.mjs.map +1 -0
  75. package/dist/browser-prod/cart-hooks.mjs +5 -7
  76. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  77. package/dist/browser-prod/cookies-utils.mjs +50 -0
  78. package/dist/browser-prod/cookies-utils.mjs.map +1 -0
  79. package/dist/browser-prod/index.mjs +20 -2
  80. package/dist/browser-prod/index.mjs.map +1 -1
  81. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  82. package/dist/browser-prod/storefront-client.mjs +13 -12
  83. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  84. package/dist/browser-prod/useMoney.mjs +2 -1
  85. package/dist/browser-prod/useMoney.mjs.map +1 -1
  86. package/dist/browser-prod/useShopifyCookies.mjs +41 -0
  87. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -0
  88. package/dist/node-dev/AddToCartButton.js.map +1 -1
  89. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  90. package/dist/node-dev/BuyNowButton.js.map +1 -1
  91. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  92. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  93. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  94. package/dist/node-dev/CartCost.js +25 -0
  95. package/dist/node-dev/CartCost.js.map +1 -0
  96. package/dist/node-dev/CartCost.mjs +25 -0
  97. package/dist/node-dev/CartCost.mjs.map +1 -0
  98. package/dist/node-dev/CartLinePrice.js +18 -0
  99. package/dist/node-dev/CartLinePrice.js.map +1 -0
  100. package/dist/node-dev/CartLinePrice.mjs +18 -0
  101. package/dist/node-dev/CartLinePrice.mjs.map +1 -0
  102. package/dist/node-dev/CartLineProvider.js +19 -0
  103. package/dist/node-dev/CartLineProvider.js.map +1 -0
  104. package/dist/node-dev/CartLineProvider.mjs +19 -0
  105. package/dist/node-dev/CartLineProvider.mjs.map +1 -0
  106. package/dist/node-dev/CartProvider.js.map +1 -1
  107. package/dist/node-dev/CartProvider.mjs.map +1 -1
  108. package/dist/node-dev/ExternalVideo.js.map +1 -1
  109. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  110. package/dist/node-dev/Image.js.map +1 -1
  111. package/dist/node-dev/Image.mjs.map +1 -1
  112. package/dist/node-dev/MediaFile.js.map +1 -1
  113. package/dist/node-dev/MediaFile.mjs.map +1 -1
  114. package/dist/node-dev/ModelViewer.js.map +1 -1
  115. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  116. package/dist/node-dev/ProductPrice.js.map +1 -1
  117. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  118. package/dist/node-dev/ProductProvider.js.map +1 -1
  119. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  120. package/dist/node-dev/ShopPayButton.js +9 -9
  121. package/dist/node-dev/ShopPayButton.js.map +1 -1
  122. package/dist/node-dev/ShopPayButton.mjs +10 -10
  123. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  124. package/dist/node-dev/ShopifyProvider.js +9 -21
  125. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  126. package/dist/node-dev/ShopifyProvider.mjs +9 -21
  127. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  128. package/dist/node-dev/analytics-constants.js +43 -0
  129. package/dist/node-dev/analytics-constants.js.map +1 -0
  130. package/dist/node-dev/analytics-constants.mjs +43 -0
  131. package/dist/node-dev/analytics-constants.mjs.map +1 -0
  132. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  133. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  134. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  135. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  136. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +58 -0
  137. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  138. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  139. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  140. package/dist/node-dev/analytics-utils.js +49 -0
  141. package/dist/node-dev/analytics-utils.js.map +1 -0
  142. package/dist/node-dev/analytics-utils.mjs +49 -0
  143. package/dist/node-dev/analytics-utils.mjs.map +1 -0
  144. package/dist/node-dev/analytics.js +159 -0
  145. package/dist/node-dev/analytics.js.map +1 -0
  146. package/dist/node-dev/analytics.mjs +159 -0
  147. package/dist/node-dev/analytics.mjs.map +1 -0
  148. package/dist/node-dev/cart-hooks.js +4 -6
  149. package/dist/node-dev/cart-hooks.js.map +1 -1
  150. package/dist/node-dev/cart-hooks.mjs +5 -7
  151. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  152. package/dist/node-dev/cookies-utils.js +50 -0
  153. package/dist/node-dev/cookies-utils.js.map +1 -0
  154. package/dist/node-dev/cookies-utils.mjs +50 -0
  155. package/dist/node-dev/cookies-utils.mjs.map +1 -0
  156. package/dist/node-dev/index.js +20 -2
  157. package/dist/node-dev/index.js.map +1 -1
  158. package/dist/node-dev/index.mjs +20 -2
  159. package/dist/node-dev/index.mjs.map +1 -1
  160. package/dist/node-dev/parse-metafield.js.map +1 -1
  161. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  162. package/dist/node-dev/storefront-client.js +13 -12
  163. package/dist/node-dev/storefront-client.js.map +1 -1
  164. package/dist/node-dev/storefront-client.mjs +13 -12
  165. package/dist/node-dev/storefront-client.mjs.map +1 -1
  166. package/dist/node-dev/useMoney.js +2 -1
  167. package/dist/node-dev/useMoney.js.map +1 -1
  168. package/dist/node-dev/useMoney.mjs +2 -1
  169. package/dist/node-dev/useMoney.mjs.map +1 -1
  170. package/dist/node-dev/useShopifyCookies.js +41 -0
  171. package/dist/node-dev/useShopifyCookies.js.map +1 -0
  172. package/dist/node-dev/useShopifyCookies.mjs +41 -0
  173. package/dist/node-dev/useShopifyCookies.mjs.map +1 -0
  174. package/dist/node-prod/AddToCartButton.js.map +1 -1
  175. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  176. package/dist/node-prod/BuyNowButton.js.map +1 -1
  177. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  178. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  179. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  180. package/dist/node-prod/CartCost.js +25 -0
  181. package/dist/node-prod/CartCost.js.map +1 -0
  182. package/dist/node-prod/CartCost.mjs +25 -0
  183. package/dist/node-prod/CartCost.mjs.map +1 -0
  184. package/dist/node-prod/CartLinePrice.js +18 -0
  185. package/dist/node-prod/CartLinePrice.js.map +1 -0
  186. package/dist/node-prod/CartLinePrice.mjs +18 -0
  187. package/dist/node-prod/CartLinePrice.mjs.map +1 -0
  188. package/dist/node-prod/CartLineProvider.js +19 -0
  189. package/dist/node-prod/CartLineProvider.js.map +1 -0
  190. package/dist/node-prod/CartLineProvider.mjs +19 -0
  191. package/dist/node-prod/CartLineProvider.mjs.map +1 -0
  192. package/dist/node-prod/CartProvider.js.map +1 -1
  193. package/dist/node-prod/CartProvider.mjs.map +1 -1
  194. package/dist/node-prod/ExternalVideo.js.map +1 -1
  195. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  196. package/dist/node-prod/Image.js.map +1 -1
  197. package/dist/node-prod/Image.mjs.map +1 -1
  198. package/dist/node-prod/MediaFile.js.map +1 -1
  199. package/dist/node-prod/MediaFile.mjs.map +1 -1
  200. package/dist/node-prod/ModelViewer.js.map +1 -1
  201. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  202. package/dist/node-prod/ProductPrice.js.map +1 -1
  203. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  204. package/dist/node-prod/ProductProvider.js.map +1 -1
  205. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  206. package/dist/node-prod/ShopPayButton.js +9 -9
  207. package/dist/node-prod/ShopPayButton.js.map +1 -1
  208. package/dist/node-prod/ShopPayButton.mjs +10 -10
  209. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  210. package/dist/node-prod/ShopifyProvider.js +9 -16
  211. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  212. package/dist/node-prod/ShopifyProvider.mjs +9 -16
  213. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  214. package/dist/node-prod/analytics-constants.js +43 -0
  215. package/dist/node-prod/analytics-constants.js.map +1 -0
  216. package/dist/node-prod/analytics-constants.mjs +43 -0
  217. package/dist/node-prod/analytics-constants.mjs.map +1 -0
  218. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  219. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  220. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  221. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  222. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +58 -0
  223. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  224. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  225. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  226. package/dist/node-prod/analytics-utils.js +49 -0
  227. package/dist/node-prod/analytics-utils.js.map +1 -0
  228. package/dist/node-prod/analytics-utils.mjs +49 -0
  229. package/dist/node-prod/analytics-utils.mjs.map +1 -0
  230. package/dist/node-prod/analytics.js +158 -0
  231. package/dist/node-prod/analytics.js.map +1 -0
  232. package/dist/node-prod/analytics.mjs +158 -0
  233. package/dist/node-prod/analytics.mjs.map +1 -0
  234. package/dist/node-prod/cart-hooks.js +4 -6
  235. package/dist/node-prod/cart-hooks.js.map +1 -1
  236. package/dist/node-prod/cart-hooks.mjs +5 -7
  237. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  238. package/dist/node-prod/cookies-utils.js +50 -0
  239. package/dist/node-prod/cookies-utils.js.map +1 -0
  240. package/dist/node-prod/cookies-utils.mjs +50 -0
  241. package/dist/node-prod/cookies-utils.mjs.map +1 -0
  242. package/dist/node-prod/index.js +20 -2
  243. package/dist/node-prod/index.js.map +1 -1
  244. package/dist/node-prod/index.mjs +20 -2
  245. package/dist/node-prod/index.mjs.map +1 -1
  246. package/dist/node-prod/parse-metafield.js.map +1 -1
  247. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  248. package/dist/node-prod/storefront-client.js +13 -12
  249. package/dist/node-prod/storefront-client.js.map +1 -1
  250. package/dist/node-prod/storefront-client.mjs +13 -12
  251. package/dist/node-prod/storefront-client.mjs.map +1 -1
  252. package/dist/node-prod/useMoney.js +2 -1
  253. package/dist/node-prod/useMoney.js.map +1 -1
  254. package/dist/node-prod/useMoney.mjs +2 -1
  255. package/dist/node-prod/useMoney.mjs.map +1 -1
  256. package/dist/node-prod/useShopifyCookies.js +41 -0
  257. package/dist/node-prod/useShopifyCookies.js.map +1 -0
  258. package/dist/node-prod/useShopifyCookies.mjs +41 -0
  259. package/dist/node-prod/useShopifyCookies.mjs.map +1 -0
  260. package/dist/types/AddToCartButton.d.ts +3 -2
  261. package/dist/types/BuyNowButton.d.ts +7 -3
  262. package/dist/types/CartCheckoutButton.d.ts +6 -5
  263. package/dist/types/CartCost.d.ts +7 -5
  264. package/dist/types/CartLinePrice.d.ts +4 -4
  265. package/dist/types/CartLineProvider.d.ts +8 -6
  266. package/dist/types/CartProvider.d.ts +12 -2
  267. package/dist/types/ExternalVideo.d.ts +1 -2
  268. package/dist/types/Image.d.ts +5 -3
  269. package/dist/types/MediaFile.d.ts +12 -11
  270. package/dist/types/ModelViewer.d.ts +2 -2
  271. package/dist/types/ProductPrice.d.ts +1 -1
  272. package/dist/types/ProductProvider.d.ts +1 -1
  273. package/dist/types/ShopPayButton.d.ts +10 -10
  274. package/dist/types/ShopifyProvider.d.ts +35 -39
  275. package/dist/types/analytics-constants.d.ts +48 -0
  276. package/dist/types/analytics-schema-custom-storefront-customer-tracking.d.ts +3 -0
  277. package/dist/types/analytics-schema-trekkie-storefront-page-view.d.ts +2 -0
  278. package/dist/types/analytics-types.d.ts +108 -0
  279. package/dist/types/analytics-utils.d.ts +36 -0
  280. package/dist/types/analytics.d.ts +9 -0
  281. package/dist/types/cookies-utils.d.ts +4 -0
  282. package/dist/types/index.d.cts +11 -3
  283. package/dist/types/index.d.ts +11 -3
  284. package/dist/types/parse-metafield.d.ts +1 -3
  285. package/dist/types/storefront-client.d.ts +14 -14
  286. package/dist/types/useShopifyCookies.d.ts +14 -0
  287. package/dist/umd/hydrogen-react.dev.js +704 -172
  288. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  289. package/dist/umd/hydrogen-react.prod.js +18 -16
  290. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  291. package/package.json +12 -7
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const cartConstants = require("./cart-constants.js");
4
+ const analyticsConstants = require("./analytics-constants.js");
5
+ const analyticsUtils = require("./analytics-utils.js");
6
+ const cookiesUtils = require("./cookies-utils.js");
7
+ const analyticsSchemaTrekkieStorefrontPageView = require("./analytics-schema-trekkie-storefront-page-view.js");
8
+ const analyticsSchemaCustomStorefrontCustomerTracking = require("./analytics-schema-custom-storefront-customer-tracking.js");
9
+ function sendShopifyAnalytics(event, shopDomain) {
10
+ const { eventName, payload } = event;
11
+ if (!payload.hasUserConsent)
12
+ return Promise.resolve();
13
+ let events = [];
14
+ if (eventName === analyticsConstants.AnalyticsEventName.PAGE_VIEW) {
15
+ const pageViewPayload = payload;
16
+ events = events.concat(
17
+ analyticsSchemaTrekkieStorefrontPageView.pageView(pageViewPayload),
18
+ analyticsSchemaCustomStorefrontCustomerTracking.pageView(pageViewPayload)
19
+ );
20
+ } else if (eventName === analyticsConstants.AnalyticsEventName.ADD_TO_CART) {
21
+ events = events.concat(
22
+ analyticsSchemaCustomStorefrontCustomerTracking.addToCart(payload)
23
+ );
24
+ }
25
+ if (events.length) {
26
+ return sendToShopify(events, shopDomain);
27
+ } else {
28
+ return Promise.resolve();
29
+ }
30
+ }
31
+ const ERROR_MESSAGE = "sendShopifyAnalytics request is unsuccessful";
32
+ function sendToShopify(events, shopDomain) {
33
+ const eventsToBeSent = {
34
+ events,
35
+ metadata: {
36
+ event_sent_at_ms: Date.now()
37
+ }
38
+ };
39
+ try {
40
+ return fetch(
41
+ shopDomain ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch` : "https://monorail-edge.shopifysvc.com/unstable/produce_batch",
42
+ {
43
+ method: "post",
44
+ headers: {
45
+ "content-type": "text/plain"
46
+ },
47
+ body: JSON.stringify(eventsToBeSent)
48
+ }
49
+ ).then((response) => {
50
+ if (!response.ok) {
51
+ throw new Error("Response failed");
52
+ }
53
+ return response.text();
54
+ }).then((data) => {
55
+ if (data) {
56
+ const jsonResponse = JSON.parse(data);
57
+ jsonResponse.result.forEach((eventResponse) => {
58
+ if (eventResponse.status !== 200) {
59
+ console.error(ERROR_MESSAGE, "\n\n", eventResponse.message);
60
+ }
61
+ });
62
+ }
63
+ }).catch((err) => {
64
+ console.error(ERROR_MESSAGE, err);
65
+ if (true) {
66
+ throw new Error(ERROR_MESSAGE);
67
+ }
68
+ });
69
+ } catch (error) {
70
+ return Promise.resolve();
71
+ }
72
+ }
73
+ function getClientBrowserParameters() {
74
+ if (analyticsUtils.errorIfServer("getClientBrowserParameters")) {
75
+ return {
76
+ uniqueToken: "",
77
+ visitToken: "",
78
+ url: "",
79
+ path: "",
80
+ search: "",
81
+ referrer: "",
82
+ title: "",
83
+ userAgent: "",
84
+ navigationType: "",
85
+ navigationApi: ""
86
+ };
87
+ }
88
+ const [navigationType, navigationApi] = getNavigationType();
89
+ const cookies = cookiesUtils.getShopifyCookies(document.cookie);
90
+ return {
91
+ uniqueToken: cookies[cartConstants.SHOPIFY_Y],
92
+ visitToken: cookies[cartConstants.SHOPIFY_S],
93
+ url: location.href,
94
+ path: location.pathname,
95
+ search: location.search,
96
+ referrer: document.referrer,
97
+ title: document.title,
98
+ userAgent: navigator.userAgent,
99
+ navigationType,
100
+ navigationApi
101
+ };
102
+ }
103
+ function getNavigationTypeExperimental() {
104
+ try {
105
+ const navigationEntries = (performance == null ? void 0 : performance.getEntriesByType) && (performance == null ? void 0 : performance.getEntriesByType("navigation"));
106
+ if (navigationEntries && navigationEntries[0]) {
107
+ const rawType = window.performance.getEntriesByType(
108
+ "navigation"
109
+ )[0]["type"];
110
+ const navType = rawType && rawType.toString();
111
+ return navType;
112
+ }
113
+ } catch (err) {
114
+ }
115
+ return void 0;
116
+ }
117
+ function getNavigationTypeLegacy() {
118
+ var _a, _b;
119
+ try {
120
+ if (PerformanceNavigation && ((_a = performance == null ? void 0 : performance.navigation) == null ? void 0 : _a.type) !== null && ((_b = performance == null ? void 0 : performance.navigation) == null ? void 0 : _b.type) !== void 0) {
121
+ const rawType = performance.navigation.type;
122
+ switch (rawType) {
123
+ case PerformanceNavigation.TYPE_NAVIGATE:
124
+ return "navigate";
125
+ break;
126
+ case PerformanceNavigation.TYPE_RELOAD:
127
+ return "reload";
128
+ break;
129
+ case PerformanceNavigation.TYPE_BACK_FORWARD:
130
+ return "back_forward";
131
+ break;
132
+ default:
133
+ return `unknown: ${rawType}`;
134
+ }
135
+ }
136
+ } catch (err) {
137
+ }
138
+ return void 0;
139
+ }
140
+ function getNavigationType() {
141
+ try {
142
+ let navApi = "PerformanceNavigationTiming";
143
+ let navType = getNavigationTypeExperimental();
144
+ if (!navType) {
145
+ navType = getNavigationTypeLegacy();
146
+ navApi = "performance.navigation";
147
+ }
148
+ if (navType) {
149
+ return [navType, navApi];
150
+ } else {
151
+ return ["unknown", "unknown"];
152
+ }
153
+ } catch (err) {
154
+ }
155
+ return ["error", "error"];
156
+ }
157
+ exports.getClientBrowserParameters = getClientBrowserParameters;
158
+ exports.sendShopifyAnalytics = sendShopifyAnalytics;
159
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sources":["../../src/analytics.ts"],"sourcesContent":["import {SHOPIFY_S, SHOPIFY_Y} from './cart-constants.js';\nimport type {\n ClientBrowserParameters,\n ShopifyAddToCartPayload,\n ShopifyAnalytics,\n ShopifyPageViewPayload,\n ShopifyMonorailEvent,\n} from './analytics-types.js';\nimport {AnalyticsEventName} from './analytics-constants.js';\nimport {errorIfServer} from './analytics-utils.js';\nimport {getShopifyCookies} from './cookies-utils.js';\n\nimport {pageView as trekkiePageView} from './analytics-schema-trekkie-storefront-page-view.js';\nimport {\n pageView as customerPageView,\n addToCart as customerAddToCart,\n} from './analytics-schema-custom-storefront-customer-tracking.js';\n\n/**\n * Set user and session cookies and refresh the expiry time\n * @param event - The analytics event.\n * @param shopDomain - The Online Store domain to sent Shopify analytics under the same\n * top level domain.\n */\nexport function sendShopifyAnalytics(\n event: ShopifyAnalytics,\n shopDomain?: string\n): Promise<void> {\n const {eventName, payload} = event;\n if (!payload.hasUserConsent) return Promise.resolve();\n\n let events: ShopifyMonorailEvent[] = [];\n\n if (eventName === AnalyticsEventName.PAGE_VIEW) {\n const pageViewPayload = payload as ShopifyPageViewPayload;\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView(pageViewPayload)\n );\n } else if (eventName === AnalyticsEventName.ADD_TO_CART) {\n events = events.concat(\n customerAddToCart(payload as ShopifyAddToCartPayload)\n );\n }\n\n if (events.length) {\n return sendToShopify(events, shopDomain);\n } else {\n return Promise.resolve();\n }\n}\n\ntype MonorailResponse = {\n status: number;\n message: string;\n};\n\nconst ERROR_MESSAGE = 'sendShopifyAnalytics request is unsuccessful';\n\nfunction sendToShopify(\n events: ShopifyMonorailEvent[],\n shopDomain?: string\n): Promise<void> {\n const eventsToBeSent = {\n events,\n metadata: {\n event_sent_at_ms: Date.now(),\n },\n };\n\n try {\n return fetch(\n shopDomain\n ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch`\n : 'https://monorail-edge.shopifysvc.com/unstable/produce_batch',\n {\n method: 'post',\n headers: {\n 'content-type': 'text/plain',\n },\n body: JSON.stringify(eventsToBeSent),\n }\n )\n .then((response) => {\n if (!response.ok) {\n throw new Error('Response failed');\n }\n return response.text();\n })\n .then((data) => {\n if (data) {\n const jsonResponse = JSON.parse(data);\n jsonResponse.result.forEach((eventResponse: MonorailResponse) => {\n if (eventResponse.status !== 200) {\n console.error(ERROR_MESSAGE, '\\n\\n', eventResponse.message);\n }\n });\n }\n })\n .catch((err) => {\n console.error(ERROR_MESSAGE, err);\n if (__HYDROGEN_DEV__) {\n throw new Error(ERROR_MESSAGE);\n }\n });\n } catch (error) {\n // Do nothing\n return Promise.resolve();\n }\n}\n\nexport function getClientBrowserParameters(): ClientBrowserParameters {\n if (errorIfServer('getClientBrowserParameters')) {\n return {\n uniqueToken: '',\n visitToken: '',\n url: '',\n path: '',\n search: '',\n referrer: '',\n title: '',\n userAgent: '',\n navigationType: '',\n navigationApi: '',\n };\n }\n\n const [navigationType, navigationApi] = getNavigationType();\n const cookies = getShopifyCookies(document.cookie);\n\n return {\n uniqueToken: cookies[SHOPIFY_Y],\n visitToken: cookies[SHOPIFY_S],\n url: location.href,\n path: location.pathname,\n search: location.search,\n referrer: document.referrer,\n title: document.title,\n userAgent: navigator.userAgent,\n navigationType,\n navigationApi,\n };\n}\n\nfunction getNavigationTypeExperimental(): string | undefined {\n try {\n const navigationEntries =\n performance?.getEntriesByType &&\n performance?.getEntriesByType('navigation');\n\n if (navigationEntries && navigationEntries[0]) {\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n const rawType = (\n window.performance.getEntriesByType(\n 'navigation'\n )[0] as PerformanceNavigationTiming\n )['type'];\n const navType = rawType && rawType.toString();\n\n return navType;\n }\n } catch (err) {\n // Do nothing\n }\n return undefined;\n}\n\nfunction getNavigationTypeLegacy(): string | undefined {\n try {\n if (\n PerformanceNavigation &&\n performance?.navigation?.type !== null &&\n performance?.navigation?.type !== undefined\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation\n const rawType = performance.navigation.type;\n switch (rawType) {\n case PerformanceNavigation.TYPE_NAVIGATE:\n return 'navigate';\n break;\n case PerformanceNavigation.TYPE_RELOAD:\n return 'reload';\n break;\n case PerformanceNavigation.TYPE_BACK_FORWARD:\n return 'back_forward';\n break;\n default:\n return `unknown: ${rawType}`;\n }\n }\n } catch (err) {\n // do nothing\n }\n return undefined;\n}\n\nfunction getNavigationType(): [string, string] {\n try {\n let navApi = 'PerformanceNavigationTiming';\n let navType = getNavigationTypeExperimental();\n if (!navType) {\n navType = getNavigationTypeLegacy();\n navApi = 'performance.navigation';\n }\n if (navType) {\n return [navType, navApi];\n } else {\n return ['unknown', 'unknown'];\n }\n } catch (err) {\n // do nothing\n }\n return ['error', 'error'];\n}\n"],"names":["AnalyticsEventName","trekkiePageView","customerPageView","customerAddToCart","errorIfServer","getShopifyCookies","SHOPIFY_Y","SHOPIFY_S"],"mappings":";;;;;;;;AAwBgB,SAAA,qBACd,OACA,YACe;AACT,QAAA,EAAC,WAAW,QAAW,IAAA;AAC7B,MAAI,CAAC,QAAQ;AAAgB,WAAO,QAAQ;AAE5C,MAAI,SAAiC,CAAA;AAEjC,MAAA,cAAcA,sCAAmB,WAAW;AAC9C,UAAM,kBAAkB;AACxB,aAAS,OAAO;AAAA,MACdC,yCAAAA,SAAgB,eAAe;AAAA,MAC/BC,gDAAAA,SAAiB,eAAe;AAAA,IAAA;AAAA,EAClC,WACS,cAAcF,mBAAA,mBAAmB,aAAa;AACvD,aAAS,OAAO;AAAA,MACdG,gDAAAA,UAAkB,OAAkC;AAAA,IAAA;AAAA,EAExD;AAEA,MAAI,OAAO,QAAQ;AACV,WAAA,cAAc,QAAQ,UAAU;AAAA,EAAA,OAClC;AACL,WAAO,QAAQ;EACjB;AACF;AAOA,MAAM,gBAAgB;AAEtB,SAAS,cACP,QACA,YACe;AACf,QAAM,iBAAiB;AAAA,IACrB;AAAA,IACA,UAAU;AAAA,MACR,kBAAkB,KAAK,IAAI;AAAA,IAC7B;AAAA,EAAA;AAGE,MAAA;AACK,WAAA;AAAA,MACL,aACI,WAAW,mEACX;AAAA,MACJ;AAAA,QACE,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,gBAAgB;AAAA,QAClB;AAAA,QACA,MAAM,KAAK,UAAU,cAAc;AAAA,MACrC;AAAA,IAAA,EAEC,KAAK,CAAC,aAAa;AACd,UAAA,CAAC,SAAS,IAAI;AACV,cAAA,IAAI,MAAM,iBAAiB;AAAA,MACnC;AACA,aAAO,SAAS;IAAK,CACtB,EACA,KAAK,CAAC,SAAS;AACd,UAAI,MAAM;AACF,cAAA,eAAe,KAAK,MAAM,IAAI;AACvB,qBAAA,OAAO,QAAQ,CAAC,kBAAoC;AAC3D,cAAA,cAAc,WAAW,KAAK;AAChC,oBAAQ,MAAM,eAAe,QAAQ,cAAc,OAAO;AAAA,UAC5D;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IAAA,CACD,EACA,MAAM,CAAC,QAAQ;AACN,cAAA,MAAM,eAAe,GAAG;AAChC,UAAI,MAAkB;AACd,cAAA,IAAI,MAAM,aAAa;AAAA,MAC/B;AAAA,IAAA,CACD;AAAA,WACI;AAEP,WAAO,QAAQ;EACjB;AACF;AAEO,SAAS,6BAAsD;AAChE,MAAAC,eAAAA,cAAc,4BAA4B,GAAG;AACxC,WAAA;AAAA,MACL,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,KAAK;AAAA,MACL,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,eAAe;AAAA,IAAA;AAAA,EAEnB;AAEA,QAAM,CAAC,gBAAgB,aAAa,IAAI,kBAAkB;AACpD,QAAA,UAAUC,aAAAA,kBAAkB,SAAS,MAAM;AAE1C,SAAA;AAAA,IACL,aAAa,QAAQC,uBAAS;AAAA,IAC9B,YAAY,QAAQC,uBAAS;AAAA,IAC7B,KAAK,SAAS;AAAA,IACd,MAAM,SAAS;AAAA,IACf,QAAQ,SAAS;AAAA,IACjB,UAAU,SAAS;AAAA,IACnB,OAAO,SAAS;AAAA,IAChB,WAAW,UAAU;AAAA,IACrB;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,SAAS,gCAAoD;AACvD,MAAA;AACF,UAAM,qBACJ,2CAAa,sBACb,2CAAa,iBAAiB;AAE5B,QAAA,qBAAqB,kBAAkB,CAAC,GAAG;AAEvC,YAAA,UACJ,OAAO,YAAY;AAAA,QACjB;AAAA,MAAA,EACA,CAAC,EACH,MAAM;AACF,YAAA,UAAU,WAAW,QAAQ,SAAS;AAErC,aAAA;AAAA,IACT;AAAA,WACO;EAET;AACO,SAAA;AACT;AAEA,SAAS,0BAA8C;;AACjD,MAAA;AAEA,QAAA,2BACA,gDAAa,eAAb,mBAAyB,UAAS,UAClC,gDAAa,eAAb,mBAAyB,UAAS,QAClC;AAEM,YAAA,UAAU,YAAY,WAAW;AACvC,cAAQ,SAAS;AAAA,QACf,KAAK,sBAAsB;AAClB,iBAAA;AACP;AAAA,QACF,KAAK,sBAAsB;AAClB,iBAAA;AACP;AAAA,QACF,KAAK,sBAAsB;AAClB,iBAAA;AACP;AAAA,QACF;AACE,iBAAO,YAAY;AAAA,MACvB;AAAA,IACF;AAAA,WACO;EAET;AACO,SAAA;AACT;AAEA,SAAS,oBAAsC;AACzC,MAAA;AACF,QAAI,SAAS;AACb,QAAI,UAAU;AACd,QAAI,CAAC,SAAS;AACZ,gBAAU,wBAAwB;AACzB,eAAA;AAAA,IACX;AACA,QAAI,SAAS;AACJ,aAAA,CAAC,SAAS,MAAM;AAAA,IAAA,OAClB;AACE,aAAA,CAAC,WAAW,SAAS;AAAA,IAC9B;AAAA,WACO;EAET;AACO,SAAA,CAAC,SAAS,OAAO;AAC1B;;;"}
@@ -0,0 +1,159 @@
1
+ import { SHOPIFY_Y, SHOPIFY_S } from "./cart-constants.mjs";
2
+ import { AnalyticsEventName } from "./analytics-constants.mjs";
3
+ import { errorIfServer } from "./analytics-utils.mjs";
4
+ import { getShopifyCookies } from "./cookies-utils.mjs";
5
+ import { pageView } from "./analytics-schema-trekkie-storefront-page-view.mjs";
6
+ import { pageView as pageView$1, addToCart } from "./analytics-schema-custom-storefront-customer-tracking.mjs";
7
+ function sendShopifyAnalytics(event, shopDomain) {
8
+ const { eventName, payload } = event;
9
+ if (!payload.hasUserConsent)
10
+ return Promise.resolve();
11
+ let events = [];
12
+ if (eventName === AnalyticsEventName.PAGE_VIEW) {
13
+ const pageViewPayload = payload;
14
+ events = events.concat(
15
+ pageView(pageViewPayload),
16
+ pageView$1(pageViewPayload)
17
+ );
18
+ } else if (eventName === AnalyticsEventName.ADD_TO_CART) {
19
+ events = events.concat(
20
+ addToCart(payload)
21
+ );
22
+ }
23
+ if (events.length) {
24
+ return sendToShopify(events, shopDomain);
25
+ } else {
26
+ return Promise.resolve();
27
+ }
28
+ }
29
+ const ERROR_MESSAGE = "sendShopifyAnalytics request is unsuccessful";
30
+ function sendToShopify(events, shopDomain) {
31
+ const eventsToBeSent = {
32
+ events,
33
+ metadata: {
34
+ event_sent_at_ms: Date.now()
35
+ }
36
+ };
37
+ try {
38
+ return fetch(
39
+ shopDomain ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch` : "https://monorail-edge.shopifysvc.com/unstable/produce_batch",
40
+ {
41
+ method: "post",
42
+ headers: {
43
+ "content-type": "text/plain"
44
+ },
45
+ body: JSON.stringify(eventsToBeSent)
46
+ }
47
+ ).then((response) => {
48
+ if (!response.ok) {
49
+ throw new Error("Response failed");
50
+ }
51
+ return response.text();
52
+ }).then((data) => {
53
+ if (data) {
54
+ const jsonResponse = JSON.parse(data);
55
+ jsonResponse.result.forEach((eventResponse) => {
56
+ if (eventResponse.status !== 200) {
57
+ console.error(ERROR_MESSAGE, "\n\n", eventResponse.message);
58
+ }
59
+ });
60
+ }
61
+ }).catch((err) => {
62
+ console.error(ERROR_MESSAGE, err);
63
+ if (true) {
64
+ throw new Error(ERROR_MESSAGE);
65
+ }
66
+ });
67
+ } catch (error) {
68
+ return Promise.resolve();
69
+ }
70
+ }
71
+ function getClientBrowserParameters() {
72
+ if (errorIfServer("getClientBrowserParameters")) {
73
+ return {
74
+ uniqueToken: "",
75
+ visitToken: "",
76
+ url: "",
77
+ path: "",
78
+ search: "",
79
+ referrer: "",
80
+ title: "",
81
+ userAgent: "",
82
+ navigationType: "",
83
+ navigationApi: ""
84
+ };
85
+ }
86
+ const [navigationType, navigationApi] = getNavigationType();
87
+ const cookies = getShopifyCookies(document.cookie);
88
+ return {
89
+ uniqueToken: cookies[SHOPIFY_Y],
90
+ visitToken: cookies[SHOPIFY_S],
91
+ url: location.href,
92
+ path: location.pathname,
93
+ search: location.search,
94
+ referrer: document.referrer,
95
+ title: document.title,
96
+ userAgent: navigator.userAgent,
97
+ navigationType,
98
+ navigationApi
99
+ };
100
+ }
101
+ function getNavigationTypeExperimental() {
102
+ try {
103
+ const navigationEntries = (performance == null ? void 0 : performance.getEntriesByType) && (performance == null ? void 0 : performance.getEntriesByType("navigation"));
104
+ if (navigationEntries && navigationEntries[0]) {
105
+ const rawType = window.performance.getEntriesByType(
106
+ "navigation"
107
+ )[0]["type"];
108
+ const navType = rawType && rawType.toString();
109
+ return navType;
110
+ }
111
+ } catch (err) {
112
+ }
113
+ return void 0;
114
+ }
115
+ function getNavigationTypeLegacy() {
116
+ var _a, _b;
117
+ try {
118
+ if (PerformanceNavigation && ((_a = performance == null ? void 0 : performance.navigation) == null ? void 0 : _a.type) !== null && ((_b = performance == null ? void 0 : performance.navigation) == null ? void 0 : _b.type) !== void 0) {
119
+ const rawType = performance.navigation.type;
120
+ switch (rawType) {
121
+ case PerformanceNavigation.TYPE_NAVIGATE:
122
+ return "navigate";
123
+ break;
124
+ case PerformanceNavigation.TYPE_RELOAD:
125
+ return "reload";
126
+ break;
127
+ case PerformanceNavigation.TYPE_BACK_FORWARD:
128
+ return "back_forward";
129
+ break;
130
+ default:
131
+ return `unknown: ${rawType}`;
132
+ }
133
+ }
134
+ } catch (err) {
135
+ }
136
+ return void 0;
137
+ }
138
+ function getNavigationType() {
139
+ try {
140
+ let navApi = "PerformanceNavigationTiming";
141
+ let navType = getNavigationTypeExperimental();
142
+ if (!navType) {
143
+ navType = getNavigationTypeLegacy();
144
+ navApi = "performance.navigation";
145
+ }
146
+ if (navType) {
147
+ return [navType, navApi];
148
+ } else {
149
+ return ["unknown", "unknown"];
150
+ }
151
+ } catch (err) {
152
+ }
153
+ return ["error", "error"];
154
+ }
155
+ export {
156
+ getClientBrowserParameters,
157
+ sendShopifyAnalytics
158
+ };
159
+ //# sourceMappingURL=analytics.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.mjs","sources":["../../src/analytics.ts"],"sourcesContent":["import {SHOPIFY_S, SHOPIFY_Y} from './cart-constants.js';\nimport type {\n ClientBrowserParameters,\n ShopifyAddToCartPayload,\n ShopifyAnalytics,\n ShopifyPageViewPayload,\n ShopifyMonorailEvent,\n} from './analytics-types.js';\nimport {AnalyticsEventName} from './analytics-constants.js';\nimport {errorIfServer} from './analytics-utils.js';\nimport {getShopifyCookies} from './cookies-utils.js';\n\nimport {pageView as trekkiePageView} from './analytics-schema-trekkie-storefront-page-view.js';\nimport {\n pageView as customerPageView,\n addToCart as customerAddToCart,\n} from './analytics-schema-custom-storefront-customer-tracking.js';\n\n/**\n * Set user and session cookies and refresh the expiry time\n * @param event - The analytics event.\n * @param shopDomain - The Online Store domain to sent Shopify analytics under the same\n * top level domain.\n */\nexport function sendShopifyAnalytics(\n event: ShopifyAnalytics,\n shopDomain?: string\n): Promise<void> {\n const {eventName, payload} = event;\n if (!payload.hasUserConsent) return Promise.resolve();\n\n let events: ShopifyMonorailEvent[] = [];\n\n if (eventName === AnalyticsEventName.PAGE_VIEW) {\n const pageViewPayload = payload as ShopifyPageViewPayload;\n events = events.concat(\n trekkiePageView(pageViewPayload),\n customerPageView(pageViewPayload)\n );\n } else if (eventName === AnalyticsEventName.ADD_TO_CART) {\n events = events.concat(\n customerAddToCart(payload as ShopifyAddToCartPayload)\n );\n }\n\n if (events.length) {\n return sendToShopify(events, shopDomain);\n } else {\n return Promise.resolve();\n }\n}\n\ntype MonorailResponse = {\n status: number;\n message: string;\n};\n\nconst ERROR_MESSAGE = 'sendShopifyAnalytics request is unsuccessful';\n\nfunction sendToShopify(\n events: ShopifyMonorailEvent[],\n shopDomain?: string\n): Promise<void> {\n const eventsToBeSent = {\n events,\n metadata: {\n event_sent_at_ms: Date.now(),\n },\n };\n\n try {\n return fetch(\n shopDomain\n ? `https://${shopDomain}/.well-known/shopify/monorail/unstable/produce_batch`\n : 'https://monorail-edge.shopifysvc.com/unstable/produce_batch',\n {\n method: 'post',\n headers: {\n 'content-type': 'text/plain',\n },\n body: JSON.stringify(eventsToBeSent),\n }\n )\n .then((response) => {\n if (!response.ok) {\n throw new Error('Response failed');\n }\n return response.text();\n })\n .then((data) => {\n if (data) {\n const jsonResponse = JSON.parse(data);\n jsonResponse.result.forEach((eventResponse: MonorailResponse) => {\n if (eventResponse.status !== 200) {\n console.error(ERROR_MESSAGE, '\\n\\n', eventResponse.message);\n }\n });\n }\n })\n .catch((err) => {\n console.error(ERROR_MESSAGE, err);\n if (__HYDROGEN_DEV__) {\n throw new Error(ERROR_MESSAGE);\n }\n });\n } catch (error) {\n // Do nothing\n return Promise.resolve();\n }\n}\n\nexport function getClientBrowserParameters(): ClientBrowserParameters {\n if (errorIfServer('getClientBrowserParameters')) {\n return {\n uniqueToken: '',\n visitToken: '',\n url: '',\n path: '',\n search: '',\n referrer: '',\n title: '',\n userAgent: '',\n navigationType: '',\n navigationApi: '',\n };\n }\n\n const [navigationType, navigationApi] = getNavigationType();\n const cookies = getShopifyCookies(document.cookie);\n\n return {\n uniqueToken: cookies[SHOPIFY_Y],\n visitToken: cookies[SHOPIFY_S],\n url: location.href,\n path: location.pathname,\n search: location.search,\n referrer: document.referrer,\n title: document.title,\n userAgent: navigator.userAgent,\n navigationType,\n navigationApi,\n };\n}\n\nfunction getNavigationTypeExperimental(): string | undefined {\n try {\n const navigationEntries =\n performance?.getEntriesByType &&\n performance?.getEntriesByType('navigation');\n\n if (navigationEntries && navigationEntries[0]) {\n // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\n const rawType = (\n window.performance.getEntriesByType(\n 'navigation'\n )[0] as PerformanceNavigationTiming\n )['type'];\n const navType = rawType && rawType.toString();\n\n return navType;\n }\n } catch (err) {\n // Do nothing\n }\n return undefined;\n}\n\nfunction getNavigationTypeLegacy(): string | undefined {\n try {\n if (\n PerformanceNavigation &&\n performance?.navigation?.type !== null &&\n performance?.navigation?.type !== undefined\n ) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation\n const rawType = performance.navigation.type;\n switch (rawType) {\n case PerformanceNavigation.TYPE_NAVIGATE:\n return 'navigate';\n break;\n case PerformanceNavigation.TYPE_RELOAD:\n return 'reload';\n break;\n case PerformanceNavigation.TYPE_BACK_FORWARD:\n return 'back_forward';\n break;\n default:\n return `unknown: ${rawType}`;\n }\n }\n } catch (err) {\n // do nothing\n }\n return undefined;\n}\n\nfunction getNavigationType(): [string, string] {\n try {\n let navApi = 'PerformanceNavigationTiming';\n let navType = getNavigationTypeExperimental();\n if (!navType) {\n navType = getNavigationTypeLegacy();\n navApi = 'performance.navigation';\n }\n if (navType) {\n return [navType, navApi];\n } else {\n return ['unknown', 'unknown'];\n }\n } catch (err) {\n // do nothing\n }\n return ['error', 'error'];\n}\n"],"names":["trekkiePageView","customerPageView","customerAddToCart"],"mappings":"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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require$$0 = require("react");
4
4
  const ShopifyProvider = require("./ShopifyProvider.js");
5
5
  const cartConstants = require("./cart-constants.js");
6
- const cookie = require("worktop/cookie");
6
+ const cookiesUtils = require("./cookies-utils.js");
7
7
  function useCartFetch() {
8
8
  const { storefrontId, getPublicTokenHeaders, getStorefrontApiUrl } = ShopifyProvider.useShop();
9
9
  return require$$0.useCallback(
@@ -15,11 +15,9 @@ function useCartFetch() {
15
15
  if (storefrontId) {
16
16
  headers[cartConstants.SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
17
17
  }
18
- const cookieData = cookie.parse(document.cookie);
19
- if (cookieData[cartConstants.SHOPIFY_Y] && cookieData[cartConstants.SHOPIFY_S]) {
20
- headers[cartConstants.SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[cartConstants.SHOPIFY_Y];
21
- headers[cartConstants.SHOPIFY_STOREFRONT_S_HEADER] = cookieData[cartConstants.SHOPIFY_S];
22
- }
18
+ const cookieData = cookiesUtils.getShopifyCookies(document.cookie);
19
+ headers[cartConstants.SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[cartConstants.SHOPIFY_Y];
20
+ headers[cartConstants.SHOPIFY_STOREFRONT_S_HEADER] = cookieData[cartConstants.SHOPIFY_S];
23
21
  return fetch(getStorefrontApiUrl(), {
24
22
  method: "POST",
25
23
  headers,
@@ -1 +1 @@
1
- {"version":3,"file":"cart-hooks.js","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":["useShop","useCallback","SHOPIFY_STOREFRONT_ID_HEADER","parse","SHOPIFY_Y","SHOPIFY_S","SHOPIFY_STOREFRONT_Y_HEADER","SHOPIFY_STOREFRONT_S_HEADER"],"mappings":";;;;;;AAgBO,SAAS,eAAe;AAC7B,QAAM,EAAC,cAAc,uBAAuB,wBAAuBA,gBAAQ,QAAA;AAEpE,SAAAC,WAAA;AAAA,IACL,CAAqB;AAAA,MACnB;AAAA,MACA;AAAA,IAAA,MAIgE;AAChE,YAAM,UAAU,sBAAsB,EAAC,aAAa,OAAO,CAAA;AAE3D,UAAI,cAAc;AAChB,gBAAQC,cAAAA,4BAA4B,IAAI;AAAA,MAC1C;AAGM,YAAA,aAAaC,OAAAA,MAAM,SAAS,MAAM;AACxC,UAAI,WAAWC,cAAS,SAAA,KAAK,WAAWC,cAAS,SAAA,GAAG;AAC1C,gBAAAC,cAA2B,2BAAA,IAAI,WAAWF,cAAS,SAAA;AACnD,gBAAAG,cAA2B,2BAAA,IAAI,WAAWF,cAAS,SAAA;AAAA,MAC7D;AAEO,aAAA,MAAM,uBAAuB;AAAA,QAClC,QAAQ;AAAA,QACR;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,OAAO,MAAM,SAAS;AAAA,UACtB;AAAA,QAAA,CACD;AAAA,MAAA,CACF,EACE,KAAK,CAAC,QAAQ,IAAI,MAAM,EACxB,MAAM,CAAC,UAAU;AACT,eAAA;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,MAAM,SAAS;AAAA,QAAA;AAAA,MACzB,CACD;AAAA,IACL;AAAA,IACA,CAAC,uBAAuB,cAAc,mBAAmB;AAAA,EAAA;AAE7D;;"}
1
+ {"version":3,"file":"cart-hooks.js","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 type {StorefrontApiResponseOkPartial} from './storefront-api-response.types.js';\nimport {getShopifyCookies} from './cookies-utils.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 = getShopifyCookies(document.cookie);\n headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];\n headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];\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":["useShop","useCallback","SHOPIFY_STOREFRONT_ID_HEADER","getShopifyCookies","SHOPIFY_STOREFRONT_Y_HEADER","SHOPIFY_Y","SHOPIFY_STOREFRONT_S_HEADER","SHOPIFY_S"],"mappings":";;;;;;AAgBO,SAAS,eAAe;AAC7B,QAAM,EAAC,cAAc,uBAAuB,wBAAuBA,gBAAQ,QAAA;AAEpE,SAAAC,WAAA;AAAA,IACL,CAAqB;AAAA,MACnB;AAAA,MACA;AAAA,IAAA,MAIgE;AAChE,YAAM,UAAU,sBAAsB,EAAC,aAAa,OAAO,CAAA;AAE3D,UAAI,cAAc;AAChB,gBAAQC,cAAAA,4BAA4B,IAAI;AAAA,MAC1C;AAGM,YAAA,aAAaC,aAAAA,kBAAkB,SAAS,MAAM;AAC5C,cAAAC,cAA2B,2BAAA,IAAI,WAAWC,cAAS,SAAA;AACnD,cAAAC,cAA2B,2BAAA,IAAI,WAAWC,cAAS,SAAA;AAEpD,aAAA,MAAM,uBAAuB;AAAA,QAClC,QAAQ;AAAA,QACR;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,OAAO,MAAM,SAAS;AAAA,UACtB;AAAA,QAAA,CACD;AAAA,MAAA,CACF,EACE,KAAK,CAAC,QAAQ,IAAI,MAAM,EACxB,MAAM,CAAC,UAAU;AACT,eAAA;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,MAAM,SAAS;AAAA,QAAA;AAAA,MACzB,CACD;AAAA,IACL;AAAA,IACA,CAAC,uBAAuB,cAAc,mBAAmB;AAAA,EAAA;AAE7D;;"}
@@ -1,7 +1,7 @@
1
1
  import { useCallback } from "react";
2
2
  import { useShop } from "./ShopifyProvider.mjs";
3
- import { SHOPIFY_STOREFRONT_ID_HEADER, SHOPIFY_Y, SHOPIFY_S, SHOPIFY_STOREFRONT_Y_HEADER, SHOPIFY_STOREFRONT_S_HEADER } from "./cart-constants.mjs";
4
- import { parse } from "worktop/cookie";
3
+ import { SHOPIFY_STOREFRONT_ID_HEADER, SHOPIFY_STOREFRONT_Y_HEADER, SHOPIFY_Y, SHOPIFY_STOREFRONT_S_HEADER, SHOPIFY_S } from "./cart-constants.mjs";
4
+ import { getShopifyCookies } from "./cookies-utils.mjs";
5
5
  function useCartFetch() {
6
6
  const { storefrontId, getPublicTokenHeaders, getStorefrontApiUrl } = useShop();
7
7
  return useCallback(
@@ -13,11 +13,9 @@ function useCartFetch() {
13
13
  if (storefrontId) {
14
14
  headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
15
15
  }
16
- const cookieData = parse(document.cookie);
17
- if (cookieData[SHOPIFY_Y] && cookieData[SHOPIFY_S]) {
18
- headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];
19
- headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];
20
- }
16
+ const cookieData = getShopifyCookies(document.cookie);
17
+ headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];
18
+ headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];
21
19
  return fetch(getStorefrontApiUrl(), {
22
20
  method: "POST",
23
21
  headers,
@@ -1 +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":[],"mappings":";;;;AAgBO,SAAS,eAAe;AAC7B,QAAM,EAAC,cAAc,uBAAuB,wBAAuB,QAAQ;AAEpE,SAAA;AAAA,IACL,CAAqB;AAAA,MACnB;AAAA,MACA;AAAA,IAAA,MAIgE;AAChE,YAAM,UAAU,sBAAsB,EAAC,aAAa,OAAO,CAAA;AAE3D,UAAI,cAAc;AAChB,gBAAQ,4BAA4B,IAAI;AAAA,MAC1C;AAGM,YAAA,aAAa,MAAM,SAAS,MAAM;AACxC,UAAI,WAAW,SAAS,KAAK,WAAW,SAAS,GAAG;AAC1C,gBAAA,2BAA2B,IAAI,WAAW,SAAS;AACnD,gBAAA,2BAA2B,IAAI,WAAW,SAAS;AAAA,MAC7D;AAEO,aAAA,MAAM,uBAAuB;AAAA,QAClC,QAAQ;AAAA,QACR;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,OAAO,MAAM,SAAS;AAAA,UACtB;AAAA,QAAA,CACD;AAAA,MAAA,CACF,EACE,KAAK,CAAC,QAAQ,IAAI,MAAM,EACxB,MAAM,CAAC,UAAU;AACT,eAAA;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,MAAM,SAAS;AAAA,QAAA;AAAA,MACzB,CACD;AAAA,IACL;AAAA,IACA,CAAC,uBAAuB,cAAc,mBAAmB;AAAA,EAAA;AAE7D;"}
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 type {StorefrontApiResponseOkPartial} from './storefront-api-response.types.js';\nimport {getShopifyCookies} from './cookies-utils.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 = getShopifyCookies(document.cookie);\n headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];\n headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];\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":[],"mappings":";;;;AAgBO,SAAS,eAAe;AAC7B,QAAM,EAAC,cAAc,uBAAuB,wBAAuB,QAAQ;AAEpE,SAAA;AAAA,IACL,CAAqB;AAAA,MACnB;AAAA,MACA;AAAA,IAAA,MAIgE;AAChE,YAAM,UAAU,sBAAsB,EAAC,aAAa,OAAO,CAAA;AAE3D,UAAI,cAAc;AAChB,gBAAQ,4BAA4B,IAAI;AAAA,MAC1C;AAGM,YAAA,aAAa,kBAAkB,SAAS,MAAM;AAC5C,cAAA,2BAA2B,IAAI,WAAW,SAAS;AACnD,cAAA,2BAA2B,IAAI,WAAW,SAAS;AAEpD,aAAA,MAAM,uBAAuB;AAAA,QAClC,QAAQ;AAAA,QACR;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACnB,OAAO,MAAM,SAAS;AAAA,UACtB;AAAA,QAAA,CACD;AAAA,MAAA,CACF,EACE,KAAK,CAAC,QAAQ,IAAI,MAAM,EACxB,MAAM,CAAC,UAAU;AACT,eAAA;AAAA,UACL,MAAM;AAAA,UACN,QAAQ,MAAM,SAAS;AAAA,QAAA;AAAA,MACzB,CACD;AAAA,IACL;AAAA,IACA,CAAC,uBAAuB,cAAc,mBAAmB;AAAA,EAAA;AAE7D;"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const cookie = require("worktop/cookie");
4
+ const cartConstants = require("./cart-constants.js");
5
+ const tokenHash = "xxxx-4xxx-xxxx-xxxxxxxxxxxx";
6
+ function buildUUID() {
7
+ let hash = "";
8
+ try {
9
+ const crypto = window.crypto;
10
+ const randomValuesArray = new Uint16Array(31);
11
+ crypto.getRandomValues(randomValuesArray);
12
+ let i = 0;
13
+ hash = tokenHash.replace(/[x]/g, (c) => {
14
+ const r = randomValuesArray[i] % 16;
15
+ const v = c === "x" ? r : r & 3 | 8;
16
+ i++;
17
+ return v.toString(16);
18
+ }).toUpperCase();
19
+ } catch (err) {
20
+ hash = tokenHash.replace(/[x]/g, (c) => {
21
+ const r = Math.random() * 16 | 0;
22
+ const v = c === "x" ? r : r & 3 | 8;
23
+ return v.toString(16);
24
+ }).toUpperCase();
25
+ }
26
+ return `${hexTime()}-${hash}`;
27
+ }
28
+ function hexTime() {
29
+ let dateNumber = 0;
30
+ let perfNumber = 0;
31
+ dateNumber = new Date().getTime() >>> 0;
32
+ try {
33
+ perfNumber = performance.now() >>> 0;
34
+ } catch (err) {
35
+ perfNumber = 0;
36
+ }
37
+ const output = Math.abs(dateNumber + perfNumber).toString(16).toLowerCase();
38
+ return output.padStart(8 - output.length, "0");
39
+ }
40
+ function getShopifyCookies(cookies) {
41
+ const cookieData = cookie.parse(cookies);
42
+ return {
43
+ [cartConstants.SHOPIFY_Y]: cookieData[cartConstants.SHOPIFY_Y] || "",
44
+ [cartConstants.SHOPIFY_S]: cookieData[cartConstants.SHOPIFY_S] || ""
45
+ };
46
+ }
47
+ exports.buildUUID = buildUUID;
48
+ exports.getShopifyCookies = getShopifyCookies;
49
+ exports.hexTime = hexTime;
50
+ //# sourceMappingURL=cookies-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies-utils.js","sources":["../../src/cookies-utils.tsx"],"sourcesContent":["import {parse} from 'worktop/cookie';\nimport {ShopifyCookies} from './analytics-types.js';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\n\nconst tokenHash = 'xxxx-4xxx-xxxx-xxxxxxxxxxxx';\n\nexport function buildUUID(): string {\n let hash = '';\n\n try {\n const crypto: Crypto = window.crypto;\n const randomValuesArray = new Uint16Array(31);\n crypto.getRandomValues(randomValuesArray);\n\n // Generate a strong UUID\n let i = 0;\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = randomValuesArray[i] % 16;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n i++;\n return v.toString(16);\n })\n .toUpperCase();\n } catch (err) {\n // crypto not available, generate weak UUID\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n })\n .toUpperCase();\n }\n\n return `${hexTime()}-${hash}`;\n}\n\nexport function hexTime(): string {\n // 32 bit representations of new Date().getTime() and performance.now()\n let dateNumber = 0;\n let perfNumber = 0;\n\n // Result of zero-fill right shift is always positive\n dateNumber = new Date().getTime() >>> 0;\n\n try {\n perfNumber = performance.now() >>> 0;\n } catch (err) {\n perfNumber = 0;\n }\n\n const output = Math.abs(dateNumber + perfNumber)\n .toString(16)\n .toLowerCase();\n\n return output.padStart(8 - output.length, '0');\n}\n\nexport function getShopifyCookies(cookies: string): ShopifyCookies {\n const cookieData = parse(cookies);\n return {\n [SHOPIFY_Y]: cookieData[SHOPIFY_Y] || '',\n [SHOPIFY_S]: cookieData[SHOPIFY_S] || '',\n };\n}\n"],"names":["parse","SHOPIFY_Y","SHOPIFY_S"],"mappings":";;;;AAIA,MAAM,YAAY;AAEX,SAAS,YAAoB;AAClC,MAAI,OAAO;AAEP,MAAA;AACF,UAAM,SAAiB,OAAO;AACxB,UAAA,oBAAoB,IAAI,YAAY,EAAE;AAC5C,WAAO,gBAAgB,iBAAiB;AAGxC,QAAI,IAAI;AACR,WAAO,UACJ,QAAQ,QAAQ,CAAC,MAAsB;AAChC,YAAA,IAAI,kBAAkB,CAAC,IAAI;AACjC,YAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AACtC;AACO,aAAA,EAAE,SAAS,EAAE;AAAA,IAAA,CACrB,EACA,YAAY;AAAA,WACR;AAEP,WAAO,UACJ,QAAQ,QAAQ,CAAC,MAAsB;AACtC,YAAM,IAAK,KAAK,OAAO,IAAI,KAAM;AACjC,YAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AAC/B,aAAA,EAAE,SAAS,EAAE;AAAA,IAAA,CACrB,EACA,YAAY;AAAA,EACjB;AAEO,SAAA,GAAG,aAAa;AACzB;AAEO,SAAS,UAAkB;AAEhC,MAAI,aAAa;AACjB,MAAI,aAAa;AAGjB,eAAa,IAAI,KAAA,EAAO,QAAA,MAAc;AAElC,MAAA;AACW,iBAAA,YAAY,IAAU,MAAA;AAAA,WAC5B;AACM,iBAAA;AAAA,EACf;AAEM,QAAA,SAAS,KAAK,IAAI,aAAa,UAAU,EAC5C,SAAS,EAAE,EACX;AAEH,SAAO,OAAO,SAAS,IAAI,OAAO,QAAQ,GAAG;AAC/C;AAEO,SAAS,kBAAkB,SAAiC;AAC3D,QAAA,aAAaA,aAAM,OAAO;AACzB,SAAA;AAAA,IACL,CAACC,uBAAS,GAAG,WAAWA,cAAS,SAAA,KAAK;AAAA,IACtC,CAACC,uBAAS,GAAG,WAAWA,cAAS,SAAA,KAAK;AAAA,EAAA;AAE1C;;;;"}
@@ -0,0 +1,50 @@
1
+ import { parse } from "worktop/cookie";
2
+ import { SHOPIFY_Y, SHOPIFY_S } from "./cart-constants.mjs";
3
+ const tokenHash = "xxxx-4xxx-xxxx-xxxxxxxxxxxx";
4
+ function buildUUID() {
5
+ let hash = "";
6
+ try {
7
+ const crypto = window.crypto;
8
+ const randomValuesArray = new Uint16Array(31);
9
+ crypto.getRandomValues(randomValuesArray);
10
+ let i = 0;
11
+ hash = tokenHash.replace(/[x]/g, (c) => {
12
+ const r = randomValuesArray[i] % 16;
13
+ const v = c === "x" ? r : r & 3 | 8;
14
+ i++;
15
+ return v.toString(16);
16
+ }).toUpperCase();
17
+ } catch (err) {
18
+ hash = tokenHash.replace(/[x]/g, (c) => {
19
+ const r = Math.random() * 16 | 0;
20
+ const v = c === "x" ? r : r & 3 | 8;
21
+ return v.toString(16);
22
+ }).toUpperCase();
23
+ }
24
+ return `${hexTime()}-${hash}`;
25
+ }
26
+ function hexTime() {
27
+ let dateNumber = 0;
28
+ let perfNumber = 0;
29
+ dateNumber = new Date().getTime() >>> 0;
30
+ try {
31
+ perfNumber = performance.now() >>> 0;
32
+ } catch (err) {
33
+ perfNumber = 0;
34
+ }
35
+ const output = Math.abs(dateNumber + perfNumber).toString(16).toLowerCase();
36
+ return output.padStart(8 - output.length, "0");
37
+ }
38
+ function getShopifyCookies(cookies) {
39
+ const cookieData = parse(cookies);
40
+ return {
41
+ [SHOPIFY_Y]: cookieData[SHOPIFY_Y] || "",
42
+ [SHOPIFY_S]: cookieData[SHOPIFY_S] || ""
43
+ };
44
+ }
45
+ export {
46
+ buildUUID,
47
+ getShopifyCookies,
48
+ hexTime
49
+ };
50
+ //# sourceMappingURL=cookies-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies-utils.mjs","sources":["../../src/cookies-utils.tsx"],"sourcesContent":["import {parse} from 'worktop/cookie';\nimport {ShopifyCookies} from './analytics-types.js';\nimport {SHOPIFY_Y, SHOPIFY_S} from './cart-constants.js';\n\nconst tokenHash = 'xxxx-4xxx-xxxx-xxxxxxxxxxxx';\n\nexport function buildUUID(): string {\n let hash = '';\n\n try {\n const crypto: Crypto = window.crypto;\n const randomValuesArray = new Uint16Array(31);\n crypto.getRandomValues(randomValuesArray);\n\n // Generate a strong UUID\n let i = 0;\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = randomValuesArray[i] % 16;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n i++;\n return v.toString(16);\n })\n .toUpperCase();\n } catch (err) {\n // crypto not available, generate weak UUID\n hash = tokenHash\n .replace(/[x]/g, (c: string): string => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n })\n .toUpperCase();\n }\n\n return `${hexTime()}-${hash}`;\n}\n\nexport function hexTime(): string {\n // 32 bit representations of new Date().getTime() and performance.now()\n let dateNumber = 0;\n let perfNumber = 0;\n\n // Result of zero-fill right shift is always positive\n dateNumber = new Date().getTime() >>> 0;\n\n try {\n perfNumber = performance.now() >>> 0;\n } catch (err) {\n perfNumber = 0;\n }\n\n const output = Math.abs(dateNumber + perfNumber)\n .toString(16)\n .toLowerCase();\n\n return output.padStart(8 - output.length, '0');\n}\n\nexport function getShopifyCookies(cookies: string): ShopifyCookies {\n const cookieData = parse(cookies);\n return {\n [SHOPIFY_Y]: cookieData[SHOPIFY_Y] || '',\n [SHOPIFY_S]: cookieData[SHOPIFY_S] || '',\n };\n}\n"],"names":[],"mappings":";;AAIA,MAAM,YAAY;AAEX,SAAS,YAAoB;AAClC,MAAI,OAAO;AAEP,MAAA;AACF,UAAM,SAAiB,OAAO;AACxB,UAAA,oBAAoB,IAAI,YAAY,EAAE;AAC5C,WAAO,gBAAgB,iBAAiB;AAGxC,QAAI,IAAI;AACR,WAAO,UACJ,QAAQ,QAAQ,CAAC,MAAsB;AAChC,YAAA,IAAI,kBAAkB,CAAC,IAAI;AACjC,YAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AACtC;AACO,aAAA,EAAE,SAAS,EAAE;AAAA,IAAA,CACrB,EACA,YAAY;AAAA,WACR;AAEP,WAAO,UACJ,QAAQ,QAAQ,CAAC,MAAsB;AACtC,YAAM,IAAK,KAAK,OAAO,IAAI,KAAM;AACjC,YAAM,IAAI,MAAM,MAAM,IAAK,IAAI,IAAO;AAC/B,aAAA,EAAE,SAAS,EAAE;AAAA,IAAA,CACrB,EACA,YAAY;AAAA,EACjB;AAEO,SAAA,GAAG,aAAa;AACzB;AAEO,SAAS,UAAkB;AAEhC,MAAI,aAAa;AACjB,MAAI,aAAa;AAGjB,eAAa,IAAI,KAAA,EAAO,QAAA,MAAc;AAElC,MAAA;AACW,iBAAA,YAAY,IAAU,MAAA;AAAA,WAC5B;AACM,iBAAA;AAAA,EACf;AAEM,QAAA,SAAS,KAAK,IAAI,aAAa,UAAU,EAC5C,SAAS,EAAE,EACX;AAEH,SAAO,OAAO,SAAS,IAAI,OAAO,QAAQ,GAAG;AAC/C;AAEO,SAAS,kBAAkB,SAAiC;AAC3D,QAAA,aAAa,MAAM,OAAO;AACzB,SAAA;AAAA,IACL,CAAC,SAAS,GAAG,WAAW,SAAS,KAAK;AAAA,IACtC,CAAC,SAAS,GAAG,WAAW,SAAS,KAAK;AAAA,EAAA;AAE1C;"}
@@ -1,37 +1,54 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const AddToCartButton = require("./AddToCartButton.js");
4
+ const analytics = require("./analytics.js");
5
+ const analyticsConstants = require("./analytics-constants.js");
4
6
  const BuyNowButton = require("./BuyNowButton.js");
5
7
  const CartCheckoutButton = require("./CartCheckoutButton.js");
8
+ const CartCost = require("./CartCost.js");
9
+ const CartLinePrice = require("./CartLinePrice.js");
10
+ const CartLineProvider = require("./CartLineProvider.js");
6
11
  const CartProvider = require("./CartProvider.js");
7
12
  const codegen_helpers = require("./codegen.helpers.js");
13
+ const cookiesUtils = require("./cookies-utils.js");
8
14
  const ExternalVideo = require("./ExternalVideo.js");
9
15
  const flattenConnection = require("./flatten-connection.js");
10
16
  const Image = require("./Image.js");
11
17
  const MediaFile = require("./MediaFile.js");
12
- const parseMetafield = require("./parse-metafield.js");
13
18
  const ModelViewer = require("./ModelViewer.js");
14
19
  const Money = require("./Money.js");
20
+ const parseMetafield = require("./parse-metafield.js");
15
21
  const ProductPrice = require("./ProductPrice.js");
16
22
  const ProductProvider = require("./ProductProvider.js");
17
23
  const ShopifyProvider = require("./ShopifyProvider.js");
18
24
  const ShopPayButton = require("./ShopPayButton.js");
19
25
  const storefrontClient = require("./storefront-client.js");
20
26
  const useMoney = require("./useMoney.js");
27
+ const useShopifyCookies = require("./useShopifyCookies.js");
21
28
  const Video = require("./Video.js");
22
29
  exports.AddToCartButton = AddToCartButton.AddToCartButton;
30
+ exports.getClientBrowserParameters = analytics.getClientBrowserParameters;
31
+ exports.sendShopifyAnalytics = analytics.sendShopifyAnalytics;
32
+ exports.AnalyticsEventName = analyticsConstants.AnalyticsEventName;
33
+ exports.AnalyticsPageType = analyticsConstants.AnalyticsPageType;
34
+ exports.ShopifySalesChannel = analyticsConstants.ShopifySalesChannel;
23
35
  exports.BuyNowButton = BuyNowButton.BuyNowButton;
24
36
  exports.CartCheckoutButton = CartCheckoutButton.CartCheckoutButton;
37
+ exports.CartCost = CartCost.CartCost;
38
+ exports.CartLinePrice = CartLinePrice.CartLinePrice;
39
+ exports.CartLineProvider = CartLineProvider.CartLineProvider;
40
+ exports.useCartLine = CartLineProvider.useCartLine;
25
41
  exports.CartProvider = CartProvider.CartProvider;
26
42
  exports.useCart = CartProvider.useCart;
27
43
  exports.storefrontApiCustomScalars = codegen_helpers.storefrontApiCustomScalars;
44
+ exports.getShopifyCookies = cookiesUtils.getShopifyCookies;
28
45
  exports.ExternalVideo = ExternalVideo.ExternalVideo;
29
46
  exports.flattenConnection = flattenConnection.flattenConnection;
30
47
  exports.Image = Image.Image;
31
48
  exports.MediaFile = MediaFile.MediaFile;
32
- exports.parseMetafield = parseMetafield.parseMetafield;
33
49
  exports.ModelViewer = ModelViewer.ModelViewer;
34
50
  exports.Money = Money.Money;
51
+ exports.parseMetafield = parseMetafield.parseMetafield;
35
52
  exports.ProductPrice = ProductPrice.ProductPrice;
36
53
  exports.ProductProvider = ProductProvider.ProductProvider;
37
54
  exports.useProduct = ProductProvider.useProduct;
@@ -40,5 +57,6 @@ exports.useShop = ShopifyProvider.useShop;
40
57
  exports.ShopPayButton = ShopPayButton.ShopPayButton;
41
58
  exports.createStorefrontClient = storefrontClient.createStorefrontClient;
42
59
  exports.useMoney = useMoney.useMoney;
60
+ exports.useShopifyCookies = useShopifyCookies.useShopifyCookies;
43
61
  exports.Video = Video.Video;
44
62
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}