@noodleseed/one 0.59.0 → 0.61.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/commands/billing-stripe-ops.js +1 -0
- package/dist/commands/billing-stripe-ops.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-checkouts.d.ts +7 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-checkouts.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-checkouts.js +247 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-checkouts.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.js +14 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.d.ts +4 -4
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.js +10 -99
- package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-contract.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/billing/stripe-contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-contract.js +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/stripe-contract.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-lifecycle.js +35 -6
- package/node_modules/@noodle-borg/service/dist/billing/stripe-lifecycle.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-provider.d.ts +5 -0
- package/node_modules/@noodle-borg/service/dist/billing/stripe-provider.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-provider.js +39 -0
- package/node_modules/@noodle-borg/service/dist/billing/stripe-provider.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-service.d.ts +5 -4
- package/node_modules/@noodle-borg/service/dist/billing/stripe-service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-service.js +120 -44
- package/node_modules/@noodle-borg/service/dist/billing/stripe-service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-store.d.ts +35 -5
- package/node_modules/@noodle-borg/service/dist/billing/stripe-store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-store.js +8 -1
- package/node_modules/@noodle-borg/service/dist/billing/stripe-store.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.js +4 -2
- package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,7 +15,8 @@ export function stripeSubscriptionReconciliationRequest(input) {
|
|
|
15
15
|
const periodEnd = instant('Stripe period end', provider.currentPeriodEnd);
|
|
16
16
|
const graceEnd = new Date(new Date(periodEnd).getTime() + PAYMENT_GRACE_MS).toISOString();
|
|
17
17
|
const current = cursor.currentSubscription;
|
|
18
|
-
const
|
|
18
|
+
const immediateEnd = immediateCustomerCancellationEnd(provider, current, now);
|
|
19
|
+
const accessState = providerAccessState(provider, now, periodEnd, graceEnd, immediateEnd);
|
|
19
20
|
if (accessState === 'ended' && current === null) {
|
|
20
21
|
throw new Error('Stripe subscription cannot end before paid access exists');
|
|
21
22
|
}
|
|
@@ -27,9 +28,8 @@ export function stripeSubscriptionReconciliationRequest(input) {
|
|
|
27
28
|
? periodEnd
|
|
28
29
|
: accessState === 'payment_grace'
|
|
29
30
|
? graceEnd
|
|
30
|
-
:
|
|
31
|
-
? current.effectiveUntil
|
|
32
|
-
: periodEnd;
|
|
31
|
+
: (immediateEnd ??
|
|
32
|
+
(current?.state === 'payment_grace' ? current.effectiveUntil : periodEnd));
|
|
33
33
|
const revision = {
|
|
34
34
|
subscriptionId: cursor.internalSubscriptionId,
|
|
35
35
|
billingAccountId: cursor.billingAccountId,
|
|
@@ -62,7 +62,9 @@ export function stripeSubscriptionReconciliationRequest(input) {
|
|
|
62
62
|
revision,
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
-
function providerAccessState(provider, now, periodEnd, graceEnd) {
|
|
65
|
+
function providerAccessState(provider, now, periodEnd, graceEnd, immediateEnd) {
|
|
66
|
+
if (immediateEnd !== null)
|
|
67
|
+
return 'ended';
|
|
66
68
|
if (provider.status === 'active' || provider.status === 'trialing') {
|
|
67
69
|
if (now >= periodEnd)
|
|
68
70
|
throw new Error('active Stripe subscription period has already ended');
|
|
@@ -70,10 +72,37 @@ function providerAccessState(provider, now, periodEnd, graceEnd) {
|
|
|
70
72
|
}
|
|
71
73
|
if (now < periodEnd)
|
|
72
74
|
return 'active';
|
|
73
|
-
if (provider.status === 'past_due'
|
|
75
|
+
if ((provider.status === 'past_due' || provider.cancellationReason === 'payment_failed') &&
|
|
76
|
+
now < graceEnd) {
|
|
74
77
|
return 'payment_grace';
|
|
78
|
+
}
|
|
75
79
|
return 'ended';
|
|
76
80
|
}
|
|
81
|
+
function immediateCustomerCancellationEnd(provider, current, now) {
|
|
82
|
+
if (provider.status !== 'canceled' ||
|
|
83
|
+
provider.cancelAtPeriodEnd ||
|
|
84
|
+
provider.cancellationReason !== 'cancellation_requested') {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
if (provider.endedAt === null) {
|
|
88
|
+
throw new Error('immediate Stripe cancellation requires an end time');
|
|
89
|
+
}
|
|
90
|
+
const endedAt = instant('Stripe subscription end', provider.endedAt);
|
|
91
|
+
const effectiveFrom = instant('paid access start', current?.effectiveFrom ?? provider.currentPeriodStart);
|
|
92
|
+
if (endedAt < effectiveFrom) {
|
|
93
|
+
throw new Error('immediate Stripe cancellation cannot end before paid access starts');
|
|
94
|
+
}
|
|
95
|
+
const effectiveEnd = endedAt === effectiveFrom
|
|
96
|
+
? new Date(new Date(effectiveFrom).getTime() + 1).toISOString()
|
|
97
|
+
: endedAt;
|
|
98
|
+
if (effectiveEnd > now) {
|
|
99
|
+
throw new Error('immediate Stripe cancellation cannot end in the future');
|
|
100
|
+
}
|
|
101
|
+
if (current !== null && effectiveEnd > current.effectiveUntil) {
|
|
102
|
+
throw new Error('immediate Stripe cancellation cannot extend paid access');
|
|
103
|
+
}
|
|
104
|
+
return effectiveEnd;
|
|
105
|
+
}
|
|
77
106
|
function isTerminal(status) {
|
|
78
107
|
return (status === 'incomplete_expired' ||
|
|
79
108
|
status === 'canceled' ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripe-lifecycle.js","sourceRoot":"","sources":["../../src/billing/stripe-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAKpD,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AASlD,MAAM,UAAU,uCAAuC,CAAC,KAOvD;IACC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAElD,MAAM,GAAG,GAAG,OAAO,CAAC,4BAA4B,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAC3C,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"stripe-lifecycle.js","sourceRoot":"","sources":["../../src/billing/stripe-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,8 @@ export interface BillingStripeApi {
|
|
|
7
7
|
readonly checkout: {
|
|
8
8
|
readonly sessions: {
|
|
9
9
|
create(params: unknown, options?: unknown): Promise<unknown>;
|
|
10
|
+
retrieve(id: string): Promise<unknown>;
|
|
11
|
+
expire(id: string): Promise<unknown>;
|
|
10
12
|
};
|
|
11
13
|
};
|
|
12
14
|
readonly billingPortal: {
|
|
@@ -28,6 +30,7 @@ export interface BillingStripeEvent {
|
|
|
28
30
|
readonly createdAt: string;
|
|
29
31
|
readonly subscriptionId: string | null;
|
|
30
32
|
}
|
|
33
|
+
export type BillingStripeCancellationReason = 'cancellation_requested' | 'payment_disputed' | 'payment_failed' | null;
|
|
31
34
|
export interface BillingStripeSubscription {
|
|
32
35
|
readonly id: string;
|
|
33
36
|
readonly customerId: string;
|
|
@@ -42,6 +45,7 @@ export interface BillingStripeSubscription {
|
|
|
42
45
|
readonly currentPeriodStart: string;
|
|
43
46
|
readonly currentPeriodEnd: string;
|
|
44
47
|
readonly cancelAtPeriodEnd: boolean;
|
|
48
|
+
readonly cancellationReason: BillingStripeCancellationReason;
|
|
45
49
|
readonly createdAt: string;
|
|
46
50
|
readonly endedAt: string | null;
|
|
47
51
|
}
|
|
@@ -72,6 +76,7 @@ export declare class StripeBillingProvider {
|
|
|
72
76
|
}): Promise<{
|
|
73
77
|
readonly url: string;
|
|
74
78
|
}>;
|
|
79
|
+
retireCheckout(sessionId: string): Promise<'expired' | 'completed'>;
|
|
75
80
|
verifyWebhook(rawBody: Buffer, signature: string): BillingStripeEvent;
|
|
76
81
|
retrieveSubscription(subscriptionId: string): Promise<BillingStripeSubscription>;
|
|
77
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripe-provider.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE;QAClB,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC9D,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"stripe-provider.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export class StripeBillingProvider {
|
|
|
28
28
|
line_items: [
|
|
29
29
|
{ price: billingStripePriceId(this.#config, input.plan, input.interval), quantity: 1 },
|
|
30
30
|
],
|
|
31
|
+
allow_promotion_codes: true,
|
|
31
32
|
automatic_tax: { enabled: false },
|
|
32
33
|
success_url: `${this.#config.consoleBaseUrl}/billing?account=${account}&checkout=success`,
|
|
33
34
|
cancel_url: `${this.#config.consoleBaseUrl}/billing?account=${account}&checkout=cancelled`,
|
|
@@ -60,6 +61,18 @@ export class StripeBillingProvider {
|
|
|
60
61
|
url: secureStripeUrl('Stripe portal Session URL', requireString(session, 'url')),
|
|
61
62
|
});
|
|
62
63
|
}
|
|
64
|
+
async retireCheckout(sessionId) {
|
|
65
|
+
const id = stripeId('Checkout Session', 'cs_', sessionId);
|
|
66
|
+
const session = checkoutSessionStatus(this.#config, await this.#api.checkout.sessions.retrieve(id), id);
|
|
67
|
+
if (session === 'complete')
|
|
68
|
+
return 'completed';
|
|
69
|
+
if (session === 'expired')
|
|
70
|
+
return 'expired';
|
|
71
|
+
const expired = checkoutSessionStatus(this.#config, await this.#api.checkout.sessions.expire(id), id);
|
|
72
|
+
if (expired !== 'expired')
|
|
73
|
+
throw new Error('Stripe Checkout Session did not expire');
|
|
74
|
+
return 'expired';
|
|
75
|
+
}
|
|
63
76
|
verifyWebhook(rawBody, signature) {
|
|
64
77
|
const event = requireRecord('Stripe webhook Event', this.#api.webhooks.constructEvent(rawBody, scalar('Stripe webhook signature', signature), this.#config.webhookSecret));
|
|
65
78
|
const livemode = requireBoolean(event, 'livemode');
|
|
@@ -88,6 +101,8 @@ function createStripeApi(secretKey) {
|
|
|
88
101
|
checkout: {
|
|
89
102
|
sessions: {
|
|
90
103
|
create: (params, options) => stripe.checkout.sessions.create(params, options),
|
|
104
|
+
retrieve: (id) => stripe.checkout.sessions.retrieve(id),
|
|
105
|
+
expire: (id) => stripe.checkout.sessions.expire(id),
|
|
91
106
|
},
|
|
92
107
|
},
|
|
93
108
|
billingPortal: {
|
|
@@ -101,6 +116,18 @@ function createStripeApi(secretKey) {
|
|
|
101
116
|
},
|
|
102
117
|
};
|
|
103
118
|
}
|
|
119
|
+
function checkoutSessionStatus(config, value, expectedId) {
|
|
120
|
+
const session = requireRecord('Stripe Checkout Session', value);
|
|
121
|
+
requireConfiguredMode(config, requireBoolean(session, 'livemode'));
|
|
122
|
+
if (stripeId('Checkout Session', 'cs_', requireString(session, 'id')) !== expectedId) {
|
|
123
|
+
throw new Error('Stripe Checkout Session retrieval returned a different session');
|
|
124
|
+
}
|
|
125
|
+
const status = requireString(session, 'status');
|
|
126
|
+
if (status !== 'open' && status !== 'complete' && status !== 'expired') {
|
|
127
|
+
throw new Error('Stripe Checkout Session status is unsupported');
|
|
128
|
+
}
|
|
129
|
+
return status;
|
|
130
|
+
}
|
|
104
131
|
function normalizeSubscription(config, subscription) {
|
|
105
132
|
const livemode = requireBoolean(subscription, 'livemode');
|
|
106
133
|
requireConfiguredMode(config, livemode);
|
|
@@ -144,6 +171,7 @@ function normalizeSubscription(config, subscription) {
|
|
|
144
171
|
throw new Error('Stripe subscription cadence does not match its billing price');
|
|
145
172
|
}
|
|
146
173
|
const metadata = requireRecord('Stripe subscription metadata', subscription.metadata);
|
|
174
|
+
const cancellationDetails = requireRecord('Stripe subscription cancellation details', subscription.cancellation_details);
|
|
147
175
|
const status = subscriptionStatus(requireString(subscription, 'status'));
|
|
148
176
|
return Object.freeze({
|
|
149
177
|
id: stripeId('subscription', 'sub_', requireString(subscription, 'id')),
|
|
@@ -159,6 +187,7 @@ function normalizeSubscription(config, subscription) {
|
|
|
159
187
|
currentPeriodStart: stripeTimestamp('Stripe subscription period start', requireNumber(item, 'current_period_start')),
|
|
160
188
|
currentPeriodEnd: stripeTimestamp('Stripe subscription period end', requireNumber(item, 'current_period_end')),
|
|
161
189
|
cancelAtPeriodEnd: requireBoolean(subscription, 'cancel_at_period_end'),
|
|
190
|
+
cancellationReason: stripeCancellationReason(cancellationDetails.reason),
|
|
162
191
|
createdAt: stripeTimestamp('Stripe subscription creation', requireNumber(subscription, 'created')),
|
|
163
192
|
endedAt: nullableTimestamp('Stripe subscription end', subscription.ended_at),
|
|
164
193
|
});
|
|
@@ -209,6 +238,16 @@ function subscriptionStatus(value) {
|
|
|
209
238
|
}
|
|
210
239
|
return value;
|
|
211
240
|
}
|
|
241
|
+
function stripeCancellationReason(value) {
|
|
242
|
+
if (value === null)
|
|
243
|
+
return null;
|
|
244
|
+
if (value === 'cancellation_requested' ||
|
|
245
|
+
value === 'payment_disputed' ||
|
|
246
|
+
value === 'payment_failed') {
|
|
247
|
+
return value;
|
|
248
|
+
}
|
|
249
|
+
throw new Error('Stripe subscription cancellation reason is unsupported');
|
|
250
|
+
}
|
|
212
251
|
function nullableTimestamp(name, value) {
|
|
213
252
|
if (value === null)
|
|
214
253
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripe-provider.js","sourceRoot":"","sources":["../../src/billing/stripe-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stripe-provider.js","sourceRoot":"","sources":["../../src/billing/stripe-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import type { ControlPlaneStore } from '../store.js';
|
|
|
2
2
|
import type { BillingIdentityRef } from './model.js';
|
|
3
3
|
import type { BillingStripeConfig, BillingStripePlan } from './stripe-config.js';
|
|
4
4
|
import type { StripeBillingProvider } from './stripe-provider.js';
|
|
5
|
-
import type
|
|
5
|
+
import { type BillingStripeStore } from './stripe-store.js';
|
|
6
6
|
import type { BillingInterval } from './subscription-model.js';
|
|
7
7
|
import type { BillingSubscriptionReconciliationStore } from './subscription-reconciliation.js';
|
|
8
8
|
export declare class BillingStripeRequestError extends Error {
|
|
9
|
-
readonly status: 403 | 404 | 409;
|
|
9
|
+
readonly status: 403 | 404 | 409 | 503;
|
|
10
10
|
readonly code: string;
|
|
11
|
-
constructor(status: 403 | 404 | 409, code: string, message: string);
|
|
11
|
+
constructor(status: 403 | 404 | 409 | 503, code: string, message: string);
|
|
12
12
|
}
|
|
13
13
|
export declare class BillingStripeWebhookVerificationError extends Error {
|
|
14
14
|
constructor();
|
|
@@ -17,7 +17,7 @@ export declare class BillingStripeService {
|
|
|
17
17
|
#private;
|
|
18
18
|
constructor(input: {
|
|
19
19
|
readonly config: BillingStripeConfig;
|
|
20
|
-
readonly provider: Pick<StripeBillingProvider, 'createCustomer' | 'createCheckout' | 'createPortal' | 'verifyWebhook' | 'retrieveSubscription'>;
|
|
20
|
+
readonly provider: Pick<StripeBillingProvider, 'createCustomer' | 'createCheckout' | 'retireCheckout' | 'createPortal' | 'verifyWebhook' | 'retrieveSubscription'>;
|
|
21
21
|
readonly store: BillingStripeStore;
|
|
22
22
|
readonly reconciliation: BillingSubscriptionReconciliationStore;
|
|
23
23
|
readonly controlPlane: ControlPlaneStore;
|
|
@@ -34,6 +34,7 @@ export declare class BillingStripeService {
|
|
|
34
34
|
readonly url: string;
|
|
35
35
|
readonly expiresAt: string;
|
|
36
36
|
readonly replayed: boolean;
|
|
37
|
+
readonly outcome: 'created' | 'resumed' | 'replaced' | 'idempotent_replay';
|
|
37
38
|
}>;
|
|
38
39
|
createPortal(input: {
|
|
39
40
|
readonly billingAccountId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripe-service.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"stripe-service.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,kCAAkC,CAAC;AAE/F,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAMzE;AAED,qBAAa,qCAAsC,SAAQ,KAAK;;CAK/D;AAED,qBAAa,oBAAoB;;gBAiBnB,KAAK,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;QACrC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CACrB,qBAAqB,EACnB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,sBAAsB,CACzB,CAAC;QACF,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;QACnC,QAAQ,CAAC,cAAc,EAAE,sCAAsC,CAAC;QAChE,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;QACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;QAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,MAAM,CAAC;KAC5B;IAUK,cAAc,CAAC,KAAK,EAAE;QAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;QACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC;QACV,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,mBAAmB,CAAC;KAC5E,CAAC;IAqGI,YAAY,CAAC,KAAK,EAAE;QACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KACvC,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB/B,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IA0E9D,4BAA4B,IAAI,OAAO,CAAC;QAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC;CAiKH"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createHash, randomUUID } from 'node:crypto';
|
|
2
2
|
import { billingContentChecksum } from './model.js';
|
|
3
3
|
import { stripeSubscriptionReconciliationRequest } from './stripe-lifecycle.js';
|
|
4
|
+
import { BillingStripeCheckoutEligibilityError, } from './stripe-store.js';
|
|
4
5
|
export class BillingStripeRequestError extends Error {
|
|
5
6
|
status;
|
|
6
7
|
code;
|
|
@@ -38,56 +39,78 @@ export class BillingStripeService {
|
|
|
38
39
|
const account = await this.#requireOwner(input.billingAccountId, input.identity, true);
|
|
39
40
|
const idempotencyKey = scalar('billing checkout idempotency key', input.idempotencyKey);
|
|
40
41
|
const idempotencyKeyHash = sha256(idempotencyKey);
|
|
41
|
-
const requestFingerprint =
|
|
42
|
-
|
|
42
|
+
const requestFingerprint = this.#checkoutFingerprint(input.billingAccountId, input.plan, input.interval);
|
|
43
|
+
const now = this.#now();
|
|
44
|
+
const requested = {
|
|
45
|
+
mode: this.#config.mode,
|
|
43
46
|
billingAccountId: input.billingAccountId,
|
|
47
|
+
idempotencyKeyHash,
|
|
48
|
+
requestFingerprint,
|
|
44
49
|
plan: input.plan,
|
|
45
50
|
interval: input.interval,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
claimedAt: now,
|
|
52
|
+
};
|
|
53
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
54
|
+
const claim = await this.#claimCheckout(requested);
|
|
55
|
+
if (claim.state === 'replay') {
|
|
56
|
+
return {
|
|
57
|
+
url: claim.checkout.sessionUrl,
|
|
58
|
+
expiresAt: claim.checkout.expiresAt,
|
|
59
|
+
replayed: true,
|
|
60
|
+
outcome: 'idempotent_replay',
|
|
61
|
+
};
|
|
52
62
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
if (claim.state === 'resume') {
|
|
64
|
+
return {
|
|
65
|
+
url: claim.checkout.sessionUrl,
|
|
66
|
+
expiresAt: claim.checkout.expiresAt,
|
|
67
|
+
replayed: false,
|
|
68
|
+
outcome: 'resumed',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (claim.state === 'in_progress') {
|
|
72
|
+
throw new BillingStripeRequestError(409, 'billing_checkout_in_progress', 'another billing checkout operation is still in progress; retry shortly');
|
|
73
|
+
}
|
|
74
|
+
const operation = claim.operation;
|
|
75
|
+
this.#assertCheckoutOperation(operation);
|
|
76
|
+
const customer = await this.#getOrCreateCustomer(operation.billingAccountId, account, operation.claimedAt);
|
|
77
|
+
if (claim.previousCheckout !== undefined) {
|
|
78
|
+
const retired = await this.#provider.retireCheckout(claim.previousCheckout.sessionId);
|
|
79
|
+
if (retired === 'completed') {
|
|
80
|
+
await this.#store.releaseCheckoutClaim(operation);
|
|
81
|
+
throw new BillingStripeRequestError(409, 'billing_checkout_completed', 'the previous billing checkout completed; wait for the subscription to update');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const session = await this.#provider.createCheckout({
|
|
85
|
+
billingAccountId: operation.billingAccountId,
|
|
86
|
+
customerId: customer.customerId,
|
|
87
|
+
plan: operation.plan,
|
|
88
|
+
interval: operation.interval,
|
|
89
|
+
idempotencyKey: operation.idempotencyKeyHash,
|
|
63
90
|
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
91
|
+
const persisted = await this.#store.completeCheckout(operation, {
|
|
92
|
+
mode: operation.mode,
|
|
93
|
+
idempotencyKeyHash: operation.idempotencyKeyHash,
|
|
94
|
+
requestFingerprint: operation.requestFingerprint,
|
|
95
|
+
billingAccountId: operation.billingAccountId,
|
|
96
|
+
customerId: customer.customerId,
|
|
97
|
+
sessionId: session.id,
|
|
98
|
+
sessionUrl: session.url,
|
|
99
|
+
expiresAt: session.expiresAt,
|
|
100
|
+
createdAt: operation.claimedAt,
|
|
70
101
|
});
|
|
102
|
+
if (claim.state === 'recover' &&
|
|
103
|
+
operation.requestFingerprint !== requested.requestFingerprint) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
url: persisted.sessionUrl,
|
|
108
|
+
expiresAt: persisted.expiresAt,
|
|
109
|
+
replayed: false,
|
|
110
|
+
outcome: claim.state === 'replace' ? 'replaced' : 'created',
|
|
111
|
+
};
|
|
71
112
|
}
|
|
72
|
-
|
|
73
|
-
billingAccountId: input.billingAccountId,
|
|
74
|
-
customerId: customer.customerId,
|
|
75
|
-
plan: input.plan,
|
|
76
|
-
interval: input.interval,
|
|
77
|
-
idempotencyKey,
|
|
78
|
-
});
|
|
79
|
-
const persisted = await this.#store.putCheckout({
|
|
80
|
-
mode: this.#config.mode,
|
|
81
|
-
idempotencyKeyHash,
|
|
82
|
-
requestFingerprint,
|
|
83
|
-
billingAccountId: input.billingAccountId,
|
|
84
|
-
customerId: customer.customerId,
|
|
85
|
-
sessionId: session.id,
|
|
86
|
-
sessionUrl: session.url,
|
|
87
|
-
expiresAt: session.expiresAt,
|
|
88
|
-
createdAt: now,
|
|
89
|
-
});
|
|
90
|
-
return { url: persisted.sessionUrl, expiresAt: persisted.expiresAt, replayed: false };
|
|
113
|
+
throw new BillingStripeRequestError(503, 'billing_checkout_recovery_unavailable', 'billing checkout recovery did not converge; retry shortly');
|
|
91
114
|
}
|
|
92
115
|
async createPortal(input) {
|
|
93
116
|
await this.#requireOwner(input.billingAccountId, input.identity, false);
|
|
@@ -150,6 +173,9 @@ export class BillingStripeService {
|
|
|
150
173
|
now,
|
|
151
174
|
});
|
|
152
175
|
if (request === null) {
|
|
176
|
+
if (state.currentSubscription?.state === 'ended') {
|
|
177
|
+
await this.#store.retireSubscriptionBinding(binding, now);
|
|
178
|
+
}
|
|
153
179
|
const outcome = subscription.status === 'incomplete'
|
|
154
180
|
? 'ignored_incomplete_subscription'
|
|
155
181
|
: 'subscription_unchanged';
|
|
@@ -216,8 +242,12 @@ export class BillingStripeService {
|
|
|
216
242
|
idempotencyKey: `stripe:${this.#config.mode}:sweep:${operation}`,
|
|
217
243
|
now: reconciliationTime,
|
|
218
244
|
});
|
|
219
|
-
if (request === null)
|
|
245
|
+
if (request === null) {
|
|
246
|
+
if (state.currentSubscription?.state === 'ended') {
|
|
247
|
+
await this.#store.retireSubscriptionBinding(binding, checkedAt);
|
|
248
|
+
}
|
|
220
249
|
return 'unchanged';
|
|
250
|
+
}
|
|
221
251
|
await this.#reconciliation.reconcilePaidSubscription(request);
|
|
222
252
|
if (request.revision.state === 'ended') {
|
|
223
253
|
await this.#store.retireSubscriptionBinding(binding, checkedAt);
|
|
@@ -251,6 +281,52 @@ export class BillingStripeService {
|
|
|
251
281
|
#now() {
|
|
252
282
|
return this.#clock().toISOString();
|
|
253
283
|
}
|
|
284
|
+
async #claimCheckout(operation) {
|
|
285
|
+
try {
|
|
286
|
+
return await this.#store.claimCheckout(operation);
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
if (error instanceof BillingStripeCheckoutEligibilityError) {
|
|
290
|
+
throw new BillingStripeRequestError(409, error.code, error.message);
|
|
291
|
+
}
|
|
292
|
+
throw error;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
async #getOrCreateCustomer(billingAccountId, account, createdAt) {
|
|
296
|
+
const existing = await this.#store.getCustomer(billingAccountId, this.#config.mode);
|
|
297
|
+
if (existing !== undefined)
|
|
298
|
+
return existing;
|
|
299
|
+
const created = await this.#provider.createCustomer({
|
|
300
|
+
billingAccountId,
|
|
301
|
+
email: account.ownerEmail,
|
|
302
|
+
displayName: account.displayName,
|
|
303
|
+
});
|
|
304
|
+
return this.#store.putCustomer({
|
|
305
|
+
billingAccountId,
|
|
306
|
+
mode: this.#config.mode,
|
|
307
|
+
customerId: created.id,
|
|
308
|
+
email: account.ownerEmail,
|
|
309
|
+
createdAt,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
#assertCheckoutOperation(operation) {
|
|
313
|
+
if (operation.mode !== this.#config.mode ||
|
|
314
|
+
operation.requestFingerprint !==
|
|
315
|
+
this.#checkoutFingerprint(operation.billingAccountId, operation.plan, operation.interval)) {
|
|
316
|
+
throw new Error('persisted Stripe checkout operation conflicts with the billing catalog');
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
#checkoutFingerprint(billingAccountId, plan, interval) {
|
|
320
|
+
return billingContentChecksum({
|
|
321
|
+
schemaVersion: 2,
|
|
322
|
+
mode: this.#config.mode,
|
|
323
|
+
billingAccountId,
|
|
324
|
+
plan,
|
|
325
|
+
interval,
|
|
326
|
+
productId: this.#config.products[plan],
|
|
327
|
+
priceId: this.#config.prices[plan][interval],
|
|
328
|
+
});
|
|
329
|
+
}
|
|
254
330
|
}
|
|
255
331
|
function sha256(value) {
|
|
256
332
|
return createHash('sha256').update(value).digest('hex');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripe-service.js","sourceRoot":"","sources":["../../src/billing/stripe-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stripe-service.js","sourceRoot":"","sources":["../../src/billing/stripe-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,uCAAuC,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EACL,qCAAqC,GAItC,MAAM,mBAAmB,CAAC;AAI3B,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,MAAM,CAAwB;IAC9B,IAAI,CAAS;IAEtB,YAAY,MAA6B,EAAE,IAAY,EAAE,OAAe;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,qCAAsC,SAAQ,KAAK;IAC9D;QACE,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,uCAAuC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,OAAO,oBAAoB;IACtB,OAAO,CAAsB;IAC7B,SAAS,CAQhB;IACO,MAAM,CAAqB;IAC3B,eAAe,CAAyC;IACxD,aAAa,CAAoB;IACjC,MAAM,CAAa;IACnB,GAAG,CAAe;IAE3B,YAAY,KAgBX;QACC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,UAAU,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAMpB;QAMC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvF,MAAM,cAAc,GAAG,MAAM,CAAC,kCAAkC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACxF,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAClD,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAClD,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,QAAQ,CACf,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAAmC;YAChD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,kBAAkB;YAClB,kBAAkB;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,GAAG;SACf,CAAC;QAEF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO;oBACL,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;oBAC9B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS;oBACnC,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,mBAAmB;iBAC7B,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO;oBACL,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;oBAC9B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS;oBACnC,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,SAAS;iBACnB,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;gBAClC,MAAM,IAAI,yBAAyB,CACjC,GAAG,EACH,8BAA8B,EAC9B,wEAAwE,CACzE,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YAClC,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC9C,SAAS,CAAC,gBAAgB,EAC1B,OAAO,EACP,SAAS,CAAC,SAAS,CACpB,CAAC;YACF,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACtF,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;oBAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;oBAClD,MAAM,IAAI,yBAAyB,CACjC,GAAG,EACH,4BAA4B,EAC5B,8EAA8E,CAC/E,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;gBAClD,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,cAAc,EAAE,SAAS,CAAC,kBAAkB;aAC7C,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;gBAC9D,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;gBAChD,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;gBAChD,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,UAAU,EAAE,OAAO,CAAC,GAAG;gBACvB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B,CAAC,CAAC;YACH,IACE,KAAK,CAAC,KAAK,KAAK,SAAS;gBACzB,SAAS,CAAC,kBAAkB,KAAK,SAAS,CAAC,kBAAkB,EAC7D,CAAC;gBACD,SAAS;YACX,CAAC;YACD,OAAO;gBACL,GAAG,EAAE,SAAS,CAAC,UAAU;gBACzB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;aAC5D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,yBAAyB,CACjC,GAAG,EACH,uCAAuC,EACvC,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAGlB;QACC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1F,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,yBAAyB,CACjC,GAAG,EACH,2BAA2B,EAC3B,qDAAqD,CACtD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YACjC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,SAAiB;QAEjB,IAAI,KAAyD,CAAC;QAC9D,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,qCAAqC,EAAE,CAAC;QACpD,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACzC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,sBAAsB,EAAE,KAAK,CAAC,cAAc;YAC5C,iBAAiB,EAAE,KAAK,CAAC,SAAS;YAClC,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa;YAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE3F,IAAI,KAAK,GAA8C,UAAU,CAAC;QAClE,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBAClC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACrF,KAAK,GAAG,SAAS,CAAC;YAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;gBAC5D,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,sBAAsB,EAAE,YAAY,CAAC,EAAE;gBACvC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,WAAW,EAAE,GAAG;gBAChB,yBAAyB,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,uCAAuC,CAAC;gBACtD,oBAAoB,EAAE,YAAY;gBAClC,MAAM,EAAE,KAAK;gBACb,kBAAkB,EAAE,OAAO,CAAC,UAAU;gBACtC,UAAU,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE;gBAC9B,cAAc,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,EAAE;gBAC/D,GAAG;aACJ,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,IAAI,KAAK,CAAC,mBAAmB,EAAE,KAAK,KAAK,OAAO,EAAE,CAAC;oBACjD,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,YAAY;oBAClC,CAAC,CAAC,iCAAiC;oBACnC,CAAC,CAAC,wBAAwB,CAAC;gBAC/B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,GAAG,gBAAgB,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC;gBACP,yEAAyE;YAC3E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,4BAA4B;QAMhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAI,OAAO,KAAK,YAAY;oBAAE,UAAU,IAAI,CAAC,CAAC;;oBACzC,SAAS,IAAI,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,CAAC,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACvE,CAAC;gBAAC,MAAM,CAAC;oBACP,4EAA4E;gBAC9E,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,OAAyC,EACzC,SAAiB;QAEjB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC/F,IAAI,YAAY,CAAC,EAAE,KAAK,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,GAAG,OAAO,CAAC,sBAAsB,IAAI,kBAAkB,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,uCAAuC,CAAC;YACtD,oBAAoB,EAAE,YAAY;YAClC,MAAM,EAAE,KAAK;YACb,kBAAkB,EAAE,OAAO,CAAC,UAAU;YACtC,UAAU,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE;YACzC,cAAc,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,SAAS,EAAE;YAChE,GAAG,EAAE,kBAAkB;SACxB,CAAC,CAAC;QACH,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,mBAAmB,EAAE,KAAK,KAAK,OAAO,EAAE,CAAC;gBACjD,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,OAAe,EAAE,GAAW;QAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,gBAAwB,EACxB,QAA4B,EAC5B,cAAuB;QAEvB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/D,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,QAAQ,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YACtD,cAAc;gBACZ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,QAAQ,CAAC;gBACvD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;SAC/B,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,KAAK,gBAAgB,CAC/D,CAAC;QACF,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,yBAAyB,CACjC,GAAG,EACH,gCAAgC,EAChC,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,yBAAyB,CACjC,GAAG,EACH,2BAA2B,EAC3B,+BAA+B,CAChC,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,IAAI,cAAc,EAAE,EAAE,KAAK,gBAAgB,EAAE,CAAC;YAC9D,MAAM,IAAI,yBAAyB,CACjC,GAAG,EACH,kCAAkC,EAClC,oEAAoE,CACrE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5E,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAyC;QAC5D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qCAAqC,EAAE,CAAC;gBAC3D,MAAM,IAAI,yBAAyB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,gBAAwB,EACxB,OAAsE,EACtE,SAAiB;QAEjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpF,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;YAClD,gBAAgB;YAChB,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC7B,gBAAgB;YAChB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB,CAAC,SAAyC;QAChE,IACE,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI;YACpC,SAAS,CAAC,kBAAkB;gBAC1B,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC3F,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,oBAAoB,CAClB,gBAAwB,EACxB,IAAuB,EACvB,QAAyB;QAEzB,OAAO,sBAAsB,CAAC;YAC5B,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,gBAAgB;YAChB,IAAI;YACJ,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACrF,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAClI,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,KAAa;IACzC,IACE,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;QACtB,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,KAAK,CAAC,MAAM,GAAG,GAAG;QAClB,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAC/D,CAAC;QACD,MAAM,IAAI,yBAAyB,CAAC,GAAG,EAAE,yBAAyB,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|