@doswiftly/storefront-sdk 10.0.0 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # Changelog
2
2
 
3
+ ## 11.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c2e80b2: Add `paymentCreate` — initiate a payment session for a completed order.
8
+
9
+ After `cartComplete` returns an order, call `paymentCreate` (when `order.canCreatePayment` is `true`) to start the payment. Orders with an offline payment method (cash on delivery, manual bank transfer) skip this step. The returned `PaymentSession` is flow-aware — branch on `session.flow`:
10
+ - `ONLINE_REDIRECT` → redirect the browser to `session.redirectUrl`
11
+ - `ONLINE_EMBEDDED` → render an in-page widget with `session.clientSecret`
12
+ - `INSTANT_DIRECT` → already settled, read `session.status`
13
+
14
+ **`@doswiftly/storefront-operations`** — new `PaymentCreate` mutation and `PaymentSession` fragment.
15
+
16
+ **`@doswiftly/storefront-sdk`** — new `CartClient.createPayment(input)` method, plus the `PaymentSession`, `PaymentCreateInput`, `PaymentInitiationFlow` and `PaymentErrorCode` types.
17
+
18
+ ```ts
19
+ const { order } = await cartClient.complete({ cartId });
20
+ if (order.canCreatePayment) {
21
+ const session = await cartClient.createPayment({
22
+ orderId: order.id,
23
+ returnUrl: "https://my-shop.example/checkout/complete",
24
+ });
25
+ if (session.flow === "ONLINE_REDIRECT") {
26
+ window.location.href = session.redirectUrl!;
27
+ }
28
+ }
29
+ ```
30
+
31
+ `paymentCreate` is idempotent on the order — re-calling returns the existing still-valid session instead of creating a duplicate, so it is safe to retry. `returnUrl` / `cancelUrl` are optional and, when supplied, must point to a verified domain of the shop. The call throws on validation/business errors — inspect `error.userErrors[0].code` (`PaymentErrorCode`): `ORDER_NOT_FOUND`, `ORDER_ALREADY_PAID`, `ORDER_NOT_PAYABLE`, `PAYMENT_PROVIDER_NOT_CONFIGURED`, `RETURN_URL_INVALID`, `INVALID_ID_FORMAT`, `PAYMENT_FAILED`.
32
+
33
+ ## 11.0.0
34
+
35
+ ### Major Changes
36
+
37
+ - c1faee7: **Breaking:** `cartComplete` no longer returns `cart` in its payload.
38
+
39
+ After completion the cart is converted and locked — returning it meant an extra server round-trip for a dead resource. The mutation payload (and `cartClient.complete()`) now returns only `{ order, warnings }`. The `order` is the meaningful result of completion and carries `canCreatePayment` + `paymentMethodType` for the post-completion payment flow.
40
+
41
+ **Migration:**
42
+ - `cartClient.complete()` now returns `{ order, warnings }` — remove any use of `result.cart`. After completion, clear your local cart state and work with `result.order`.
43
+ - If you query `cartComplete` directly, drop the `cart { ... }` selection — the field no longer exists on `CartCompletePayload`.
44
+
45
+ ### Patch Changes
46
+
47
+ - 363fa74: Fix `cartClient.complete()` failing with HTTP 400 `There can be only one fragment named "Money"`.
48
+
49
+ The `cartComplete` operation selects both `cart` and `order`, whose GraphQL fragment trees share nested fragments (`Money`, `MailingAddress`). The operation string emitted those shared fragments twice — an invalid GraphQL document that the server rejects, so `cartClient.complete()` failed before an order could be submitted.
50
+
51
+ **Detailed changes:**
52
+ - Every cart and customer operation is now assembled through a fragment-deduplicating composer, so a fragment shared across selections is emitted exactly once. No API surface change — the operations behave identically, they are just valid documents now.
53
+ - `CartCompleteOutcome.order` is now `Order` (non-null) instead of `Order | null`. On a successful `complete()` the created order is always present in the result — `complete()` already throws on `userErrors` before returning, so there is no success path with a missing order. Existing `if (result.order)` checks keep compiling.
54
+
55
+ **Migration:** none required. If you added a workaround that re-fetched the order when `complete()` returned `order: null`, you can drop it — `result.order` is now always populated on success.
56
+
3
57
  ## 10.0.0
4
58
 
5
59
  ### Major Changes
@@ -22,7 +22,7 @@
22
22
  * ```
23
23
  */
24
24
  import type { StorefrontClient } from '../client/types';
25
- import type { Cart, CartCreateInput, CartLineInput, CartLineUpdateInput, CartBuyerIdentityInput, CartSetShippingAddressInput, CartSetBillingAddressInput, CartSelectShippingMethodInput, CartSelectPaymentMethodInput, CartApplyGiftCardInput, CartRemoveGiftCardInput, CartUpdateGiftCardRecipientInput, CartCompleteInput, CartWarning, Order, DiscountValidationResult } from './types';
25
+ import type { Cart, CartCreateInput, CartLineInput, CartLineUpdateInput, CartBuyerIdentityInput, CartSetShippingAddressInput, CartSetBillingAddressInput, CartSelectShippingMethodInput, CartSelectPaymentMethodInput, CartApplyGiftCardInput, CartRemoveGiftCardInput, CartUpdateGiftCardRecipientInput, CartCompleteInput, CartWarning, Order, DiscountValidationResult, PaymentSession, PaymentCreateInput } from './types';
26
26
  /**
27
27
  * Standard mutation return shape — `cart` is non-null on success (userErrors
28
28
  * cause assertNoUserErrors to throw), `warnings` may be empty.
@@ -32,13 +32,15 @@ export interface CartMutationOutcome {
32
32
  warnings: CartWarning[];
33
33
  }
34
34
  /**
35
- * cartComplete result — `order` may be null while backend resolver Phase 4
36
- * follow-up lands (currently storefront should fallback to `order(id)` query
37
- * if null). `cart` is the final post-completion state.
35
+ * cartComplete result — `order` is the Order created from the cart, non-null on
36
+ * success (`complete()` throws via `assertNoUserErrors` before returning if the
37
+ * mutation reported `userErrors`). The cart is NOT returned: after completion it
38
+ * is CONVERTED/locked, so drop your local cart and work with the Order. The
39
+ * Order carries `canCreatePayment` + `paymentMethodType` for deciding the
40
+ * post-completion payment flow.
38
41
  */
39
42
  export interface CartCompleteOutcome {
40
- cart: Cart;
41
- order: Order | null;
43
+ order: Order;
42
44
  warnings: CartWarning[];
43
45
  }
44
46
  export declare class CartClient {
@@ -115,19 +117,37 @@ export declare class CartClient {
115
117
  */
116
118
  updateGiftCardRecipient(input: CartUpdateGiftCardRecipientInput): Promise<CartMutationOutcome>;
117
119
  /**
118
- * Complete cart → create Order. Returns `{ cart, order, warnings }`.
119
- * Idempotent on `idempotencyKey` (auto-generated z cartId + minute timestamp
120
- * jeśli omitted).
121
- *
122
- * Order zawiera `canCreatePayment` + `paymentMethodType` (po extend fragment
123
- * Order w SSOT) — storefront czyta żeby zdecydować payment flow. paymentUrl
124
- * celowo NIE w response (Decision D4) — storefront inicjuje payment osobnym
125
- * `paymentCreate` mutation (po sprawdzeniu order.canCreatePayment).
120
+ * Complete cart → create Order. Returns `{ order, warnings }`.
121
+ * Idempotent on `idempotencyKey` (auto-generated from cartId + minute timestamp
122
+ * if omitted).
126
123
  *
127
- * Backend resolver może obecnie zwrócić `order: null` (Phase 4 follow-up)
128
- * storefront powinien fallback do `order(id, orderNumber)` query.
124
+ * `order` is populated on success `assertNoUserErrors` throws first if the
125
+ * mutation reported `userErrors`. The cart is NOT returned: after completion it
126
+ * is CONVERTED/locked, so drop your local cart and work with the Order. The
127
+ * Order carries `canCreatePayment` + `paymentMethodType` so the storefront can
128
+ * decide the payment flow. `paymentUrl` is intentionally NOT in the response
129
+ * (Decision D4) — the storefront initiates payment with a separate
130
+ * `paymentCreate` mutation after checking `order.canCreatePayment`.
129
131
  */
130
132
  complete(input: CartCompleteInput): Promise<CartCompleteOutcome>;
133
+ /**
134
+ * Initiate a payment session for an order created by `complete()`. Call this
135
+ * when `order.canCreatePayment` is `true` — orders with an offline payment
136
+ * method (cash on delivery, manual bank transfer) skip this step.
137
+ *
138
+ * `input.returnUrl` / `input.cancelUrl` are optional; when supplied they must
139
+ * point to a verified domain of the shop (the server rejects others). The
140
+ * returned `PaymentSession` is flow-aware — branch on `session.flow`:
141
+ * `ONLINE_REDIRECT` → redirect to `session.redirectUrl`, `ONLINE_EMBEDDED` →
142
+ * render a widget with `session.clientSecret`, `INSTANT_DIRECT` → already
143
+ * settled, read `session.status`.
144
+ *
145
+ * Idempotent — calling it again for the same order returns the existing
146
+ * still-valid session instead of creating a duplicate (safe to retry).
147
+ * Throws a `StorefrontError` (carrying `userErrors`) when the order can't be
148
+ * paid — inspect `.userErrors[0].code` (`PaymentErrorCode`).
149
+ */
150
+ createPayment(input: PaymentCreateInput): Promise<PaymentSession>;
131
151
  /**
132
152
  * Validate discount code preview (Decision D3) — read-only Query, NIE
133
153
  * mutation. Doesn't modify cart state. Returns `{ isValid, discount?, error? }`
@@ -1 +1 @@
1
- {"version":3,"file":"cart-client.d.ts","sourceRoot":"","sources":["../../../src/core/cart/cart-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cart-client.d.ts","sourceRoot":"","sources":["../../../src/core/cart/cart-client.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@
22
22
  * ```
