@rovela-ai/sdk 0.6.1 → 0.7.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/dist/admin/api/discounts.d.ts +53 -0
- package/dist/admin/api/discounts.d.ts.map +1 -0
- package/dist/admin/api/discounts.js +325 -0
- package/dist/admin/api/discounts.js.map +1 -0
- package/dist/admin/api/index.d.ts +1 -0
- package/dist/admin/api/index.d.ts.map +1 -1
- package/dist/admin/api/index.js +2 -0
- package/dist/admin/api/index.js.map +1 -1
- package/dist/admin/api/orders.js +1 -1
- package/dist/admin/api/orders.js.map +1 -1
- package/dist/admin/api/settings.d.ts.map +1 -1
- package/dist/admin/api/settings.js +10 -0
- package/dist/admin/api/settings.js.map +1 -1
- package/dist/admin/components/CustomerAddressPanel.d.ts.map +1 -1
- package/dist/admin/components/CustomerAddressPanel.js +13 -6
- package/dist/admin/components/CustomerAddressPanel.js.map +1 -1
- package/dist/admin/components/DiscountsManager.d.ts +5 -0
- package/dist/admin/components/DiscountsManager.d.ts.map +1 -0
- package/dist/admin/components/DiscountsManager.js +363 -0
- package/dist/admin/components/DiscountsManager.js.map +1 -0
- package/dist/admin/components/ShippingSettings.d.ts.map +1 -1
- package/dist/admin/components/ShippingSettings.js +19 -2
- package/dist/admin/components/ShippingSettings.js.map +1 -1
- package/dist/admin/components/StoreSettings.d.ts.map +1 -1
- package/dist/admin/components/StoreSettings.js +8 -1
- package/dist/admin/components/StoreSettings.js.map +1 -1
- package/dist/admin/components/TaxSettings.d.ts.map +1 -1
- package/dist/admin/components/TaxSettings.js +8 -3
- package/dist/admin/components/TaxSettings.js.map +1 -1
- package/dist/admin/components/index.d.ts +2 -0
- package/dist/admin/components/index.d.ts.map +1 -1
- package/dist/admin/components/index.js +1 -0
- package/dist/admin/components/index.js.map +1 -1
- package/dist/admin/hooks/index.d.ts +2 -0
- package/dist/admin/hooks/index.d.ts.map +1 -1
- package/dist/admin/hooks/index.js +1 -0
- package/dist/admin/hooks/index.js.map +1 -1
- package/dist/admin/hooks/useAdminDiscounts.d.ts +12 -0
- package/dist/admin/hooks/useAdminDiscounts.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminDiscounts.js +77 -0
- package/dist/admin/hooks/useAdminDiscounts.js.map +1 -0
- package/dist/admin/index.d.ts +3 -3
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +2 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/types.d.ts +72 -0
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/auth/components/AddressForm.d.ts.map +1 -1
- package/dist/auth/components/AddressForm.js +22 -7
- package/dist/auth/components/AddressForm.js.map +1 -1
- package/dist/checkout/api/checkout.d.ts.map +1 -1
- package/dist/checkout/api/checkout.js +15 -2
- package/dist/checkout/api/checkout.js.map +1 -1
- package/dist/checkout/api/discount.d.ts +47 -0
- package/dist/checkout/api/discount.d.ts.map +1 -0
- package/dist/checkout/api/discount.js +77 -0
- package/dist/checkout/api/discount.js.map +1 -0
- package/dist/checkout/api/index.d.ts +1 -0
- package/dist/checkout/api/index.d.ts.map +1 -1
- package/dist/checkout/api/index.js +1 -0
- package/dist/checkout/api/index.js.map +1 -1
- package/dist/checkout/api/manual.d.ts.map +1 -1
- package/dist/checkout/api/manual.js +64 -130
- package/dist/checkout/api/manual.js.map +1 -1
- package/dist/checkout/api/shipping.d.ts.map +1 -1
- package/dist/checkout/api/shipping.js +19 -27
- package/dist/checkout/api/shipping.js.map +1 -1
- package/dist/checkout/components/CheckoutFlow.d.ts.map +1 -1
- package/dist/checkout/components/CheckoutFlow.js +89 -9
- package/dist/checkout/components/CheckoutFlow.js.map +1 -1
- package/dist/checkout/components/OrderSummary.d.ts +1 -1
- package/dist/checkout/components/OrderSummary.d.ts.map +1 -1
- package/dist/checkout/components/OrderSummary.js +3 -3
- package/dist/checkout/components/OrderSummary.js.map +1 -1
- package/dist/checkout/components/ShippingForm.d.ts.map +1 -1
- package/dist/checkout/components/ShippingForm.js +42 -13
- package/dist/checkout/components/ShippingForm.js.map +1 -1
- package/dist/checkout/constants.d.ts +38 -0
- package/dist/checkout/constants.d.ts.map +1 -1
- package/dist/checkout/constants.js +39 -0
- package/dist/checkout/constants.js.map +1 -1
- package/dist/checkout/hooks/useCheckout.d.ts.map +1 -1
- package/dist/checkout/hooks/useCheckout.js +2 -0
- package/dist/checkout/hooks/useCheckout.js.map +1 -1
- package/dist/checkout/server/checkout-customer.d.ts +30 -0
- package/dist/checkout/server/checkout-customer.d.ts.map +1 -0
- package/dist/checkout/server/checkout-customer.js +47 -0
- package/dist/checkout/server/checkout-customer.js.map +1 -0
- package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
- package/dist/checkout/server/create-checkout-session.js +149 -9
- package/dist/checkout/server/create-checkout-session.js.map +1 -1
- package/dist/checkout/server/discounts.d.ts +75 -0
- package/dist/checkout/server/discounts.d.ts.map +1 -0
- package/dist/checkout/server/discounts.js +294 -0
- package/dist/checkout/server/discounts.js.map +1 -0
- package/dist/checkout/server/handle-webhook.js +23 -1
- package/dist/checkout/server/handle-webhook.js.map +1 -1
- package/dist/checkout/server/index.d.ts +4 -0
- package/dist/checkout/server/index.d.ts.map +1 -1
- package/dist/checkout/server/index.js +4 -0
- package/dist/checkout/server/index.js.map +1 -1
- package/dist/checkout/server/order-service.d.ts.map +1 -1
- package/dist/checkout/server/order-service.js +60 -10
- package/dist/checkout/server/order-service.js.map +1 -1
- package/dist/checkout/server/pricing.d.ts +164 -0
- package/dist/checkout/server/pricing.d.ts.map +1 -0
- package/dist/checkout/server/pricing.js +309 -0
- package/dist/checkout/server/pricing.js.map +1 -0
- package/dist/checkout/types.d.ts +8 -0
- package/dist/checkout/types.d.ts.map +1 -1
- package/dist/core/StoreSettingsProvider.d.ts +4 -0
- package/dist/core/StoreSettingsProvider.d.ts.map +1 -1
- package/dist/core/StoreSettingsProvider.js +6 -0
- package/dist/core/StoreSettingsProvider.js.map +1 -1
- package/dist/core/api/settings.d.ts +1 -0
- package/dist/core/api/settings.d.ts.map +1 -1
- package/dist/core/api/settings.js +2 -0
- package/dist/core/api/settings.js.map +1 -1
- package/dist/core/db/queries.d.ts +267 -19
- package/dist/core/db/queries.d.ts.map +1 -1
- package/dist/core/db/queries.js +297 -0
- package/dist/core/db/queries.js.map +1 -1
- package/dist/core/db/schema.d.ts +618 -0
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.js +78 -0
- package/dist/core/db/schema.js.map +1 -1
- package/package.json +5 -1
|
@@ -20,6 +20,7 @@ export const COMMON_COUNTRIES = [
|
|
|
20
20
|
{ code: 'FR', name: 'France' },
|
|
21
21
|
{ code: 'IT', name: 'Italy' },
|
|
22
22
|
{ code: 'ES', name: 'Spain' },
|
|
23
|
+
{ code: 'PT', name: 'Portugal' },
|
|
23
24
|
{ code: 'NL', name: 'Netherlands' },
|
|
24
25
|
{ code: 'BE', name: 'Belgium' },
|
|
25
26
|
{ code: 'AT', name: 'Austria' },
|
|
@@ -29,10 +30,48 @@ export const COMMON_COUNTRIES = [
|
|
|
29
30
|
{ code: 'DK', name: 'Denmark' },
|
|
30
31
|
{ code: 'FI', name: 'Finland' },
|
|
31
32
|
{ code: 'IE', name: 'Ireland' },
|
|
33
|
+
{ code: 'PL', name: 'Poland' },
|
|
32
34
|
{ code: 'NZ', name: 'New Zealand' },
|
|
33
35
|
{ code: 'JP', name: 'Japan' },
|
|
34
36
|
{ code: 'SG', name: 'Singapore' },
|
|
37
|
+
{ code: 'AE', name: 'United Arab Emirates' },
|
|
38
|
+
{ code: 'IN', name: 'India' },
|
|
39
|
+
{ code: 'CN', name: 'China' },
|
|
40
|
+
{ code: 'MX', name: 'Mexico' },
|
|
41
|
+
{ code: 'BR', name: 'Brazil' },
|
|
42
|
+
{ code: 'AR', name: 'Argentina' },
|
|
43
|
+
{ code: 'ZA', name: 'South Africa' },
|
|
35
44
|
];
|
|
45
|
+
/**
|
|
46
|
+
* Country list ordered for a specific store: the store's home country first,
|
|
47
|
+
* then the rest of COMMON_COUNTRIES in their usual order. When the store
|
|
48
|
+
* country isn't in the list (rare — 'Other' merchants), an entry is
|
|
49
|
+
* synthesized from Intl.DisplayNames so the merchant's own country is always
|
|
50
|
+
* selectable. Pass null/undefined to get the plain list.
|
|
51
|
+
*/
|
|
52
|
+
export function orderCountriesForStore(storeCountry) {
|
|
53
|
+
const base = COMMON_COUNTRIES.map((c) => ({
|
|
54
|
+
code: c.code,
|
|
55
|
+
name: c.name,
|
|
56
|
+
}));
|
|
57
|
+
const code = storeCountry?.trim().toUpperCase();
|
|
58
|
+
if (!code || !/^[A-Z]{2}$/.test(code))
|
|
59
|
+
return base;
|
|
60
|
+
const idx = base.findIndex((c) => c.code === code);
|
|
61
|
+
if (idx >= 0) {
|
|
62
|
+
const [own] = base.splice(idx, 1);
|
|
63
|
+
return [own, ...base];
|
|
64
|
+
}
|
|
65
|
+
// Store country not in the common list — synthesize an entry.
|
|
66
|
+
let name = code;
|
|
67
|
+
try {
|
|
68
|
+
name = new Intl.DisplayNames(['en'], { type: 'region' }).of(code) || code;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Older runtimes without DisplayNames — the raw code is still usable.
|
|
72
|
+
}
|
|
73
|
+
return [{ code, name }, ...base];
|
|
74
|
+
}
|
|
36
75
|
// =============================================================================
|
|
37
76
|
// US States List
|
|
38
77
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/checkout/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE;IACrC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;IACtC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;IACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;IACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;IACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC9B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;IACnC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/checkout/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckout.d.ts","sourceRoot":"","sources":["../../../src/checkout/hooks/useCheckout.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAGV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAMjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useCheckout.d.ts","sourceRoot":"","sources":["../../../src/checkout/hooks/useCheckout.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAGV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAMjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CA2M3E"}
|
|
@@ -99,6 +99,7 @@ export function useCheckout(options) {
|
|
|
99
99
|
shippingAddress: options?.shippingAddress,
|
|
100
100
|
billingAddress: options?.billingAddress,
|
|
101
101
|
selectedShipping: options?.selectedShipping,
|
|
102
|
+
discountCode: options?.discountCode,
|
|
102
103
|
};
|
|
103
104
|
// Call checkout API
|
|
104
105
|
const response = await fetch('/api/checkout', {
|
|
@@ -177,6 +178,7 @@ export function useCheckout(options) {
|
|
|
177
178
|
shippingAddress: options?.shippingAddress,
|
|
178
179
|
billingAddress: options?.billingAddress,
|
|
179
180
|
selectedShipping: options?.selectedShipping,
|
|
181
|
+
discountCode: options?.discountCode,
|
|
180
182
|
metadata: mergedMetadata,
|
|
181
183
|
// Double-submit protection: a stable-enough key per attempt window.
|
|
182
184
|
idempotencyKey: typeof crypto !== 'undefined' && 'randomUUID' in crypto
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckout.js","sourceRoot":"","sources":["../../../src/checkout/hooks/useCheckout.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useCheckout.js","sourceRoot":"","sources":["../../../src/checkout/hooks/useCheckout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/checkout/server/checkout-customer
|
|
3
|
+
*
|
|
4
|
+
* Trusted customer identity for checkout routes.
|
|
5
|
+
*
|
|
6
|
+
* Checkout historically trusted a client-supplied `body.customerId`. That is
|
|
7
|
+
* a spoofable input on a money path: a request could attach an order to
|
|
8
|
+
* another customer's account (it would then appear in THEIR order history).
|
|
9
|
+
* This helper resolves the customer from the SESSION COOKIE server-side —
|
|
10
|
+
* the same NextAuth config the account area uses — and is the only identity
|
|
11
|
+
* checkout should trust.
|
|
12
|
+
*
|
|
13
|
+
* Unlike `requireCustomer()` (401 for guests), this resolver is OPTIONAL:
|
|
14
|
+
* guests resolve to `null` and checkout proceeds under the store's
|
|
15
|
+
* guest-checkout policy.
|
|
16
|
+
*/
|
|
17
|
+
export interface TrustedCheckoutCustomer {
|
|
18
|
+
id: string;
|
|
19
|
+
email: string;
|
|
20
|
+
name: string | null;
|
|
21
|
+
/** Customer-group membership — drives group-gated methods/rates (Phase 4). */
|
|
22
|
+
groupId: string | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve the customer behind the current request, or `null` for guests.
|
|
26
|
+
* NEVER throws — any session/DB failure degrades to guest treatment (the
|
|
27
|
+
* store's guest-checkout gate then decides whether the request proceeds).
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveCheckoutCustomer(): Promise<TrustedCheckoutCustomer | null>;
|
|
30
|
+
//# sourceMappingURL=checkout-customer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-customer.d.ts","sourceRoot":"","sources":["../../../src/checkout/server/checkout-customer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAsBvF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/checkout/server/checkout-customer
|
|
3
|
+
*
|
|
4
|
+
* Trusted customer identity for checkout routes.
|
|
5
|
+
*
|
|
6
|
+
* Checkout historically trusted a client-supplied `body.customerId`. That is
|
|
7
|
+
* a spoofable input on a money path: a request could attach an order to
|
|
8
|
+
* another customer's account (it would then appear in THEIR order history).
|
|
9
|
+
* This helper resolves the customer from the SESSION COOKIE server-side —
|
|
10
|
+
* the same NextAuth config the account area uses — and is the only identity
|
|
11
|
+
* checkout should trust.
|
|
12
|
+
*
|
|
13
|
+
* Unlike `requireCustomer()` (401 for guests), this resolver is OPTIONAL:
|
|
14
|
+
* guests resolve to `null` and checkout proceeds under the store's
|
|
15
|
+
* guest-checkout policy.
|
|
16
|
+
*/
|
|
17
|
+
import { getServerSession } from 'next-auth';
|
|
18
|
+
import { createCustomerAuthOptions } from '../../auth/config';
|
|
19
|
+
import { findCustomerById } from '../../core/db/queries';
|
|
20
|
+
/**
|
|
21
|
+
* Resolve the customer behind the current request, or `null` for guests.
|
|
22
|
+
* NEVER throws — any session/DB failure degrades to guest treatment (the
|
|
23
|
+
* store's guest-checkout gate then decides whether the request proceeds).
|
|
24
|
+
*/
|
|
25
|
+
export async function resolveCheckoutCustomer() {
|
|
26
|
+
try {
|
|
27
|
+
const rawSession = await getServerSession(createCustomerAuthOptions());
|
|
28
|
+
const sessionUser = rawSession?.user;
|
|
29
|
+
if (!sessionUser?.id)
|
|
30
|
+
return null;
|
|
31
|
+
// Re-validate against the DB (orphan-JWT guard) + load the group.
|
|
32
|
+
const row = await findCustomerById(sessionUser.id);
|
|
33
|
+
if (!row)
|
|
34
|
+
return null;
|
|
35
|
+
return {
|
|
36
|
+
id: row.id,
|
|
37
|
+
email: row.email,
|
|
38
|
+
name: row.name ?? null,
|
|
39
|
+
groupId: row.groupId ?? null,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
console.error('[resolveCheckoutCustomer] session resolution failed:', err);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=checkout-customer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-customer.js","sourceRoot":"","sources":["../../../src/checkout/server/checkout-customer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAUxD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,EAAE,CAAC,CAAA;QACtE,MAAM,WAAW,GAAI,UAEZ,EAAE,IAAI,CAAA;QACf,IAAI,CAAC,WAAW,EAAE,EAAE;YAAE,OAAO,IAAI,CAAA;QAEjC,kEAAkE;QAClE,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAClD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;YACtB,OAAO,EAAG,GAAmC,CAAC,OAAO,IAAI,IAAI;SAC9D,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAA;QAC1E,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-checkout-session.d.ts","sourceRoot":"","sources":["../../../src/checkout/server/create-checkout-session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAQhC,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"create-checkout-session.d.ts","sourceRoot":"","sources":["../../../src/checkout/server/create-checkout-session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAQhC,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,UAAU,CAAA;AAejB,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAiJD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,uBAAuB,CAAC,CAskBlC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,GACX,gBAAgB,EAAE,CAqBpB;AAMD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,CAoBzC"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { getStripe, getConnectedAccountId, calculateApplicationFee, getStoreCurrency, getAllowedShippingCountries, } from '../stripe/client';
|
|
8
8
|
import { findSettings, findActiveShippingZones, findTaxRateForAddress, } from '../../core/db/queries';
|
|
9
|
+
import { repriceItems, resolveShippingSelection, PricingError } from './pricing';
|
|
10
|
+
import { evaluateDiscounts } from './discounts';
|
|
9
11
|
// =============================================================================
|
|
10
12
|
// Shipping Helpers
|
|
11
13
|
// =============================================================================
|
|
@@ -176,9 +178,73 @@ export async function createCheckoutSession(request, options = {}) {
|
|
|
176
178
|
if (!request.successUrl || !request.cancelUrl) {
|
|
177
179
|
throw new Error('Success and cancel URLs are required');
|
|
178
180
|
}
|
|
179
|
-
//
|
|
180
|
-
|
|
181
|
-
|
|
181
|
+
// ==========================================================================
|
|
182
|
+
// SERVER RE-PRICE (pricing core) — the client's prices are NOT the source
|
|
183
|
+
// of truth for money. Every line is re-priced from the catalog in 'floor'
|
|
184
|
+
// mode: a client price ABOVE the catalog price is accepted (configurator /
|
|
185
|
+
// add-on surcharges priced client-side); a client price BELOW it rejects
|
|
186
|
+
// the checkout (PricingError → 4xx in the route). The Stripe hosted page
|
|
187
|
+
// now only DISPLAYS and COLLECTS the amount we computed.
|
|
188
|
+
// ==========================================================================
|
|
189
|
+
const repriced = await repriceItems(request.items, 'floor');
|
|
190
|
+
const items = repriced.lines;
|
|
191
|
+
// Subtotal from SERVER-priced lines; application fee follows it.
|
|
192
|
+
const subtotal = repriced.subtotalCents;
|
|
193
|
+
// Server-validate the pre-selected shipping (manual zone rates are
|
|
194
|
+
// re-derived from the rate id — the server's price wins; Shippo quotes are
|
|
195
|
+
// sanity-bounded). Replaces the client-claimed price everywhere below.
|
|
196
|
+
let selectedShipping = request.selectedShipping;
|
|
197
|
+
if (selectedShipping && isShippingEnabled && collectShippingAddress) {
|
|
198
|
+
if (selectedShipping.source !== 'shippo' && !request.shippingAddress?.country) {
|
|
199
|
+
// Manual rates can't be re-derived without a destination country —
|
|
200
|
+
// bound the claimed price like a Shippo quote instead of trusting it.
|
|
201
|
+
const claimed = Number(selectedShipping.price);
|
|
202
|
+
if (!Number.isFinite(claimed) || claimed < 0 || claimed > 1_000_000) {
|
|
203
|
+
throw new Error('Invalid shipping selection');
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
const resolved = await resolveShippingSelection({
|
|
208
|
+
selection: selectedShipping,
|
|
209
|
+
country: request.shippingAddress?.country ?? '',
|
|
210
|
+
subtotalCents: subtotal,
|
|
211
|
+
});
|
|
212
|
+
selectedShipping = {
|
|
213
|
+
...selectedShipping,
|
|
214
|
+
price: resolved.shippingCents,
|
|
215
|
+
name: selectedShipping.name,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// ==========================================================================
|
|
220
|
+
// NATIVE DISCOUNTS (pricing core, step 2) — evaluated in OUR infrastructure
|
|
221
|
+
// before Stripe sees anything. The applied amount reaches the hosted page
|
|
222
|
+
// as an ephemeral one-off Stripe coupon (display + collection only). An
|
|
223
|
+
// entered code that fails validation rejects the checkout (the UI
|
|
224
|
+
// pre-validates via /api/checkout/discount, so this is a stale/tampered
|
|
225
|
+
// submission).
|
|
226
|
+
// ==========================================================================
|
|
227
|
+
const discountEvaluation = await evaluateDiscounts({
|
|
228
|
+
lines: items,
|
|
229
|
+
subtotalCents: subtotal,
|
|
230
|
+
categoryByProductId: repriced.categoryByProductId,
|
|
231
|
+
code: request.discountCode ?? null,
|
|
232
|
+
customerId: request.customerId ?? null,
|
|
233
|
+
customerGroupId: request.customerGroupId ?? null,
|
|
234
|
+
customerEmail: request.customerEmail ?? null,
|
|
235
|
+
});
|
|
236
|
+
if (request.discountCode && discountEvaluation.codeError) {
|
|
237
|
+
throw new PricingError(discountEvaluation.codeError.message);
|
|
238
|
+
}
|
|
239
|
+
const discountCents = Math.min(discountEvaluation.discountCents, subtotal);
|
|
240
|
+
const appliedDiscounts = discountEvaluation.applied;
|
|
241
|
+
// A free-shipping discount zeroes the (already validated) shipping price
|
|
242
|
+
// while keeping the chosen method — the shipping line renders at 0.
|
|
243
|
+
if (discountEvaluation.freeShipping && selectedShipping && selectedShipping.price > 0) {
|
|
244
|
+
selectedShipping = { ...selectedShipping, price: 0 };
|
|
245
|
+
}
|
|
246
|
+
// Application fee follows the DISCOUNTED goods value.
|
|
247
|
+
const appFee = applicationFeeAmount ?? calculateApplicationFee(subtotal - discountCents);
|
|
182
248
|
// ==========================================================================
|
|
183
249
|
// Zone-Based Tax Calculation
|
|
184
250
|
// ==========================================================================
|
|
@@ -205,10 +271,10 @@ export async function createCheckoutSession(request, options = {}) {
|
|
|
205
271
|
// Determine tax handling mode
|
|
206
272
|
const shouldExtractTax = taxIncludedInPrices && taxRate > 0; // Prices include tax - extract it
|
|
207
273
|
const shouldAddTax = !taxIncludedInPrices && taxRate > 0; // Prices exclude tax - add it on top
|
|
208
|
-
// Build line items for Stripe
|
|
274
|
+
// Build line items for Stripe from the SERVER-priced lines.
|
|
209
275
|
// When extracting tax (tax-inclusive prices): send pre-tax prices
|
|
210
276
|
// When adding tax (tax-exclusive prices) or no tax: send prices as-is
|
|
211
|
-
const lineItems =
|
|
277
|
+
const lineItems = items.map((item) => {
|
|
212
278
|
// Calculate the price to send to Stripe
|
|
213
279
|
const displayPrice = shouldExtractTax
|
|
214
280
|
? Math.round(item.price / taxDivisor) // Pre-tax price (tax will be shown separately)
|
|
@@ -285,8 +351,8 @@ export async function createCheckoutSession(request, options = {}) {
|
|
|
285
351
|
// When selectedShipping is provided, we add shipping as a line item
|
|
286
352
|
// instead of showing shipping_options for customer to choose from.
|
|
287
353
|
// This ensures the pre-checkout flow selection is locked in.
|
|
288
|
-
|
|
289
|
-
|
|
354
|
+
// (`selectedShipping` was server-validated above — its price is ours.)
|
|
355
|
+
if (selectedShipping && shouldCollectShipping) {
|
|
290
356
|
// Apply same tax extraction logic to shipping (if shipping is tax-inclusive)
|
|
291
357
|
const shippingDisplayPrice = shouldExtractTax
|
|
292
358
|
? Math.round(selectedShipping.price / taxDivisor)
|
|
@@ -442,8 +508,11 @@ export async function createCheckoutSession(request, options = {}) {
|
|
|
442
508
|
enabled: true,
|
|
443
509
|
};
|
|
444
510
|
}
|
|
445
|
-
//
|
|
446
|
-
|
|
511
|
+
// LEGACY hosted-page promotion codes. Mutually exclusive with the native
|
|
512
|
+
// discounts engine: when any native discount applied, `discounts` is set on
|
|
513
|
+
// the session below and Stripe rejects the combination — codes are entered
|
|
514
|
+
// in OUR checkout now.
|
|
515
|
+
if (allowPromotionCodes && appliedDiscounts.length === 0) {
|
|
447
516
|
sessionParams.allow_promotion_codes = true;
|
|
448
517
|
}
|
|
449
518
|
// ==========================================================================
|
|
@@ -514,6 +583,77 @@ export async function createCheckoutSession(request, options = {}) {
|
|
|
514
583
|
};
|
|
515
584
|
}
|
|
516
585
|
}
|
|
586
|
+
// ==========================================================================
|
|
587
|
+
// Native discount → ephemeral Stripe coupon + authoritative-totals stamp
|
|
588
|
+
// ==========================================================================
|
|
589
|
+
// When the session's money is fully deterministic server-side (pre-selected
|
|
590
|
+
// shipping, or a no-shipping store), stamp OUR computed totals on the
|
|
591
|
+
// session. The webhook records the order from THESE numbers — Stripe's
|
|
592
|
+
// amounts become a cross-check, not the source of truth. The standard flow
|
|
593
|
+
// (shipping chosen on the hosted page) stays on Stripe-derived amounts.
|
|
594
|
+
const quoteShippingCents = selectedShipping && shouldCollectShipping ? selectedShipping.price : 0;
|
|
595
|
+
const isDeterministicQuote = (selectedShipping && shouldCollectShipping) || !shouldCollectShipping;
|
|
596
|
+
if (isDeterministicQuote) {
|
|
597
|
+
// Canonical (recorded) tax: computed on the DISCOUNTED base — the
|
|
598
|
+
// session's tax line was computed pre-discount, so re-derive here with
|
|
599
|
+
// the same rate. Inclusive stores: display-only extraction.
|
|
600
|
+
const discountedBase = subtotal - discountCents + quoteShippingCents;
|
|
601
|
+
const canonicalTaxCents = taxRate > 0
|
|
602
|
+
? taxIncludedInPrices
|
|
603
|
+
? Math.round(discountedBase - discountedBase / (1 + taxRate / 100))
|
|
604
|
+
: Math.round(discountedBase * (taxRate / 100))
|
|
605
|
+
: 0;
|
|
606
|
+
const quoteTotal = taxIncludedInPrices
|
|
607
|
+
? discountedBase
|
|
608
|
+
: discountedBase + canonicalTaxCents;
|
|
609
|
+
// The hosted page shows our discount as a one-off coupon whose amount is
|
|
610
|
+
// EXACTLY lineSum − quoteTotal, so the charged total equals the quote by
|
|
611
|
+
// construction (this also absorbs the tax-on-discount adjustment in
|
|
612
|
+
// tax-exclusive stores).
|
|
613
|
+
if (discountCents > 0) {
|
|
614
|
+
const lineSum = lineItems.reduce((sum, li) => sum +
|
|
615
|
+
((li.price_data?.unit_amount || 0) *
|
|
616
|
+
(li.quantity || 1)), 0);
|
|
617
|
+
const couponAmountOff = lineSum - quoteTotal;
|
|
618
|
+
if (couponAmountOff > 0) {
|
|
619
|
+
const couponLabel = appliedDiscounts.find((d) => d.code)?.code ||
|
|
620
|
+
appliedDiscounts[0]?.title ||
|
|
621
|
+
'Discount';
|
|
622
|
+
const coupon = await stripe.coupons.create({
|
|
623
|
+
amount_off: couponAmountOff,
|
|
624
|
+
currency,
|
|
625
|
+
duration: 'once',
|
|
626
|
+
name: couponLabel.slice(0, 40),
|
|
627
|
+
}, { stripeAccount: connectedAccountId });
|
|
628
|
+
sessionParams.discounts = [{ coupon: coupon.id }];
|
|
629
|
+
// Stripe rejects allow_promotion_codes together with discounts.
|
|
630
|
+
delete sessionParams.allow_promotion_codes;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
sessionParams.metadata = {
|
|
634
|
+
...sessionParams.metadata,
|
|
635
|
+
rovelaTotals: JSON.stringify({
|
|
636
|
+
v: 1,
|
|
637
|
+
subtotal,
|
|
638
|
+
discount: discountCents,
|
|
639
|
+
shipping: quoteShippingCents,
|
|
640
|
+
tax: canonicalTaxCents,
|
|
641
|
+
total: quoteTotal,
|
|
642
|
+
}),
|
|
643
|
+
// Applied-discount snapshot for webhook redemption recording. Compact
|
|
644
|
+
// (id + code + net amount); metadata values cap at 500 chars.
|
|
645
|
+
...(appliedDiscounts.length > 0 && {
|
|
646
|
+
rovelaDiscounts: JSON.stringify(appliedDiscounts.map((d) => ({
|
|
647
|
+
id: d.id,
|
|
648
|
+
c: d.code,
|
|
649
|
+
a: d.amountCents,
|
|
650
|
+
}))).slice(0, 500),
|
|
651
|
+
...(appliedDiscounts.find((d) => d.code)?.code && {
|
|
652
|
+
rovelaDiscountCode: appliedDiscounts.find((d) => d.code).code,
|
|
653
|
+
}),
|
|
654
|
+
}),
|
|
655
|
+
};
|
|
656
|
+
}
|
|
517
657
|
// Create the session ON the connected account (Direct Charge)
|
|
518
658
|
const session = await stripe.checkout.sessions.create(sessionParams, {
|
|
519
659
|
stripeAccount: connectedAccountId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-checkout-session.js","sourceRoot":"","sources":["../../../src/checkout/server/create-checkout-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-checkout-session.js","sourceRoot":"","sources":["../../../src/checkout/server/create-checkout-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela/sdk/checkout/server/discounts
|
|
3
|
+
*
|
|
4
|
+
* The native discount EVALUATOR — step 2 of the pricing core.
|
|
5
|
+
*
|
|
6
|
+
* Given the server-priced cart lines and the (trusted) customer context, it
|
|
7
|
+
* decides which discounts apply and how much they take off. It runs
|
|
8
|
+
* identically for every payment path (Stripe, manual methods, future
|
|
9
|
+
* providers) because it operates BEFORE any processor is involved.
|
|
10
|
+
*
|
|
11
|
+
* Model (see schema.ts `discounts`):
|
|
12
|
+
* - `automatic` discounts are always candidates; a `code` discount is a
|
|
13
|
+
* candidate only when the shopper entered its code.
|
|
14
|
+
* - Each discount belongs to a CLASS — product / order / shipping — and
|
|
15
|
+
* carries per-class `combinesWith` flags. A set of discounts can coexist
|
|
16
|
+
* only when every PAIR allows the other's class (Shopify's model, without
|
|
17
|
+
* Shopify's caps).
|
|
18
|
+
* - Resolution is deterministic: the entered code is honored first (the
|
|
19
|
+
* shopper asked for it), then automatic discounts are added greedily in
|
|
20
|
+
* descending amount order while pairwise-compatible. One shipping-class
|
|
21
|
+
* discount at most (a shipping rate can't be discounted twice).
|
|
22
|
+
* - The cumulative product+order discount is clamped to the subtotal.
|
|
23
|
+
*
|
|
24
|
+
* Validation per candidate: enabled → schedule → eligibility (all /
|
|
25
|
+
* logged_in / groups) → scoped minimums (min subtotal / quantity count only
|
|
26
|
+
* the items in scope, like Shopify) → usage limit → once-per-customer.
|
|
27
|
+
* Automatic discounts failing a check are silently skipped; a failing CODE
|
|
28
|
+
* reports a friendly `codeError` for the checkout UI.
|
|
29
|
+
*/
|
|
30
|
+
import type { Discount } from '../../core/db/schema';
|
|
31
|
+
import type { CheckoutLineItem } from '../types';
|
|
32
|
+
export type DiscountClass = 'product' | 'order' | 'shipping';
|
|
33
|
+
export interface AppliedDiscount {
|
|
34
|
+
id: string;
|
|
35
|
+
title: string;
|
|
36
|
+
/** The redemption code (null for automatic discounts). */
|
|
37
|
+
code: string | null;
|
|
38
|
+
method: 'code' | 'automatic';
|
|
39
|
+
type: string;
|
|
40
|
+
discountClass: DiscountClass;
|
|
41
|
+
/** Amount taken off the products/order, in cents (0 for free shipping). */
|
|
42
|
+
amountCents: number;
|
|
43
|
+
/** True when this discount zeroes the shipping cost. */
|
|
44
|
+
freeShipping: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface DiscountCodeError {
|
|
47
|
+
reason: 'INVALID_CODE' | 'EXPIRED' | 'NOT_ELIGIBLE' | 'MINIMUM_NOT_MET' | 'USAGE_LIMIT_REACHED' | 'ALREADY_USED' | 'NOT_APPLICABLE';
|
|
48
|
+
message: string;
|
|
49
|
+
}
|
|
50
|
+
export interface DiscountEvaluation {
|
|
51
|
+
/** Total product+order discount in cents (≤ subtotal). */
|
|
52
|
+
discountCents: number;
|
|
53
|
+
/** True when an applied discount zeroes shipping. */
|
|
54
|
+
freeShipping: boolean;
|
|
55
|
+
applied: AppliedDiscount[];
|
|
56
|
+
/** Set when an entered code could not be applied (checkout UI copy). */
|
|
57
|
+
codeError?: DiscountCodeError;
|
|
58
|
+
}
|
|
59
|
+
export interface DiscountEvaluationContext {
|
|
60
|
+
lines: CheckoutLineItem[];
|
|
61
|
+
subtotalCents: number;
|
|
62
|
+
/** productId → categoryId (from re-pricing) for category-scoped discounts. */
|
|
63
|
+
categoryByProductId?: Record<string, string | null>;
|
|
64
|
+
/** The code the shopper entered ('' / null = none). */
|
|
65
|
+
code?: string | null;
|
|
66
|
+
/** Trusted (session-resolved) customer — never client-claimed. */
|
|
67
|
+
customerId?: string | null;
|
|
68
|
+
customerGroupId?: string | null;
|
|
69
|
+
/** Contact email (order-time once-per-customer check for guests). */
|
|
70
|
+
customerEmail?: string | null;
|
|
71
|
+
now?: Date;
|
|
72
|
+
}
|
|
73
|
+
export declare function discountClassOf(d: Pick<Discount, 'type' | 'appliesTo'>): DiscountClass;
|
|
74
|
+
export declare function evaluateDiscounts(ctx: DiscountEvaluationContext): Promise<DiscountEvaluation>;
|
|
75
|
+
//# sourceMappingURL=discounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discounts.d.ts","sourceRoot":"","sources":["../../../src/checkout/server/discounts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAMhD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;AAE5D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,WAAW,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,aAAa,CAAA;IAC5B,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EACF,cAAc,GACd,SAAS,GACT,cAAc,GACd,iBAAiB,GACjB,qBAAqB,GACrB,cAAc,GACd,gBAAgB,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAA;IACrB,qDAAqD;IACrD,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,wEAAwE;IACxE,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;IACnD,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,GAAG,CAAC,EAAE,IAAI,CAAA;CACX;AAMD,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,aAAa,CAItF;AA+LD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,yBAAyB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAuG7B"}
|