@noodleseed/one 0.37.0 → 0.38.1

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 (102) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +3 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/billing-ops.d.ts +3 -0
  5. package/dist/commands/billing-ops.d.ts.map +1 -0
  6. package/dist/commands/billing-ops.js +144 -0
  7. package/dist/commands/billing-ops.js.map +1 -0
  8. package/dist/commands/catalog-data-resources.d.ts.map +1 -1
  9. package/dist/commands/catalog-data-resources.js +13 -0
  10. package/dist/commands/catalog-data-resources.js.map +1 -1
  11. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  12. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  13. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  14. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  15. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  16. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  17. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.d.ts.map +1 -1
  18. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +5 -0
  19. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  20. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  21. package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.d.ts +6 -0
  22. package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.d.ts.map +1 -0
  23. package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.js +23 -0
  24. package/node_modules/@noodle-borg/service/dist/billing/in-memory-serialization.js.map +1 -0
  25. package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts +32 -0
  26. package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts.map +1 -0
  27. package/node_modules/@noodle-borg/service/dist/billing/in-memory.js +185 -0
  28. package/node_modules/@noodle-borg/service/dist/billing/in-memory.js.map +1 -0
  29. package/node_modules/@noodle-borg/service/dist/billing/migration.d.ts +84 -0
  30. package/node_modules/@noodle-borg/service/dist/billing/migration.d.ts.map +1 -0
  31. package/node_modules/@noodle-borg/service/dist/billing/migration.js +301 -0
  32. package/node_modules/@noodle-borg/service/dist/billing/migration.js.map +1 -0
  33. package/node_modules/@noodle-borg/service/dist/billing/model.d.ts +85 -0
  34. package/node_modules/@noodle-borg/service/dist/billing/model.d.ts.map +1 -0
  35. package/node_modules/@noodle-borg/service/dist/billing/model.js +134 -0
  36. package/node_modules/@noodle-borg/service/dist/billing/model.js.map +1 -0
  37. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts +66 -0
  38. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts.map +1 -0
  39. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js +163 -0
  40. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js.map +1 -0
  41. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts +4 -0
  42. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts.map +1 -0
  43. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js +148 -0
  44. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -0
  45. package/node_modules/@noodle-borg/service/dist/billing/postgres.d.ts +26 -0
  46. package/node_modules/@noodle-borg/service/dist/billing/postgres.d.ts.map +1 -0
  47. package/node_modules/@noodle-borg/service/dist/billing/postgres.js +273 -0
  48. package/node_modules/@noodle-borg/service/dist/billing/postgres.js.map +1 -0
  49. package/node_modules/@noodle-borg/service/dist/billing/store.d.ts +27 -0
  50. package/node_modules/@noodle-borg/service/dist/billing/store.d.ts.map +1 -0
  51. package/node_modules/@noodle-borg/service/dist/billing/store.js +2 -0
  52. package/node_modules/@noodle-borg/service/dist/billing/store.js.map +1 -0
  53. package/node_modules/@noodle-borg/service/dist/index.d.ts +3 -0
  54. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  55. package/node_modules/@noodle-borg/service/dist/index.js +2 -0
  56. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  57. package/node_modules/@noodle-borg/service/dist/options.d.ts +4 -1
  58. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  59. package/node_modules/@noodle-borg/service/dist/routes/billing.d.ts +14 -0
  60. package/node_modules/@noodle-borg/service/dist/routes/billing.d.ts.map +1 -0
  61. package/node_modules/@noodle-borg/service/dist/routes/billing.js +76 -0
  62. package/node_modules/@noodle-borg/service/dist/routes/billing.js.map +1 -0
  63. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts +25 -0
  64. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts.map +1 -0
  65. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js +58 -0
  66. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js.map +1 -0
  67. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  68. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +17 -0
  69. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  70. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  71. package/node_modules/@noodle-borg/service/dist/serve.js +8 -0
  72. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  73. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  74. package/node_modules/@noodle-borg/service/dist/service.js +16 -26
  75. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  76. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +2 -1
  77. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
  78. package/node_modules/@noodle-borg/service/dist/store/control-plane.js +81 -48
  79. package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
  80. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +1 -1
  81. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
  82. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +18 -6
  83. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
  84. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  85. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +2 -0
  86. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  87. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts +14 -1
  88. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts.map +1 -1
  89. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js +28 -0
  90. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js.map +1 -1
  91. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  92. package/node_modules/@noodle-borg/service/dist/store/postgres.js +7 -3
  93. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  94. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +4 -0
  95. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -1
  96. package/node_modules/@noodle-borg/service/dist/store/validate.js +13 -0
  97. package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -1
  98. package/node_modules/@noodle-borg/service/dist/store.d.ts +5 -2
  99. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  100. package/node_modules/@noodle-borg/service/dist/store.js +1 -1
  101. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  102. package/package.json +1 -1
