@uwmd/core 1.3.0 → 1.5.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/browser.d.ts +10 -4
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +5 -2
- package/dist/browser.js.map +1 -1
- package/dist/cascade.d.ts +60 -6
- package/dist/cascade.d.ts.map +1 -1
- package/dist/cascade.js +93 -14
- package/dist/cascade.js.map +1 -1
- package/dist/cli.js +269 -11
- package/dist/cli.js.map +1 -1
- package/dist/composition.d.ts +182 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +536 -0
- package/dist/composition.js.map +1 -0
- package/dist/context.js +23 -23
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/lite-bridge.d.ts +9 -0
- package/dist/lite-bridge.d.ts.map +1 -1
- package/dist/lite-bridge.js +44 -5
- package/dist/lite-bridge.js.map +1 -1
- package/dist/lite.js +37 -1
- package/dist/lite.js.map +1 -1
- package/dist/market-data.d.ts +134 -0
- package/dist/market-data.d.ts.map +1 -0
- package/dist/market-data.js +292 -0
- package/dist/market-data.js.map +1 -0
- package/dist/protocol.d.ts +57 -8
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +74 -4
- package/dist/protocol.js.map +1 -1
- package/dist/receipts.d.ts +189 -9
- package/dist/receipts.d.ts.map +1 -1
- package/dist/receipts.js +373 -14
- package/dist/receipts.js.map +1 -1
- package/dist/report.js +165 -165
- package/dist/types.d.ts +54 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +17 -0
- package/dist/validator.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/receipts.js
CHANGED
|
@@ -28,9 +28,39 @@ import { detectUWSourceRepresentation, UW_LITE_REPRESENTATION_ID, UW_LITE_REPRES
|
|
|
28
28
|
import { validateUWFile } from './validator.js';
|
|
29
29
|
import { CORE_PACKAGE_NAME, CORE_VERSION } from './version.js';
|
|
30
30
|
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Receipt format version.
|
|
33
|
+
*
|
|
34
|
+
* **1.1 covers two RFCs, and bumps only once.** RFC 0021 (rollup verification)
|
|
35
|
+
* and RFC 0022 (`inputs_provenance`) were accepted the same day and both amend
|
|
36
|
+
* the format RFC 0016 owns. Each RFC records the same rule — whichever is
|
|
37
|
+
* implemented first establishes the extension section, the second amends it —
|
|
38
|
+
* because two independent bumps for two simultaneously-accepted RFCs would make
|
|
39
|
+
* the version number meaningless. RFC 0022 landed first; RFC 0021's rollup
|
|
40
|
+
* entries are additive within the section established here and MUST NOT bump
|
|
41
|
+
* this again. See `UW_RECEIPT_v1.md` §10.
|
|
42
|
+
*/
|
|
43
|
+
export const UW_RECEIPT_VERSION = '1.1';
|
|
44
|
+
/**
|
|
45
|
+
* Receipt versions this verifier can read. A 1.0 receipt is still valid: every
|
|
46
|
+
* 1.1 addition is optional, so absence means "the issuer stated nothing", not
|
|
47
|
+
* "non-conforming".
|
|
48
|
+
*/
|
|
49
|
+
export const SUPPORTED_RECEIPT_VERSIONS = Object.freeze(['1.0', '1.1']);
|
|
32
50
|
/** Canonicalization used for the Lite representation (UW_LITE_SPEC §6). */
|
|
33
51
|
export const UW_LITE_CANONICALIZATION = 'uw-lite-financial';
|
|
52
|
+
/**
|
|
53
|
+
* Version of the *canonicalization rules*, which is not the version of the Lite
|
|
54
|
+
* *grammar* — the two move independently, and this field previously carried
|
|
55
|
+
* `UW_LITE_REPRESENTATION_VERSION`, which conflated them. RFC 0025 changed how a
|
|
56
|
+
* percent display normalizes without changing a single production of the
|
|
57
|
+
* grammar: `5.51%` parsed before and parses now, it just canonicalizes to a
|
|
58
|
+
* different double. Stamping the grammar version would have claimed a source
|
|
59
|
+
* change that did not happen, and left the change that *did* happen unstamped.
|
|
60
|
+
* `UWX_CANONICALIZATION_VERSION` is separate for the same reason.
|
|
61
|
+
*/
|
|
62
|
+
export const UW_LITE_CANONICALIZATION_VERSION = '1.1';
|
|
63
|
+
export const UWX_CANONICALIZATION_VERSION = '1.0';
|
|
34
64
|
/** Canonicalization used for structured records (Document Envelope 1.0). */
|
|
35
65
|
export const UWX_CANONICALIZATION = 'uw-envelope-semantic';
|
|
36
66
|
/**
|
|
@@ -47,6 +77,8 @@ export const RECEIPT_RESULT_TOLERANCE = 1e-6;
|
|
|
47
77
|
/** The policy set a receipt names when the host applies core's built-in rules. */
|
|
48
78
|
export const BUILTIN_POLICY_SET = 'builtin';
|
|
49
79
|
export const BUILTIN_POLICY_SET_VERSION = '1.0';
|
|
80
|
+
/** `sha256:<64 lowercase hex>` — the only digest spelling a receipt may carry. */
|
|
81
|
+
const DIGEST_PATTERN = /^sha256:[0-9a-f]{64}$/;
|
|
50
82
|
/** Typed error, consistent with `ProtocolError` / `CalcError` / `ExcelEmitError`. */
|
|
51
83
|
export class ReceiptError extends Error {
|
|
52
84
|
code;
|
|
@@ -84,7 +116,7 @@ export async function resolveReceiptSubject(content, options = {}) {
|
|
|
84
116
|
representation: UW_LITE_REPRESENTATION_ID,
|
|
85
117
|
representation_version: UW_LITE_REPRESENTATION_VERSION,
|
|
86
118
|
canonicalization: UW_LITE_CANONICALIZATION,
|
|
87
|
-
canonicalization_version:
|
|
119
|
+
canonicalization_version: UW_LITE_CANONICALIZATION_VERSION,
|
|
88
120
|
digest: await digestOf(canonical),
|
|
89
121
|
},
|
|
90
122
|
canonical,
|
|
@@ -106,7 +138,7 @@ export async function resolveReceiptSubject(content, options = {}) {
|
|
|
106
138
|
representation: UWX_REPRESENTATION_ID,
|
|
107
139
|
representation_version: UWX_REPRESENTATION_VERSION,
|
|
108
140
|
canonicalization: UWX_CANONICALIZATION,
|
|
109
|
-
canonicalization_version:
|
|
141
|
+
canonicalization_version: UWX_CANONICALIZATION_VERSION,
|
|
110
142
|
digest: await digestOf(canonical),
|
|
111
143
|
},
|
|
112
144
|
canonical,
|
|
@@ -186,6 +218,14 @@ export async function issueReceipt(content, options = {}) {
|
|
|
186
218
|
warnings: validation.warnings.length,
|
|
187
219
|
},
|
|
188
220
|
},
|
|
221
|
+
// Sorted by document_id so re-issuance over an unchanged record reproduces
|
|
222
|
+
// byte-identical bytes regardless of the order the host listed them in —
|
|
223
|
+
// the re-issuance-stability invariant the conformance suite asserts.
|
|
224
|
+
...(options.inputs_provenance && options.inputs_provenance.length > 0
|
|
225
|
+
? {
|
|
226
|
+
inputs_provenance: [...options.inputs_provenance].sort((a, b) => a.document_id < b.document_id ? -1 : a.document_id > b.document_id ? 1 : 0),
|
|
227
|
+
}
|
|
228
|
+
: {}),
|
|
189
229
|
issued_at: options.issued_at ?? new Date().toISOString(),
|
|
190
230
|
issuer: options.issuer ?? `${CORE_PACKAGE_NAME}@${CORE_VERSION}`,
|
|
191
231
|
signature: null,
|
|
@@ -215,15 +255,28 @@ export function receiptSigningPayload(receipt) {
|
|
|
215
255
|
* Reports exactly one of three verdicts and never collapses `unverifiable` into
|
|
216
256
|
* either of the others. Precedence:
|
|
217
257
|
*
|
|
218
|
-
* 1. A digest mismatch is decisive — the record changed. `failed
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
*
|
|
258
|
+
* 1. A digest mismatch is decisive — the record changed. `failed` — unless the
|
|
259
|
+
* receipt was canonicalized under different rules than this verifier
|
|
260
|
+
* applies, in which case the two digests were never comparable and the
|
|
261
|
+
* disagreement is attributable to the rules rather than to the record:
|
|
262
|
+
* `unverifiable` (RCP-10). This mirrors the engine-identity carve-out at
|
|
263
|
+
* step 3, and exists for the same reason RFC 0023 gave — a verifier must
|
|
264
|
+
* not report corruption when the only thing that changed is its own
|
|
265
|
+
* arithmetic. See RFC 0025.
|
|
266
|
+
* 2. A referenced input that resolves but whose digest disagrees is also
|
|
267
|
+
* decisive — the observation set or child record changed after issuance.
|
|
268
|
+
* `failed` (RCP-12). Placed here, above the indeterminate group, because a
|
|
269
|
+
* reference the verifier *does* hold and *can* compare is real evidence,
|
|
270
|
+
* and burying it under a later step would let an unknown pack mask it.
|
|
271
|
+
* 3. Otherwise, anything this verifier cannot decide (unknown pack, pack
|
|
272
|
+
* version it does not hold, a signature with no backend, or a referenced
|
|
273
|
+
* input it does not hold — RCP-11) → `unverifiable`.
|
|
274
|
+
* 4. Otherwise, recomputation disagreement → `failed`, unless the issuing
|
|
222
275
|
* engine identity (name *and* version) differs from this verifier's, in
|
|
223
276
|
* which case the disagreement is attributable to the engine and the
|
|
224
277
|
* verdict is `unverifiable` (RFC 0016 open question, resolved in
|
|
225
278
|
* `spec/UW_RECEIPT_v1.md` §5).
|
|
226
|
-
*
|
|
279
|
+
* 5. Otherwise `verified`.
|
|
227
280
|
*
|
|
228
281
|
* The verifier always recomputes; `results_digest` is checked only as a cheap
|
|
229
282
|
* corruption signal and never authorizes skipping the recomputation.
|
|
@@ -251,8 +304,24 @@ export async function verifyReceipt(receipt, content, options = {}) {
|
|
|
251
304
|
],
|
|
252
305
|
};
|
|
253
306
|
}
|
|
254
|
-
// 1 — digest. Decisive on mismatch
|
|
307
|
+
// 1 — digest. Decisive on mismatch, but only between comparable digests: two
|
|
308
|
+
// canonicalization versions can disagree about a document neither side
|
|
309
|
+
// touched, so the version is checked before the mismatch is attributed.
|
|
255
310
|
if (resolved.subject.digest !== receipt.subject.digest) {
|
|
311
|
+
if (resolved.subject.canonicalization_version !== receipt.subject.canonicalization_version) {
|
|
312
|
+
return {
|
|
313
|
+
verdict: 'unverifiable',
|
|
314
|
+
issues: [
|
|
315
|
+
{
|
|
316
|
+
code: 'RCP-10',
|
|
317
|
+
severity: 'indeterminate',
|
|
318
|
+
message: `The receipt was canonicalized under '${receipt.subject.canonicalization}' version ${receipt.subject.canonicalization_version}; this verifier applies version ${resolved.subject.canonicalization_version}. The digests are not comparable, so this is not evidence the record changed.`,
|
|
319
|
+
expected: receipt.subject.digest,
|
|
320
|
+
actual: resolved.subject.digest,
|
|
321
|
+
},
|
|
322
|
+
],
|
|
323
|
+
};
|
|
324
|
+
}
|
|
256
325
|
return {
|
|
257
326
|
verdict: 'failed',
|
|
258
327
|
issues: [
|
|
@@ -266,7 +335,43 @@ export async function verifyReceipt(receipt, content, options = {}) {
|
|
|
266
335
|
],
|
|
267
336
|
};
|
|
268
337
|
}
|
|
269
|
-
// 2 —
|
|
338
|
+
// 2 — referenced inputs (receipt format 1.1). A reference we hold and can
|
|
339
|
+
// compare is decisive; one we do not hold is indeterminate, and the two must
|
|
340
|
+
// not be collapsed. Held references are checked first so a mutated
|
|
341
|
+
// observation set is not masked by an unrelated missing one.
|
|
342
|
+
const references = receipt.inputs_provenance ?? [];
|
|
343
|
+
const held = options.inputs ?? {};
|
|
344
|
+
const unresolved = [];
|
|
345
|
+
for (const reference of references) {
|
|
346
|
+
const actual = held[reference.document_id];
|
|
347
|
+
if (actual === undefined) {
|
|
348
|
+
unresolved.push(reference);
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
if (actual !== reference.digest) {
|
|
352
|
+
return {
|
|
353
|
+
verdict: 'failed',
|
|
354
|
+
issues: [
|
|
355
|
+
{
|
|
356
|
+
code: 'RCP-12',
|
|
357
|
+
severity: 'failure',
|
|
358
|
+
message: `The ${reference.source} input '${reference.document_id}'${reference.as_of ? ` (as of ${reference.as_of})` : ''} has changed since the receipt was issued, so the stated results no longer follow from the inputs named.`,
|
|
359
|
+
expected: reference.digest,
|
|
360
|
+
actual,
|
|
361
|
+
},
|
|
362
|
+
],
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
for (const reference of unresolved) {
|
|
367
|
+
issues.push({
|
|
368
|
+
code: 'RCP-11',
|
|
369
|
+
severity: 'indeterminate',
|
|
370
|
+
message: `This verifier does not hold the ${reference.source} input '${reference.document_id}'${reference.as_of ? ` (as of ${reference.as_of})` : ''}, so it cannot confirm the inputs the computation used. This is not evidence the record changed.`,
|
|
371
|
+
expected: reference.digest,
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
// 3 — can this verifier decide at all?
|
|
270
375
|
const pack = lookupPack(receipt.computation.pack, options.packs);
|
|
271
376
|
if (!pack) {
|
|
272
377
|
issues.push({
|
|
@@ -294,7 +399,7 @@ export async function verifyReceipt(receipt, content, options = {}) {
|
|
|
294
399
|
if (issues.some((issue) => issue.severity === 'indeterminate')) {
|
|
295
400
|
return { verdict: 'unverifiable', issues };
|
|
296
401
|
}
|
|
297
|
-
//
|
|
402
|
+
// 4 — recompute. `pack` is non-null here: a null pack produced RCP-05 above.
|
|
298
403
|
const resolvedPack = pack;
|
|
299
404
|
let recomputed;
|
|
300
405
|
try {
|
|
@@ -462,6 +567,225 @@ function valuesAgree(stated, actual) {
|
|
|
462
567
|
return stated === actual;
|
|
463
568
|
}
|
|
464
569
|
// ─── Shape validation ────────────────────────────────────────────────────────
|
|
570
|
+
// ─── Rollup receipts (RFC 0021 §6) ───────────────────────────────────────────
|
|
571
|
+
//
|
|
572
|
+
// A composite states aggregate figures. It does not compute them in the calc
|
|
573
|
+
// engine, because the Tier-3 sandbox has no iteration and no array indexing —
|
|
574
|
+
// RFC 0019 hit exactly this wall for `mixed_use` components, and a portfolio
|
|
575
|
+
// total over N assets is the same problem at a different scale.
|
|
576
|
+
//
|
|
577
|
+
// Rather than change the sandbox, the verifier evaluates a fixed, tiny,
|
|
578
|
+
// non-extensible aggregation vocabulary over the named children. Nothing here
|
|
579
|
+
// lets a module or a document author introduce a new aggregation, and nothing
|
|
580
|
+
// here makes the Tier-3 evaluator iterate. If a general aggregation primitive
|
|
581
|
+
// ever lands, it supersedes this rather than sitting beside it.
|
|
582
|
+
/** The complete permitted set. Deliberately closed. */
|
|
583
|
+
export const ROLLUP_FUNCTIONS = Object.freeze([
|
|
584
|
+
'sum',
|
|
585
|
+
'count',
|
|
586
|
+
'min',
|
|
587
|
+
'max',
|
|
588
|
+
'weighted_average',
|
|
589
|
+
]);
|
|
590
|
+
/** The section a composite carries its stated aggregates in. */
|
|
591
|
+
export const PORTFOLIO_ROLLUP_SECTION = 'portfolio_rollup';
|
|
592
|
+
export function validateRollupAggregate(candidate) {
|
|
593
|
+
const errors = [];
|
|
594
|
+
if (typeof candidate !== 'object' || candidate === null || Array.isArray(candidate)) {
|
|
595
|
+
return [{ category: 'validate', code: 'COMP-ROLLUP-DISAGREES', message: 'Aggregate must be an object.' }];
|
|
596
|
+
}
|
|
597
|
+
const a = candidate;
|
|
598
|
+
const fail = (message, pointer) => {
|
|
599
|
+
errors.push({ category: 'validate', code: 'COMP-ROLLUP-DISAGREES', message, ...(pointer ? { pointer } : {}) });
|
|
600
|
+
};
|
|
601
|
+
if (typeof a.id !== 'string' || a.id.length === 0)
|
|
602
|
+
fail('Aggregate requires an id.', 'id');
|
|
603
|
+
if (!ROLLUP_FUNCTIONS.includes(a.fn)) {
|
|
604
|
+
fail(`fn must be one of ${ROLLUP_FUNCTIONS.join(', ')}; got '${String(a.fn)}'.`, 'fn');
|
|
605
|
+
}
|
|
606
|
+
if (typeof a.over !== 'string' || a.over.length === 0)
|
|
607
|
+
fail('Aggregate requires an over path.', 'over');
|
|
608
|
+
if (!Array.isArray(a.members) || a.members.length === 0) {
|
|
609
|
+
fail('Aggregate requires a non-empty members array.', 'members');
|
|
610
|
+
}
|
|
611
|
+
else if (new Set(a.members).size !== a.members.length) {
|
|
612
|
+
// A member counted twice would inflate a sum, and a portfolio total is
|
|
613
|
+
// exactly the number nobody re-checks by hand.
|
|
614
|
+
fail('Aggregate names a member more than once.', 'members');
|
|
615
|
+
}
|
|
616
|
+
if (typeof a.value !== 'number' || !Number.isFinite(a.value)) {
|
|
617
|
+
fail('Aggregate requires a finite stated value.', 'value');
|
|
618
|
+
}
|
|
619
|
+
if (a.fn === 'weighted_average') {
|
|
620
|
+
if (typeof a.weight_by !== 'string' || a.weight_by.length === 0) {
|
|
621
|
+
fail('weighted_average requires weight_by.', 'weight_by');
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
else if (a.weight_by !== undefined) {
|
|
625
|
+
fail(`weight_by is only meaningful for weighted_average, not '${String(a.fn)}'.`, 'weight_by');
|
|
626
|
+
}
|
|
627
|
+
return errors;
|
|
628
|
+
}
|
|
629
|
+
/**
|
|
630
|
+
* Evaluate one aggregate over member values.
|
|
631
|
+
*
|
|
632
|
+
* Returns `null` when it cannot be evaluated — a missing member or a
|
|
633
|
+
* non-numeric value. Null is *not* zero: a portfolio NOI that silently treats
|
|
634
|
+
* an unreadable child as contributing nothing is the failure this whole design
|
|
635
|
+
* exists to prevent.
|
|
636
|
+
*/
|
|
637
|
+
export function evaluateRollup(aggregate, values, weights) {
|
|
638
|
+
const xs = [];
|
|
639
|
+
for (const member of aggregate.members) {
|
|
640
|
+
const v = values.get(member);
|
|
641
|
+
if (v === undefined || !Number.isFinite(v)) {
|
|
642
|
+
// `count` is not exempt: counting members whose value could not be read
|
|
643
|
+
// would report a count over a set the verifier never actually saw.
|
|
644
|
+
return null;
|
|
645
|
+
}
|
|
646
|
+
xs.push(v);
|
|
647
|
+
}
|
|
648
|
+
if (xs.length === 0)
|
|
649
|
+
return null;
|
|
650
|
+
switch (aggregate.fn) {
|
|
651
|
+
case 'sum':
|
|
652
|
+
return xs.reduce((acc, x) => acc + x, 0);
|
|
653
|
+
case 'count':
|
|
654
|
+
return xs.length;
|
|
655
|
+
case 'min':
|
|
656
|
+
return Math.min(...xs);
|
|
657
|
+
case 'max':
|
|
658
|
+
return Math.max(...xs);
|
|
659
|
+
case 'weighted_average': {
|
|
660
|
+
if (!weights)
|
|
661
|
+
return null;
|
|
662
|
+
let numerator = 0;
|
|
663
|
+
let denominator = 0;
|
|
664
|
+
for (const [i, member] of aggregate.members.entries()) {
|
|
665
|
+
const w = weights.get(member);
|
|
666
|
+
if (w === undefined || !Number.isFinite(w))
|
|
667
|
+
return null;
|
|
668
|
+
numerator += xs[i] * w;
|
|
669
|
+
denominator += w;
|
|
670
|
+
}
|
|
671
|
+
// Zero total weight has no meaningful average; refuse rather than divide.
|
|
672
|
+
if (denominator === 0)
|
|
673
|
+
return null;
|
|
674
|
+
return numerator / denominator;
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
/**
|
|
679
|
+
* Stage 2 of rollup verification: recompute each stated aggregate over exactly
|
|
680
|
+
* the members it names.
|
|
681
|
+
*
|
|
682
|
+
* Stage 1 — verifying each child's own receipt — is existing behaviour applied
|
|
683
|
+
* per child, so the caller performs it and passes the verdicts in. Splitting it
|
|
684
|
+
* this way keeps this function synchronous and free of I/O, and lets a host
|
|
685
|
+
* that already verified its children reuse that work.
|
|
686
|
+
*
|
|
687
|
+
* Verdict precedence mirrors `verifyReceipt`, and for the same reasons:
|
|
688
|
+
*
|
|
689
|
+
* - any child `failed` → `failed` (the parent's total rests on it)
|
|
690
|
+
* - any child `unverifiable`,
|
|
691
|
+
* or a named member absent → `unverifiable`
|
|
692
|
+
* - a stated aggregate disagrees → `failed` (`COMP-ROLLUP-DISAGREES`)
|
|
693
|
+
* - otherwise → `verified`
|
|
694
|
+
*
|
|
695
|
+
* A verified rollup means the stated total follows deterministically from those
|
|
696
|
+
* child records as they stand. It does **not** mean the children are complete,
|
|
697
|
+
* that the portfolio contains every asset it should, or that any input is true.
|
|
698
|
+
*/
|
|
699
|
+
export function verifyRollup(aggregates, members) {
|
|
700
|
+
const issues = [];
|
|
701
|
+
const results = [];
|
|
702
|
+
const byId = new Map(members.map((m) => [m.document_id, m]));
|
|
703
|
+
for (const aggregate of aggregates) {
|
|
704
|
+
const structural = validateRollupAggregate(aggregate);
|
|
705
|
+
if (structural.length > 0) {
|
|
706
|
+
issues.push({
|
|
707
|
+
code: 'RCP-02',
|
|
708
|
+
severity: 'failure',
|
|
709
|
+
message: `Aggregate '${String(aggregate.id)}' is malformed: ${structural.map((e) => e.message).join('; ')}`,
|
|
710
|
+
});
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
if (issues.length > 0)
|
|
714
|
+
return { verdict: 'failed', issues, aggregates: results };
|
|
715
|
+
// Stage 1 verdicts, decided before any arithmetic: a total computed over a
|
|
716
|
+
// child whose own receipt failed is not worth reporting as agreeing.
|
|
717
|
+
let sawUnverifiable = false;
|
|
718
|
+
for (const member of members) {
|
|
719
|
+
if (member.verdict === 'failed') {
|
|
720
|
+
return {
|
|
721
|
+
verdict: 'failed',
|
|
722
|
+
issues: [{
|
|
723
|
+
code: 'RCP-03',
|
|
724
|
+
severity: 'failure',
|
|
725
|
+
message: `Child record '${member.document_id}' failed its own receipt verification, so no aggregate over it can be trusted.`,
|
|
726
|
+
}],
|
|
727
|
+
aggregates: results,
|
|
728
|
+
};
|
|
729
|
+
}
|
|
730
|
+
if (member.verdict === 'unverifiable')
|
|
731
|
+
sawUnverifiable = true;
|
|
732
|
+
}
|
|
733
|
+
for (const aggregate of aggregates) {
|
|
734
|
+
const values = new Map();
|
|
735
|
+
const weights = new Map();
|
|
736
|
+
let missing = null;
|
|
737
|
+
for (const id of aggregate.members) {
|
|
738
|
+
const member = byId.get(id);
|
|
739
|
+
if (!member || member.value === null || member.value === undefined) {
|
|
740
|
+
missing = id;
|
|
741
|
+
break;
|
|
742
|
+
}
|
|
743
|
+
values.set(id, member.value);
|
|
744
|
+
if (aggregate.fn === 'weighted_average') {
|
|
745
|
+
if (member.weight === null || member.weight === undefined) {
|
|
746
|
+
missing = id;
|
|
747
|
+
break;
|
|
748
|
+
}
|
|
749
|
+
weights.set(id, member.weight);
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
if (missing !== null) {
|
|
753
|
+
issues.push({
|
|
754
|
+
code: 'RCP-11',
|
|
755
|
+
severity: 'indeterminate',
|
|
756
|
+
message: `Aggregate '${aggregate.id}' names member '${missing}', whose value at '${aggregate.over}' is not available to this verifier.`,
|
|
757
|
+
});
|
|
758
|
+
results.push({ id: aggregate.id, stated: aggregate.value, recomputed: null, agrees: false });
|
|
759
|
+
continue;
|
|
760
|
+
}
|
|
761
|
+
const recomputed = evaluateRollup(aggregate, values, weights);
|
|
762
|
+
const agrees = recomputed !== null && valuesAgree(aggregate.value, recomputed);
|
|
763
|
+
results.push({ id: aggregate.id, stated: aggregate.value, recomputed, agrees });
|
|
764
|
+
if (!agrees) {
|
|
765
|
+
issues.push({
|
|
766
|
+
code: 'COMP-ROLLUP-DISAGREES',
|
|
767
|
+
severity: 'failure',
|
|
768
|
+
message: `Aggregate '${aggregate.id}' states ${aggregate.value} but ${aggregate.fn} over ${aggregate.members.length} member(s) at '${aggregate.over}' recomputes to ${recomputed === null ? 'nothing evaluable' : recomputed}.`,
|
|
769
|
+
expected: String(aggregate.value),
|
|
770
|
+
actual: recomputed === null ? 'unevaluable' : String(recomputed),
|
|
771
|
+
});
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
if (issues.some((i) => i.severity === 'failure')) {
|
|
775
|
+
return { verdict: 'failed', issues, aggregates: results };
|
|
776
|
+
}
|
|
777
|
+
if (sawUnverifiable || issues.some((i) => i.severity === 'indeterminate')) {
|
|
778
|
+
if (!issues.some((i) => i.severity === 'indeterminate')) {
|
|
779
|
+
issues.push({
|
|
780
|
+
code: 'RCP-11',
|
|
781
|
+
severity: 'indeterminate',
|
|
782
|
+
message: 'At least one child record could not be verified, so the rollup over it is undecided.',
|
|
783
|
+
});
|
|
784
|
+
}
|
|
785
|
+
return { verdict: 'unverifiable', issues, aggregates: results };
|
|
786
|
+
}
|
|
787
|
+
return { verdict: 'verified', issues, aggregates: results };
|
|
788
|
+
}
|
|
465
789
|
/** Structural check mirroring `spec/schemas/uw-receipt.schema.json`. */
|
|
466
790
|
export function assertUWReceipt(value) {
|
|
467
791
|
const fail = (message) => {
|
|
@@ -470,8 +794,12 @@ export function assertUWReceipt(value) {
|
|
|
470
794
|
if (typeof value !== 'object' || value === null)
|
|
471
795
|
fail('A receipt must be an object.');
|
|
472
796
|
const receipt = value;
|
|
473
|
-
|
|
474
|
-
|
|
797
|
+
// Accepts every supported version, not just the current one: each 1.1
|
|
798
|
+
// addition is optional, so a 1.0 receipt is still a valid receipt and
|
|
799
|
+
// refusing to read it would strand every receipt issued before this release.
|
|
800
|
+
if (typeof receipt['receipt_version'] !== 'string' ||
|
|
801
|
+
!SUPPORTED_RECEIPT_VERSIONS.includes(receipt['receipt_version'])) {
|
|
802
|
+
fail(`Unsupported receipt_version '${String(receipt['receipt_version'])}' (supported: ${SUPPORTED_RECEIPT_VERSIONS.join(', ')}).`);
|
|
475
803
|
}
|
|
476
804
|
const subject = receipt['subject'];
|
|
477
805
|
if (typeof subject !== 'object' || subject === null)
|
|
@@ -487,7 +815,7 @@ export function assertUWReceipt(value) {
|
|
|
487
815
|
if (typeof s[key] !== 'string')
|
|
488
816
|
fail(`receipt.subject.${key} must be a string.`);
|
|
489
817
|
}
|
|
490
|
-
if (
|
|
818
|
+
if (!DIGEST_PATTERN.test(s['digest'])) {
|
|
491
819
|
fail('receipt.subject.digest must be sha256 followed by 64 lowercase hex characters.');
|
|
492
820
|
}
|
|
493
821
|
const computation = receipt['computation'];
|
|
@@ -536,6 +864,37 @@ export function assertUWReceipt(value) {
|
|
|
536
864
|
fail(`receipt.policy.validation.${key} must be an integer.`);
|
|
537
865
|
}
|
|
538
866
|
}
|
|
867
|
+
// inputs_provenance (1.1). Optional, but malformed-if-present: a reference
|
|
868
|
+
// with no digest cannot be checked, and silently dropping it would turn an
|
|
869
|
+
// unverifiable receipt into an apparently clean one.
|
|
870
|
+
const provenance = receipt['inputs_provenance'];
|
|
871
|
+
if (provenance !== undefined) {
|
|
872
|
+
if (!Array.isArray(provenance))
|
|
873
|
+
fail('receipt.inputs_provenance must be an array.');
|
|
874
|
+
const seen = new Set();
|
|
875
|
+
for (const [i, raw] of provenance.entries()) {
|
|
876
|
+
if (typeof raw !== 'object' || raw === null) {
|
|
877
|
+
fail(`receipt.inputs_provenance[${i}] must be an object.`);
|
|
878
|
+
}
|
|
879
|
+
const ref = raw;
|
|
880
|
+
for (const key of ['source', 'document_id', 'digest']) {
|
|
881
|
+
if (typeof ref[key] !== 'string' || ref[key].length === 0) {
|
|
882
|
+
fail(`receipt.inputs_provenance[${i}].${key} must be a non-empty string.`);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
if (!DIGEST_PATTERN.test(ref['digest'])) {
|
|
886
|
+
fail(`receipt.inputs_provenance[${i}].digest must be 'sha256:<64 lowercase hex>'.`);
|
|
887
|
+
}
|
|
888
|
+
if (ref['as_of'] !== undefined && typeof ref['as_of'] !== 'string') {
|
|
889
|
+
fail(`receipt.inputs_provenance[${i}].as_of must be a string when present.`);
|
|
890
|
+
}
|
|
891
|
+
// Two entries for one id would make the digest check order-dependent.
|
|
892
|
+
const id = ref['document_id'];
|
|
893
|
+
if (seen.has(id))
|
|
894
|
+
fail(`receipt.inputs_provenance names '${id}' more than once.`);
|
|
895
|
+
seen.add(id);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
539
898
|
if (typeof receipt['issued_at'] !== 'string')
|
|
540
899
|
fail('receipt.issued_at must be a string.');
|
|
541
900
|
if (typeof receipt['issuer'] !== 'string')
|
package/dist/receipts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipts.js","sourceRoot":"","sources":["../src/receipts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"receipts.js","sourceRoot":"","sources":["../src/receipts.ts"],"names":[],"mappings":"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"}
|