@shopify/hydrogen 0.12.0 → 0.13.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 (256) hide show
  1. package/CHANGELOG.md +310 -26
  2. package/dist/esnext/client.d.ts +2 -0
  3. package/dist/esnext/client.js +2 -0
  4. package/dist/esnext/components/CartLineProvider/context.d.ts +10 -10
  5. package/dist/esnext/components/CartProvider/CartProvider.client.d.ts +1 -1
  6. package/dist/esnext/components/CartProvider/CartProvider.client.js +2 -1
  7. package/dist/esnext/components/CartProvider/cart-queries.d.ts +9 -0
  8. package/dist/esnext/components/CartProvider/cart-queries.js +876 -0
  9. package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.d.ts +1 -1
  10. package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +1 -1
  11. package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +1 -1
  12. package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +1 -1
  13. package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +1 -1
  14. package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +1 -1
  15. package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +1 -1
  16. package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +1 -1
  17. package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +1 -1
  18. package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +1 -1
  19. package/dist/esnext/components/CartProvider/hooks.d.ts +1 -1
  20. package/dist/esnext/components/CartProvider/hooks.js +4 -1
  21. package/dist/esnext/components/CartProvider/types.d.ts +1 -1
  22. package/dist/esnext/components/ExternalVideo/ExternalVideo.d.ts +6 -5
  23. package/dist/esnext/components/ExternalVideo/ExternalVideo.js +5 -2
  24. package/dist/esnext/components/Image/Image.d.ts +14 -12
  25. package/dist/esnext/components/Image/Image.js +17 -14
  26. package/dist/esnext/components/Link/Link.client.d.ts +4 -5
  27. package/dist/esnext/components/Link/Link.client.js +5 -4
  28. package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.js +1 -3
  29. package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.d.ts +0 -1
  30. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.d.ts +2 -2
  31. package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +15 -4
  32. package/dist/esnext/components/LocalizationProvider/LocalizationQuery.d.ts +1 -8
  33. package/dist/esnext/components/LocalizationProvider/index.d.ts +0 -1
  34. package/dist/esnext/components/LocalizationProvider/index.js +0 -1
  35. package/dist/esnext/components/MediaFile/MediaFile.d.ts +4 -3
  36. package/dist/esnext/components/Metafield/Metafield.client.d.ts +2 -2
  37. package/dist/esnext/components/Metafield/Metafield.client.js +8 -5
  38. package/dist/esnext/components/Metafield/types.d.ts +1 -1
  39. package/dist/esnext/components/ModelViewer/ModelViewer.client.d.ts +57 -56
  40. package/dist/esnext/components/ModelViewer/ModelViewer.client.js +10 -4
  41. package/dist/esnext/components/Money/Money.client.d.ts +5 -4
  42. package/dist/esnext/components/Money/Money.client.js +1 -1
  43. package/dist/esnext/components/ProductDescription/ProductDescription.client.d.ts +9 -4
  44. package/dist/esnext/components/ProductDescription/ProductDescription.client.js +4 -3
  45. package/dist/esnext/components/ProductMetafield/ProductMetafield.client.js +3 -3
  46. package/dist/esnext/components/ProductPrice/ProductPrice.client.js +2 -2
  47. package/dist/esnext/components/ProductProvider/ProductProvider.client.d.ts +3 -2
  48. package/dist/esnext/components/ProductProvider/ProductProvider.client.js +1 -0
  49. package/dist/esnext/components/ProductProvider/context.d.ts +23 -14
  50. package/dist/esnext/components/Seo/CollectionSeo.client.d.ts +3 -2
  51. package/dist/esnext/components/Seo/CollectionSeo.client.js +2 -2
  52. package/dist/esnext/components/Seo/DefaultPageSeo.client.d.ts +3 -2
  53. package/dist/esnext/components/Seo/DescriptionSeo.client.d.ts +2 -2
  54. package/dist/esnext/components/Seo/HomePageSeo.client.d.ts +1 -1
  55. package/dist/esnext/components/Seo/ImageSeo.client.d.ts +3 -2
  56. package/dist/esnext/components/Seo/ImageSeo.client.js +1 -1
  57. package/dist/esnext/components/Seo/PageSeo.client.d.ts +3 -2
  58. package/dist/esnext/components/Seo/ProductSeo.client.d.ts +3 -3
  59. package/dist/esnext/components/Seo/ProductSeo.client.js +10 -5
  60. package/dist/esnext/components/Seo/Seo.client.d.ts +10 -7
  61. package/dist/esnext/components/Seo/TitleSeo.client.d.ts +3 -4
  62. package/dist/esnext/components/Seo/TwitterSeo.client.d.ts +1 -1
  63. package/dist/esnext/components/Seo/seo-types.d.ts +17 -0
  64. package/dist/esnext/components/{ExternalVideo/ExternalVideoFragment.js → Seo/seo-types.js} +0 -0
  65. package/dist/esnext/components/UnitPrice/UnitPrice.client.d.ts +7 -6
  66. package/dist/esnext/components/UnitPrice/UnitPrice.client.js +1 -1
  67. package/dist/esnext/components/Video/Video.d.ts +5 -4
  68. package/dist/esnext/components/Video/Video.js +10 -2
  69. package/dist/esnext/components/index.d.ts +0 -3
  70. package/dist/esnext/components/index.js +0 -3
  71. package/dist/esnext/entry-client.js +9 -4
  72. package/dist/esnext/entry-server.js +99 -87
  73. package/dist/esnext/foundation/FileRoutes/FileRoutes.server.d.ts +22 -0
  74. package/dist/esnext/foundation/{Router/FileRoutes.js → FileRoutes/FileRoutes.server.js} +20 -10
  75. package/dist/esnext/foundation/Redirect/Redirect.client.d.ts +5 -0
  76. package/dist/esnext/foundation/Redirect/Redirect.client.js +14 -0
  77. package/dist/esnext/foundation/Route/Route.server.d.ts +12 -0
  78. package/dist/esnext/foundation/Route/Route.server.js +33 -0
  79. package/dist/esnext/foundation/Router/{Router.d.ts → BrowserRouter.client.d.ts} +3 -2
  80. package/dist/esnext/foundation/Router/{Router.js → BrowserRouter.client.js} +7 -5
  81. package/dist/esnext/foundation/Router/Router.server.d.ts +5 -3
  82. package/dist/esnext/foundation/Router/Router.server.js +7 -22
  83. package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.js +19 -24
  84. package/dist/esnext/foundation/ShopifyProvider/index.d.ts +0 -1
  85. package/dist/esnext/foundation/ShopifyProvider/index.js +0 -1
  86. package/dist/esnext/foundation/index.d.ts +0 -1
  87. package/dist/esnext/foundation/index.js +0 -1
  88. package/dist/esnext/{hooks → foundation}/useNavigate/useNavigate.d.ts +6 -3
  89. package/dist/esnext/{hooks → foundation}/useNavigate/useNavigate.js +4 -1
  90. package/dist/esnext/foundation/useQuery/hooks.d.ts +2 -4
  91. package/dist/esnext/foundation/useQuery/hooks.js +5 -2
  92. package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.d.ts +9 -0
  93. package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.js +7 -0
  94. package/dist/esnext/foundation/useRouteParams/useRouteParams.d.ts +4 -0
  95. package/dist/esnext/foundation/useRouteParams/useRouteParams.js +9 -0
  96. package/dist/esnext/foundation/useUrl/useUrl.js +1 -1
  97. package/dist/esnext/framework/Hydration/ServerComponentRequest.server.d.ts +6 -0
  98. package/dist/esnext/framework/Hydration/ServerComponentRequest.server.js +5 -0
  99. package/dist/esnext/framework/Hydration/ServerComponentResponse.server.d.ts +4 -1
  100. package/dist/esnext/framework/Hydration/ServerComponentResponse.server.js +5 -0
  101. package/dist/esnext/framework/middleware.js +25 -3
  102. package/dist/esnext/framework/plugin.js +6 -1
  103. package/dist/esnext/framework/plugins/vite-plugin-css-modules-rsc.d.ts +2 -0
  104. package/dist/esnext/framework/plugins/vite-plugin-css-modules-rsc.js +28 -0
  105. package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +61 -75
  106. package/dist/esnext/framework/plugins/vite-plugin-platform-entry.js +1 -1
  107. package/dist/esnext/hooks/index.d.ts +0 -1
  108. package/dist/esnext/hooks/index.js +0 -1
  109. package/dist/esnext/hooks/useCartLine/useCartLine.d.ts +10 -10
  110. package/dist/esnext/hooks/useCountry/useCountry.d.ts +4 -4
  111. package/dist/esnext/hooks/useMoney/hooks.d.ts +3 -3
  112. package/dist/esnext/hooks/useMoney/hooks.js +2 -2
  113. package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.d.ts +17 -2
  114. package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.js +7 -3
  115. package/dist/esnext/hooks/useProduct/useProduct.d.ts +34 -96
  116. package/dist/esnext/hooks/useProductOptions/helpers.d.ts +6 -4
  117. package/dist/esnext/hooks/useProductOptions/helpers.js +13 -6
  118. package/dist/esnext/hooks/useProductOptions/types.d.ts +15 -35
  119. package/dist/esnext/hooks/useProductOptions/useProductOptions.d.ts +6 -5
  120. package/dist/esnext/hooks/useProductOptions/useProductOptions.js +13 -3
  121. package/dist/esnext/hooks/useShopQuery/hooks.js +47 -7
  122. package/dist/esnext/index.d.ts +7 -5
  123. package/dist/esnext/index.js +7 -5
  124. package/dist/esnext/platforms/worker-event.d.ts +0 -8
  125. package/dist/esnext/platforms/worker-event.js +2 -23
  126. package/dist/esnext/platforms/worker.d.ts +14 -0
  127. package/dist/esnext/platforms/worker.js +24 -0
  128. package/dist/esnext/{graphql/types/types.d.ts → storefront-api-types.d.ts} +389 -32
  129. package/dist/esnext/{graphql/types/types.js → storefront-api-types.js} +326 -30
  130. package/dist/esnext/streaming.server.d.ts +9 -5
  131. package/dist/esnext/streaming.server.js +2 -18
  132. package/dist/esnext/types.d.ts +1 -16
  133. package/dist/esnext/utilities/apiRoutes.d.ts +5 -1
  134. package/dist/esnext/utilities/apiRoutes.js +2 -3
  135. package/dist/esnext/utilities/devtools.d.ts +11 -0
  136. package/dist/esnext/utilities/devtools.js +11 -0
  137. package/dist/esnext/utilities/fetch.d.ts +7 -1
  138. package/dist/esnext/utilities/fetch.js +9 -10
  139. package/dist/esnext/utilities/flattenConnection/flattenConnection.d.ts +3 -2
  140. package/dist/esnext/utilities/flattenConnection/flattenConnection.js +9 -2
  141. package/dist/esnext/utilities/graphql-tracker.d.ts +17 -0
  142. package/dist/esnext/utilities/graphql-tracker.js +119 -0
  143. package/dist/esnext/utilities/image_size.d.ts +5 -4
  144. package/dist/esnext/utilities/log/log-query-timeline.d.ts +1 -1
  145. package/dist/esnext/utilities/log/log-query-timeline.js +1 -2
  146. package/dist/esnext/utilities/log/log.d.ts +1 -0
  147. package/dist/esnext/utilities/log/utils.js +3 -0
  148. package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +3 -2
  149. package/dist/esnext/version.d.ts +1 -1
  150. package/dist/esnext/version.js +1 -1
  151. package/dist/node/entry-server.js +104 -88
  152. package/dist/node/foundation/Redirect/Redirect.client.d.ts +5 -0
  153. package/dist/node/foundation/Redirect/Redirect.client.js +17 -0
  154. package/dist/node/foundation/Router/BrowserRouter.client.d.ts +13 -0
  155. package/dist/node/foundation/Router/BrowserRouter.client.js +77 -0
  156. package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.js +24 -25
  157. package/dist/node/foundation/ServerRequestProvider/index.js +5 -1
  158. package/dist/node/foundation/ServerStateProvider/ServerStateProvider.js +5 -1
  159. package/dist/node/foundation/ssr-interop.d.ts +29 -0
  160. package/dist/node/foundation/ssr-interop.js +39 -0
  161. package/dist/node/foundation/useNavigate/useNavigate.d.ts +13 -0
  162. package/dist/node/foundation/useNavigate/useNavigate.js +18 -0
  163. package/dist/node/foundation/useServerState/index.d.ts +1 -0
  164. package/dist/node/foundation/useServerState/index.js +5 -0
  165. package/dist/node/foundation/useServerState/use-server-state.d.ts +16 -0
  166. package/dist/node/foundation/useServerState/use-server-state.js +24 -0
  167. package/dist/node/framework/Hydration/ServerComponentRequest.server.d.ts +6 -0
  168. package/dist/node/framework/Hydration/ServerComponentRequest.server.js +5 -0
  169. package/dist/node/framework/Hydration/ServerComponentResponse.server.d.ts +4 -1
  170. package/dist/node/framework/Hydration/ServerComponentResponse.server.js +8 -0
  171. package/dist/node/framework/middleware.js +30 -4
  172. package/dist/node/framework/plugin.js +11 -2
  173. package/dist/node/framework/plugins/vite-plugin-css-modules-rsc.d.ts +2 -0
  174. package/dist/node/framework/plugins/vite-plugin-css-modules-rsc.js +31 -0
  175. package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +61 -75
  176. package/dist/node/framework/plugins/vite-plugin-platform-entry.js +1 -1
  177. package/dist/node/{graphql/types/types.d.ts → storefront-api-types.d.ts} +389 -32
  178. package/dist/node/{graphql/types/types.js → storefront-api-types.js} +327 -31
  179. package/dist/node/streaming.server.d.ts +9 -5
  180. package/dist/node/streaming.server.js +2 -18
  181. package/dist/node/types.d.ts +1 -16
  182. package/dist/node/utilities/apiRoutes.d.ts +5 -1
  183. package/dist/node/utilities/apiRoutes.js +2 -3
  184. package/dist/node/utilities/fetch.d.ts +7 -1
  185. package/dist/node/utilities/fetch.js +9 -10
  186. package/dist/node/utilities/log/log-query-timeline.d.ts +1 -1
  187. package/dist/node/utilities/log/log-query-timeline.js +1 -2
  188. package/dist/node/utilities/log/log.d.ts +1 -0
  189. package/dist/node/utilities/log/utils.js +3 -0
  190. package/dist/node/utilities/web-api-polyfill.js +5 -1
  191. package/dist/node/version.d.ts +1 -1
  192. package/dist/node/version.js +1 -1
  193. package/package.json +9 -12
  194. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-plugin.js +43 -104
  195. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.development.server.js +1566 -848
  196. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.production.min.server.js +36 -421
  197. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.development.server.js +1523 -864
  198. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.production.min.server.js +35 -437
  199. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.development.js +507 -517
  200. package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.production.min.js +10 -246
  201. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js +16 -23
  202. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-plugin.js +47 -108
  203. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.browser.server.js +1033 -306
  204. package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.node.server.js +965 -293
  205. package/vendor/react-server-dom-vite/esm/react-server-dom-vite.js +98 -108
  206. package/vendor/react-server-dom-vite/package.json +0 -2
  207. package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.d.ts +0 -8
  208. package/dist/esnext/components/Image/ImageFragment.d.ts +0 -8
  209. package/dist/esnext/components/Image/ImageFragment.js +0 -1
  210. package/dist/esnext/components/MediaFile/MediaFileFragment.d.ts +0 -36
  211. package/dist/esnext/components/MediaFile/MediaFileFragment.js +0 -1
  212. package/dist/esnext/components/Metafield/MetafieldFragment.d.ts +0 -22
  213. package/dist/esnext/components/Metafield/MetafieldFragment.js +0 -1
  214. package/dist/esnext/components/ModelViewer/Model3DFragment.d.ts +0 -15
  215. package/dist/esnext/components/ModelViewer/Model3DFragment.js +0 -1
  216. package/dist/esnext/components/Money/MoneyFragment.d.ts +0 -8
  217. package/dist/esnext/components/Money/MoneyFragment.js +0 -1
  218. package/dist/esnext/components/ProductProvider/ProductProviderFragment.d.ts +0 -247
  219. package/dist/esnext/components/ProductProvider/ProductProviderFragment.js +0 -1
  220. package/dist/esnext/components/ProductProvider/types.d.ts +0 -19
  221. package/dist/esnext/components/ProductProvider/types.js +0 -1
  222. package/dist/esnext/components/RawHtml/RawHtml.d.ts +0 -17
  223. package/dist/esnext/components/RawHtml/RawHtml.js +0 -21
  224. package/dist/esnext/components/RawHtml/index.d.ts +0 -1
  225. package/dist/esnext/components/RawHtml/index.js +0 -1
  226. package/dist/esnext/components/Seo/SeoFragment.d.ts +0 -66
  227. package/dist/esnext/components/Seo/SeoFragment.js +0 -1
  228. package/dist/esnext/components/Seo/types.d.ts +0 -15
  229. package/dist/esnext/components/Seo/types.js +0 -1
  230. package/dist/esnext/components/UnitPrice/UnitPriceFragment.d.ts +0 -15
  231. package/dist/esnext/components/UnitPrice/UnitPriceFragment.js +0 -1
  232. package/dist/esnext/components/Video/VideoFragment.d.ts +0 -15
  233. package/dist/esnext/components/Video/VideoFragment.js +0 -1
  234. package/dist/esnext/foundation/Router/FileRoutes.d.ts +0 -18
  235. package/dist/esnext/foundation/Router/Route.server.d.ts +0 -9
  236. package/dist/esnext/foundation/Router/Route.server.js +0 -6
  237. package/dist/esnext/foundation/Router/useParams.d.ts +0 -1
  238. package/dist/esnext/foundation/Router/useParams.js +0 -5
  239. package/dist/esnext/fragments.d.ts +0 -20
  240. package/dist/esnext/fragments.js +0 -10
  241. package/dist/esnext/graphql/graphql-constants.d.ts +0 -1756
  242. package/dist/esnext/graphql/graphql-constants.js +0 -3447
  243. package/dist/esnext/hooks/useAvailableCountries/index.d.ts +0 -1
  244. package/dist/esnext/hooks/useAvailableCountries/index.js +0 -1
  245. package/dist/esnext/hooks/useAvailableCountries/useAvailableCountries.d.ts +0 -11
  246. package/dist/esnext/hooks/useAvailableCountries/useAvailableCountries.js +0 -17
  247. package/dist/esnext/hooks/useNavigate/index.d.ts +0 -1
  248. package/dist/esnext/hooks/useNavigate/index.js +0 -1
  249. package/dist/esnext/hooks/useProductOptions/SellingPlanFragment.d.ts +0 -31
  250. package/dist/esnext/hooks/useProductOptions/SellingPlanFragment.js +0 -1
  251. package/dist/esnext/hooks/useProductOptions/SellingPlanGroupsFragment.d.ts +0 -46
  252. package/dist/esnext/hooks/useProductOptions/SellingPlanGroupsFragment.js +0 -1
  253. package/dist/esnext/hooks/useProductOptions/VariantFragment.d.ts +0 -106
  254. package/dist/esnext/hooks/useProductOptions/VariantFragment.js +0 -1
  255. package/fragments.d.ts +0 -1
  256. package/fragments.js +0 -1
