@actuarial-ts/data 0.5.0 → 0.6.1

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 (50) hide show
  1. package/README.md +45 -127
  2. package/dist/casualtyDiagnosticReview.d.ts +46 -0
  3. package/dist/casualtyDiagnosticReview.d.ts.map +1 -0
  4. package/dist/casualtyDiagnosticReview.js +23 -0
  5. package/dist/casualtyDiagnosticReview.js.map +1 -0
  6. package/dist/diagnosticDefinition.d.ts +4 -0
  7. package/dist/diagnosticDefinition.d.ts.map +1 -0
  8. package/dist/diagnosticDefinition.js +6 -0
  9. package/dist/diagnosticDefinition.js.map +1 -0
  10. package/dist/diagnosticInput.d.ts +97 -13
  11. package/dist/diagnosticInput.d.ts.map +1 -1
  12. package/dist/diagnosticInput.js +403 -43
  13. package/dist/diagnosticInput.js.map +1 -1
  14. package/dist/diagnosticPreparedReview.d.ts +46 -0
  15. package/dist/diagnosticPreparedReview.d.ts.map +1 -0
  16. package/dist/diagnosticPreparedReview.js +449 -0
  17. package/dist/diagnosticPreparedReview.js.map +1 -0
  18. package/dist/exposure.d.ts.map +1 -1
  19. package/dist/exposure.js +25 -9
  20. package/dist/exposure.js.map +1 -1
  21. package/dist/index.d.ts +4 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +4 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/lossRun.d.ts.map +1 -1
  26. package/dist/lossRun.js +31 -8
  27. package/dist/lossRun.js.map +1 -1
  28. package/dist/review.d.ts +16 -3
  29. package/dist/review.d.ts.map +1 -1
  30. package/dist/review.js +35 -5
  31. package/dist/review.js.map +1 -1
  32. package/dist/version.d.ts +2 -0
  33. package/dist/version.d.ts.map +1 -0
  34. package/dist/version.js +2 -0
  35. package/dist/version.js.map +1 -0
  36. package/package.json +5 -4
  37. package/src/casualtyDiagnosticReview.ts +17 -0
  38. package/src/diagnosticDefinition.ts +6 -0
  39. package/src/diagnosticInput.ts +600 -57
  40. package/src/diagnosticPreparedReview.ts +653 -0
  41. package/src/exposure.ts +61 -16
  42. package/src/index.ts +4 -1
  43. package/src/lossRun.ts +55 -13
  44. package/src/review.ts +194 -42
  45. package/src/version.ts +1 -0
  46. package/dist/diagnosticReview.d.ts +0 -68
  47. package/dist/diagnosticReview.d.ts.map +0 -1
  48. package/dist/diagnosticReview.js +0 -370
  49. package/dist/diagnosticReview.js.map +0 -1
  50. package/src/diagnosticReview.ts +0 -547
@@ -1,51 +1,411 @@
1
- import { ReservingError, reconcileDiagnosticExposureKeys, runMetricDiagnostics, } from "@actuarial-ts/core";
1
+ import { DiagnosticValidationError, compileDiagnosticDefinition, prepareDiagnosticData, runMetricDiagnostics, validateDiagnosticGroupingConfiguration, diagnosticRecord, isDiagnosticToken, isWellFormedDiagnosticString, } from "@actuarial-ts/core";
2
2
  import { z } from "zod";
