@noodleseed/one 0.57.0 → 0.58.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 (28) hide show
  1. package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.d.ts +6 -0
  2. package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.d.ts.map +1 -1
  3. package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.js.map +1 -1
  4. package/node_modules/@noodle-borg/service/dist/billing/overage-window-closure.d.ts +45 -0
  5. package/node_modules/@noodle-borg/service/dist/billing/overage-window-closure.d.ts.map +1 -0
  6. package/node_modules/@noodle-borg/service/dist/billing/overage-window-closure.js +175 -0
  7. package/node_modules/@noodle-borg/service/dist/billing/overage-window-closure.js.map +1 -0
  8. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission-ledger.d.ts.map +1 -1
  9. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission-ledger.js +17 -0
  10. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission-ledger.js.map +1 -1
  11. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.d.ts.map +1 -1
  12. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.js +8 -0
  13. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.js.map +1 -1
  14. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.d.ts.map +1 -1
  15. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.js +10 -0
  16. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.js.map +1 -1
  17. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.d.ts.map +1 -1
  18. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js +2 -0
  19. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js.map +1 -1
  20. package/node_modules/@noodle-borg/service/dist/billing/postgres-overage-evidence-schema.d.ts +4 -0
  21. package/node_modules/@noodle-borg/service/dist/billing/postgres-overage-evidence-schema.d.ts.map +1 -0
  22. package/node_modules/@noodle-borg/service/dist/billing/postgres-overage-evidence-schema.js +94 -0
  23. package/node_modules/@noodle-borg/service/dist/billing/postgres-overage-evidence-schema.js.map +1 -0
  24. package/node_modules/@noodle-borg/service/dist/billing/postgres-overage-window-close.d.ts +10 -0
  25. package/node_modules/@noodle-borg/service/dist/billing/postgres-overage-window-close.d.ts.map +1 -0
  26. package/node_modules/@noodle-borg/service/dist/billing/postgres-overage-window-close.js +204 -0
  27. package/node_modules/@noodle-borg/service/dist/billing/postgres-overage-window-close.js.map +1 -0
  28. package/package.json +1 -1
@@ -4,6 +4,12 @@ export interface BillingMeterValidationRuntimeConfig {
4
4
  readonly writerHeartbeatIntervalMs?: number;
5
5
  /** Test-only cadence override; production uses the exported five-minute scheduler interval. */
6
6
  readonly schedulerIntervalMs?: number;
7
+ /** Test-only pool-acquisition bound for Postgres suites running under shared database load. */
8
+ readonly writerConnectionTimeoutMs?: number;
9
+ /** Test-only lifecycle-lock bound for Postgres suites whose schemas share advisory locks. */
10
+ readonly writerLockTimeoutMs?: number;
11
+ /** Test-only statement bound for Postgres suites whose schemas share advisory locks. */
12
+ readonly writerStatementTimeoutMs?: number;
7
13
  }
8
14
  export declare function resolveBillingMeterValidationRuntimeConfig(env: Readonly<Record<string, string | undefined>>): BillingMeterValidationRuntimeConfig | undefined;
9
15
  //# sourceMappingURL=meter-runtime-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meter-runtime-config.d.ts","sourceRoot":"","sources":["../../src/billing/meter-runtime-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAClC,0FAA0F;IAC1F,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,+FAA+F;IAC/F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,wBAAgB,0CAA0C,CACxD,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAChD,mCAAmC,GAAG,SAAS,CAmBjD"}
