@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.
Files changed (133) hide show
  1. package/README.md +12 -3
  2. package/dist/canonical.d.ts +11 -0
  3. package/dist/canonical.d.ts.map +1 -1
  4. package/dist/canonical.js +136 -26
  5. package/dist/canonical.js.map +1 -1
  6. package/dist/capping.d.ts.map +1 -1
  7. package/dist/capping.js +39 -6
  8. package/dist/capping.js.map +1 -1
  9. package/dist/diagnosticAggregation.d.ts +3 -0
  10. package/dist/diagnosticAggregation.d.ts.map +1 -1
  11. package/dist/diagnosticAggregation.js +30 -7
  12. package/dist/diagnosticAggregation.js.map +1 -1
  13. package/dist/diagnosticDefinitions.d.ts +3 -0
  14. package/dist/diagnosticDefinitions.d.ts.map +1 -1
  15. package/dist/diagnosticDefinitions.js +844 -182
  16. package/dist/diagnosticDefinitions.js.map +1 -1
  17. package/dist/diagnosticDerivations.d.ts +23 -0
  18. package/dist/diagnosticDerivations.d.ts.map +1 -1
  19. package/dist/diagnosticDerivations.js +187 -43
  20. package/dist/diagnosticDerivations.js.map +1 -1
  21. package/dist/diagnosticEvidenceIntern.d.ts +16 -0
  22. package/dist/diagnosticEvidenceIntern.d.ts.map +1 -0
  23. package/dist/diagnosticEvidenceIntern.js +139 -0
  24. package/dist/diagnosticEvidenceIntern.js.map +1 -0
  25. package/dist/diagnosticExposure.d.ts +2 -2
  26. package/dist/diagnosticExposure.d.ts.map +1 -1
  27. package/dist/diagnosticExposure.js +319 -21
  28. package/dist/diagnosticExposure.js.map +1 -1
  29. package/dist/diagnosticExpressions.d.ts +1 -1
  30. package/dist/diagnosticExpressions.d.ts.map +1 -1
  31. package/dist/diagnosticExpressions.js +35 -15
  32. package/dist/diagnosticExpressions.js.map +1 -1
  33. package/dist/diagnosticFormulas.d.ts +3 -0
  34. package/dist/diagnosticFormulas.d.ts.map +1 -1
  35. package/dist/diagnosticFormulas.js +160 -26
  36. package/dist/diagnosticFormulas.js.map +1 -1
  37. package/dist/diagnosticIdentity.d.ts +15 -1
  38. package/dist/diagnosticIdentity.d.ts.map +1 -1
  39. package/dist/diagnosticIdentity.js +321 -51
  40. package/dist/diagnosticIdentity.js.map +1 -1
  41. package/dist/diagnosticIdentityStream.d.ts +56 -0
  42. package/dist/diagnosticIdentityStream.d.ts.map +1 -0
  43. package/dist/diagnosticIdentityStream.js +472 -0
  44. package/dist/diagnosticIdentityStream.js.map +1 -0
  45. package/dist/diagnosticOrdering.d.ts +8 -0
  46. package/dist/diagnosticOrdering.d.ts.map +1 -0
  47. package/dist/diagnosticOrdering.js +73 -0
  48. package/dist/diagnosticOrdering.js.map +1 -0
  49. package/dist/diagnosticPeriodAxis.d.ts +9 -0
  50. package/dist/diagnosticPeriodAxis.d.ts.map +1 -0
  51. package/dist/diagnosticPeriodAxis.js +69 -0
  52. package/dist/diagnosticPeriodAxis.js.map +1 -0
  53. package/dist/diagnosticPeriods.d.ts +2 -3
  54. package/dist/diagnosticPeriods.d.ts.map +1 -1
  55. package/dist/diagnosticPeriods.js +20 -68
  56. package/dist/diagnosticPeriods.js.map +1 -1
  57. package/dist/diagnosticPreparation.d.ts +75 -14
  58. package/dist/diagnosticPreparation.d.ts.map +1 -1
  59. package/dist/diagnosticPreparation.js +1606 -112
  60. package/dist/diagnosticPreparation.js.map +1 -1
  61. package/dist/diagnosticReview.d.ts +40 -15
  62. package/dist/diagnosticReview.d.ts.map +1 -1
  63. package/dist/diagnosticReview.js +600 -42
  64. package/dist/diagnosticReview.js.map +1 -1
  65. package/dist/diagnosticReviewSources.d.ts +18 -0
  66. package/dist/diagnosticReviewSources.d.ts.map +1 -0
  67. package/dist/diagnosticReviewSources.js +76 -0
  68. package/dist/diagnosticReviewSources.js.map +1 -0
  69. package/dist/diagnosticReviewStore.d.ts +88 -0
  70. package/dist/diagnosticReviewStore.d.ts.map +1 -0
  71. package/dist/diagnosticReviewStore.js +455 -0
  72. package/dist/diagnosticReviewStore.js.map +1 -0
  73. package/dist/diagnosticRunner.d.ts +27 -2
  74. package/dist/diagnosticRunner.d.ts.map +1 -1
  75. package/dist/diagnosticRunner.js +764 -70
  76. package/dist/diagnosticRunner.js.map +1 -1
  77. package/dist/diagnosticRuntime.d.ts +26 -0
  78. package/dist/diagnosticRuntime.d.ts.map +1 -0
  79. package/dist/diagnosticRuntime.js +243 -0
  80. package/dist/diagnosticRuntime.js.map +1 -0
  81. package/dist/diagnosticSourceOrdering.d.ts +6 -0
  82. package/dist/diagnosticSourceOrdering.d.ts.map +1 -0
  83. package/dist/diagnosticSourceOrdering.js +38 -0
  84. package/dist/diagnosticSourceOrdering.js.map +1 -0
  85. package/dist/fnvAccumulator.d.ts +6 -0
  86. package/dist/fnvAccumulator.d.ts.map +1 -0
  87. package/dist/fnvAccumulator.js +21 -0
  88. package/dist/fnvAccumulator.js.map +1 -0
  89. package/dist/index.d.ts +15 -8
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +10 -4
  92. package/dist/index.js.map +1 -1
  93. package/dist/mack.d.ts +4 -0
  94. package/dist/mack.d.ts.map +1 -1
  95. package/dist/mack.js +32 -4
  96. package/dist/mack.js.map +1 -1
  97. package/dist/triangle.d.ts.map +1 -1
  98. package/dist/triangle.js +59 -9
  99. package/dist/triangle.js.map +1 -1
  100. package/dist/types.d.ts +4 -0
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/types.js +22 -8
  103. package/dist/types.js.map +1 -1
  104. package/dist/version.d.ts +1 -1
  105. package/dist/version.js +1 -1
  106. package/package.json +3 -2
  107. package/src/canonical.ts +144 -26
  108. package/src/capping.ts +109 -18
  109. package/src/diagnosticAggregation.ts +69 -20
  110. package/src/diagnosticDefinitions.ts +2675 -426
  111. package/src/diagnosticDerivations.ts +281 -49
  112. package/src/diagnosticEvidenceIntern.ts +151 -0
  113. package/src/diagnosticExposure.ts +550 -50
  114. package/src/diagnosticExpressions.ts +99 -17
  115. package/src/diagnosticFormulas.ts +239 -39
  116. package/src/diagnosticIdentity.ts +700 -191
  117. package/src/diagnosticIdentityStream.ts +553 -0
  118. package/src/diagnosticOrdering.ts +106 -0
  119. package/src/diagnosticPeriodAxis.ts +92 -0
  120. package/src/diagnosticPeriods.ts +67 -82
  121. package/src/diagnosticPreparation.ts +2558 -132
  122. package/src/diagnosticReview.ts +1072 -58
  123. package/src/diagnosticReviewSources.ts +85 -0
  124. package/src/diagnosticReviewStore.ts +692 -0
  125. package/src/diagnosticRunner.ts +1273 -72
  126. package/src/diagnosticRuntime.ts +264 -0
  127. package/src/diagnosticSourceOrdering.ts +50 -0
  128. package/src/fnvAccumulator.ts +20 -0
  129. package/src/index.ts +69 -4
  130. package/src/mack.ts +72 -9
  131. package/src/triangle.ts +103 -13
  132. package/src/types.ts +55 -20
  133. package/src/version.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticOrdering.js","sourceRoot":"","sources":["../src/diagnosticOrdering.ts"],"names":[],"mappings":"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"}
