@shopbb/helium 0.7.3 → 0.7.5

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.
@@ -12,6 +12,6 @@
12
12
  */
13
13
  import type { CartHandler, CartHandlerOptions } from './types';
14
14
  /** Default cart return fragment. Can be overridden by caller. */
15
- export declare const DEFAULT_CART_FRAGMENT = "\n fragment CartReturn on Cart {\n id\n createdAt\n updatedAt\n totalQuantity\n cost {\n subtotalAmount { amount currencyCode }\n totalAmount { amount currencyCode }\n }\n lines(first: 50) {\n nodes {\n id\n quantity\n cost {\n totalAmount { amount currencyCode }\n amountPerQuantity { amount currencyCode }\n }\n merchandise {\n ... on ProductVariant {\n id\n title\n sku\n availableForSale\n price { amount currencyCode }\n image { url altText }\n product { id handle title }\n }\n }\n }\n }\n checkoutUrl\n }\n";
15
+ export declare const DEFAULT_CART_FRAGMENT = "\n fragment CartReturn on Cart {\n id\n createdAt\n updatedAt\n totalQuantity\n cost {\n subtotalAmount { amount currencyCode }\n totalAmount { amount currencyCode }\n totalDiscountAmount { amount currencyCode }\n }\n lines(first: 50) {\n nodes {\n id\n quantity\n cost {\n totalAmount { amount currencyCode }\n amountPerQuantity { amount currencyCode }\n }\n merchandise {\n ... on ProductVariant {\n id\n title\n sku\n availableForSale\n price { amount currencyCode }\n image { url altText }\n product { id handle title }\n }\n }\n }\n }\n discountCodes {\n code\n applicable\n }\n discountAllocations {\n title\n code\n discountedAmount { amount currencyCode }\n }\n appliedDiscountClaim {\n claimId\n code\n title\n }\n checkoutUrl\n }\n";
16
16
  export declare function createCartHandler(options: CartHandlerOptions): CartHandler;
17
17
  //# sourceMappingURL=createCartHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCartHandler.d.ts","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAEjB,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,ktBAiCjC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAmN1E"}
1
+ {"version":3,"file":"createCartHandler.d.ts","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAEjB,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,q/BAgDjC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA4N1E"}
@@ -20,6 +20,7 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
20
20
  cost {
21
21
  subtotalAmount { amount currencyCode }
22
22
  totalAmount { amount currencyCode }
23
+ totalDiscountAmount { amount currencyCode }
23
24
  }
24
25
  lines(first: 50) {
25
26
  nodes {
@@ -42,6 +43,20 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
42
43
  }
43
44
  }
44
45
  }
46
+ discountCodes {
47
+ code
48
+ applicable
49
+ }
50
+ discountAllocations {
51
+ title
52
+ code
53
+ discountedAmount { amount currencyCode }
54
+ }
55
+ appliedDiscountClaim {
56
+ claimId
57
+ code
58
+ title
59
+ }
45
60
  checkoutUrl
46
61
  }
