@actuarial-ts/data 0.10.0 → 0.12.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.
@@ -131,13 +131,39 @@ const compactCompleted = new WeakSet();
131
131
  // Retain the exact immutable validated input only while its completed run lives.
132
132
  // Reconstructing from the audit would lose the original optional/raw-value form.
133
133
  const compactInputByCompletedRun = new WeakMap();
134
- function freeze(value, seen = new WeakSet()) {
135
- if (value === null || typeof value !== "object" || seen.has(value))
136
- return value;
137
- seen.add(value);
138
- for (const child of Object.values(value))
139
- freeze(child, seen);
140
- return Object.freeze(value);
134
+ // Validated inputs are JSON-shaped trees (the schema copies every row), so a
135
+ // shared node is a small leaf visited once per reference rather than tracked in
136
+ // a table of every node. Ancestors are recorded only past this depth, which a
137
+ // cycle in a caller-supplied graph must exceed before it is cut.
138
+ const UNGUARDED_FREEZE_DEPTH = 64;
139
+ function freeze(value, skip) {
140
+ let ancestors;
141
+ const visit = (node, depth) => {
142
+ if (node === null || typeof node !== "object" || skip?.has(node))
143
+ return;
144
+ const guarded = depth > UNGUARDED_FREEZE_DEPTH;
145
+ if (guarded) {
146
+ ancestors ??= new Set();
147
+ if (ancestors.has(node))
148
+ return;
149
+ ancestors.add(node);
150
+ }
151
+ if (Array.isArray(node)) {
152
+ for (let index = 0; index < node.length; index++)
153
+ visit(node[index], depth + 1);
154
+ }
155
+ else {
156
+ const record = node;
157
+ const keys = Object.keys(record);
158
+ for (let index = 0; index < keys.length; index++)
159
+ visit(record[keys[index]], depth + 1);
160
+ }
161
+ if (guarded)
162
+ ancestors.delete(node);
163
+ Object.freeze(node);
164
+ };
165
+ visit(value, 0);
166
+ return value;
141
167
  }
142
168
  function issues(error) {
143
169
  return new DiagnosticValidationError(error.issues.map((issue) => ({
@@ -162,22 +188,35 @@ function sortedRecord(value) {
162
188
  result[key] = value[key];
163
189
  return result;
164
190
  }
191
+ /** Renders the JSON path of a frame only when an issue must cite it. */
192
+ function scanFramePath(frame) {
193
+ if (frame.parent === null || frame.key === null)
194
+ return "$";
195
+ const parentPath = scanFramePath(frame.parent);
196
+ return Array.isArray(frame.parent.value)
197
+ ? `${parentPath}[${frame.key}]`
198
+ : /^[A-Za-z_$][\w$]*$/.test(frame.key)
199
+ ? `${parentPath}.${frame.key}`
200
+ : `${parentPath}[${JSON.stringify(frame.key)}]`;
201
+ }
165
202
  function explicitUndefinedIssues(value) {
166
203
  const found = [];
167
- const stack = [{ value, path: "$" }];
204
+ const stack = [{ value, parent: null, key: null }];
168
205
  const seen = new WeakSet();
169
206
  while (stack.length > 0) {
170
207
  const current = stack.pop();
171
208
  if (current.value === null || typeof current.value !== "object" || seen.has(current.value))
172
209
  continue;
173
210
  seen.add(current.value);
174
- for (const [key, child] of Object.entries(current.value)) {
175
- const path = Array.isArray(current.value)
176
- ? `${current.path}[${key}]`
177
- : /^[A-Za-z_$][\w$]*$/.test(key)
178
- ? `${current.path}.${key}`
179
- : `${current.path}[${JSON.stringify(key)}]`;
180
- if (child === undefined)
211
+ const record = current.value;
212
+ // Large inputs are ordinary: build no path text or entry pairs on the
213
+ // common path, only the frame links needed to render a path on demand.
214
+ const keys = Object.keys(record);
215
+ for (let index = 0; index < keys.length; index++) {
216
+ const key = keys[index];
217
+ const child = record[key];
218
+ if (child === undefined) {
219
+ const path = scanFramePath({ value: child, parent: current, key });
181
220
  found.push({
182
221
  domain: path.startsWith("$.definition")
183
222
  ? "definition"
@@ -190,23 +229,197 @@ function explicitUndefinedIssues(value) {
190
229
  path,
191
230
  message: "Explicit undefined is not allowed",
192
231
  });
193
- else
194
- stack.push({ value: child, path });
232
+ }
233
+ else if (child !== null && typeof child === "object")
234
+ stack.push({ value: child, parent: current, key });
195
235
  }
196
236
  }
197
237
  return found;
198
238
  }
239
+ const isPlainRecord = (value) => {
240
+ if (value === null || typeof value !== "object" || Array.isArray(value))
241
+ return false;
242
+ const prototype = Object.getPrototypeOf(value);
243
+ return prototype === Object.prototype || prototype === null;
244
+ };
245
+ const hasOwn = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
246
+ function fastSource(value) {
247
+ if (!isPlainRecord(value))
248
+ return undefined;
249
+ const artifactId = value.artifactId;
250
+ if (!isDiagnosticToken(artifactId))
251
+ return undefined;
252
+ const out = { artifactId };
253
+ let matched = 1;
254
+ for (const field of ["sourceFile", "sourceSheet"])
255
+ if (hasOwn(value, field)) {
256
+ const item = value[field];
257
+ if (!isDiagnosticToken(item))
258
+ return undefined;
259
+ out[field] = item;
260
+ matched++;
261
+ }
262
+ if (hasOwn(value, "sourceRow")) {
263
+ const item = value.sourceRow;
264
+ if (typeof item !== "number" || !Number.isSafeInteger(item) || item < 0)
265
+ return undefined;
266
+ out.sourceRow = item;
267
+ matched++;
268
+ }
269
+ if (hasOwn(value, "sourceCell")) {
270
+ const item = value.sourceCell;
271
+ if (!isDiagnosticToken(item))
272
+ return undefined;
273
+ out.sourceCell = item;
274
+ matched++;
275
+ }
276
+ if (Object.keys(value).length !== matched)
277
+ return undefined;
278
+ return out;
279
+ }
280
+ function fastMeasures(value) {
281
+ if (!isPlainRecord(value))
282
+ return undefined;
283
+ const out = {};
284
+ const keys = Object.keys(value);
285
+ for (let index = 0; index < keys.length; index++) {
286
+ const key = keys[index];
287
+ const item = value[key];
288
+ if (item !== null && typeof item !== "number")
289
+ return undefined;
290
+ // The schema's key round trip keeps a literal "__proto__" as own data.
291
+ if (key === "__proto__")
292
+ Object.defineProperty(out, key, { value: item, enumerable: true, writable: true, configurable: true });
293
+ else
294
+ out[key] = item;
295
+ }
296
+ return out;
297
+ }
298
+ function fastLossRow(value) {
299
+ if (!isPlainRecord(value))
300
+ return undefined;
301
+ const { recordId, sourceGroup, origin, valuation, complete, rowType } = value;
302
+ if (!isDiagnosticToken(recordId) ||
303
+ !isDiagnosticToken(sourceGroup) ||
304
+ !isDiagnosticToken(origin) ||
305
+ !isDiagnosticToken(valuation) ||
306
+ typeof complete !== "boolean")
307
+ return undefined;
308
+ const out = { recordId, sourceGroup, origin, valuation, complete };
309
+ let expected = 7;
310
+ if (hasOwn(value, "source")) {
311
+ const source = fastSource(value.source);
312
+ if (source === undefined)
313
+ return undefined;
314
+ out.source = source;
315
+ expected++;
316
+ }
317
+ const measures = fastMeasures(value.measures);
318
+ if (measures === undefined)
319
+ return undefined;
320
+ out.measures = measures;
321
+ if (rowType === "claim") {
322
+ const claimId = value.claimId;
323
+ if (!hasOwn(value, "claimId") || !isDiagnosticToken(claimId))
324
+ return undefined;
325
+ out.rowType = "claim";
326
+ out.claimId = claimId;
327
+ expected++;
328
+ }
329
+ else if (rowType === "aggregate")
330
+ out.rowType = "aggregate";
331
+ else
332
+ return undefined;
333
+ if (Object.keys(value).length !== expected)
334
+ return undefined;
335
+ return out;
336
+ }
337
+ function fastExposureRow(value) {
338
+ if (!isPlainRecord(value))
339
+ return undefined;
340
+ const { key, sourceGroup, origin, measureId, complete } = value;
341
+ const measure = value.value;
342
+ if (!isDiagnosticToken(key) ||
343
+ !isDiagnosticToken(sourceGroup) ||
344
+ !isDiagnosticToken(origin) ||
345
+ !isDiagnosticToken(measureId) ||
346
+ (measure !== null && typeof measure !== "number") ||
347
+ typeof complete !== "boolean")
348
+ return undefined;
349
+ const out = { key, sourceGroup, origin };
350
+ let expected = 6;
351
+ if (hasOwn(value, "valuation")) {
352
+ const valuation = value.valuation;
353
+ if (!isDiagnosticToken(valuation))
354
+ return undefined;
355
+ out.valuation = valuation;
356
+ expected++;
357
+ }
358
+ out.measureId = measureId;
359
+ out.value = measure;
360
+ out.complete = complete;
361
+ if (hasOwn(value, "source")) {
362
+ const source = fastSource(value.source);
363
+ if (source === undefined)
364
+ return undefined;
365
+ out.source = source;
366
+ expected++;
367
+ }
368
+ if (Object.keys(value).length !== expected)
369
+ return undefined;
370
+ return out;
371
+ }
372
+ /**
373
+ * Validates and copies the row arrays directly when every row is schema-shaped.
374
+ * Returns the owned rows plus a shell of the input with empty row arrays for
375
+ * the schema to validate everything else; undefined defers the whole input.
376
+ */
377
+ function fastSourceRows(value) {
378
+ if (!isPlainRecord(value) || !Array.isArray(value.losses))
379
+ return undefined;
380
+ const losses = [];
381
+ for (let index = 0; index < value.losses.length; index++) {
382
+ const row = fastLossRow(value.losses[index]);
383
+ if (row === undefined)
384
+ return undefined;
385
+ losses.push(row);
386
+ }
387
+ let exposures;
388
+ if (hasOwn(value, "exposures")) {
389
+ if (!Array.isArray(value.exposures))
390
+ return undefined;
391
+ exposures = [];
392
+ for (let index = 0; index < value.exposures.length; index++) {
393
+ const row = fastExposureRow(value.exposures[index]);
394
+ if (row === undefined)
395
+ return undefined;
396
+ exposures.push(row);
397
+ }
398
+ }
399
+ return {
400
+ shell: { ...value, losses: [], ...(exposures === undefined ? {} : { exposures: [] }) },
401
+ losses,
402
+ exposures,
403
+ };
404
+ }
199
405
  // Both public gateways share the same full validation/ownership boundary.
200
406
  // Selecting compact storage never invokes the eager preparation first.
201
407
  function validateRunInputContent(value) {
202
- const undefinedIssues = explicitUndefinedIssues(value);
408
+ // A row the fast check accepts holds no explicit undefined anywhere: every
409
+ // field it reads must be a token, boolean, or number-or-null, and any other
410
+ // value (including undefined) makes it decline the whole input. So when it
411
+ // accepts, scanning its row-free shell reports exactly the same issues.
412
+ const fast = fastSourceRows(value);
413
+ const undefinedIssues = explicitUndefinedIssues(fast === undefined ? value : fast.shell);
203
414
  if (undefinedIssues.length > 0)
204
415
  throw new DiagnosticValidationError(undefinedIssues);
205
- const parsed = runSchema.safeParse(value);
416
+ const parsed = runSchema.safeParse(fast === undefined ? value : fast.shell);
206
417
  if (!parsed.success)
207
418
  throw issues(parsed.error);
419
+ const losses = fast === undefined ? parsed.data.losses : fast.losses;
420
+ const exposures = (fast === undefined ? parsed.data.exposures : fast.exposures) ?? [];
208
421
  const definition = compileDiagnosticDefinition(parsed.data.definition);
209
- const relationIssues = parsed.data.losses.flatMap((row, index) => row.rowType === definition.definition.lossRowGrain
422
+ const relationIssues = losses.flatMap((row, index) => row.rowType === definition.definition.lossRowGrain
210
423
  ? []
211
424
  : [
212
425
  {
@@ -216,7 +429,7 @@ function validateRunInputContent(value) {
216
429
  message: "Loss row type does not match definition grain",
217
430
  },
218
431
  ]);
219
- for (const [index, row] of (parsed.data.exposures ?? []).entries()) {
432
+ for (const [index, row] of exposures.entries()) {
220
433
  const measure = definition.definition.measures.find((item) => item.id === row.measureId);
221
434
  if (measure?.exposureTiming === "valuation-specific" && row.valuation === undefined)
222
435
  relationIssues.push({
@@ -265,8 +478,8 @@ function validateRunInputContent(value) {
265
478
  ]);
266
479
  const result = freeze({
267
480
  definition,
268
- losses: parsed.data.losses,
269
- exposures: parsed.data.exposures ?? [],
481
+ losses,
482
+ exposures,
270
483
  filter: parsed.data.filter ?? null,
271
484
  completePeriodCutoffs: parsed.data.completePeriodCutoffs ?? [],
272
485
  expectedCells: parsed.data.expectedCells ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticInput.js","sourceRoot":"","sources":["../src/diagnosticInput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnosticInput.js","sourceRoot":"","sources":["../src/diagnosticInput.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const DATA_PACKAGE_VERSION = "0.10.0";
1
+ export declare const DATA_PACKAGE_VERSION = "0.12.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const DATA_PACKAGE_VERSION = "0.10.0";
1
+ export const DATA_PACKAGE_VERSION = "0.12.0";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actuarial-ts/data",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "description": "Data ingestion and ASOP No. 23 support for actuarial-ts: loss/exposure preparation, atomic generalized diagnostic validation, declarative review, and triangle assembly.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -49,7 +49,7 @@
49
49
  "prepublishOnly": "node ../../tools/release/verify-release-attestation.mjs @actuarial-ts/data"
50
50
  },
51
51
  "dependencies": {
52
- "@actuarial-ts/core": "^0.10.0",
52
+ "@actuarial-ts/core": "^0.12.0",
53
53
  "zod": "^3.25.76"
54
54
  },
55
55
  "devDependencies": {
@@ -431,7 +431,7 @@ const statistic = z.discriminatedUnion("kind", [
431
431
  numeratorMeasureId: token,
432
432
  denominatorMeasureId: token,
433
433
  scale: finite,
434
- denominatorRule: z.enum(["positive", "nonzero"]),
434
+ denominatorRule: z.literal("positive"),
435
435
  })
436
436
  .strict(),
437
437
  z
@@ -870,16 +870,22 @@ export const analysisResultSchema: z.ZodType<AnalysisResult> = z.object({
870
870
  const scenarioChange = z.discriminatedUnion("kind", [
871
871
  z.object({ kind: z.literal("financial-term-limit"), termId: token, limit: finite.positive().nullable() }).strict(),
872
872
  z.object({ kind: z.literal("financial-term-attachment"), termId: token, amount: finite.nonnegative() }).strict(),
873
+ z.object({ kind: z.literal("financial-adjustment-factor"), adjustmentId: token, factor: finite.positive() }).strict(),
873
874
  z.object({ kind: z.literal("reporting-predicate"), predicate }).strict(),
874
875
  ]);
875
876
 
877
+ /** One key per varied parameter: a term, a named adjustment, or the reporting predicate. */
878
+ function scenarioChangeKey(change: z.infer<typeof scenarioChange>): string {
879
+ if (change.kind === "reporting-predicate") return change.kind;
880
+ if (change.kind === "financial-adjustment-factor") return `${change.kind}:${change.adjustmentId}`;
881
+ return `${change.kind}:${change.termId}`;
882
+ }
883
+
876
884
  export const analysisScenarioSchema = z.object({
877
885
  id: token,
878
886
  changes: z.array(scenarioChange).min(1).max(100),
879
887
  }).strict().superRefine((scenario, context) => {
880
- const keys = scenario.changes.map((change) =>
881
- change.kind === "reporting-predicate" ? change.kind : `${change.kind}:${change.termId}`,
882
- );
888
+ const keys = scenario.changes.map(scenarioChangeKey);
883
889
  if (new Set(keys).size !== keys.length)
884
890
  context.addIssue({ code: z.ZodIssueCode.custom, path: ["changes"], message: "Scenario changes must target each parameter at most once" });
885
891
  });