@actuarial-ts/core 0.6.0 → 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 +12 -3
- 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/capping.d.ts.map +1 -1
- package/dist/capping.js +39 -6
- package/dist/capping.js.map +1 -1
- package/dist/diagnosticAggregation.d.ts +3 -0
- package/dist/diagnosticAggregation.d.ts.map +1 -1
- package/dist/diagnosticAggregation.js +30 -7
- package/dist/diagnosticAggregation.js.map +1 -1
- package/dist/diagnosticDefinitions.d.ts +3 -0
- package/dist/diagnosticDefinitions.d.ts.map +1 -1
- package/dist/diagnosticDefinitions.js +844 -182
- package/dist/diagnosticDefinitions.js.map +1 -1
- package/dist/diagnosticDerivations.d.ts +23 -0
- package/dist/diagnosticDerivations.d.ts.map +1 -1
- package/dist/diagnosticDerivations.js +187 -43
- package/dist/diagnosticDerivations.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 +2 -2
- package/dist/diagnosticExposure.d.ts.map +1 -1
- package/dist/diagnosticExposure.js +319 -21
- package/dist/diagnosticExposure.js.map +1 -1
- package/dist/diagnosticExpressions.d.ts +1 -1
- package/dist/diagnosticExpressions.d.ts.map +1 -1
- package/dist/diagnosticExpressions.js +35 -15
- package/dist/diagnosticExpressions.js.map +1 -1
- package/dist/diagnosticFormulas.d.ts +3 -0
- package/dist/diagnosticFormulas.d.ts.map +1 -1
- package/dist/diagnosticFormulas.js +160 -26
- package/dist/diagnosticFormulas.js.map +1 -1
- package/dist/diagnosticIdentity.d.ts +15 -1
- package/dist/diagnosticIdentity.d.ts.map +1 -1
- package/dist/diagnosticIdentity.js +321 -51
- 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/diagnosticOrdering.d.ts +8 -0
- package/dist/diagnosticOrdering.d.ts.map +1 -0
- package/dist/diagnosticOrdering.js +73 -0
- package/dist/diagnosticOrdering.js.map +1 -0
- package/dist/diagnosticPeriodAxis.d.ts +9 -0
- package/dist/diagnosticPeriodAxis.d.ts.map +1 -0
- package/dist/diagnosticPeriodAxis.js +69 -0
- package/dist/diagnosticPeriodAxis.js.map +1 -0
- package/dist/diagnosticPeriods.d.ts +2 -3
- package/dist/diagnosticPeriods.d.ts.map +1 -1
- package/dist/diagnosticPeriods.js +20 -68
- package/dist/diagnosticPeriods.js.map +1 -1
- package/dist/diagnosticPreparation.d.ts +75 -14
- package/dist/diagnosticPreparation.d.ts.map +1 -1
- package/dist/diagnosticPreparation.js +1606 -112
- package/dist/diagnosticPreparation.js.map +1 -1
- package/dist/diagnosticReview.d.ts +40 -15
- package/dist/diagnosticReview.d.ts.map +1 -1
- package/dist/diagnosticReview.js +600 -42
- 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 +27 -2
- package/dist/diagnosticRunner.d.ts.map +1 -1
- package/dist/diagnosticRunner.js +764 -70
- package/dist/diagnosticRunner.js.map +1 -1
- package/dist/diagnosticRuntime.d.ts +26 -0
- package/dist/diagnosticRuntime.d.ts.map +1 -0
- package/dist/diagnosticRuntime.js +243 -0
- package/dist/diagnosticRuntime.js.map +1 -0
- package/dist/diagnosticSourceOrdering.d.ts +6 -0
- package/dist/diagnosticSourceOrdering.d.ts.map +1 -0
- package/dist/diagnosticSourceOrdering.js +38 -0
- package/dist/diagnosticSourceOrdering.js.map +1 -0
- 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 +15 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/mack.d.ts +4 -0
- package/dist/mack.d.ts.map +1 -1
- package/dist/mack.js +32 -4
- package/dist/mack.js.map +1 -1
- package/dist/triangle.d.ts.map +1 -1
- package/dist/triangle.js +59 -9
- package/dist/triangle.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +22 -8
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/src/canonical.ts +144 -26
- package/src/capping.ts +109 -18
- package/src/diagnosticAggregation.ts +69 -20
- package/src/diagnosticDefinitions.ts +2675 -426
- package/src/diagnosticDerivations.ts +281 -49
- package/src/diagnosticEvidenceIntern.ts +151 -0
- package/src/diagnosticExposure.ts +550 -50
- package/src/diagnosticExpressions.ts +99 -17
- package/src/diagnosticFormulas.ts +239 -39
- package/src/diagnosticIdentity.ts +700 -191
- package/src/diagnosticIdentityStream.ts +553 -0
- package/src/diagnosticOrdering.ts +106 -0
- package/src/diagnosticPeriodAxis.ts +92 -0
- package/src/diagnosticPeriods.ts +67 -82
- package/src/diagnosticPreparation.ts +2558 -132
- package/src/diagnosticReview.ts +1072 -58
- package/src/diagnosticReviewSources.ts +85 -0
- package/src/diagnosticReviewStore.ts +692 -0
- package/src/diagnosticRunner.ts +1273 -72
- package/src/diagnosticRuntime.ts +264 -0
- package/src/diagnosticSourceOrdering.ts +50 -0
- package/src/fnvAccumulator.ts +20 -0
- package/src/index.ts +69 -4
- package/src/mack.ts +72 -9
- package/src/triangle.ts +103 -13
- package/src/types.ts +55 -20
- package/src/version.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticOrdering.js","sourceRoot":"","sources":["../src/diagnosticOrdering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAM/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AAGjF,iFAAiF;AACjF,MAAM,UAAU,+BAA+B,CAC7C,IAAa,EACb,KAAc;IAEd,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IAC7B,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QACvD,OAAO,IAAI,GAAG,KAAK,CAAC;IACtB,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,CAAC;IACD,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CACrB,IAAyC,EACzC,KAA0C;IAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAA6B,EAC7B,KAA8B;IAE9B,MAAM,MAAM,GAAG;QACb,UAAU;QACV,UAAU;QACV,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,OAAO;QACP,QAAQ;QACR,WAAW;QACX,gBAAgB;QAChB,SAAS;QACT,UAAU;QACV,SAAS;QACT,aAAa;QACb,SAAS;KACD,CAAC;IACX,OAAO,CACL,+BAA+B,CAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAChC;QACD,+BAA+B,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;QACtE,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,IAAmC,EACnC,KAAoC;IAEpC,OAAO,CACL,+BAA+B,CAC7B,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAC/C,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CACnD;QACD,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QAC3C,+BAA+B,CAAC,IAAI,EAAE,KAAK,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAiC,EACjC,KAAkC;IAElC,OAAO,CACL,+BAA+B,CAC7B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EACzC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAC7C;QACD,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;QAC3C,+BAA+B,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAC7D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DiagnosticPeriodAxis } from "./diagnosticDefinitions.js";
|
|
2
|
+
export interface NormalizedDiagnosticAxisPeriod {
|
|
3
|
+
readonly label: string;
|
|
4
|
+
readonly coordinate: number;
|
|
5
|
+
}
|
|
6
|
+
export type DiagnosticPeriodSide = "origin" | "valuation";
|
|
7
|
+
/** Pure axis-level period normalization shared by compilation and execution. */
|
|
8
|
+
export declare function normalizeDiagnosticPeriodWithAxis(axis: DiagnosticPeriodAxis, side: DiagnosticPeriodSide, label: unknown): NormalizedDiagnosticAxisPeriod | null;
|
|
9
|
+
//# sourceMappingURL=diagnosticPeriodAxis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticPeriodAxis.d.ts","sourceRoot":"","sources":["../src/diagnosticPeriodAxis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAsC1D,gFAAgF;AAChF,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,OAAO,GACb,8BAA8B,GAAG,IAAI,CAyCvC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
function calendarCoordinate(label, cadence, anchor) {
|
|
2
|
+
let year;
|
|
3
|
+
let start;
|
|
4
|
+
let width;
|
|
5
|
+
if (cadence === "year") {
|
|
6
|
+
const match = /^(\d{4})$/.exec(label);
|
|
7
|
+
if (!match)
|
|
8
|
+
return null;
|
|
9
|
+
year = Number(match[1]);
|
|
10
|
+
start = year * 12;
|
|
11
|
+
width = 12;
|
|
12
|
+
}
|
|
13
|
+
else if (cadence === "month") {
|
|
14
|
+
const match = /^(\d{4})-(0[1-9]|1[0-2])$/.exec(label);
|
|
15
|
+
if (!match)
|
|
16
|
+
return null;
|
|
17
|
+
year = Number(match[1]);
|
|
18
|
+
start = year * 12 + Number(match[2]) - 1;
|
|
19
|
+
width = 1;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const compact = /^(\d{4})Q([1-4])$/.exec(label);
|
|
23
|
+
const hyphenated = /^(\d{4})-Q([1-4])$/.exec(label);
|
|
24
|
+
const first = /^Q([1-4]) (\d{4})$/.exec(label);
|
|
25
|
+
const match = compact ?? hyphenated ?? first;
|
|
26
|
+
if (!match)
|
|
27
|
+
return null;
|
|
28
|
+
const quarterFirst = match === first;
|
|
29
|
+
year = Number(match[quarterFirst ? 2 : 1]);
|
|
30
|
+
const quarter = Number(match[quarterFirst ? 1 : 2]);
|
|
31
|
+
start = year * 12 + (quarter - 1) * 3;
|
|
32
|
+
width = 3;
|
|
33
|
+
}
|
|
34
|
+
if (year < 1 || year > 9999)
|
|
35
|
+
return null;
|
|
36
|
+
return start + (anchor === "end" ? width : 0);
|
|
37
|
+
}
|
|
38
|
+
/** Pure axis-level period normalization shared by compilation and execution. */
|
|
39
|
+
export function normalizeDiagnosticPeriodWithAxis(axis, side, label) {
|
|
40
|
+
if (typeof label !== "string" || axis === null || typeof axis !== "object")
|
|
41
|
+
return null;
|
|
42
|
+
if (axis.kind === "calendar") {
|
|
43
|
+
const cadence = side === "origin" ? axis.originCadence : axis.valuationCadence;
|
|
44
|
+
const anchor = side === "origin" ? axis.originAnchor : axis.valuationAnchor;
|
|
45
|
+
if (!["month", "quarter", "year"].includes(cadence) ||
|
|
46
|
+
!["start", "end"].includes(anchor))
|
|
47
|
+
return null;
|
|
48
|
+
const coordinate = calendarCoordinate(label, cadence, anchor);
|
|
49
|
+
if (coordinate === null)
|
|
50
|
+
return null;
|
|
51
|
+
const canonicalLabel = cadence === "quarter"
|
|
52
|
+
? (() => {
|
|
53
|
+
const startCoordinate = calendarCoordinate(label, cadence, "start");
|
|
54
|
+
const year = Math.floor(startCoordinate / 12);
|
|
55
|
+
return `${String(year).padStart(4, "0")}-Q${Math.floor((startCoordinate % 12) / 3) + 1}`;
|
|
56
|
+
})()
|
|
57
|
+
: label;
|
|
58
|
+
return { label: canonicalLabel, coordinate };
|
|
59
|
+
}
|
|
60
|
+
if (axis.kind !== "ordered" ||
|
|
61
|
+
!Array.isArray(axis[side === "origin" ? "origins" : "valuations"]))
|
|
62
|
+
return null;
|
|
63
|
+
const catalog = side === "origin" ? axis.origins : axis.valuations;
|
|
64
|
+
const item = catalog.find((coordinate) => coordinate?.label === label || coordinate?.aliases?.includes(label));
|
|
65
|
+
return item && typeof item.coordinate === "number"
|
|
66
|
+
? { label: item.label, coordinate: item.coordinate }
|
|
67
|
+
: null;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=diagnosticPeriodAxis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosticPeriodAxis.js","sourceRoot":"","sources":["../src/diagnosticPeriodAxis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { CompiledDiagnosticDefinition } from "./diagnosticDefinitions.js";
|
|
2
|
+
import { type DiagnosticPeriodSide } from "./diagnosticPeriodAxis.js";
|
|
2
3
|
export interface DiagnosticNormalizedPeriod {
|
|
3
4
|
readonly label: string;
|
|
4
5
|
readonly coordinate: number;
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
-
export declare function normalizeDiagnosticPeriod(definition: CompiledDiagnosticDefinition, side: PeriodSide, label: string): DiagnosticNormalizedPeriod;
|
|
7
|
+
export declare function normalizeDiagnosticPeriod(definition: CompiledDiagnosticDefinition, side: DiagnosticPeriodSide, label: string): DiagnosticNormalizedPeriod;
|
|
8
8
|
export declare function diagnosticDevelopmentAge(definition: CompiledDiagnosticDefinition, origin: string, valuation: string): {
|
|
9
9
|
readonly origin: DiagnosticNormalizedPeriod;
|
|
10
10
|
readonly valuation: DiagnosticNormalizedPeriod;
|
|
@@ -12,5 +12,4 @@ export declare function diagnosticDevelopmentAge(definition: CompiledDiagnosticD
|
|
|
12
12
|
readonly ageUnit: string;
|
|
13
13
|
};
|
|
14
14
|
export declare function compareDiagnosticPeriods(left: DiagnosticNormalizedPeriod, right: DiagnosticNormalizedPeriod): number;
|
|
15
|
-
export {};
|
|
16
15
|
//# sourceMappingURL=diagnosticPeriods.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticPeriods.d.ts","sourceRoot":"","sources":["../src/diagnosticPeriods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"diagnosticPeriods.d.ts","sourceRoot":"","sources":["../src/diagnosticPeriods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAE7B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAGnC,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAuBD,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,4BAA4B,EACxC,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,MAAM,GACZ,0BAA0B,CAO5B;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,4BAA4B,EACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB;IACD,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAgCA;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,0BAA0B,EAChC,KAAK,EAAE,0BAA0B,GAChC,MAAM,CAKR"}
|
|
@@ -1,73 +1,20 @@
|
|
|
1
1
|
import { assertCompiledDiagnosticDefinition } from "./diagnosticDefinitions.js";
|
|
2
|
+
import { normalizeDiagnosticPeriodWithAxis, } from "./diagnosticPeriodAxis.js";
|
|
2
3
|
import { DiagnosticValidationError } from "./types.js";
|
|
3
|
-
function calendarCoordinate(label, cadence, anchor) {
|
|
4
|
-
let year;
|
|
5
|
-
let start;
|
|
6
|
-
let width;
|
|
7
|
-
if (cadence === "year") {
|
|
8
|
-
const match = /^(\d{4})$/.exec(label);
|
|
9
|
-
if (!match)
|
|
10
|
-
return null;
|
|
11
|
-
year = Number(match[1]);
|
|
12
|
-
start = year * 12;
|
|
13
|
-
width = 12;
|
|
14
|
-
}
|
|
15
|
-
else if (cadence === "month") {
|
|
16
|
-
const match = /^(\d{4})-(0[1-9]|1[0-2])$/.exec(label);
|
|
17
|
-
if (!match)
|
|
18
|
-
return null;
|
|
19
|
-
year = Number(match[1]);
|
|
20
|
-
start = year * 12 + Number(match[2]) - 1;
|
|
21
|
-
width = 1;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
const compact = /^(\d{4})Q([1-4])$/.exec(label);
|
|
25
|
-
const hyphenated = /^(\d{4})-Q([1-4])$/.exec(label);
|
|
26
|
-
const first = /^Q([1-4]) (\d{4})$/.exec(label);
|
|
27
|
-
const match = compact ?? hyphenated ?? first;
|
|
28
|
-
if (!match)
|
|
29
|
-
return null;
|
|
30
|
-
const quarterFirst = match === first;
|
|
31
|
-
year = Number(match[quarterFirst ? 2 : 1]);
|
|
32
|
-
const quarter = Number(match[quarterFirst ? 1 : 2]);
|
|
33
|
-
start = year * 12 + (quarter - 1) * 3;
|
|
34
|
-
width = 3;
|
|
35
|
-
}
|
|
36
|
-
if (year < 1 || year > 9999)
|
|
37
|
-
return null;
|
|
38
|
-
return start + (anchor === "end" ? width : 0);
|
|
39
|
-
}
|
|
40
4
|
function normalizeWithAxis(axis, side, label) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (coordinate === null)
|
|
46
|
-
throw new DiagnosticValidationError([{
|
|
47
|
-
domain: "input",
|
|
48
|
-
code: "invalid-period",
|
|
49
|
-
path: `$.${side}`,
|
|
50
|
-
message: `Invalid ${cadence} ${side} label ${JSON.stringify(label)}`,
|
|
51
|
-
}]);
|
|
52
|
-
const canonicalLabel = cadence === "quarter"
|
|
53
|
-
? (() => {
|
|
54
|
-
const startCoordinate = calendarCoordinate(label, cadence, "start");
|
|
55
|
-
const year = Math.floor(startCoordinate / 12);
|
|
56
|
-
return `${String(year).padStart(4, "0")}Q${Math.floor((startCoordinate % 12) / 3) + 1}`;
|
|
57
|
-
})()
|
|
58
|
-
: label;
|
|
59
|
-
return Object.freeze({ label: canonicalLabel, coordinate });
|
|
60
|
-
}
|
|
61
|
-
const catalog = side === "origin" ? axis.origins : axis.valuations;
|
|
62
|
-
const item = catalog.find((coordinate) => coordinate.label === label || coordinate.aliases?.includes(label));
|
|
63
|
-
if (!item)
|
|
64
|
-
throw new DiagnosticValidationError([{
|
|
5
|
+
const normalized = normalizeDiagnosticPeriodWithAxis(axis, side, label);
|
|
6
|
+
if (!normalized)
|
|
7
|
+
throw new DiagnosticValidationError([
|
|
8
|
+
{
|
|
65
9
|
domain: "input",
|
|
66
10
|
code: "invalid-period",
|
|
67
11
|
path: `$.${side}`,
|
|
68
|
-
message:
|
|
69
|
-
|
|
70
|
-
|
|
12
|
+
message: axis.kind === "calendar"
|
|
13
|
+
? `Invalid ${side === "origin" ? axis.originCadence : axis.valuationCadence} ${side} label ${JSON.stringify(label)}`
|
|
14
|
+
: `Unknown ordered-axis ${side} label ${JSON.stringify(label)}`,
|
|
15
|
+
},
|
|
16
|
+
]);
|
|
17
|
+
return Object.freeze(normalized);
|
|
71
18
|
}
|
|
72
19
|
export function normalizeDiagnosticPeriod(definition, side, label) {
|
|
73
20
|
assertCompiledDiagnosticDefinition(definition);
|
|
@@ -77,14 +24,18 @@ export function diagnosticDevelopmentAge(definition, origin, valuation) {
|
|
|
77
24
|
const normalizedOrigin = normalizeDiagnosticPeriod(definition, "origin", origin);
|
|
78
25
|
const normalizedValuation = normalizeDiagnosticPeriod(definition, "valuation", valuation);
|
|
79
26
|
const axis = definition.definition.periodAxis;
|
|
80
|
-
const developmentAge = normalizedValuation.coordinate -
|
|
27
|
+
const developmentAge = normalizedValuation.coordinate -
|
|
28
|
+
normalizedOrigin.coordinate +
|
|
29
|
+
axis.ageOffset;
|
|
81
30
|
if (!Number.isSafeInteger(developmentAge) || developmentAge < 0)
|
|
82
|
-
throw new DiagnosticValidationError([
|
|
31
|
+
throw new DiagnosticValidationError([
|
|
32
|
+
{
|
|
83
33
|
domain: "input",
|
|
84
34
|
code: "invalid-period",
|
|
85
35
|
path: "$.valuation",
|
|
86
36
|
message: "Valuation period precedes origin period or development age is unsafe",
|
|
87
|
-
}
|
|
37
|
+
},
|
|
38
|
+
]);
|
|
88
39
|
return Object.freeze({
|
|
89
40
|
origin: normalizedOrigin,
|
|
90
41
|
valuation: normalizedValuation,
|
|
@@ -93,6 +44,7 @@ export function diagnosticDevelopmentAge(definition, origin, valuation) {
|
|
|
93
44
|
});
|
|
94
45
|
}
|
|
95
46
|
export function compareDiagnosticPeriods(left, right) {
|
|
96
|
-
return left.coordinate - right.coordinate ||
|
|
47
|
+
return (left.coordinate - right.coordinate ||
|
|
48
|
+
(left.label < right.label ? -1 : left.label > right.label ? 1 : 0));
|
|
97
49
|
}
|
|
98
50
|
//# sourceMappingURL=diagnosticPeriods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticPeriods.js","sourceRoot":"","sources":["../src/diagnosticPeriods.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diagnosticPeriods.js","sourceRoot":"","sources":["../src/diagnosticPeriods.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EACL,iCAAiC,GAElC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAOvD,SAAS,iBAAiB,CACxB,IAA0B,EAC1B,IAA0B,EAC1B,KAAa;IAEb,MAAM,UAAU,GAAG,iCAAiC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU;QACb,MAAM,IAAI,yBAAyB,CAAC;YAClC;gBACE,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,KAAK,IAAI,EAAE;gBACjB,OAAO,EACL,IAAI,CAAC,IAAI,KAAK,UAAU;oBACtB,CAAC,CAAC,WAAW,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBACpH,CAAC,CAAC,wBAAwB,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;aACpE;SACF,CAAC,CAAC;IACL,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,UAAwC,EACxC,IAA0B,EAC1B,KAAa;IAEb,kCAAkC,CAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,iBAAiB,CACtB,UAAU,CAAC,UAAU,CAAC,UAAkC,EACxD,IAAI,EACJ,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAAwC,EACxC,MAAc,EACd,SAAiB;IAOjB,MAAM,gBAAgB,GAAG,yBAAyB,CAChD,UAAU,EACV,QAAQ,EACR,MAAM,CACP,CAAC;IACF,MAAM,mBAAmB,GAAG,yBAAyB,CACnD,UAAU,EACV,WAAW,EACX,SAAS,CACV,CAAC;IACF,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;IAC9C,MAAM,cAAc,GAClB,mBAAmB,CAAC,UAAU;QAC9B,gBAAgB,CAAC,UAAU;QAC3B,IAAI,CAAC,SAAS,CAAC;IACjB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC;QAC7D,MAAM,IAAI,yBAAyB,CAAC;YAClC;gBACE,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,aAAa;gBACnB,OAAO,EACL,sEAAsE;aACzE;SACF,CAAC,CAAC;IACL,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,mBAAmB;QAC9B,cAAc;QACd,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAgC,EAChC,KAAiC;IAEjC,OAAO,CACL,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;QAClC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type DiagnosticIdentityDocument } from "./diagnosticIdentityStream.js";
|
|
2
|
+
import { type DiagnosticIdentityProjection, type NormalizedDiagnosticsFilterIdentity, type NormalizedDiagnosticSourceLocationIdentity } from "./diagnosticIdentity.js";
|
|
3
|
+
import { type CompiledDiagnosticDefinition, type DiagnosticDeepReadonly, type DiagnosticMeasureStats, type DiagnosticSourceLocation, type DiagnosticsFilter, type JsonValue } from "./diagnosticDefinitions.js";
|
|
2
4
|
import { type DiagnosticMeasureContribution, type DiagnosticStructuralBlocker } from "./diagnosticAggregation.js";
|
|
3
|
-
import { type DiagnosticAuditedNumericValue, type DiagnosticExposureObservation, type ReconciledDiagnosticExposure } from "./diagnosticExposure.js";
|
|
4
|
-
import type { DiagnosticMeasureStats } from "./diagnosticDefinitions.js";
|
|
5
|
+
import { type DiagnosticAuditedNumericValue, type DiagnosticExposureAuditObservation, type DiagnosticExposureObservation, type ReconciledDiagnosticExposure } from "./diagnosticExposure.js";
|
|
5
6
|
import type { DiagnosticMetricFinding } from "./diagnosticFormulas.js";
|
|
6
7
|
export interface DiagnosticLossRecordBase {
|
|
7
8
|
readonly recordId: string;
|
|
@@ -40,18 +41,45 @@ export interface PrepareDiagnosticDataInput {
|
|
|
40
41
|
readonly expectedCells?: readonly DiagnosticExpectedCell[];
|
|
41
42
|
}
|
|
42
43
|
export type DiagnosticInputDisposition = "invalid" | "complete-period-cutoff" | "filter" | "retained";
|
|
44
|
+
export interface DiagnosticLossInputAuditSnapshot {
|
|
45
|
+
readonly recordId: string;
|
|
46
|
+
readonly rowType: "claim" | "aggregate";
|
|
47
|
+
readonly claimId: string | null;
|
|
48
|
+
readonly sourceGroup: string;
|
|
49
|
+
readonly origin: string;
|
|
50
|
+
readonly valuation: string;
|
|
51
|
+
readonly complete: boolean;
|
|
52
|
+
readonly measures: Readonly<Record<string, DiagnosticAuditedNumericValue>>;
|
|
53
|
+
readonly source: DiagnosticSourceLocation | null;
|
|
54
|
+
}
|
|
55
|
+
export interface DiagnosticExposureInputAuditSnapshot {
|
|
56
|
+
readonly key: string;
|
|
57
|
+
readonly sourceGroup: string;
|
|
58
|
+
readonly origin: string;
|
|
59
|
+
readonly valuation: string | null;
|
|
60
|
+
readonly measureId: string;
|
|
61
|
+
readonly value: DiagnosticAuditedNumericValue;
|
|
62
|
+
readonly complete: boolean;
|
|
63
|
+
readonly source: DiagnosticSourceLocation | null;
|
|
64
|
+
}
|
|
65
|
+
export interface DiagnosticExpectedCellAuditSnapshot {
|
|
66
|
+
readonly sourceGroup: string;
|
|
67
|
+
readonly origin: string;
|
|
68
|
+
readonly valuation: string;
|
|
69
|
+
readonly source: DiagnosticSourceLocation | null;
|
|
70
|
+
}
|
|
43
71
|
export type DiagnosticInputAuditRecord = {
|
|
44
72
|
readonly kind: "loss";
|
|
45
73
|
readonly disposition: DiagnosticInputDisposition;
|
|
46
|
-
readonly record:
|
|
74
|
+
readonly record: DiagnosticLossInputAuditSnapshot;
|
|
47
75
|
} | {
|
|
48
76
|
readonly kind: "exposure";
|
|
49
77
|
readonly disposition: DiagnosticInputDisposition;
|
|
50
|
-
readonly record:
|
|
78
|
+
readonly record: DiagnosticExposureInputAuditSnapshot;
|
|
51
79
|
} | {
|
|
52
80
|
readonly kind: "expected-cell";
|
|
53
81
|
readonly disposition: Exclude<DiagnosticInputDisposition, "invalid">;
|
|
54
|
-
readonly record:
|
|
82
|
+
readonly record: DiagnosticExpectedCellAuditSnapshot;
|
|
55
83
|
};
|
|
56
84
|
export interface PreparedDiagnosticSourceCell {
|
|
57
85
|
readonly sourceGroup: string;
|
|
@@ -79,20 +107,53 @@ export interface PreparedDiagnosticData {
|
|
|
79
107
|
readonly expectedCells: readonly DiagnosticExpectedCell[];
|
|
80
108
|
readonly findings: readonly DiagnosticMetricFinding[];
|
|
81
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
|
+
}
|
|
82
121
|
export interface NormalizedDiagnosticPreparationIdentity {
|
|
83
122
|
readonly definitionIntegrity: string;
|
|
84
|
-
readonly filter:
|
|
85
|
-
readonly completePeriodCutoffs: readonly DiagnosticCompletePeriodCutoff[];
|
|
86
|
-
readonly inputAudit: readonly DiagnosticInputAuditRecord[];
|
|
87
|
-
readonly cells: readonly PreparedDiagnosticSourceCell[];
|
|
88
|
-
readonly exposures: readonly ReconciledDiagnosticExposure[];
|
|
123
|
+
readonly filter: NormalizedDiagnosticsFilterIdentity | null;
|
|
124
|
+
readonly completePeriodCutoffs: readonly DiagnosticIdentityProjection<DiagnosticCompletePeriodCutoff>[];
|
|
125
|
+
readonly inputAudit: readonly DiagnosticIdentityProjection<DiagnosticInputAuditRecord>[];
|
|
126
|
+
readonly cells: readonly DiagnosticIdentityProjection<PreparedDiagnosticSourceCell>[];
|
|
127
|
+
readonly exposures: readonly DiagnosticIdentityProjection<ReconciledDiagnosticExposure>[];
|
|
89
128
|
readonly expectedCellsProvided: boolean;
|
|
90
|
-
readonly expectedCells: readonly
|
|
91
|
-
readonly findings: readonly DiagnosticMetricFinding[];
|
|
129
|
+
readonly expectedCells: readonly NormalizedDiagnosticExpectedCellIdentity[];
|
|
130
|
+
readonly findings: readonly DiagnosticIdentityProjection<DiagnosticMetricFinding>[];
|
|
131
|
+
}
|
|
132
|
+
export interface NormalizedDiagnosticExpectedCellIdentity {
|
|
133
|
+
readonly sourceGroup: string;
|
|
134
|
+
readonly origin: string;
|
|
135
|
+
readonly valuation: string;
|
|
136
|
+
readonly source: NormalizedDiagnosticSourceLocationIdentity | null;
|
|
92
137
|
}
|
|
93
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;
|
|
94
155
|
export declare function assertPreparedDiagnosticData(value: unknown): asserts value is PreparedDiagnosticData;
|
|
95
156
|
export declare function getPreparedDiagnosticDataIdentity(value: PreparedDiagnosticData): DiagnosticDeepReadonly<NormalizedDiagnosticPreparationIdentity>;
|
|
96
157
|
export declare function verifyPreparedDiagnosticDataIntegrity(value: PreparedDiagnosticData): void;
|
|
97
|
-
export type { JsonValue, DiagnosticAuditedNumericValue };
|
|
158
|
+
export type { JsonValue, DiagnosticAuditedNumericValue, DiagnosticExposureAuditObservation, };
|
|
98
159
|
//# sourceMappingURL=diagnosticPreparation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnosticPreparation.d.ts","sourceRoot":"","sources":["../src/diagnosticPreparation.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"diagnosticPreparation.d.ts","sourceRoot":"","sources":["../src/diagnosticPreparation.ts"],"names":[],"mappings":"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"}
|