@@ -0,0 +1,26 @@
1
+ import type { Pool, PoolClient } from 'pg';
2
+ import { type BillingAccountMemberRecord, type BillingAccountRecord, type BillingIdentityRef, type EntitlementSnapshotRecord, type OrgBillingLinkRecord, type PlanVersionRecord } from './model.js';
3
+ import type { EnsureDefaultBillingAccountInput, EnsureOrgBillingLinkInput } from './store.js';
4
+ export declare function ensureDefaultBillingAccountRow(pool: Pool, input: EnsureDefaultBillingAccountInput, now: () => Date): Promise<BillingAccountRecord>;
5
+ export declare function ensureDefaultBillingAccountTx(client: PoolClient, input: EnsureDefaultBillingAccountInput, createdAt: Date): Promise<BillingAccountRecord>;
6
+ export declare function ensureDefaultOrgBillingTx(client: PoolClient, input: {
7
+ readonly org: string;
8
+ readonly owner: {
9
+ readonly identityIssuer?: string;
10
+ readonly subject: string;
11
+ readonly email: string;
12
+ };
13
+ readonly reason: string;
14
+ }, createdAt: Date): Promise<void>;
15
+ export declare function getBillingAccountRow(pool: Pool, id: string): Promise<BillingAccountRecord | undefined>;
16
+ export declare function getDefaultBillingAccountRow(pool: Pool, identity: BillingIdentityRef): Promise<BillingAccountRecord | undefined>;
17
+ export declare function listBillingAccountMemberRows(pool: Pool, id: string): Promise<readonly BillingAccountMemberRecord[]>;
18
+ export declare function removeBillingAccountMemberRow(pool: Pool, input: BillingIdentityRef & {
19
+ readonly billingAccountId: string;
20
+ }): Promise<boolean>;
21
+ export declare function getPlanVersionRow(pool: Pool, id: string): Promise<PlanVersionRecord | undefined>;
22
+ export declare function getActiveEntitlementSnapshotRow(pool: Pool, billingAccountId: string): Promise<EntitlementSnapshotRecord | undefined>;
23
+ export declare function ensureOrgBillingLinkRow(pool: Pool, input: EnsureOrgBillingLinkInput, now: () => Date): Promise<OrgBillingLinkRecord>;
24
+ export declare function ensureOrgBillingLinkTx(client: PoolClient, input: EnsureOrgBillingLinkInput, linkedAt: Date): Promise<OrgBillingLinkRecord>;
25
+ export declare function getOrgBillingLinkRow(pool: Pool, org: string): Promise<OrgBillingLinkRecord | undefined>;
26
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/billing/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE3C,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EAEvB,KAAK,yBAAyB,EAI9B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAGvB,MAAM,YAAY,CAAC;AAcpB,OAAO,KAAK,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE9F,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,gCAAgC,EACvC,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,oBAAoB,CAAC,CAI/B;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,gCAAgC,EACvC,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,oBAAoB,CAAC,CAyF/B;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IACL,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,EACD,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAE3C;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAE3C;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,0BAA0B,EAAE,CAAC,CAQhD;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,OAAO,CAAC,CAsClB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAEhG;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAEhD;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,yBAAyB,EAChC,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC,oBAAoB,CAAC,CA8F/B;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAE3C"}
@@ -0,0 +1,273 @@
1
+ import { validateSlug } from '../store/validate.js';
2
+ import { createDefaultFreeBillingRecords, GOOGLE_CONTROL_PLANE_ISSUER, normalizeBillingEmail, normalizeBillingIdentity, validateBillingAccountId, validateBillingLinkReason, } from './model.js';
3
+ import { accountRowToRecord, entitlementSnapshotRowToRecord, memberRowToRecord, orgBillingLinkRowToRecord, planVersionRowToRecord, validateScalarId, } from './postgres-records.js';
4
+ export function ensureDefaultBillingAccountRow(pool, input, now) {
5
+ return withBillingTransaction(pool, (client) => ensureDefaultBillingAccountTx(client, input, now()));
6
+ }
7
+ export async function ensureDefaultBillingAccountTx(client, input, createdAt) {
8
+ const identity = normalizeBillingIdentity(input);
9
+ const email = normalizeBillingEmail(input.email);
10
+ // JSON keeps the tuple unambiguous without the NUL separator used by the in-memory key; PostgreSQL
11
+ // rejects NUL bytes in text parameters. The composite defaults primary key remains authoritative.
12
+ await client.query('SELECT pg_advisory_xact_lock(hashtextextended($1, 0))', [
13
+ `billing-default:${JSON.stringify([identity.identityIssuer, identity.subject])}`,
14
+ ]);
15
+ const existing = await getDefaultBillingAccountQuery(client, identity, true);
16
+ if (existing !== undefined) {
17
+ const updated = await client.query(`UPDATE billing_account_members
18
+ SET email = $4
19
+ WHERE billing_account_id = $1 AND identity_issuer = $2 AND subject = $3
20
+ RETURNING *`, [existing.id, identity.identityIssuer, identity.subject, email]);
21
+ const activeSnapshot = await getActiveEntitlementSnapshotQuery(client, existing.id);
22
+ if (updated.rows[0]?.role !== 'owner' || activeSnapshot === undefined) {
23
+ throw new Error('default billing account is incomplete');
24
+ }
25
+ return existing;
26
+ }
27
+ const created = createDefaultFreeBillingRecords({
28
+ identity,
29
+ email,
30
+ ...(input.displayName !== undefined ? { displayName: input.displayName } : {}),
31
+ createdAt: createdAt.toISOString(),
32
+ });
33
+ const plan = await getPlanVersionQuery(client, created.snapshot.planVersionId);
34
+ if (plan === undefined)
35
+ throw new Error('immutable Free plan version is missing');
36
+ await client.query(`INSERT INTO billing_accounts (id, display_name, state, created_at)
37
+ VALUES ($1, $2, $3, $4)`, [
38
+ created.account.id,
39
+ created.account.displayName,
40
+ created.account.state,
41
+ created.account.createdAt,
42
+ ]);
43
+ await client.query(`INSERT INTO billing_account_members
44
+ (billing_account_id, identity_issuer, subject, email, role, created_at)
45
+ VALUES ($1, $2, $3, $4, $5, $6)`, [
46
+ created.member.billingAccountId,
47
+ created.member.identityIssuer,
48
+ created.member.subject,
49
+ created.member.email,
50
+ created.member.role,
51
+ created.member.createdAt,
52
+ ]);
53
+ await client.query(`INSERT INTO billing_account_defaults (identity_issuer, subject, billing_account_id)
54
+ VALUES ($1, $2, $3)`, [identity.identityIssuer, identity.subject, created.account.id]);
55
+ await client.query(`INSERT INTO billing_entitlement_snapshots
56
+ (id, billing_account_id, version, plan_version_id, source_kind, generation_reason,
57
+ verification_status, effective_from, monthly_usage_anchor, entitlements,
58
+ content_checksum, verified_at, created_at)
59
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10::jsonb, $11, $12, $13)`, [
60
+ created.snapshot.id,
61
+ created.snapshot.billingAccountId,
62
+ created.snapshot.version,
63
+ created.snapshot.planVersionId,
64
+ created.snapshot.sourceKind,
65
+ created.snapshot.generationReason,
66
+ created.snapshot.verificationStatus,
67
+ created.snapshot.effectiveFrom,
68
+ created.snapshot.monthlyUsageAnchor,
69
+ JSON.stringify(created.snapshot.entitlements),
70
+ created.snapshot.contentChecksum,
71
+ created.snapshot.verifiedAt,
72
+ created.snapshot.createdAt,
73
+ ]);
74
+ await client.query(`INSERT INTO billing_account_active_snapshots (billing_account_id, snapshot_id)
75
+ VALUES ($1, $2)`, [created.account.id, created.snapshot.id]);
76
+ return created.account;
77
+ }
78
+ export async function ensureDefaultOrgBillingTx(client, input, createdAt) {
79
+ const identity = {
80
+ identityIssuer: input.owner.identityIssuer ?? GOOGLE_CONTROL_PLANE_ISSUER,
81
+ subject: input.owner.subject,
82
+ };
83
+ const billingAccount = await ensureDefaultBillingAccountTx(client, { ...identity, email: input.owner.email }, createdAt);
84
+ await ensureOrgBillingLinkTx(client, {
85
+ org: input.org,
86
+ billingAccountId: billingAccount.id,
87
+ homeFreeBillingAccountId: billingAccount.id,
88
+ homeOwner: identity,
89
+ linkedBy: identity,
90
+ reason: input.reason,
91
+ }, createdAt);
92
+ }
93
+ export function getBillingAccountRow(pool, id) {
94
+ return getBillingAccountQuery(pool, validateBillingAccountId(id));
95
+ }
96
+ export function getDefaultBillingAccountRow(pool, identity) {
97
+ return getDefaultBillingAccountQuery(pool, normalizeBillingIdentity(identity));
98
+ }
99
+ export async function listBillingAccountMemberRows(pool, id) {
100
+ const { rows } = await pool.query(`SELECT * FROM billing_account_members
101
+ WHERE billing_account_id = $1
102
+ ORDER BY created_at, identity_issuer, subject`, [validateBillingAccountId(id)]);
103
+ return rows.map(memberRowToRecord);
104
+ }
105
+ export function removeBillingAccountMemberRow(pool, input) {
106
+ const billingAccountId = validateBillingAccountId(input.billingAccountId);
107
+ const identity = normalizeBillingIdentity(input);
108
+ return withBillingTransaction(pool, async (client) => {
109
+ const { rows } = await client.query(`SELECT * FROM billing_account_members
110
+ WHERE billing_account_id = $1
111
+ ORDER BY identity_issuer, subject
112
+ FOR UPDATE`, [billingAccountId]);
113
+ const member = rows.find((candidate) => candidate.identity_issuer === identity.identityIssuer &&
114
+ candidate.subject === identity.subject);
115
+ if (member === undefined)
116
+ return false;
117
+ if (member.role === 'owner' &&
118
+ rows.filter((candidate) => candidate.role === 'owner').length === 1) {
119
+ throw new Error('cannot remove the last billing owner');
120
+ }
121
+ const defaultMapping = await client.query(`SELECT 1 FROM billing_account_defaults
122
+ WHERE identity_issuer = $1 AND subject = $2 AND billing_account_id = $3`, [identity.identityIssuer, identity.subject, billingAccountId]);
123
+ if (defaultMapping.rows[0] !== undefined) {
124
+ throw new Error('cannot remove the default billing owner without an atomic default transfer');
125
+ }
126
+ const result = await client.query(`DELETE FROM billing_account_members
127
+ WHERE billing_account_id = $1 AND identity_issuer = $2 AND subject = $3`, [billingAccountId, identity.identityIssuer, identity.subject]);
128
+ return (result.rowCount ?? 0) > 0;
129
+ });
130
+ }
131
+ export function getPlanVersionRow(pool, id) {
132
+ return getPlanVersionQuery(pool, validateScalarId('plan version id', id));
133
+ }
134
+ export function getActiveEntitlementSnapshotRow(pool, billingAccountId) {
135
+ return getActiveEntitlementSnapshotQuery(pool, validateBillingAccountId(billingAccountId));
136
+ }
137
+ export function ensureOrgBillingLinkRow(pool, input, now) {
138
+ return withBillingTransaction(pool, (client) => ensureOrgBillingLinkTx(client, input, now()));
139
+ }
140
+ export async function ensureOrgBillingLinkTx(client, input, linkedAt) {
141
+ const org = validateSlug('org', input.org);
142
+ const billingAccountId = validateBillingAccountId(input.billingAccountId);
143
+ const homeFreeBillingAccountId = validateBillingAccountId(input.homeFreeBillingAccountId);
144
+ if (billingAccountId !== homeFreeBillingAccountId) {
145
+ throw new Error('initial billing-account link must use the organization home Free account');
146
+ }
147
+ const orgResult = await client.query('SELECT slug FROM orgs WHERE slug = $1 FOR UPDATE', [org]);
148
+ if (orgResult.rows[0] === undefined)
149
+ throw new Error('organization not found');
150
+ const reason = validateBillingLinkReason(input.reason);
151
+ if ((await getBillingAccountQuery(client, billingAccountId)) === undefined) {
152
+ throw new Error('billing account not found');
153
+ }
154
+ const homeOwner = normalizeBillingIdentity(input.homeOwner);
155
+ const ownerDefault = await getDefaultBillingAccountQuery(client, homeOwner, true);
156
+ const ownerMember = await client.query(`SELECT role FROM billing_account_members
157
+ WHERE billing_account_id = $1 AND identity_issuer = $2 AND subject = $3
158
+ FOR UPDATE`, [homeFreeBillingAccountId, homeOwner.identityIssuer, homeOwner.subject]);
159
+ if (ownerDefault?.id !== homeFreeBillingAccountId || ownerMember.rows[0]?.role !== 'owner') {
160
+ throw new Error('organization home Free account must be the home owner default account');
161
+ }
162
+ const orgOwner = await client.query(`SELECT role FROM org_members
163
+ WHERE org_slug = $1 AND subject = $2
164
+ FOR UPDATE`, [org, homeOwner.subject]);
165
+ if (orgOwner.rows[0]?.role !== 'owner') {
166
+ throw new Error('organization home Free owner must be a current organization owner');
167
+ }
168
+ const linkedBy = normalizeBillingIdentity(input.linkedBy);
169
+ const existing = await getOrgBillingLinkQuery(client, org);
170
+ if (existing !== undefined) {
171
+ if (existing.billingAccountId !== billingAccountId ||
172
+ existing.homeFreeBillingAccountId !== homeFreeBillingAccountId) {
173
+ throw new Error('organization already has an active billing-account link');
174
+ }
175
+ return existing;
176
+ }
177
+ await client.query(`INSERT INTO org_billing_home_accounts
178
+ (org_slug, billing_account_id, home_owner_identity_issuer, home_owner_subject)
179
+ VALUES ($1, $2, $3, $4)
180
+ ON CONFLICT (org_slug) DO NOTHING`, [org, homeFreeBillingAccountId, homeOwner.identityIssuer, homeOwner.subject]);
181
+ const home = await client.query(`SELECT billing_account_id, home_owner_identity_issuer, home_owner_subject
182
+ FROM org_billing_home_accounts WHERE org_slug = $1`, [org]);
183
+ if (home.rows[0]?.billing_account_id !== homeFreeBillingAccountId ||
184
+ home.rows[0]?.home_owner_identity_issuer !== homeOwner.identityIssuer ||
185
+ home.rows[0]?.home_owner_subject !== homeOwner.subject) {
186
+ throw new Error('organization home Free billing account and owner are immutable');
187
+ }
188
+ const { rows } = await client.query(`WITH inserted AS (
189
+ INSERT INTO org_billing_links
190
+ (org_slug, billing_account_id, home_free_billing_account_id,
191
+ fallback_billing_account_id, version, active, linked_at,
192
+ linked_by_identity_issuer, linked_by_subject, reason)
193
+ VALUES ($1, $2, $3, $3, 1, true, $4, $5, $6, $7)
194
+ RETURNING *
195
+ )
196
+ SELECT inserted.*,
197
+ home.home_owner_identity_issuer,
198
+ home.home_owner_subject
199
+ FROM inserted
200
+ JOIN org_billing_home_accounts AS home ON home.org_slug = inserted.org_slug`, [
201
+ org,
202
+ billingAccountId,
203
+ homeFreeBillingAccountId,
204
+ linkedAt,
205
+ linkedBy.identityIssuer,
206
+ linkedBy.subject,
207
+ reason,
208
+ ]);
209
+ return orgBillingLinkRowToRecord(rows[0]);
210
+ }
211
+ export function getOrgBillingLinkRow(pool, org) {
212
+ return getOrgBillingLinkQuery(pool, validateSlug('org', org));
213
+ }
214
+ async function getBillingAccountQuery(queryable, id) {
215
+ const { rows } = await queryable.query('SELECT * FROM billing_accounts WHERE id = $1', [id]);
216
+ return rows[0] ? accountRowToRecord(rows[0]) : undefined;
217
+ }
218
+ async function getDefaultBillingAccountQuery(queryable, identity, forUpdate = false) {
219
+ const { rows } = await queryable.query(`SELECT account.*
220
+ FROM billing_account_defaults AS defaults
221
+ JOIN billing_accounts AS account ON account.id = defaults.billing_account_id
222
+ WHERE defaults.identity_issuer = $1 AND defaults.subject = $2
223
+ ${forUpdate ? 'FOR UPDATE OF defaults, account' : ''}`, [identity.identityIssuer, identity.subject]);
224
+ return rows[0] ? accountRowToRecord(rows[0]) : undefined;
225
+ }
226
+ async function getPlanVersionQuery(queryable, id) {
227
+ const { rows } = await queryable.query('SELECT * FROM billing_plan_versions WHERE id = $1', [id]);
228
+ return rows[0] ? planVersionRowToRecord(rows[0]) : undefined;
229
+ }
230
+ async function getActiveEntitlementSnapshotQuery(queryable, billingAccountId) {
231
+ const { rows } = await queryable.query(`SELECT snapshot.*,
232
+ plan.plan_code,
233
+ plan.version AS plan_version,
234
+ plan.effective_from AS plan_effective_from,
235
+ plan.entitlements AS plan_entitlements,
236
+ plan.content_checksum AS plan_content_checksum,
237
+ plan.created_at AS plan_created_at
238
+ FROM billing_account_active_snapshots AS active
239
+ JOIN billing_entitlement_snapshots AS snapshot
240
+ ON snapshot.billing_account_id = active.billing_account_id
241
+ AND snapshot.id = active.snapshot_id
242
+ JOIN billing_plan_versions AS plan ON plan.id = snapshot.plan_version_id
243
+ WHERE active.billing_account_id = $1`, [billingAccountId]);
244
+ return rows[0] ? entitlementSnapshotRowToRecord(rows[0]) : undefined;
245
+ }
246
+ async function getOrgBillingLinkQuery(queryable, org) {
247
+ const { rows } = await queryable.query(`SELECT links.*,
248
+ home.home_owner_identity_issuer,
249
+ home.home_owner_subject
250
+ FROM org_billing_links AS links
251
+ JOIN org_billing_home_accounts AS home ON home.org_slug = links.org_slug
252
+ WHERE links.org_slug = $1`, [org]);
253
+ return rows[0] ? orgBillingLinkRowToRecord(rows[0]) : undefined;
254
+ }
255
+ async function withBillingTransaction(pool, operation) {
256
+ const client = await pool.connect();
257
+ try {
258
+ await client.query('BEGIN');
259
+ try {
260
+ const result = await operation(client);
261
+ await client.query('COMMIT');
262
+ return result;
263
+ }
264
+ catch (error) {
265
+ await client.query('ROLLBACK');
266
+ throw error;
267
+ }
268
+ }
269
+ finally {
270
+ client.release();
271
+ }
272
+ }
273
+ //# sourceMappingURL=postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/billing/postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { BillingAccountMemberRecord, BillingAccountRecord, BillingIdentityRef, EntitlementSnapshotRecord, OrgBillingLinkRecord, PlanVersionRecord } from './model.js';
2
+ export interface EnsureDefaultBillingAccountInput extends BillingIdentityRef {
3
+ readonly email: string;
4
+ readonly displayName?: string;
5
+ }
6
+ export interface EnsureOrgBillingLinkInput {
7
+ readonly org: string;
8
+ readonly billingAccountId: string;
9
+ readonly homeFreeBillingAccountId: string;
10
+ readonly homeOwner: BillingIdentityRef;
11
+ readonly linkedBy: BillingIdentityRef;
12
+ readonly reason: string;
13
+ }
14
+ export interface BillingAccountStore {
15
+ ensureDefaultBillingAccount(input: EnsureDefaultBillingAccountInput): Promise<BillingAccountRecord>;
16
+ getBillingAccount(id: string): Promise<BillingAccountRecord | undefined>;
17
+ getDefaultBillingAccount(identity: BillingIdentityRef): Promise<BillingAccountRecord | undefined>;
18
+ listBillingAccountMembers(id: string): Promise<readonly BillingAccountMemberRecord[]>;
19
+ removeBillingAccountMember(input: BillingIdentityRef & {
20
+ readonly billingAccountId: string;
21
+ }): Promise<boolean>;
22
+ getPlanVersion(id: string): Promise<PlanVersionRecord | undefined>;
23
+ getActiveEntitlementSnapshot(billingAccountId: string): Promise<EntitlementSnapshotRecord | undefined>;
24
+ ensureOrgBillingLink(input: EnsureOrgBillingLinkInput): Promise<OrgBillingLinkRecord>;
25
+ getOrgBillingLink(org: string): Promise<OrgBillingLinkRecord | undefined>;
26
+ }
27
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/billing/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gCAAiC,SAAQ,kBAAkB;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,2BAA2B,CACzB,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IACzE,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IAClG,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,0BAA0B,EAAE,CAAC,CAAC;IACtF,0BAA0B,CACxB,KAAK,EAAE,kBAAkB,GAAG;QAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,GAChE,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IACnE,4BAA4B,CAC1B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAAC;IAClD,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtF,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;CAC3E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/billing/store.ts"],"names":[],"mappings":""}
@@ -6,6 +6,9 @@ export { type AssetAdapterKind, type AssetConfigInput, type AssetConfigResolutio
6
6
  export { type AssetStore, type AssetUploadPlan, type AssetUploadTarget, InMemoryAssetStore, type InMemoryAssetStoreOptions, } from './assets.js';
7
7
  export { ASSISTANT_INTERACTION_OUTCOME_RETENTION_MS, type AssistantClientRecord, type AssistantConfirmationInteractionRecord, type AssistantHistoryMessage, AssistantInteractionCapacityError, type AssistantInteractionClaimResult, type AssistantInteractionCompletion, type AssistantInteractionCompletionResult, type AssistantInteractionCreateInput, type AssistantInteractionKind, type AssistantInteractionPublicOutcome, type AssistantInteractionRecord, type AssistantInteractionScope, type AssistantInteractionStatus, type AssistantInteractionTransitionInput, type AssistantInteractionTransitionNext, type AssistantInteractionTransitionResult, type AssistantSessionRecord, type AssistantStore, DEFAULT_MAX_PENDING_INTERACTIONS_PER_SESSION, InMemoryAssistantStore, } from './assistant-store.js';
8
8
  export { allowAllGate, bearerToken, type ControlPlaneAuthResult, type ControlPlaneIdentity, constantTimeEqual, type DeployAuthGate, GoogleControlPlaneGate, type GoogleIdTokenVerifier, NoodleOAuthControlPlaneGate, } from './auth/deploy-gate.js';
9
+ export { type LegacyBillingMigrationBlocker, type LegacyBillingMigrationBlockerCode, type LegacyBillingMigrationMapping, type LegacyBillingMigrationPreview, type LegacyBillingMigrationRequest, type LegacyProductionAppIdentity, parseLegacyBillingMigrationRequest, previewLegacyBillingMigration, } from './billing/migration.js';
10
+ export { type BillingAccountMemberRecord, type BillingAccountMemberRole, type BillingAccountRecord, type BillingAccountState, type BillingEntitlements, type BillingIdentityRef, type EntitlementSnapshotRecord, FREE_ENTITLEMENTS, FREE_PLAN_VERSION, GOOGLE_CONTROL_PLANE_ISSUER, type OrgBillingLinkRecord, type PlanVersionRecord, } from './billing/model.js';
11
+ export type { BillingAccountStore, EnsureDefaultBillingAccountInput, EnsureOrgBillingLinkInput, } from './billing/store.js';
9
12
  export { type BuildInfo, resolveBuildInfo } from './build-info.js';
10
13
  export { COMMERCIAL_PLAN_NAMES, type CommercialPlanCatalog, type CommercialPlanName, commercialPlanPolicyId, DEFAULT_COMMERCIAL_PLAN_CATALOG, isCommercialPlanName, isCommercialPlanPolicyId, planNameForPolicy, resolveCommercialPlanCatalog, } from './commercial-plans.js';
11
14
  export { type CustomerVerifierFactoryOptions, createCustomerVerifierFactory, createFirebaseIdTokenVerifier, } from './customer-verifier.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,KAAK,qBAAqB,EAC1B,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,KAAK,0BAA0B,EAC/B,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,KAAK,qBAAqB,EAC1B,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0CAA0C,EAC1C,KAAK,qBAAqB,EAC1B,KAAK,sCAAsC,EAC3C,KAAK,uBAAuB,EAC5B,iCAAiC,EACjC,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,oCAAoC,EACzC,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,EACzC,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,4CAA4C,EAC5C,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,KAAK,cAAc,EACnB,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,8BAA8B,EACnC,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,WAAW,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,mCAAmC,GACpC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,qCAAqC,EACrC,gCAAgC,EAChC,qBAAqB,EACrB,KAAK,8BAA8B,EACnC,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,8BAA8B,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,sCAAsC,EACtC,KAAK,8BAA8B,GACpC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,YAAY,EACZ,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EACL,8BAA8B,EAC9B,KAAK,gBAAgB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,EAC5B,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,YAAY,EACjB,uBAAuB,EACvB,KAAK,SAAS,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,sCAAsC,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,+BAA+B,GACrC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,4BAA4B,EACjC,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACrC,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,YAAY,EACZ,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export { createAssetStore, resolveAssetConfig, } from './asset-config.js';
6
6
  export { InMemoryAssetStore, } from './assets.js';
7
7
  export { ASSISTANT_INTERACTION_OUTCOME_RETENTION_MS, AssistantInteractionCapacityError, DEFAULT_MAX_PENDING_INTERACTIONS_PER_SESSION, InMemoryAssistantStore, } from './assistant-store.js';
8
8
  export { allowAllGate, bearerToken, constantTimeEqual, GoogleControlPlaneGate, NoodleOAuthControlPlaneGate, } from './auth/deploy-gate.js';
9
+ export { parseLegacyBillingMigrationRequest, previewLegacyBillingMigration, } from './billing/migration.js';
10
+ export { FREE_ENTITLEMENTS, FREE_PLAN_VERSION, GOOGLE_CONTROL_PLANE_ISSUER, } from './billing/model.js';
9
11
  export { resolveBuildInfo } from './build-info.js';
10
12
  export { COMMERCIAL_PLAN_NAMES, commercialPlanPolicyId, DEFAULT_COMMERCIAL_PLAN_CATALOG, isCommercialPlanName, isCommercialPlanPolicyId, planNameForPolicy, resolveCommercialPlanCatalog, } from './commercial-plans.js';
11
13
  export { createCustomerVerifierFactory, createFirebaseIdTokenVerifier, } from './customer-verifier.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,10 @@ export interface ServiceOptions {
39
39
  readonly maxBodyBytes?: number;
40
40
  /** Gate for tenant deploy management. Defaults to {@link allowAllGate} (safe only on a loopback bind). */
41
41
  readonly deployGate?: DeployAuthGate;
42
- /** Store for org/member control-plane data. Default: in-memory, useful for localhost tests only. */
42
+ /**
43
+ * Store for org/member control-plane data. Default: in-memory, useful for localhost tests only.
44
+ * PostgreSQL persistence owns this store and rejects a separately injected control-plane backend.
45
+ */
43
46
  readonly controlPlaneStore?: ControlPlaneStore;
44
47
  /** Optional transactional welcome-email delivery adapter. Unset means jobs remain queued without I/O. */
45
48
  readonly welcomeEmailSender?: WelcomeEmailSender;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { DeployAuthGate } from '../auth/deploy-gate.js';
3
+ import type { ServerRegistry } from '../registry.js';
4
+ import type { AuditSink } from '../store/audit.js';
5
+ import type { ControlPlaneStore } from '../store.js';
6
+ /** Operator-only assessment that writes audit evidence but never mutates billing state. */
7
+ export declare function handleLegacyBillingMigrationPreview(req: IncomingMessage, res: ServerResponse, input: {
8
+ readonly gate: DeployAuthGate;
9
+ readonly controlPlane: ControlPlaneStore;
10
+ readonly registry: ServerRegistry;
11
+ readonly audit: AuditSink;
12
+ readonly maxBody: number;
13
+ }): Promise<void>;
14
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/routes/billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,2FAA2F;AAC3F,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE;IACL,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GACA,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -0,0 +1,76 @@
1
+ import { parseLegacyBillingMigrationRequest, previewLegacyBillingMigration, } from '../billing/migration.js';
2
+ import { readJsonBody, sendForbidden, sendJson, sendUnauthorized } from '../http-util.js';
3
+ /** Operator-only assessment that writes audit evidence but never mutates billing state. */
4
+ export async function handleLegacyBillingMigrationPreview(req, res, input) {
5
+ const auth = await input.gate.authorize(req);
6
+ if (!auth.ok) {
7
+ await emitPreviewDenial(input.audit, auth.status, 'authorization_failed');
8
+ if (auth.status === 401)
9
+ sendUnauthorized(res, auth.message);
10
+ else
11
+ sendForbidden(res, auth.message);
12
+ return;
13
+ }
14
+ if (auth.identity === undefined) {
15
+ await emitPreviewDenial(input.audit, 401, 'identity_required');
16
+ return sendUnauthorized(res, 'identity required');
17
+ }
18
+ if (!auth.identity.superAdmin) {
19
+ await emitPreviewDenial(input.audit, 403, 'super_admin_required', auth.identity);
20
+ return sendForbidden(res, 'super-admin required');
21
+ }
22
+ const body = await readJsonBody(req, input.maxBody);
23
+ if (!body.ok)
24
+ return sendJson(res, body.status, { ok: false, error: body.error });
25
+ let request;
26
+ try {
27
+ request = parseLegacyBillingMigrationRequest(body.value);
28
+ }
29
+ catch (error) {
30
+ return sendJson(res, 400, {
31
+ ok: false,
32
+ error: error instanceof Error ? error.message : String(error),
33
+ });
34
+ }
35
+ const preview = await previewLegacyBillingMigration(input.controlPlane, request, {
36
+ getAppIdentity: async (org, app) => {
37
+ const current = await input.registry.getApp(org, app);
38
+ return current === undefined
39
+ ? undefined
40
+ : {
41
+ createdAt: current.createdAt,
42
+ active: current.active,
43
+ ...(current.archivedAt !== undefined ? { archivedAt: current.archivedAt } : {}),
44
+ };
45
+ },
46
+ });
47
+ await input.audit.emit({
48
+ eventType: 'billing.migration.preview.read',
49
+ org: 'platform',
50
+ actorSubject: auth.identity.subject,
51
+ ...(auth.identity.email !== undefined ? { actorEmail: auth.identity.email } : {}),
52
+ decision: 'allow',
53
+ status: 200,
54
+ details: {
55
+ ready: preview.ready,
56
+ organizations: preview.organizations.length,
57
+ linkedOrganizations: preview.linkedOrganizations.length,
58
+ fundingSets: preview.fundingSets.length,
59
+ blockers: preview.blockers.length,
60
+ },
61
+ });
62
+ return sendJson(res, 200, { ok: true, data: preview });
63
+ }
64
+ function emitPreviewDenial(audit, status, reasonCode, identity) {
65
+ return audit.emit({
66
+ eventType: 'billing.migration.preview.read',
67
+ org: 'platform',
68
+ decision: 'deny',
69
+ status,
70
+ reasonCode,
71
+ ...(identity !== undefined
72
+ ? { actorSubject: identity.subject, actorEmail: identity.email }
73
+ : {}),
74
+ });
75
+ }
76
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/routes/billing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /** Dispatch for commercial-plan administration and the operator-only billing migration preview. */
2
+ import type { IncomingMessage, ServerResponse } from 'node:http';
3
+ import type { Logger, TlsPosture } from '@noodle-borg/transport-http';
4
+ import type { DeployAuthGate } from '../auth/deploy-gate.js';
5
+ import type { CommercialPlanCatalog } from '../commercial-plans.js';
6
+ import type { PolicyAssignmentStore } from '../policy.js';
7
+ import type { ServerRegistry } from '../registry.js';
8
+ import type { AuditSink } from '../store/audit.js';
9
+ import type { ControlPlaneStore } from '../store.js';
10
+ export interface CommercialDispatchDeps {
11
+ readonly gate: DeployAuthGate;
12
+ readonly controlPlane: ControlPlaneStore;
13
+ readonly registry: ServerRegistry;
14
+ readonly logger: Logger;
15
+ readonly policyStore?: PolicyAssignmentStore;
16
+ readonly audit: AuditSink;
17
+ readonly maxBody: number;
18
+ readonly catalog: CommercialPlanCatalog;
19
+ readonly applySecurityHeaders: (res: ServerResponse, tls: TlsPosture) => void;
20
+ readonly enforceHttps: (req: IncomingMessage, res: ServerResponse, tls: TlsPosture) => boolean;
21
+ readonly sendJson: (res: ServerResponse, status: number, body: unknown) => void;
22
+ readonly tls: TlsPosture;
23
+ }
24
+ export declare function dispatchCommercialRoutes(req: IncomingMessage, res: ServerResponse, url: URL, deps: CommercialDispatchDeps): boolean;
25
+ //# sourceMappingURL=commercial-dispatch.d.ts.map