@noodleseed/one 0.61.0 → 0.62.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 (53) hide show
  1. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.d.ts.map +1 -1
  2. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js +2 -0
  3. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js.map +1 -1
  4. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-overage-schema.d.ts +4 -0
  5. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-overage-schema.d.ts.map +1 -0
  6. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-overage-schema.js +74 -0
  7. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-overage-schema.js.map +1 -0
  8. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-overage-store.d.ts +31 -0
  9. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-overage-store.d.ts.map +1 -0
  10. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-overage-store.js +295 -0
  11. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-overage-store.js.map +1 -0
  12. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.d.ts.map +1 -1
  13. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.js +13 -0
  14. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-schema.js.map +1 -1
  15. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.d.ts.map +1 -1
  16. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.js +4 -0
  17. package/node_modules/@noodle-borg/service/dist/billing/postgres-stripe-store.js.map +1 -1
  18. package/node_modules/@noodle-borg/service/dist/billing/stripe-config.d.ts +1 -0
  19. package/node_modules/@noodle-borg/service/dist/billing/stripe-config.d.ts.map +1 -1
  20. package/node_modules/@noodle-borg/service/dist/billing/stripe-config.js +12 -1
  21. package/node_modules/@noodle-borg/service/dist/billing/stripe-config.js.map +1 -1
  22. package/node_modules/@noodle-borg/service/dist/billing/stripe-integration-loader.d.ts +7 -0
  23. package/node_modules/@noodle-borg/service/dist/billing/stripe-integration-loader.d.ts.map +1 -1
  24. package/node_modules/@noodle-borg/service/dist/billing/stripe-integration-loader.js +14 -0
  25. package/node_modules/@noodle-borg/service/dist/billing/stripe-integration-loader.js.map +1 -1
  26. package/node_modules/@noodle-borg/service/dist/billing/stripe-integration.d.ts +7 -0
  27. package/node_modules/@noodle-borg/service/dist/billing/stripe-integration.d.ts.map +1 -1
  28. package/node_modules/@noodle-borg/service/dist/billing/stripe-integration.js +38 -0
  29. package/node_modules/@noodle-borg/service/dist/billing/stripe-integration.js.map +1 -1
  30. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-provider-validation.d.ts +49 -0
  31. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-provider-validation.d.ts.map +1 -0
  32. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-provider-validation.js +241 -0
  33. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-provider-validation.js.map +1 -0
  34. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-provider.d.ts +28 -0
  35. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-provider.d.ts.map +1 -0
  36. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-provider.js +133 -0
  37. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-provider.js.map +1 -0
  38. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-service.d.ts +23 -0
  39. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-service.d.ts.map +1 -0
  40. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-service.js +171 -0
  41. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-service.js.map +1 -0
  42. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-store.d.ts +51 -0
  43. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-store.d.ts.map +1 -0
  44. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-store.js +2 -0
  45. package/node_modules/@noodle-borg/service/dist/billing/stripe-overage-store.js.map +1 -0
  46. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  47. package/node_modules/@noodle-borg/service/dist/serve.js +14 -1
  48. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  49. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts +1 -0
  50. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts.map +1 -1
  51. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js +3 -0
  52. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js.map +1 -1
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-config.js","sourceRoot":"","sources":["../../src/billing/stripe-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe-config.js","sourceRoot":"","sources":["../../src/billing/stripe-config.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Pool } from 'pg';
2
2
  import type { ControlPlaneStore } from '../store.js';
3
3
  import type { BillingStripeConfig } from './stripe-config.js';
4
+ import type { BillingStripeOverageService } from './stripe-overage-service.js';
4
5
  import type { BillingStripeService } from './stripe-service.js';
5
6
  /** Keep the Stripe SDK and PostgreSQL adapter out of local/self-hosted startup unless configured. */