@@ -0,0 +1,876 @@
1
+ export const CartLineAdd = `
2
+ mutation CartLineAdd($cartId: ID!, $lines: [CartLineInput!]!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
3
+ cartLinesAdd(cartId: $cartId, lines: $lines) {
4
+ cart {
5
+ ...CartFragment
6
+ }
7
+ }
8
+ }
9
+
10
+ fragment CartFragment on Cart {
11
+ id
12
+ checkoutUrl
13
+ buyerIdentity {
14
+ countryCode
15
+ customer {
16
+ id
17
+ email
18
+ firstName
19
+ lastName
20
+ displayName
21
+ }
22
+ email
23
+ phone
24
+ }
25
+ lines(first: $numCartLines) {
26
+ edges {
27
+ node {
28
+ id
29
+ quantity
30
+ attributes {
31
+ key
32
+ value
33
+ }
34
+ merchandise {
35
+ ... on ProductVariant {
36
+ id
37
+ availableForSale
38
+ compareAtPriceV2 {
39
+ ...MoneyFragment
40
+ }
41
+ priceV2 {
42
+ ...MoneyFragment
43
+ }
44
+ requiresShipping
45
+ title
46
+ image {
47
+ ...ImageFragment
48
+ }
49
+ product {
50
+ handle
51
+ title
52
+ }
53
+ selectedOptions {
54
+ name
55
+ value
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ estimatedCost {
63
+ subtotalAmount {
64
+ ...MoneyFragment
65
+ }
66
+ totalAmount {
67
+ ...MoneyFragment
68
+ }
69
+ totalDutyAmount {
70
+ ...MoneyFragment
71
+ }
72
+ totalTaxAmount {
73
+ ...MoneyFragment
74
+ }
75
+ }
76
+ note
77
+ attributes {
78
+ key
79
+ value
80
+ }
81
+ discountCodes {
82
+ code
83
+ }
84
+ }
85
+
86
+ fragment MoneyFragment on MoneyV2 {
87
+ currencyCode
88
+ amount
89
+ }
90
+ fragment ImageFragment on Image {
91
+ id
92
+ url
93
+ altText
94
+ width
95
+ height
96
+ }
97
+ `;
98
+ export const CartCreate = `
99
+ mutation CartCreate($input: CartInput!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
100
+ cartCreate(input: $input) {
101
+ cart {
102
+ ...CartFragment
103
+ }
104
+ }
105
+ }
106
+
107
+ fragment CartFragment on Cart {
108
+ id
109
+ checkoutUrl
110
+ buyerIdentity {
111
+ countryCode
112
+ customer {
113
+ id
114
+ email
115
+ firstName
116
+ lastName
117
+ displayName
118
+ }
119
+ email
120
+ phone
121
+ }
122
+ lines(first: $numCartLines) {
123
+ edges {
124
+ node {
125
+ id
126
+ quantity
127
+ attributes {
128
+ key
129
+ value
130
+ }
131
+ merchandise {
132
+ ... on ProductVariant {
133
+ id
134
+ availableForSale
135
+ compareAtPriceV2 {
136
+ ...MoneyFragment
137
+ }
138
+ priceV2 {
139
+ ...MoneyFragment
140
+ }
141
+ requiresShipping
142
+ title
143
+ image {
144
+ ...ImageFragment
145
+ }
146
+ product {
147
+ handle
148
+ title
149
+ }
150
+ selectedOptions {
151
+ name
152
+ value
153
+ }
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ estimatedCost {
160
+ subtotalAmount {
161
+ ...MoneyFragment
162
+ }
163
+ totalAmount {
164
+ ...MoneyFragment
165
+ }
166
+ totalDutyAmount {
167
+ ...MoneyFragment
168
+ }
169
+ totalTaxAmount {
170
+ ...MoneyFragment
171
+ }
172
+ }
173
+ note
174
+ attributes {
175
+ key
176
+ value
177
+ }
178
+ discountCodes {
179
+ code
180
+ }
181
+ }
182
+
183
+ fragment MoneyFragment on MoneyV2 {
184
+ currencyCode
185
+ amount
186
+ }
187
+ fragment ImageFragment on Image {
188
+ id
189
+ url
190
+ altText
191
+ width
192
+ height
193
+ }
194
+ `;
195
+ export const CartLineRemove = `
196
+ mutation CartLineRemove($cartId: ID!, $lines: [ID!]!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
197
+ cartLinesRemove(cartId: $cartId, lineIds: $lines) {
198
+ cart {
199
+ ...CartFragment
200
+ }
201
+ }
202
+ }
203
+
204
+ fragment CartFragment on Cart {
205
+ id
206
+ checkoutUrl
207
+ buyerIdentity {
208
+ countryCode
209
+ customer {
210
+ id
211
+ email
212
+ firstName
213
+ lastName
214
+ displayName
215
+ }
216
+ email
217
+ phone
218
+ }
219
+ lines(first: $numCartLines) {
220
+ edges {
221
+ node {
222
+ id
223
+ quantity
224
+ attributes {
225
+ key
226
+ value
227
+ }
228
+ merchandise {
229
+ ... on ProductVariant {
230
+ id
231
+ availableForSale
232
+ compareAtPriceV2 {
233
+ ...MoneyFragment
234
+ }
235
+ priceV2 {
236
+ ...MoneyFragment
237
+ }
238
+ requiresShipping
239
+ title
240
+ image {
241
+ ...ImageFragment
242
+ }
243
+ product {
244
+ handle
245
+ title
246
+ }
247
+ selectedOptions {
248
+ name
249
+ value
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
256
+ estimatedCost {
257
+ subtotalAmount {
258
+ ...MoneyFragment
259
+ }
260
+ totalAmount {
261
+ ...MoneyFragment
262
+ }
263
+ totalDutyAmount {
264
+ ...MoneyFragment
265
+ }
266
+ totalTaxAmount {
267
+ ...MoneyFragment
268
+ }
269
+ }
270
+ note
271
+ attributes {
272
+ key
273
+ value
274
+ }
275
+ discountCodes {
276
+ code
277
+ }
278
+ }
279
+
280
+ fragment MoneyFragment on MoneyV2 {
281
+ currencyCode
282
+ amount
283
+ }
284
+ fragment ImageFragment on Image {
285
+ id
286
+ url
287
+ altText
288
+ width
289
+ height
290
+ }
291
+ `;
292
+ export const CartLineUpdate = `
293
+ mutation CartLineUpdate($cartId: ID!, $lines: [CartLineUpdateInput!]!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
294
+ cartLinesUpdate(cartId: $cartId, lines: $lines) {
295
+ cart {
296
+ ...CartFragment
297
+ }
298
+ }
299
+ }
300
+
301
+ fragment CartFragment on Cart {
302
+ id
303
+ checkoutUrl
304
+ buyerIdentity {
305
+ countryCode
306
+ customer {
307
+ id
308
+ email
309
+ firstName
310
+ lastName
311
+ displayName
312
+ }
313
+ email
314
+ phone
315
+ }
316
+ lines(first: $numCartLines) {
317
+ edges {
318
+ node {
319
+ id
320
+ quantity
321
+ attributes {
322
+ key
323
+ value
324
+ }
325
+ merchandise {
326
+ ... on ProductVariant {
327
+ id
328
+ availableForSale
329
+ compareAtPriceV2 {
330
+ ...MoneyFragment
331
+ }
332
+ priceV2 {
333
+ ...MoneyFragment
334
+ }
335
+ requiresShipping
336
+ title
337
+ image {
338
+ ...ImageFragment
339
+ }
340
+ product {
341
+ handle
342
+ title
343
+ }
344
+ selectedOptions {
345
+ name
346
+ value
347
+ }
348
+ }
349
+ }
350
+ }
351
+ }
352
+ }
353
+ estimatedCost {
354
+ subtotalAmount {
355
+ ...MoneyFragment
356
+ }
357
+ totalAmount {
358
+ ...MoneyFragment
359
+ }
360
+ totalDutyAmount {
361
+ ...MoneyFragment
362
+ }
363
+ totalTaxAmount {
364
+ ...MoneyFragment
365
+ }
366
+ }
367
+ note
368
+ attributes {
369
+ key
370
+ value
371
+ }
372
+ discountCodes {
373
+ code
374
+ }
375
+ }
376
+
377
+ fragment MoneyFragment on MoneyV2 {
378
+ currencyCode
379
+ amount
380
+ }
381
+ fragment ImageFragment on Image {
382
+ id
383
+ url
384
+ altText
385
+ width
386
+ height
387
+ }
388
+ `;
389
+ export const CartNoteUpdate = `
390
+ mutation CartNoteUpdate($cartId: ID!, $note: String, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
391
+ cartNoteUpdate(cartId: $cartId, note: $note) {
392
+ cart {
393
+ ...CartFragment
394
+ }
395
+ }
396
+ }
397
+
398
+ fragment CartFragment on Cart {
399
+ id
400
+ checkoutUrl
401
+ buyerIdentity {
402
+ countryCode
403
+ customer {
404
+ id
405
+ email
406
+ firstName
407
+ lastName
408
+ displayName
409
+ }
410
+ email
411
+ phone
412
+ }
413
+ lines(first: $numCartLines) {
414
+ edges {
415
+ node {
416
+ id
417
+ quantity
418
+ attributes {
419
+ key
420
+ value
421
+ }
422
+ merchandise {
423
+ ... on ProductVariant {
424
+ id
425
+ availableForSale
426
+ compareAtPriceV2 {
427
+ ...MoneyFragment
428
+ }
429
+ priceV2 {
430
+ ...MoneyFragment
431
+ }
432
+ requiresShipping
433
+ title
434
+ image {
435
+ ...ImageFragment
436
+ }
437
+ product {
438
+ handle
439
+ title
440
+ }
441
+ selectedOptions {
442
+ name
443
+ value
444
+ }
445
+ }
446
+ }
447
+ }
448
+ }
449
+ }
450
+ estimatedCost {
451
+ subtotalAmount {
452
+ ...MoneyFragment
453
+ }
454
+ totalAmount {
455
+ ...MoneyFragment
456
+ }
457
+ totalDutyAmount {
458
+ ...MoneyFragment
459
+ }
460
+ totalTaxAmount {
461
+ ...MoneyFragment
462
+ }
463
+ }
464
+ note
465
+ attributes {
466
+ key
467
+ value
468
+ }
469
+ discountCodes {
470
+ code
471
+ }
472
+ }
473
+
474
+ fragment MoneyFragment on MoneyV2 {
475
+ currencyCode
476
+ amount
477
+ }
478
+ fragment ImageFragment on Image {
479
+ id
480
+ url
481
+ altText
482
+ width
483
+ height
484
+ }
485
+ `;
486
+ export const CartBuyerIdentityUpdate = `
487
+ mutation CartBuyerIdentityUpdate(
488
+ $cartId: ID!
489
+ $buyerIdentity: CartBuyerIdentityInput!
490
+ $numCartLines: Int = 250
491
+ $country: CountryCode = ZZ
492
+ ) @inContext(country: $country) {
493
+ cartBuyerIdentityUpdate(cartId: $cartId, buyerIdentity: $buyerIdentity) {
494
+ cart {
495
+ ...CartFragment
496
+ }
497
+ }
498
+ }
499
+
500
+ fragment CartFragment on Cart {
501
+ id
502
+ checkoutUrl
503
+ buyerIdentity {
504
+ countryCode
505
+ customer {
506
+ id
507
+ email
508
+ firstName
509
+ lastName
510
+ displayName
511
+ }
512
+ email
513
+ phone
514
+ }
515
+ lines(first: $numCartLines) {
516
+ edges {
517
+ node {
518
+ id
519
+ quantity
520
+ attributes {
521
+ key
522
+ value
523
+ }
524
+ merchandise {
525
+ ... on ProductVariant {
526
+ id
527
+ availableForSale
528
+ compareAtPriceV2 {
529
+ ...MoneyFragment
530
+ }
531
+ priceV2 {
532
+ ...MoneyFragment
533
+ }
534
+ requiresShipping
535
+ title
536
+ image {
537
+ ...ImageFragment
538
+ }
539
+ product {
540
+ handle
541
+ title
542
+ }
543
+ selectedOptions {
544
+ name
545
+ value
546
+ }
547
+ }
548
+ }
549
+ }
550
+ }
551
+ }
552
+ estimatedCost {
553
+ subtotalAmount {
554
+ ...MoneyFragment
555
+ }
556
+ totalAmount {
557
+ ...MoneyFragment
558
+ }
559
+ totalDutyAmount {
560
+ ...MoneyFragment
561
+ }
562
+ totalTaxAmount {
563
+ ...MoneyFragment
564
+ }
565
+ }
566
+ note
567
+ attributes {
568
+ key
569
+ value
570
+ }
571
+ discountCodes {
572
+ code
573
+ }
574
+ }
575
+
576
+ fragment MoneyFragment on MoneyV2 {
577
+ currencyCode
578
+ amount
579
+ }
580
+ fragment ImageFragment on Image {
581
+ id
582
+ url
583
+ altText
584
+ width
585
+ height
586
+ }
587
+ `;
588
+ export const CartAttributesUpdate = `
589
+ mutation CartAttributesUpdate($attributes: [AttributeInput!]!, $cartId: ID!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
590
+ cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {
591
+ cart {
592
+ ...CartFragment
593
+ }
594
+ }
595
+ }
596
+
597
+ fragment CartFragment on Cart {
598
+ id
599
+ checkoutUrl
600
+ buyerIdentity {
601
+ countryCode
602
+ customer {
603
+ id
604
+ email
605
+ firstName
606
+ lastName
607
+ displayName
608
+ }
609
+ email
610
+ phone
611
+ }
612
+ lines(first: $numCartLines) {
613
+ edges {
614
+ node {
615
+ id
616
+ quantity
617
+ attributes {
618
+ key
619
+ value
620
+ }
621
+ merchandise {
622
+ ... on ProductVariant {
623
+ id
624
+ availableForSale
625
+ compareAtPriceV2 {
626
+ ...MoneyFragment
627
+ }
628
+ priceV2 {
629
+ ...MoneyFragment
630
+ }
631
+ requiresShipping
632
+ title
633
+ image {
634
+ ...ImageFragment
635
+ }
636
+ product {
637
+ handle
638
+ title
639
+ }
640
+ selectedOptions {
641
+ name
642
+ value
643
+ }
644
+ }
645
+ }
646
+ }
647
+ }
648
+ }
649
+ estimatedCost {
650
+ subtotalAmount {
651
+ ...MoneyFragment
652
+ }
653
+ totalAmount {
654
+ ...MoneyFragment
655
+ }
656
+ totalDutyAmount {
657
+ ...MoneyFragment
658
+ }
659
+ totalTaxAmount {
660
+ ...MoneyFragment
661
+ }
662
+ }
663
+ note
664
+ attributes {
665
+ key
666
+ value
667
+ }
668
+ discountCodes {
669
+ code
670
+ }
671
+ }
672
+
673
+ fragment MoneyFragment on MoneyV2 {
674
+ currencyCode
675
+ amount
676
+ }
677
+ fragment ImageFragment on Image {
678
+ id
679
+ url
680
+ altText
681
+ width
682
+ height
683
+ }
684
+ `;
685
+ export const CartDiscountCodesUpdate = `
686
+ mutation CartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!], $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
687
+ cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {
688
+ cart {
689
+ ...CartFragment
690
+ }
691
+ }
692
+ }
693
+
694
+ fragment CartFragment on Cart {
695
+ id
696
+ checkoutUrl
697
+ buyerIdentity {
698
+ countryCode
699
+ customer {
700
+ id
701
+ email
702
+ firstName
703
+ lastName
704
+ displayName
705
+ }
706
+ email
707
+ phone
708
+ }
709
+ lines(first: $numCartLines) {
710
+ edges {
711
+ node {
712
+ id
713
+ quantity
714
+ attributes {
715
+ key
716
+ value
717
+ }
718
+ merchandise {
719
+ ... on ProductVariant {
720
+ id
721
+ availableForSale
722
+ compareAtPriceV2 {
723
+ ...MoneyFragment
724
+ }
725
+ priceV2 {
726
+ ...MoneyFragment
727
+ }
728
+ requiresShipping
729
+ title
730
+ image {
731
+ ...ImageFragment
732
+ }
733
+ product {
734
+ handle
735
+ title
736
+ }
737
+ selectedOptions {
738
+ name
739
+ value
740
+ }
741
+ }
742
+ }
743
+ }
744
+ }
745
+ }
746
+ estimatedCost {
747
+ subtotalAmount {
748
+ ...MoneyFragment
749
+ }
750
+ totalAmount {
751
+ ...MoneyFragment
752
+ }
753
+ totalDutyAmount {
754
+ ...MoneyFragment
755
+ }
756
+ totalTaxAmount {
757
+ ...MoneyFragment
758
+ }
759
+ }
760
+ note
761
+ attributes {
762
+ key
763
+ value
764
+ }
765
+ discountCodes {
766
+ code
767
+ }
768
+ }
769
+
770
+ fragment MoneyFragment on MoneyV2 {
771
+ currencyCode
772
+ amount
773
+ }
774
+ fragment ImageFragment on Image {
775
+ id
776
+ url
777
+ altText
778
+ width
779
+ height
780
+ }
781
+ `;
782
+ export const CartQuery = `
783
+ query CartQuery($id: ID!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
784
+ cart(id: $id) {
785
+ ...CartFragment
786
+ }
787
+ }
788
+
789
+ fragment CartFragment on Cart {
790
+ id
791
+ checkoutUrl
792
+ buyerIdentity {
793
+ countryCode
794
+ customer {
795
+ id
796
+ email
797
+ firstName
798
+ lastName
799
+ displayName
800
+ }
801
+ email
802
+ phone
803
+ }
804
+ lines(first: $numCartLines) {
805
+ edges {
806
+ node {
807
+ id
808
+ quantity
809
+ attributes {
810
+ key
811
+ value
812
+ }
813
+ merchandise {
814
+ ... on ProductVariant {
815
+ id
816
+ availableForSale
817
+ compareAtPriceV2 {
818
+ ...MoneyFragment
819
+ }
820
+ priceV2 {
821
+ ...MoneyFragment
822
+ }
823
+ requiresShipping
824
+ title
825
+ image {
826
+ ...ImageFragment
827
+ }
828
+ product {
829
+ handle
830
+ title
831
+ }
832
+ selectedOptions {
833
+ name
834
+ value
835
+ }
836
+ }
837
+ }
838
+ }
839
+ }
840
+ }
841
+ estimatedCost {
842
+ subtotalAmount {
843
+ ...MoneyFragment
844
+ }
845
+ totalAmount {
846
+ ...MoneyFragment
847
+ }
848
+ totalDutyAmount {
849
+ ...MoneyFragment
850
+ }
851
+ totalTaxAmount {
852
+ ...MoneyFragment
853
+ }
854
+ }
855
+ note
856
+ attributes {
857
+ key
858
+ value
859
+ }
860
+ discountCodes {
861
+ code
862
+ }
863
+ }
864
+
865
+ fragment MoneyFragment on MoneyV2 {
866
+ currencyCode
867
+ amount
868
+ }
869
+ fragment ImageFragment on Image {
870
+ id
871
+ url
872
+ altText
873
+ width
874
+ height
875
+ }
876
+ `;