@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.
Files changed (38) hide show
  1. package/dist/commands/billing-stripe-ops.js +1 -0
  2. package/dist/commands/billing-stripe-ops.js.map +1 -1
  3. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  4. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-checkouts.d.ts +7 -0
  5. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-checkouts.d.ts.map +1 -0
  6. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-checkouts.js +247 -0
  7. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-checkouts.js.map +1 -0
  8. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.d.ts.map +1 -1
  9. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.js +14 -0
  10. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.js.map +1 -1
  11. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.d.ts +4 -4
  12. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.d.ts.map +1 -1
  13. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.js +10 -99
  14. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.js.map +1 -1
  15. package/node_modules/@noodle-borg/service/dist/billing/stripe-contract.d.ts +6 -0
  16. package/node_modules/@noodle-borg/service/dist/billing/stripe-contract.d.ts.map +1 -1
  17. package/node_modules/@noodle-borg/service/dist/billing/stripe-contract.js +1 -0
  18. package/node_modules/@noodle-borg/service/dist/billing/stripe-contract.js.map +1 -1
  19. package/node_modules/@noodle-borg/service/dist/billing/stripe-lifecycle.js +35 -6
  20. package/node_modules/@noodle-borg/service/dist/billing/stripe-lifecycle.js.map +1 -1
  21. package/node_modules/@noodle-borg/service/dist/billing/stripe-provider.d.ts +5 -0
  22. package/node_modules/@noodle-borg/service/dist/billing/stripe-provider.d.ts.map +1 -1
  23. package/node_modules/@noodle-borg/service/dist/billing/stripe-provider.js +39 -0
  24. package/node_modules/@noodle-borg/service/dist/billing/stripe-provider.js.map +1 -1
  25. package/node_modules/@noodle-borg/service/dist/billing/stripe-service.d.ts +5 -4
  26. package/node_modules/@noodle-borg/service/dist/billing/stripe-service.d.ts.map +1 -1
  27. package/node_modules/@noodle-borg/service/dist/billing/stripe-service.js +120 -44
  28. package/node_modules/@noodle-borg/service/dist/billing/stripe-service.js.map +1 -1
  29. package/node_modules/@noodle-borg/service/dist/billing/stripe-store.d.ts +35 -5
  30. package/node_modules/@noodle-borg/service/dist/billing/stripe-store.d.ts.map +1 -1
  31. package/node_modules/@noodle-borg/service/dist/billing/stripe-store.js +8 -1
  32. package/node_modules/@noodle-borg/service/dist/billing/stripe-store.js.map +1 -1
  33. package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js +1 -1
  34. package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js.map +1 -1
  35. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.d.ts.map +1 -1
  36. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.js +4 -2
  37. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.js.map +1 -1
  38. 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 accessState = providerAccessState(provider, now, periodEnd, graceEnd);
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
- : current?.state === 'payment_grace'
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' && now < graceEnd)
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":"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"}
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;SAC9D,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;SAC9D,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE;QACjB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;KAC7E,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EACX,YAAY,GACZ,oBAAoB,GACpB,UAAU,GACV,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,CAAC;IACb,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,qBAAa,qBAAqB;;gBAIpB,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,gBAAgB;IAKzD,cAAc,CAAC,KAAK,EAAE;QAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAkB9B,cAAc,CAAC,KAAK,EAAE;QAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;QACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KACjC,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAwChF,YAAY,CAAC,KAAK,EAAE;QACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAerC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB;IAsB/D,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAOvF"}
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":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAGL,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAoE5B,MAAM,OAAO,qBAAqB;IACvB,OAAO,CAAsB;IAC7B,IAAI,CAAmB;IAEhC,YAAY,MAA2B,EAAE,GAAsB;QAC7D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAIpB;QACC,MAAM,QAAQ,GAAG,aAAa,CAC5B,iBAAiB,EACjB,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAC9B;YACE,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,WAAW;YACvB,QAAQ,EAAE,EAAE,yBAAyB,EAAE,KAAK,CAAC,gBAAgB,EAAE;SAChE,EACD;YACE,cAAc,EAAE,iBAAiB,IAAI,CAAC,OAAO,CAAC,IAAI,aAAa,KAAK,CAAC,gBAAgB,EAAE;SACxF,CACF,CACF,CAAC;QACF,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAMpB;QACC,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,aAAa,CAC3B,yBAAyB,EACzB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CACtC;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC;YACxD,mBAAmB,EAAE,KAAK,CAAC,gBAAgB;YAC3C,UAAU,EAAE;gBACV,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;aACvF;YACD,qBAAqB,EAAE,IAAI;YAC3B,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACjC,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,oBAAoB,OAAO,mBAAmB;YACzF,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,oBAAoB,OAAO,qBAAqB;YAC1F,QAAQ,EAAE;gBACR,yBAAyB,EAAE,KAAK,CAAC,gBAAgB;gBACjD,WAAW,EAAE,KAAK,CAAC,IAAI;gBACvB,eAAe,EAAE,KAAK,CAAC,QAAQ;aAChC;YACD,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,EAAE,yBAAyB,EAAE,KAAK,CAAC,gBAAgB,EAAE;aAChE;SACF,EACD;YACE,cAAc,EAAE,iBAAiB,IAAI,CAAC,OAAO,CAAC,IAAI,aAAa,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE;SAC1H,CACF,CACF,CAAC;QACF,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,QAAQ,CAAC,kBAAkB,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrE,GAAG,EAAE,eAAe,CAAC,6BAA6B,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClF,SAAS,EAAE,eAAe,CACxB,gCAAgC,EAChC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CACrC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAGlB;QACC,MAAM,OAAO,GAAG,aAAa,CAC3B,uBAAuB,EACvB,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5C,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC;YACxD,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB;YACjD,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,oBAAoB,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;SAC3G,CAAC,CACH,CAAC;QACF,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,GAAG,EAAE,eAAe,CAAC,2BAA2B,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACjF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,kBAAkB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,qBAAqB,CACnC,IAAI,CAAC,OAAO,EACZ,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAC9C,EAAE,CACH,CAAC;QACF,IAAI,OAAO,KAAK,UAAU;YAAE,OAAO,WAAW,CAAC;QAC/C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,qBAAqB,CACnC,IAAI,CAAC,OAAO,EACZ,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAC5C,EAAE,CACH,CAAC;QACF,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACrF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,aAAa,CAAC,OAAe,EAAE,SAAiB;QAC9C,MAAM,KAAK,GAAG,aAAa,CACzB,sBAAsB,EACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAC/B,OAAO,EACP,MAAM,CAAC,0BAA0B,EAAE,SAAS,CAAC,EAC7C,IAAI,CAAC,OAAO,CAAC,aAAa,CAC3B,CACF,CAAC;QACF,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACnD,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,2BAA2B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,aAAa,CAAC,6BAA6B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,EAAE,MAAM,CAAC,mBAAmB,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/D,QAAQ;YACR,SAAS,EAAE,eAAe,CAAC,uBAAuB,EAAE,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACpF,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,cAAsB;QAC/C,MAAM,YAAY,GAAG,aAAa,CAChC,qBAAqB,EACrB,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CACzF,CAAC;QACF,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAChF,OAAO;QACL,SAAS,EAAE;YACT,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAC1B,MAAM,CAAC,SAAS,CAAC,MAAM,CACrB,MAAqC,EACrC,OAA4C,CAC7C;SACJ;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE;gBACR,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAC1B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAC7B,MAA6C,EAC7C,OAA4C,CAC7C;gBACH,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;aACpD;SACF;QACD,aAAa,EAAE;YACb,QAAQ,EAAE;gBACR,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAC1B,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAClC,MAAkD,EAClD,OAA4C,CAC7C;aACJ;SACF;QACD,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACtE,QAAQ,EAAE;YACR,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAC7C,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;SAC7D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA2B,EAC3B,KAAc,EACd,UAAkB;IAElB,MAAM,OAAO,GAAG,aAAa,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChE,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,kBAAkB,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA2B,EAC3B,YAAqC;IAErC,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC1D,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,IAAI,aAAa,CAAC,YAAY,EAAE,mBAAmB,CAAC,KAAK,sBAAsB,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,YAAY,GAAG,aAAa,CAChC,mCAAmC,EACnC,YAAY,CAAC,aAAa,CAC3B,CAAC;IACF,IAAI,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,2BAA2B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,YAAY,CAAC,+BAA+B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAG,aAAa,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,sBAAsB,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,SAAS,KAAK,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IAAI,eAAe,KAAK,iCAAiC,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,qCAAqC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxF,IACE,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,SAAS,CAAC,QAAQ;QAC3D,aAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAChD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,8BAA8B,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtF,MAAM,mBAAmB,GAAG,aAAa,CACvC,0CAA0C,EAC1C,YAAY,CAAC,oBAAoB,CAClC,CAAC;IACF,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACvE,UAAU,EAAE,QAAQ,CAAC,8BAA8B,EAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;QACnF,gBAAgB,EAAE,MAAM,CACtB,qCAAqC,EACrC,aAAa,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CACrD;QACD,MAAM;QACN,QAAQ;QACR,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,OAAO;QACP,SAAS;QACT,eAAe;QACf,kBAAkB,EAAE,eAAe,CACjC,kCAAkC,EAClC,aAAa,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAC5C;QACD,gBAAgB,EAAE,eAAe,CAC/B,gCAAgC,EAChC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAC1C;QACD,iBAAiB,EAAE,cAAc,CAAC,YAAY,EAAE,sBAAsB,CAAC;QACvE,kBAAkB,EAAE,wBAAwB,CAAC,mBAAmB,CAAC,MAAM,CAAC;QACxE,SAAS,EAAE,eAAe,CACxB,8BAA8B,EAC9B,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CACvC;QACD,OAAO,EAAE,iBAAiB,CAAC,yBAAyB,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA+B;IAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;QACtC,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACvE,MAAM,MAAM,GAAG,aAAa,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAsB;YAAE,OAAO,IAAI,CAAC;QACxD,MAAM,OAAO,GAAG,aAAa,CAC3B,qCAAqC,EACrC,MAAM,CAAC,oBAAoB,CAC5B,CAAC;QACF,OAAO,gBAAgB,CAAC,6BAA6B,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CACrB,MAA2B,EAC3B,OAAe;IAEf,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAU,EAAE,CAAC;QAC7C,KAAK,MAAM,QAAQ,IAAI,CAAC,OAAO,EAAE,MAAM,CAAU,EAAE,CAAC;YAClD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,OAAO;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA2B,EAAE,QAAiB;IAC3E,IAAI,QAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IACE,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,oBAAoB;QAC9B,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,QAAQ,EAClB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IACE,KAAK,KAAK,wBAAwB;QAClC,KAAK,KAAK,kBAAkB;QAC5B,KAAK,KAAK,gBAAgB,EAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAc;IACrD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAC;IACtF,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,KAAa;IAClD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAc,EAAE,MAAc;IACpE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAc,EAAE,MAAc;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAc,EAAE,KAAa;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,oBAAoB,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,KAAa;IAClD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,0BAA0B,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC;IACzE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,KAAa;IACzC,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,KAAK,CAAC,MAAM,GAAG,GAAG;QAClB,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;QACtB,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;QACvC,CAAC,CAAC,EACF,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAc;IACjD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,MAA+B,EAAE,GAAW;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,mBAAmB,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,MAA+B,EAAE,GAAW;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B,EAAE,GAAW;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,oBAAoB,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -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 { BillingStripeStore } from './stripe-store.js';
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,EAAE,kBAAkB,EAAoC,MAAM,mBAAmB,CAAC;AAC9F,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,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAMnE;AAED,qBAAa,qCAAsC,SAAQ,KAAK;;CAK/D;AAED,qBAAa,oBAAoB;;gBAYnB,KAAK,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;QACrC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CACrB,qBAAqB,EACnB,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;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IA+DvF,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;IAuE9D,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;CAkGH"}
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 = billingContentChecksum({
42
- schemaVersion: 1,
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
- const existing = await this.#store.getCheckout(this.#config.mode, idempotencyKeyHash);
48
- if (existing !== undefined) {
49
- if (existing.requestFingerprint !== requestFingerprint ||
50
- existing.billingAccountId !== input.billingAccountId) {
51
- throw new BillingStripeRequestError(409, 'billing_idempotency_conflict', 'billing checkout idempotency key was already used for another request');
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
- return { url: existing.sessionUrl, expiresAt: existing.expiresAt, replayed: true };
54
- }
55
- await this.#store.assertPaidCheckoutEligible(input.billingAccountId);
56
- const now = this.#now();
57
- let customer = await this.#store.getCustomer(input.billingAccountId, this.#config.mode);
58
- if (customer === undefined) {
59
- const created = await this.#provider.createCustomer({
60
- billingAccountId: input.billingAccountId,
61
- email: account.ownerEmail,
62
- displayName: account.displayName,
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
- customer = await this.#store.putCustomer({
65
- billingAccountId: input.billingAccountId,
66
- mode: this.#config.mode,
67
- customerId: created.id,
68
- email: account.ownerEmail,
69
- createdAt: now,
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
- const session = await this.#provider.createCheckout({
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":"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;AAMhF,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,MAAM,CAAkB;IACxB,IAAI,CAAS;IAEtB,YAAY,MAAuB,EAAE,IAAY,EAAE,OAAe;QAChE,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,CAGhB;IACO,MAAM,CAAqB;IAC3B,eAAe,CAAyC;IACxD,aAAa,CAAoB;IACjC,MAAM,CAAa;IACnB,GAAG,CAAe;IAE3B,YAAY,KAeX;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;QACC,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,sBAAsB,CAAC;YAChD,aAAa,EAAE,CAAC;YAChB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACtF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IACE,QAAQ,CAAC,kBAAkB,KAAK,kBAAkB;gBAClD,QAAQ,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,EACpD,CAAC;gBACD,MAAM,IAAI,yBAAyB,CACjC,GAAG,EACH,8BAA8B,EAC9B,uEAAuE,CACxE,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrF,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;gBAClD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,KAAK,EAAE,OAAO,CAAC,UAAU;gBACzB,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBACvC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,UAAU,EAAE,OAAO,CAAC,EAAE;gBACtB,KAAK,EAAE,OAAO,CAAC,UAAU;gBACzB,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;YAClD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,cAAc;SACf,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,kBAAkB;YAClB,kBAAkB;YAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACxF,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,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;YAAE,OAAO,WAAW,CAAC;QACzC,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;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"}
1
+ {"version":3,"file":"stripe-service.js","sourceRoot":"","sources":["../../src/billing/stripe-service.ts"],"names":[],"mappings":"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"}