6
7
  export declare function resolveBillingStripeService(input: {
@@ -11,4 +12,10 @@ export declare function resolveBillingStripeService(input: {
11
12
  readonly controlPlane: ControlPlaneStore;
12
13
  readonly clock: (() => Date) | undefined;
13
14
  }): Promise<BillingStripeService | undefined>;
15
+ /** Construct the durable settlement worker only behind the explicit activation switch. */
16
+ export declare function resolveBillingStripeOverageService(input: {
17
+ readonly config: BillingStripeConfig | undefined;
18
+ readonly pool: Pool | undefined;
19
+ readonly clock: (() => Date) | undefined;
20
+ }): Promise<BillingStripeOverageService | undefined>;
14
21
  //# sourceMappingURL=stripe-integration-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-integration-loader.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-integration-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,qGAAqG;AACrG,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1C,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAc5C"}
1
+ {"version":3,"file":"stripe-integration-loader.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-integration-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,qGAAqG;AACrG,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1C,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAc5C;AAED,0FAA0F;AAC1F,wBAAsB,kCAAkC,CAAC,KAAK,EAAE;IAC9D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1C,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAWnD"}
@@ -16,4 +16,18 @@ export async function resolveBillingStripeService(input) {
16
16
  ...(input.clock === undefined ? {} : { clock: input.clock }),
17
17
  });
18
18
  }
19
+ /** Construct the durable settlement worker only behind the explicit activation switch. */
20
+ export async function resolveBillingStripeOverageService(input) {
21
+ if (input.config?.overageSettlementEnabled !== true)
22
+ return undefined;
23
+ if (input.pool === undefined) {
24
+ throw new Error('Stripe overage settlement requires PostgreSQL persistence');
25
+ }
26
+ const { createPostgresBillingStripeOverageService } = await import('./stripe-integration.js');
27
+ return createPostgresBillingStripeOverageService({
28
+ config: input.config,
29
+ pool: input.pool,
30
+ ...(input.clock === undefined ? {} : { clock: input.clock }),
31
+ });
32
+ }
19
33
  //# sourceMappingURL=stripe-integration-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-integration-loader.js","sourceRoot":"","sources":["../../src/billing/stripe-integration-loader.ts"],"names":[],"mappings":"AAKA,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAOjD;IACC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1F,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChG,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,EAAE,kCAAkC,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACvF,OAAO,kCAAkC,CAAC;QACxC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC7D,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"stripe-integration-loader.js","sourceRoot":"","sources":["../../src/billing/stripe-integration-loader.ts"],"names":[],"mappings":"AAMA,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAOjD;IACC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1F,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChG,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,EAAE,kCAAkC,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACvF,OAAO,kCAAkC,CAAC;QACxC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC7D,CAAC,CAAC;AACL,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,KAIxD;IACC,IAAI,KAAK,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACtE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,EAAE,yCAAyC,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAC9F,OAAO,yCAAyC,CAAC;QAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC7D,CAAC,CAAC;AACL,CAAC"}
@@ -2,6 +2,7 @@ import type { Logger } from '@noodle-borg/transport-http';
2
2
  import type { Pool } from 'pg';
3
3
  import type { ControlPlaneStore } from '../store.js';
4
4
  import type { BillingStripeConfig } from './stripe-config.js';
5
+ import { BillingStripeOverageService } from './stripe-overage-service.js';
5
6
  import { BillingStripeService } from './stripe-service.js';
