@actuarial-ts/interchange 0.4.0 → 0.6.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 +36 -70
- package/dist/convert/diagnosticDefinition.d.ts +15 -0
- package/dist/convert/diagnosticDefinition.d.ts.map +1 -0
- package/dist/convert/diagnosticDefinition.js +47 -0
- package/dist/convert/diagnosticDefinition.js.map +1 -0
- package/dist/convert/result.d.ts.map +1 -1
- package/dist/convert/result.js +2 -2
- package/dist/convert/result.js.map +1 -1
- package/dist/envelope.d.ts +3 -3
- package/dist/envelope.d.ts.map +1 -1
- package/dist/envelope.js +4 -2
- package/dist/envelope.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/parse.d.ts +2 -1
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +1 -0
- package/dist/parse.js.map +1 -1
- package/dist/schemas/bundle.d.ts +2 -0
- package/dist/schemas/bundle.d.ts.map +1 -1
- package/dist/schemas/bundle.js +2 -0
- package/dist/schemas/bundle.js.map +1 -1
- package/dist/schemas/diagnosticDefinition.d.ts +11500 -0
- package/dist/schemas/diagnosticDefinition.d.ts.map +1 -0
- package/dist/schemas/diagnosticDefinition.js +132 -0
- package/dist/schemas/diagnosticDefinition.js.map +1 -0
- package/dist/schemas/manifest.d.ts.map +1 -1
- package/dist/schemas/manifest.js +7 -1
- package/dist/schemas/manifest.js.map +1 -1
- package/package.json +3 -3
- package/src/convert/diagnosticDefinition.ts +75 -0
- package/src/convert/result.ts +2 -1
- package/src/envelope.ts +4 -2
- package/src/index.ts +2 -0
- package/src/parse.ts +4 -1
- package/src/schemas/bundle.ts +3 -0
- package/src/schemas/diagnosticDefinition.ts +171 -0
- package/src/schemas/manifest.ts +7 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticDefinition.d.ts","sourceRoot":"","sources":["../../src/schemas/diagnosticDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQpE,eAAO,MAAM,iCAAiC,EAAE,CAAC,CAAC,UAMjD,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,CAAC,CAAC,UAO/C,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,CAAC,CAAC,UAM9C,CAAC;AAqEF;;;;GAIG;AACH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA2BjC,CAAC;AAEjB,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,sCAAsC,CAAC;IACnD,UAAU,EAAE,8BAA8B,CAAC;CAC5C;AAED,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,cAAc,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,wBAAwB,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,eAAO,MAAM,8BAA8B,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAM/D,CAAC;AAEjB,eAAO,MAAM,6BAA6B,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAE7D,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { envelopeShape } from "../envelope.js";
|
|
3
|
+
const token = z.string().min(1);
|
|
4
|
+
const finite = z.number().finite();
|
|
5
|
+
const nullableToken = token.nullable();
|
|
6
|
+
const attributes = z.record(z.union([z.string(), finite, z.boolean(), z.null()]));
|
|
7
|
+
const tolerance = z.object({ absolute: finite.nonnegative(), relative: finite.nonnegative() }).passthrough();
|
|
8
|
+
export const diagnosticMeasureExpressionSchema = z.lazy(() => z.discriminatedUnion("op", [
|
|
9
|
+
z.object({ op: z.literal("measure"), measureId: token }).passthrough(),
|
|
10
|
+
z.object({ op: z.literal("add"), terms: z.array(diagnosticMeasureExpressionSchema).min(1) }).passthrough(),
|
|
11
|
+
z.object({ op: z.literal("subtract"), left: diagnosticMeasureExpressionSchema, right: diagnosticMeasureExpressionSchema }).passthrough(),
|
|
12
|
+
]));
|
|
13
|
+
export const diagnosticClaimExpressionSchema = z.lazy(() => z.discriminatedUnion("op", [
|
|
14
|
+
z.object({ op: z.literal("measure"), measureId: token }).passthrough(),
|
|
15
|
+
z.object({ op: z.literal("add"), terms: z.array(diagnosticClaimExpressionSchema).min(1) }).passthrough(),
|
|
16
|
+
z.object({ op: z.literal("subtract"), left: diagnosticClaimExpressionSchema, right: diagnosticClaimExpressionSchema }).passthrough(),
|
|
17
|
+
z.object({ op: z.literal("claim-layer"), measureId: token, attachment: finite.nonnegative(), limit: finite.positive().nullable() }).passthrough(),
|
|
18
|
+
]));
|
|
19
|
+
export const diagnosticRoleExpressionSchema = z.lazy(() => z.discriminatedUnion("op", [
|
|
20
|
+
z.object({ op: z.literal("role"), role: token }).passthrough(),
|
|
21
|
+
z.object({ op: z.literal("add"), terms: z.array(diagnosticRoleExpressionSchema).min(1) }).passthrough(),
|
|
22
|
+
z.object({ op: z.literal("subtract"), left: diagnosticRoleExpressionSchema, right: diagnosticRoleExpressionSchema }).passthrough(),
|
|
23
|
+
]));
|
|
24
|
+
const limitation = z.discriminatedUnion("kind", [
|
|
25
|
+
z.object({ kind: z.literal("unlimited") }).passthrough(),
|
|
26
|
+
z.object({ kind: z.literal("unknown"), description: z.string().nullable() }).passthrough(),
|
|
27
|
+
z.object({
|
|
28
|
+
kind: z.enum(["layer", "pre-limited"]),
|
|
29
|
+
attachment: finite.nonnegative(),
|
|
30
|
+
limit: finite.positive().nullable(),
|
|
31
|
+
application: z.enum(["claim", "occurrence", "policy", "source-defined"]),
|
|
32
|
+
derivation: z.discriminatedUnion("kind", [
|
|
33
|
+
z.object({ kind: z.literal("sdk") }).passthrough(),
|
|
34
|
+
z.object({ kind: z.literal("external"), actor: z.enum(["caller", "source"]), transformationRef: token }).passthrough(),
|
|
35
|
+
]),
|
|
36
|
+
}).passthrough(),
|
|
37
|
+
]);
|
|
38
|
+
const ruleOperand = z.discriminatedUnion("source", [
|
|
39
|
+
z.object({ source: z.literal("measure"), expression: diagnosticMeasureExpressionSchema }).passthrough(),
|
|
40
|
+
z.object({ source: z.literal("calculation"), field: z.enum(["numerator", "denominator"]) }).passthrough(),
|
|
41
|
+
z.object({ source: z.literal("constant"), value: finite }).passthrough(),
|
|
42
|
+
]);
|
|
43
|
+
const operator = z.enum(["lt", "lte", "eq", "neq", "gte", "gt"]);
|
|
44
|
+
const reviewOperand = z.union([
|
|
45
|
+
diagnosticMeasureExpressionSchema,
|
|
46
|
+
z.object({ op: z.literal("constant"), value: finite }).passthrough(),
|
|
47
|
+
]);
|
|
48
|
+
const reviewBase = {
|
|
49
|
+
id: token,
|
|
50
|
+
code: token,
|
|
51
|
+
description: z.string(),
|
|
52
|
+
severity: z.enum(["warning", "fail"]),
|
|
53
|
+
missingInput: z.enum(["not-evaluated", "finding"]),
|
|
54
|
+
tolerance,
|
|
55
|
+
};
|
|
56
|
+
const reviewFilter = z.object({
|
|
57
|
+
sourceGroups: z.array(token).nullable(), origins: z.array(token).nullable(),
|
|
58
|
+
originFrom: nullableToken, originThrough: nullableToken, valuations: z.array(token).nullable(),
|
|
59
|
+
valuationFrom: nullableToken, valuationThrough: nullableToken,
|
|
60
|
+
minDevelopmentAge: finite.nullable(), maxDevelopmentAge: finite.nullable(),
|
|
61
|
+
}).passthrough();
|
|
62
|
+
const reviewRule = z.discriminatedUnion("kind", [
|
|
63
|
+
z.object({ ...reviewBase, kind: z.literal("compare"), when: z.object({ left: reviewOperand, operator, right: reviewOperand }).passthrough() }).passthrough(),
|
|
64
|
+
z.object({ ...reviewBase, kind: z.literal("reconcile"), actual: diagnosticMeasureExpressionSchema, expected: reviewOperand }).passthrough(),
|
|
65
|
+
z.object({ ...reviewBase, kind: z.literal("monotonic"), expression: diagnosticMeasureExpressionSchema, direction: z.enum(["nondecreasing", "nonincreasing"]) }).passthrough(),
|
|
66
|
+
z.object({ ...reviewBase, kind: z.literal("layer-order"), narrower: diagnosticMeasureExpressionSchema, broader: diagnosticMeasureExpressionSchema, comparability: z.discriminatedUnion("kind", [
|
|
67
|
+
z.object({ kind: z.literal("compiler-proven") }).passthrough(),
|
|
68
|
+
z.object({ kind: z.literal("caller-asserted"), rationaleArtifactId: token }).passthrough(),
|
|
69
|
+
]) }).passthrough(),
|
|
70
|
+
z.object({ ...reviewBase, kind: z.literal("control-total"), expression: diagnosticMeasureExpressionSchema, expected: finite, filter: reviewFilter.nullable(), projection: z.discriminatedUnion("kind", [
|
|
71
|
+
z.object({ kind: z.literal("valuation"), valuation: token }).passthrough(),
|
|
72
|
+
z.object({ kind: z.literal("latest-valuation-per-origin") }).passthrough(),
|
|
73
|
+
z.object({ kind: z.literal("all-cells") }).passthrough(),
|
|
74
|
+
]) }).passthrough(),
|
|
75
|
+
]);
|
|
76
|
+
const periodAxis = z.discriminatedUnion("kind", [
|
|
77
|
+
z.object({
|
|
78
|
+
kind: z.literal("calendar"), originCadence: z.enum(["month", "quarter", "year"]),
|
|
79
|
+
valuationCadence: z.enum(["month", "quarter", "year"]), originAnchor: z.enum(["start", "end"]),
|
|
80
|
+
valuationAnchor: z.enum(["start", "end"]), ageUnit: z.literal("month"), ageOffset: finite,
|
|
81
|
+
}).passthrough(),
|
|
82
|
+
z.object({
|
|
83
|
+
kind: z.literal("ordered"), id: token, version: token, ageUnit: token, ageOffset: finite,
|
|
84
|
+
origins: z.array(z.object({ label: token, aliases: z.array(token), coordinate: finite }).passthrough()),
|
|
85
|
+
valuations: z.array(z.object({ label: token, aliases: z.array(token), coordinate: finite }).passthrough()),
|
|
86
|
+
}).passthrough(),
|
|
87
|
+
]);
|
|
88
|
+
/**
|
|
89
|
+
* Generic wire schema for the normalized diagnostic vocabulary. Known fields
|
|
90
|
+
* are validated and same-major additions are preserved recursively; the
|
|
91
|
+
* executable converter applies core's closed semantic compiler afterward.
|
|
92
|
+
*/
|
|
93
|
+
export const normalizedDiagnosticDefinitionSchema = z.object({
|
|
94
|
+
diagnosticDefinitionVersion: z.literal("1.0.0"), id: token, version: token,
|
|
95
|
+
lossRowGrain: z.enum(["claim", "aggregate"]),
|
|
96
|
+
measures: z.array(z.object({
|
|
97
|
+
id: token, displayName: z.string(), description: z.string(), source: z.enum(["loss", "exposure", "derived"]),
|
|
98
|
+
kind: z.enum(["count", "amount", "exposure"]), unit: token,
|
|
99
|
+
developmentSemantics: z.enum(["cumulative", "incremental", "point-in-time", "unknown"]),
|
|
100
|
+
aggregation: z.literal("sum"), missing: z.enum(["unknown", "zero"]), basisId: nullableToken,
|
|
101
|
+
countPopulationId: nullableToken, exposureBasisId: nullableToken,
|
|
102
|
+
exposureTiming: z.enum(["origin-static", "valuation-specific"]).nullable(),
|
|
103
|
+
}).passthrough()),
|
|
104
|
+
countPopulations: z.array(z.object({ id: token, displayName: z.string(), subject: z.enum(["claim", "claimant", "policy", "occurrence", "other", "unknown"]), unit: token, description: z.string(), attributes }).passthrough()),
|
|
105
|
+
exposureBases: z.array(z.object({ id: token, displayName: z.string(), basis: z.enum(["earned", "written", "in-force", "other", "unknown"]), unit: token, description: z.string(), sourceDescription: z.string().nullable(), attributes }).passthrough()),
|
|
106
|
+
amountBases: z.array(z.object({ id: token, displayName: z.string(), currency: token, perspective: z.enum(["gross", "net", "ceded", "other", "unknown"]), components: z.array(z.object({ id: token, treatment: z.enum(["included", "excluded", "unknown"]), limitation }).passthrough()), sourceDescription: z.string().nullable(), attributes }).passthrough()),
|
|
107
|
+
derivedMeasures: z.array(z.object({ id: token, outputMeasureId: token, expression: diagnosticClaimExpressionSchema }).passthrough()),
|
|
108
|
+
formulas: z.array(z.object({
|
|
109
|
+
id: token, version: token,
|
|
110
|
+
roles: z.record(z.object({ kind: z.enum(["count", "amount", "exposure"]), compatibilityGroup: nullableToken, developmentSemantics: z.enum(["cumulative", "incremental", "point-in-time", "unknown"]).nullable() }).passthrough()),
|
|
111
|
+
numerator: diagnosticRoleExpressionSchema, denominator: diagnosticRoleExpressionSchema,
|
|
112
|
+
denominatorPolicy: z.literal("positive-or-null"),
|
|
113
|
+
}).passthrough()),
|
|
114
|
+
instances: z.array(z.object({
|
|
115
|
+
id: token, version: token, formulaId: token, bindings: z.record(diagnosticMeasureExpressionSchema),
|
|
116
|
+
presentation: z.object({ displayName: z.string(), description: z.string(), displayUnit: token, scale: finite.positive(), numeratorLabel: z.string(), denominatorLabel: z.string() }).passthrough(),
|
|
117
|
+
rules: z.array(z.object({ id: token, code: token, message: z.string(), severity: z.enum(["warning", "fail"]), when: z.object({ left: ruleOperand, operator, right: ruleOperand, tolerance }).passthrough() }).passthrough()),
|
|
118
|
+
}).passthrough()),
|
|
119
|
+
reviewRules: z.array(reviewRule), periodAxis,
|
|
120
|
+
}).passthrough();
|
|
121
|
+
const identityTag = z.string().regex(/^fnv1a64-jcs-v1:[0-9a-f]{16}$/);
|
|
122
|
+
export const diagnosticDefinitionBodySchema = z.object({
|
|
123
|
+
definition: normalizedDiagnosticDefinitionSchema,
|
|
124
|
+
identities: z.object({
|
|
125
|
+
algorithm: z.literal("fnv1a64-jcs-v1"), formulaById: z.record(identityTag),
|
|
126
|
+
calculationByInstanceId: z.record(identityTag), definition: identityTag,
|
|
127
|
+
}).passthrough(),
|
|
128
|
+
}).passthrough();
|
|
129
|
+
export const diagnosticDefinitionDocSchema = z.object({
|
|
130
|
+
...envelopeShape("diagnostic-definition"), diagnosticDefinition: diagnosticDefinitionBodySchema,
|
|
131
|
+
}).passthrough();
|
|
132
|
+
//# sourceMappingURL=diagnosticDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticDefinition.js","sourceRoot":"","sources":["../../src/schemas/diagnosticDefinition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAuB,MAAM,gBAAgB,CAAC;AAEpE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;AACnC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACvC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClF,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAE7G,MAAM,CAAC,MAAM,iCAAiC,GAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACzE,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE;IACzB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE;IACtE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAC1G,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC,WAAW,EAAE;CACzI,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACvE,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE;IACzB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE;IACtE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACxG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC,WAAW,EAAE;IACpI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;CAClJ,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACtE,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE;IACzB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE;IAC9D,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACvG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC,WAAW,EAAE;CACnI,CAAC,CACH,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC9C,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACxD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;IAC1F,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE;QAChC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACnC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACxE,UAAU,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACvC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAClD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE;SACvH,CAAC;KACH,CAAC,CAAC,WAAW,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACjD,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,iCAAiC,EAAE,CAAC,CAAC,WAAW,EAAE;IACvG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACzG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE;CACzE,CAAC,CAAC;AACH,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACjE,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;IAC5B,iCAAiC;IACjC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE;CACrE,CAAC,CAAC;AACH,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAClD,SAAS;CACV,CAAC;AACF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC3E,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC9F,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa;IAC7D,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE;CAC3E,CAAC,CAAC,WAAW,EAAE,CAAC;AACjB,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC9C,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;IAC5J,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,WAAW,EAAE;IAC3I,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,iCAAiC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAC7K,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EAAE,iCAAiC,EAAE,aAAa,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC7L,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAC9D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE;SAC3F,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACnB,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,iCAAiC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACrM,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE;YAC1E,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAC1E,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;SACzD,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC9C,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAChF,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9F,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM;KAC1F,CAAC,CAAC,WAAW,EAAE;IAChB,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM;QACxF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACvG,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;KAC3G,CAAC,CAAC,WAAW,EAAE;CACjB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;IAC1E,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACzB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC5G,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK;QAC1D,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QACvF,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa;QAC3F,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa;QAChE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC3E,CAAC,CAAC,WAAW,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/N,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxP,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/V,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,+BAA+B,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpI,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACzB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,kBAAkB,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACjO,SAAS,EAAE,8BAA8B,EAAE,WAAW,EAAE,8BAA8B;QACtF,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;KACjD,CAAC,CAAC,WAAW,EAAE,CAAC;IACjB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,iCAAiC,CAAC;QAClG,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;QAClM,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;KAC7N,CAAC,CAAC,WAAW,EAAE,CAAC;IACjB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU;CAC7C,CAAC,CAAC,WAAW,EAAE,CAAC;AAyBjB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAwC,CAAC,CAAC,MAAM,CAAC;IAC1F,UAAU,EAAE,oCAAyF;IACrG,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QAC1E,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,WAAW;KACxE,CAAC,CAAC,WAAW,EAAE;CACjB,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,6BAA6B,GAAuC,CAAC,CAAC,MAAM,CAAC;IACxF,GAAG,aAAa,CAAC,uBAAuB,CAAC,EAAE,oBAAoB,EAAE,8BAA8B;CAChG,CAAC,CAAC,WAAW,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/schemas/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/schemas/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AASnD;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;CACtB;AAED,eAAO,MAAM,2BAA2B,EAAE,SAAS,mBAAmB,EAqBrE,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAE3F;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,GACpE,aAAa,EAAE,CAMjB"}
|
package/dist/schemas/manifest.js
CHANGED
|
@@ -4,6 +4,7 @@ import { methodResultDocSchema, stochasticResultDocSchema } from "./result.js";
|
|
|
4
4
|
import { studyDocSchema } from "./study.js";
|
|
5
5
|
import { bundleDocSchema } from "./bundle.js";
|
|
6
6
|
import { crosscheckReportDocSchema } from "./crosscheck.js";
|
|
7
|
+
import { diagnosticDefinitionDocSchema } from "./diagnosticDefinition.js";
|
|
7
8
|
export const INTERCHANGE_SCHEMA_MANIFEST = [
|
|
8
9
|
{ kind: "triangle", fileName: "triangle.schema.json", schema: triangleDocSchema },
|
|
9
10
|
{ kind: "selection", fileName: "selection.schema.json", schema: selectionDocSchema },
|
|
@@ -20,10 +21,15 @@ export const INTERCHANGE_SCHEMA_MANIFEST = [
|
|
|
20
21
|
fileName: "crosscheck-report.schema.json",
|
|
21
22
|
schema: crosscheckReportDocSchema,
|
|
22
23
|
},
|
|
24
|
+
{
|
|
25
|
+
kind: "diagnostic-definition",
|
|
26
|
+
fileName: "diagnostic-definition.schema.json",
|
|
27
|
+
schema: diagnosticDefinitionDocSchema,
|
|
28
|
+
},
|
|
23
29
|
];
|
|
24
30
|
/** Options both the emit script and the drift test must pass to the converter. */
|
|
25
31
|
export function emitOptionsFor(kind) {
|
|
26
|
-
return { name: kind, target: "jsonSchema7", $refStrategy: "
|
|
32
|
+
return { name: kind, target: "jsonSchema7", $refStrategy: "root" };
|
|
27
33
|
}
|
|
28
34
|
/**
|
|
29
35
|
* Emits every document kind's JSON Schema through the supplied converter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/schemas/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/schemas/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAyB1E,MAAM,CAAC,MAAM,2BAA2B,GAAmC;IACzE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE;IACjF,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,kBAAkB,EAAE;IACpF,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,qBAAqB,EAAE;IAC/F;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,yBAAyB;KAClC;IACD,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE;IACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE;IAC3E;QACE,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,yBAAyB;KAClC;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,mCAAmC;QAC7C,MAAM,EAAE,6BAA6B;KACtC;CACF,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AACrE,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqE;IAErE,OAAO,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;KAC/E,CAAC,CAAC,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actuarial-ts/interchange",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Language-neutral actuarial-interchange documents for triangles, selections, results, studies, bundles, crosschecks, and portable diagnostic definitions across TypeScript, Python, and R.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"emit-schema": "npm run build && node --experimental-strip-types scripts/emit-schema.ts"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@actuarial-ts/core": "^0.
|
|
56
|
+
"@actuarial-ts/core": "^0.6.0",
|
|
57
57
|
"zod": "^3.25.76"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ReservingError,
|
|
3
|
+
assertCompiledDiagnosticDefinition,
|
|
4
|
+
canonicalJson,
|
|
5
|
+
compileDiagnosticDefinition,
|
|
6
|
+
type CompiledDiagnosticDefinition,
|
|
7
|
+
} from "@actuarial-ts/core";
|
|
8
|
+
import { DEFAULT_GENERATOR, INTERCHANGE_SPEC_VERSION, stampIntegrity, type GeneratorStamp } from "../envelope.js";
|
|
9
|
+
import { parseDocument, type ParseDocumentOptions } from "../parse.js";
|
|
10
|
+
import type { DiagnosticDefinitionDoc } from "../schemas/diagnosticDefinition.js";
|
|
11
|
+
|
|
12
|
+
export interface DiagnosticDefinitionToDocOptions {
|
|
13
|
+
createdAt: string;
|
|
14
|
+
generator?: GeneratorStamp;
|
|
15
|
+
extensions?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function diagnosticDefinitionToDoc(
|
|
19
|
+
compiled: CompiledDiagnosticDefinition,
|
|
20
|
+
options: DiagnosticDefinitionToDocOptions,
|
|
21
|
+
): DiagnosticDefinitionDoc {
|
|
22
|
+
assertCompiledDiagnosticDefinition(compiled);
|
|
23
|
+
return stampIntegrity<DiagnosticDefinitionDoc>({
|
|
24
|
+
interchangeVersion: INTERCHANGE_SPEC_VERSION,
|
|
25
|
+
kind: "diagnostic-definition",
|
|
26
|
+
generator: options.generator ?? DEFAULT_GENERATOR,
|
|
27
|
+
createdAt: options.createdAt,
|
|
28
|
+
...(options.extensions === undefined ? {} : { extensions: options.extensions }),
|
|
29
|
+
diagnosticDefinition: {
|
|
30
|
+
definition: compiled.definition,
|
|
31
|
+
identities: {
|
|
32
|
+
algorithm: "fnv1a64-jcs-v1",
|
|
33
|
+
formulaById: { ...compiled.formulaFingerprints },
|
|
34
|
+
calculationByInstanceId: { ...compiled.calculationFingerprints },
|
|
35
|
+
definition: compiled.definitionIntegrity,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function sameRecord(left: Readonly<Record<string, string>>, right: Readonly<Record<string, string>>): boolean {
|
|
42
|
+
const leftKeys = Object.keys(left).sort();
|
|
43
|
+
const rightKeys = Object.keys(right).sort();
|
|
44
|
+
return leftKeys.length === rightKeys.length && leftKeys.every((key, index) =>
|
|
45
|
+
key === rightKeys[index] && left[key] === right[key],
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function docToDiagnosticDefinition(
|
|
50
|
+
value: unknown,
|
|
51
|
+
options?: ParseDocumentOptions,
|
|
52
|
+
): { definition: CompiledDiagnosticDefinition; warnings: readonly string[] } {
|
|
53
|
+
const parsed = parseDocument(value, options);
|
|
54
|
+
if (parsed.doc.kind !== "diagnostic-definition") {
|
|
55
|
+
throw new ReservingError("BAD_INTERCHANGE", `Expected kind "diagnostic-definition"; got kind "${parsed.doc.kind}"`);
|
|
56
|
+
}
|
|
57
|
+
const body = parsed.doc.diagnosticDefinition;
|
|
58
|
+
const compiled = compileDiagnosticDefinition(body.definition);
|
|
59
|
+
if (canonicalJson(body.definition) !== canonicalJson(compiled.definition)) {
|
|
60
|
+
throw new ReservingError(
|
|
61
|
+
"BAD_INTERCHANGE",
|
|
62
|
+
"Diagnostic definition contains unsupported executable vocabulary or is not in normalized form",
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
const identities = body.identities;
|
|
66
|
+
if (
|
|
67
|
+
identities.algorithm !== "fnv1a64-jcs-v1" ||
|
|
68
|
+
identities.definition !== compiled.definitionIntegrity ||
|
|
69
|
+
!sameRecord(identities.formulaById, compiled.formulaFingerprints) ||
|
|
70
|
+
!sameRecord(identities.calculationByInstanceId, compiled.calculationFingerprints)
|
|
71
|
+
) {
|
|
72
|
+
throw new ReservingError("BAD_INTERCHANGE", "Diagnostic definition identities do not match the compiled semantic definition");
|
|
73
|
+
}
|
|
74
|
+
return { definition: compiled, warnings: parsed.warnings };
|
|
75
|
+
}
|
package/src/convert/result.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
type BornhuetterFergusonResult,
|
|
4
4
|
type ChainLadderResult,
|
|
5
5
|
type MackResult,
|
|
6
|
+
CORE_PACKAGE_VERSION,
|
|
6
7
|
ReservingError,
|
|
7
8
|
} from "@actuarial-ts/core";
|
|
8
9
|
import {
|
|
@@ -46,7 +47,7 @@ export type ConvertibleResult =
|
|
|
46
47
|
* The engine stamp for results computed by @actuarial-ts/core. A sync test
|
|
47
48
|
* pins the version to the installed core package so it cannot drift.
|
|
48
49
|
*/
|
|
49
|
-
export const CORE_ENGINE: EngineStamp = { name: "actuarial-ts", version:
|
|
50
|
+
export const CORE_ENGINE: EngineStamp = { name: "actuarial-ts", version: CORE_PACKAGE_VERSION };
|
|
50
51
|
|
|
51
52
|
export interface ResultToDocOptions {
|
|
52
53
|
/** The triangle document the result was computed from. */
|
package/src/envelope.ts
CHANGED
|
@@ -28,7 +28,7 @@ import { z } from "zod";
|
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
30
|
/** The interchange spec version this package writes. */
|
|
31
|
-
export const INTERCHANGE_SPEC_VERSION = "1.
|
|
31
|
+
export const INTERCHANGE_SPEC_VERSION = "1.1.0";
|
|
32
32
|
|
|
33
33
|
/** The spec major this package accepts (spec 3.5: readers accept same-major). */
|
|
34
34
|
export const INTERCHANGE_SPEC_MAJOR = 1;
|
|
@@ -37,7 +37,7 @@ export const INTERCHANGE_SPEC_MAJOR = 1;
|
|
|
37
37
|
* This package's version, stamped into `generator` by default. A sync test
|
|
38
38
|
* asserts it matches package.json so it cannot silently drift.
|
|
39
39
|
*/
|
|
40
|
-
export const INTERCHANGE_PACKAGE_VERSION = "0.
|
|
40
|
+
export const INTERCHANGE_PACKAGE_VERSION = "0.6.0";
|
|
41
41
|
|
|
42
42
|
export interface GeneratorStamp {
|
|
43
43
|
name: string;
|
|
@@ -58,6 +58,7 @@ export const DOCUMENT_KINDS = [
|
|
|
58
58
|
"study",
|
|
59
59
|
"bundle",
|
|
60
60
|
"crosscheck-report",
|
|
61
|
+
"diagnostic-definition",
|
|
61
62
|
] as const;
|
|
62
63
|
|
|
63
64
|
export type DocumentKind = (typeof DOCUMENT_KINDS)[number];
|
|
@@ -75,6 +76,7 @@ const SEMANTIC_BODY_KEYS: Record<DocumentKind, readonly string[]> = {
|
|
|
75
76
|
study: ["study"],
|
|
76
77
|
bundle: ["bundle", "interchange"],
|
|
77
78
|
"crosscheck-report": ["report"],
|
|
79
|
+
"diagnostic-definition": ["diagnosticDefinition"],
|
|
78
80
|
};
|
|
79
81
|
|
|
80
82
|
/** A 16-hex-char fnv1a64 tag. */
|
package/src/index.ts
CHANGED
|
@@ -6,10 +6,12 @@ export * from "./schemas/result.js";
|
|
|
6
6
|
export * from "./schemas/study.js";
|
|
7
7
|
export * from "./schemas/bundle.js";
|
|
8
8
|
export * from "./schemas/crosscheck.js";
|
|
9
|
+
export * from "./schemas/diagnosticDefinition.js";
|
|
9
10
|
export * from "./schemas/manifest.js";
|
|
10
11
|
export * from "./convert/triangle.js";
|
|
11
12
|
export * from "./convert/selection.js";
|
|
12
13
|
export * from "./convert/result.js";
|
|
14
|
+
export * from "./convert/diagnosticDefinition.js";
|
|
13
15
|
export * from "./referee/profiles.js";
|
|
14
16
|
export * from "./referee/crosscheck.js";
|
|
15
17
|
export * from "./referee/crosscheckStochastic.js";
|
package/src/parse.ts
CHANGED
|
@@ -13,6 +13,7 @@ import type { MethodResultDoc, StochasticResultDoc } from "./schemas/result.js";
|
|
|
13
13
|
import type { StudyDoc } from "./schemas/study.js";
|
|
14
14
|
import type { BundleDoc } from "./schemas/bundle.js";
|
|
15
15
|
import type { CrosscheckReportDoc } from "./schemas/crosscheck.js";
|
|
16
|
+
import type { DiagnosticDefinitionDoc } from "./schemas/diagnosticDefinition.js";
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* `parseDocument` (spec 4.1): version-checked, schema-validated,
|
|
@@ -48,7 +49,8 @@ export type InterchangeDocument =
|
|
|
48
49
|
| StochasticResultDoc
|
|
49
50
|
| StudyDoc
|
|
50
51
|
| BundleDoc
|
|
51
|
-
| CrosscheckReportDoc
|
|
52
|
+
| CrosscheckReportDoc
|
|
53
|
+
| DiagnosticDefinitionDoc;
|
|
52
54
|
|
|
53
55
|
export interface ParseDocumentOptions {
|
|
54
56
|
/** How to treat a failed integrity check. Default "refuse". */
|
|
@@ -93,6 +95,7 @@ function embeddedDocuments(doc: InterchangeDocument): { path: string; value: unk
|
|
|
93
95
|
collect("$.interchange.triangles", mirror["triangles"]);
|
|
94
96
|
collect("$.interchange.selections", mirror["selections"]);
|
|
95
97
|
collect("$.interchange.results", mirror["results"]);
|
|
98
|
+
collect("$.interchange.diagnosticDefinitions", mirror["diagnosticDefinitions"]);
|
|
96
99
|
}
|
|
97
100
|
}
|
|
98
101
|
return found;
|
package/src/schemas/bundle.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
methodResultDocSchema,
|
|
9
9
|
stochasticResultDocSchema,
|
|
10
10
|
} from "./result.js";
|
|
11
|
+
import { type DiagnosticDefinitionDoc, diagnosticDefinitionDocSchema } from "./diagnosticDefinition.js";
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* BundleDoc (spec 3.2) — the wrapped reproducibility bundle.
|
|
@@ -31,6 +32,7 @@ export interface BundleInterchange {
|
|
|
31
32
|
triangles: TriangleDoc[];
|
|
32
33
|
selections: SelectionDoc[];
|
|
33
34
|
results: (MethodResultDoc | StochasticResultDoc)[];
|
|
35
|
+
diagnosticDefinitions?: DiagnosticDefinitionDoc[];
|
|
34
36
|
[key: string]: unknown;
|
|
35
37
|
}
|
|
36
38
|
|
|
@@ -52,6 +54,7 @@ export const bundleInterchangeSchema: z.ZodType<BundleInterchange> = z
|
|
|
52
54
|
triangles: z.array(triangleDocSchema),
|
|
53
55
|
selections: z.array(selectionDocSchema),
|
|
54
56
|
results: z.array(z.union([methodResultDocSchema, stochasticResultDocSchema])),
|
|
57
|
+
diagnosticDefinitions: z.array(diagnosticDefinitionDocSchema).optional(),
|
|
55
58
|
})
|
|
56
59
|
.passthrough();
|
|
57
60
|
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { NormalizedDiagnosticDefinitionIdentity } from "@actuarial-ts/core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { envelopeShape, type GeneratorStamp } from "../envelope.js";
|
|
4
|
+
|
|
5
|
+
const token = z.string().min(1);
|
|
6
|
+
const finite = z.number().finite();
|
|
7
|
+
const nullableToken = token.nullable();
|
|
8
|
+
const attributes = z.record(z.union([z.string(), finite, z.boolean(), z.null()]));
|
|
9
|
+
const tolerance = z.object({ absolute: finite.nonnegative(), relative: finite.nonnegative() }).passthrough();
|
|
10
|
+
|
|
11
|
+
export const diagnosticMeasureExpressionSchema: z.ZodTypeAny = z.lazy(() =>
|
|
12
|
+
z.discriminatedUnion("op", [
|
|
13
|
+
z.object({ op: z.literal("measure"), measureId: token }).passthrough(),
|
|
14
|
+
z.object({ op: z.literal("add"), terms: z.array(diagnosticMeasureExpressionSchema).min(1) }).passthrough(),
|
|
15
|
+
z.object({ op: z.literal("subtract"), left: diagnosticMeasureExpressionSchema, right: diagnosticMeasureExpressionSchema }).passthrough(),
|
|
16
|
+
]),
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export const diagnosticClaimExpressionSchema: z.ZodTypeAny = z.lazy(() =>
|
|
20
|
+
z.discriminatedUnion("op", [
|
|
21
|
+
z.object({ op: z.literal("measure"), measureId: token }).passthrough(),
|
|
22
|
+
z.object({ op: z.literal("add"), terms: z.array(diagnosticClaimExpressionSchema).min(1) }).passthrough(),
|
|
23
|
+
z.object({ op: z.literal("subtract"), left: diagnosticClaimExpressionSchema, right: diagnosticClaimExpressionSchema }).passthrough(),
|
|
24
|
+
z.object({ op: z.literal("claim-layer"), measureId: token, attachment: finite.nonnegative(), limit: finite.positive().nullable() }).passthrough(),
|
|
25
|
+
]),
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
export const diagnosticRoleExpressionSchema: z.ZodTypeAny = z.lazy(() =>
|
|
29
|
+
z.discriminatedUnion("op", [
|
|
30
|
+
z.object({ op: z.literal("role"), role: token }).passthrough(),
|
|
31
|
+
z.object({ op: z.literal("add"), terms: z.array(diagnosticRoleExpressionSchema).min(1) }).passthrough(),
|
|
32
|
+
z.object({ op: z.literal("subtract"), left: diagnosticRoleExpressionSchema, right: diagnosticRoleExpressionSchema }).passthrough(),
|
|
33
|
+
]),
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
const limitation = z.discriminatedUnion("kind", [
|
|
37
|
+
z.object({ kind: z.literal("unlimited") }).passthrough(),
|
|
38
|
+
z.object({ kind: z.literal("unknown"), description: z.string().nullable() }).passthrough(),
|
|
39
|
+
z.object({
|
|
40
|
+
kind: z.enum(["layer", "pre-limited"]),
|
|
41
|
+
attachment: finite.nonnegative(),
|
|
42
|
+
limit: finite.positive().nullable(),
|
|
43
|
+
application: z.enum(["claim", "occurrence", "policy", "source-defined"]),
|
|
44
|
+
derivation: z.discriminatedUnion("kind", [
|
|
45
|
+
z.object({ kind: z.literal("sdk") }).passthrough(),
|
|
46
|
+
z.object({ kind: z.literal("external"), actor: z.enum(["caller", "source"]), transformationRef: token }).passthrough(),
|
|
47
|
+
]),
|
|
48
|
+
}).passthrough(),
|
|
49
|
+
]);
|
|
50
|
+
|
|
51
|
+
const ruleOperand = z.discriminatedUnion("source", [
|
|
52
|
+
z.object({ source: z.literal("measure"), expression: diagnosticMeasureExpressionSchema }).passthrough(),
|
|
53
|
+
z.object({ source: z.literal("calculation"), field: z.enum(["numerator", "denominator"]) }).passthrough(),
|
|
54
|
+
z.object({ source: z.literal("constant"), value: finite }).passthrough(),
|
|
55
|
+
]);
|
|
56
|
+
const operator = z.enum(["lt", "lte", "eq", "neq", "gte", "gt"]);
|
|
57
|
+
const reviewOperand = z.union([
|
|
58
|
+
diagnosticMeasureExpressionSchema,
|
|
59
|
+
z.object({ op: z.literal("constant"), value: finite }).passthrough(),
|
|
60
|
+
]);
|
|
61
|
+
const reviewBase = {
|
|
62
|
+
id: token,
|
|
63
|
+
code: token,
|
|
64
|
+
description: z.string(),
|
|
65
|
+
severity: z.enum(["warning", "fail"]),
|
|
66
|
+
missingInput: z.enum(["not-evaluated", "finding"]),
|
|
67
|
+
tolerance,
|
|
68
|
+
};
|
|
69
|
+
const reviewFilter = z.object({
|
|
70
|
+
sourceGroups: z.array(token).nullable(), origins: z.array(token).nullable(),
|
|
71
|
+
originFrom: nullableToken, originThrough: nullableToken, valuations: z.array(token).nullable(),
|
|
72
|
+
valuationFrom: nullableToken, valuationThrough: nullableToken,
|
|
73
|
+
minDevelopmentAge: finite.nullable(), maxDevelopmentAge: finite.nullable(),
|
|
74
|
+
}).passthrough();
|
|
75
|
+
const reviewRule = z.discriminatedUnion("kind", [
|
|
76
|
+
z.object({ ...reviewBase, kind: z.literal("compare"), when: z.object({ left: reviewOperand, operator, right: reviewOperand }).passthrough() }).passthrough(),
|
|
77
|
+
z.object({ ...reviewBase, kind: z.literal("reconcile"), actual: diagnosticMeasureExpressionSchema, expected: reviewOperand }).passthrough(),
|
|
78
|
+
z.object({ ...reviewBase, kind: z.literal("monotonic"), expression: diagnosticMeasureExpressionSchema, direction: z.enum(["nondecreasing", "nonincreasing"]) }).passthrough(),
|
|
79
|
+
z.object({ ...reviewBase, kind: z.literal("layer-order"), narrower: diagnosticMeasureExpressionSchema, broader: diagnosticMeasureExpressionSchema, comparability: z.discriminatedUnion("kind", [
|
|
80
|
+
z.object({ kind: z.literal("compiler-proven") }).passthrough(),
|
|
81
|
+
z.object({ kind: z.literal("caller-asserted"), rationaleArtifactId: token }).passthrough(),
|
|
82
|
+
]) }).passthrough(),
|
|
83
|
+
z.object({ ...reviewBase, kind: z.literal("control-total"), expression: diagnosticMeasureExpressionSchema, expected: finite, filter: reviewFilter.nullable(), projection: z.discriminatedUnion("kind", [
|
|
84
|
+
z.object({ kind: z.literal("valuation"), valuation: token }).passthrough(),
|
|
85
|
+
z.object({ kind: z.literal("latest-valuation-per-origin") }).passthrough(),
|
|
86
|
+
z.object({ kind: z.literal("all-cells") }).passthrough(),
|
|
87
|
+
]) }).passthrough(),
|
|
88
|
+
]);
|
|
89
|
+
|
|
90
|
+
const periodAxis = z.discriminatedUnion("kind", [
|
|
91
|
+
z.object({
|
|
92
|
+
kind: z.literal("calendar"), originCadence: z.enum(["month", "quarter", "year"]),
|
|
93
|
+
valuationCadence: z.enum(["month", "quarter", "year"]), originAnchor: z.enum(["start", "end"]),
|
|
94
|
+
valuationAnchor: z.enum(["start", "end"]), ageUnit: z.literal("month"), ageOffset: finite,
|
|
95
|
+
}).passthrough(),
|
|
96
|
+
z.object({
|
|
97
|
+
kind: z.literal("ordered"), id: token, version: token, ageUnit: token, ageOffset: finite,
|
|
98
|
+
origins: z.array(z.object({ label: token, aliases: z.array(token), coordinate: finite }).passthrough()),
|
|
99
|
+
valuations: z.array(z.object({ label: token, aliases: z.array(token), coordinate: finite }).passthrough()),
|
|
100
|
+
}).passthrough(),
|
|
101
|
+
]);
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Generic wire schema for the normalized diagnostic vocabulary. Known fields
|
|
105
|
+
* are validated and same-major additions are preserved recursively; the
|
|
106
|
+
* executable converter applies core's closed semantic compiler afterward.
|
|
107
|
+
*/
|
|
108
|
+
export const normalizedDiagnosticDefinitionSchema = z.object({
|
|
109
|
+
diagnosticDefinitionVersion: z.literal("1.0.0"), id: token, version: token,
|
|
110
|
+
lossRowGrain: z.enum(["claim", "aggregate"]),
|
|
111
|
+
measures: z.array(z.object({
|
|
112
|
+
id: token, displayName: z.string(), description: z.string(), source: z.enum(["loss", "exposure", "derived"]),
|
|
113
|
+
kind: z.enum(["count", "amount", "exposure"]), unit: token,
|
|
114
|
+
developmentSemantics: z.enum(["cumulative", "incremental", "point-in-time", "unknown"]),
|
|
115
|
+
aggregation: z.literal("sum"), missing: z.enum(["unknown", "zero"]), basisId: nullableToken,
|
|
116
|
+
countPopulationId: nullableToken, exposureBasisId: nullableToken,
|
|
117
|
+
exposureTiming: z.enum(["origin-static", "valuation-specific"]).nullable(),
|
|
118
|
+
}).passthrough()),
|
|
119
|
+
countPopulations: z.array(z.object({ id: token, displayName: z.string(), subject: z.enum(["claim", "claimant", "policy", "occurrence", "other", "unknown"]), unit: token, description: z.string(), attributes }).passthrough()),
|
|
120
|
+
exposureBases: z.array(z.object({ id: token, displayName: z.string(), basis: z.enum(["earned", "written", "in-force", "other", "unknown"]), unit: token, description: z.string(), sourceDescription: z.string().nullable(), attributes }).passthrough()),
|
|
121
|
+
amountBases: z.array(z.object({ id: token, displayName: z.string(), currency: token, perspective: z.enum(["gross", "net", "ceded", "other", "unknown"]), components: z.array(z.object({ id: token, treatment: z.enum(["included", "excluded", "unknown"]), limitation }).passthrough()), sourceDescription: z.string().nullable(), attributes }).passthrough()),
|
|
122
|
+
derivedMeasures: z.array(z.object({ id: token, outputMeasureId: token, expression: diagnosticClaimExpressionSchema }).passthrough()),
|
|
123
|
+
formulas: z.array(z.object({
|
|
124
|
+
id: token, version: token,
|
|
125
|
+
roles: z.record(z.object({ kind: z.enum(["count", "amount", "exposure"]), compatibilityGroup: nullableToken, developmentSemantics: z.enum(["cumulative", "incremental", "point-in-time", "unknown"]).nullable() }).passthrough()),
|
|
126
|
+
numerator: diagnosticRoleExpressionSchema, denominator: diagnosticRoleExpressionSchema,
|
|
127
|
+
denominatorPolicy: z.literal("positive-or-null"),
|
|
128
|
+
}).passthrough()),
|
|
129
|
+
instances: z.array(z.object({
|
|
130
|
+
id: token, version: token, formulaId: token, bindings: z.record(diagnosticMeasureExpressionSchema),
|
|
131
|
+
presentation: z.object({ displayName: z.string(), description: z.string(), displayUnit: token, scale: finite.positive(), numeratorLabel: z.string(), denominatorLabel: z.string() }).passthrough(),
|
|
132
|
+
rules: z.array(z.object({ id: token, code: token, message: z.string(), severity: z.enum(["warning", "fail"]), when: z.object({ left: ruleOperand, operator, right: ruleOperand, tolerance }).passthrough() }).passthrough()),
|
|
133
|
+
}).passthrough()),
|
|
134
|
+
reviewRules: z.array(reviewRule), periodAxis,
|
|
135
|
+
}).passthrough();
|
|
136
|
+
|
|
137
|
+
export interface DiagnosticDefinitionIdentities {
|
|
138
|
+
algorithm: "fnv1a64-jcs-v1";
|
|
139
|
+
formulaById: Record<string, string>;
|
|
140
|
+
calculationByInstanceId: Record<string, string>;
|
|
141
|
+
definition: string;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export interface DiagnosticDefinitionBody {
|
|
145
|
+
definition: NormalizedDiagnosticDefinitionIdentity;
|
|
146
|
+
identities: DiagnosticDefinitionIdentities;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface DiagnosticDefinitionDoc {
|
|
150
|
+
interchangeVersion: string;
|
|
151
|
+
kind: "diagnostic-definition";
|
|
152
|
+
generator: GeneratorStamp & { [key: string]: unknown };
|
|
153
|
+
createdAt: string;
|
|
154
|
+
extensions?: Record<string, unknown>;
|
|
155
|
+
integrity: string;
|
|
156
|
+
diagnosticDefinition: DiagnosticDefinitionBody;
|
|
157
|
+
[key: string]: unknown;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const identityTag = z.string().regex(/^fnv1a64-jcs-v1:[0-9a-f]{16}$/);
|
|
161
|
+
export const diagnosticDefinitionBodySchema: z.ZodType<DiagnosticDefinitionBody> = z.object({
|
|
162
|
+
definition: normalizedDiagnosticDefinitionSchema as z.ZodType<NormalizedDiagnosticDefinitionIdentity>,
|
|
163
|
+
identities: z.object({
|
|
164
|
+
algorithm: z.literal("fnv1a64-jcs-v1"), formulaById: z.record(identityTag),
|
|
165
|
+
calculationByInstanceId: z.record(identityTag), definition: identityTag,
|
|
166
|
+
}).passthrough(),
|
|
167
|
+
}).passthrough();
|
|
168
|
+
|
|
169
|
+
export const diagnosticDefinitionDocSchema: z.ZodType<DiagnosticDefinitionDoc> = z.object({
|
|
170
|
+
...envelopeShape("diagnostic-definition"), diagnosticDefinition: diagnosticDefinitionBodySchema,
|
|
171
|
+
}).passthrough();
|