@doswiftly/storefront-sdk 4.7.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +788 -0
  2. package/dist/core/auth/auth-client.d.ts +15 -8
  3. package/dist/core/auth/auth-client.d.ts.map +1 -1
  4. package/dist/core/auth/auth-client.js +18 -11
  5. package/dist/core/auth/handlers.d.ts +31 -0
  6. package/dist/core/auth/handlers.d.ts.map +1 -1
  7. package/dist/core/auth/handlers.js +69 -0
  8. package/dist/core/auth/types.d.ts +5 -5
  9. package/dist/core/auth/types.d.ts.map +1 -1
  10. package/dist/core/cache.d.ts +1 -1
  11. package/dist/core/cache.js +1 -1
  12. package/dist/core/cart/types.d.ts +1 -1
  13. package/dist/core/cart/types.d.ts.map +1 -1
  14. package/dist/core/client/compose.d.ts +1 -1
  15. package/dist/core/client/compose.js +1 -1
  16. package/dist/core/client/create-client.d.ts +2 -2
  17. package/dist/core/client/create-client.js +2 -2
  18. package/dist/core/client/execute.d.ts.map +1 -1
  19. package/dist/core/client/execute.js +6 -0
  20. package/dist/core/client/types.js +1 -1
  21. package/dist/core/index.d.ts +1 -1
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +1 -1
  24. package/dist/core/language/cookie-config.d.ts +7 -2
  25. package/dist/core/language/cookie-config.d.ts.map +1 -1
  26. package/dist/core/language/cookie-config.js +7 -2
  27. package/dist/core/operations/auth.d.ts +4 -4
  28. package/dist/core/operations/auth.d.ts.map +1 -1
  29. package/dist/core/operations/auth.js +11 -11
  30. package/dist/core/operations/cart.d.ts +8 -8
  31. package/dist/core/operations/cart.d.ts.map +1 -1
  32. package/dist/core/operations/cart.js +9 -9
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/react/hooks/use-auth.d.ts.map +1 -1
  36. package/dist/react/hooks/use-auth.js +6 -13
  37. package/dist/react/stores/auth.store.d.ts +0 -2
  38. package/dist/react/stores/auth.store.d.ts.map +1 -1
  39. package/dist/react/stores/auth.store.js +10 -7
  40. package/package.json +4 -4
@@ -9,9 +9,10 @@
9
9
  * const authClient = new AuthClient(storefrontClient);
10
10
  *
11
11
  * const result = await authClient.login('user@example.com', 'password');
12
- * console.log(result.accessToken); // JWT token
12
+ * console.log(result.accessToken); // JWT (also set as httpOnly cookie by API)
13
13
  *
14
- * const customer = await authClient.getCustomer(result.accessToken);
14
+ * // Auth context resolved server-side from cookie/Bearer — no token argument.
15
+ * const customer = await authClient.getCustomer();
15
16
  * ```
16
17
  */
17
18
  import type { StorefrontClient } from '../client/types';
@@ -25,22 +26,28 @@ export declare class AuthClient {
25
26
  */
26
27
  login(email: string, password: string): Promise<AuthResult>;
27
28
  /**
28
- * Logout — invalidate token on backend.
29
+ * Logout — invalidates auth cookie on backend (server clears Set-Cookie via Apollo plugin).
30
+ * Token previously passed jako mutation arg → drop'd w Iteracja 2 (auth konsolidacja).
31
+ * Auth context czytany przez backend `StorefrontShopGuard` z httpOnly cookie lub
32
+ * `Authorization: Bearer` header (gdy ustawione przez SDK auth middleware).
29
33
  * Does not throw on failure (token may already be expired).
30
34
  */
31
- logout(token: string): Promise<void>;
35
+ logout(): Promise<void>;
32
36
  /**
33
- * Renew access token — extends expiry.
37
+ * Renew access token — extends expiry. Auth context czytany przez backend
38
+ * z cookie / Authorization Bearer (jak inne authenticated mutations).
34
39
  */
35
- renewToken(token: string): Promise<AuthResult>;
40
+ renewToken(): Promise<AuthResult>;
36
41
  /**
37
42
  * Register new customer account.
38
43
  * Returns access token + customer data.
39
44
  */
40
45
  register(input: CustomerCreateInput): Promise<AuthResult>;
41
46
  /**
42
- * Fetch customer data by access token.
47
+ * Fetch customer data auth context z cookie / Authorization Bearer.
48
+ * Token nie jest argumentem (drop'd w Iteracja 2). Browser uses cookie auto-sent;
49
+ * non-browser klient passes Bearer header via SDK auth middleware (`setAuthToken`).
43
50
  */
44
- getCustomer(accessToken: string): Promise<Customer | null>;
51
+ getCustomer(): Promise<Customer | null>;
45
52
  }
46
53
  //# sourceMappingURL=auth-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../../src/core/auth/auth-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAUzE,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,gBAAgB;IAErD;;;OAGG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBjE;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1C;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBpD;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmB/D;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAOjE"}
1
+ {"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../../src/core/auth/auth-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAUzE,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,gBAAgB;IAErD;;;OAGG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBjE;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;IAiBvC;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmB/D;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAO9C"}
@@ -9,9 +9,10 @@
9
9
  * const authClient = new AuthClient(storefrontClient);
10
10
  *
11
11
  * const result = await authClient.login('user@example.com', 'password');
12
- * console.log(result.accessToken); // JWT token
12
+ * console.log(result.accessToken); // JWT (also set as httpOnly cookie by API)
13
13
  *
14
- * const customer = await authClient.getCustomer(result.accessToken);
14
+ * // Auth context resolved server-side from cookie/Bearer — no token argument.
15
+ * const customer = await authClient.getCustomer();
15
16
  * ```
