@actuarial-ts/core 0.7.0 → 0.8.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 (115) hide show
  1. package/README.md +46 -2
  2. package/dist/analysisRecipe.d.ts +55 -0
  3. package/dist/analysisRecipe.d.ts.map +1 -0
  4. package/dist/analysisRecipe.js +627 -0
  5. package/dist/analysisRecipe.js.map +1 -0
  6. package/dist/classifications.d.ts +30 -0
  7. package/dist/classifications.d.ts.map +1 -0
  8. package/dist/classifications.js +207 -0
  9. package/dist/classifications.js.map +1 -0
  10. package/dist/customizationContracts.d.ts +749 -0
  11. package/dist/customizationContracts.d.ts.map +1 -0
  12. package/dist/customizationContracts.js +19 -0
  13. package/dist/customizationContracts.js.map +1 -0
  14. package/dist/descriptiveStatistics.d.ts +8 -0
  15. package/dist/descriptiveStatistics.d.ts.map +1 -0
  16. package/dist/descriptiveStatistics.js +283 -0
  17. package/dist/descriptiveStatistics.js.map +1 -0
  18. package/dist/diagnosticAggregation.d.ts.map +1 -1
  19. package/dist/diagnosticAggregation.js +16 -0
  20. package/dist/diagnosticAggregation.js.map +1 -1
  21. package/dist/diagnosticFreeze.d.ts +4 -0
  22. package/dist/diagnosticFreeze.d.ts.map +1 -0
  23. package/dist/diagnosticFreeze.js +37 -0
  24. package/dist/diagnosticFreeze.js.map +1 -0
  25. package/dist/diagnosticIdentityStream.d.ts +4 -0
  26. package/dist/diagnosticIdentityStream.d.ts.map +1 -1
  27. package/dist/diagnosticIdentityStream.js +32 -2
  28. package/dist/diagnosticIdentityStream.js.map +1 -1
  29. package/dist/diagnosticPreparation.d.ts +21 -0
  30. package/dist/diagnosticPreparation.d.ts.map +1 -1
  31. package/dist/diagnosticPreparation.js +231 -19
  32. package/dist/diagnosticPreparation.js.map +1 -1
  33. package/dist/diagnosticReview.d.ts.map +1 -1
  34. package/dist/diagnosticReview.js +43 -25
  35. package/dist/diagnosticReview.js.map +1 -1
  36. package/dist/diagnosticReviewSources.d.ts.map +1 -1
  37. package/dist/diagnosticReviewSources.js +25 -4
  38. package/dist/diagnosticReviewSources.js.map +1 -1
  39. package/dist/diagnosticReviewStore.d.ts +2 -0
  40. package/dist/diagnosticReviewStore.d.ts.map +1 -1
  41. package/dist/diagnosticReviewStore.js +110 -36
  42. package/dist/diagnosticReviewStore.js.map +1 -1
  43. package/dist/diagnosticRunner.d.ts.map +1 -1
  44. package/dist/diagnosticRunner.js +1 -8
  45. package/dist/diagnosticRunner.js.map +1 -1
  46. package/dist/exposureEarning.d.ts +12 -0
  47. package/dist/exposureEarning.d.ts.map +1 -0
  48. package/dist/exposureEarning.js +276 -0
  49. package/dist/exposureEarning.js.map +1 -0
  50. package/dist/exposureMovements.d.ts +8 -0
  51. package/dist/exposureMovements.d.ts.map +1 -0
  52. package/dist/exposureMovements.js +70 -0
  53. package/dist/exposureMovements.js.map +1 -0
  54. package/dist/exposureRevisions.d.ts +13 -0
  55. package/dist/exposureRevisions.d.ts.map +1 -0
  56. package/dist/exposureRevisions.js +161 -0
  57. package/dist/exposureRevisions.js.map +1 -0
  58. package/dist/financialPipeline.d.ts +14 -0
  59. package/dist/financialPipeline.d.ts.map +1 -0
  60. package/dist/financialPipeline.js +75 -0
  61. package/dist/financialPipeline.js.map +1 -0
  62. package/dist/financialTerms.d.ts +20 -0
  63. package/dist/financialTerms.d.ts.map +1 -0
  64. package/dist/financialTerms.js +205 -0
  65. package/dist/financialTerms.js.map +1 -0
  66. package/dist/fnvAccumulator.d.ts.map +1 -1
  67. package/dist/fnvAccumulator.js +11 -5
  68. package/dist/fnvAccumulator.js.map +1 -1
  69. package/dist/historyPreparation.d.ts +8 -0
  70. package/dist/historyPreparation.d.ts.map +1 -0
  71. package/dist/historyPreparation.js +557 -0
  72. package/dist/historyPreparation.js.map +1 -0
  73. package/dist/index.d.ts +15 -2
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +15 -2
  76. package/dist/index.js.map +1 -1
  77. package/dist/policyPeriods.d.ts +29 -0
  78. package/dist/policyPeriods.d.ts.map +1 -0
  79. package/dist/policyPeriods.js +322 -0
  80. package/dist/policyPeriods.js.map +1 -0
  81. package/dist/populations.d.ts +11 -0
  82. package/dist/populations.d.ts.map +1 -0
  83. package/dist/populations.js +264 -0
  84. package/dist/populations.js.map +1 -0
  85. package/dist/reservingAdapter.d.ts +16 -0
  86. package/dist/reservingAdapter.d.ts.map +1 -0
  87. package/dist/reservingAdapter.js +74 -0
  88. package/dist/reservingAdapter.js.map +1 -0
  89. package/dist/version.d.ts +1 -1
  90. package/dist/version.js +1 -1
  91. package/package.json +2 -2
  92. package/src/analysisRecipe.ts +696 -0
  93. package/src/classifications.ts +231 -0
  94. package/src/customizationContracts.ts +763 -0
  95. package/src/descriptiveStatistics.ts +320 -0
  96. package/src/diagnosticAggregation.ts +16 -0
  97. package/src/diagnosticFreeze.ts +37 -0
  98. package/src/diagnosticIdentityStream.ts +37 -2
  99. package/src/diagnosticPreparation.ts +259 -26
  100. package/src/diagnosticReview.ts +49 -27
  101. package/src/diagnosticReviewSources.ts +22 -3
  102. package/src/diagnosticReviewStore.ts +139 -54
  103. package/src/diagnosticRunner.ts +1 -11
  104. package/src/exposureEarning.ts +314 -0
  105. package/src/exposureMovements.ts +78 -0
  106. package/src/exposureRevisions.ts +186 -0
  107. package/src/financialPipeline.ts +93 -0
  108. package/src/financialTerms.ts +263 -0
  109. package/src/fnvAccumulator.ts +11 -5
  110. package/src/historyPreparation.ts +645 -0
  111. package/src/index.ts +28 -1
  112. package/src/policyPeriods.ts +375 -0
  113. package/src/populations.ts +307 -0
  114. package/src/reservingAdapter.ts +98 -0
  115. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticRunner.js","sourceRoot":"","sources":["../src/diagnosticRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnosticRunner.js","sourceRoot":"","sources":["../src/diagnosticRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { CustomizationExposureObservation, ExposureAllocationResult, ExposureAllocationTarget, ExposureMeasureDefinitionV1, ExposureScopeDefinition } from "./customizationContracts.js";