6
7
  export declare function createPostgresBillingStripeService(input: {
7
8
  readonly config: BillingStripeConfig;
@@ -10,5 +11,11 @@ export declare function createPostgresBillingStripeService(input: {
10
11
  readonly controlPlane: ControlPlaneStore;
11
12
  readonly clock?: () => Date;
12
13
  }): BillingStripeService;
14
+ export declare function createPostgresBillingStripeOverageService(input: {
15
+ readonly config: BillingStripeConfig;
16
+ readonly pool: Pool;
17
+ readonly clock?: () => Date;
18
+ }): BillingStripeOverageService;
13
19
  export declare function startBillingStripeReconciliation(service: BillingStripeService, logger: Logger): NodeJS.Timeout;
20
+ export declare function startBillingStripeOverageSettlement(service: BillingStripeOverageService, logger: Logger): NodeJS.Timeout;
14
21
  //# sourceMappingURL=stripe-integration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-integration.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAI3D,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B,GAAG,oBAAoB,CAYvB;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,OAAO,CAuBhB"}
1
+ {"version":3,"file":"stripe-integration.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAM3D,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B,GAAG,oBAAoB,CAYvB;AAED,wBAAgB,yCAAyC,CAAC,KAAK,EAAE;IAC/D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B,GAAG,2BAA2B,CAO9B;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,OAAO,CAuBhB;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,2BAA2B,EACpC,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,OAAO,CAuBhB"}
@@ -1,9 +1,14 @@
1
1
  import { deriveBillingMeterKeyGeneration } from './meter-readiness.js';
2
+ import { PostgresBillingStripeOverageStore } from './postgres-stripe-overage-store.js';
2
3
  import { PostgresBillingStripeStore } from './postgres-stripe-store.js';
3
4
  import { PostgresBillingSubscriptionReconciliationStore } from './postgres-subscription-reconciliation.js';
5
+ import { StripeOverageBillingProvider } from './stripe-overage-provider.js';
6
+ import { BillingStripeOverageService } from './stripe-overage-service.js';
4
7
  import { StripeBillingProvider } from './stripe-provider.js';
5
8
  import { BillingStripeService } from './stripe-service.js';
6
9
  const BILLING_STRIPE_RECONCILIATION_INTERVAL_MS = 15 * 60 * 1_000;
10
+ const BILLING_STRIPE_OVERAGE_SETTLEMENT_INTERVAL_MS = 60 * 1_000;
11
+ const BILLING_STRIPE_OVERAGE_SETTLEMENT_BATCH_SIZE = 20;
7
12
  export function createPostgresBillingStripeService(input) {
8
13
  const authoritativeKeyGeneration = deriveBillingMeterKeyGeneration(input.billingUsageHmacKey);
9
14
  return new BillingStripeService({
@@ -17,6 +22,14 @@ export function createPostgresBillingStripeService(input) {
17
22
  ...(input.clock === undefined ? {} : { clock: input.clock }),
18
23
  });
19
24
  }
25
+ export function createPostgresBillingStripeOverageService(input) {
26
+ return new BillingStripeOverageService({
27
+ config: input.config,
28
+ provider: new StripeOverageBillingProvider(input.config),
29
+ store: new PostgresBillingStripeOverageStore(input.pool),
30
+ ...(input.clock === undefined ? {} : { clock: input.clock }),
31
+ });
32
+ }
20
33
  export function startBillingStripeReconciliation(service, logger) {
21
34
  let inFlight = false;
22
35
  const reconcile = () => {
@@ -42,4 +55,29 @@ export function startBillingStripeReconciliation(service, logger) {
42
55
  timer.unref?.();
43
56
  return timer;
44
57
  }
58
+ export function startBillingStripeOverageSettlement(service, logger) {
59
+ let inFlight = false;
60
+ const settle = () => {
61
+ if (inFlight)
62
+ return;
63
+ inFlight = true;
64
+ void service
65
+ .settleOverageClosures(BILLING_STRIPE_OVERAGE_SETTLEMENT_BATCH_SIZE)
66
+ .then((result) => {
67
+ logger.info('billing.stripe_overage_settlement.completed', { ...result });
68
+ })
69
+ .catch((error) => {
70
+ logger.warn('billing.stripe_overage_settlement.failed', {
71
+ error: error instanceof Error ? error.name : 'unknown',
72
+ });
73
+ })
74
+ .finally(() => {
75
+ inFlight = false;
76
+ });
77
+ };
78
+ settle();
79
+ const timer = setInterval(settle, BILLING_STRIPE_OVERAGE_SETTLEMENT_INTERVAL_MS);
80
+ timer.unref?.();
81
+ return timer;
82
+ }
45
83
  //# sourceMappingURL=stripe-integration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe-integration.js","sourceRoot":"","sources":["../../src/billing/stripe-integration.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,8CAA8C,EAAE,MAAM,2CAA2C,CAAC;AAE3G,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,yCAAyC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AAElE,MAAM,UAAU,kCAAkC,CAAC,KAMlD;IACC,MAAM,0BAA0B,GAAG,+BAA+B,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9F,OAAO,IAAI,oBAAoB,CAAC;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,IAAI,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC;QACjD,KAAK,EAAE,IAAI,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,0BAA0B,EAAE,CAAC;QACjF,cAAc,EAAE,IAAI,8CAA8C,CAAC,KAAK,CAAC,IAAI,EAAE;YAC7E,0BAA0B;SAC3B,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC7D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,OAA6B,EAC7B,MAAc;IAEd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,KAAK,OAAO;aACT,4BAA4B,EAAE;aAC9B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;gBAClD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aACvD,CAAC,CAAC;QACL,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,SAAS,EAAE,CAAC;IACZ,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC;IAChF,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"stripe-integration.js","sourceRoot":"","sources":["../../src/billing/stripe-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { BillingStripeConfig, BillingStripeMode } from './stripe-config.js';
2
+ import type { BillingStripeOverageSettlementClaim } from './stripe-overage-store.js';
3
+ export type BillingStripeOverageInvoiceStatus = 'draft' | 'open' | 'paid' | 'void' | 'uncollectible';
4
+ export interface BillingStripeOverageInvoiceItem {
5
+ readonly id: string;
6
+ readonly invoiceId: string;
7
+ readonly customerId: string;
8
+ readonly amountMinor: number;
9
+ readonly currency: 'usd';
10
+ readonly discountable: false;
11
+ readonly quantity: number;
12
+ readonly priceId: string;
13
+ readonly productId: string;
14
+ readonly periodStart: number;
15
+ readonly periodEnd: number;
16
+ }
17
+ export interface BillingStripeOverageInvoice {
18
+ readonly id: string;
19
+ readonly customerId: string;
20
+ readonly status: BillingStripeOverageInvoiceStatus;
21
+ readonly autoAdvance: boolean;
22
+ readonly amountDueMinor: number;
23
+ readonly amountPaidMinor: number;
24
+ readonly subtotalMinor: number;
25
+ readonly totalMinor: number;
26
+ readonly createdAt: string;
27
+ readonly lines: readonly BillingStripeOverageInvoiceItem[];
28
+ }
29
+ export declare function normalizeStripeOverageInvoice(config: BillingStripeConfig, claim: BillingStripeOverageSettlementClaim, value: unknown): BillingStripeOverageInvoice;
30
+ export declare function normalizeStripeOverageInvoiceItem(config: BillingStripeConfig, claim: BillingStripeOverageSettlementClaim, expectedInvoiceId: string, value: unknown): BillingStripeOverageInvoiceItem;
31
+ export declare function assertExpectedInvoiceId(invoice: BillingStripeOverageInvoice, expected: string): void;
32
+ export declare function stripeOverageMetadata(claim: BillingStripeOverageSettlementClaim): {
33
+ noodle_overage_closure_id: string;
34
+ noodle_billing_account_id: string;
35
+ noodle_overage_closure_checksum: string;
36
+ };
37
+ export declare function stripePeriod(windowStart: string, windowEnd: string): {
38
+ start: number;
39
+ end: number;
40
+ };
41
+ export declare function requireStripeMode(mode: BillingStripeMode, livemode: boolean): void;
42
+ export declare function stripeReference(name: string, prefix: string, value: unknown): string;
43
+ export declare function stripeId(name: string, prefix: string, value: string): string;
44
+ export declare function safePositiveInteger(name: string, value: string): number;
45
+ export declare function stripeRecord(name: string, value: unknown): Record<string, unknown>;
46
+ export declare function stripeArray(name: string, value: unknown): unknown[];
47
+ export declare function stripeString(input: Record<string, unknown>, key: string): string;
48
+ export declare function stripeBoolean(input: Record<string, unknown>, key: string): boolean;
49
+ //# sourceMappingURL=stripe-overage-provider-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-overage-provider-validation.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-overage-provider-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,241 @@
1
+ export function normalizeStripeOverageInvoice(config, claim, value) {
2
+ const input = stripeRecord('Stripe overage invoice', value);
3
+ const id = stripeId('invoice', 'in_', stripeString(input, 'id'));
4
+ requireStripeMode(config.mode, stripeBoolean(input, 'livemode'));
5
+ if (stripeReference('Stripe invoice customer', 'cus_', input.customer) !== claim.customerId) {
6
+ throw new Error('Stripe overage invoice customer does not match closure binding');
7
+ }
8
+ if (stripeString(input, 'collection_method') !== 'charge_automatically') {
9
+ throw new Error('Stripe overage invoice collection method is invalid');
10
+ }
11
+ const automaticTax = stripeRecord('Stripe overage invoice automatic tax', input.automatic_tax);
12
+ if (stripeBoolean(automaticTax, 'enabled')) {
13
+ throw new Error('Stripe overage invoice automatic tax is enabled');
14
+ }
15
+ if (nullableArray('Stripe overage invoice default tax rates', input.default_tax_rates).length) {
16
+ throw new Error('Stripe overage invoice has a default tax rate');
17
+ }
18
+ if (stripeString(input, 'currency') !== claim.closure.currency) {
19
+ throw new Error('Stripe overage invoice currency does not match closure');
20
+ }
21
+ assertMetadata(stripeRecord('Stripe overage invoice metadata', input.metadata), claim);
22
+ if (nullableArray('Stripe overage invoice discounts', input.discounts).length !== 0) {
23
+ throw new Error('Stripe overage invoice has an inherited discount');
24
+ }
25
+ const lineCollection = stripeRecord('Stripe overage invoice lines', input.lines);
26
+ if (stripeBoolean(lineCollection, 'has_more')) {
27
+ throw new Error('Stripe overage invoice line collection is incomplete');
28
+ }
29
+ const lines = stripeArray('Stripe overage invoice line data', lineCollection.data).map((line) => normalizeInvoiceLine(config, claim, id, line));
30
+ const invoice = Object.freeze({
31
+ id,
32
+ customerId: claim.customerId,
33
+ status: invoiceStatus(input.status),
34
+ autoAdvance: stripeBoolean(input, 'auto_advance'),
35
+ amountDueMinor: safeNonNegativeNumber('Stripe invoice amount due', input.amount_due),
36
+ amountPaidMinor: safeNonNegativeNumber('Stripe invoice amount paid', input.amount_paid),
37
+ subtotalMinor: safeNonNegativeNumber('Stripe invoice subtotal', input.subtotal),
38
+ totalMinor: safeNonNegativeNumber('Stripe invoice total', input.total),
39
+ createdAt: stripeTimestamp('Stripe invoice creation', stripeNumber(input, 'created')),
40
+ lines: Object.freeze(lines),
41
+ });
42
+ if (lines.length !== 0) {
43
+ if (lines.length !== 1)
44
+ throw new Error('Stripe overage invoice must contain exactly one line');
45
+ const item = lines[0];
46
+ if (item === undefined)
47
+ throw new Error('Stripe overage invoice line is unavailable');
48
+ assertInvoiceItem(claim, item, id);
49
+ const amountMinor = safePositiveInteger('Stripe overage amount', claim.closure.amountMinor);
50
+ if (invoice.subtotalMinor !== amountMinor || invoice.totalMinor !== amountMinor) {
51
+ throw new Error('Stripe overage invoice total does not match closure');
52
+ }
53
+ }
54
+ return invoice;
55
+ }
56
+ export function normalizeStripeOverageInvoiceItem(config, claim, expectedInvoiceId, value) {
57
+ const item = stripeRecord('Stripe overage invoice item', value);
58
+ requireStripeMode(config.mode, stripeBoolean(item, 'livemode'));
59
+ const normalized = normalizedItemFields(item, claim, {
60
+ id: stripeId('invoice item', 'ii_', stripeString(item, 'id')),
61
+ invoiceId: stripeReference('Stripe invoice item invoice', 'in_', item.invoice),
62
+ customerId: stripeReference('Stripe invoice item customer', 'cus_', item.customer),
63
+ });
64
+ assertInvoiceItem(claim, normalized, expectedInvoiceId);
65
+ return normalized;
66
+ }
67
+ export function assertExpectedInvoiceId(invoice, expected) {
68
+ if (invoice.id !== expected) {
69
+ throw new Error('Stripe overage invoice identity does not match request');
70
+ }
71
+ }
72
+ function normalizeInvoiceLine(config, claim, invoiceId, value) {
73
+ const line = stripeRecord('Stripe overage invoice line', value);
74
+ requireStripeMode(config.mode, stripeBoolean(line, 'livemode'));
75
+ const parent = stripeRecord('Stripe overage invoice line parent', line.parent);
76
+ if (stripeString(parent, 'type') !== 'invoice_item_details') {
77
+ throw new Error('Stripe overage invoice line is not a direct invoice item');
78
+ }
79
+ const details = stripeRecord('Stripe overage invoice line item details', parent.invoice_item_details);
80
+ return normalizedItemFields(line, claim, {
81
+ id: stripeId('invoice item', 'ii_', stripeString(details, 'invoice_item')),
82
+ invoiceId,
83
+ customerId: claim.customerId,
84
+ });
85
+ }
86
+ function normalizedItemFields(input, claim, identity) {
87
+ const pricing = stripeRecord('Stripe overage invoice item pricing', input.pricing);
88
+ if (stripeString(pricing, 'type') !== 'price_details') {
89
+ throw new Error('Stripe overage invoice item pricing is invalid');
90
+ }
91
+ const price = stripeRecord('Stripe overage invoice item price', pricing.price_details);
92
+ const period = stripeRecord('Stripe overage invoice item period', input.period);
93
+ if (nullableArray('Stripe overage invoice item discounts', input.discounts).length !== 0) {
94
+ throw new Error('Stripe overage invoice item has a discount');
95
+ }
96
+ if (nullableArray('Stripe overage invoice item taxes', input.taxes).length !== 0) {
97
+ throw new Error('Stripe overage invoice item has tax applied');
98
+ }
99
+ const discountable = stripeBoolean(input, 'discountable');
100
+ if (discountable)
101
+ throw new Error('Stripe overage invoice item must be non-discountable');
102
+ assertMetadata(stripeRecord('Stripe overage invoice item metadata', input.metadata), claim);
103
+ return Object.freeze({
104
+ ...identity,
105
+ amountMinor: safeNonNegativeNumber('Stripe overage invoice item amount', input.amount),
106
+ currency: usd(input.currency),
107
+ discountable: false,
108
+ quantity: safeNonNegativeNumber('Stripe overage invoice item quantity', input.quantity),
109
+ priceId: stripeReference('Stripe overage invoice item price', 'price_', price.price),
110
+ productId: stripeReference('Stripe overage invoice item product', 'prod_', price.product),
111
+ periodStart: safeNonNegativeNumber('Stripe overage invoice item period start', period.start),
112
+ periodEnd: safeNonNegativeNumber('Stripe overage invoice item period end', period.end),
113
+ });
114
+ }
115
+ function assertInvoiceItem(claim, item, invoiceId) {
116
+ const quantity = safePositiveInteger('Stripe overage billable blocks', claim.closure.billableBlocks);
117
+ const amount = safePositiveInteger('Stripe overage amount', claim.closure.amountMinor);
118
+ const period = stripePeriod(claim.closure.windowStart, claim.closure.windowEnd);
119
+ if (item.invoiceId !== invoiceId ||
120
+ item.customerId !== claim.customerId ||
121
+ item.priceId !== claim.overagePriceId ||
122
+ item.productId !== claim.overageProductId ||
123
+ item.quantity !== quantity ||
124
+ item.amountMinor !== amount ||
125
+ item.currency !== claim.closure.currency ||
126
+ item.discountable ||
127
+ item.periodStart !== period.start ||
128
+ item.periodEnd !== period.end) {
129
+ throw new Error('Stripe overage invoice item does not match closure');
130
+ }
131
+ }
132
+ export function stripeOverageMetadata(claim) {
133
+ return {
134
+ noodle_overage_closure_id: claim.closure.closureId,
135
+ noodle_billing_account_id: claim.closure.billingAccountId,
136
+ noodle_overage_closure_checksum: claim.closure.contentChecksum,
137
+ };
138
+ }
139
+ function assertMetadata(input, claim) {
140
+ for (const [key, value] of Object.entries(stripeOverageMetadata(claim))) {
141
+ if (input[key] !== value)
142
+ throw new Error('Stripe overage invoice metadata does not match closure');
143
+ }
144
+ }
145
+ export function stripePeriod(windowStart, windowEnd) {
146
+ const startMs = new Date(windowStart).getTime();
147
+ const endMs = new Date(windowEnd).getTime();
148
+ if (!Number.isFinite(startMs) ||
149
+ !Number.isFinite(endMs) ||
150
+ startMs % 1_000 !== 0 ||
151
+ endMs % 1_000 !== 0 ||
152
+ endMs <= startMs) {
153
+ throw new Error('Stripe overage invoice window is invalid');
154
+ }
155
+ return { start: startMs / 1_000, end: endMs / 1_000 - 1 };
156
+ }
157
+ function invoiceStatus(value) {
158
+ if (value === 'draft' ||
159
+ value === 'open' ||
160
+ value === 'paid' ||
161
+ value === 'void' ||
162
+ value === 'uncollectible') {
163
+ return value;
164
+ }
165
+ throw new Error('Stripe overage invoice status is unsupported');
166
+ }
167
+ export function requireStripeMode(mode, livemode) {
168
+ if (livemode !== (mode === 'live')) {
169
+ throw new Error('Stripe overage invoice mode does not match billing configuration');
170
+ }
171
+ }
172
+ export function stripeReference(name, prefix, value) {
173
+ if (typeof value === 'string')
174
+ return stripeId(name, prefix, value);
175
+ return stripeId(name, prefix, stripeString(stripeRecord(name, value), 'id'));
176
+ }
177
+ export function stripeId(name, prefix, value) {
178
+ if (!value.startsWith(prefix) || value.length <= prefix.length) {
179
+ throw new Error(`${name} must start with ${prefix}`);
180
+ }
181
+ return value;
182
+ }
183
+ export function safePositiveInteger(name, value) {
184
+ if (!/^[1-9][0-9]*$/.test(value))
185
+ throw new Error(`${name} is invalid`);
186
+ const parsed = Number(value);
187
+ if (!Number.isSafeInteger(parsed))
188
+ throw new Error(`${name} is beyond the safe integer boundary`);
189
+ return parsed;
190
+ }
191
+ function safeNonNegativeNumber(name, value) {
192
+ if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0) {
193
+ throw new Error(`${name} is invalid`);
194
+ }
195
+ return value;
196
+ }
197
+ function usd(value) {
198
+ if (value !== 'usd')
199
+ throw new Error('Stripe overage invoice item currency is invalid');
200
+ return value;
201
+ }
202
+ function stripeTimestamp(name, value) {
203
+ if (!Number.isSafeInteger(value) || value < 0)
204
+ throw new Error(`${name} is invalid`);
205
+ return new Date(value * 1_000).toISOString();
206
+ }
207
+ export function stripeRecord(name, value) {
208
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
209
+ throw new Error(`${name} must be an object`);
210
+ }
211
+ return value;
212
+ }
213
+ export function stripeArray(name, value) {
214
+ if (!Array.isArray(value))
215
+ throw new Error(`${name} must be an array`);
216
+ return value;
217
+ }
218
+ function nullableArray(name, value) {
219
+ if (value === null || value === undefined)
220
+ return [];
221
+ return stripeArray(name, value);
222
+ }
223
+ export function stripeString(input, key) {
224
+ const value = input[key];
225
+ if (typeof value !== 'string')
226
+ throw new Error(`Stripe overage ${key} must be a string`);
227
+ return value;
228
+ }
229
+ export function stripeBoolean(input, key) {
230
+ const value = input[key];
231
+ if (typeof value !== 'boolean')
232
+ throw new Error(`Stripe overage ${key} must be a boolean`);
233
+ return value;
234
+ }
235
+ function stripeNumber(input, key) {
236
+ const value = input[key];
237
+ if (typeof value !== 'number')
238
+ throw new Error(`Stripe overage ${key} must be a number`);
239
+ return value;
240
+ }
241
+ //# sourceMappingURL=stripe-overage-provider-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-overage-provider-validation.js","sourceRoot":"","sources":["../../src/billing/stripe-overage-provider-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { BillingStripeConfig } from './stripe-config.js';
2
+ import { type BillingStripeOverageInvoice, type BillingStripeOverageInvoiceItem } from './stripe-overage-provider-validation.js';
3
+ import type { BillingStripeOverageSettlementClaim } from './stripe-overage-store.js';
4
+ export type { BillingStripeOverageInvoice, BillingStripeOverageInvoiceItem, BillingStripeOverageInvoiceStatus, } from './stripe-overage-provider-validation.js';
5
+ export interface BillingStripeOverageApi {
6
+ readonly subscriptions: {
7
+ retrieve(id: string): Promise<unknown>;
8
+ };
9
+ readonly invoices: {
10
+ search(params: unknown): Promise<unknown>;
11
+ create(params: unknown, options?: unknown): Promise<unknown>;
12
+ retrieve(id: string): Promise<unknown>;
13
+ finalizeInvoice(id: string, params: unknown, options?: unknown): Promise<unknown>;
14
+ };
15
+ readonly invoiceItems: {
16
+ create(params: unknown, options?: unknown): Promise<unknown>;
17
+ };
18
+ }
19
+ export declare class StripeOverageBillingProvider {
20
+ #private;
21
+ constructor(config: BillingStripeConfig, api?: BillingStripeOverageApi);
22
+ findInvoice(claim: BillingStripeOverageSettlementClaim): Promise<BillingStripeOverageInvoice | undefined>;
23
+ createDraftInvoice(claim: BillingStripeOverageSettlementClaim): Promise<BillingStripeOverageInvoice>;
24
+ createInvoiceItem(claim: BillingStripeOverageSettlementClaim, invoiceId: string): Promise<BillingStripeOverageInvoiceItem>;
25
+ retrieveInvoice(claim: BillingStripeOverageSettlementClaim, invoiceId: string): Promise<BillingStripeOverageInvoice>;
26
+ finalizeInvoice(claim: BillingStripeOverageSettlementClaim, invoiceId: string): Promise<BillingStripeOverageInvoice>;
27
+ }
28
+ //# sourceMappingURL=stripe-overage-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe-overage-provider.d.ts","sourceRoot":"","sources":["../../src/billing/stripe-overage-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EAarC,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAC;AAErF,YAAY,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,yCAAyC,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,QAAQ,EAAE;QACjB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACnF,CAAC;IACF,QAAQ,CAAC,YAAY,EAAE;QACrB,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC9D,CAAC;CACH;AAED,qBAAa,4BAA4B;;gBAI3B,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,uBAAuB;IAKhE,WAAW,CACf,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAiB7C,kBAAkB,CACtB,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,2BAA2B,CAAC;IAgCjC,iBAAiB,CACrB,KAAK,EAAE,mCAAmC,EAC1C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,+BAA+B,CAAC;IA8BrC,eAAe,CACnB,KAAK,EAAE,mCAAmC,EAC1C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,2BAA2B,CAAC;IAWjC,eAAe,CACnB,KAAK,EAAE,mCAAmC,EAC1C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,2BAA2B,CAAC;CA+CxC"}