23
23
  */
24
24
  import { assertNoUserErrors } from '../helpers/assert-no-user-errors';
25
- import { CART_QUERY, CART_CREATE, CART_ADD_LINES, CART_UPDATE_LINES, CART_REMOVE_LINES, CART_DISCOUNT_CODES_UPDATE, CART_UPDATE_NOTE, CART_UPDATE_BUYER_IDENTITY, CART_SET_SHIPPING_ADDRESS, CART_SET_BILLING_ADDRESS, CART_SELECT_SHIPPING_METHOD, CART_SELECT_PAYMENT_METHOD, CART_APPLY_GIFT_CARD, CART_REMOVE_GIFT_CARD, CART_UPDATE_GIFT_CARD_RECIPIENT, CART_COMPLETE, CART_VALIDATE_DISCOUNT_CODE, } from '../operations/cart';
25
+ import { CART_QUERY, CART_CREATE, CART_ADD_LINES, CART_UPDATE_LINES, CART_REMOVE_LINES, CART_DISCOUNT_CODES_UPDATE, CART_UPDATE_NOTE, CART_UPDATE_BUYER_IDENTITY, CART_SET_SHIPPING_ADDRESS, CART_SET_BILLING_ADDRESS, CART_SELECT_SHIPPING_METHOD, CART_SELECT_PAYMENT_METHOD, CART_APPLY_GIFT_CARD, CART_REMOVE_GIFT_CARD, CART_UPDATE_GIFT_CARD_RECIPIENT, CART_COMPLETE, CART_VALIDATE_DISCOUNT_CODE, PAYMENT_CREATE, } from '../operations/cart';
26
26
  export class CartClient {
27
27
  client;
28
28
  constructor(client) {
@@ -161,27 +161,48 @@ export class CartClient {
161
161
  return { cart: data.cartUpdateGiftCardRecipient.cart, warnings: data.cartUpdateGiftCardRecipient.warnings ?? [] };
162
162
  }
163
163
  /**
164
- * Complete cart → create Order. Returns `{ cart, order, warnings }`.
165
- * Idempotent on `idempotencyKey` (auto-generated z cartId + minute timestamp
166
- * jeśli omitted).
164
+ * Complete cart → create Order. Returns `{ order, warnings }`.
165
+ * Idempotent on `idempotencyKey` (auto-generated from cartId + minute timestamp
166
+ * if omitted).
167
167
  *
168
- * Order zawiera `canCreatePayment` + `paymentMethodType` (po extend fragment
169
- * Order w SSOT) storefront czyta żeby zdecydować payment flow. paymentUrl
170
- * celowo NIE w response (Decision D4) storefront inicjuje payment osobnym
171
- * `paymentCreate` mutation (po sprawdzeniu order.canCreatePayment).
172
- *
173
- * Backend resolver może obecnie zwrócić `order: null` (Phase 4 follow-up) —
174
- * storefront powinien fallback do `order(id, orderNumber)` query.
168
+ * `order` is populated on success — `assertNoUserErrors` throws first if the
169
+ * mutation reported `userErrors`. The cart is NOT returned: after completion it
170
+ * is CONVERTED/locked, so drop your local cart and work with the Order. The
171
+ * Order carries `canCreatePayment` + `paymentMethodType` so the storefront can
172
+ * decide the payment flow. `paymentUrl` is intentionally NOT in the response
173
+ * (Decision D4) the storefront initiates payment with a separate
174
+ * `paymentCreate` mutation after checking `order.canCreatePayment`.
175
175
  */
176
176
  async complete(input) {
177
177
  const data = await this.client.mutate(CART_COMPLETE, { input });
178
178
  assertNoUserErrors(data.cartComplete);
179
179
  return {
180
- cart: data.cartComplete.cart,
181
180
  order: data.cartComplete.order,
182
181
  warnings: data.cartComplete.warnings ?? [],
183
182
  };
184
183
  }
184
+ /**
185
+ * Initiate a payment session for an order created by `complete()`. Call this
186
+ * when `order.canCreatePayment` is `true` — orders with an offline payment
187
+ * method (cash on delivery, manual bank transfer) skip this step.
188
+ *
189
+ * `input.returnUrl` / `input.cancelUrl` are optional; when supplied they must
190
+ * point to a verified domain of the shop (the server rejects others). The
191
+ * returned `PaymentSession` is flow-aware — branch on `session.flow`:
192
+ * `ONLINE_REDIRECT` → redirect to `session.redirectUrl`, `ONLINE_EMBEDDED` →
193
+ * render a widget with `session.clientSecret`, `INSTANT_DIRECT` → already
194
+ * settled, read `session.status`.
195
+ *
196
+ * Idempotent — calling it again for the same order returns the existing
197
+ * still-valid session instead of creating a duplicate (safe to retry).
198
+ * Throws a `StorefrontError` (carrying `userErrors`) when the order can't be
199
+ * paid — inspect `.userErrors[0].code` (`PaymentErrorCode`).
200
+ */
201
+ async createPayment(input) {
202
+ const data = await this.client.mutate(PAYMENT_CREATE, { input });
203
+ assertNoUserErrors(data.paymentCreate);
204
+ return data.paymentCreate.payment;
205
+ }
185
206
  /**
186
207
  * Validate discount code preview (Decision D3) — read-only Query, NIE
187
208
  * mutation. Doesn't modify cart state. Returns `{ isValid, discount?, error? }`
@@ -353,6 +353,53 @@ export interface Order {
353
353
  canCreatePayment: boolean;
354
354
  paymentMethodType: PaymentMethodType;
355
355
  }
356
+ /**
357
+ * How the storefront launches the payment after `createPayment`. Branch on this:
358
+ * - `ONLINE_REDIRECT` — redirect the browser to `PaymentSession.redirectUrl`
359
+ * - `ONLINE_EMBEDDED` — render an in-page widget with `PaymentSession.clientSecret`
360
+ * - `INSTANT_DIRECT` — already settled with no UI, read `PaymentSession.status`
361
+ * - `OFFLINE_MANUAL` — never returned (`order.canCreatePayment` is false for offline methods)
362
+ *
363
+ * Mirror of GraphQL `PaymentInitiationFlow` enum.
364
+ */
365
+ export type PaymentInitiationFlow = 'ONLINE_REDIRECT' | 'ONLINE_EMBEDDED' | 'INSTANT_DIRECT' | 'OFFLINE_MANUAL';
366
+ /**
367
+ * Machine-readable error code surfaced when `createPayment` fails. The call
368
+ * throws a `StorefrontError` on `userErrors` — read `.userErrors[0].code` off
369
+ * the thrown error and compare against these values.
370
+ */
371
+ export type PaymentErrorCode = 'ORDER_NOT_FOUND' | 'ORDER_ALREADY_PAID' | 'ORDER_NOT_PAYABLE' | 'PAYMENT_PROVIDER_NOT_CONFIGURED' | 'RETURN_URL_INVALID' | 'INVALID_ID_FORMAT' | 'PAYMENT_FAILED';
372
+ /**
373
+ * Initiated payment session for an order — returned by `CartClient.createPayment`.
374
+ * Mirror of GraphQL `PaymentSession`. Branch on `flow` to decide the next step
375
+ * (`redirectUrl` for redirect, `clientSecret` for an embedded widget, `status`
376
+ * for an instant settlement).
377
+ */
378
+ export interface PaymentSession {
379
+ id: string;
380
+ orderId: string;
381
+ flow: PaymentInitiationFlow;
382
+ /** Provider code that created the session (e.g. `PAYU`). */
383
+ provider: string;
384
+ /** Hosted gateway URL — present for the `ONLINE_REDIRECT` flow. */
385
+ redirectUrl: string | null;
386
+ /** In-page widget token — present for the `ONLINE_EMBEDDED` flow. */
387
+ clientSecret: string | null;
388
+ /** Order payment status at session creation. */
389
+ status: string;
390
+ /** When `redirectUrl` / `clientSecret` expires (ISO 8601), if the gateway sets a TTL. */
391
+ expiresAt: string | null;
392
+ }
393
+ /**
394
+ * Input for `CartClient.createPayment`. `returnUrl` / `cancelUrl` are optional —
395
+ * when supplied they must point to a verified domain of the shop (the server
396
+ * rejects others to prevent open redirects).
397
+ */
398
+ export interface PaymentCreateInput {
399
+ orderId: string;
400
+ returnUrl?: string;
401
+ cancelUrl?: string;
402
+ }
356
403
  export type DiscountErrorCode = 'NOT_FOUND' | 'INACTIVE' | 'NOT_STARTED' | 'EXPIRED' | 'USAGE_LIMIT_REACHED' | 'CUSTOMER_USAGE_LIMIT_REACHED' | 'CUSTOMER_NOT_ELIGIBLE' | 'MINIMUM_ORDER_NOT_MET' | 'MINIMUM_QUANTITY_NOT_MET' | 'DISCOUNT_COMBINATION_NOT_ALLOWED' | 'SHOP_NOT_FOUND';
357
404
  export type DiscountApplicationType = 'PERCENTAGE' | 'FIXED_AMOUNT' | 'FREE_SHIPPING' | 'BUY_X_GET_Y';
358
405
  export interface DiscountInfo {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/cart/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAMD,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAMD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,KAAK,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,qBAAqB,EAAE,KAAK,GAAG,IAAI,CAAC;CACrC;AAMD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACzD,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;CACf;AAMD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAMD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC;IAC1B,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAC9C,UAAU,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAKzD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,sBAAsB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClD,qBAAqB,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACxD,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;CACzC;AAMD;;;;;;;;;GASG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,2BAA2B,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,uFAAuF;IACvF,mBAAmB,CAAC,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC;CAC5D;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+GAA+G;IAC/G,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAMD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,KAAK,CAAC;IACrB,gBAAgB,EAAE,KAAK,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,GACN,eAAe,GACf,kBAAkB,GAClB,OAAO,CAAC;AAMZ,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,KAAK,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;QACvB,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC;KAC7B,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAMD,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,UAAU,GACV,aAAa,GACb,SAAS,GACT,qBAAqB,GACrB,8BAA8B,GAC9B,uBAAuB,GACvB,uBAAuB,GACvB,0BAA0B,GAC1B,kCAAkC,GAClC,gBAAgB,CAAC;AAErB,MAAM,MAAM,uBAAuB,GAC/B,YAAY,GACZ,cAAc,GACd,eAAe,GACf,aAAa,CAAC;AAElB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,uBAAuB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/cart/types.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export { StorefrontError, ErrorCodes, type StorefrontErrorOptions } from './erro
48
48
  export { cacheNone, cacheShort, cacheLong, cachePrivate, cacheCustom, generateCacheControlHeader, type CacheOverrides, } from './cache';
49
49
  export { CartClient } from './cart/cart-client';
50
50
  export type { CartMutationOutcome, CartCompleteOutcome } from './cart/cart-client';
51
- export type { Cart, CartLine, CartLineEdge, CartLineConnection, ProductVariant, ProductVariantWeight, ImageThumbnail, PageInfo, AttributeSelection, CartLineCost, CartCost, CartBuyerIdentity, CartDiscountCode, CartDiscountAllocation, CartLineInput, CartLineUpdateInput, CartCreateInput, CartBuyerIdentityInput, CartAttributeSelectionInput, SelectedOption, Money, CartAddressInput, CartSetShippingAddressInput, CartSetBillingAddressInput, CartSelectShippingMethodInput, CartSelectPaymentMethodInput, CartApplyGiftCardInput, CartRemoveGiftCardInput, CartUpdateGiftCardRecipientInput, CartCompleteInput, CartShippingMethod, CartAppliedGiftCard, CartSelectedPaymentMethod, PaymentMethodType, CartWarning, Order, DiscountValidationResult, DiscountInfo, DiscountValidationError, DiscountErrorCode, DiscountApplicationType, } from './cart/types';
51
+ export type { Cart, CartLine, CartLineEdge, CartLineConnection, ProductVariant, ProductVariantWeight, ImageThumbnail, PageInfo, AttributeSelection, CartLineCost, CartCost, CartBuyerIdentity, CartDiscountCode, CartDiscountAllocation, CartLineInput, CartLineUpdateInput, CartCreateInput, CartBuyerIdentityInput, CartAttributeSelectionInput, SelectedOption, Money, CartAddressInput, CartSetShippingAddressInput, CartSetBillingAddressInput, CartSelectShippingMethodInput, CartSelectPaymentMethodInput, CartApplyGiftCardInput, CartRemoveGiftCardInput, CartUpdateGiftCardRecipientInput, CartCompleteInput, CartShippingMethod, CartAppliedGiftCard, CartSelectedPaymentMethod, PaymentMethodType, CartWarning, Order, PaymentInitiationFlow, PaymentErrorCode, PaymentSession, PaymentCreateInput, DiscountValidationResult, DiscountInfo, DiscountValidationError, DiscountErrorCode, DiscountApplicationType, } from './cart/types';
52
52
  export { AuthClient } from './auth/auth-client';
53
53
  export type { Customer, CustomerAccessToken, MailingAddress, AuthResult, CustomerCreateInput, } from './auth/types';
54
54
  export { assertNoUserErrors } from './helpers/assert-no-user-errors';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,9 @@
9
9
  * - customerRefreshToken → CustomerRefreshTokenPayload
10
10
  * - customerSignup(input: CustomerCreateInput!) → CustomerSignupPayload
11
11
  */
12
- export declare const CUSTOMER_LOGIN = "\n mutation CustomerLogin($input: CustomerAccessTokenCreateInput!) {\n customerLogin(input: $input) {\n customerAccessToken { ...CustomerAccessTokenFields }\n userErrors { ...UserErrorFields }\n }\n }\n \n fragment CustomerAccessTokenFields on CustomerAccessToken {\n accessToken\n expiresAt\n }\n\n \n fragment UserErrorFields on UserError {\n message\n field\n code\n }\n\n";
13
- export declare const CUSTOMER_LOGOUT = "\n mutation CustomerLogout {\n customerLogout {\n deletedAccessToken\n deletedCustomerAccessTokenId\n userErrors { ...UserErrorFields }\n }\n }\n \n fragment UserErrorFields on UserError {\n message\n field\n code\n }\n\n";
14
- export declare const CUSTOMER_REFRESH_TOKEN = "\n mutation CustomerRefreshToken {\n customerRefreshToken {\n customerAccessToken { ...CustomerAccessTokenFields }\n userErrors { ...UserErrorFields }\n }\n }\n \n fragment CustomerAccessTokenFields on CustomerAccessToken {\n accessToken\n expiresAt\n }\n\n \n fragment UserErrorFields on UserError {\n message\n field\n code\n }\n\n";
15
- export declare const CUSTOMER_SIGNUP = "\n mutation CustomerSignup($input: CustomerCreateInput!) {\n customerSignup(input: $input) {\n customer { ...CustomerFields }\n customerAccessToken { ...CustomerAccessTokenFields }\n userErrors { ...UserErrorFields }\n }\n }\n \n fragment CustomerFields on Customer {\n id\n email\n firstName\n lastName\n displayName\n phone\n isEmailVerified\n emailMarketing\n defaultAddress {\n id\n streetLine1\n streetLine2\n city\n company\n country\n countryCode\n firstName\n lastName\n name\n phone\n state\n stateCode\n postalCode\n isDefault\n }\n orderCount\n totalSpent {\n amount\n currencyCode\n }\n createdAt\n updatedAt\n }\n\n \n fragment CustomerAccessTokenFields on CustomerAccessToken {\n accessToken\n expiresAt\n }\n\n \n fragment UserErrorFields on UserError {\n message\n field\n code\n }\n\n";
16
- export declare const CUSTOMER_QUERY = "\n query Customer {\n customer {\n ...CustomerFields\n }\n }\n \n fragment CustomerFields on Customer {\n id\n email\n firstName\n lastName\n displayName\n phone\n isEmailVerified\n emailMarketing\n defaultAddress {\n id\n streetLine1\n streetLine2\n city\n company\n country\n countryCode\n firstName\n lastName\n name\n phone\n state\n stateCode\n postalCode\n isDefault\n }\n orderCount\n totalSpent {\n amount\n currencyCode\n }\n createdAt\n updatedAt\n }\n\n";
12
+ export declare const CUSTOMER_LOGIN: string;
13
+ export declare const CUSTOMER_LOGOUT: string;
14
+ export declare const CUSTOMER_REFRESH_TOKEN: string;
15
+ export declare const CUSTOMER_SIGNUP: string;
16
+ export declare const CUSTOMER_QUERY: string;
17
17
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/operations/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA8DH,eAAO,MAAM,cAAc,maAS1B,CAAC;AAEF,eAAO,MAAM,eAAe,qQAS3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,yXASlC,CAAC;AAEF,eAAO,MAAM,eAAe,u9BAW3B,CAAC;AAMF,eAAO,MAAM,cAAc,umBAO1B,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/operations/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgEH,eAAO,MAAM,cAAc,QASzB,CAAC;AAEH,eAAO,MAAM,eAAe,QAS1B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QASjC,CAAC;AAEH,eAAO,MAAM,eAAe,QAW1B,CAAC;AAMH,eAAO,MAAM,cAAc,QAOzB,CAAC"}
@@ -9,6 +9,7 @@
9
9
  * - customerRefreshToken → CustomerRefreshTokenPayload
10
10
  * - customerSignup(input: CustomerCreateInput!) → CustomerSignupPayload
11
11
  */
12
+ import { composeOperation } from './compose';
12
13
  // ---------------------------------------------------------------------------
13
14
  // Fragments
14
15
  // ---------------------------------------------------------------------------
@@ -64,7 +65,7 @@ const CUSTOMER_FRAGMENT = `
64
65
  // ---------------------------------------------------------------------------
65
66
  // Mutations
66
67
  // ---------------------------------------------------------------------------
67
- export const CUSTOMER_LOGIN = `
68
+ export const CUSTOMER_LOGIN = composeOperation(`
68
69
  mutation CustomerLogin($input: CustomerAccessTokenCreateInput!) {
69
70
  customerLogin(input: $input) {
70
71
  customerAccessToken { ...CustomerAccessTokenFields }
@@ -73,8 +74,8 @@ export const CUSTOMER_LOGIN = `
73
74
  }
74
75
  ${CUSTOMER_ACCESS_TOKEN_FRAGMENT}
75
76
  ${USER_ERROR_FRAGMENT}
76
- `;
77
- export const CUSTOMER_LOGOUT = `
77
+ `);
78
+ export const CUSTOMER_LOGOUT = composeOperation(`
78
79
  mutation CustomerLogout {
79
80
  customerLogout {
80
81
  deletedAccessToken
@@ -83,8 +84,8 @@ export const CUSTOMER_LOGOUT = `
83
84
  }
84
85
  }
85
86
  ${USER_ERROR_FRAGMENT}
86
- `;
87
- export const CUSTOMER_REFRESH_TOKEN = `
87
+ `);
88
+ export const CUSTOMER_REFRESH_TOKEN = composeOperation(`
88
89
  mutation CustomerRefreshToken {
89
90
  customerRefreshToken {
90
91
  customerAccessToken { ...CustomerAccessTokenFields }
@@ -93,8 +94,8 @@ export const CUSTOMER_REFRESH_TOKEN = `
93
94
  }
94
95
  ${CUSTOMER_ACCESS_TOKEN_FRAGMENT}
95
96
  ${USER_ERROR_FRAGMENT}
96
- `;
97
- export const CUSTOMER_SIGNUP = `
97
+ `);
98
+ export const CUSTOMER_SIGNUP = composeOperation(`
98
99
  mutation CustomerSignup($input: CustomerCreateInput!) {
99
100
  customerSignup(input: $input) {
100
101
  customer { ...CustomerFields }
@@ -105,15 +106,15 @@ export const CUSTOMER_SIGNUP = `
105
106
  ${CUSTOMER_FRAGMENT}
106
107
  ${CUSTOMER_ACCESS_TOKEN_FRAGMENT}
107
108
  ${USER_ERROR_FRAGMENT}
108
- `;
109
+ `);
109
110
  // ---------------------------------------------------------------------------
110
111
  // Queries
111
112
  // ---------------------------------------------------------------------------
112
- export const CUSTOMER_QUERY = `
113
+ export const CUSTOMER_QUERY = composeOperation(`
113
114
  query Customer {
114
115
  customer {
115
116
  ...CustomerFields
116
117
  }
117
118
  }
118
119
  ${CUSTOMER_FRAGMENT}
119
- `;
120
+ `);
@@ -11,31 +11,38 @@
11
11
  * Cart mutations always return full Cart + userErrors + warnings (non-fatal hints).
12
12
  * Drift detection: PreToolUse hook validuje strings przeciwko storefront-operations/schema.graphql.
13
13
  */
14
- export declare const CART_QUERY = "\n query Cart($id: ID!) {\n cart(id: $id) {\n ...Cart\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n";
15
- export declare const CART_CREATE = "\n mutation CartCreate($input: CartCreateInput) {\n cartCreate(input: $input) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
16
- export declare const CART_ADD_LINES = "\n mutation CartAddLines($id: ID!, $lines: [CartLineInput!]!) {\n cartAddLines(id: $id, lines: $lines) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
17
- export declare const CART_UPDATE_LINES = "\n mutation CartUpdateLines($id: ID!, $lines: [CartLineUpdateInput!]!) {\n cartUpdateLines(id: $id, lines: $lines) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
18
- export declare const CART_REMOVE_LINES = "\n mutation CartRemoveLines($id: ID!, $lineIds: [ID!]!) {\n cartRemoveLines(id: $id, lineIds: $lineIds) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
19
- export declare const CART_DISCOUNT_CODES_UPDATE = "\n mutation CartDiscountCodesUpdate($id: ID!, $discountCodes: [String!]!) {\n cartDiscountCodesUpdate(id: $id, discountCodes: $discountCodes) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
20
- export declare const CART_UPDATE_NOTE = "\n mutation CartUpdateNote($id: ID!, $note: String!) {\n cartUpdateNote(id: $id, note: $note) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
21
- export declare const CART_UPDATE_BUYER_IDENTITY = "\n mutation CartUpdateBuyerIdentity($id: ID!, $buyerIdentity: CartBuyerIdentityInput!) {\n cartUpdateBuyerIdentity(id: $id, buyerIdentity: $buyerIdentity) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
22
- export declare const CART_SET_SHIPPING_ADDRESS = "\n mutation CartSetShippingAddress($input: CartSetShippingAddressInput!) {\n cartSetShippingAddress(input: $input) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
23
- export declare const CART_SET_BILLING_ADDRESS = "\n mutation CartSetBillingAddress($input: CartSetBillingAddressInput!) {\n cartSetBillingAddress(input: $input) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
24
- export declare const CART_SELECT_SHIPPING_METHOD = "\n mutation CartSelectShippingMethod($input: CartSelectShippingMethodInput!) {\n cartSelectShippingMethod(input: $input) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
25
- export declare const CART_SELECT_PAYMENT_METHOD = "\n mutation CartSelectPaymentMethod($input: CartSelectPaymentMethodInput!) {\n cartSelectPaymentMethod(input: $input) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
26
- export declare const CART_APPLY_GIFT_CARD = "\n mutation CartApplyGiftCard($input: CartApplyGiftCardInput!) {\n cartApplyGiftCard(input: $input) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
27
- export declare const CART_REMOVE_GIFT_CARD = "\n mutation CartRemoveGiftCard($input: CartRemoveGiftCardInput!) {\n cartRemoveGiftCard(input: $input) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
28
- export declare const CART_UPDATE_GIFT_CARD_RECIPIENT = "\n mutation CartUpdateGiftCardRecipient($input: CartUpdateGiftCardRecipientInput!) {\n cartUpdateGiftCardRecipient(input: $input) {\n cart { ...Cart }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
14
+ export declare const CART_QUERY: string;
15
+ export declare const CART_CREATE: string;
16
+ export declare const CART_ADD_LINES: string;
17
+ export declare const CART_UPDATE_LINES: string;
18
+ export declare const CART_REMOVE_LINES: string;
19
+ export declare const CART_DISCOUNT_CODES_UPDATE: string;
20
+ export declare const CART_UPDATE_NOTE: string;
21
+ export declare const CART_UPDATE_BUYER_IDENTITY: string;
22
+ export declare const CART_SET_SHIPPING_ADDRESS: string;
23
+ export declare const CART_SET_BILLING_ADDRESS: string;
24
+ export declare const CART_SELECT_SHIPPING_METHOD: string;
25
+ export declare const CART_SELECT_PAYMENT_METHOD: string;
26
+ export declare const CART_APPLY_GIFT_CARD: string;
27
+ export declare const CART_REMOVE_GIFT_CARD: string;
28
+ export declare const CART_UPDATE_GIFT_CARD_RECIPIENT: string;
29
29
  /**
30
- * cartComplete — returns Cart + Order (z canCreatePayment + paymentMethodType
31
- * signal dla post-payment flow decisions). paymentUrl NIE w payload (Decision D4) —
32
- * storefront wywołuje osobne `paymentCreate` mutation (po sprawdzeniu order.canCreatePayment).
33
- *
34
- * Note (backend resolver Phase 4 follow-up): obecnie cartComplete może zwrócić
35
- * `order: null` — storefront powinien fallback do `order(id, orderNumber)` query
36
- * jeśli null. SDK type sygnalizuje to przez `order: Order | null`.
30
+ * cartComplete — returns the Order created from the cart (carrying
31
+ * `canCreatePayment` + `paymentMethodType` signals for post-completion payment
32
+ * flow decisions). The cart itself is NOT returned — after completion it is
33
+ * CONVERTED/locked, so the storefront drops its local cart and works with the
34
+ * Order. `order` is non-null on success. `paymentUrl` is intentionally NOT in
35
+ * the payload (Decision D4) the storefront calls a separate `paymentCreate`
36
+ * mutation after checking `order.canCreatePayment`.
37
+ */
38
+ export declare const CART_COMPLETE: string;
39
+ /**
40
+ * paymentCreate — initiates a payment session for an order created by
41
+ * `cartComplete`. Call after checking `order.canCreatePayment`. Idempotent on
42
+ * the order — re-calling returns the existing still-valid session. Branch on
43
+ * `payment.flow` (redirect / embedded / instant) to launch the payment.
37
44
  */
38
- export declare const CART_COMPLETE = "\n mutation CartComplete($input: CartCompleteInput!) {\n cartComplete(input: $input) {\n cart { ...Cart }\n order { ...Order }\n userErrors { ...UserError }\n warnings { ...CartWarning }\n }\n }\n \n fragment Cart on Cart {\n id\n checkoutUrl\n totalQuantity\n cost { ...CartCost }\n lines(first: 100) {\n edges {\n cursor\n node { ... on CartLine { ...CartLine } }\n }\n nodes { ... on CartLine { ...CartLine } }\n pageInfo { ...PageInfo }\n totalCount\n }\n buyerIdentity { ...CartBuyerIdentity }\n discountCodes { ...CartDiscountCode }\n discountAllocations { ...CartDiscountAllocation }\n note\n attributes { key value }\n email\n phone\n shippingAddress { ...MailingAddress }\n billingAddress { ...MailingAddress }\n selectedShippingMethod { ...CartShippingMethod }\n selectedPaymentMethod { ...CartSelectedPaymentMethod }\n appliedGiftCards { ...CartAppliedGiftCard }\n createdAt\n updatedAt\n }\n \n fragment CartCost on CartCost {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalDuty { ...Money }\n checkoutCharge { ...Money }\n }\n\n \n fragment CartLine on CartLine {\n id\n quantity\n variant { ...ProductVariant }\n cost { ...CartLineCost }\n attributes { key value }\n attributeSelections { ...AttributeSelection }\n productId\n productTitle\n productHandle\n productType\n }\n \n fragment CartLineCost on CartLineCost {\n pricePerUnit { ...Money }\n subtotal { ...Money }\n total { ...Money }\n compareAtPricePerUnit { ...Money }\n }\n\n \n fragment ProductVariant on ProductVariant {\n id\n title\n sku\n price { ...Money }\n compareAtPrice { ...Money }\n isAvailable\n availableStock\n image { ...ImageThumbnail }\n selectedOptions { ...SelectedOption }\n barcode\n weight { value unit }\n sortOrder\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment ImageThumbnail on Image {\n id\n url(transform: { maxWidth: 300 })\n altText\n width\n height\n thumbhash\n }\n\n \n fragment SelectedOption on SelectedOption {\n name\n value\n }\n\n\n \n fragment AttributeSelection on AttributeSelection {\n attributeDefinitionId\n attributeName\n type\n fillingMode\n billingMode\n optionId\n optionLabel\n optionIds\n textValue\n surchargeAmount\n surchargeType\n taxClassId\n linkedVariantId\n }\n\n\n \n fragment CartBuyerIdentity on CartBuyerIdentity {\n email\n phone\n countryCode\n }\n\n \n fragment CartDiscountCode on CartDiscountCode {\n code\n isApplicable\n }\n\n \n fragment CartDiscountAllocation on CartDiscountAllocation {\n discountCode\n amount { ...Money }\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n \n fragment CartShippingMethod on CartShippingMethod {\n handle\n title\n price { ...Money }\n }\n\n \n fragment CartAppliedGiftCard on CartAppliedGiftCard {\n maskedCode\n lastCharacters\n appliedAmount { ...Money }\n remainingBalance { ...Money }\n }\n\n \n fragment CartSelectedPaymentMethod on PaymentMethod {\n id\n name\n provider\n type\n icon\n description\n isDefault\n supportedCurrencies\n position\n }\n\n \n fragment PageInfo on PageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n\n\n \n fragment Order on Order {\n id\n orderNumber\n totals {\n total { ...Money }\n subtotal { ...Money }\n totalTax { ...Money }\n totalShipping { ...Money }\n }\n status\n paymentStatus\n fulfillmentStatus\n processedAt\n confirmedAt\n cancelledAt\n expiredAt\n shippingAddress { ...MailingAddress }\n itemCount\n canCreatePayment\n paymentMethodType\n }\n \n fragment Money on Money {\n amount\n currencyCode\n }\n\n \n fragment MailingAddress on MailingAddress {\n id\n firstName\n lastName\n name\n company\n streetLine1\n streetLine2\n city\n state\n stateCode\n country\n countryCode\n postalCode\n phone\n isDefault\n }\n\n\n \n fragment UserError on UserError {\n message\n code\n field\n }\n\n \n fragment CartWarning on CartWarning {\n message\n code\n target\n }\n\n";
45
+ export declare const PAYMENT_CREATE: string;
39
46
  /**
40
47
  * cartValidateDiscountCode Query — read-only preview discount applicability
41
48
  * (Decision D3). No cart side effects; storefront UI używa do inline feedback
@@ -44,5 +51,5 @@ export declare const CART_COMPLETE = "\n mutation CartComplete($input: CartComp
44
51
  * Caching guidance: `fetchPolicy: 'network-only'` lub key zawierający
45
52
  * `cart.subtotal` (discount eligibility może zależeć od minimum order amount).
46
53
  */
47
- export declare const CART_VALIDATE_DISCOUNT_CODE = "\n query CartValidateDiscountCode($cartId: ID!, $discountCode: String!) {\n cartValidateDiscountCode(cartId: $cartId, discountCode: $discountCode) {\n isValid\n discount {\n code\n title\n type\n value\n discountAmount {\n amount\n currencyCode\n }\n }\n error {\n code\n message\n }\n }\n }\n";
54
+ export declare const CART_VALIDATE_DISCOUNT_CODE: string;
48
55
  //# sourceMappingURL=cart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart.d.ts","sourceRoot":"","sources":["../../../src/core/operations/cart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAwRH,eAAO,MAAM,UAAU,8gHAOtB,CAAC;AAMF,eAAO,MAAM,WAAW,0yHAWvB,CAAC;AAEF,eAAO,MAAM,cAAc,m0HAW1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,+0HAW7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,o0HAW7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,02HAWtC,CAAC;AAEF,eAAO,MAAM,gBAAgB,0zHAW5B,CAAC;AAEF,eAAO,MAAM,0BAA0B,u3HAWtC,CAAC;AAMF,eAAO,MAAM,yBAAyB,+0HAWrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,40HAWpC,CAAC;AAEF,eAAO,MAAM,2BAA2B,q1HAWvC,CAAC;AAEF,eAAO,MAAM,0BAA0B,k1HAWtC,CAAC;AAEF,eAAO,MAAM,oBAAoB,g0HAWhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,m0HAWjC,CAAC;AAEF,eAAO,MAAM,+BAA+B,81HAW3C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,gkJAazB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,qZAoBvC,CAAC"}
1
+ {"version":3,"file":"cart.d.ts","sourceRoot":"","sources":["../../../src/core/operations/cart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuSH,eAAO,MAAM,UAAU,QAOrB,CAAC;AAMH,eAAO,MAAM,WAAW,QAWtB,CAAC;AAEH,eAAO,MAAM,cAAc,QAWzB,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAW5B,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAW5B,CAAC;AAEH,eAAO,MAAM,0BAA0B,QAWrC,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAW3B,CAAC;AAEH,eAAO,MAAM,0BAA0B,QAWrC,CAAC;AAMH,eAAO,MAAM,yBAAyB,QAWpC,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAWnC,CAAC;AAEH,eAAO,MAAM,2BAA2B,QAWtC,CAAC;AAEH,eAAO,MAAM,0BAA0B,QAWrC,CAAC;AAEH,eAAO,MAAM,oBAAoB,QAW/B,CAAC;AAEH,eAAO,MAAM,qBAAqB,QAWhC,CAAC;AAEH,eAAO,MAAM,+BAA+B,QAW1C,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,QAWxB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QASzB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,QAoBtC,CAAC"}
@@ -11,6 +11,7 @@
11
11
  * Cart mutations always return full Cart + userErrors + warnings (non-fatal hints).
12
12
  * Drift detection: PreToolUse hook validuje strings przeciwko storefront-operations/schema.graphql.
13
13
  */
14
+ import { composeOperation } from './compose';
14
15
  // ---------------------------------------------------------------------------
15
16
  // Shared fragments (matching SSOT fragments.graphql)
16
17
  // ---------------------------------------------------------------------------
@@ -263,21 +264,33 @@ const CART_WARNING_FRAGMENT = `
263
264
  target
264
265
  }
265
266
  `;
267
+ const PAYMENT_SESSION_FRAGMENT = `
268
+ fragment PaymentSession on PaymentSession {
269
+ id
270
+ orderId
271
+ flow
272
+ provider
273
+ redirectUrl
274
+ clientSecret
275
+ status
276
+ expiresAt
277
+ }
278
+ `;
266
279
  // ---------------------------------------------------------------------------
267
280
  // Queries
268
281
  // ---------------------------------------------------------------------------
269
- export const CART_QUERY = `
282
+ export const CART_QUERY = composeOperation(`
270
283
  query Cart($id: ID!) {
271
284
  cart(id: $id) {
272
285
  ...Cart
273
286
  }
274
287
  }
275
288
  ${CART_FRAGMENT}
276
- `;
289
+ `);
277
290
  // ---------------------------------------------------------------------------
278
291
  // Mutations
279
292
  // ---------------------------------------------------------------------------
280
- export const CART_CREATE = `
293
+ export const CART_CREATE = composeOperation(`
281
294
  mutation CartCreate($input: CartCreateInput) {
282
295
  cartCreate(input: $input) {
283
296
  cart { ...Cart }
@@ -288,8 +301,8 @@ export const CART_CREATE = `
288
301
  ${CART_FRAGMENT}
289
302
  ${USER_ERROR_FRAGMENT}
290
303
  ${CART_WARNING_FRAGMENT}
291
- `;
292
- export const CART_ADD_LINES = `
304
+ `);
305
+ export const CART_ADD_LINES = composeOperation(`
293
306
  mutation CartAddLines($id: ID!, $lines: [CartLineInput!]!) {
294
307
  cartAddLines(id: $id, lines: $lines) {
295
308
  cart { ...Cart }
@@ -300,8 +313,8 @@ export const CART_ADD_LINES = `
300
313
  ${CART_FRAGMENT}
301
314
  ${USER_ERROR_FRAGMENT}
302
315
  ${CART_WARNING_FRAGMENT}
303
- `;
304
- export const CART_UPDATE_LINES = `
316
+ `);
317
+ export const CART_UPDATE_LINES = composeOperation(`
305
318
  mutation CartUpdateLines($id: ID!, $lines: [CartLineUpdateInput!]!) {
306
319
  cartUpdateLines(id: $id, lines: $lines) {
307
320
  cart { ...Cart }
@@ -312,8 +325,8 @@ export const CART_UPDATE_LINES = `
312
325
  ${CART_FRAGMENT}
313
326
  ${USER_ERROR_FRAGMENT}
314
327
  ${CART_WARNING_FRAGMENT}
315
- `;
316
- export const CART_REMOVE_LINES = `
328
+ `);
329
+ export const CART_REMOVE_LINES = composeOperation(`
317
330
  mutation CartRemoveLines($id: ID!, $lineIds: [ID!]!) {
318
331
  cartRemoveLines(id: $id, lineIds: $lineIds) {
319
332
  cart { ...Cart }
@@ -324,8 +337,8 @@ export const CART_REMOVE_LINES = `
324
337
  ${CART_FRAGMENT}
325
338
  ${USER_ERROR_FRAGMENT}
326
339
  ${CART_WARNING_FRAGMENT}
327
- `;
328
- export const CART_DISCOUNT_CODES_UPDATE = `
340
+ `);
341
+ export const CART_DISCOUNT_CODES_UPDATE = composeOperation(`
329
342
  mutation CartDiscountCodesUpdate($id: ID!, $discountCodes: [String!]!) {
330
343
  cartDiscountCodesUpdate(id: $id, discountCodes: $discountCodes) {
331
344
  cart { ...Cart }
@@ -336,8 +349,8 @@ export const CART_DISCOUNT_CODES_UPDATE = `
336
349
  ${CART_FRAGMENT}
337
350
  ${USER_ERROR_FRAGMENT}
338
351
  ${CART_WARNING_FRAGMENT}
339
- `;
340
- export const CART_UPDATE_NOTE = `
352
+ `);
353
+ export const CART_UPDATE_NOTE = composeOperation(`
341
354
  mutation CartUpdateNote($id: ID!, $note: String!) {
342
355
  cartUpdateNote(id: $id, note: $note) {
343
356
  cart { ...Cart }
@@ -348,8 +361,8 @@ export const CART_UPDATE_NOTE = `
348
361
  ${CART_FRAGMENT}
349
362
  ${USER_ERROR_FRAGMENT}
350
363
  ${CART_WARNING_FRAGMENT}
351
- `;
352
- export const CART_UPDATE_BUYER_IDENTITY = `
364
+ `);
365
+ export const CART_UPDATE_BUYER_IDENTITY = composeOperation(`
353
366
  mutation CartUpdateBuyerIdentity($id: ID!, $buyerIdentity: CartBuyerIdentityInput!) {
354
367
  cartUpdateBuyerIdentity(id: $id, buyerIdentity: $buyerIdentity) {
355
368
  cart { ...Cart }
@@ -360,11 +373,11 @@ export const CART_UPDATE_BUYER_IDENTITY = `
360
373
  ${CART_FRAGMENT}
361
374
  ${USER_ERROR_FRAGMENT}
362
375
  ${CART_WARNING_FRAGMENT}
363
- `;
376
+ `);
364
377
  // ---------------------------------------------------------------------------
365
378
  // Phase 3 — Cart completion lifecycle mutations
366
379
  // ---------------------------------------------------------------------------
367
- export const CART_SET_SHIPPING_ADDRESS = `
380
+ export const CART_SET_SHIPPING_ADDRESS = composeOperation(`
368
381
  mutation CartSetShippingAddress($input: CartSetShippingAddressInput!) {
369
382
  cartSetShippingAddress(input: $input) {
370
383
  cart { ...Cart }
@@ -375,8 +388,8 @@ export const CART_SET_SHIPPING_ADDRESS = `
375
388
  ${CART_FRAGMENT}
376
389
  ${USER_ERROR_FRAGMENT}
377
390
  ${CART_WARNING_FRAGMENT}
378
- `;
379
- export const CART_SET_BILLING_ADDRESS = `
391
+ `);
392
+ export const CART_SET_BILLING_ADDRESS = composeOperation(`
380
393
  mutation CartSetBillingAddress($input: CartSetBillingAddressInput!) {
381
394
  cartSetBillingAddress(input: $input) {
382
395
  cart { ...Cart }
@@ -387,8 +400,8 @@ export const CART_SET_BILLING_ADDRESS = `
387
400
  ${CART_FRAGMENT}
388
401
  ${USER_ERROR_FRAGMENT}
389
402
  ${CART_WARNING_FRAGMENT}
390
- `;
391
- export const CART_SELECT_SHIPPING_METHOD = `
403
+ `);
404
+ export const CART_SELECT_SHIPPING_METHOD = composeOperation(`
392
405
  mutation CartSelectShippingMethod($input: CartSelectShippingMethodInput!) {
393
406
  cartSelectShippingMethod(input: $input) {
394
407
  cart { ...Cart }
@@ -399,8 +412,8 @@ export const CART_SELECT_SHIPPING_METHOD = `
399
412
  ${CART_FRAGMENT}
400
413
  ${USER_ERROR_FRAGMENT}
401
414
  ${CART_WARNING_FRAGMENT}
402
- `;
403
- export const CART_SELECT_PAYMENT_METHOD = `
415
+ `);
416
+ export const CART_SELECT_PAYMENT_METHOD = composeOperation(`
404
417
  mutation CartSelectPaymentMethod($input: CartSelectPaymentMethodInput!) {
405
418
  cartSelectPaymentMethod(input: $input) {
406
419
  cart { ...Cart }
@@ -411,8 +424,8 @@ export const CART_SELECT_PAYMENT_METHOD = `
411
424
  ${CART_FRAGMENT}
412
425
  ${USER_ERROR_FRAGMENT}
413
426
  ${CART_WARNING_FRAGMENT}
414
- `;
415
- export const CART_APPLY_GIFT_CARD = `
427
+ `);
428
+ export const CART_APPLY_GIFT_CARD = composeOperation(`
416
429
  mutation CartApplyGiftCard($input: CartApplyGiftCardInput!) {
417
430
  cartApplyGiftCard(input: $input) {
418
431
  cart { ...Cart }
@@ -423,8 +436,8 @@ export const CART_APPLY_GIFT_CARD = `
423
436
  ${CART_FRAGMENT}
424
437
  ${USER_ERROR_FRAGMENT}
425
438
  ${CART_WARNING_FRAGMENT}
426
- `;
427
- export const CART_REMOVE_GIFT_CARD = `
439
+ `);
440
+ export const CART_REMOVE_GIFT_CARD = composeOperation(`
428
441
  mutation CartRemoveGiftCard($input: CartRemoveGiftCardInput!) {
429
442
  cartRemoveGiftCard(input: $input) {
430
443
  cart { ...Cart }
@@ -435,8 +448,8 @@ export const CART_REMOVE_GIFT_CARD = `
435
448
  ${CART_FRAGMENT}
436
449
  ${USER_ERROR_FRAGMENT}
437
450
  ${CART_WARNING_FRAGMENT}
438
- `;
439
- export const CART_UPDATE_GIFT_CARD_RECIPIENT = `
451
+ `);
452
+ export const CART_UPDATE_GIFT_CARD_RECIPIENT = composeOperation(`
440
453
  mutation CartUpdateGiftCardRecipient($input: CartUpdateGiftCardRecipientInput!) {
441
454
  cartUpdateGiftCardRecipient(input: $input) {
442
455
  cart { ...Cart }
@@ -447,30 +460,44 @@ export const CART_UPDATE_GIFT_CARD_RECIPIENT = `
447
460
  ${CART_FRAGMENT}
448
461
  ${USER_ERROR_FRAGMENT}
449
462
  ${CART_WARNING_FRAGMENT}
450
- `;
463
+ `);
451
464
  /**
452
- * cartComplete — returns Cart + Order (z canCreatePayment + paymentMethodType
453
- * signal dla post-payment flow decisions). paymentUrl NIE w payload (Decision D4) —
454
- * storefront wywołuje osobne `paymentCreate` mutation (po sprawdzeniu order.canCreatePayment).
455
- *
456
- * Note (backend resolver Phase 4 follow-up): obecnie cartComplete może zwrócić
457
- * `order: null` — storefront powinien fallback do `order(id, orderNumber)` query
458
- * jeśli null. SDK type sygnalizuje to przez `order: Order | null`.
465
+ * cartComplete — returns the Order created from the cart (carrying
466
+ * `canCreatePayment` + `paymentMethodType` signals for post-completion payment
467
+ * flow decisions). The cart itself is NOT returned — after completion it is
468
+ * CONVERTED/locked, so the storefront drops its local cart and works with the
469
+ * Order. `order` is non-null on success. `paymentUrl` is intentionally NOT in
470
+ * the payload (Decision D4) the storefront calls a separate `paymentCreate`
471
+ * mutation after checking `order.canCreatePayment`.
459
472
  */
460
- export const CART_COMPLETE = `
473
+ export const CART_COMPLETE = composeOperation(`
461
474
  mutation CartComplete($input: CartCompleteInput!) {
462
475
  cartComplete(input: $input) {
463
- cart { ...Cart }
464
476
  order { ...Order }
465
477
  userErrors { ...UserError }
466
478
  warnings { ...CartWarning }
467
479
  }
468
480
  }
469
- ${CART_FRAGMENT}
470
481
  ${ORDER_FRAGMENT}
471
482
  ${USER_ERROR_FRAGMENT}
472
483
  ${CART_WARNING_FRAGMENT}
473
- `;
484
+ `);
485
+ /**
486
+ * paymentCreate — initiates a payment session for an order created by
487
+ * `cartComplete`. Call after checking `order.canCreatePayment`. Idempotent on
488
+ * the order — re-calling returns the existing still-valid session. Branch on
489
+ * `payment.flow` (redirect / embedded / instant) to launch the payment.
490
+ */
491
+ export const PAYMENT_CREATE = composeOperation(`
492
+ mutation PaymentCreate($input: PaymentCreateInput!) {
493
+ paymentCreate(input: $input) {
494
+ payment { ...PaymentSession }
495
+ userErrors { ...UserError }
496
+ }
497
+ }
498
+ ${PAYMENT_SESSION_FRAGMENT}
499
+ ${USER_ERROR_FRAGMENT}
500
+ `);
474
501
  /**
475
502
  * cartValidateDiscountCode Query — read-only preview discount applicability
476
503
  * (Decision D3). No cart side effects; storefront UI używa do inline feedback
@@ -479,7 +506,7 @@ export const CART_COMPLETE = `
479
506
  * Caching guidance: `fetchPolicy: 'network-only'` lub key zawierający
480
507
  * `cart.subtotal` (discount eligibility może zależeć od minimum order amount).
481
508
  */
482
- export const CART_VALIDATE_DISCOUNT_CODE = `
509
+ export const CART_VALIDATE_DISCOUNT_CODE = composeOperation(`
483
510
  query CartValidateDiscountCode($cartId: ID!, $discountCode: String!) {
484
511
  cartValidateDiscountCode(cartId: $cartId, discountCode: $discountCode) {
485
512
  isValid
@@ -499,4 +526,4 @@ export const CART_VALIDATE_DISCOUNT_CODE = `
499
526
  }
500
527
  }
501
528
  }
502
- `;
529
+ `);
@@ -0,0 +1,24 @@
1
+ /**
2
+ * composeOperation — assemble a GraphQL operation string from an operation body
3
+ * plus its fragment definitions, deduplicating fragments by name.
4
+ *
5
+ * The SDK hand-maintains operation strings (no codegen) by concatenating fragment
6
+ * constants. Each constant carries its own transitive dependency closure — e.g.
7
+ * the Cart fragment tree pulls in `Money`, and the Order fragment tree pulls in
8
+ * `Money` too. When one operation selects two fields whose fragment trees overlap
9
+ * (the only case today: `cartComplete` returns both `cart` and `order`), the naive
10
+ * concatenation emits the shared fragment twice → GraphQL `UniqueFragmentNames`
11
+ * violation → the server rejects the whole request (HTTP 400).
12
+ *
13
+ * `composeOperation` scans the concatenated string, extracts every
14
+ * `fragment Name on Type { ... }` block (brace-matched), keeps the first
15
+ * occurrence of each name, and reassembles: operation body first, then each
16
+ * unique fragment. Every exported operation is wrapped in it, so a future
17
+ * operation combining two fragment trees can never reintroduce the collision.
18
+ *
19
+ * Pure string processing — no `graphql` dependency, so `core/` stays 0-deps.
20
+ * Inputs are our own controlled operation constants (no GraphQL string literals
21
+ * or comments), so the brace-matcher does not need a full lexer.
22
+ */
23
+ export declare function composeOperation(raw: string): string;
24
+ //# sourceMappingURL=compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../src/core/operations/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAuCpD"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * composeOperation — assemble a GraphQL operation string from an operation body
3
+ * plus its fragment definitions, deduplicating fragments by name.
4
+ *
5
+ * The SDK hand-maintains operation strings (no codegen) by concatenating fragment
6
+ * constants. Each constant carries its own transitive dependency closure — e.g.
7
+ * the Cart fragment tree pulls in `Money`, and the Order fragment tree pulls in
8
+ * `Money` too. When one operation selects two fields whose fragment trees overlap
9
+ * (the only case today: `cartComplete` returns both `cart` and `order`), the naive
10
+ * concatenation emits the shared fragment twice → GraphQL `UniqueFragmentNames`
11
+ * violation → the server rejects the whole request (HTTP 400).
12
+ *
13
+ * `composeOperation` scans the concatenated string, extracts every
14
+ * `fragment Name on Type { ... }` block (brace-matched), keeps the first
15
+ * occurrence of each name, and reassembles: operation body first, then each
16
+ * unique fragment. Every exported operation is wrapped in it, so a future
17
+ * operation combining two fragment trees can never reintroduce the collision.
18
+ *
19
+ * Pure string processing — no `graphql` dependency, so `core/` stays 0-deps.
20
+ * Inputs are our own controlled operation constants (no GraphQL string literals
21
+ * or comments), so the brace-matcher does not need a full lexer.
22
+ */
23
+ export function composeOperation(raw) {
24
+ const fragmentStart = /fragment\s+(\w+)\s+on\s+\w+\s*\{/g;
25
+ const fragments = new Map();
26
+ const bodyParts = [];
27
+ let cursor = 0;
28
+ let match;
29
+ while ((match = fragmentStart.exec(raw)) !== null) {
30
+ const blockStart = match.index;
31
+ // Text before this fragment — the operation body on the first iteration,
32
+ // inter-fragment whitespace afterwards.
33
+ bodyParts.push(raw.slice(cursor, blockStart));
34
+ // Brace-match from the fragment's opening `{` to its closing `}`. Nested
35
+ // braces (field arguments like `url(transform: { maxWidth: 300 })`) net out.
36
+ let depth = 1;
37
+ let i = blockStart + match[0].length;
38
+ while (i < raw.length && depth > 0) {
39
+ const ch = raw[i];
40
+ if (ch === '{')
41
+ depth++;
42
+ else if (ch === '}')
43
+ depth--;
44
+ i++;
45
+ }
46
+ const name = match[1];
47
+ if (!fragments.has(name)) {
48
+ fragments.set(name, raw.slice(blockStart, i).trim());
49
+ }
50
+ cursor = i;
51
+ fragmentStart.lastIndex = i;
52
+ }
53
+ bodyParts.push(raw.slice(cursor));
54
+ const body = bodyParts.join('').trim();
55
+ return fragments.size > 0
56
+ ? [body, ...fragments.values()].join('\n\n')
57
+ : body;
58
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doswiftly/storefront-sdk",
3
- "version": "10.0.0",
3
+ "version": "11.1.0",
4
4
  "description": "Storefront runtime SDK for DoSwiftly Commerce — layered transport, middleware pipeline, React providers, Zustand stores, cache strategies. 0 runtime dependencies in core.",
5
5
  "type": "module",
6
6
  "files": [