2
+ /**
3
+ * Earns and allocates one source exposure under explicit interval, scope, and
4
+ * allocation meanings. It never converts point-in-time stock into a flow.
5
+ */
6
+ export declare function earnAndAllocateExposure(input: {
7
+ readonly definition: ExposureMeasureDefinitionV1;
8
+ readonly scope: ExposureScopeDefinition;
9
+ readonly observation: CustomizationExposureObservation;
10
+ readonly targets: readonly ExposureAllocationTarget[];
11
+ }): ExposureAllocationResult;
12
+ //# sourceMappingURL=exposureEarning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposureEarning.d.ts","sourceRoot":"","sources":["../src/exposureEarning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gCAAgC,EAEhC,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EAExB,MAAM,6BAA6B,CAAC;AAuFrC;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACvD,GAAG,wBAAwB,CAgN3B"}
@@ -0,0 +1,276 @@
1
+ import { isRealIsoDate, snapshotDiagnosticJson } from "./diagnosticRuntime.js";
2
+ import { daysBetweenIsoDates } from "./policyPeriods.js";
3
+ import { DiagnosticValidationError } from "./types.js";
4
+ function compareText(left, right) {
5
+ return left === right ? 0 : left < right ? -1 : 1;
6
+ }
7
+ function dimensionsMatch(source, target, keys) {
8
+ return keys.every((key) => Object.is(source[key], target[key]));
9
+ }
10
+ function overlapDays(sourceStart, sourceEnd, targetStart, targetEnd) {
11
+ const start = sourceStart > targetStart ? sourceStart : targetStart;
12
+ const end = sourceEnd < targetEnd ? sourceEnd : targetEnd;
13
+ return end <= start ? 0 : daysBetweenIsoDates(start, end);
14
+ }
15
+ function validateInput(definition, scope, observation, targets) {
16
+ const issues = [];
17
+ if (observation.measureId !== definition.id)
18
+ issues.push({
19
+ domain: "input",
20
+ code: "invalid-input-relationship",
21
+ path: "$.observation.measureId",
22
+ message: "Exposure observation does not match the measure definition",
23
+ });
24
+ if (definition.scopeId !== scope.id)
25
+ issues.push({
26
+ domain: "configuration",
27
+ code: "unknown-reference",
28
+ path: "$.definition.scopeId",
29
+ message: "Exposure definition does not reference the supplied scope",
30
+ });
31
+ if (observation.value !== null && !Number.isFinite(observation.value))
32
+ issues.push({
33
+ domain: "input",
34
+ code: "invalid-number",
35
+ path: "$.observation.value",
36
+ message: "Exposure value must be finite or null",
37
+ });
38
+ if (definition.sourceMeaning === "point-in-time") {
39
+ if (!isRealIsoDate(observation.pointDate))
40
+ issues.push({
41
+ domain: "input",
42
+ code: "missing-required",
43
+ path: "$.observation.pointDate",
44
+ message: "Point-in-time exposure requires pointDate",
45
+ });
46
+ }
47
+ else if (!isRealIsoDate(observation.startDate) ||
48
+ !isRealIsoDate(observation.endDate) ||
49
+ observation.startDate >= observation.endDate)
50
+ issues.push({
51
+ domain: "input",
52
+ code: "invalid-period",
53
+ path: "$.observation",
54
+ message: "Interval exposure requires startDate before endDate",
55
+ });
56
+ targets.forEach((target, index) => {
57
+ if (!isRealIsoDate(target.startDate) || !isRealIsoDate(target.endDate) || target.startDate >= target.endDate)
58
+ issues.push({
59
+ domain: "configuration",
60
+ code: "invalid-period",
61
+ path: `$.targets[${index}]`,
62
+ message: "Allocation target requires startDate before endDate",
63
+ });
64
+ });
65
+ if (issues.length > 0)
66
+ throw new DiagnosticValidationError(issues);
67
+ }
68
+ /**
69
+ * Earns and allocates one source exposure under explicit interval, scope, and
70
+ * allocation meanings. It never converts point-in-time stock into a flow.
71
+ */
72
+ export function earnAndAllocateExposure(input) {
73
+ validateInput(input.definition, input.scope, input.observation, input.targets);
74
+ const findings = [];
75
+ if (input.observation.value === null)
76
+ return snapshotDiagnosticJson({
77
+ measureId: input.definition.id,
78
+ sourceValue: null,
79
+ allocations: [],
80
+ allocatedValue: 0,
81
+ unallocatedValue: null,
82
+ findings: [
83
+ {
84
+ code: "missing-prerequisite",
85
+ capability: "exposure-earning",
86
+ path: `$.exposures.${input.observation.id}.value`,
87
+ message: "Missing source exposure cannot be allocated",
88
+ requiredFields: ["value"],
89
+ },
90
+ ],
91
+ });
92
+ const missingPopulationKeys = input.scope.populationKeys.filter((key) => !Object.hasOwn(input.observation.dimensions, key));
93
+ if (missingPopulationKeys.length > 0)
94
+ return snapshotDiagnosticJson({
95
+ measureId: input.definition.id,
96
+ sourceValue: input.observation.value,
97
+ allocations: [],
98
+ allocatedValue: 0,
99
+ unallocatedValue: input.observation.value,
100
+ findings: [
101
+ {
102
+ code: "missing-prerequisite",
103
+ capability: "exposure-earning",
104
+ path: `$.exposures.${input.observation.id}.dimensions`,
105
+ message: `Exposure observation lacks population keys: ${missingPopulationKeys.join(", ")}`,
106
+ requiredFields: missingPopulationKeys.map((key) => `dimensions.${key}`),
107
+ },
108
+ ],
109
+ });
110
+ if (input.definition.sourceMeaning === "point-in-time")
111
+ return snapshotDiagnosticJson({
112
+ measureId: input.definition.id,
113
+ sourceValue: input.observation.value,
114
+ allocations: [],
115
+ allocatedValue: 0,
116
+ unallocatedValue: input.observation.value,
117
+ findings: [
118
+ {
119
+ code: "unsupported-operation",
120
+ capability: "exposure-earning",
121
+ path: `$.exposures.${input.observation.id}`,
122
+ message: "Point-in-time exposure cannot be allocated as additive interval exposure",
123
+ },
124
+ ],
125
+ });
126
+ const matching = input.targets.filter((target) => dimensionsMatch(input.observation.dimensions, target.dimensions, input.scope.populationKeys));
127
+ if (matching.length === 0)
128
+ findings.push({
129
+ code: "missing-prerequisite",
130
+ capability: "exposure-earning",
131
+ path: `$.exposures.${input.observation.id}`,
132
+ message: "No allocation target matches the declared exposure population keys",
133
+ });
134
+ let allocations = [];
135
+ const value = input.observation.value;
136
+ const sourceStart = input.observation.startDate;
137
+ const sourceEnd = input.observation.endDate;
138
+ if (input.definition.allocation.kind === "exact-match") {
139
+ const exact = matching.filter((target) => target.startDate === sourceStart && target.endDate === sourceEnd);
140
+ if (exact.length === 1)
141
+ allocations = [
142
+ {
143
+ sourceObservationId: input.observation.id,
144
+ targetId: exact[0].id,
145
+ value,
146
+ method: "exact-match",
147
+ overlapDays: daysBetweenIsoDates(sourceStart, sourceEnd),
148
+ },
149
+ ];
150
+ else if (exact.length > 1)
151
+ findings.push({
152
+ code: "ambiguous-attribution",
153
+ capability: "exposure-earning",
154
+ path: `$.exposures.${input.observation.id}`,
155
+ message: "Multiple exact allocation targets match the source exposure",
156
+ });
157
+ }
158
+ else if (input.definition.allocation.kind === "supplied-weights") {
159
+ const weightId = input.definition.allocation.weightMeasureId;
160
+ const weighted = matching.map((target) => ({ target, weight: target.weights?.[weightId] }));
161
+ if (weighted.some(({ weight }) => weight === undefined || !Number.isFinite(weight) || weight < 0))
162
+ findings.push({
163
+ code: "missing-prerequisite",
164
+ capability: "exposure-earning",
165
+ path: `$.targets.weights.${weightId}`,
166
+ message: "Supplied-weight allocation requires finite nonnegative weights on every matching target",
167
+ requiredFields: [`weights.${weightId}`],
168
+ });
169
+ else {
170
+ const total = weighted.reduce((sum, item) => sum + item.weight, 0);
171
+ if (!(total > 0))
172
+ findings.push({
173
+ code: "missing-prerequisite",
174
+ capability: "exposure-earning",
175
+ path: `$.targets.weights.${weightId}`,
176
+ message: "Supplied allocation weights must have a positive total",
177
+ });
178
+ else
179
+ allocations = weighted.map(({ target, weight }) => ({
180
+ sourceObservationId: input.observation.id,
181
+ targetId: target.id,
182
+ value: value * (weight / total),
183
+ method: "supplied-weights",
184
+ overlapDays: null,
185
+ }));
186
+ }
187
+ }
188
+ else {
189
+ const sourceDays = daysBetweenIsoDates(sourceStart, sourceEnd);
190
+ const overlaps = matching
191
+ .map((target) => ({ target, days: overlapDays(sourceStart, sourceEnd, target.startDate, target.endDate) }))
192
+ .filter(({ days }) => days > 0);
193
+ if (overlaps.reduce((total, item) => total + item.days, 0) > sourceDays) {
194
+ findings.push({
195
+ code: "ambiguous-attribution",
196
+ capability: "exposure-earning",
197
+ path: `$.exposures.${input.observation.id}`,
198
+ message: "Overlapping allocation targets would duplicate source exposure",
199
+ });
200
+ }
201
+ else if (input.definition.sourceMeaning === "already-earned" ||
202
+ input.definition.earning.kind === "supplied")
203
+ findings.push({
204
+ code: "unsupported-operation",
205
+ capability: "exposure-earning",
206
+ path: `$.exposures.${input.observation.id}`,
207
+ message: "Already-earned/supplied exposure requires exact matching or supplied allocation weights",
208
+ });
209
+ else if (input.definition.earning.kind === "weighted") {
210
+ const weightId = input.definition.earning.scheduleId;
211
+ const weighted = overlaps.map(({ target, days }) => ({
212
+ target,
213
+ days,
214
+ weight: target.weights?.[weightId],
215
+ }));
216
+ if (weighted.some(({ weight }) => weight === undefined || !Number.isFinite(weight) || weight < 0))
217
+ findings.push({
218
+ code: "missing-prerequisite",
219
+ capability: "exposure-earning",
220
+ path: `$.targets.weights.${weightId}`,
221
+ message: "Weighted earning requires finite nonnegative schedule weights on every overlapping target",
222
+ requiredFields: [`weights.${weightId}`],
223
+ });
224
+ else {
225
+ const total = weighted.reduce((sum, item) => sum + item.weight, 0);
226
+ if (!(total > 0))
227
+ findings.push({
228
+ code: "missing-prerequisite",
229
+ capability: "exposure-earning",
230
+ path: `$.targets.weights.${weightId}`,
231
+ message: "Weighted earning schedule must have a positive total",
232
+ });
233
+ else
234
+ allocations = weighted.map(({ target, days, weight }) => ({
235
+ sourceObservationId: input.observation.id,
236
+ targetId: target.id,
237
+ value: value * (weight / total),
238
+ method: "weighted-schedule",
239
+ overlapDays: days,
240
+ }));
241
+ }
242
+ }
243
+ else
244
+ allocations = overlaps.map(({ target, days }) => ({
245
+ sourceObservationId: input.observation.id,
246
+ targetId: target.id,
247
+ value: value * (days / sourceDays),
248
+ method: input.definition.earning.kind === "uniform-daily"
249
+ ? "uniform-daily"
250
+ : "time-overlap",
251
+ overlapDays: days,
252
+ }));
253
+ }
254
+ allocations.sort((left, right) => compareText(left.targetId, right.targetId));
255
+ const allocatedValue = allocations.reduce((sum, allocation) => sum + allocation.value, 0);
256
+ let unallocatedValue = value - allocatedValue;
257
+ const tolerance = Math.max(1, Math.abs(value)) * Number.EPSILON * 8;
258
+ if (Math.abs(unallocatedValue) <= tolerance)
259
+ unallocatedValue = 0;
260
+ if (unallocatedValue !== 0)
261
+ findings.push({
262
+ code: "missing-prerequisite",
263
+ capability: "exposure-earning",
264
+ path: `$.exposures.${input.observation.id}`,
265
+ message: `Exposure leaves ${unallocatedValue} ${input.definition.unit} unallocated`,
266
+ });
267
+ return snapshotDiagnosticJson({
268
+ measureId: input.definition.id,
269
+ sourceValue: value,
270
+ allocations,
271
+ allocatedValue,
272
+ unallocatedValue,
273
+ findings,
274
+ });
275
+ }
276
+ //# sourceMappingURL=exposureEarning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposureEarning.js","sourceRoot":"","sources":["../src/exposureEarning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ExposureLevelSchedule, ExposureLevelScheduleResult } from "./customizationContracts.js";
2
+ /**
3
+ * Converts a declared daily exposure level, midterm replacements, and
4
+ * cancellation into nonoverlapping additive interval observations. A movement
5
+ * replaces the prior level; it is never interpreted as an undeclared delta.
6
+ */
7
+ export declare function materializeExposureLevelSchedule(schedule: ExposureLevelSchedule): ExposureLevelScheduleResult;
8
+ //# sourceMappingURL=exposureMovements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposureMovements.d.ts","sourceRoot":"","sources":["../src/exposureMovements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,6BAA6B,CAAC;AASrC;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,qBAAqB,GAAG,2BAA2B,CA0D7G"}
@@ -0,0 +1,70 @@
1
+ import { isRealIsoDate, snapshotDiagnosticJson } from "./diagnosticRuntime.js";
2
+ import { daysBetweenIsoDates } from "./policyPeriods.js";
3
+ import { DiagnosticValidationError } from "./types.js";
4
+ function finding(message) {
5
+ return { code: "ambiguous-attribution", capability: "exposure-earning", path: "$.movements", message };
6
+ }
7
+ /**
8
+ * Converts a declared daily exposure level, midterm replacements, and
9
+ * cancellation into nonoverlapping additive interval observations. A movement
10
+ * replaces the prior level; it is never interpreted as an undeclared delta.
11
+ */
12
+ export function materializeExposureLevelSchedule(schedule) {
13
+ const issues = [];
14
+ if (!isRealIsoDate(schedule.startDate) || !isRealIsoDate(schedule.endDate) || schedule.startDate >= schedule.endDate)
15
+ issues.push({ domain: "input", code: "invalid-period", path: "$.schedule", message: "Exposure level schedule requires startDate before endDate" });
16
+ if (!Number.isFinite(schedule.initialDailyLevel) || schedule.initialDailyLevel < 0)
17
+ issues.push({ domain: "input", code: "invalid-number", path: "$.initialDailyLevel", message: "Initial daily level must be finite and nonnegative" });
18
+ for (const [index, movement] of schedule.movements.entries()) {
19
+ if (!isRealIsoDate(movement.effectiveDate) || movement.effectiveDate < schedule.startDate || movement.effectiveDate >= schedule.endDate)
20
+ issues.push({ domain: "input", code: "invalid-period", path: `$.movements[${index}].effectiveDate`, message: "Movement date must fall within the start-inclusive/end-exclusive schedule" });
21
+ if (movement.kind === "set-daily-level" && (!Number.isFinite(movement.dailyLevel) || movement.dailyLevel < 0))
22
+ issues.push({ domain: "input", code: "invalid-number", path: `$.movements[${index}].dailyLevel`, message: "Replacement daily level must be finite and nonnegative" });
23
+ }
24
+ if (issues.length > 0)
25
+ throw new DiagnosticValidationError(issues);
26
+ const ordered = [...schedule.movements].sort((left, right) => left.effectiveDate === right.effectiveDate
27
+ ? left.id.localeCompare(right.id)
28
+ : left.effectiveDate.localeCompare(right.effectiveDate));
29
+ for (let index = 1; index < ordered.length; index += 1)
30
+ if (ordered[index - 1].effectiveDate === ordered[index].effectiveDate)
31
+ return snapshotDiagnosticJson({
32
+ status: "unavailable",
33
+ observations: [],
34
+ totalValue: null,
35
+ findings: [finding(`Multiple exposure movements are effective on ${ordered[index].effectiveDate}`)],
36
+ });
37
+ let cursor = schedule.startDate;
38
+ let level = schedule.initialDailyLevel;
39
+ let segment = 0;
40
+ const observations = [];
41
+ const emit = (endDate) => {
42
+ if (cursor === endDate)
43
+ return;
44
+ observations.push({
45
+ id: `${schedule.id}:segment-${segment}`,
46
+ measureId: schedule.measureId,
47
+ value: level * daysBetweenIsoDates(cursor, endDate),
48
+ startDate: cursor,
49
+ endDate,
50
+ ...(schedule.evaluationDate === undefined ? {} : { evaluationDate: schedule.evaluationDate }),
51
+ dimensions: schedule.dimensions,
52
+ revisionId: schedule.revisionId,
53
+ source: schedule.source,
54
+ });
55
+ segment += 1;
56
+ cursor = endDate;
57
+ };
58
+ for (const movement of ordered) {
59
+ emit(movement.effectiveDate);
60
+ level = movement.kind === "cancel" ? 0 : movement.dailyLevel;
61
+ }
62
+ emit(schedule.endDate);
63
+ return snapshotDiagnosticJson({
64
+ status: "available",
65
+ observations,
66
+ totalValue: observations.reduce((total, observation) => total + (observation.value ?? 0), 0),
67
+ findings: [],
68
+ });
69
+ }
70
+ //# sourceMappingURL=exposureMovements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposureMovements.js","sourceRoot":"","sources":["../src/exposureMovements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { CustomizationExposureObservation, ExposureRevisionSelection, ExposureScopeDefinition, ExposureValuationSelection, SelectedExposureRevisions } from "./customizationContracts.js";
2
+ /** Selects immutable exposure revisions without allowing later corrections into an as-known run. */
3
+ export declare function selectExposureRevisions(input: {
4
+ readonly observations: readonly CustomizationExposureObservation[];
5
+ readonly selection: ExposureRevisionSelection;
6
+ }): SelectedExposureRevisions;
7
+ /** Applies the declared origin-static or valuation-specific exposure view. */
8
+ export declare function selectExposureValuation(input: {
9
+ readonly observations: readonly CustomizationExposureObservation[];
10
+ readonly scope: ExposureScopeDefinition;
11
+ readonly evaluationDate: string;
12
+ }): ExposureValuationSelection;
13
+ //# sourceMappingURL=exposureRevisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposureRevisions.d.ts","sourceRoot":"","sources":["../src/exposureRevisions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gCAAgC,EAEhC,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AAgCrC,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,gCAAgC,EAAE,CAAC;IACnE,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;CAC/C,GAAG,yBAAyB,CA4F5B;AAED,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,YAAY,EAAE,SAAS,gCAAgC,EAAE,CAAC;IACnE,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GAAG,0BAA0B,CAyC7B"}