@actuarial-ts/core 0.6.1 → 0.7.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/README.md +11 -2
- package/dist/canonical.d.ts +11 -0
- package/dist/canonical.d.ts.map +1 -1
- package/dist/canonical.js +136 -26
- package/dist/canonical.js.map +1 -1
- package/dist/diagnosticEvidenceIntern.d.ts +16 -0
- package/dist/diagnosticEvidenceIntern.d.ts.map +1 -0
- package/dist/diagnosticEvidenceIntern.js +139 -0
- package/dist/diagnosticEvidenceIntern.js.map +1 -0
- package/dist/diagnosticExposure.d.ts.map +1 -1
- package/dist/diagnosticExposure.js +97 -7
- package/dist/diagnosticExposure.js.map +1 -1
- package/dist/diagnosticIdentity.d.ts.map +1 -1
- package/dist/diagnosticIdentity.js +6 -3
- package/dist/diagnosticIdentity.js.map +1 -1
- package/dist/diagnosticIdentityStream.d.ts +56 -0
- package/dist/diagnosticIdentityStream.d.ts.map +1 -0
- package/dist/diagnosticIdentityStream.js +472 -0
- package/dist/diagnosticIdentityStream.js.map +1 -0
- package/dist/diagnosticPreparation.d.ts +28 -0
- package/dist/diagnosticPreparation.d.ts.map +1 -1
- package/dist/diagnosticPreparation.js +160 -36
- package/dist/diagnosticPreparation.js.map +1 -1
- package/dist/diagnosticReview.d.ts +4 -1
- package/dist/diagnosticReview.d.ts.map +1 -1
- package/dist/diagnosticReview.js +203 -51
- package/dist/diagnosticReview.js.map +1 -1
- package/dist/diagnosticReviewSources.d.ts +18 -0
- package/dist/diagnosticReviewSources.d.ts.map +1 -0
- package/dist/diagnosticReviewSources.js +76 -0
- package/dist/diagnosticReviewSources.js.map +1 -0
- package/dist/diagnosticReviewStore.d.ts +88 -0
- package/dist/diagnosticReviewStore.d.ts.map +1 -0
- package/dist/diagnosticReviewStore.js +455 -0
- package/dist/diagnosticReviewStore.js.map +1 -0
- package/dist/diagnosticRunner.d.ts +25 -1
- package/dist/diagnosticRunner.d.ts.map +1 -1
- package/dist/diagnosticRunner.js +115 -7
- package/dist/diagnosticRunner.js.map +1 -1
- package/dist/fnvAccumulator.d.ts +6 -0
- package/dist/fnvAccumulator.d.ts.map +1 -0
- package/dist/fnvAccumulator.js +21 -0
- package/dist/fnvAccumulator.js.map +1 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/canonical.ts +144 -26
- package/src/diagnosticEvidenceIntern.ts +151 -0
- package/src/diagnosticExposure.ts +126 -17
- package/src/diagnosticIdentity.ts +15 -6
- package/src/diagnosticIdentityStream.ts +553 -0
- package/src/diagnosticPreparation.ts +268 -84
- package/src/diagnosticReview.ts +293 -85
- package/src/diagnosticReviewSources.ts +85 -0
- package/src/diagnosticReviewStore.ts +692 -0
- package/src/diagnosticRunner.ts +206 -9
- package/src/fnvAccumulator.ts +20 -0
- package/src/index.ts +38 -1
- package/src/version.ts +1 -1
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
import { projectDiagnosticIdentity } from "./diagnosticIdentity.js";
|
|
2
|
+
import { MAX_DIAGNOSTIC_JSON_DEPTH, isDiagnosticPlainRecord, isDiagnosticToken, isWellFormedDiagnosticString, } from "./diagnosticRuntime.js";
|
|
3
|
+
import { createFnvAccumulator } from "./fnvAccumulator.js";
|
|
4
|
+
import { DiagnosticValidationError } from "./types.js";
|
|
5
|
+
const plainMode = { sourceSlot: false, freeJson: false };
|
|
6
|
+
const sourceMode = { sourceSlot: true, freeJson: false };
|
|
7
|
+
const freeMode = { sourceSlot: false, freeJson: true };
|
|
8
|
+
const nodes = new WeakMap();
|
|
9
|
+
const CHUNK_UNITS = 16_384;
|
|
10
|
+
const QUOTE_UNITS = 4_096;
|
|
11
|
+
function fail(path, message, code = "invalid-json-value") {
|
|
12
|
+
throw new DiagnosticValidationError([{ domain: "input", code, path, message }]);
|
|
13
|
+
}
|
|
14
|
+
function descriptor(node) {
|
|
15
|
+
const document = Object.freeze({});
|
|
16
|
+
nodes.set(document, node);
|
|
17
|
+
return document;
|
|
18
|
+
}
|
|
19
|
+
function readDocument(value, path) {
|
|
20
|
+
if (value === null || typeof value !== "object" || !nodes.has(value))
|
|
21
|
+
fail(path, "Value is not a diagnostic identity serialization descriptor", "invalid-type");
|
|
22
|
+
return nodes.get(value);
|
|
23
|
+
}
|
|
24
|
+
/** A live projected view; construction neither clones nor freezes caller data. */
|
|
25
|
+
export function createDiagnosticIdentityValue(value) {
|
|
26
|
+
return descriptor({ kind: "value", value });
|
|
27
|
+
}
|
|
28
|
+
/** Copies the field-to-descriptor map, not the live values behind its children. */
|
|
29
|
+
export function createDiagnosticIdentityObject(fields) {
|
|
30
|
+
if (!isDiagnosticPlainRecord(fields))
|
|
31
|
+
fail("$", "Identity fields must be a plain record", "invalid-type");
|
|
32
|
+
const keys = Object.keys(fields).sort();
|
|
33
|
+
const values = [];
|
|
34
|
+
for (const key of keys) {
|
|
35
|
+
if (!isWellFormedDiagnosticString(key))
|
|
36
|
+
fail(`$.${key}`, "Object key is not well-formed UTF-16 or contains U+0000");
|
|
37
|
+
const field = Object.getOwnPropertyDescriptor(fields, key);
|
|
38
|
+
if (!field || !("value" in field))
|
|
39
|
+
fail(`$.${key}`, "JSON objects may contain only data properties");
|
|
40
|
+
readDocument(field.value, `$.${key}`);
|
|
41
|
+
values.push(field.value);
|
|
42
|
+
}
|
|
43
|
+
return descriptor({ kind: "object", fields: { keys, values, documents: true } });
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A structural lazy sequence. The callback grants NO review/run authority and
|
|
47
|
+
* is invoked only as iteration reaches an index. It must remain repeatable for
|
|
48
|
+
* deterministic output; only an immutable SDK owner may cache a resulting tag.
|
|
49
|
+
*/
|
|
50
|
+
export function createDiagnosticIdentityArray(count, itemAt) {
|
|
51
|
+
if (!Number.isSafeInteger(count) || count < 0)
|
|
52
|
+
fail("$.count", "Identity sequence count must be a nonnegative safe integer", "invalid-number");
|
|
53
|
+
if (typeof itemAt !== "function")
|
|
54
|
+
fail("$.itemAt", "Identity sequence reader must be a function", "invalid-type");
|
|
55
|
+
return descriptor({ kind: "array", count, itemAt });
|
|
56
|
+
}
|
|
57
|
+
function childMode(mode, key) {
|
|
58
|
+
if (mode.freeJson || key === "groupDimensions" || key === "dimensions")
|
|
59
|
+
return freeMode;
|
|
60
|
+
return key === "source" || key === "sources" ? sourceMode : plainMode;
|
|
61
|
+
}
|
|
62
|
+
function childPath(path, key) {
|
|
63
|
+
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key)
|
|
64
|
+
? `${path}.${key}`
|
|
65
|
+
: `${path}[${JSON.stringify(key)}]`;
|
|
66
|
+
}
|
|
67
|
+
function scalar(fields, index) {
|
|
68
|
+
if (!fields.documents)
|
|
69
|
+
return fields.values[index];
|
|
70
|
+
const node = readDocument(fields.values[index], "$");
|
|
71
|
+
// Non-scalar composition has an object value, and cannot be a source token.
|
|
72
|
+
return node.kind === "value" ? node.value : {};
|
|
73
|
+
}
|
|
74
|
+
function sourceFields(fields, mode, path) {
|
|
75
|
+
if (mode.freeJson || !mode.sourceSlot)
|
|
76
|
+
return fields;
|
|
77
|
+
const artifact = fields.keys.indexOf("artifactId");
|
|
78
|
+
if (artifact < 0 || typeof scalar(fields, artifact) !== "string")
|
|
79
|
+
return fields;
|
|
80
|
+
const source = Object.create(null);
|
|
81
|
+
for (let index = 0; index < fields.keys.length; index++)
|
|
82
|
+
source[fields.keys[index]] = scalar(fields, index);
|
|
83
|
+
try {
|
|
84
|
+
// Reuse the authoritative source-slot normalization/validation, including
|
|
85
|
+
// optional nulls, rather than maintaining a second source schema.
|
|
86
|
+
const normalized = projectDiagnosticIdentity({ source }).source;
|
|
87
|
+
const keys = Object.keys(normalized).sort();
|
|
88
|
+
return {
|
|
89
|
+
keys,
|
|
90
|
+
values: keys.map((key) => normalized[key]),
|
|
91
|
+
documents: false,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
if (error instanceof DiagnosticValidationError)
|
|
96
|
+
throw new DiagnosticValidationError(error.issues.map((issue) => ({
|
|
97
|
+
...issue,
|
|
98
|
+
path: issue.path.replace(/^\$\.source/, path),
|
|
99
|
+
})));
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function rawFields(raw, path) {
|
|
104
|
+
const keys = Object.keys(raw).sort();
|
|
105
|
+
const values = [];
|
|
106
|
+
// Read every sibling descriptor before traversing a child, exactly as in the
|
|
107
|
+
// legacy streaming projection. Accessors fail without ever being invoked.
|
|
108
|
+
for (const key of keys) {
|
|
109
|
+
const location = childPath(path, key);
|
|
110
|
+
if (!isWellFormedDiagnosticString(key))
|
|
111
|
+
fail(location, "Object key is not well-formed UTF-16 or contains U+0000");
|
|
112
|
+
const field = Object.getOwnPropertyDescriptor(raw, key);
|
|
113
|
+
if (!field || !("value" in field))
|
|
114
|
+
fail(location, "JSON objects may contain only data properties");
|
|
115
|
+
values.push(field.value);
|
|
116
|
+
}
|
|
117
|
+
return { keys, values, documents: false };
|
|
118
|
+
}
|
|
119
|
+
function safeEnd(text, start, count) {
|
|
120
|
+
let end = Math.min(start + count, text.length);
|
|
121
|
+
const before = text.charCodeAt(end - 1), after = text.charCodeAt(end);
|
|
122
|
+
if (before >= 0xd800 && before <= 0xdbff && after >= 0xdc00 && after <= 0xdfff)
|
|
123
|
+
end--;
|
|
124
|
+
return end;
|
|
125
|
+
}
|
|
126
|
+
function* quote(text) {
|
|
127
|
+
yield '"';
|
|
128
|
+
for (let start = 0; start < text.length;) {
|
|
129
|
+
const end = safeEnd(text, start, QUOTE_UNITS);
|
|
130
|
+
yield JSON.stringify(text.slice(start, end)).slice(1, -1);
|
|
131
|
+
start = end;
|
|
132
|
+
}
|
|
133
|
+
yield '"';
|
|
134
|
+
}
|
|
135
|
+
function checkDepth(path, depth) {
|
|
136
|
+
if (depth > MAX_DIAGNOSTIC_JSON_DEPTH)
|
|
137
|
+
fail(path, `JSON depth exceeds ${MAX_DIAGNOSTIC_JSON_DEPTH}`, "expression-limit");
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Exact legacy diagnostic projection, emitted in bounded canonical chunks.
|
|
141
|
+
* Arrays are visited in order; object key lists and paths still scale with
|
|
142
|
+
* object width/depth. No full identity graph or escaped string atom is made.
|
|
143
|
+
* One explicit traversal stack feeds the bounded sink directly: raw fields
|
|
144
|
+
* never allocate public descriptors, and tokens do not bounce through nested
|
|
145
|
+
* generators. Diagnostic validation still rejects accessors without invoking
|
|
146
|
+
* them, and each iteration reads the live descriptor values afresh.
|
|
147
|
+
*/
|
|
148
|
+
export function* iterateDiagnosticIdentityJson(document) {
|
|
149
|
+
readDocument(document, "$");
|
|
150
|
+
const activeDocuments = new Set();
|
|
151
|
+
const activeValues = new Set();
|
|
152
|
+
const stack = [{ kind: "document", document, mode: plainMode, path: "$", depth: 1 }];
|
|
153
|
+
let buffered = "";
|
|
154
|
+
let token = "";
|
|
155
|
+
let tokenStart = 0;
|
|
156
|
+
try {
|
|
157
|
+
while (stack.length || tokenStart < token.length) {
|
|
158
|
+
// Drain one bounded token before visiting anything else. Keeping the
|
|
159
|
+
// token/chunk boundaries also preserves when lazy callbacks are read.
|
|
160
|
+
if (tokenStart < token.length) {
|
|
161
|
+
const end = safeEnd(token, tokenStart, CHUNK_UNITS - buffered.length);
|
|
162
|
+
if (end === tokenStart) {
|
|
163
|
+
yield buffered;
|
|
164
|
+
buffered = "";
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
buffered += token.slice(tokenStart, end);
|
|
168
|
+
tokenStart = end;
|
|
169
|
+
if (buffered.length >= CHUNK_UNITS - 1) {
|
|
170
|
+
yield buffered;
|
|
171
|
+
buffered = "";
|
|
172
|
+
}
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
token = "";
|
|
176
|
+
tokenStart = 0;
|
|
177
|
+
const frame = stack[stack.length - 1];
|
|
178
|
+
switch (frame.kind) {
|
|
179
|
+
case "leave-document":
|
|
180
|
+
activeDocuments.delete(frame.document);
|
|
181
|
+
stack.pop();
|
|
182
|
+
break;
|
|
183
|
+
case "leave-value":
|
|
184
|
+
activeValues.delete(frame.value);
|
|
185
|
+
stack.pop();
|
|
186
|
+
break;
|
|
187
|
+
case "quote": {
|
|
188
|
+
if (!frame.opened) {
|
|
189
|
+
frame.opened = true;
|
|
190
|
+
token = '"';
|
|
191
|
+
}
|
|
192
|
+
else if (frame.start < frame.text.length) {
|
|
193
|
+
const end = safeEnd(frame.text, frame.start, QUOTE_UNITS);
|
|
194
|
+
token = JSON.stringify(frame.text.slice(frame.start, end)).slice(1, -1);
|
|
195
|
+
frame.start = end;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
token = '"';
|
|
199
|
+
stack.pop();
|
|
200
|
+
}
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
case "document": {
|
|
204
|
+
const { document: current, mode, path, depth } = frame;
|
|
205
|
+
const node = readDocument(current, path);
|
|
206
|
+
checkDepth(path, depth);
|
|
207
|
+
if (activeDocuments.has(current))
|
|
208
|
+
fail(path, "Identity document contains a cycle", "cycle");
|
|
209
|
+
activeDocuments.add(current);
|
|
210
|
+
stack[stack.length - 1] = { kind: "leave-document", document: current };
|
|
211
|
+
if (node.kind === "value")
|
|
212
|
+
stack.push({ kind: "value", value: node.value, mode, path, depth });
|
|
213
|
+
else if (node.kind === "object") {
|
|
214
|
+
const fields = sourceFields(node.fields, mode, path);
|
|
215
|
+
stack.push({ kind: "object", fields, mode, path, depth, index: 0, phase: "separator" });
|
|
216
|
+
token = "{";
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
stack.push({ kind: "sequence", node, mode, path, depth, index: 0, phase: "separator" });
|
|
220
|
+
token = "[";
|
|
221
|
+
}
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
case "value": {
|
|
225
|
+
const { value: raw, mode, path, depth } = frame;
|
|
226
|
+
checkDepth(path, depth);
|
|
227
|
+
stack.pop();
|
|
228
|
+
if (raw === null)
|
|
229
|
+
token = "null";
|
|
230
|
+
else if (typeof raw === "boolean")
|
|
231
|
+
token = String(raw);
|
|
232
|
+
else if (typeof raw === "number") {
|
|
233
|
+
if (!Number.isFinite(raw))
|
|
234
|
+
fail(path, "JSON numeric value must be finite");
|
|
235
|
+
token = Object.is(raw, -0) ? "0" : String(raw);
|
|
236
|
+
}
|
|
237
|
+
else if (typeof raw === "string") {
|
|
238
|
+
if (!isWellFormedDiagnosticString(raw))
|
|
239
|
+
fail(path, "String is not well-formed UTF-16 or contains U+0000");
|
|
240
|
+
stack.push({ kind: "quote", text: raw, start: 0, opened: false });
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
if (typeof raw !== "object")
|
|
244
|
+
fail(path, "Value is not plain JSON data");
|
|
245
|
+
const array = Array.isArray(raw);
|
|
246
|
+
if (array ? Object.getPrototypeOf(raw) !== Array.prototype : !isDiagnosticPlainRecord(raw))
|
|
247
|
+
fail(path, "Value must use a plain object or array prototype");
|
|
248
|
+
if (activeValues.has(raw))
|
|
249
|
+
fail(path, "JSON value contains a cycle", "cycle");
|
|
250
|
+
activeValues.add(raw);
|
|
251
|
+
stack.push({ kind: "leave-value", value: raw });
|
|
252
|
+
if (array) {
|
|
253
|
+
const values = raw;
|
|
254
|
+
for (const key of Reflect.ownKeys(values)) {
|
|
255
|
+
if (key === "length")
|
|
256
|
+
continue;
|
|
257
|
+
const index = typeof key === "string" ? Number(key) : NaN;
|
|
258
|
+
if (!Number.isInteger(index) ||
|
|
259
|
+
index < 0 ||
|
|
260
|
+
index >= values.length ||
|
|
261
|
+
String(index) !== key)
|
|
262
|
+
fail(typeof key === "symbol" ? path : childPath(path, key), "JSON arrays may contain only indexed data properties");
|
|
263
|
+
}
|
|
264
|
+
stack.push({ kind: "array", values, mode, path, depth, index: 0 });
|
|
265
|
+
token = "[";
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
const fields = sourceFields(rawFields(raw, path), mode, path);
|
|
269
|
+
stack.push({
|
|
270
|
+
kind: "object",
|
|
271
|
+
fields,
|
|
272
|
+
mode,
|
|
273
|
+
path,
|
|
274
|
+
depth,
|
|
275
|
+
index: 0,
|
|
276
|
+
phase: "separator",
|
|
277
|
+
});
|
|
278
|
+
token = "{";
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
case "object": {
|
|
284
|
+
const { fields, index, mode, path, depth } = frame;
|
|
285
|
+
if (index === fields.keys.length) {
|
|
286
|
+
token = "}";
|
|
287
|
+
stack.pop();
|
|
288
|
+
break;
|
|
289
|
+
}
|
|
290
|
+
const key = fields.keys[index];
|
|
291
|
+
if (frame.phase === "separator") {
|
|
292
|
+
frame.phase = "key";
|
|
293
|
+
if (index)
|
|
294
|
+
token = ",";
|
|
295
|
+
}
|
|
296
|
+
else if (frame.phase === "key") {
|
|
297
|
+
frame.phase = "colon";
|
|
298
|
+
stack.push({ kind: "quote", text: key, start: 0, opened: false });
|
|
299
|
+
}
|
|
300
|
+
else if (frame.phase === "colon") {
|
|
301
|
+
frame.phase = "child";
|
|
302
|
+
token = ":";
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
const child = fields.values[index];
|
|
306
|
+
const location = {
|
|
307
|
+
mode: childMode(mode, key),
|
|
308
|
+
path: childPath(path, key),
|
|
309
|
+
depth: depth + 1,
|
|
310
|
+
};
|
|
311
|
+
stack.push(fields.documents
|
|
312
|
+
? { kind: "document", document: child, ...location }
|
|
313
|
+
: { kind: "value", value: child, ...location });
|
|
314
|
+
frame.index++;
|
|
315
|
+
frame.phase = "separator";
|
|
316
|
+
}
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
case "array": {
|
|
320
|
+
const { values, index, mode, path, depth } = frame;
|
|
321
|
+
if (index >= values.length) {
|
|
322
|
+
token = "]";
|
|
323
|
+
stack.pop();
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
const field = Object.getOwnPropertyDescriptor(values, String(index));
|
|
327
|
+
if (!field || !("value" in field))
|
|
328
|
+
fail(`${path}[${index}]`, "JSON arrays may contain only indexed data properties");
|
|
329
|
+
stack.push({
|
|
330
|
+
kind: "value",
|
|
331
|
+
value: field.value,
|
|
332
|
+
mode,
|
|
333
|
+
path: `${path}[${index}]`,
|
|
334
|
+
depth: depth + 1,
|
|
335
|
+
});
|
|
336
|
+
frame.index++;
|
|
337
|
+
if (index)
|
|
338
|
+
token = ",";
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
341
|
+
case "sequence": {
|
|
342
|
+
const { node, index, mode, path, depth } = frame;
|
|
343
|
+
if (index === node.count) {
|
|
344
|
+
token = "]";
|
|
345
|
+
stack.pop();
|
|
346
|
+
}
|
|
347
|
+
else if (frame.phase === "separator") {
|
|
348
|
+
frame.phase = "child";
|
|
349
|
+
if (index)
|
|
350
|
+
token = ",";
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
const child = node.itemAt(index);
|
|
354
|
+
stack.push({
|
|
355
|
+
kind: "document",
|
|
356
|
+
document: child,
|
|
357
|
+
mode,
|
|
358
|
+
path: `${path}[${index}]`,
|
|
359
|
+
depth: depth + 1,
|
|
360
|
+
});
|
|
361
|
+
frame.index++;
|
|
362
|
+
frame.phase = "separator";
|
|
363
|
+
}
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
if (buffered)
|
|
369
|
+
yield buffered;
|
|
370
|
+
}
|
|
371
|
+
finally {
|
|
372
|
+
// Cancellation must release live views without traversing later children.
|
|
373
|
+
stack.length = 0;
|
|
374
|
+
activeDocuments.clear();
|
|
375
|
+
activeValues.clear();
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
/** Full legacy FNV tag; structure alone is not proof of a completed SDK run. */
|
|
379
|
+
export function fingerprintDiagnosticIdentity(document, envelope) {
|
|
380
|
+
if (!isDiagnosticToken(envelope?.kind) ||
|
|
381
|
+
!isDiagnosticToken(envelope?.property) ||
|
|
382
|
+
["kind", "identityVersion"].includes(envelope.property))
|
|
383
|
+
fail("$.envelope", "Identity envelope requires distinct nonempty kind/property tokens", "invalid-string");
|
|
384
|
+
readDocument(document, "$");
|
|
385
|
+
function* envelopeTokens() {
|
|
386
|
+
yield "{";
|
|
387
|
+
let index = 0;
|
|
388
|
+
for (const key of ["identityVersion", "kind", envelope.property].sort()) {
|
|
389
|
+
if (index++)
|
|
390
|
+
yield ",";
|
|
391
|
+
yield* quote(key);
|
|
392
|
+
yield ":";
|
|
393
|
+
if (key === "identityVersion")
|
|
394
|
+
yield "1";
|
|
395
|
+
else if (key === "kind")
|
|
396
|
+
yield* quote(envelope.kind);
|
|
397
|
+
// The body is already an identity projection. The envelope must not
|
|
398
|
+
// change its source context or consume an extra diagnostic depth level.
|
|
399
|
+
else
|
|
400
|
+
yield* iterateDiagnosticIdentityJson(document);
|
|
401
|
+
}
|
|
402
|
+
yield "}";
|
|
403
|
+
}
|
|
404
|
+
const hash = createFnvAccumulator();
|
|
405
|
+
const encoder = new TextEncoder();
|
|
406
|
+
const bytes = new Uint8Array(CHUNK_UNITS * 3);
|
|
407
|
+
for (const text of envelopeTokens()) {
|
|
408
|
+
for (let start = 0; start < text.length;) {
|
|
409
|
+
const end = safeEnd(text, start, CHUNK_UNITS);
|
|
410
|
+
const { written } = encoder.encodeInto(text.slice(start, end), bytes);
|
|
411
|
+
hash.update(bytes.subarray(0, written));
|
|
412
|
+
start = end;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return `fnv1a64-jcs-v1:${hash.digest()}`;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Exact canonical text comparison, independent of chunk boundaries; never hash
|
|
419
|
+
* equality. A mismatch stops iteration and reports its UTF-16 offset, without
|
|
420
|
+
* building a giant candidate just to recover a nested JSON path.
|
|
421
|
+
*/
|
|
422
|
+
export function compareDiagnosticIdentityDocuments(left, right) {
|
|
423
|
+
return compareDiagnosticIdentityJsonChunks(iterateDiagnosticIdentityJson(left), iterateDiagnosticIdentityJson(right));
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Exact UTF-16 text comparison only: this does NOT validate JSON, normalize
|
|
427
|
+
* input, or authenticate evidence. Candidate decoders must validate their own
|
|
428
|
+
* format, and diagnostic verification must independently authenticate SDK
|
|
429
|
+
* owners. Empty chunks and split surrogate pairs do not affect equality.
|
|
430
|
+
*/
|
|
431
|
+
export function compareDiagnosticIdentityJsonChunks(left, right) {
|
|
432
|
+
const a = left[Symbol.iterator]();
|
|
433
|
+
let b;
|
|
434
|
+
const next = (iterator) => {
|
|
435
|
+
for (;;) {
|
|
436
|
+
const item = iterator.next();
|
|
437
|
+
if (item.done)
|
|
438
|
+
return item;
|
|
439
|
+
if (typeof item.value !== "string")
|
|
440
|
+
fail("$", "Canonical text chunks must be strings", "invalid-type");
|
|
441
|
+
if (item.value.length)
|
|
442
|
+
return item;
|
|
443
|
+
}
|
|
444
|
+
};
|
|
445
|
+
try {
|
|
446
|
+
b = right[Symbol.iterator]();
|
|
447
|
+
let x = next(a), y = next(b), xi = 0, yi = 0, offset = 0;
|
|
448
|
+
while (!x.done && !y.done) {
|
|
449
|
+
const count = Math.min(x.value.length - xi, y.value.length - yi);
|
|
450
|
+
for (let index = 0; index < count; index++)
|
|
451
|
+
if (x.value.charCodeAt(xi + index) !== y.value.charCodeAt(yi + index))
|
|
452
|
+
return { equal: false, codeUnitOffset: offset + index };
|
|
453
|
+
offset += count;
|
|
454
|
+
xi += count;
|
|
455
|
+
yi += count;
|
|
456
|
+
if (xi === x.value.length) {
|
|
457
|
+
x = next(a);
|
|
458
|
+
xi = 0;
|
|
459
|
+
}
|
|
460
|
+
if (yi === y.value.length) {
|
|
461
|
+
y = next(b);
|
|
462
|
+
yi = 0;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
return x.done && y.done ? { equal: true } : { equal: false, codeUnitOffset: offset };
|
|
466
|
+
}
|
|
467
|
+
finally {
|
|
468
|
+
a.return?.();
|
|
469
|
+
b?.return?.();
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
//# sourceMappingURL=diagnosticIdentityStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticIdentityStream.js","sourceRoot":"","sources":["../src/diagnosticIdentityStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type DiagnosticIdentityDocument } from "./diagnosticIdentityStream.js";
|
|
1
2
|
import { type DiagnosticIdentityProjection, type NormalizedDiagnosticsFilterIdentity, type NormalizedDiagnosticSourceLocationIdentity } from "./diagnosticIdentity.js";
|
|
2
3
|
import { type CompiledDiagnosticDefinition, type DiagnosticDeepReadonly, type DiagnosticMeasureStats, type DiagnosticSourceLocation, type DiagnosticsFilter, type JsonValue } from "./diagnosticDefinitions.js";
|
|
3
4
|
import { type DiagnosticMeasureContribution, type DiagnosticStructuralBlocker } from "./diagnosticAggregation.js";
|
|
@@ -106,6 +107,17 @@ export interface PreparedDiagnosticData {
|
|
|
106
107
|
readonly expectedCells: readonly DiagnosticExpectedCell[];
|
|
107
108
|
readonly findings: readonly DiagnosticMetricFinding[];
|
|
108
109
|
}
|
|
110
|
+
/** Complete prepared content shared by the eager and compact execution paths. */
|
|
111
|
+
export type PreparedDiagnosticDataContent = Omit<PreparedDiagnosticData, typeof preparedDiagnosticDataBrand | "preparationFingerprint">;
|
|
112
|
+
declare const compactPreparedDiagnosticDataBrand: unique symbol;
|
|
113
|
+
/**
|
|
114
|
+
* Owned, frozen preparation without an eagerly materialized identity or hash.
|
|
115
|
+
* This is a distinct authenticated value, not an eager preparation with a
|
|
116
|
+
* missing or placeholder fingerprint.
|
|
117
|
+
*/
|
|
118
|
+
export interface CompactPreparedDiagnosticData extends PreparedDiagnosticDataContent {
|
|
119
|
+
readonly [compactPreparedDiagnosticDataBrand]: true;
|
|
120
|
+
}
|
|
109
121
|
export interface NormalizedDiagnosticPreparationIdentity {
|
|
110
122
|
readonly definitionIntegrity: string;
|
|
111
123
|
readonly filter: NormalizedDiagnosticsFilterIdentity | null;
|
|
@@ -124,6 +136,22 @@ export interface NormalizedDiagnosticExpectedCellIdentity {
|
|
|
124
136
|
readonly source: NormalizedDiagnosticSourceLocationIdentity | null;
|
|
125
137
|
}
|
|
126
138
|
export declare function prepareDiagnosticData(input: PrepareDiagnosticDataInput): PreparedDiagnosticData;
|
|
139
|
+
export declare function prepareDiagnosticDataCompact(input: PrepareDiagnosticDataInput): CompactPreparedDiagnosticData;
|
|
140
|
+
export declare function assertCompactPreparedDiagnosticData(value: unknown): asserts value is CompactPreparedDiagnosticData;
|
|
141
|
+
/**
|
|
142
|
+
* Explicit eager bridge for callers that need the legacy complete JSON shape.
|
|
143
|
+
* This materializes and hashes the full identity; compact execution never calls
|
|
144
|
+
* it implicitly, and the compact value does not retain the resulting graph.
|
|
145
|
+
*/
|
|
146
|
+
export declare function materializePreparedDiagnosticData(value: CompactPreparedDiagnosticData): PreparedDiagnosticData;
|
|
147
|
+
/**
|
|
148
|
+
* Core-owned, complete identity projection, emitted without a second retained
|
|
149
|
+
* preparation graph. A structural document is not itself actuarial authority:
|
|
150
|
+
* this factory authenticates the frozen preparation before creating one.
|
|
151
|
+
*/
|
|
152
|
+
export declare function getCompactPreparedDiagnosticDataIdentityDocument(value: CompactPreparedDiagnosticData): DiagnosticIdentityDocument;
|
|
153
|
+
/** Compute the exact legacy preparation tag on explicit evidence access only. */
|
|
154
|
+
export declare function getCompactPreparedDiagnosticDataFingerprint(value: CompactPreparedDiagnosticData): string;
|
|
127
155
|
export declare function assertPreparedDiagnosticData(value: unknown): asserts value is PreparedDiagnosticData;
|
|
128
156
|
export declare function getPreparedDiagnosticDataIdentity(value: PreparedDiagnosticData): DiagnosticDeepReadonly<NormalizedDiagnosticPreparationIdentity>;
|
|
129
157
|
export declare function verifyPreparedDiagnosticDataIntegrity(value: PreparedDiagnosticData): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticPreparation.d.ts","sourceRoot":"","sources":["../src/diagnosticPreparation.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,4BAA4B,EACjC,KAAK,mCAAmC,EACxC,KAAK,0CAA0C,EAChD,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAGL,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EACjC,MAAM,4BAA4B,CAAC;AAUpC,OAAO,EAGL,KAAK,6BAA6B,EAClC,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAWvE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;IACtE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"diagnosticPreparation.d.ts","sourceRoot":"","sources":["../src/diagnosticPreparation.ts"],"names":[],"mappings":"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"}
|