47
62
  `;
@@ -137,7 +152,16 @@ export function createCartHandler(options) {
137
152
  variables: { id: cartId },
138
153
  cache: storefront.CacheNone(),
139
154
  });
140
- return data.cart ?? null;
155
+ // cart 不存在 / 已 completed(platform 清空 lines 后 resolver 返回 null)→ 清 cookie
156
+ if (!data.cart) {
157
+ currentCartId = null;
158
+ // 写空 cookie 让浏览器删除(不依赖 setCartId 因为可能不接受空 id)
159
+ if (responseHeaders) {
160
+ responseHeaders.append('Set-Cookie', 'cart=; Path=/; Max-Age=0; SameSite=Lax');
161
+ }
162
+ return null;
163
+ }
164
+ return data.cart;
141
165
  }
142
166
  async function create(input) {
143
167
  const data = await storefront.mutate(CART_CREATE, { variables: { input: input ?? {} } });
@@ -1 +1 @@
1
- {"version":3,"file":"createCartHandler.js","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createCartHandler.js","sourceRoot":"","sources":["../src/createCartHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDlD,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAE9F,mDAAmD;IACnD,yEAAyE;IACzE,IAAI,aAAa,GAAkB,YAAY,EAAE,CAAC;IAElD,SAAS,SAAS;QAChB,OAAO,aAAa,IAAI,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,2EAA2E;IAC3E,SAAS,SAAS,CAAC,MAAc;QAC/B,aAAa,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,iCAAiC;IAEjC,MAAM,UAAU,GAAG,aAAa,CAAC;MAC7B,qBAAqB;;;;GAIxB,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC;MAC9B,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,cAAc,GAAG,aAAa,CAAC;MACjC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,iBAAiB,GAAG,aAAa,CAAC;MACpC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,iBAAiB,GAAG,aAAa,CAAC;MACpC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,0BAA0B,GAAG,aAAa,CAAC;MAC7C,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,oBAAoB,GAAG,aAAa,CAAC;MACvC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,MAAM,mBAAmB,GAAG,aAAa,CAAC;MACtC,qBAAqB;;;;;;;GAOxB,CAAC;IAEF,8BAA8B;IAE9B,KAAK,UAAU,GAAG;QAChB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAgB,UAAU,EAAE;YAC7D,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACzB,KAAK,EAAE,UAAU,CAAC,SAAS,EAAE;SAC9B,CAAC,CAAC;QACH,yEAAyE;QACzE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,aAAa,GAAG,IAAI,CAAC;YACrB,8CAA8C;YAC9C,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,wCAAwC,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,KAAmC;QACvD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,WAAW,EACX,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI;YAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,KAAsB;QAC5C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,6CAA6C;YAC7C,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,cAAc,EACd,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CACjC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACpF,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,KAA4B;QACrD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,iBAAiB,EACjB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CACjC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IAC1F,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,OAAiB;QAC1C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,iBAAiB,EACjB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CACnC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IAC1F,CAAC;IAED,KAAK,UAAU,mBAAmB,CAAC,aAAuB;QACxD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,4BAA4B;YAC5B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI;gBAAE,OAAO,OAAO,CAAC;QACpC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,0BAA0B,EAC1B,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,CACtD,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC;IAC1G,CAAC;IAED,KAAK,UAAU,cAAc,CAAC,OAAe;QAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACtF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,oBAAoB,EACpB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CACnC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;IAChG,CAAC;IAED,KAAK,UAAU,aAAa;QAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACtF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAClC,mBAAmB,EACnB,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,CAC1B,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC9F,CAAC;IAED,OAAO;QACL,GAAG;QACH,SAAS;QACT,SAAS;QACT,MAAM;QACN,QAAQ;QACR,WAAW;QACX,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,aAAa;KACd,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopbb/helium",
3
- "version": "0.7.3",
3
+ "version": "0.7.5",
4
4
  "description": "shopbb storefront framework — components, React SSR, GraphQL client, cart handler, cache for Cloudflare Workers",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -29,6 +29,7 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
29
29
  cost {
30
30
  subtotalAmount { amount currencyCode }
31
31
  totalAmount { amount currencyCode }
32
+ totalDiscountAmount { amount currencyCode }
32
33
  }
33
34
  lines(first: 50) {
34
35
  nodes {
@@ -51,6 +52,20 @@ export const DEFAULT_CART_FRAGMENT = /* GraphQL */ `
51
52
  }
52
53
  }
53
54
  }
55
+ discountCodes {
56
+ code
57
+ applicable
58
+ }
59
+ discountAllocations {
60
+ title
61
+ code
62
+ discountedAmount { amount currencyCode }
63
+ }
64
+ appliedDiscountClaim {
65
+ claimId
66
+ code
67
+ title
68
+ }
54
69
  checkoutUrl
55
70
  }
56
71
  `;
@@ -160,7 +175,16 @@ export function createCartHandler(options: CartHandlerOptions): CartHandler {
160
175
  variables: { id: cartId },
161
176
  cache: storefront.CacheNone(),
162
177
  });
163
- return data.cart ?? null;
178
+ // cart 不存在 / 已 completed(platform 清空 lines 后 resolver 返回 null)→ 清 cookie
179
+ if (!data.cart) {
180
+ currentCartId = null;
181
+ // 写空 cookie 让浏览器删除(不依赖 setCartId 因为可能不接受空 id)
182
+ if (responseHeaders) {
183
+ responseHeaders.append('Set-Cookie', 'cart=; Path=/; Max-Age=0; SameSite=Lax');
184
+ }
185
+ return null;
186
+ }
187
+ return data.cart;
164
188
  }
165
189
 
166
190
  async function create(input?: { lines?: CartLineInput[] }): Promise<CartResult> {