16
17
  */
17
18
  import { assertNoUserErrors } from '../helpers/assert-no-user-errors';
@@ -35,22 +36,26 @@ export class AuthClient {
35
36
  };
36
37
  }
37
38
  /**
38
- * Logout — invalidate token on backend.
39
+ * Logout — invalidates auth cookie on backend (server clears Set-Cookie via Apollo plugin).
40
+ * Token previously passed jako mutation arg → drop'd w Iteracja 2 (auth konsolidacja).
41
+ * Auth context czytany przez backend `StorefrontShopGuard` z httpOnly cookie lub
42
+ * `Authorization: Bearer` header (gdy ustawione przez SDK auth middleware).
39
43
  * Does not throw on failure (token may already be expired).
40
44
  */
41
- async logout(token) {
45
+ async logout() {
42
46
  try {
43
- await this.client.mutate(CUSTOMER_LOGOUT, { customerAccessToken: token });
47
+ await this.client.mutate(CUSTOMER_LOGOUT);
44
48
  }
45
49
  catch {
46
50
  // Silently ignore — token may already be expired
47
51
  }
48
52
  }
49
53
  /**
50
- * Renew access token — extends expiry.
54
+ * Renew access token — extends expiry. Auth context czytany przez backend
55
+ * z cookie / Authorization Bearer (jak inne authenticated mutations).
51
56
  */
52
- async renewToken(token) {
53
- const data = await this.client.mutate(CUSTOMER_TOKEN_RENEW, { customerAccessToken: token });
57
+ async renewToken() {
58
+ const data = await this.client.mutate(CUSTOMER_TOKEN_RENEW);
54
59
  assertNoUserErrors(data.customerAccessTokenRenew);
55
60
  const renewed = data.customerAccessTokenRenew.customerAccessToken;
56
61
  return {
@@ -73,10 +78,12 @@ export class AuthClient {
73
78
  };
74
79
  }
75
80
  /**
76
- * Fetch customer data by access token.
81
+ * Fetch customer data auth context z cookie / Authorization Bearer.
82
+ * Token nie jest argumentem (drop'd w Iteracja 2). Browser uses cookie auto-sent;
83
+ * non-browser klient passes Bearer header via SDK auth middleware (`setAuthToken`).
77
84
  */
78
- async getCustomer(accessToken) {
79
- const data = await this.client.query(CUSTOMER_QUERY, { customerAccessToken: accessToken });
85
+ async getCustomer() {
86
+ const data = await this.client.query(CUSTOMER_QUERY);
80
87
  return data.customer;
81
88
  }
82
89
  }
@@ -22,6 +22,37 @@ interface SetTokenHandlerOptions {
22
22
  * httpOnly (XSS protection), Secure in production.
23
23
  */
24
24
  export declare function createSetTokenHandler(overrides?: SetTokenHandlerOptions): (request: Request) => Promise<Response>;
25
+ interface WhoamiHandlerOptions {
26
+ /** Backend GraphQL endpoint (default: `${apiUrl}/storefront/graphql`). */
27
+ apiUrl?: string;
28
+ /** Shop slug header value (X-Shop-Slug). */
29
+ shopSlug?: string;
30
+ }
31
+ /**
32
+ * Create a GET handler that hydrates customer state z httpOnly cookie.
33
+ *
34
+ * Browser-based storefront po hydration mountuje React app z czystym auth store
35
+ * (XSS fix — `accessToken` nie persistuje w localStorage). Aby pokazać "logged in"
36
+ * UI bez round-trip do login, klient wywołuje GET `/api/auth/whoami`:
37
+ *
38
+ * 1. Endpoint reads httpOnly cookie `customerAccessToken` (server-side, JS-inaccessible)
39
+ * 2. Forward jako `Authorization: Bearer` header do backend GraphQL `customer` query
40
+ * 3. Return `{ isAuthenticated, customer | null }` do klienta
41
+ * 4. Klient setAuth(customer, '') — token NIE w body (cookie kontynuuje per-request auth)
42
+ *
43
+ * Security: origin validation, fetch via Bearer (cookie nie crossuje API boundary).
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * // app/api/auth/whoami/route.ts
48
+ * import { createWhoamiHandler } from '@doswiftly/storefront-sdk';
49
+ * export const GET = createWhoamiHandler({
50
+ * apiUrl: process.env.NEXT_PUBLIC_API_URL!,
51
+ * shopSlug: process.env.NEXT_PUBLIC_SHOP_SLUG!,
52
+ * });
53
+ * ```
54
+ */
55
+ export declare function createWhoamiHandler(options?: WhoamiHandlerOptions): (request: Request) => Promise<Response>;
25
56
  /**
26
57
  * Create a POST handler that clears the auth token cookie.
27
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/core/auth/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,UAAU,sBAAsB;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmCD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,CAAC,EAAE,sBAAsB,GACjC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAgEzC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAkCjF"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/core/auth/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,UAAU,sBAAsB;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmCD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,CAAC,EAAE,sBAAsB,GACjC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAgEzC;AAED,UAAU,oBAAoB;IAC5B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,oBAAyB,GACjC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA6DzC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAkCjF"}
@@ -91,6 +91,75 @@ export function createSetTokenHandler(overrides) {
91
91
  }
92
92
  };
93
93
  }
94
+ /**
95
+ * Create a GET handler that hydrates customer state z httpOnly cookie.
96
+ *
97
+ * Browser-based storefront po hydration mountuje React app z czystym auth store
98
+ * (XSS fix — `accessToken` nie persistuje w localStorage). Aby pokazać "logged in"
99
+ * UI bez round-trip do login, klient wywołuje GET `/api/auth/whoami`:
100
+ *
101
+ * 1. Endpoint reads httpOnly cookie `customerAccessToken` (server-side, JS-inaccessible)
102
+ * 2. Forward jako `Authorization: Bearer` header do backend GraphQL `customer` query
103
+ * 3. Return `{ isAuthenticated, customer | null }` do klienta
104
+ * 4. Klient setAuth(customer, '') — token NIE w body (cookie kontynuuje per-request auth)
105
+ *
106
+ * Security: origin validation, fetch via Bearer (cookie nie crossuje API boundary).
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * // app/api/auth/whoami/route.ts
111
+ * import { createWhoamiHandler } from '@doswiftly/storefront-sdk';
112
+ * export const GET = createWhoamiHandler({
113
+ * apiUrl: process.env.NEXT_PUBLIC_API_URL!,
114
+ * shopSlug: process.env.NEXT_PUBLIC_SHOP_SLUG!,
115
+ * });
116
+ * ```
117
+ */
118
+ export function createWhoamiHandler(options = {}) {
119
+ return async (request) => {
120
+ try {
121
+ const originError = validateOrigin(request);
122
+ if (originError)
123
+ return originError;
124
+ const cookieHeader = request.headers.get('cookie') ?? '';
125
+ const tokenMatch = cookieHeader.match(new RegExp(`(?:^|; )${AUTH_COOKIE_NAME}=([^;]+)`));
126
+ const token = tokenMatch ? decodeURIComponent(tokenMatch[1]) : null;
127
+ if (!token) {
128
+ return new Response(JSON.stringify({ isAuthenticated: false, customer: null }), { status: 200, headers: { 'Content-Type': 'application/json' } });
129
+ }
130
+ const apiUrl = options.apiUrl ?? process.env.NEXT_PUBLIC_API_URL ?? '';
131
+ const shopSlug = options.shopSlug ?? process.env.NEXT_PUBLIC_SHOP_SLUG ?? '';
132
+ const endpoint = `${apiUrl.replace(/\/$/, '')}/storefront/graphql`;
133
+ const gqlResponse = await fetch(endpoint, {
134
+ method: 'POST',
135
+ headers: {
136
+ 'Content-Type': 'application/json',
137
+ Accept: 'application/json',
138
+ Authorization: `Bearer ${token}`,
139
+ ...(shopSlug ? { 'X-Shop-Slug': shopSlug } : {}),
140
+ },
141
+ body: JSON.stringify({
142
+ query: `query Whoami {
143
+ customer {
144
+ id
145
+ email
146
+ firstName
147
+ lastName
148
+ phone
149
+ }
150
+ }`,
151
+ }),
152
+ });
153
+ const json = (await gqlResponse.json());
154
+ const customer = json.data?.customer ?? null;
155
+ return new Response(JSON.stringify({ isAuthenticated: !!customer, customer }), { status: 200, headers: { 'Content-Type': 'application/json' } });
156
+ }
157
+ catch (error) {
158
+ console.error('Error in whoami handler:', error);
159
+ return new Response(JSON.stringify({ isAuthenticated: false, customer: null, error: 'Internal server error' }), { status: 500, headers: { 'Content-Type': 'application/json' } });
160
+ }
161
+ };
162
+ }
94
163
  /**
95
164
  * Create a POST handler that clears the auth token cookie.
96
165
  *
@@ -25,8 +25,8 @@ export interface Customer {
25
25
  }
26
26
  export interface MailingAddress {
27
27
  id: string;
28
- address1: string | null;
29
- address2: string | null;
28
+ streetLine1: string | null;
29
+ streetLine2: string | null;
30
30
  city: string | null;
31
31
  company: string | null;
32
32
  country: string | null;
@@ -34,9 +34,9 @@ export interface MailingAddress {
34
34
  firstName: string | null;
35
35
  lastName: string | null;
36
36
  phone: string | null;
37
- province: string | null;
38
- provinceCode: string | null;
39
- zip: string | null;
37
+ state: string | null;
38
+ stateCode: string | null;
39
+ postalCode: string | null;
40
40
  isDefault: boolean;
41
41
  }
42
42
  export interface AuthResult {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/auth/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/auth/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Cache strategies — functions (not constants) with override support.
3
3
  *
4
- * Inspired by Shopify Hydrogen's caching strategies.
4
+ * Industry-standard storefront caching strategies (no-store / SWR / private).
5
5
  *
6
6
  * @example
7
7
  * ```typescript
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Cache strategies — functions (not constants) with override support.
3
3
  *
4
- * Inspired by Shopify Hydrogen's caching strategies.
4
+ * Industry-standard storefront caching strategies (no-store / SWR / private).
5
5
  *
6
6
  * @example
7
7
  * ```typescript
@@ -128,7 +128,7 @@ export interface CartAttributeSelectionInput {
128
128
  export interface CartLineInput {
129
129
  merchandiseId: string;
130
130
  quantity?: number;
131
- /** Shopify-style raw Line Item Properties (gift messages, engraving notes, etc.). */
131
+ /** Raw Line Item Properties (gift messages, engraving notes, etc.). */
132
132
  attributes?: Array<{
133
133
  key: string;
134
134
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/cart/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/cart/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Compose middleware chain using reduceRight (Hydrogen pattern).
2
+ * Compose middleware chain using reduceRight (industry-standard pattern).
3
3
  *
4
4
  * Middleware execute in order: first registered runs first.
5
5
  * Each can modify request, modify response, retry, or short-circuit.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Compose middleware chain using reduceRight (Hydrogen pattern).
2
+ * Compose middleware chain using reduceRight (industry-standard pattern).
3
3
  *
4
4
  * Middleware execute in order: first registered runs first.
5
5
  * Each can modify request, modify response, retry, or short-circuit.
@@ -1,10 +1,10 @@
1
1
  /**
2
- * createStorefrontClient — transport factory (Hydrogen pattern).
2
+ * createStorefrontClient — transport factory (agnostic-core pattern).
3
3
  *
4
4
  * Creates a framework-agnostic GraphQL client with:
5
5
  * - Middleware pipeline (composable, lazy)
6
6
  * - Request deduplication (same-tick queries)
7
- * - TypedDocumentString support (Saleor/client-preset)
7
+ * - TypedDocumentString support (graphql client-preset)
8
8
  * - Plain string queries (for custom operations)
9
9
  * - Debug mode
10
10
  *
@@ -1,10 +1,10 @@
1
1
  /**
2
- * createStorefrontClient — transport factory (Hydrogen pattern).
2
+ * createStorefrontClient — transport factory (agnostic-core pattern).
3
3
  *
4
4
  * Creates a framework-agnostic GraphQL client with:
5
5
  * - Middleware pipeline (composable, lazy)
6
6
  * - Request deduplication (same-tick queries)
7
- * - TypedDocumentString support (Saleor/client-preset)
7
+ * - TypedDocumentString support (graphql client-preset)
8
8
  * - Plain string queries (for custom operations)
9
9
  * - Debug mode
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/core/client/execute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAoB,MAAM,SAAS,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,IAGnB,SAAS,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC,CA6CjF"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/core/client/execute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAoB,MAAM,SAAS,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,IAGnB,SAAS,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC,CAmDjF"}
@@ -30,6 +30,12 @@ export function createExecute(config) {
30
30
  },
31
31
  body: JSON.stringify(body),
32
32
  signal,
33
+ // Include httpOnly cookies (e.g. customerAccessToken auth) on cross-origin
34
+ // requests. Required when the storefront runs on a domain different from the
35
+ // backend GraphQL endpoint — same-origin browsers send cookies regardless,
36
+ // but cross-origin needs `credentials: 'include'` paired with the backend's
37
+ // `Access-Control-Allow-Credentials: true` (already configured).
38
+ credentials: 'include',
33
39
  });
34
40
  const json = await response.json();
35
41
  if (debug) {
@@ -4,7 +4,7 @@
4
4
  * Framework-agnostic — no React, no Zustand, 0 runtime dependencies.
5
5
  */
6
6
  // ---------------------------------------------------------------------------
7
- // TypedDocumentString (Saleor / client-preset pattern)
7
+ // TypedDocumentString (graphql-codegen client-preset pattern)
8
8
  // ---------------------------------------------------------------------------
9
9
  /**
10
10
  * A branded string carrying result & variable types.
@@ -59,7 +59,7 @@ export { LANGUAGE_COOKIE_NAME, LANGUAGE_COOKIE_MAX_AGE, LANGUAGE_HEADER_NAME } f
59
59
  export { CURRENCY_COOKIE_NAME, CURRENCY_COOKIE_MAX_AGE, CURRENCY_HEADER_NAME } from './currency/cookie-config';
60
60
  export { CART_COOKIE_NAME, CART_COOKIE_MAX_AGE } from './cart/cookie-config';
61
61
  export { matchesRoute, type RouteProtectionConfig } from './auth/routes';
62
- export { createSetTokenHandler, createClearTokenHandler } from './auth/handlers';
62
+ export { createSetTokenHandler, createClearTokenHandler, createWhoamiHandler } from './auth/handlers';
63
63
  export { createAuthTokenClient, type AuthTokenClient } from './auth/token-client';
64
64
  export { type ImageData, thumbHashToDataURL } from './image';
65
65
  export { getOperationName } from './client/operation-name';
@@ -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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"}
@@ -71,7 +71,7 @@ export { CART_COOKIE_NAME, CART_COOKIE_MAX_AGE } from './cart/cookie-config';
71
71
  // Auth route matching
72
72
  export { matchesRoute } from './auth/routes';
73
73
  // Auth cookie handlers (API route factories)
74
- export { createSetTokenHandler, createClearTokenHandler } from './auth/handlers';
74
+ export { createSetTokenHandler, createClearTokenHandler, createWhoamiHandler } from './auth/handlers';
75
75
  // Auth token client (client-side fetch helpers)
76
76
  export { createAuthTokenClient } from './auth/token-client';
77
77
  // Image types (loaders removed — GraphQL returns ready-to-use CDN URLs with transform params)
@@ -3,12 +3,17 @@
3
3
  *
4
4
  * Used by:
5
5
  * - SDK language store (client-side cookie read/write)
6
- * - SDK language middleware (X-Lang header)
6
+ * - SDK language middleware (X-Language header)
7
7
  * - next-intl middleware `localeCookie.name` (server-side locale detection)
8
8
  *
9
9
  * Single cookie replaces both next-intl's NEXT_LOCALE and SDK's preferred-language.
10
+ *
11
+ * Header name `X-Language` matches backend `StorefrontContextBuilder.resolveLanguage`
12
+ * reader (`x-language` lowercased per Express normalization). Earlier `X-Lang` value
13
+ * was a documented mismatch that resulted in the SDK header being silently ignored
14
+ * by the backend.
10
15
  */
11
16
  export declare const LANGUAGE_COOKIE_NAME = "preferred-language";
12
17
  export declare const LANGUAGE_COOKIE_MAX_AGE: number;
13
- export declare const LANGUAGE_HEADER_NAME = "X-Lang";
18
+ export declare const LANGUAGE_HEADER_NAME = "X-Language";
14
19
  //# sourceMappingURL=cookie-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookie-config.d.ts","sourceRoot":"","sources":["../../../src/core/language/cookie-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,uBAAuB,QAAqB,CAAC;AAC1D,eAAO,MAAM,oBAAoB,WAAW,CAAC"}
1
+ {"version":3,"file":"cookie-config.d.ts","sourceRoot":"","sources":["../../../src/core/language/cookie-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,uBAAuB,QAAqB,CAAC;AAC1D,eAAO,MAAM,oBAAoB,eAAe,CAAC"}
@@ -3,11 +3,16 @@
3
3
  *
4
4
  * Used by:
5
5
  * - SDK language store (client-side cookie read/write)
6
- * - SDK language middleware (X-Lang header)
6
+ * - SDK language middleware (X-Language header)
7
7
  * - next-intl middleware `localeCookie.name` (server-side locale detection)
8
8
  *
9
9
  * Single cookie replaces both next-intl's NEXT_LOCALE and SDK's preferred-language.
10
+ *
11
+ * Header name `X-Language` matches backend `StorefrontContextBuilder.resolveLanguage`
12
+ * reader (`x-language` lowercased per Express normalization). Earlier `X-Lang` value
13
+ * was a documented mismatch that resulted in the SDK header being silently ignored
14
+ * by the backend.
10
15
  */
11
16
  export const LANGUAGE_COOKIE_NAME = 'preferred-language';
12
17
  export const LANGUAGE_COOKIE_MAX_AGE = 365 * 24 * 60 * 60; // 1 year
13
- export const LANGUAGE_HEADER_NAME = 'X-Lang';
18
+ export const LANGUAGE_HEADER_NAME = 'X-Language';
@@ -4,8 +4,8 @@
4
4
  * These match the backend storefront-graphql schema exactly.
5
5
  */
6
6
  export declare const CUSTOMER_LOGIN = "\n mutation CustomerLogin($input: CustomerAccessTokenCreateInput!) {\n customerAccessTokenCreate(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";
7
- export declare const CUSTOMER_LOGOUT = "\n mutation CustomerLogout($customerAccessToken: String!) {\n customerAccessTokenDelete(customerAccessToken: $customerAccessToken) {\n deletedAccessToken\n deletedCustomerAccessTokenId\n userErrors { ...UserErrorFields }\n }\n }\n \n fragment UserErrorFields on UserError {\n message\n field\n code\n }\n\n";
8
- export declare const CUSTOMER_TOKEN_RENEW = "\n mutation CustomerTokenRenew($customerAccessToken: String!) {\n customerAccessTokenRenew(customerAccessToken: $customerAccessToken) {\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";
9
- export declare const CUSTOMER_CREATE = "\n mutation CustomerCreate($input: CustomerCreateInput!) {\n customerCreate(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 emailVerified\n emailMarketingState\n defaultAddress {\n id\n address1\n address2\n city\n company\n country\n countryCode\n firstName\n lastName\n phone\n province\n provinceCode\n zip\n isDefault\n }\n ordersCount\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";
10
- export declare const CUSTOMER_QUERY = "\n query Customer($customerAccessToken: String!) {\n customer(customerAccessToken: $customerAccessToken) {\n ...CustomerFields\n }\n }\n \n fragment CustomerFields on Customer {\n id\n email\n firstName\n lastName\n displayName\n phone\n emailVerified\n emailMarketingState\n defaultAddress {\n id\n address1\n address2\n city\n company\n country\n countryCode\n firstName\n lastName\n phone\n province\n provinceCode\n zip\n isDefault\n }\n ordersCount\n totalSpent {\n amount\n currencyCode\n }\n createdAt\n updatedAt\n }\n\n";
7
+ export declare const CUSTOMER_LOGOUT = "\n mutation CustomerLogout {\n customerAccessTokenDelete {\n deletedAccessToken\n deletedCustomerAccessTokenId\n userErrors { ...UserErrorFields }\n }\n }\n \n fragment UserErrorFields on UserError {\n message\n field\n code\n }\n\n";
8
+ export declare const CUSTOMER_TOKEN_RENEW = "\n mutation CustomerTokenRenew {\n customerAccessTokenRenew {\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";
9
+ export declare const CUSTOMER_CREATE = "\n mutation CustomerCreate($input: CustomerCreateInput!) {\n customerCreate(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 emailVerified\n emailMarketingState\n defaultAddress {\n id\n streetLine1\n streetLine2\n city\n company\n country\n countryCode\n firstName\n lastName\n phone\n state\n stateCode\n postalCode\n isDefault\n }\n ordersCount\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";
10
+ 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 emailVerified\n emailMarketingState\n defaultAddress {\n id\n streetLine1\n streetLine2\n city\n company\n country\n countryCode\n firstName\n lastName\n phone\n state\n stateCode\n postalCode\n isDefault\n }\n ordersCount\n totalSpent {\n amount\n currencyCode\n }\n createdAt\n updatedAt\n }\n\n";
11
11
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/operations/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6DH,eAAO,MAAM,cAAc,+aAS1B,CAAC;AAEF,eAAO,MAAM,eAAe,0VAS3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,qcAShC,CAAC;AAEF,eAAO,MAAM,eAAe,w8BAW3B,CAAC;AAMF,eAAO,MAAM,cAAc,kqBAO1B,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/operations/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6DH,eAAO,MAAM,cAAc,+aAS1B,CAAC;AAEF,eAAO,MAAM,eAAe,gRAS3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,2XAShC,CAAC;AAEF,eAAO,MAAM,eAAe,+8BAW3B,CAAC;AAMF,eAAO,MAAM,cAAc,+lBAO1B,CAAC"}
@@ -31,8 +31,8 @@ const CUSTOMER_FRAGMENT = `
31
31
  emailMarketingState
32
32
  defaultAddress {
33
33
  id
34
- address1
35
- address2
34
+ streetLine1
35
+ streetLine2
36
36
  city
37
37
  company
38
38
  country
@@ -40,9 +40,9 @@ const CUSTOMER_FRAGMENT = `
40
40
  firstName
41
41
  lastName
42
42
  phone
43
- province
44
- provinceCode
45
- zip
43
+ state
44
+ stateCode
45
+ postalCode
46
46
  isDefault
47
47
  }
48
48
  ordersCount
@@ -68,8 +68,8 @@ export const CUSTOMER_LOGIN = `
68
68
  ${USER_ERROR_FRAGMENT}
69
69
  `;
70
70
  export const CUSTOMER_LOGOUT = `
71
- mutation CustomerLogout($customerAccessToken: String!) {
72
- customerAccessTokenDelete(customerAccessToken: $customerAccessToken) {
71
+ mutation CustomerLogout {
72
+ customerAccessTokenDelete {
73
73
  deletedAccessToken
74
74
  deletedCustomerAccessTokenId
75
75
  userErrors { ...UserErrorFields }
@@ -78,8 +78,8 @@ export const CUSTOMER_LOGOUT = `
78
78
  ${USER_ERROR_FRAGMENT}
79
79
  `;
80
80
  export const CUSTOMER_TOKEN_RENEW = `
81
- mutation CustomerTokenRenew($customerAccessToken: String!) {
82
- customerAccessTokenRenew(customerAccessToken: $customerAccessToken) {
81
+ mutation CustomerTokenRenew {
82
+ customerAccessTokenRenew {
83
83
  customerAccessToken { ...CustomerAccessTokenFields }
84
84
  userErrors { ...UserErrorFields }
85
85
  }
@@ -103,8 +103,8 @@ export const CUSTOMER_CREATE = `
103
103
  // Queries
104
104
  // ---------------------------------------------------------------------------
105
105
  export const CUSTOMER_QUERY = `
106
- query Customer($customerAccessToken: String!) {
107
- customer(customerAccessToken: $customerAccessToken) {
106
+ query Customer {
107
+ customer {
108
108
  ...CustomerFields
109
109
  }
110
110
  }