1
+ {"version":3,"file":"meter-runtime-config.d.ts","sourceRoot":"","sources":["../../src/billing/meter-runtime-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAClC,0FAA0F;IAC1F,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,+FAA+F;IAC/F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,+FAA+F;IAC/F,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,6FAA6F;IAC7F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,wFAAwF;IACxF,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAC5C;AAED,wBAAgB,0CAA0C,CACxD,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAChD,mCAAmC,GAAG,SAAS,CAmBjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"meter-runtime-config.js","sourceRoot":"","sources":["../../src/billing/meter-runtime-config.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,0CAA0C,CACxD,GAAiD;IAEjD,MAAM,OAAO,GAAG,oBAAoB,CAClC,yCAAyC,EACzC,GAAG,CAAC,uCAAuC,CAC5C,CAAC;IACF,MAAM,kBAAkB,GAAG,oBAAoB,CAC7C,2CAA2C,EAC3C,GAAG,CAAC,yCAAyC,CAC9C,CAAC;IACF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAyB;IACnE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"meter-runtime-config.js","sourceRoot":"","sources":["../../src/billing/meter-runtime-config.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,0CAA0C,CACxD,GAAiD;IAEjD,MAAM,OAAO,GAAG,oBAAoB,CAClC,yCAAyC,EACzC,GAAG,CAAC,uCAAuC,CAC5C,CAAC;IACF,MAAM,kBAAkB,GAAG,oBAAoB,CAC7C,2CAA2C,EAC3C,GAAG,CAAC,yCAAyC,CAC9C,CAAC;IACF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAyB;IACnE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,45 @@
1
+ export declare const BILLING_OVERAGE_WINDOW_CLOSURE_SCHEMA_VERSION: 1;
2
+ export interface BillingOverageWindowSource {
3
+ readonly snapshotId: string;
4
+ readonly snapshotVersion: number;
5
+ readonly subscriptionId: string;
6
+ readonly subscriptionVersion: number;
7
+ readonly overageCalls: string;
8
+ }
9
+ export interface BillingOverageWindowClosure {
10
+ readonly schemaVersion: 1;
11
+ readonly closureId: string;
12
+ readonly epochId: string;
13
+ readonly billingAccountId: string;
14
+ readonly windowStart: string;
15
+ readonly windowEnd: string;
16
+ readonly reconciliationRunId: string;
17
+ readonly policyKind: 'started-blocks';
18
+ readonly overageCalls: string;
19
+ readonly blockCalls: 1_000_000;
20
+ readonly blockAmountMinor: 500;
21
+ readonly currency: 'usd';
22
+ readonly rounding: 'up';
23
+ readonly billableBlocks: string;
24
+ readonly amountMinor: string;
25
+ readonly sources: readonly BillingOverageWindowSource[];
26
+ readonly sourceChecksum: string;
27
+ readonly closedAt: string;
28
+ readonly contentChecksum: string;
29
+ }
30
+ export interface CreateBillingOverageWindowClosureInput {
31
+ readonly closureId: string;
32
+ readonly epochId: string;
33
+ readonly billingAccountId: string;
34
+ readonly windowStart: string;
35
+ readonly windowEnd: string;
36
+ readonly reconciliationRunId: string;
37
+ readonly overageCalls: bigint;
38
+ readonly sources: readonly BillingOverageWindowSource[];
39
+ readonly closedAt: string;
40
+ }
41
+ /** Create the provider-neutral, immutable amount owed for one closed account usage window. */
42
+ export declare function createBillingOverageWindowClosure(input: CreateBillingOverageWindowClosureInput): BillingOverageWindowClosure;
43
+ /** Parse durable evidence and reject any noncanonical or recomputed field. */
44
+ export declare function parseBillingOverageWindowClosure(value: unknown): BillingOverageWindowClosure;
45
+ //# sourceMappingURL=overage-window-closure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overage-window-closure.d.ts","sourceRoot":"","sources":["../../src/billing/overage-window-closure.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6CAA6C,EAAG,CAAU,CAAC;AAExE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,8FAA8F;AAC9F,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,sCAAsC,GAC5C,2BAA2B,CA4C7B;AAED,8EAA8E;AAC9E,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CAmC5F"}
@@ -0,0 +1,175 @@
1
+ import { billingContentChecksum, validateBillingAccountId } from './model.js';
2
+ import { BILLING_STARTED_OVERAGE_POLICY, calculateBillableOverage } from './paid-plan-catalog.js';
3
+ import { validateBillingSubscriptionId } from './subscription-model.js';
4
+ export const BILLING_OVERAGE_WINDOW_CLOSURE_SCHEMA_VERSION = 1;
5
+ /** Create the provider-neutral, immutable amount owed for one closed account usage window. */
6
+ export function createBillingOverageWindowClosure(input) {
7
+ const closureId = prefixedUuid('billing overage closure id', input.closureId, 'boc');
8
+ const epochId = scalar('billing meter epoch id', input.epochId);
9
+ const billingAccountId = validateBillingAccountId(input.billingAccountId);
10
+ const windowStart = instant('billing overage window start', input.windowStart);
11
+ const windowEnd = instant('billing overage window end', input.windowEnd);
12
+ const closedAt = instant('billing overage closure time', input.closedAt);
13
+ if (windowEnd <= windowStart || closedAt < windowStart) {
14
+ throw new Error('billing overage closure timing is invalid');
15
+ }
16
+ if (input.overageCalls <= 0n) {
17
+ throw new Error('billing overage closure requires positive overage usage');
18
+ }
19
+ const sources = normalizeSources(input.sources);
20
+ const sourceOverageCalls = sources.reduce((total, source) => total + BigInt(source.overageCalls), 0n);
21
+ if (sourceOverageCalls !== input.overageCalls) {
22
+ throw new Error('billing overage closure source usage does not match account usage');
23
+ }
24
+ const billable = calculateBillableOverage(input.overageCalls, BILLING_STARTED_OVERAGE_POLICY);
25
+ const sourceChecksum = billingContentChecksum(sources);
26
+ const content = {
27
+ schemaVersion: BILLING_OVERAGE_WINDOW_CLOSURE_SCHEMA_VERSION,
28
+ closureId,
29
+ epochId,
30
+ billingAccountId,
31
+ windowStart,
32
+ windowEnd,
33
+ reconciliationRunId: scalar('billing meter reconciliation run id', input.reconciliationRunId),
34
+ policyKind: BILLING_STARTED_OVERAGE_POLICY.kind,
35
+ overageCalls: billable.overageCalls.toString(),
36
+ blockCalls: BILLING_STARTED_OVERAGE_POLICY.blockCalls,
37
+ blockAmountMinor: BILLING_STARTED_OVERAGE_POLICY.blockAmountMinor,
38
+ currency: billable.currency,
39
+ rounding: BILLING_STARTED_OVERAGE_POLICY.rounding,
40
+ billableBlocks: billable.billableBlocks.toString(),
41
+ amountMinor: billable.amountMinor.toString(),
42
+ sources,
43
+ sourceChecksum,
44
+ closedAt,
45
+ };
46
+ return Object.freeze({ ...content, contentChecksum: billingContentChecksum(content) });
47
+ }
48
+ /** Parse durable evidence and reject any noncanonical or recomputed field. */
49
+ export function parseBillingOverageWindowClosure(value) {
50
+ const input = record('billing overage window closure', value);
51
+ if (input.schemaVersion !== BILLING_OVERAGE_WINDOW_CLOSURE_SCHEMA_VERSION) {
52
+ throw new Error('billing overage window closure schema is invalid');
53
+ }
54
+ const overageCalls = positiveBigInt('billing overage calls', string(input, 'overageCalls'));
55
+ const sources = array(input, 'sources').map((source) => parseSource(source));
56
+ const closure = createBillingOverageWindowClosure({
57
+ closureId: string(input, 'closureId'),
58
+ epochId: string(input, 'epochId'),
59
+ billingAccountId: string(input, 'billingAccountId'),
60
+ windowStart: string(input, 'windowStart'),
61
+ windowEnd: string(input, 'windowEnd'),
62
+ reconciliationRunId: string(input, 'reconciliationRunId'),
63
+ overageCalls,
64
+ sources,
65
+ closedAt: string(input, 'closedAt'),
66
+ });
67
+ if (input.policyKind !== closure.policyKind ||
68
+ input.blockCalls !== closure.blockCalls ||
69
+ input.blockAmountMinor !== closure.blockAmountMinor ||
70
+ input.currency !== closure.currency ||
71
+ input.rounding !== closure.rounding ||
72
+ input.billableBlocks !== closure.billableBlocks ||
73
+ input.amountMinor !== closure.amountMinor ||
74
+ input.sourceChecksum !== closure.sourceChecksum ||
75
+ JSON.stringify(sources) !== JSON.stringify(closure.sources)) {
76
+ throw new Error('billing overage window closure derived values are invalid');
77
+ }
78
+ if (input.contentChecksum !== closure.contentChecksum) {
79
+ throw new Error('billing overage window closure content checksum is invalid');
80
+ }
81
+ return closure;
82
+ }
83
+ function normalizeSources(input) {
84
+ if (input.length === 0) {
85
+ throw new Error('billing overage closure requires paid source provenance');
86
+ }
87
+ const sources = input.map((source) => normalizeSource(source)).sort(compareSources);
88
+ for (let index = 1; index < sources.length; index += 1) {
89
+ if (compareSources(sources[index - 1], sources[index]) === 0) {
90
+ throw new Error('billing overage closure requires unique paid provenance');
91
+ }
92
+ }
93
+ return Object.freeze(sources);
94
+ }
95
+ function normalizeSource(source) {
96
+ return Object.freeze({
97
+ snapshotId: prefixedUuid('billing entitlement snapshot id', source.snapshotId, 'es'),
98
+ snapshotVersion: positiveInteger('billing entitlement snapshot version', source.snapshotVersion),
99
+ subscriptionId: validateBillingSubscriptionId(source.subscriptionId),
100
+ subscriptionVersion: positiveInteger('billing subscription version', source.subscriptionVersion),
101
+ overageCalls: positiveBigInt('billing source overage calls', source.overageCalls).toString(),
102
+ });
103
+ }
104
+ function parseSource(value) {
105
+ const input = record('billing overage window source', value);
106
+ return normalizeSource({
107
+ snapshotId: string(input, 'snapshotId'),
108
+ snapshotVersion: number(input, 'snapshotVersion'),
109
+ subscriptionId: string(input, 'subscriptionId'),
110
+ subscriptionVersion: number(input, 'subscriptionVersion'),
111
+ overageCalls: string(input, 'overageCalls'),
112
+ });
113
+ }
114
+ function compareSources(left, right) {
115
+ return (left.snapshotVersion - right.snapshotVersion ||
116
+ left.snapshotId.localeCompare(right.snapshotId) ||
117
+ left.subscriptionVersion - right.subscriptionVersion ||
118
+ left.subscriptionId.localeCompare(right.subscriptionId));
119
+ }
120
+ function prefixedUuid(name, value, prefix) {
121
+ if (!new RegExp(`^${prefix}_[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$`).test(value)) {
122
+ throw new Error(`${name} is invalid`);
123
+ }
124
+ return value;
125
+ }
126
+ function instant(name, value) {
127
+ const parsed = new Date(value);
128
+ if (!Number.isFinite(parsed.getTime()))
129
+ throw new Error(`${name} must be an ISO-8601 instant`);
130
+ return parsed.toISOString();
131
+ }
132
+ function scalar(name, value) {
133
+ const normalized = value.trim();
134
+ if (normalized.length === 0 ||
135
+ normalized.length > 512 ||
136
+ [...normalized].some((character) => character.charCodeAt(0) <= 0x1f)) {
137
+ throw new Error(`${name} must be a scalar identifier`);
138
+ }
139
+ return normalized;
140
+ }
141
+ function positiveBigInt(name, value) {
142
+ if (!/^[1-9][0-9]*$/.test(value))
143
+ throw new Error(`${name} must be positive`);
144
+ return BigInt(value);
145
+ }
146
+ function positiveInteger(name, value) {
147
+ if (!Number.isSafeInteger(value) || value < 1)
148
+ throw new Error(`${name} must be positive`);
149
+ return value;
150
+ }
151
+ function record(name, value) {
152
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
153
+ throw new Error(`${name} must be an object`);
154
+ }
155
+ return value;
156
+ }
157
+ function string(input, key) {
158
+ const value = input[key];
159
+ if (typeof value !== 'string')
160
+ throw new Error(`billing overage ${key} must be a string`);
161
+ return value;
162
+ }
163
+ function number(input, key) {
164
+ const value = input[key];
165
+ if (typeof value !== 'number')
166
+ throw new Error(`billing overage ${key} must be a number`);
167
+ return value;
168
+ }
169
+ function array(input, key) {
170
+ const value = input[key];
171
+ if (!Array.isArray(value))
172
+ throw new Error(`billing overage ${key} must be an array`);
173
+ return value;
174
+ }
175
+ //# sourceMappingURL=overage-window-closure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overage-window-closure.js","sourceRoot":"","sources":["../../src/billing/overage-window-closure.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-admission-ledger.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-admission-ledger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EACL,KAAK,kCAAkC,EAGxC,MAAM,8BAA8B,CAAC;AAOtC,UAAU,8BAA8B;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AASD,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,kCAAkC,CAAC;CACpD,GACA,OAAO,CACR;IAAE,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAC1F,CAuBA;AAUD,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACA,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,kCAAkC,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,8BAA8B,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACA,OAAO,CAAC,IAAI,CAAC,CA6Ef"}
1
+ {"version":3,"file":"postgres-meter-admission-ledger.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-admission-ledger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EACL,KAAK,kCAAkC,EAGxC,MAAM,8BAA8B,CAAC;AAOtC,UAAU,8BAA8B;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AASD,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,kCAAkC,CAAC;CACpD,GACA,OAAO,CACR;IAAE,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAC1F,CAuBA;AAUD,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACA,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,kCAAkC,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,8BAA8B,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACA,OAAO,CAAC,IAAI,CAAC,CAiGf"}
@@ -74,6 +74,23 @@ export async function recordAuthoritativeAdmission(client, input) {
74
74
  input.windowEnd,
75
75
  input.recordedAt,
76
76
  ]);
77
+ if (input.classification === 'overage') {
78
+ await client.query(`INSERT INTO billing_meter_account_window_overage_sources
79
+ (epoch_id, billing_account_id, window_start, window_end, snapshot_id, snapshot_version,
80
+ overage_calls)
81
+ VALUES ($1, $2, $3, $4, $5, $6, 1)
82
+ ON CONFLICT
83
+ (epoch_id, billing_account_id, window_start, window_end, snapshot_id, snapshot_version)
84
+ DO UPDATE SET overage_calls =
85
+ billing_meter_account_window_overage_sources.overage_calls + 1`, [
86
+ input.epochId,
87
+ input.attribution.billing_account_id,
88
+ input.windowStart,
89
+ input.windowEnd,
90
+ input.attribution.snapshot_id,
91
+ input.attribution.snapshot_version,
92
+ ]);
93
+ }
77
94
  if (input.input.identity.highConfidenceKeyHash !== undefined) {
78
95
  await client.query(`INSERT INTO billing_meter_exact_key_tombstones
79
96
  (epoch_id, key_hash, semantic_fingerprint, event_id, classification, window_end,
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-admission-ledger.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-admission-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-meter-admission-ledger.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-admission-ledger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-reconciliation.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-reconciliation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAW3C,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,YAAY,GAAG,eAAe,CAAC;IAC1D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,6FAA6F;AAC7F,qBAAa,iCAAkC,SAAQ,KAAK;gBAC9C,KAAK,EAAE,OAAO;CAI3B;AAED,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAsBD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,gCAAgC,CAAC,CAW3C;AAED,sGAAsG;AACtG,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,gCAAgC,CAAC,CA2I3C"}
1
+ {"version":3,"file":"postgres-meter-reconciliation.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-reconciliation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAY3C,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,YAAY,GAAG,eAAe,CAAC;IAC1D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,6FAA6F;AAC7F,qBAAa,iCAAkC,SAAQ,KAAK;gBAC9C,KAAK,EAAE,OAAO;CAI3B;AAED,UAAU,sBAAsB;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAsBD,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,gCAAgC,CAAC,CAW3C;AAED,sGAAsG;AACtG,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,gCAAgC,CAAC,CAkJ3C"}
@@ -1,6 +1,7 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { readBillingMeterTransactionTime } from './postgres-meter-clock.js';
3
3
  import { BILLING_METER_CLEAN_WINDOW_RECONCILIATION_INTERVAL_MS, BILLING_METER_FAILED_WINDOW_RECONCILIATION_DELAY_MS, BILLING_METER_INTEGRITY_MODULUS, billingMeterWindowLockKey, } from './postgres-meter-window-lock.js';
4
+ import { closeBillingOverageWindow } from './postgres-overage-window-close.js';
4
5
  import { validateScalarId } from './postgres-records.js';
5
6
  import { normalizeBillingUsageInstant } from './usage-window.js';
6
7
  /** The session cannot be returned to a pool because advisory-lock ownership is uncertain. */
@@ -111,6 +112,13 @@ export async function reconcileBillingMeterWindowOnClient(client, input) {
111
112
  }
112
113
  }
113
114
  if (sealed) {
115
+ await closeBillingOverageWindow(client, {
116
+ epochId: identity.epochId,
117
+ windowStart: identity.windowStart,
118
+ windowEnd: identity.windowEnd,
119
+ reconciliationRunId: runId,
120
+ closedAt: checkedAt,
121
+ });
114
122
  const sealedWindow = await client.query(`UPDATE billing_meter_windows
115
123
  SET sealed_at = $4
116
124
  WHERE epoch_id = $1 AND window_start = $2 AND window_end = $3
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-reconciliation.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-reconciliation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-meter-reconciliation.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-reconciliation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-runtime.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAU/B,OAAO,EAEL,KAAK,kCAAkC,EACxC,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAEL,KAAK,+BAA+B,EAGrC,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,cAAc,EAAE,kCAAkC,CAAC;IAC5D,QAAQ,CAAC,oBAAoB,EAAE,gCAAgC,CAAC;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IACzC,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE;IAC7D,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,mCAAmC,CAAC;IAC1D,6FAA6F;IAC7F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,+BAA+B,CAAC;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CA2DvC;AA0FD,wBAAgB,6CAA6C,CAAC,KAAK,EAAE;IACnE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,mCAAmC,CAAC;CAC3D,GAAG,kCAAkC,GAAG,SAAS,CAmBjD"}
1
+ {"version":3,"file":"postgres-meter-runtime.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAU/B,OAAO,EAEL,KAAK,kCAAkC,EACxC,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAEL,KAAK,+BAA+B,EAGrC,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,cAAc,EAAE,kCAAkC,CAAC;IAC5D,QAAQ,CAAC,oBAAoB,EAAE,gCAAgC,CAAC;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IACzC,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE;IAC7D,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,mCAAmC,CAAC;IAC1D,6FAA6F;IAC7F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,+BAA+B,CAAC;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAyEvC;AA0FD,wBAAgB,6CAA6C,CAAC,KAAK,EAAE;IACnE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,mCAAmC,CAAC;CAC3D,GAAG,kCAAkC,GAAG,SAAS,CAmBjD"}
@@ -39,6 +39,16 @@ export async function createPostgresBillingMeterRuntime(input) {
39
39
  keyGeneration: expectation.keyGeneration,
40
40
  retryIdentityVersion: expectation.retryIdentityVersion,
41
41
  writerContractVersion: expectation.writerContractVersion,
42
+ }, {
43
+ ...(input.validation.writerConnectionTimeoutMs === undefined
44
+ ? {}
45
+ : { connectionTimeoutMs: input.validation.writerConnectionTimeoutMs }),
46
+ ...(input.validation.writerLockTimeoutMs === undefined
47
+ ? {}
48
+ : { lockTimeoutMs: input.validation.writerLockTimeoutMs }),
49
+ ...(input.validation.writerStatementTimeoutMs === undefined
50
+ ? {}
51
+ : { statementTimeoutMs: input.validation.writerStatementTimeoutMs }),
42
52
  });
43
53
  const mirror = createBillingMeterValidationMirror({
44
54
  hmacKey: input.billingUsageHmacKey,
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-runtime.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-meter-runtime.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-schema.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAc3C,uGAAuG;AACvG,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAma9E;AAED,wBAAsB,kCAAkC,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/F;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAK7D"}
1
+ {"version":3,"file":"postgres-meter-schema.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAe3C,uGAAuG;AACvG,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoa9E;AAED,wBAAsB,kCAAkC,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/F;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAK7D"}
@@ -1,6 +1,7 @@
1
1
  import { BILLING_METER_AGGREGATE_RETENTION_MONTHS, BILLING_METER_EXACT_KEY_TOMBSTONE_RETENTION_DAYS, BILLING_METER_PARTITION_HORIZON_MONTHS, BILLING_METER_READINESS_SCHEMA_VERSION, BILLING_METER_RECEIPT_RETENTION_DAYS, } from './meter-readiness.js';
2
2
  import { readBillingMeterTransactionTime } from './postgres-meter-clock.js';
3
3
  import { ensureBillingMeterReceiptIntegritySchema, ensureBillingMeterWindowRegistrySchema, } from './postgres-meter-window-schema.js';
4
+ import { ensureBillingOverageEvidenceSchema } from './postgres-overage-evidence-schema.js';
4
5
  /** Additive, inactive storage for validation and readiness evidence. Never activates a meter epoch. */
5
6
  export async function ensureAuthoritativeMeterSchema(pool) {
6
7
  await pool.query(`
@@ -417,6 +418,7 @@ export async function ensureAuthoritativeMeterSchema(pool) {
417
418
  epoch.reconciliation_failed_at > historical.failed_at
418
419
  )
419
420
  `);
421
+ await ensureBillingOverageEvidenceSchema(pool);
420
422
  await ensureAuthoritativeMeterPartitions(pool);
421
423
  }
422
424
  export async function ensureAuthoritativeMeterPartitions(pool) {
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-schema.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-meter-schema.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Pool } from 'pg';
2
+ /** Additive provider-neutral evidence used by later invoice settlement. */
3
+ export declare function ensureBillingOverageEvidenceSchema(pool: Pool): Promise<void>;
4
+ //# sourceMappingURL=postgres-overage-evidence-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-overage-evidence-schema.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-overage-evidence-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,2EAA2E;AAC3E,wBAAsB,kCAAkC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FlF"}
@@ -0,0 +1,94 @@
1
+ /** Additive provider-neutral evidence used by later invoice settlement. */
2
+ export async function ensureBillingOverageEvidenceSchema(pool) {
3
+ await pool.query(`
4
+ CREATE TABLE IF NOT EXISTS billing_meter_account_window_overage_sources (
5
+ epoch_id text NOT NULL REFERENCES billing_meter_epochs(id) ON DELETE RESTRICT,
6
+ billing_account_id text NOT NULL REFERENCES billing_accounts(id) ON DELETE RESTRICT,
7
+ window_start timestamptz NOT NULL,
8
+ window_end timestamptz NOT NULL CHECK (window_end > window_start),
9
+ snapshot_id text NOT NULL,
10
+ snapshot_version integer NOT NULL CHECK (snapshot_version > 0),
11
+ overage_calls bigint NOT NULL CHECK (overage_calls > 0),
12
+ PRIMARY KEY (
13
+ epoch_id, billing_account_id, window_start, window_end, snapshot_id, snapshot_version
14
+ ),
15
+ FOREIGN KEY (epoch_id, window_start, window_end)
16
+ REFERENCES billing_meter_windows(epoch_id, window_start, window_end) ON DELETE CASCADE,
17
+ FOREIGN KEY (billing_account_id, snapshot_id)
18
+ REFERENCES billing_entitlement_snapshots(billing_account_id, id) ON DELETE RESTRICT
19
+ )
20
+ `);
21
+ await pool.query(`
22
+ CREATE INDEX IF NOT EXISTS billing_meter_account_window_overage_sources_close_idx
23
+ ON billing_meter_account_window_overage_sources
24
+ (epoch_id, window_start, window_end, billing_account_id)
25
+ `);
26
+ await pool.query(`
27
+ INSERT INTO billing_meter_account_window_overage_sources
28
+ (epoch_id, billing_account_id, window_start, window_end, snapshot_id, snapshot_version,
29
+ overage_calls)
30
+ SELECT receipt.epoch_id, receipt.billing_account_id, receipt.window_start,
31
+ receipt.window_end, receipt.snapshot_id, receipt.snapshot_version, count(*)::bigint
32
+ FROM billing_meter_usage_events AS receipt
33
+ JOIN billing_meter_epochs AS epoch ON epoch.id = receipt.epoch_id
34
+ WHERE receipt.mode = 'authoritative'
35
+ AND receipt.classification = 'overage'
36
+ AND epoch.purpose = 'authoritative'
37
+ AND epoch.admission_contract_version = 2
38
+ GROUP BY receipt.epoch_id, receipt.billing_account_id, receipt.window_start,
39
+ receipt.window_end, receipt.snapshot_id, receipt.snapshot_version
40
+ ON CONFLICT DO NOTHING
41
+ `);
42
+ await pool.query(`
43
+ CREATE TABLE IF NOT EXISTS billing_overage_window_closures (
44
+ closure_id text PRIMARY KEY CHECK (
45
+ closure_id ~ '^boc_[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'
46
+ ),
47
+ schema_version integer NOT NULL CHECK (schema_version = 1),
48
+ epoch_id text NOT NULL REFERENCES billing_meter_epochs(id) ON DELETE RESTRICT,
49
+ billing_account_id text NOT NULL REFERENCES billing_accounts(id) ON DELETE RESTRICT,
50
+ window_start timestamptz NOT NULL,
51
+ window_end timestamptz NOT NULL CHECK (window_end > window_start),
52
+ reconciliation_run_id text NOT NULL,
53
+ policy_kind text NOT NULL CHECK (policy_kind = 'started-blocks'),
54
+ overage_calls bigint NOT NULL CHECK (overage_calls > 0),
55
+ block_calls integer NOT NULL CHECK (block_calls = 1000000),
56
+ block_amount_minor integer NOT NULL CHECK (block_amount_minor = 500),
57
+ currency text NOT NULL CHECK (currency = 'usd'),
58
+ rounding text NOT NULL CHECK (rounding = 'up'),
59
+ billable_blocks bigint NOT NULL CHECK (billable_blocks > 0),
60
+ amount_minor bigint NOT NULL CHECK (amount_minor > 0),
61
+ sources jsonb NOT NULL CHECK (
62
+ jsonb_typeof(sources) = 'array' AND jsonb_array_length(sources) > 0
63
+ ),
64
+ source_checksum text NOT NULL CHECK (source_checksum ~ '^[0-9a-f]{64}$'),
65
+ closed_at timestamptz NOT NULL CHECK (closed_at >= window_start),
66
+ content_checksum text NOT NULL CHECK (content_checksum ~ '^[0-9a-f]{64}$'),
67
+ UNIQUE (epoch_id, billing_account_id, window_start, window_end),
68
+ CHECK (billable_blocks = ((overage_calls - 1) / block_calls) + 1),
69
+ CHECK (amount_minor = billable_blocks * block_amount_minor)
70
+ )
71
+ `);
72
+ await pool.query(`
73
+ CREATE INDEX IF NOT EXISTS billing_overage_window_closures_account_idx
74
+ ON billing_overage_window_closures (billing_account_id, closed_at, closure_id)
75
+ `);
76
+ await pool.query(`
77
+ CREATE OR REPLACE FUNCTION billing_overage_window_closure_immutable()
78
+ RETURNS trigger AS $$
79
+ BEGIN
80
+ RAISE EXCEPTION 'billing overage window closure evidence is immutable';
81
+ END
82
+ $$ LANGUAGE plpgsql
83
+ `);
84
+ await pool.query(`
85
+ DROP TRIGGER IF EXISTS billing_overage_window_closure_immutable
86
+ ON billing_overage_window_closures
87
+ `);
88
+ await pool.query(`
89
+ CREATE TRIGGER billing_overage_window_closure_immutable
90
+ BEFORE UPDATE OR DELETE ON billing_overage_window_closures
91
+ FOR EACH ROW EXECUTE FUNCTION billing_overage_window_closure_immutable()
92
+ `);
93
+ }
94
+ //# sourceMappingURL=postgres-overage-evidence-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-overage-evidence-schema.js","sourceRoot":"","sources":["../../src/billing/postgres-overage-evidence-schema.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAAC,IAAU;IACjE,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;GAiBhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;GAIhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;GAehB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;GAOhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;GAIhB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PoolClient } from 'pg';
2
+ /** Persist positive paid-v2 account closures inside the final meter-seal transaction. */
3
+ export declare function closeBillingOverageWindow(client: PoolClient, input: {
4
+ readonly epochId: string;
5
+ readonly windowStart: string;
6
+ readonly windowEnd: string;
7
+ readonly reconciliationRunId: string;
8
+ readonly closedAt: string;
9
+ }): Promise<number>;
10
+ //# sourceMappingURL=postgres-overage-window-close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-overage-window-close.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-overage-window-close.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AA0CrC,yFAAyF;AACzF,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,MAAM,CAAC,CA+IjB"}
@@ -0,0 +1,204 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { createBillingOverageWindowClosure, } from './overage-window-closure.js';
3
+ import { entitlementSnapshotRowToRecord } from './postgres-records.js';
4
+ /** Persist positive paid-v2 account closures inside the final meter-seal transaction. */
5
+ export async function closeBillingOverageWindow(client, input) {
6
+ const epoch = await client.query(`SELECT purpose, admission_contract_version
7
+ FROM billing_meter_epochs
8
+ WHERE id = $1`, [input.epochId]);
9
+ const authority = epoch.rows[0];
10
+ if (authority?.purpose !== 'authoritative' || authority.admission_contract_version !== 2) {
11
+ return 0;
12
+ }
13
+ const result = await client.query(`SELECT account.billing_account_id,
14
+ account.overage_calls::text AS account_overage_calls,
15
+ source.snapshot_id,
16
+ source.snapshot_version,
17
+ source.overage_calls::text AS source_overage_calls,
18
+ snapshot.plan_version_id,
19
+ plan.plan_code,
20
+ plan.version AS plan_version,
21
+ plan.effective_from AS plan_effective_from,
22
+ plan.entitlements AS plan_entitlements,
23
+ plan.content_checksum AS plan_content_checksum,
24
+ plan.created_at AS plan_created_at,
25
+ snapshot.version AS persisted_snapshot_version,
26
+ snapshot.schema_version AS snapshot_schema_version,
27
+ snapshot.source_kind,
28
+ snapshot.generation_reason,
29
+ snapshot.verification_status,
30
+ snapshot.effective_from,
31
+ snapshot.effective_until,
32
+ snapshot.monthly_usage_anchor,
33
+ snapshot.entitlements,
34
+ snapshot.content_checksum AS snapshot_content_checksum,
35
+ snapshot.source_subscription_id,
36
+ snapshot.source_subscription_version,
37
+ snapshot.verified_at,
38
+ snapshot.created_at AS snapshot_created_at
39
+ FROM billing_meter_account_windows AS account
40
+ LEFT JOIN billing_meter_account_window_overage_sources AS source
41
+ ON source.epoch_id = account.epoch_id
42
+ AND source.billing_account_id = account.billing_account_id
43
+ AND source.window_start = account.window_start
44
+ AND source.window_end = account.window_end
45
+ LEFT JOIN billing_entitlement_snapshots AS snapshot
46
+ ON snapshot.billing_account_id = source.billing_account_id
47
+ AND snapshot.id = source.snapshot_id
48
+ LEFT JOIN billing_plan_versions AS plan ON plan.id = snapshot.plan_version_id
49
+ WHERE account.epoch_id = $1
50
+ AND account.window_start = $2
51
+ AND account.window_end = $3
52
+ AND account.overage_calls > 0
53
+ ORDER BY account.billing_account_id, source.snapshot_version, source.snapshot_id`, [input.epochId, input.windowStart, input.windowEnd]);
54
+ const accounts = new Map();
55
+ for (const row of result.rows) {
56
+ let account = accounts.get(row.billing_account_id);
57
+ const accountOverageCalls = positiveBigInt(row.account_overage_calls);
58
+ if (account === undefined) {
59
+ account = {
60
+ billingAccountId: row.billing_account_id,
61
+ overageCalls: accountOverageCalls,
62
+ sources: [],
63
+ };
64
+ accounts.set(row.billing_account_id, account);
65
+ }
66
+ else if (account.overageCalls !== accountOverageCalls) {
67
+ throw new Error('billing overage account counter changed during window closure');
68
+ }
69
+ if (row.snapshot_id === null ||
70
+ row.snapshot_version === null ||
71
+ row.source_overage_calls === null) {
72
+ throw new Error('billing overage closure requires compact paid source provenance');
73
+ }
74
+ const snapshot = parsePaidSourceSnapshot(row);
75
+ if (snapshot === undefined || snapshot.id !== row.snapshot_id) {
76
+ throw new Error('billing overage closure requires canonical paid source provenance');
77
+ }
78
+ account.sources.push({
79
+ snapshotId: row.snapshot_id,
80
+ snapshotVersion: row.snapshot_version,
81
+ subscriptionId: snapshot.sourceSubscriptionId,
82
+ subscriptionVersion: snapshot.sourceSubscriptionVersion,
83
+ overageCalls: positiveBigInt(row.source_overage_calls).toString(),
84
+ });
85
+ }
86
+ let created = 0;
87
+ for (const account of accounts.values()) {
88
+ const closure = createBillingOverageWindowClosure({
89
+ closureId: `boc_${randomUUID()}`,
90
+ epochId: input.epochId,
91
+ billingAccountId: account.billingAccountId,
92
+ windowStart: input.windowStart,
93
+ windowEnd: input.windowEnd,
94
+ reconciliationRunId: input.reconciliationRunId,
95
+ overageCalls: account.overageCalls,
96
+ sources: account.sources,
97
+ closedAt: input.closedAt,
98
+ });
99
+ const inserted = await client.query(`INSERT INTO billing_overage_window_closures
100
+ (closure_id, schema_version, epoch_id, billing_account_id, window_start, window_end,
101
+ reconciliation_run_id, policy_kind, overage_calls, block_calls, block_amount_minor,
102
+ currency, rounding, billable_blocks, amount_minor, sources, source_checksum,
103
+ closed_at, content_checksum)
104
+ VALUES
105
+ ($1, $2, $3, $4, $5, $6, $7, $8, $9::bigint, $10, $11, $12, $13,
106
+ $14::bigint, $15::bigint, $16::jsonb, $17, $18, $19)`, [
107
+ closure.closureId,
108
+ closure.schemaVersion,
109
+ closure.epochId,
110
+ closure.billingAccountId,
111
+ closure.windowStart,
112
+ closure.windowEnd,
113
+ closure.reconciliationRunId,
114
+ closure.policyKind,
115
+ closure.overageCalls,
116
+ closure.blockCalls,
117
+ closure.blockAmountMinor,
118
+ closure.currency,
119
+ closure.rounding,
120
+ closure.billableBlocks,
121
+ closure.amountMinor,
122
+ JSON.stringify(closure.sources),
123
+ closure.sourceChecksum,
124
+ closure.closedAt,
125
+ closure.contentChecksum,
126
+ ]);
127
+ if (inserted.rowCount !== 1) {
128
+ throw new Error('billing overage window closure was not persisted');
129
+ }
130
+ created += 1;
131
+ }
132
+ return created;
133
+ }
134
+ function parsePaidSourceSnapshot(row) {
135
+ if (row.snapshot_id === null ||
136
+ row.persisted_snapshot_version === null ||
137
+ row.plan_version_id === null ||
138
+ row.plan_code === null ||
139
+ row.plan_version === null ||
140
+ row.plan_effective_from === null ||
141
+ row.plan_entitlements === null ||
142
+ row.plan_content_checksum === null ||
143
+ row.plan_created_at === null ||
144
+ row.snapshot_schema_version === null ||
145
+ row.source_kind === null ||
146
+ row.generation_reason === null ||
147
+ row.verification_status === null ||
148
+ row.effective_from === null ||
149
+ row.effective_until === null ||
150
+ row.monthly_usage_anchor === null ||
151
+ row.entitlements === null ||
152
+ row.snapshot_content_checksum === null ||
153
+ row.source_subscription_id === null ||
154
+ row.source_subscription_version === null ||
155
+ row.verified_at === null ||
156
+ row.snapshot_created_at === null) {
157
+ return undefined;
158
+ }
159
+ const snapshotRow = {
160
+ id: row.snapshot_id,
161
+ billing_account_id: row.billing_account_id,
162
+ version: row.persisted_snapshot_version,
163
+ plan_version_id: row.plan_version_id,
164
+ plan_code: row.plan_code,
165
+ plan_version: row.plan_version,
166
+ plan_effective_from: row.plan_effective_from,
167
+ plan_entitlements: row.plan_entitlements,
168
+ plan_content_checksum: row.plan_content_checksum,
169
+ plan_created_at: row.plan_created_at,
170
+ schema_version: row.snapshot_schema_version,
171
+ source_kind: row.source_kind,
172
+ generation_reason: row.generation_reason,
173
+ verification_status: row.verification_status,
174
+ effective_from: row.effective_from,
175
+ effective_until: row.effective_until,
176
+ monthly_usage_anchor: row.monthly_usage_anchor,
177
+ entitlements: row.entitlements,
178
+ content_checksum: row.snapshot_content_checksum,
179
+ source_subscription_id: row.source_subscription_id,
180
+ source_subscription_version: row.source_subscription_version,
181
+ verified_at: row.verified_at,
182
+ created_at: row.snapshot_created_at,
183
+ };
184
+ try {
185
+ const snapshot = entitlementSnapshotRowToRecord(snapshotRow);
186
+ if (snapshot.schemaVersion !== 2 ||
187
+ snapshot.version !== row.snapshot_version ||
188
+ snapshot.sourceSubscriptionId !== row.source_subscription_id ||
189
+ snapshot.sourceSubscriptionVersion !== row.source_subscription_version) {
190
+ return undefined;
191
+ }
192
+ return snapshot;
193
+ }
194
+ catch {
195
+ return undefined;
196
+ }
197
+ }
198
+ function positiveBigInt(value) {
199
+ if (!/^[1-9][0-9]*$/.test(value)) {
200
+ throw new Error('billing overage counter must be positive');
201
+ }
202
+ return BigInt(value);
203
+ }
204
+ //# sourceMappingURL=postgres-overage-window-close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-overage-window-close.js","sourceRoot":"","sources":["../../src/billing/postgres-overage-window-close.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodleseed/one",
3
- "version": "0.57.0",
3
+ "version": "0.58.0",
4
4
  "private": false,
5
5
  "description": "Noodle CLI by Noodle Seed — author, run, and deploy declarative MCP servers. Embedding the assistant in your own web app is @noodleseed/assistant.",
6
6
  "license": "Apache-2.0",