@actuarial-ts/interchange 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/convert/diagnosticDefinition.d.ts +6 -5
- package/dist/convert/diagnosticDefinition.d.ts.map +1 -1
- package/dist/convert/diagnosticDefinition.js +43 -8
- package/dist/convert/diagnosticDefinition.js.map +1 -1
- package/dist/envelope.d.ts +4 -4
- package/dist/envelope.d.ts.map +1 -1
- package/dist/envelope.js +10 -6
- package/dist/envelope.js.map +1 -1
- package/dist/json.d.ts +5 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +13 -0
- package/dist/json.js.map +1 -0
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +7 -2
- package/dist/parse.js.map +1 -1
- package/dist/schemas/crosscheck.d.ts +6 -6
- package/dist/schemas/diagnosticDefinition.d.ts +121 -49
- package/dist/schemas/diagnosticDefinition.d.ts.map +1 -1
- package/dist/schemas/diagnosticDefinition.js +6 -5
- package/dist/schemas/diagnosticDefinition.js.map +1 -1
- package/dist/schemas/record.d.ts +5 -0
- package/dist/schemas/record.d.ts.map +1 -0
- package/dist/schemas/record.js +9 -0
- package/dist/schemas/record.js.map +1 -0
- package/dist/schemas/result.d.ts +12 -12
- package/dist/schemas/selection.d.ts +6 -6
- package/dist/schemas/triangle.d.ts +89 -89
- package/dist/schemas/triangle.d.ts.map +1 -1
- package/dist/schemas/triangle.js +20 -5
- package/dist/schemas/triangle.js.map +1 -1
- package/package.json +3 -2
- package/src/convert/diagnosticDefinition.ts +89 -14
- package/src/envelope.ts +25 -8
- package/src/json.ts +17 -0
- package/src/parse.ts +7 -2
- package/src/schemas/diagnosticDefinition.ts +10 -9
- package/src/schemas/record.ts +16 -0
- package/src/schemas/triangle.ts +23 -5
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Typed TypeScript implementation of actuarial-interchange: portable, integrity-stamped documents shared by actuarial-ts, chainladder-python, and R ChainLadder.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install @actuarial-ts/interchange@0.6.
|
|
6
|
+
npm install @actuarial-ts/interchange@0.6.1 @actuarial-ts/core@0.6.1
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Node 20+, ESM. Version 0.6 writes wire `1.1.0` and reads compatible major-version-1 documents.
|
|
@@ -32,13 +32,13 @@ Bundles may carry typed diagnostic definition documents under `interchange.diagn
|
|
|
32
32
|
|
|
33
33
|
## Interoperability
|
|
34
34
|
|
|
35
|
-
The three shores share RFC 8785 vectors, frozen reserving fixtures, and
|
|
35
|
+
The three shores share RFC 8785 vectors, frozen reserving fixtures, and generalized casualty definitions with six formulas and 22 bound instances. Python and R independently recompute definition identities and replay every formula and all five review-rule kinds across the calendar and ordered-axis aggregate-cell corpus, including missingness, tolerance boundaries, and overflow. The replay contract does not claim to reproduce arbitrary raw-data ingestion or selection in those languages.
|
|
36
36
|
|
|
37
37
|
`crosscheck` compares two method-result documents under explicit convention profiles. Outcomes are `agree`, `disagree`, `not-comparable`, or `verified-by-value`; the referee never hides convention differences or treats mutual agreement as proof of correctness.
|
|
38
38
|
|
|
39
39
|
Integrity tags detect accidental drift and support deterministic linking. FNV-1a is unkeyed and is not tamper resistance, authentication, or a security boundary.
|
|
40
40
|
|
|
41
|
-
The normative format is [actuarial-interchange rev 2.4](https://github.com/yerromnitsuj/actng/blob/v0.6.
|
|
41
|
+
The normative format is [actuarial-interchange rev 2.4](https://github.com/yerromnitsuj/actng/blob/v0.6.1/docs/spec/actuarial-interchange.md). See the generated [diagnostic formula catalog](https://github.com/yerromnitsuj/actng/blob/v0.6.1/docs/reference/diagnostic-formulas.md) and [0.6 migration guide](https://github.com/yerromnitsuj/actng/blob/v0.6.1/docs/migrations/0.6-generalized-diagnostics.md).
|
|
42
42
|
|
|
43
43
|
## License
|
|
44
44
|
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { type CompiledDiagnosticDefinition } from "@actuarial-ts/core";
|
|
2
2
|
import { type GeneratorStamp } from "../envelope.js";
|
|
3
3
|
import { type ParseDocumentOptions } from "../parse.js";
|
|
4
|
-
import type
|
|
4
|
+
import { type DiagnosticDefinitionDoc } from "../schemas/diagnosticDefinition.js";
|
|
5
5
|
export interface DiagnosticDefinitionToDocOptions {
|
|
6
6
|
createdAt: string;
|
|
7
7
|
generator?: GeneratorStamp;
|
|
8
8
|
extensions?: Record<string, unknown>;
|
|
9
9
|
}
|
|
10
|
+
export interface DocToDiagnosticDefinitionResult {
|
|
11
|
+
readonly definition: CompiledDiagnosticDefinition;
|
|
12
|
+
readonly warnings: readonly string[];
|
|
13
|
+
}
|
|
10
14
|
export declare function diagnosticDefinitionToDoc(compiled: CompiledDiagnosticDefinition, options: DiagnosticDefinitionToDocOptions): DiagnosticDefinitionDoc;
|
|
11
|
-
export declare function docToDiagnosticDefinition(value: unknown, options?: ParseDocumentOptions):
|
|
12
|
-
definition: CompiledDiagnosticDefinition;
|
|
13
|
-
warnings: readonly string[];
|
|
14
|
-
};
|
|
15
|
+
export declare function docToDiagnosticDefinition(value: unknown, options?: ParseDocumentOptions): DocToDiagnosticDefinitionResult;
|
|
15
16
|
//# sourceMappingURL=diagnosticDefinition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticDefinition.d.ts","sourceRoot":"","sources":["../../src/convert/diagnosticDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"diagnosticDefinition.d.ts","sourceRoot":"","sources":["../../src/convert/diagnosticDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,4BAA4B,EAClC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,4BAA4B,EACtC,OAAO,EAAE,gCAAgC,GACxC,uBAAuB,CA6CzB;AAyBD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,+BAA+B,CAyCjC"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import { ReservingError, assertCompiledDiagnosticDefinition, canonicalJson, compileDiagnosticDefinition, } from "@actuarial-ts/core";
|
|
2
|
-
import { DEFAULT_GENERATOR, INTERCHANGE_SPEC_VERSION, stampIntegrity } from "../envelope.js";
|
|
1
|
+
import { ReservingError, assertCompiledDiagnosticDefinition, canonicalJson, compileDiagnosticDefinition, isDiagnosticPlainRecord, } from "@actuarial-ts/core";
|
|
2
|
+
import { DEFAULT_GENERATOR, INTERCHANGE_SPEC_VERSION, stampIntegrity, } from "../envelope.js";
|
|
3
3
|
import { parseDocument } from "../parse.js";
|
|
4
|
+
import { snapshotInterchangeJson } from "../json.js";
|
|
5
|
+
import { diagnosticDefinitionDocSchema, } from "../schemas/diagnosticDefinition.js";
|
|
4
6
|
export function diagnosticDefinitionToDoc(compiled, options) {
|
|
5
7
|
assertCompiledDiagnosticDefinition(compiled);
|
|
6
|
-
|
|
8
|
+
if (!isDiagnosticPlainRecord(options))
|
|
9
|
+
throw new ReservingError("BAD_INTERCHANGE", "Diagnostic document options must be a plain object at $.options");
|
|
10
|
+
for (const key of Object.keys(options))
|
|
11
|
+
if (!["createdAt", "generator", "extensions"].includes(key))
|
|
12
|
+
throw new ReservingError("BAD_INTERCHANGE", `Unknown diagnostic document option at $.options.${key}`);
|
|
13
|
+
const ownedOptions = snapshotInterchangeJson(options);
|
|
14
|
+
const candidate = stampIntegrity({
|
|
7
15
|
interchangeVersion: INTERCHANGE_SPEC_VERSION,
|
|
8
16
|
kind: "diagnostic-definition",
|
|
9
|
-
generator:
|
|
10
|
-
|
|
11
|
-
|
|
17
|
+
generator: ownedOptions.generator === undefined
|
|
18
|
+
? DEFAULT_GENERATOR
|
|
19
|
+
: ownedOptions.generator,
|
|
20
|
+
createdAt: ownedOptions.createdAt,
|
|
21
|
+
...(ownedOptions.extensions === undefined
|
|
22
|
+
? {}
|
|
23
|
+
: { extensions: ownedOptions.extensions }),
|
|
12
24
|
diagnosticDefinition: {
|
|
13
25
|
definition: compiled.definition,
|
|
14
26
|
identities: {
|
|
@@ -19,11 +31,27 @@ export function diagnosticDefinitionToDoc(compiled, options) {
|
|
|
19
31
|
},
|
|
20
32
|
},
|
|
21
33
|
});
|
|
34
|
+
const parsed = diagnosticDefinitionDocSchema.safeParse(candidate);
|
|
35
|
+
if (!parsed.success) {
|
|
36
|
+
const issue = parsed.error.issues[0];
|
|
37
|
+
const path = issue?.path.length ? ` at $.${issue.path.join(".")}` : "";
|
|
38
|
+
throw new ReservingError("BAD_INTERCHANGE", `Invalid diagnostic-definition document${path}: ${issue?.message ?? "schema validation failed"}`);
|
|
39
|
+
}
|
|
40
|
+
return deepFreeze(snapshotInterchangeJson(candidate));
|
|
41
|
+
}
|
|
42
|
+
function deepFreeze(value) {
|
|
43
|
+
if (value !== null && typeof value === "object" && !Object.isFrozen(value)) {
|
|
44
|
+
for (const child of Object.values(value))
|
|
45
|
+
deepFreeze(child);
|
|
46
|
+
Object.freeze(value);
|
|
47
|
+
}
|
|
48
|
+
return value;
|
|
22
49
|
}
|
|
23
50
|
function sameRecord(left, right) {
|
|
24
51
|
const leftKeys = Object.keys(left).sort();
|
|
25
52
|
const rightKeys = Object.keys(right).sort();
|
|
26
|
-
return leftKeys.length === rightKeys.length &&
|
|
53
|
+
return (leftKeys.length === rightKeys.length &&
|
|
54
|
+
leftKeys.every((key, index) => key === rightKeys[index] && left[key] === right[key]));
|
|
27
55
|
}
|
|
28
56
|
export function docToDiagnosticDefinition(value, options) {
|
|
29
57
|
const parsed = parseDocument(value, options);
|
|
@@ -31,7 +59,14 @@ export function docToDiagnosticDefinition(value, options) {
|
|
|
31
59
|
throw new ReservingError("BAD_INTERCHANGE", `Expected kind "diagnostic-definition"; got kind "${parsed.doc.kind}"`);
|
|
32
60
|
}
|
|
33
61
|
const body = parsed.doc.diagnosticDefinition;
|
|
34
|
-
|
|
62
|
+
let compiled;
|
|
63
|
+
try {
|
|
64
|
+
compiled = compileDiagnosticDefinition(body.definition);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
68
|
+
throw new ReservingError("BAD_INTERCHANGE", `Diagnostic definition contains unsupported executable vocabulary: ${message}`);
|
|
69
|
+
}
|
|
35
70
|
if (canonicalJson(body.definition) !== canonicalJson(compiled.definition)) {
|
|
36
71
|
throw new ReservingError("BAD_INTERCHANGE", "Diagnostic definition contains unsupported executable vocabulary or is not in normalized form");
|
|
37
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticDefinition.js","sourceRoot":"","sources":["../../src/convert/diagnosticDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,kCAAkC,EAClC,aAAa,EACb,2BAA2B,
|
|
1
|
+
{"version":3,"file":"diagnosticDefinition.js","sourceRoot":"","sources":["../../src/convert/diagnosticDefinition.ts"],"names":[],"mappings":"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"}
|
package/dist/envelope.d.ts
CHANGED
|
@@ -32,13 +32,13 @@ export declare const INTERCHANGE_SPEC_MAJOR = 1;
|
|
|
32
32
|
* This package's version, stamped into `generator` by default. A sync test
|
|
33
33
|
* asserts it matches package.json so it cannot silently drift.
|
|
34
34
|
*/
|
|
35
|
-
export declare const INTERCHANGE_PACKAGE_VERSION = "0.6.
|
|
35
|
+
export declare const INTERCHANGE_PACKAGE_VERSION = "0.6.1";
|
|
36
36
|
export interface GeneratorStamp {
|
|
37
37
|
name: string;
|
|
38
38
|
version: string;
|
|
39
39
|
}
|
|
40
40
|
/** Default `generator` stamp for documents authored by this package. */
|
|
41
|
-
export declare const DEFAULT_GENERATOR: GeneratorStamp
|
|
41
|
+
export declare const DEFAULT_GENERATOR: Readonly<GeneratorStamp>;
|
|
42
42
|
export declare const DOCUMENT_KINDS: readonly ["triangle", "selection", "method-result", "stochastic-result", "study", "bundle", "crosscheck-report", "diagnostic-definition"];
|
|
43
43
|
export type DocumentKind = (typeof DOCUMENT_KINDS)[number];
|
|
44
44
|
/** A 16-hex-char fnv1a64 tag. */
|
|
@@ -72,8 +72,8 @@ export declare function envelopeShape<K extends DocumentKind>(kind: K): {
|
|
|
72
72
|
name: z.ZodString;
|
|
73
73
|
version: z.ZodString;
|
|
74
74
|
}, z.ZodTypeAny, "passthrough">>;
|
|
75
|
-
createdAt: z.ZodString
|
|
76
|
-
extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown
|
|
75
|
+
createdAt: z.ZodEffects<z.ZodString, string, string>;
|
|
76
|
+
extensions: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodEffects<z.ZodString, string, string>, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
|
|
77
77
|
integrity: z.ZodString;
|
|
78
78
|
};
|
|
79
79
|
/** Minimal structural view of a document for integrity/version helpers. */
|
package/dist/envelope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,wDAAwD;AACxD,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAGrD,CAAC;AAEH,eAAO,MAAM,cAAc,2IASjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAkB3D,iCAAiC;AACjC,eAAO,MAAM,eAAe,aAAqC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;;;gCAEZ,CAAC;AAEjB;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC;;;;;;;;;;;;;;;;EAe5D;AAED,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAoBzD;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAE1D;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,CAAC,SAAS,YAAY,EACnD,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,GACvC,CAAC,CAEH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,cAAc,CAKjE;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAmB7D"}
|
package/dist/envelope.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ReservingError, canonicalJson, fnv1a64 } from "@actuarial-ts/core";
|
|
1
|
+
import { ReservingError, canonicalJson, fnv1a64, isRealIsoDate, } from "@actuarial-ts/core";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
+
import { recordSchema } from "./schemas/record.js";
|
|
3
4
|
/**
|
|
4
5
|
* The interchange document envelope (spec 3.1 / 3.5).
|
|
5
6
|
*
|
|
@@ -33,12 +34,12 @@ export const INTERCHANGE_SPEC_MAJOR = 1;
|
|
|
33
34
|
* This package's version, stamped into `generator` by default. A sync test
|
|
34
35
|
* asserts it matches package.json so it cannot silently drift.
|
|
35
36
|
*/
|
|
36
|
-
export const INTERCHANGE_PACKAGE_VERSION = "0.6.
|
|
37
|
+
export const INTERCHANGE_PACKAGE_VERSION = "0.6.1";
|
|
37
38
|
/** Default `generator` stamp for documents authored by this package. */
|
|
38
|
-
export const DEFAULT_GENERATOR = {
|
|
39
|
+
export const DEFAULT_GENERATOR = Object.freeze({
|
|
39
40
|
name: "@actuarial-ts/interchange",
|
|
40
41
|
version: INTERCHANGE_PACKAGE_VERSION,
|
|
41
|
-
};
|
|
42
|
+
});
|
|
42
43
|
export const DOCUMENT_KINDS = [
|
|
43
44
|
"triangle",
|
|
44
45
|
"selection",
|
|
@@ -80,8 +81,11 @@ export function envelopeShape(kind) {
|
|
|
80
81
|
interchangeVersion: z.string().regex(/^\d+\.\d+\.\d+$/),
|
|
81
82
|
kind: z.literal(kind),
|
|
82
83
|
generator: generatorSchema,
|
|
83
|
-
createdAt: z
|
|
84
|
-
|
|
84
|
+
createdAt: z
|
|
85
|
+
.string()
|
|
86
|
+
.datetime({ offset: true })
|
|
87
|
+
.refine((value) => isRealIsoDate(value.slice(0, 10)), "expected a real Gregorian timestamp"),
|
|
88
|
+
extensions: recordSchema(z.unknown()).optional(),
|
|
85
89
|
integrity: integritySchema,
|
|
86
90
|
};
|
|
87
91
|
}
|
package/dist/envelope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/json.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Own the complete JSON document without dropping forward-compatible keys.
|
|
2
|
+
* Use the generic interchange JSON contract, not the stricter diagnostic
|
|
3
|
+
* identifier profile: opaque JSON strings may contain escaped control codes. */
|
|
4
|
+
export declare function snapshotInterchangeJson<T>(value: T): T;
|
|
5
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAEA;;gFAEgF;AAChF,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAWtD"}
|
package/dist/json.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReservingError, canonicalJson } from "@actuarial-ts/core";
|
|
2
|
+
/** Own the complete JSON document without dropping forward-compatible keys.
|
|
3
|
+
* Use the generic interchange JSON contract, not the stricter diagnostic
|
|
4
|
+
* identifier profile: opaque JSON strings may contain escaped control codes. */
|
|
5
|
+
export function snapshotInterchangeJson(value) {
|
|
6
|
+
try {
|
|
7
|
+
return JSON.parse(canonicalJson(value));
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
throw new ReservingError("BAD_INTERCHANGE", `An interchange document must contain only JSON values: ${error instanceof Error ? error.message : String(error)}`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=json.js.map
|
package/dist/json.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;gFAEgF;AAChF,MAAM,UAAU,uBAAuB,CAAI,KAAQ;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAM,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CACtB,iBAAiB,EACjB,0DACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAGjF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,QAAQ,GACR,SAAS,GACT,mBAAmB,GACnB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAyCD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,oBAAyB,GACjC,cAAc,CA+FhB"}
|
package/dist/parse.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ReservingError } from "@actuarial-ts/core";
|
|
2
2
|
import { DOCUMENT_KINDS, acceptVersion, verifyIntegrity, } from "./envelope.js";
|
|
3
3
|
import { INTERCHANGE_SCHEMA_MANIFEST } from "./schemas/manifest.js";
|
|
4
|
+
import { snapshotInterchangeJson } from "./json.js";
|
|
4
5
|
const SCHEMA_BY_KIND = new Map(INTERCHANGE_SCHEMA_MANIFEST.map((entry) => [entry.kind, entry.schema]));
|
|
5
6
|
function formatZodError(error) {
|
|
6
7
|
return error.issues
|
|
@@ -49,11 +50,15 @@ export function parseDocument(value, options = {}) {
|
|
|
49
50
|
if (schema === undefined) {
|
|
50
51
|
throw new ReservingError("BAD_INTERCHANGE", `Unknown document kind ${JSON.stringify(kind)}; this reader understands: ${DOCUMENT_KINDS.join(", ")}`);
|
|
51
52
|
}
|
|
52
|
-
const
|
|
53
|
+
const snapshot = snapshotInterchangeJson(raw);
|
|
54
|
+
const parsed = schema.safeParse(snapshot);
|
|
53
55
|
if (!parsed.success) {
|
|
54
56
|
throw new ReservingError("BAD_INTERCHANGE", `Document of kind "${String(kind)}" failed schema validation: ${formatZodError(parsed.error)}`);
|
|
55
57
|
}
|
|
56
|
-
|
|
58
|
+
// These wire schemas validate only: no defaults, coercions, or semantic
|
|
59
|
+
// transforms. Keep the owned input snapshot because Zod 3's passthrough
|
|
60
|
+
// object assembler otherwise drops unknown own `__proto__` properties.
|
|
61
|
+
const doc = snapshot;
|
|
57
62
|
const warnings = [];
|
|
58
63
|
const integrity = verifyIntegrity(doc);
|
|
59
64
|
if (!integrity.ok) {
|
package/dist/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAEL,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1795,8 +1795,8 @@ export declare const crosscheckReportDocSchema: z.ZodObject<{
|
|
|
1795
1795
|
name: z.ZodString;
|
|
1796
1796
|
version: z.ZodString;
|
|
1797
1797
|
}, z.ZodTypeAny, "passthrough">>;
|
|
1798
|
-
createdAt: z.ZodString
|
|
1799
|
-
extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown
|
|
1798
|
+
createdAt: z.ZodEffects<z.ZodString, string, string>;
|
|
1799
|
+
extensions: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodEffects<z.ZodString, string, string>, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
|
|
1800
1800
|
integrity: z.ZodString;
|
|
1801
1801
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1802
1802
|
/** Semantic body key per spec rev 2.1: `report` (the head-noun rule). */
|
|
@@ -2677,8 +2677,8 @@ export declare const crosscheckReportDocSchema: z.ZodObject<{
|
|
|
2677
2677
|
name: z.ZodString;
|
|
2678
2678
|
version: z.ZodString;
|
|
2679
2679
|
}, z.ZodTypeAny, "passthrough">>;
|
|
2680
|
-
createdAt: z.ZodString
|
|
2681
|
-
extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown
|
|
2680
|
+
createdAt: z.ZodEffects<z.ZodString, string, string>;
|
|
2681
|
+
extensions: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodEffects<z.ZodString, string, string>, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
|
|
2682
2682
|
integrity: z.ZodString;
|
|
2683
2683
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
2684
2684
|
/** Semantic body key per spec rev 2.1: `report` (the head-noun rule). */
|
|
@@ -3559,8 +3559,8 @@ export declare const crosscheckReportDocSchema: z.ZodObject<{
|
|
|
3559
3559
|
name: z.ZodString;
|
|
3560
3560
|
version: z.ZodString;
|
|
3561
3561
|
}, z.ZodTypeAny, "passthrough">>;
|
|
3562
|
-
createdAt: z.ZodString
|
|
3563
|
-
extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown
|
|
3562
|
+
createdAt: z.ZodEffects<z.ZodString, string, string>;
|
|
3563
|
+
extensions: z.ZodOptional<z.ZodEffects<z.ZodRecord<z.ZodEffects<z.ZodString, string, string>, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>>;
|
|
3564
3564
|
integrity: z.ZodString;
|
|
3565
3565
|
}, z.ZodTypeAny, "passthrough">>;
|
|
3566
3566
|
export type CrosscheckReportDoc = z.infer<typeof crosscheckReportDocSchema>;
|