@noodleseed/one 0.53.0 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/billing-enforcement-activation-ops.js +3 -0
- package/dist/commands/billing-enforcement-activation-ops.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.js +94 -0
- package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-release-config.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-release-config.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-release-config.js +2 -5
- package/node_modules/@noodle-borg/service/dist/billing/enforcement-release-config.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/integration.js +2 -5
- package/node_modules/@noodle-borg/service/dist/billing/integration.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.js +7 -0
- package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.d.ts +4 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.js +21 -7
- package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-contract-cutover.d.ts +27 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-contract-cutover.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-contract-cutover.js +284 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-contract-cutover.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js +4 -5
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.d.ts +0 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js +92 -27
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-schema.js +55 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-release-activation.d.ts +4 -7
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-release-activation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-release-activation.js +34 -4
- package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-release-activation.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.d.ts +0 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.js +72 -27
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js +56 -26
- package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.d.ts +5 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.js +97 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.d.ts +50 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.js +221 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.js +42 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.d.ts +15 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.js +123 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.js +100 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/service-enforcement-release.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/service-enforcement-release.js +4 -1
- package/node_modules/@noodle-borg/service/dist/billing/service-enforcement-release.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js +9 -1
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.d.ts +45 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.js +165 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing-public.js +2 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.js.map +1 -1
- package/package.json +1 -1
package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-contract-cutover.js
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { insertAuditEvent } from '@noodle-borg/module-audit';
|
|
3
|
+
import { BillingActiveCommercialEntitlementInconsistentError, resolveActiveBillingCommercialEntitlement, } from './active-commercial-entitlement.js';
|
|
4
|
+
import { BillingEnforcementActivationConflictError, normalizeActivationServiceUrl, } from './enforcement-activation.js';
|
|
5
|
+
import { BILLING_ENFORCEMENT_PRODUCTION_ORIGIN, } from './enforcement-release-config.js';
|
|
6
|
+
import { BILLING_METER_VALIDATION_WRITER_CONTRACT_VERSION } from './meter-validation-epoch.js';
|
|
7
|
+
import { billingContentChecksum } from './model.js';
|
|
8
|
+
import { readBillingAuthoritativeAuthorityTx } from './postgres-authoritative-authority.js';
|
|
9
|
+
import { BILLING_ENFORCEMENT_ACTIVATION_LOCK_TIMEOUT_MS, validateActivationLockTimeout, withBillingEnforcementActivationTransaction, } from './postgres-enforcement-activation-locks.js';
|
|
10
|
+
import { readPostgresBillingEnforcementActivationSignalsTx } from './postgres-enforcement-activation-preflight.js';
|
|
11
|
+
import { requireActivationState, requireActiveAuthoritativeEpoch, stateRowToStatus, validateReleaseSha, } from './postgres-enforcement-activation-support.js';
|
|
12
|
+
import { readBillingMeterTransactionTime } from './postgres-meter-clock.js';
|
|
13
|
+
const COMMERCIAL_V2_ADMISSION_CONTRACT_VERSION = 2;
|
|
14
|
+
/** Advance an already-active Free-v1 authority without replacing or resetting its authoritative epoch. */
|
|
15
|
+
export function ensurePostgresReleaseManagedPaidV2Contract(pool, options) {
|
|
16
|
+
const identity = validateTransitionIdentity(options);
|
|
17
|
+
if (options.mode !== 'paid_v2')
|
|
18
|
+
throw new Error('paid-v2 contract transition requires paid_v2 mode');
|
|
19
|
+
const lockTimeoutMs = validateActivationLockTimeout(options.lockTimeoutMs ?? BILLING_ENFORCEMENT_ACTIVATION_LOCK_TIMEOUT_MS);
|
|
20
|
+
const id = options.id ?? randomUUID;
|
|
21
|
+
return withBillingEnforcementActivationTransaction(pool, lockTimeoutMs, async (client) => {
|
|
22
|
+
const state = await requireActivationState(client, true);
|
|
23
|
+
if (state.state !== 'active') {
|
|
24
|
+
throw conflict('activation_state_conflict', 'paid-v2 contract transition requires active billing enforcement');
|
|
25
|
+
}
|
|
26
|
+
const status = stateRowToStatus(state);
|
|
27
|
+
const authority = await readBillingAuthoritativeAuthorityTx(client, {
|
|
28
|
+
keyGeneration: options.keyGeneration,
|
|
29
|
+
});
|
|
30
|
+
if (authority.state !== 'active' || authority.epochId !== status.activeEpochId) {
|
|
31
|
+
throw conflict('activation_configuration_unavailable', 'active billing enforcement authority is inconsistent');
|
|
32
|
+
}
|
|
33
|
+
const activeEpoch = await requireActiveAuthoritativeEpoch(client, status.activeEpochId);
|
|
34
|
+
if (activeEpoch.writer_contract_version !== BILLING_METER_VALIDATION_WRITER_CONTRACT_VERSION) {
|
|
35
|
+
throw conflict('activation_configuration_unavailable', 'active billing enforcement is incompatible with this release');
|
|
36
|
+
}
|
|
37
|
+
if (authority.admissionContractVersion === COMMERCIAL_V2_ADMISSION_CONTRACT_VERSION) {
|
|
38
|
+
await assertCommercialContractTransitionEvidenceTx(client, state);
|
|
39
|
+
return result(state, false);
|
|
40
|
+
}
|
|
41
|
+
const transitionedAt = await readBillingMeterTransactionTime(client);
|
|
42
|
+
await assertCanonicalEnforcedFreeStateTx(client, state, transitionedAt, identity.releaseSha);
|
|
43
|
+
const existingEvidence = await client.query('SELECT count(*)::text AS count FROM billing_commercial_contract_transitions');
|
|
44
|
+
if (existingEvidence.rows[0]?.count !== '0') {
|
|
45
|
+
throw conflict('activation_configuration_unavailable', 'billing commercial contract transition evidence is inconsistent');
|
|
46
|
+
}
|
|
47
|
+
const epochUpdate = await client.query(`UPDATE billing_meter_epochs
|
|
48
|
+
SET admission_contract_version = 2
|
|
49
|
+
WHERE id = $1 AND purpose = 'authoritative' AND state = 'active'
|
|
50
|
+
AND admission_contract_version = 1`, [status.activeEpochId]);
|
|
51
|
+
const activationUpdate = await client.query(`UPDATE billing_enforcement_activation_state
|
|
52
|
+
SET admission_contract_version = 2, updated_at = $2
|
|
53
|
+
WHERE singleton = true AND state = 'active' AND generation = $1
|
|
54
|
+
AND active_epoch_id = $3 AND admission_contract_version = 1`, [status.generation, transitionedAt, status.activeEpochId]);
|
|
55
|
+
if (epochUpdate.rowCount !== 1 || activationUpdate.rowCount !== 1) {
|
|
56
|
+
throw conflict('activation_state_conflict', 'billing commercial contract authority changed concurrently');
|
|
57
|
+
}
|
|
58
|
+
const evidence = transitionEvidence({
|
|
59
|
+
operationId: `bcct_${id()}`,
|
|
60
|
+
generation: status.generation,
|
|
61
|
+
epochId: status.activeEpochId,
|
|
62
|
+
activationServiceReleaseSha: status.activationServiceReleaseSha,
|
|
63
|
+
activationApprovalChecksum: status.approvalChecksum,
|
|
64
|
+
transitionServiceReleaseSha: identity.releaseSha,
|
|
65
|
+
systemReleaseId: options.systemReleaseId,
|
|
66
|
+
manifestChecksum: options.manifestChecksum,
|
|
67
|
+
serviceOrigin: identity.serviceOrigin,
|
|
68
|
+
transitionedAt,
|
|
69
|
+
});
|
|
70
|
+
await insertTransitionEvidence(client, evidence);
|
|
71
|
+
await insertAuditEvent(client, {
|
|
72
|
+
eventType: 'billing.enforcement.contract_upgraded',
|
|
73
|
+
org: 'platform',
|
|
74
|
+
actorSubject: 'system:production-release',
|
|
75
|
+
decision: 'allow',
|
|
76
|
+
status: 201,
|
|
77
|
+
details: {
|
|
78
|
+
source: 'system_release_boot',
|
|
79
|
+
generation: status.generation,
|
|
80
|
+
activeEpochId: status.activeEpochId,
|
|
81
|
+
fromAdmissionContractVersion: 1,
|
|
82
|
+
toAdmissionContractVersion: 2,
|
|
83
|
+
systemReleaseId: options.systemReleaseId,
|
|
84
|
+
transitionServiceReleaseSha: identity.releaseSha,
|
|
85
|
+
manifestChecksum: options.manifestChecksum,
|
|
86
|
+
transitionChecksum: evidence.transitionChecksum,
|
|
87
|
+
},
|
|
88
|
+
}, { now: () => new Date(transitionedAt) });
|
|
89
|
+
return { ...result({ ...state, admission_contract_version: 2 }, true) };
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/** A v2-compatible restart must prove the immutable release evidence that authorized the one-way change. */
|
|
93
|
+
export async function assertCommercialContractTransitionEvidenceTx(client, state) {
|
|
94
|
+
const { rows } = await client.query('SELECT * FROM billing_commercial_contract_transitions WHERE singleton = true');
|
|
95
|
+
const row = rows[0];
|
|
96
|
+
const status = stateRowToStatus(state);
|
|
97
|
+
if (row === undefined ||
|
|
98
|
+
rows.length !== 1 ||
|
|
99
|
+
status.admissionContractVersion !== 2 ||
|
|
100
|
+
row.schema_version !== 1 ||
|
|
101
|
+
row.from_admission_contract_version !== 1 ||
|
|
102
|
+
row.to_admission_contract_version !== 2 ||
|
|
103
|
+
row.generation !== status.generation ||
|
|
104
|
+
row.epoch_id !== status.lastEpochId ||
|
|
105
|
+
row.activation_service_release_sha !== status.activationServiceReleaseSha ||
|
|
106
|
+
row.activation_approval_checksum !== status.approvalChecksum ||
|
|
107
|
+
row.service_origin !== BILLING_ENFORCEMENT_PRODUCTION_ORIGIN) {
|
|
108
|
+
throw transitionEvidenceUnavailable();
|
|
109
|
+
}
|
|
110
|
+
const transitionedAt = toIso(row.transitioned_at);
|
|
111
|
+
const checkedAt = await readBillingMeterTransactionTime(client);
|
|
112
|
+
if (status.activatedAt === null ||
|
|
113
|
+
transitionedAt < status.activatedAt ||
|
|
114
|
+
transitionedAt > checkedAt ||
|
|
115
|
+
(status.rolledBackAt !== null && transitionedAt > status.rolledBackAt)) {
|
|
116
|
+
throw transitionEvidenceUnavailable();
|
|
117
|
+
}
|
|
118
|
+
const expected = transitionEvidence({
|
|
119
|
+
operationId: row.operation_id,
|
|
120
|
+
generation: row.generation,
|
|
121
|
+
epochId: row.epoch_id,
|
|
122
|
+
activationServiceReleaseSha: row.activation_service_release_sha,
|
|
123
|
+
activationApprovalChecksum: row.activation_approval_checksum,
|
|
124
|
+
transitionServiceReleaseSha: row.transition_service_release_sha,
|
|
125
|
+
systemReleaseId: row.system_release_id,
|
|
126
|
+
manifestChecksum: row.manifest_checksum,
|
|
127
|
+
serviceOrigin: row.service_origin,
|
|
128
|
+
transitionedAt,
|
|
129
|
+
});
|
|
130
|
+
if (expected.transitionChecksum !== row.transition_checksum) {
|
|
131
|
+
throw transitionEvidenceUnavailable();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export async function assertNoCommercialContractTransitionEvidenceTx(client) {
|
|
135
|
+
const { rows } = await client.query('SELECT count(*)::text AS count FROM billing_commercial_contract_transitions');
|
|
136
|
+
if (rows[0]?.count !== '0')
|
|
137
|
+
throw transitionEvidenceUnavailable();
|
|
138
|
+
}
|
|
139
|
+
async function assertCanonicalEnforcedFreeStateTx(client, state, checkedAt, currentReleaseSha) {
|
|
140
|
+
const signals = await readPostgresBillingEnforcementActivationSignalsTx(client, checkedAt, {
|
|
141
|
+
serviceOrigin: BILLING_ENFORCEMENT_PRODUCTION_ORIGIN,
|
|
142
|
+
currentReleaseSha,
|
|
143
|
+
supportedAdmissionContractVersion: 1,
|
|
144
|
+
});
|
|
145
|
+
if (signals.cohortState !== 'sealed' ||
|
|
146
|
+
signals.cohortSealId !== state.cohort_seal_id ||
|
|
147
|
+
!signals.billingAttributionComplete ||
|
|
148
|
+
signals.unprofiledAccountCount !== 0 ||
|
|
149
|
+
signals.invalidEnforcedEntitlementAccountCount !== 0 ||
|
|
150
|
+
signals.nonFreeEnforcedAccountCount !== 0 ||
|
|
151
|
+
signals.enforcedOverCapacityAccountCount !== 0) {
|
|
152
|
+
throw canonicalFreeUnavailable();
|
|
153
|
+
}
|
|
154
|
+
const { rows } = await client.query(`
|
|
155
|
+
SELECT account.state AS account_state,
|
|
156
|
+
profile.source AS profile_source,
|
|
157
|
+
profile.cohort_seal_id AS profile_cohort_seal_id,
|
|
158
|
+
profile.effective_from AS profile_effective_from,
|
|
159
|
+
seal.id AS cohort_seal_id, seal.sealed_at AS cohort_sealed_at,
|
|
160
|
+
snapshot.id, snapshot.billing_account_id, snapshot.version,
|
|
161
|
+
snapshot.plan_version_id, plan.plan_code, plan.version AS plan_version,
|
|
162
|
+
plan.effective_from AS plan_effective_from,
|
|
163
|
+
plan.entitlements AS plan_entitlements,
|
|
164
|
+
plan.content_checksum AS plan_content_checksum,
|
|
165
|
+
plan.created_at AS plan_created_at,
|
|
166
|
+
snapshot.schema_version, snapshot.source_kind, snapshot.generation_reason,
|
|
167
|
+
snapshot.verification_status, snapshot.effective_from, snapshot.effective_until,
|
|
168
|
+
snapshot.monthly_usage_anchor, snapshot.entitlements, snapshot.content_checksum,
|
|
169
|
+
snapshot.source_subscription_id, snapshot.source_subscription_version,
|
|
170
|
+
snapshot.verified_at, snapshot.created_at
|
|
171
|
+
FROM billing_accounts AS account
|
|
172
|
+
JOIN billing_account_active_enforcement_profiles AS active_profile
|
|
173
|
+
ON active_profile.billing_account_id = account.id
|
|
174
|
+
JOIN billing_account_enforcement_profiles AS profile
|
|
175
|
+
ON profile.billing_account_id = active_profile.billing_account_id
|
|
176
|
+
AND profile.version = active_profile.profile_version
|
|
177
|
+
JOIN billing_enforcement_cohort_seals AS seal ON seal.singleton = true
|
|
178
|
+
JOIN billing_account_active_snapshots AS active_snapshot
|
|
179
|
+
ON active_snapshot.billing_account_id = account.id
|
|
180
|
+
JOIN billing_entitlement_snapshots AS snapshot
|
|
181
|
+
ON snapshot.billing_account_id = active_snapshot.billing_account_id
|
|
182
|
+
AND snapshot.id = active_snapshot.snapshot_id
|
|
183
|
+
JOIN billing_plan_versions AS plan ON plan.id = snapshot.plan_version_id
|
|
184
|
+
WHERE profile.mode = 'enforced'
|
|
185
|
+
ORDER BY account.id
|
|
186
|
+
FOR SHARE OF account, active_profile, profile, seal, active_snapshot, snapshot, plan
|
|
187
|
+
`);
|
|
188
|
+
for (const row of rows) {
|
|
189
|
+
if (row.account_state !== 'active' ||
|
|
190
|
+
row.profile_source !== 'post_seal_account' ||
|
|
191
|
+
row.profile_cohort_seal_id !== row.cohort_seal_id ||
|
|
192
|
+
toIso(row.profile_effective_from) < toIso(row.cohort_sealed_at)) {
|
|
193
|
+
throw canonicalFreeUnavailable();
|
|
194
|
+
}
|
|
195
|
+
try {
|
|
196
|
+
const resolved = resolveActiveBillingCommercialEntitlement(row, {
|
|
197
|
+
admissionContractVersion: 1,
|
|
198
|
+
databaseTime: checkedAt,
|
|
199
|
+
});
|
|
200
|
+
if (resolved.planCode !== 'free')
|
|
201
|
+
throw canonicalFreeUnavailable();
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
if (error instanceof BillingActiveCommercialEntitlementInconsistentError) {
|
|
205
|
+
throw canonicalFreeUnavailable();
|
|
206
|
+
}
|
|
207
|
+
throw error;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
function transitionEvidence(input) {
|
|
212
|
+
const content = {
|
|
213
|
+
schemaVersion: 1,
|
|
214
|
+
fromAdmissionContractVersion: 1,
|
|
215
|
+
toAdmissionContractVersion: 2,
|
|
216
|
+
...input,
|
|
217
|
+
};
|
|
218
|
+
return { ...content, transitionChecksum: billingContentChecksum(content) };
|
|
219
|
+
}
|
|
220
|
+
async function insertTransitionEvidence(client, evidence) {
|
|
221
|
+
await client.query(`INSERT INTO billing_commercial_contract_transitions
|
|
222
|
+
(singleton, operation_id, schema_version, from_admission_contract_version,
|
|
223
|
+
to_admission_contract_version, generation, epoch_id,
|
|
224
|
+
activation_service_release_sha, activation_approval_checksum,
|
|
225
|
+
transition_service_release_sha, system_release_id, manifest_checksum, service_origin,
|
|
226
|
+
transition_checksum, transitioned_at)
|
|
227
|
+
VALUES (true, $1, 1, 1, 2, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)`, [
|
|
228
|
+
evidence.operationId,
|
|
229
|
+
evidence.generation,
|
|
230
|
+
evidence.epochId,
|
|
231
|
+
evidence.activationServiceReleaseSha,
|
|
232
|
+
evidence.activationApprovalChecksum,
|
|
233
|
+
evidence.transitionServiceReleaseSha,
|
|
234
|
+
evidence.systemReleaseId,
|
|
235
|
+
evidence.manifestChecksum,
|
|
236
|
+
evidence.serviceOrigin,
|
|
237
|
+
evidence.transitionChecksum,
|
|
238
|
+
evidence.transitionedAt,
|
|
239
|
+
]);
|
|
240
|
+
}
|
|
241
|
+
function validateTransitionIdentity(options) {
|
|
242
|
+
const serviceOrigin = normalizeActivationServiceUrl(options.serviceOrigin);
|
|
243
|
+
if (serviceOrigin !== BILLING_ENFORCEMENT_PRODUCTION_ORIGIN) {
|
|
244
|
+
throw new Error('release-managed paid-v2 transition requires the canonical production origin');
|
|
245
|
+
}
|
|
246
|
+
const releaseSha = validateReleaseSha(options.releaseSha);
|
|
247
|
+
if (!/^r[1-9][0-9]*$/.test(options.systemReleaseId)) {
|
|
248
|
+
throw new Error('release-managed paid-v2 transition requires an rN System Release id');
|
|
249
|
+
}
|
|
250
|
+
if (!/^sha256:[0-9a-f]{64}$/.test(options.manifestChecksum)) {
|
|
251
|
+
throw new Error('release-managed paid-v2 transition requires a System Release manifest checksum');
|
|
252
|
+
}
|
|
253
|
+
if (!/^[0-9a-f]{64}$/.test(options.keyGeneration)) {
|
|
254
|
+
throw new Error('release-managed paid-v2 transition key generation is invalid');
|
|
255
|
+
}
|
|
256
|
+
return { serviceOrigin, releaseSha };
|
|
257
|
+
}
|
|
258
|
+
function result(state, contractTransitioned) {
|
|
259
|
+
const status = stateRowToStatus(state);
|
|
260
|
+
return {
|
|
261
|
+
state: 'active',
|
|
262
|
+
generation: status.generation,
|
|
263
|
+
activeEpochId: status.activeEpochId,
|
|
264
|
+
admissionContractVersion: 2,
|
|
265
|
+
activated: false,
|
|
266
|
+
contractTransitioned,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
function canonicalFreeUnavailable() {
|
|
270
|
+
return conflict('activation_preflight_blocked', 'paid-v2 contract transition requires canonical Free state for every enforced account');
|
|
271
|
+
}
|
|
272
|
+
function transitionEvidenceUnavailable() {
|
|
273
|
+
return conflict('activation_configuration_unavailable', 'billing commercial contract transition evidence is unavailable or inconsistent');
|
|
274
|
+
}
|
|
275
|
+
function conflict(code, message) {
|
|
276
|
+
return new BillingEnforcementActivationConflictError(code, message);
|
|
277
|
+
}
|
|
278
|
+
function toIso(value) {
|
|
279
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
280
|
+
if (!Number.isFinite(date.getTime()))
|
|
281
|
+
throw transitionEvidenceUnavailable();
|
|
282
|
+
return date.toISOString();
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=postgres-commercial-contract-cutover.js.map
|
package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-contract-cutover.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-commercial-contract-cutover.js","sourceRoot":"","sources":["../../src/billing/postgres-commercial-contract-cutover.ts"],"names":[],"mappings":"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"}
|
package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js
CHANGED
|
@@ -137,10 +137,7 @@ function validateCounters(row, input) {
|
|
|
137
137
|
account[0] !== aggregateOrganization[0] ||
|
|
138
138
|
account[1] !== aggregateOrganization[1] ||
|
|
139
139
|
account[2] !== aggregateOrganization[2] ||
|
|
140
|
-
accountPresent !== aggregateOrgCounterCount > 0
|
|
141
|
-
account[0] > input.entitlements.includedCalls ||
|
|
142
|
-
(!input.entitlements.overageAllowed && account[1] !== 0) ||
|
|
143
|
-
(account[1] > 0 && account[0] !== input.entitlements.includedCalls)) {
|
|
140
|
+
accountPresent !== aggregateOrgCounterCount > 0) {
|
|
144
141
|
throw corrupt('counter_inconsistent');
|
|
145
142
|
}
|
|
146
143
|
const organizationUsage = input.org === null ? undefined : validateOrganizationUsage(row, account, input);
|
|
@@ -151,7 +148,9 @@ function validateCounters(row, input) {
|
|
|
151
148
|
includedUsedCalls: account[0],
|
|
152
149
|
overageUsedCalls: account[1],
|
|
153
150
|
totalUsedCalls,
|
|
154
|
-
|
|
151
|
+
// Prior receipt classifications are immutable across plan changes. A downgrade may therefore
|
|
152
|
+
// leave included usage above the current limit, while an upgrade may retain earlier overage.
|
|
153
|
+
includedRemainingCalls: Math.max(0, input.entitlements.includedCalls - account[0]),
|
|
155
154
|
overageAllowed: input.entitlements.overageAllowed,
|
|
156
155
|
countingSince: input.countingSince,
|
|
157
156
|
windowStart: input.windowStart,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-commercial-enforcement-counters.js","sourceRoot":"","sources":["../../src/billing/postgres-commercial-enforcement-counters.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"postgres-commercial-enforcement-counters.js","sourceRoot":"","sources":["../../src/billing/postgres-commercial-enforcement-counters.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import type { Pool } from 'pg';
|
|
|
2
2
|
import type { BillingCommercialEnforcementProjection, BillingCommercialEnforcementProjectionStore, BillingCommercialEnforcementScope, BillingCommercialSnapshotBinding } from './commercial-enforcement-projection.js';
|
|
3
3
|
export interface PostgresBillingCommercialEnforcementProjectionStoreOptions {
|
|
4
4
|
readonly keyGeneration: string;
|
|
5
|
-
readonly admissionContractVersion?: number;
|
|
6
5
|
/** Bounded test/operations override. Default: 1000ms. */
|
|
7
6
|
readonly lockTimeoutMs?: number;
|
|
8
7
|
/** Bounded test/operations override. Default: 2000ms. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-commercial-enforcement-projection.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-commercial-enforcement-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres-commercial-enforcement-projection.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-commercial-enforcement-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAO3C,OAAO,KAAK,EACV,sCAAsC,EACtC,2CAA2C,EAC3C,iCAAiC,EAEjC,gCAAgC,EACjC,MAAM,wCAAwC,CAAC;AAgBhD,MAAM,WAAW,0DAA0D;IACzE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,yDAAyD;IACzD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA8DD,qGAAqG;AACrG,qBAAa,mDACX,YAAW,2CAA2C;;gBAO1C,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,0DAA0D;IAarF,kCAAkC,CACtC,QAAQ,EAAE,iCAAiC,EAC3C,uBAAuB,CAAC,EAAE,gCAAgC,GACzD,OAAO,CAAC,sCAAsC,CAAC;CAuFnD"}
|
package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { validateSlug } from '../store/validate.js';
|
|
2
|
-
import {
|
|
3
|
-
import { BILLING_AUTHORITATIVE_ADMISSION_CONTRACT_VERSION } from './enforcement-activation.js';
|
|
2
|
+
import { BillingActiveCommercialEntitlementInconsistentError, resolveActiveBillingCommercialEntitlement, } from './active-commercial-entitlement.js';
|
|
4
3
|
import { billingContentChecksum, validateBillingAccountId } from './model.js';
|
|
5
4
|
import { BillingAuthoritativeAuthorityInconsistentError, readBillingAuthoritativeAuthorityTx, } from './postgres-authoritative-authority.js';
|
|
6
5
|
import { readBillingCommercialProductionAppCountsTx } from './postgres-commercial-enforcement-apps.js';
|
|
@@ -22,13 +21,11 @@ class ProjectionCorruptionError extends Error {
|
|
|
22
21
|
export class PostgresBillingCommercialEnforcementProjectionStore {
|
|
23
22
|
#pool;
|
|
24
23
|
#keyGeneration;
|
|
25
|
-
#admissionContractVersion;
|
|
26
24
|
#lockTimeoutMs;
|
|
27
25
|
#statementTimeoutMs;
|
|
28
26
|
constructor(pool, options) {
|
|
29
27
|
this.#pool = pool;
|
|
30
28
|
this.#keyGeneration = validateFingerprint(options.keyGeneration);
|
|
31
|
-
this.#admissionContractVersion = validateAdmissionContractVersion(options.admissionContractVersion ?? BILLING_AUTHORITATIVE_ADMISSION_CONTRACT_VERSION);
|
|
32
29
|
this.#lockTimeoutMs = boundedTimeout('billing commercial projection lock timeout', options.lockTimeoutMs ?? DEFAULT_LOCK_TIMEOUT_MS);
|
|
33
30
|
this.#statementTimeoutMs = boundedTimeout('billing commercial projection statement timeout', options.statementTimeoutMs ?? DEFAULT_STATEMENT_TIMEOUT_MS);
|
|
34
31
|
}
|
|
@@ -41,7 +38,6 @@ export class PostgresBillingCommercialEnforcementProjectionStore {
|
|
|
41
38
|
}, async (client) => {
|
|
42
39
|
const authority = await readBillingAuthoritativeAuthorityTx(client, {
|
|
43
40
|
keyGeneration: this.#keyGeneration,
|
|
44
|
-
admissionContractVersion: this.#admissionContractVersion,
|
|
45
41
|
});
|
|
46
42
|
if (authority.state === 'unconfigured')
|
|
47
43
|
return { state: 'unconfigured', scope };
|
|
@@ -49,7 +45,7 @@ export class PostgresBillingCommercialEnforcementProjectionStore {
|
|
|
49
45
|
return { state: 'inactive', reason: authority.reason, scope };
|
|
50
46
|
}
|
|
51
47
|
const recordedAt = await readBillingMeterTransactionTime(client);
|
|
52
|
-
const resolved = validateResolution(await readResolution(client, scope), expectedSnapshotBinding);
|
|
48
|
+
const resolved = validateResolution(await readResolution(client, scope), expectedSnapshotBinding, authority.admissionContractVersion, recordedAt);
|
|
53
49
|
if (resolved.profileMode === 'legacy_internal_exempt') {
|
|
54
50
|
return { state: 'exempt', reason: 'legacy_internal_exempt', scope };
|
|
55
51
|
}
|
|
@@ -132,7 +128,17 @@ async function readResolution(client, scope) {
|
|
|
132
128
|
snapshot.effective_from AS snapshot_effective_from,
|
|
133
129
|
snapshot.monthly_usage_anchor AS snapshot_monthly_usage_anchor,
|
|
134
130
|
snapshot.entitlements AS snapshot_entitlements,
|
|
135
|
-
snapshot.content_checksum AS snapshot_content_checksum
|
|
131
|
+
snapshot.content_checksum AS snapshot_content_checksum,
|
|
132
|
+
snapshot.schema_version, snapshot.source_kind, snapshot.generation_reason,
|
|
133
|
+
snapshot.effective_until, snapshot.source_subscription_id,
|
|
134
|
+
snapshot.source_subscription_version,
|
|
135
|
+
snapshot.verified_at AS snapshot_verified_at,
|
|
136
|
+
snapshot.created_at AS snapshot_created_at,
|
|
137
|
+
plan.plan_code, plan.version AS plan_version,
|
|
138
|
+
plan.effective_from AS plan_effective_from,
|
|
139
|
+
plan.entitlements AS plan_entitlements,
|
|
140
|
+
plan.content_checksum AS plan_content_checksum,
|
|
141
|
+
plan.created_at AS plan_created_at
|
|
136
142
|
${targetJoin}
|
|
137
143
|
LEFT JOIN billing_account_active_enforcement_profiles AS active_profile
|
|
138
144
|
ON active_profile.billing_account_id = account.id
|
|
@@ -144,13 +150,14 @@ async function readResolution(client, scope) {
|
|
|
144
150
|
LEFT JOIN billing_entitlement_snapshots AS snapshot
|
|
145
151
|
ON snapshot.billing_account_id = active_snapshot.billing_account_id
|
|
146
152
|
AND snapshot.id = active_snapshot.snapshot_id
|
|
153
|
+
LEFT JOIN billing_plan_versions AS plan ON plan.id = snapshot.plan_version_id
|
|
147
154
|
LEFT JOIN billing_enforcement_cohort_seals AS seal ON seal.singleton = true`, [value]);
|
|
148
155
|
const row = rows[0];
|
|
149
156
|
if (row === undefined)
|
|
150
157
|
throw corrupt('profile_inconsistent');
|
|
151
158
|
return row;
|
|
152
159
|
}
|
|
153
|
-
function validateResolution(row, expectedSnapshotBinding) {
|
|
160
|
+
function validateResolution(row, expectedSnapshotBinding, admissionContractVersion, databaseTime) {
|
|
154
161
|
const profileEffectiveFrom = projectionInstant(row.profile_effective_from, 'profile_inconsistent');
|
|
155
162
|
const cohortSealedAt = projectionInstant(row.cohort_sealed_at, 'profile_inconsistent');
|
|
156
163
|
const validLegacyProfile = row.profile_mode === 'legacy_internal_exempt' &&
|
|
@@ -174,23 +181,34 @@ function validateResolution(row, expectedSnapshotBinding) {
|
|
|
174
181
|
row.snapshot_verification_status !== 'verified' ||
|
|
175
182
|
row.snapshot_effective_from === null ||
|
|
176
183
|
row.snapshot_monthly_usage_anchor === null ||
|
|
177
|
-
row.snapshot_content_checksum === null
|
|
184
|
+
row.snapshot_content_checksum === null ||
|
|
185
|
+
row.schema_version === null ||
|
|
186
|
+
row.source_kind === null ||
|
|
187
|
+
row.generation_reason === null ||
|
|
188
|
+
row.snapshot_verified_at === null ||
|
|
189
|
+
row.snapshot_created_at === null ||
|
|
190
|
+
row.plan_code === null ||
|
|
191
|
+
row.plan_version === null ||
|
|
192
|
+
row.plan_effective_from === null ||
|
|
193
|
+
row.plan_content_checksum === null ||
|
|
194
|
+
row.plan_created_at === null) {
|
|
178
195
|
throw corrupt('snapshot_inconsistent');
|
|
179
196
|
}
|
|
180
197
|
const effectiveFrom = projectionInstant(row.snapshot_effective_from, 'snapshot_inconsistent');
|
|
181
198
|
const monthlyUsageAnchor = projectionInstant(row.snapshot_monthly_usage_anchor, 'snapshot_inconsistent');
|
|
182
|
-
const expectedChecksum = billingContentChecksum({
|
|
183
|
-
billingAccountId: row.account_id,
|
|
184
|
-
version: row.snapshot_version,
|
|
185
|
-
planVersionId: row.snapshot_plan_version_id,
|
|
186
|
-
effectiveFrom,
|
|
187
|
-
monthlyUsageAnchor,
|
|
188
|
-
entitlements: row.snapshot_entitlements,
|
|
189
|
-
});
|
|
190
|
-
if (row.snapshot_content_checksum !== expectedChecksum)
|
|
191
|
-
throw corrupt('snapshot_inconsistent');
|
|
192
199
|
const billingAccountId = validateBillingAccountId(row.account_id);
|
|
193
200
|
if (row.profile_mode === 'legacy_internal_exempt') {
|
|
201
|
+
const expectedChecksum = billingContentChecksum({
|
|
202
|
+
billingAccountId: row.account_id,
|
|
203
|
+
version: row.snapshot_version,
|
|
204
|
+
planVersionId: row.snapshot_plan_version_id,
|
|
205
|
+
effectiveFrom,
|
|
206
|
+
monthlyUsageAnchor,
|
|
207
|
+
entitlements: row.snapshot_entitlements,
|
|
208
|
+
});
|
|
209
|
+
if (row.snapshot_content_checksum !== expectedChecksum) {
|
|
210
|
+
throw corrupt('snapshot_inconsistent');
|
|
211
|
+
}
|
|
194
212
|
return { billingAccountId, profileMode: row.profile_mode };
|
|
195
213
|
}
|
|
196
214
|
const snapshotBinding = {
|
|
@@ -204,10 +222,13 @@ function validateResolution(row, expectedSnapshotBinding) {
|
|
|
204
222
|
}
|
|
205
223
|
let entitlements;
|
|
206
224
|
try {
|
|
207
|
-
entitlements =
|
|
225
|
+
entitlements = resolveActiveBillingCommercialEntitlement(activeEntitlementRow(row), {
|
|
226
|
+
admissionContractVersion,
|
|
227
|
+
databaseTime,
|
|
228
|
+
}).entitlements;
|
|
208
229
|
}
|
|
209
230
|
catch (error) {
|
|
210
|
-
if (error instanceof
|
|
231
|
+
if (error instanceof BillingActiveCommercialEntitlementInconsistentError) {
|
|
211
232
|
throw corrupt('snapshot_inconsistent');
|
|
212
233
|
}
|
|
213
234
|
throw error;
|
|
@@ -220,6 +241,53 @@ function validateResolution(row, expectedSnapshotBinding) {
|
|
|
220
241
|
snapshotBinding,
|
|
221
242
|
};
|
|
222
243
|
}
|
|
244
|
+
function activeEntitlementRow(row) {
|
|
245
|
+
if (row.account_id === null ||
|
|
246
|
+
row.snapshot_id === null ||
|
|
247
|
+
row.snapshot_version === null ||
|
|
248
|
+
row.snapshot_plan_version_id === null ||
|
|
249
|
+
row.snapshot_verification_status === null ||
|
|
250
|
+
row.snapshot_effective_from === null ||
|
|
251
|
+
row.snapshot_monthly_usage_anchor === null ||
|
|
252
|
+
row.snapshot_content_checksum === null ||
|
|
253
|
+
row.schema_version === null ||
|
|
254
|
+
row.source_kind === null ||
|
|
255
|
+
row.generation_reason === null ||
|
|
256
|
+
row.snapshot_verified_at === null ||
|
|
257
|
+
row.snapshot_created_at === null ||
|
|
258
|
+
row.plan_code === null ||
|
|
259
|
+
row.plan_version === null ||
|
|
260
|
+
row.plan_effective_from === null ||
|
|
261
|
+
row.plan_content_checksum === null ||
|
|
262
|
+
row.plan_created_at === null) {
|
|
263
|
+
throw corrupt('snapshot_inconsistent');
|
|
264
|
+
}
|
|
265
|
+
return {
|
|
266
|
+
id: row.snapshot_id,
|
|
267
|
+
billing_account_id: row.account_id,
|
|
268
|
+
version: row.snapshot_version,
|
|
269
|
+
plan_version_id: row.snapshot_plan_version_id,
|
|
270
|
+
plan_code: row.plan_code,
|
|
271
|
+
plan_version: row.plan_version,
|
|
272
|
+
plan_effective_from: row.plan_effective_from,
|
|
273
|
+
plan_entitlements: row.plan_entitlements,
|
|
274
|
+
plan_content_checksum: row.plan_content_checksum,
|
|
275
|
+
plan_created_at: row.plan_created_at,
|
|
276
|
+
schema_version: row.schema_version,
|
|
277
|
+
source_kind: row.source_kind,
|
|
278
|
+
generation_reason: row.generation_reason,
|
|
279
|
+
verification_status: row.snapshot_verification_status,
|
|
280
|
+
effective_from: row.snapshot_effective_from,
|
|
281
|
+
effective_until: row.effective_until,
|
|
282
|
+
monthly_usage_anchor: row.snapshot_monthly_usage_anchor,
|
|
283
|
+
entitlements: row.snapshot_entitlements,
|
|
284
|
+
content_checksum: row.snapshot_content_checksum,
|
|
285
|
+
source_subscription_id: row.source_subscription_id,
|
|
286
|
+
source_subscription_version: row.source_subscription_version,
|
|
287
|
+
verified_at: row.snapshot_verified_at,
|
|
288
|
+
created_at: row.snapshot_created_at,
|
|
289
|
+
};
|
|
290
|
+
}
|
|
223
291
|
function sameSnapshotBinding(current, expected) {
|
|
224
292
|
return (current.snapshotId === expected.snapshotId &&
|
|
225
293
|
current.version === expected.version &&
|
|
@@ -240,6 +308,9 @@ function unavailableReason(error) {
|
|
|
240
308
|
if (error instanceof BillingAuthoritativeAuthorityInconsistentError) {
|
|
241
309
|
return 'authority_inconsistent';
|
|
242
310
|
}
|
|
311
|
+
if (error instanceof BillingActiveCommercialEntitlementInconsistentError) {
|
|
312
|
+
return 'snapshot_inconsistent';
|
|
313
|
+
}
|
|
243
314
|
if (error instanceof BillingCommercialCounterProjectionError)
|
|
244
315
|
return error.reason;
|
|
245
316
|
if (error instanceof ProjectionCorruptionError)
|
|
@@ -260,12 +331,6 @@ function validateFingerprint(value) {
|
|
|
260
331
|
}
|
|
261
332
|
return value;
|
|
262
333
|
}
|
|
263
|
-
function validateAdmissionContractVersion(value) {
|
|
264
|
-
if (value !== BILLING_AUTHORITATIVE_ADMISSION_CONTRACT_VERSION) {
|
|
265
|
-
throw new Error('billing commercial projection admission contract version is unsupported');
|
|
266
|
-
}
|
|
267
|
-
return value;
|
|
268
|
-
}
|
|
269
334
|
function boundedTimeout(label, value) {
|
|
270
335
|
if (!Number.isSafeInteger(value) || value < 1 || value > 5_000) {
|
|
271
336
|
throw new Error(`${label} must be between 1 and 5000 milliseconds`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-commercial-enforcement-projection.js","sourceRoot":"","sources":["../../src/billing/postgres-commercial-enforcement-projection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"postgres-commercial-enforcement-projection.js","sourceRoot":"","sources":["../../src/billing/postgres-commercial-enforcement-projection.ts"],"names":[],"mappings":"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"}
|