@@ -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
- type PeriodSide = "origin" | "valuation";
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,EAAE,4BAA4B,EAAwB,MAAM,4BAA4B,CAAC;AAIrG,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAyEzC,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,4BAA4B,EACxC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,GACZ,0BAA0B,CAG5B;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,4BAA4B,EACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB;IAAE,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiB5J;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAEpH"}
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
- if (axis.kind === "calendar") {
42
- const cadence = side === "origin" ? axis.originCadence : axis.valuationCadence;
43
- const anchor = side === "origin" ? axis.originAnchor : axis.valuationAnchor;
44
- const coordinate = calendarCoordinate(label, cadence, anchor);
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: `Unknown ordered-axis ${side} label ${JSON.stringify(label)}`,
69
- }]);
70
- return Object.freeze({ label: item.label, coordinate: item.coordinate });
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 - normalizedOrigin.coordinate + axis.ageOffset;
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 || (left.label < right.label ? -1 : left.label > right.label ? 1 : 0);
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":"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"}
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 CompiledDiagnosticDefinition, type DiagnosticDeepReadonly, type DiagnosticSourceLocation, type DiagnosticsFilter, type JsonValue } from "./diagnosticDefinitions.js";
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: DiagnosticDeepReadonly<DiagnosticLossInput>;
74
+ readonly record: DiagnosticLossInputAuditSnapshot;
47
75
  } | {
48
76
  readonly kind: "exposure";
49
77
  readonly disposition: DiagnosticInputDisposition;
50
- readonly record: DiagnosticDeepReadonly<DiagnosticExposureObservation>;
78
+ readonly record: DiagnosticExposureInputAuditSnapshot;
51
79
  } | {
52
80
  readonly kind: "expected-cell";
53
81
  readonly disposition: Exclude<DiagnosticInputDisposition, "invalid">;
54
- readonly record: DiagnosticDeepReadonly<DiagnosticExpectedCell>;
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: DiagnosticDeepReadonly<DiagnosticsFilter> | null;
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 DiagnosticExpectedCell[];
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,EAAkE,KAAK,6BAA6B,EAAE,KAAK,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAGlL,OAAO,EAAgC,KAAK,6BAA6B,EAAE,KAAK,6BAA6B,EAAE,KAAK,4BAA4B,EAAyB,MAAM,yBAAyB,CAAC;AACzM,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGvE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CAC5D;AACD,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;IAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACpI,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;IAAG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE;AAC1G,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,GAAG,sBAAsB,CAAC;AAEtF,MAAM,WAAW,8BAA8B;IAAG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACjK,MAAM,WAAW,sBAAsB;IAAG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAA;CAAE;AACzK,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC5D;AAED,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,wBAAwB,GAAG,QAAQ,GAAG,UAAU,CAAC;AACtG,MAAM,MAAM,0BAA0B,GAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,CAAA;CAAE,GACzI;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,6BAA6B,CAAC,CAAA;CAAE,GACvJ;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAA;CAAE,CAAC;AAE9K,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,6BAA6B,EAAE,CAAC,CAAC,CAAC;IAC3F,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACtE,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,CAAC,CAAC;IAC9F,QAAQ,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACvD;AAED,OAAO,CAAC,MAAM,2BAA2B,EAAE,OAAO,MAAM,CAAC;AACzD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,EAAE,IAAI,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;IAClD,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC1E,QAAQ,CAAC,UAAU,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC5D,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,qBAAqB,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC1E,QAAQ,CAAC,UAAU,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC5D,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACvD;AA6CD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,sBAAsB,CAyF/F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAEpG;AACD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB,CAAC,uCAAuC,CAAC,CAAuE;AACxN,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAIzF;AAED,YAAY,EAAE,SAAS,EAAE,6BAA6B,EAAE,CAAC"}
1
+ {"version":3,"file":"diagnosticPreparation.d.ts","sourceRoot":"","sources":["../src/diagnosticPreparation.ts"],"names":[],"mappings":"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"}