3
- const measuresSchema = z.record(z.number().nullable());
4
- const diagnosticLossRowSchema = z.object({
5
- id: z.string().min(1),
6
- group: z.string().min(1),
7
- origin: z.string().min(1),
8
- valuation: z.string().min(1),
9
- ageMonths: z.number(),
10
- policyPeriod: z.string().min(1).optional(),
11
- dimensions: z.unknown().optional(),
12
- measures: measuresSchema,
13
- }).strict();
14
- const diagnosticExposureRowSchema = z.object({
15
- key: z.string().min(1),
16
- group: z.string().min(1),
17
- origin: z.string().min(1),
18
- valuation: z.string().min(1).optional(),
3
+ import { reviewPreparedDiagnosticData, validateDiagnosticReviewEvidence, } from "./diagnosticPreparedReview.js";
4
+ // Zod 3 validates but drops the literal __proto__ key while assembling records.
5
+ // Encode every key reversibly during validation, then restore owned data keys.
6
+ // The same adapter is exercised by the shared three-shore prototype-key corpus.
7
+ function recordSchema(value) {
8
+ return z
9
+ .record(z.string().transform((key) => `:${key}`), value)
10
+ .transform((record) => Object.fromEntries(Object.entries(record).map(([key, item]) => [key.slice(1), item])));
11
+ }
12
+ const tokenSchema = z
13
+ .string()
14
+ .refine(isDiagnosticToken, "Expected a nonempty token with valid Unicode and no U+0000");
15
+ const jsonStringSchema = z
16
+ .string()
17
+ .refine(isWellFormedDiagnosticString, "Expected valid Unicode without U+0000");
18
+ const sourceSchema = z
19
+ .object({
20
+ artifactId: tokenSchema,
21
+ sourceFile: tokenSchema.optional(),
22
+ sourceSheet: tokenSchema.optional(),
23
+ sourceRow: z.number().int().nonnegative().safe().optional(),
24
+ sourceCell: tokenSchema.optional(),
25
+ })
26
+ .strict();
27
+ const rawNumberSchema = z.custom((value) => typeof value === "number", "Expected number");
28
+ const measuresSchema = recordSchema(z.union([rawNumberSchema, z.null()]));
29
+ const lossBase = {
30
+ recordId: tokenSchema,
31
+ sourceGroup: tokenSchema,
32
+ origin: tokenSchema,
33
+ valuation: tokenSchema,
34
+ complete: z.boolean(),
35
+ source: sourceSchema.optional(),
19
36
  measures: measuresSchema,
20
- complete: z.boolean().optional(),
21
- dimensions: z.unknown().optional(),
22
- }).strict();
23
- const diagnosticDatasetSchema = z.object({
24
- losses: z.array(diagnosticLossRowSchema),
25
- exposures: z.array(diagnosticExposureRowSchema).optional(),
26
- }).strict();
27
- /** Zod-validates unknown diagnostic rows at the data package boundary. */
28
- export function validateDiagnosticDataset(value) {
29
- const parsed = diagnosticDatasetSchema.safeParse(value);
30
- if (!parsed.success) {
31
- const details = parsed.error.issues
32
- .map((issue) => `${issue.path.length > 0 ? issue.path.join(".") : "$"}: ${issue.message}`)
33
- .join("; ");
34
- throw new ReservingError("SHAPE", `Invalid diagnostic dataset: ${details}`);
37
+ };
38
+ const lossSchema = z.discriminatedUnion("rowType", [
39
+ z
40
+ .object({ ...lossBase, rowType: z.literal("claim"), claimId: tokenSchema })
41
+ .strict(),
42
+ z.object({ ...lossBase, rowType: z.literal("aggregate") }).strict(),
43
+ ]);
44
+ const exposureSchema = z
45
+ .object({
46
+ key: tokenSchema,
47
+ sourceGroup: tokenSchema,
48
+ origin: tokenSchema,
49
+ valuation: tokenSchema.optional(),
50
+ measureId: tokenSchema,
51
+ value: z.union([rawNumberSchema, z.null()]),
52
+ complete: z.boolean(),
53
+ source: sourceSchema.optional(),
54
+ })
55
+ .strict();
56
+ const filterSchema = z
57
+ .object({
58
+ sourceGroups: z.array(tokenSchema).optional(),
59
+ outputGroups: z.array(tokenSchema).optional(),
60
+ origins: z.array(tokenSchema).optional(),
61
+ originFrom: tokenSchema.optional(),
62
+ originThrough: tokenSchema.optional(),
63
+ valuations: z.array(tokenSchema).optional(),
64
+ valuationFrom: tokenSchema.optional(),
65
+ valuationThrough: tokenSchema.optional(),
66
+ minDevelopmentAge: z.number().int().nonnegative().safe().optional(),
67
+ maxDevelopmentAge: z.number().int().nonnegative().safe().optional(),
68
+ instanceIds: z.array(tokenSchema).optional(),
69
+ })
70
+ .strict();
71
+ const cutoffSchema = z
72
+ .object({
73
+ sourceGroup: tokenSchema,
74
+ originThrough: tokenSchema.nullable(),
75
+ valuationThrough: tokenSchema.nullable(),
76
+ })
77
+ .strict();
78
+ const expectedSchema = z
79
+ .object({
80
+ sourceGroup: tokenSchema,
81
+ origin: tokenSchema,
82
+ valuation: tokenSchema,
83
+ source: sourceSchema.optional(),
84
+ })
85
+ .strict();
86
+ const jsonSchema = z.lazy(() => z.union([
87
+ z.null(),
88
+ z.boolean(),
89
+ z.number().finite(),
90
+ jsonStringSchema,
91
+ z.array(jsonSchema),
92
+ recordSchema(jsonSchema),
93
+ ]));
94
+ const policySchema = z
95
+ .object({
96
+ allowedReviewStatuses: z
97
+ .array(z.enum(["pass", "warning", "not-evaluated", "fail"]))
98
+ .optional(),
99
+ allowedMetricFindingSeverities: z
100
+ .array(z.enum(["info", "warning", "fail"]))
101
+ .optional(),
102
+ rationaleRef: tokenSchema.optional(),
103
+ })
104
+ .strict();
105
+ const runSchema = z
106
+ .object({
107
+ definition: z.unknown(),
108
+ losses: z.array(lossSchema),
109
+ exposures: z.array(exposureSchema).optional(),
110
+ filter: filterSchema.optional(),
111
+ completePeriodCutoffs: z.array(cutoffSchema).optional(),
112
+ expectedCells: z.array(expectedSchema).optional(),
113
+ reviewEvidence: z.unknown().nullable().optional(),
114
+ runPresetId: tokenSchema.optional(),
115
+ datasetArtifactId: tokenSchema.optional(),
116
+ groupMap: recordSchema(tokenSchema).optional(),
117
+ groupDimensions: recordSchema(jsonSchema).optional(),
118
+ policy: policySchema.optional(),
119
+ })
120
+ .strict();
121
+ const authentic = new WeakSet();
122
+ function freeze(value, seen = new WeakSet()) {
123
+ if (value === null || typeof value !== "object" || seen.has(value))
124
+ return value;
125
+ seen.add(value);
126
+ for (const child of Object.values(value))
127
+ freeze(child, seen);
128
+ return Object.freeze(value);
129
+ }
130
+ function issues(error) {
131
+ return new DiagnosticValidationError(error.issues.map((issue) => ({
132
+ domain: (issue.path[0] === "definition"
133
+ ? "definition"
134
+ : issue.path[0] === "losses" ||
135
+ issue.path[0] === "exposures" ||
136
+ issue.path[0] === "reviewEvidence"
137
+ ? "input"
138
+ : "configuration"),
139
+ code: issue.code === "unrecognized_keys" ? "unknown-key" : "invalid-type",
140
+ path: `$${issue.path.map((part) => (typeof part === "number" ? `[${part}]` : /^[A-Za-z_$][\w$]*$/.test(part) ? `.${part}` : `[${JSON.stringify(part)}]`)).join("")}`,
141
+ message: issue.message,
142
+ })));
143
+ }
144
+ function codeUnit(left, right) {
145
+ return left < right ? -1 : left > right ? 1 : 0;
146
+ }
147
+ function sortedRecord(value) {
148
+ const result = diagnosticRecord();
149
+ for (const key of Object.keys(value).sort(codeUnit))
150
+ result[key] = value[key];
151
+ return result;
152
+ }
153
+ function explicitUndefinedIssues(value) {
154
+ const found = [];
155
+ const stack = [
156
+ { value, path: "$" },
157
+ ];
158
+ const seen = new WeakSet();
159
+ while (stack.length > 0) {
160
+ const current = stack.pop();
161
+ if (current.value === null ||
162
+ typeof current.value !== "object" ||
163
+ seen.has(current.value))
164
+ continue;
165
+ seen.add(current.value);
166
+ for (const [key, child] of Object.entries(current.value)) {
167
+ const path = Array.isArray(current.value)
168
+ ? `${current.path}[${key}]`
169
+ : /^[A-Za-z_$][\w$]*$/.test(key)
170
+ ? `${current.path}.${key}`
171
+ : `${current.path}[${JSON.stringify(key)}]`;
172
+ if (child === undefined)
173
+ found.push({
174
+ domain: path.startsWith("$.definition")
175
+ ? "definition"
176
+ : path.startsWith("$.losses") ||
177
+ path.startsWith("$.exposures") ||
178
+ path.startsWith("$.reviewEvidence")
179
+ ? "input"
180
+ : "configuration",
181
+ code: "invalid-type",
182
+ path,
183
+ message: "Explicit undefined is not allowed",
184
+ });
185
+ else
186
+ stack.push({ value: child, path });
187
+ }
35
188
  }
36
- return {
189
+ return found;
190
+ }
191
+ export function validateDiagnosticRunInput(value) {
192
+ const undefinedIssues = explicitUndefinedIssues(value);
193
+ if (undefinedIssues.length > 0)
194
+ throw new DiagnosticValidationError(undefinedIssues);
195
+ const parsed = runSchema.safeParse(value);
196
+ if (!parsed.success)
197
+ throw issues(parsed.error);
198
+ const definition = compileDiagnosticDefinition(parsed.data.definition);
199
+ const relationIssues = parsed.data.losses.flatMap((row, index) => row.rowType === definition.definition.lossRowGrain
200
+ ? []
201
+ : [
202
+ {
203
+ domain: "input",
204
+ code: "invalid-input-relationship",
205
+ path: `$.losses[${index}].rowType`,
206
+ message: "Loss row type does not match definition grain",
207
+ },
208
+ ]);
209
+ for (const [index, row] of (parsed.data.exposures ?? []).entries()) {
210
+ const measure = definition.definition.measures.find((item) => item.id === row.measureId);
211
+ if (measure?.exposureTiming === "valuation-specific" &&
212
+ row.valuation === undefined)
213
+ relationIssues.push({
214
+ domain: "input",
215
+ code: "missing-required",
216
+ path: `$.exposures[${index}].valuation`,
217
+ message: "Valuation-specific exposure requires valuation",
218
+ });
219
+ }
220
+ if (relationIssues.length)
221
+ throw new DiagnosticValidationError(relationIssues);
222
+ const review = parsed.data.policy?.allowedReviewStatuses ?? [
223
+ "pass",
224
+ "warning",
225
+ "not-evaluated",
226
+ ];
227
+ const metric = parsed.data.policy?.allowedMetricFindingSeverities ?? [
228
+ "info",
229
+ "warning",
230
+ ];
231
+ const rationale = parsed.data.policy?.rationaleRef ?? null;
232
+ if ((review.includes("fail") || metric.includes("fail")) &&
233
+ rationale === null)
234
+ throw new DiagnosticValidationError([
235
+ {
236
+ domain: "configuration",
237
+ code: "missing-required",
238
+ path: "$.policy.rationaleRef",
239
+ message: "A rationale is required when fail outcomes are allowed",
240
+ },
241
+ ]);
242
+ const reviewEvidence = parsed.data.reviewEvidence === undefined ||
243
+ parsed.data.reviewEvidence === null
244
+ ? null
245
+ : validateDiagnosticReviewEvidence(parsed.data.reviewEvidence, "$.reviewEvidence");
246
+ const reviewOrder = [
247
+ "pass",
248
+ "warning",
249
+ "not-evaluated",
250
+ "fail",
251
+ ];
252
+ const metricOrder = [
253
+ "info",
254
+ "warning",
255
+ "fail",
256
+ ];
257
+ for (const key of [
258
+ ...Object.keys(parsed.data.groupMap ?? {}),
259
+ ...Object.keys(parsed.data.groupDimensions ?? {}),
260
+ ])
261
+ if (!isDiagnosticToken(key))
262
+ throw new DiagnosticValidationError([
263
+ {
264
+ domain: "configuration",
265
+ code: "invalid-string",
266
+ path: `$.groupMap[${JSON.stringify(key)}]`,
267
+ message: "Group key must be a nonempty token with valid Unicode and no U+0000",
268
+ },
269
+ ]);
270
+ const result = freeze({
271
+ definition,
37
272
  losses: parsed.data.losses,
38
- ...(parsed.data.exposures !== undefined ? { exposures: parsed.data.exposures } : {}),
39
- };
273
+ exposures: parsed.data.exposures ?? [],
274
+ filter: parsed.data.filter ?? null,
275
+ completePeriodCutoffs: parsed.data.completePeriodCutoffs ?? [],
276
+ expectedCells: parsed.data.expectedCells ?? null,
277
+ reviewEvidence,
278
+ runPresetId: parsed.data.runPresetId ?? null,
279
+ datasetArtifactId: parsed.data.datasetArtifactId ?? null,
280
+ groupMap: sortedRecord(parsed.data.groupMap ?? diagnosticRecord()),
281
+ groupDimensions: sortedRecord(parsed.data.groupDimensions ?? diagnosticRecord()),
282
+ policy: {
283
+ allowedReviewStatuses: reviewOrder.filter((status) => review.includes(status)),
284
+ allowedMetricFindingSeverities: metricOrder.filter((severity) => metric.includes(severity)),
285
+ rationaleRef: rationale,
286
+ },
287
+ });
288
+ const prepared = prepareDiagnosticData({
289
+ definition: result.definition,
290
+ losses: result.losses,
291
+ exposures: result.exposures,
292
+ ...(result.filter === null ? {} : { filter: result.filter }),
293
+ completePeriodCutoffs: result.completePeriodCutoffs,
294
+ ...(result.expectedCells === null
295
+ ? {}
296
+ : { expectedCells: result.expectedCells }),
297
+ });
298
+ validateDiagnosticGroupingConfiguration({
299
+ prepared,
300
+ groupMap: result.groupMap,
301
+ groupDimensions: result.groupDimensions,
302
+ });
303
+ authentic.add(result);
304
+ return result;
40
305
  }
41
- /** Validates unknown exposure rows, then applies core's stable-key reconciliation. */
42
- export function validateAndReconcileDiagnosticExposures(value) {
43
- const validated = validateDiagnosticDataset({ losses: [], exposures: value });
44
- return reconcileDiagnosticExposureKeys(validated.exposures ?? []);
306
+ export function assertValidatedDiagnosticRunInput(value) {
307
+ if (value === null || typeof value !== "object" || !authentic.has(value))
308
+ throw new DiagnosticValidationError([
309
+ {
310
+ domain: "input",
311
+ code: "invalid-input-relationship",
312
+ path: "$",
313
+ message: "Value is not an authentic validated diagnostic run input",
314
+ },
315
+ ]);
316
+ }
317
+ const completed = new WeakSet();
318
+ export function runValidatedMetricDiagnostics(input) {
319
+ assertValidatedDiagnosticRunInput(input);
320
+ const prepared = prepareDiagnosticData({
321
+ definition: input.definition,
322
+ losses: input.losses,
323
+ exposures: input.exposures,
324
+ ...(input.filter === null ? {} : { filter: input.filter }),
325
+ completePeriodCutoffs: input.completePeriodCutoffs,
326
+ ...(input.expectedCells === null
327
+ ? {}
328
+ : { expectedCells: input.expectedCells }),
329
+ });
330
+ validateDiagnosticGroupingConfiguration({
331
+ prepared,
332
+ groupMap: input.groupMap,
333
+ groupDimensions: input.groupDimensions,
334
+ });
335
+ const review = reviewPreparedDiagnosticData({
336
+ prepared,
337
+ evidence: input.reviewEvidence,
338
+ });
339
+ const evaluationStatus = (evaluation) => evaluation.expressionOverflows.length > 0
340
+ ? "fail"
341
+ : evaluation.status === "not-evaluated"
342
+ ? "not-evaluated"
343
+ : evaluation.status === "triggered"
344
+ ? evaluation.severity
345
+ : "pass";
346
+ const disallowedReview = review.report.checks.some((check) => !input.policy.allowedReviewStatuses.includes(check.status)) ||
347
+ review.evaluations.some((evaluation) => !input.policy.allowedReviewStatuses.includes(evaluationStatus(evaluation)));
348
+ const base = {
349
+ prepared,
350
+ review,
351
+ runPresetId: input.runPresetId,
352
+ datasetArtifactId: input.datasetArtifactId,
353
+ groupMap: input.groupMap,
354
+ groupDimensions: input.groupDimensions,
355
+ };
356
+ if (disallowedReview)
357
+ return freeze({
358
+ ...base,
359
+ status: "blocked",
360
+ stage: "review",
361
+ result: null,
362
+ gate: {
363
+ ...input.policy,
364
+ reviewGate: "blocked",
365
+ metricGate: "not-run",
366
+ },
367
+ });
368
+ const result = runMetricDiagnostics({
369
+ prepared,
370
+ groupMap: input.groupMap,
371
+ groupDimensions: input.groupDimensions,
372
+ });
373
+ const disallowedMetric = result.findings.some((finding) => finding.category !== "structural" &&
374
+ !input.policy.allowedMetricFindingSeverities.includes(finding.severity));
375
+ if (disallowedMetric)
376
+ return freeze({
377
+ ...base,
378
+ status: "blocked",
379
+ stage: "metric",
380
+ result,
381
+ gate: {
382
+ ...input.policy,
383
+ reviewGate: "passed",
384
+ metricGate: "blocked",
385
+ },
386
+ });
387
+ const outcome = freeze({
388
+ ...base,
389
+ status: "completed",
390
+ result,
391
+ gate: {
392
+ ...input.policy,
393
+ reviewGate: "passed",
394
+ metricGate: "passed",
395
+ },
396
+ });
397
+ completed.add(outcome);
398
+ return outcome;
45
399
  }
46
- /** Convenience boundary: validate unknown rows, then run the dependency-free core engine. */
47
- export function runValidatedMetricDiagnostics(dataset, options) {
48
- const validated = validateDiagnosticDataset(dataset);
49
- return runMetricDiagnostics({ ...options, ...validated });
400
+ export function assertCompletedValidatedMetricDiagnosticsRun(value) {
401
+ if (value === null || typeof value !== "object" || !completed.has(value))
402
+ throw new DiagnosticValidationError([
403
+ {
404
+ domain: "input",
405
+ code: "invalid-input-relationship",
406
+ path: "$",
407
+ message: "Value is not an authentic completed diagnostic run",
408
+ },
409
+ ]);
50
410
  }
51
411
  //# sourceMappingURL=diagnosticInput.js.map
@@ -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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"}
@@ -0,0 +1,46 @@
1
+ import { type DiagnosticIdentityProjection, type DiagnosticDeepReadonly, type DiagnosticReviewRuleEvaluation, type DiagnosticSourceLocation, type PreparedDiagnosticData } from "@actuarial-ts/core";
2
+ import { type DataCheck, type DataFinding, type DataReviewReport } from "./review.js";
3
+ export interface DiagnosticGroupingAssignment {
4
+ readonly key: string;
5
+ readonly group: string;
6
+ readonly source?: DiagnosticSourceLocation;
7
+ }
8
+ export interface DiagnosticCachedFormulaEvidence {
9
+ readonly id: string;
10
+ readonly source?: DiagnosticSourceLocation;
11
+ readonly formula?: string;
12
+ readonly cachedValue?: number | null;
13
+ readonly declaredFormulaSource: boolean;
14
+ }
15
+ export interface DiagnosticReviewEvidence {
16
+ readonly groupingAssignments: readonly DiagnosticGroupingAssignment[];
17
+ readonly cachedFormulas: readonly DiagnosticCachedFormulaEvidence[];
18
+ }
19
+ export interface DiagnosticReviewIdentityBody {
20
+ readonly definitionIntegrity: string;
21
+ readonly preparationFingerprint: string;
22
+ readonly evidence: DiagnosticIdentityProjection<DiagnosticReviewEvidence> | null;
23
+ readonly checks: readonly {
24
+ readonly id: string;
25
+ readonly status: DataCheck["status"];
26
+ readonly findings: readonly DiagnosticIdentityProjection<DataFinding>[];
27
+ }[];
28
+ readonly summary: DataReviewReport["summary"];
29
+ readonly evaluations: readonly DiagnosticIdentityProjection<DiagnosticReviewRuleEvaluation>[];
30
+ }
31
+ export interface DiagnosticReviewReceipt {
32
+ readonly definitionIntegrity: string;
33
+ readonly preparationFingerprint: string;
34
+ readonly report: DiagnosticDeepReadonly<DataReviewReport>;
35
+ readonly evaluations: readonly DiagnosticReviewRuleEvaluation[];
36
+ readonly evidence: DiagnosticDeepReadonly<DiagnosticReviewEvidence> | null;
37
+ readonly identityBody: DiagnosticDeepReadonly<DiagnosticReviewIdentityBody>;
38
+ readonly reportFingerprint: string;
39
+ }
40
+ export interface ReviewPreparedDiagnosticDataInput {
41
+ readonly prepared: PreparedDiagnosticData;
42
+ readonly evidence: DiagnosticReviewEvidence | null;
43
+ }
44
+ export declare function validateDiagnosticReviewEvidence(value: unknown, root?: string): DiagnosticDeepReadonly<DiagnosticReviewEvidence>;
45
+ export declare function reviewPreparedDiagnosticData(input: ReviewPreparedDiagnosticDataInput): DiagnosticReviewReceipt;
46
+ //# sourceMappingURL=diagnosticPreparedReview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticPreparedReview.d.ts","sourceRoot":"","sources":["../src/diagnosticPreparedReview.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAE3B,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACtE,QAAQ,CAAC,cAAc,EAAE,SAAS,+BAA+B,EAAE,CAAC;CACrE;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;IACjF,QAAQ,CAAC,MAAM,EAAE,SAAS;QACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC;KACzE,EAAE,CAAC;IACJ,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,4BAA4B,CAAC,8BAA8B,CAAC,EAAE,CAAC;CAC/F;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;IAC3E,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC,4BAA4B,CAAC,CAAC;IAC5E,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;CACpD;AAiRD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,EACd,IAAI,SAAe,GAClB,sBAAsB,CAAC,wBAAwB,CAAC,CA0ElD;AAmCD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,iCAAiC,GACvC,uBAAuB,CAgMzB"}