@actuarial-ts/core 0.9.0 → 0.11.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 (93) hide show
  1. package/README.md +16 -7
  2. package/dist/canonical.d.ts.map +1 -1
  3. package/dist/canonical.js +64 -5
  4. package/dist/canonical.js.map +1 -1
  5. package/dist/customizationContracts.d.ts +15 -1
  6. package/dist/customizationContracts.d.ts.map +1 -1
  7. package/dist/descriptiveStatistics.js +1 -1
  8. package/dist/descriptiveStatistics.js.map +1 -1
  9. package/dist/diagnosticAggregation.d.ts +26 -0
  10. package/dist/diagnosticAggregation.d.ts.map +1 -1
  11. package/dist/diagnosticAggregation.js +125 -11
  12. package/dist/diagnosticAggregation.js.map +1 -1
  13. package/dist/diagnosticAuditText.d.ts +11 -0
  14. package/dist/diagnosticAuditText.d.ts.map +1 -0
  15. package/dist/diagnosticAuditText.js +179 -0
  16. package/dist/diagnosticAuditText.js.map +1 -0
  17. package/dist/diagnosticFormulas.d.ts.map +1 -1
  18. package/dist/diagnosticFormulas.js +71 -12
  19. package/dist/diagnosticFormulas.js.map +1 -1
  20. package/dist/diagnosticFreeze.d.ts +15 -1
  21. package/dist/diagnosticFreeze.d.ts.map +1 -1
  22. package/dist/diagnosticFreeze.js +82 -31
  23. package/dist/diagnosticFreeze.js.map +1 -1
  24. package/dist/diagnosticKeys.d.ts +9 -0
  25. package/dist/diagnosticKeys.d.ts.map +1 -0
  26. package/dist/diagnosticKeys.js +20 -0
  27. package/dist/diagnosticKeys.js.map +1 -0
  28. package/dist/diagnosticOrdering.d.ts.map +1 -1
  29. package/dist/diagnosticOrdering.js +9 -2
  30. package/dist/diagnosticOrdering.js.map +1 -1
  31. package/dist/diagnosticPeriods.d.ts.map +1 -1
  32. package/dist/diagnosticPeriods.js +19 -1
  33. package/dist/diagnosticPeriods.js.map +1 -1
  34. package/dist/diagnosticPreparation.d.ts +19 -0
  35. package/dist/diagnosticPreparation.d.ts.map +1 -1
  36. package/dist/diagnosticPreparation.js +544 -231
  37. package/dist/diagnosticPreparation.js.map +1 -1
  38. package/dist/diagnosticReview.d.ts.map +1 -1
  39. package/dist/diagnosticReview.js +419 -186
  40. package/dist/diagnosticReview.js.map +1 -1
  41. package/dist/diagnosticReviewSources.d.ts +6 -1
  42. package/dist/diagnosticReviewSources.d.ts.map +1 -1
  43. package/dist/diagnosticReviewSources.js +59 -14
  44. package/dist/diagnosticReviewSources.js.map +1 -1
  45. package/dist/diagnosticReviewStore.d.ts.map +1 -1
  46. package/dist/diagnosticReviewStore.js +48 -7
  47. package/dist/diagnosticReviewStore.js.map +1 -1
  48. package/dist/diagnosticRunner.d.ts.map +1 -1
  49. package/dist/diagnosticRunner.js +112 -37
  50. package/dist/diagnosticRunner.js.map +1 -1
  51. package/dist/diagnosticRuntime.d.ts.map +1 -1
  52. package/dist/diagnosticRuntime.js +11 -1
  53. package/dist/diagnosticRuntime.js.map +1 -1
  54. package/dist/diagnosticSourceOrdering.d.ts +27 -0
  55. package/dist/diagnosticSourceOrdering.d.ts.map +1 -1
  56. package/dist/diagnosticSourceOrdering.js +98 -12
  57. package/dist/diagnosticSourceOrdering.js.map +1 -1
  58. package/dist/historyPreparation.d.ts.map +1 -1
  59. package/dist/historyPreparation.js +42 -15
  60. package/dist/historyPreparation.js.map +1 -1
  61. package/dist/mack.d.ts.map +1 -1
  62. package/dist/mack.js +35 -0
  63. package/dist/mack.js.map +1 -1
  64. package/dist/types.d.ts +1 -1
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/types.js +1 -0
  67. package/dist/types.js.map +1 -1
  68. package/dist/version.d.ts +1 -1
  69. package/dist/version.d.ts.map +1 -1
  70. package/dist/version.js +1 -1
  71. package/dist/version.js.map +1 -1
  72. package/package.json +1 -1
  73. package/src/canonical.ts +63 -5
  74. package/src/customizationContracts.ts +15 -1
  75. package/src/descriptiveStatistics.ts +1 -1
  76. package/src/diagnosticAggregation.ts +173 -9
  77. package/src/diagnosticAuditText.ts +187 -0
  78. package/src/diagnosticFormulas.ts +77 -27
  79. package/src/diagnosticFreeze.ts +75 -30
  80. package/src/diagnosticKeys.ts +22 -0
  81. package/src/diagnosticOrdering.ts +9 -8
  82. package/src/diagnosticPeriods.ts +21 -1
  83. package/src/diagnosticPreparation.ts +624 -272
  84. package/src/diagnosticReview.ts +566 -268
  85. package/src/diagnosticReviewSources.ts +69 -18
  86. package/src/diagnosticReviewStore.ts +48 -6
  87. package/src/diagnosticRunner.ts +133 -54
  88. package/src/diagnosticRuntime.ts +11 -1
  89. package/src/diagnosticSourceOrdering.ts +115 -11
  90. package/src/historyPreparation.ts +44 -15
  91. package/src/mack.ts +41 -0
  92. package/src/types.ts +1 -0
  93. package/src/version.ts +1 -1
@@ -1,21 +1,35 @@
1
1
  import { compareDiagnosticContributions } from "./diagnosticOrdering.js";
2
2
  export function auditedDiagnosticContribution(sourceId, value, missing, sources = [], deduplicated = 0) {
3
- const base = {
4
- sourceId,
5
- sources: Object.freeze([...sources]),
6
- deduplicated,
7
- };
3
+ return ownedDiagnosticContribution(sourceId, value, missing, Object.freeze([...sources]), deduplicated);
4
+ }
5
+ /**
6
+ * `auditedDiagnosticContribution` over a citation list the caller already owns
7
+ * and froze. Preparation cites one frozen list per source row for every measure
8
+ * of that row instead of copying it per contribution. Field order matches the
9
+ * public constructor exactly.
10
+ */
11
+ export function ownedDiagnosticContribution(sourceId, value, missing, sources, deduplicated = 0) {
8
12
  if (value === null || value === undefined)
9
13
  return missing === "zero"
10
14
  ? Object.freeze({
11
- ...base,
15
+ sourceId,
16
+ sources,
17
+ deduplicated,
12
18
  status: "imputed-zero",
13
19
  value: 0,
14
20
  })
15
- : Object.freeze({ ...base, status: "missing", value: null });
21
+ : Object.freeze({
22
+ sourceId,
23
+ sources,
24
+ deduplicated,
25
+ status: "missing",
26
+ value: null,
27
+ });
16
28
  if (!Number.isFinite(value))
17
29
  return Object.freeze({
18
- ...base,
30
+ sourceId,
31
+ sources,
32
+ deduplicated,
19
33
  status: "non-finite",
20
34
  value: null,
21
35
  nonFiniteKind: Number.isNaN(value)
@@ -25,11 +39,80 @@ export function auditedDiagnosticContribution(sourceId, value, missing, sources
25
39
  : "negative-infinity",
26
40
  });
27
41
  return Object.freeze({
28
- ...base,
42
+ sourceId,
43
+ sources,
44
+ deduplicated,
29
45
  status: "observed",
30
46
  value: Object.is(value, -0) ? 0 : value,
31
47
  });
32
48
  }
49
+ /**
50
+ * Private, invocation-scoped sharing of finalized statistics. Two frozen
51
+ * `finalizeDiagnosticContributions` results are interchangeable exactly when
52
+ * every field is `Object.is`-equal: each finite number has one shortest
53
+ * round-trip text, signed zero and null stay distinct, and non-finite values
54
+ * are declined. The pool is bounded and released with the preparation.
55
+ */
56
+ export function createDiagnosticStatsInterner(maxEntries = 100_000) {
57
+ const pool = new Map();
58
+ const text = (value) => value === null ? "null" : Object.is(value, -0) ? "-0" : String(value);
59
+ const finite = (value) => value === null || Number.isFinite(value);
60
+ const keyOf = (value, sum, observed, missing, nonFinite, imputedZero, deduplicated, structural) => {
61
+ if (!finite(value) ||
62
+ !finite(sum) ||
63
+ !Number.isFinite(observed) ||
64
+ !Number.isFinite(missing) ||
65
+ !Number.isFinite(nonFinite) ||
66
+ !Number.isFinite(imputedZero) ||
67
+ !Number.isFinite(deduplicated) ||
68
+ !Number.isFinite(structural))
69
+ return undefined;
70
+ // A single clean observation is the overwhelmingly common shape; its key
71
+ // needs only the value. The prefix cannot occur in the eight-field form.
72
+ return sum === value &&
73
+ observed === 1 &&
74
+ missing === 0 &&
75
+ nonFinite === 0 &&
76
+ imputedZero === 0 &&
77
+ deduplicated === 0 &&
78
+ structural === 0
79
+ ? `${text(value)}`
80
+ : `${text(value)}|${text(sum)}|${text(observed)}|${text(missing)}|${text(nonFinite)}|${text(imputedZero)}|${text(deduplicated)}|${text(structural)}`;
81
+ };
82
+ return {
83
+ intern(stats) {
84
+ if (!Object.isFrozen(stats))
85
+ return stats;
86
+ const key = keyOf(stats.value, stats.sum, stats.observed, stats.missing, stats.nonFinite, stats.imputedZero, stats.deduplicated, stats.structural);
87
+ if (key === undefined)
88
+ return stats;
89
+ const existing = pool.get(key);
90
+ if (existing !== undefined)
91
+ return existing;
92
+ if (pool.size < maxEntries)
93
+ pool.set(key, stats);
94
+ return stats;
95
+ },
96
+ internFields(value, sum, observed, missing, nonFinite, imputedZero, deduplicated, structural) {
97
+ const key = keyOf(value, sum, observed, missing, nonFinite, imputedZero, deduplicated, structural);
98
+ const existing = key === undefined ? undefined : pool.get(key);
99
+ if (existing !== undefined)
100
+ return existing;
101
+ const stats = Object.freeze({
102
+ value, sum, observed, missing, nonFinite, imputedZero, deduplicated, structural,
103
+ });
104
+ if (key !== undefined && pool.size < maxEntries)
105
+ pool.set(key, stats);
106
+ return stats;
107
+ },
108
+ };
109
+ }
110
+ /** Exactly `neumaier([value])` without the array: one finite value sums to itself, signed zero normalized. */
111
+ function singleValueSum(value) {
112
+ if (!Number.isFinite(value))
113
+ return null;
114
+ return Object.is(value, -0) ? 0 : value;
115
+ }
33
116
  function neumaier(values) {
34
117
  let sum = 0;
35
118
  let correction = 0;
@@ -55,7 +138,7 @@ export function finalizeDiagnosticContributions(contributions, missingPolicy, bl
55
138
  const imputedZero = item.status === "imputed-zero" ? 1 : 0;
56
139
  const missing = item.status === "missing" ? 1 : imputedZero;
57
140
  const nonFinite = item.status === "non-finite" ? 1 : 0;
58
- const finiteSum = item.status === "observed" ? neumaier([item.value]) : 0;
141
+ const finiteSum = item.status === "observed" ? singleValueSum(item.value) : 0;
59
142
  const sum = nonFinite > 0 || blockers.length > 0 ? null : finiteSum;
60
143
  return Object.freeze({
61
144
  value: sum === null || (missingPolicy === "unknown" && missing > 0) ? null : sum,
@@ -63,7 +146,38 @@ export function finalizeDiagnosticContributions(contributions, missingPolicy, bl
63
146
  deduplicated: 0 + item.deduplicated, structural: blockers.length,
64
147
  });
65
148
  }
66
- const ordered = [...contributions].sort(compareDiagnosticContributions);
149
+ return finalizeManyContributions(contributions, missingPolicy, blockers);
150
+ }
151
+ /**
152
+ * `finalizeDiagnosticContributions` whose result is shared through `pool`:
153
+ * for the single-leaf case the eight fields are known before any allocation,
154
+ * so an equal frozen record already in the pool is returned without creating
155
+ * a new one. Preparation uses this for every measure of every cell.
156
+ */
157
+ export function finalizeDiagnosticContributionsInterned(contributions, missingPolicy, blockers, pool) {
158
+ if (contributions.length === 1) {
159
+ const item = contributions[0];
160
+ const observed = item.status === "observed" ? 1 : 0;
161
+ const imputedZero = item.status === "imputed-zero" ? 1 : 0;
162
+ const missing = item.status === "missing" ? 1 : imputedZero;
163
+ const nonFinite = item.status === "non-finite" ? 1 : 0;
164
+ const finiteSum = item.status === "observed" ? singleValueSum(item.value) : 0;
165
+ const sum = nonFinite > 0 || blockers.length > 0 ? null : finiteSum;
166
+ const value = sum === null || (missingPolicy === "unknown" && missing > 0) ? null : sum;
167
+ const deduplicated = 0 + item.deduplicated;
168
+ const structural = blockers.length;
169
+ return pool.internFields(value, sum, observed, missing, nonFinite, imputedZero, deduplicated, structural);
170
+ }
171
+ return pool.intern(finalizeManyContributions(contributions, missingPolicy, blockers));
172
+ }
173
+ function finalizeManyContributions(contributions, missingPolicy, blockers) {
174
+ // Contributions gathered from cells in prepared order are usually already in
175
+ // contract order; copying and sorting is needed only when they are not.
176
+ let sorted = true;
177
+ for (let index = 1; index < contributions.length && sorted; index++)
178
+ if (compareDiagnosticContributions(contributions[index - 1], contributions[index]) > 0)
179
+ sorted = false;
180
+ const ordered = sorted ? contributions : [...contributions].sort(compareDiagnosticContributions);
67
181
  const observed = ordered.filter((item) => item.status === "observed");
68
182
  const imputed = ordered.filter((item) => item.status === "imputed-zero");
69
183
  const missing = ordered.filter((item) => item.status === "missing").length + imputed.length;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticAggregation.js","sourceRoot":"","sources":["../src/diagnosticAggregation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnosticAggregation.js","sourceRoot":"","sources":["../src/diagnosticAggregation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { DiagnosticInputAuditRecord } from "./diagnosticPreparation.js";
2
+ /**
3
+ * Canonical JSON text of an input audit snapshot, byte-identical to
4
+ * `canonicalJson(record)`. Snapshots have three fixed shapes whose sorted key
5
+ * order is known, so each is rendered directly with the same string escaping
6
+ * and number rules. Any snapshot that does not match its shape exactly (an
7
+ * unexpected key, prototype or value type) defers to `canonicalJson`, so the
8
+ * text and every error stay those of the generic serializer.
9
+ */
10
+ export declare function auditRecordCanonicalJson(record: DiagnosticInputAuditRecord["record"]): string;
11
+ //# sourceMappingURL=diagnosticAuditText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticAuditText.d.ts","sourceRoot":"","sources":["../src/diagnosticAuditText.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAC3C,MAAM,CAER"}
@@ -0,0 +1,179 @@
1
+ import { canonicalJson } from "./canonical.js";
2
+ /**
3
+ * Canonical JSON text of an input audit snapshot, byte-identical to
4
+ * `canonicalJson(record)`. Snapshots have three fixed shapes whose sorted key
5
+ * order is known, so each is rendered directly with the same string escaping
6
+ * and number rules. Any snapshot that does not match its shape exactly (an
7
+ * unexpected key, prototype or value type) defers to `canonicalJson`, so the
8
+ * text and every error stay those of the generic serializer.
9
+ */
10
+ export function auditRecordCanonicalJson(record) {
11
+ return snapshotText(record) ?? canonicalJson(record);
12
+ }
13
+ /**
14
+ * `JSON.stringify` for a string. Printable ASCII other than `"` and `\` is
15
+ * never escaped, so such a string is quoted directly; everything else (control
16
+ * characters, `"`, `\`, and any non-ASCII, including lone surrogates) goes to
17
+ * the native serializer, which owns the escape spelling.
18
+ */
19
+ const quote = (value) => {
20
+ for (let index = 0; index < value.length; index++) {
21
+ const code = value.charCodeAt(index);
22
+ if (code < 0x20 || code > 0x7e || code === 0x22 || code === 0x5c)
23
+ return JSON.stringify(value);
24
+ }
25
+ return `"${value}"`;
26
+ };
27
+ const number = (value) => Number.isFinite(value) ? (Object.is(value, -0) ? "0" : String(value)) : undefined;
28
+ const hasOwn = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
29
+ const plain = (value) => value !== null &&
30
+ typeof value === "object" &&
31
+ !Array.isArray(value) &&
32
+ Object.getPrototypeOf(value) === Object.prototype;
33
+ function stringOrNull(value) {
34
+ return value === null ? "null" : typeof value === "string" ? quote(value) : undefined;
35
+ }
36
+ /** Source keys in canonical order: artifactId, sourceCell, sourceFile, sourceRow, sourceSheet. */
37
+ function sourceText(value) {
38
+ if (value === null)
39
+ return "null";
40
+ if (!plain(value))
41
+ return undefined;
42
+ const source = value;
43
+ if (typeof source.artifactId !== "string")
44
+ return undefined;
45
+ let text = `{"artifactId":${quote(source.artifactId)}`;
46
+ let count = 1;
47
+ for (const field of ["sourceCell", "sourceFile"])
48
+ if (hasOwn(source, field)) {
49
+ const item = source[field];
50
+ if (typeof item !== "string")
51
+ return undefined;
52
+ text += `,"${field}":${quote(item)}`;
53
+ count++;
54
+ }
55
+ if (hasOwn(source, "sourceRow")) {
56
+ const item = source.sourceRow;
57
+ const rendered = typeof item === "number" ? number(item) : undefined;
58
+ if (rendered === undefined)
59
+ return undefined;
60
+ text += `,"sourceRow":${rendered}`;
61
+ count++;
62
+ }
63
+ if (hasOwn(source, "sourceSheet")) {
64
+ const item = source.sourceSheet;
65
+ if (typeof item !== "string")
66
+ return undefined;
67
+ text += `,"sourceSheet":${quote(item)}`;
68
+ count++;
69
+ }
70
+ if (Object.keys(source).length !== count)
71
+ return undefined;
72
+ return `${text}}`;
73
+ }
74
+ /**
75
+ * Audited numeric records are immutable SDK-owned values that preparation
76
+ * shares across rows, so each distinct record's text is built once. Only a
77
+ * frozen record is remembered, and its text depends on nothing else.
78
+ */
79
+ const auditedTexts = new WeakMap();
80
+ function auditedText(value) {
81
+ if (!plain(value))
82
+ return undefined;
83
+ const cached = auditedTexts.get(value);
84
+ if (cached !== undefined)
85
+ return cached;
86
+ const text = auditedTextOf(value);
87
+ if (text !== undefined && Object.isFrozen(value))
88
+ auditedTexts.set(value, text);
89
+ return text;
90
+ }
91
+ function auditedTextOf(value) {
92
+ const audited = value;
93
+ const keys = Object.keys(audited).length;
94
+ if (audited.status === "observed") {
95
+ const rendered = typeof audited.value === "number" ? number(audited.value) : undefined;
96
+ return keys === 2 && rendered !== undefined
97
+ ? `{"status":"observed","value":${rendered}}`
98
+ : undefined;
99
+ }
100
+ if (audited.status === "missing")
101
+ return keys === 2 && audited.value === null ? '{"status":"missing","value":null}' : undefined;
102
+ if (audited.status === "non-finite")
103
+ return keys === 3 && audited.value === null && typeof audited.nonFiniteKind === "string"
104
+ ? `{"nonFiniteKind":${quote(audited.nonFiniteKind)},"status":"non-finite","value":null}`
105
+ : undefined;
106
+ return undefined;
107
+ }
108
+ function measuresText(value) {
109
+ if (!plain(value))
110
+ return undefined;
111
+ const keys = Object.keys(value);
112
+ for (let index = 1; index < keys.length; index++)
113
+ if (keys[index - 1] > keys[index]) {
114
+ keys.sort();
115
+ break;
116
+ }
117
+ let text = "{";
118
+ for (let index = 0; index < keys.length; index++) {
119
+ const key = keys[index];
120
+ const rendered = auditedText(value[key]);
121
+ if (rendered === undefined)
122
+ return undefined;
123
+ text += `${index > 0 ? "," : ""}${quote(key)}:${rendered}`;
124
+ }
125
+ return `${text}}`;
126
+ }
127
+ function snapshotText(record) {
128
+ if (!plain(record))
129
+ return undefined;
130
+ const keys = Object.keys(record).length;
131
+ if (hasOwn(record, "rowType")) {
132
+ // Loss: claimId, complete, measures, origin, recordId, rowType, source, sourceGroup, valuation.
133
+ if (keys !== 9)
134
+ return undefined;
135
+ const claimId = stringOrNull(record.claimId);
136
+ const measures = measuresText(record.measures);
137
+ const source = sourceText(record.source);
138
+ if (claimId === undefined ||
139
+ typeof record.complete !== "boolean" ||
140
+ measures === undefined ||
141
+ typeof record.origin !== "string" ||
142
+ typeof record.recordId !== "string" ||
143
+ typeof record.rowType !== "string" ||
144
+ source === undefined ||
145
+ typeof record.sourceGroup !== "string" ||
146
+ typeof record.valuation !== "string")
147
+ return undefined;
148
+ return `{"claimId":${claimId},"complete":${record.complete},"measures":${measures},"origin":${quote(record.origin)},"recordId":${quote(record.recordId)},"rowType":${quote(record.rowType)},"source":${source},"sourceGroup":${quote(record.sourceGroup)},"valuation":${quote(record.valuation)}}`;
149
+ }
150
+ if (hasOwn(record, "measureId")) {
151
+ // Exposure: complete, key, measureId, origin, source, sourceGroup, valuation, value.
152
+ if (keys !== 8)
153
+ return undefined;
154
+ const source = sourceText(record.source);
155
+ const valuation = stringOrNull(record.valuation);
156
+ const audited = auditedText(record.value);
157
+ if (typeof record.complete !== "boolean" ||
158
+ typeof record.key !== "string" ||
159
+ typeof record.measureId !== "string" ||
160
+ typeof record.origin !== "string" ||
161
+ source === undefined ||
162
+ typeof record.sourceGroup !== "string" ||
163
+ valuation === undefined ||
164
+ audited === undefined)
165
+ return undefined;
166
+ return `{"complete":${record.complete},"key":${quote(record.key)},"measureId":${quote(record.measureId)},"origin":${quote(record.origin)},"source":${source},"sourceGroup":${quote(record.sourceGroup)},"valuation":${valuation},"value":${audited}}`;
167
+ }
168
+ // Expected cell: origin, source, sourceGroup, valuation.
169
+ if (keys !== 4)
170
+ return undefined;
171
+ const source = sourceText(record.source);
172
+ if (typeof record.origin !== "string" ||
173
+ source === undefined ||
174
+ typeof record.sourceGroup !== "string" ||
175
+ typeof record.valuation !== "string")
176
+ return undefined;
177
+ return `{"origin":${quote(record.origin)},"source":${source},"sourceGroup":${quote(record.sourceGroup)},"valuation":${quote(record.valuation)}}`;
178
+ }
179
+ //# sourceMappingURL=diagnosticAuditText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticAuditText.js","sourceRoot":"","sources":["../src/diagnosticAuditText.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticFormulas.d.ts","sourceRoot":"","sources":["../src/diagnosticFormulas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnosticFormulas.d.ts","sourceRoot":"","sources":["../src/diagnosticFormulas.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,38 @@ function pointer(path, segment) {
113
113
  const escaped = String(segment).replaceAll("~", "~0").replaceAll("/", "~1");
114
114
  return `${path}/${escaped}`;
115
115
  }
116
+ // Shared immutable empties for clean operands; every consumer copies or iterates.
117
+ const NO_REASONS = Object.freeze([]);
118
+ const NO_OVERFLOWS = Object.freeze([]);
119
+ const NO_SOURCES = Object.freeze([]);
120
+ // Path segments below the caller's root, pushed and popped during one
121
+ // synchronous evaluation. Rendering happens only when an overflow must cite a
122
+ // path, so the common case allocates nothing. A re-entrant call while the
123
+ // shared stack is in use gets its own stack.
124
+ let sharedSegments = [];
125
+ // A measure leaf never renders a path; it may evaluate against a fixed empty stack.
126
+ const LEAF_SEGMENTS = [];
116
127
  export function evaluateDiagnosticMeasureExpression(expression, measures, path) {
128
+ if (expression.op === "measure")
129
+ return evaluateMeasureExpression(expression, measures, path, LEAF_SEGMENTS);
130
+ const segments = sharedSegments ?? [];
131
+ sharedSegments = null;
132
+ segments.length = 0;
133
+ try {
134
+ return evaluateMeasureExpression(expression, measures, path, segments);
135
+ }
136
+ finally {
137
+ sharedSegments = segments;
138
+ }
139
+ }
140
+ function renderPath(root, segments) {
141
+ let path = root;
142
+ for (let index = 0; index < segments.length; index++)
143
+ path = pointer(path, segments[index]);
144
+ return path;
145
+ }
146
+ /** Expression paths are only rendered when an overflow has to cite one. */
147
+ function evaluateMeasureExpression(expression, measures, root, segments) {
117
148
  if (expression.op === "measure") {
118
149
  const value = hasDiagnosticOwn(measures, expression.measureId)
119
150
  ? measures[expression.measureId]
@@ -122,19 +153,47 @@ export function evaluateDiagnosticMeasureExpression(expression, measures, path)
122
153
  ? {
123
154
  value: value.quantity.value,
124
155
  reasons: value.readiness,
125
- overflows: value.expressionOverflows ?? [],
126
- sources: value.sources ?? [],
156
+ overflows: value.expressionOverflows ?? NO_OVERFLOWS,
157
+ sources: value.sources ?? NO_SOURCES,
127
158
  }
128
- : { value: null, reasons: ["missing"], overflows: [], sources: [] };
159
+ : {
160
+ value: null,
161
+ reasons: ["missing"],
162
+ overflows: NO_OVERFLOWS,
163
+ sources: NO_SOURCES,
164
+ };
129
165
  }
130
- const children = expression.op === "add"
131
- ? expression.terms.map((term, index) => evaluateDiagnosticMeasureExpression(term, measures, pointer(pointer(path, "terms"), index)))
132
- : [
133
- evaluateDiagnosticMeasureExpression(expression.left, measures, pointer(path, "left")),
134
- evaluateDiagnosticMeasureExpression(expression.right, measures, pointer(path, "right")),
135
- ];
136
- const reasons = uniqueReasons(children.flatMap((child) => child.reasons));
137
- const overflows = children.flatMap((child) => child.overflows);
166
+ let children;
167
+ if (expression.op === "add") {
168
+ children = new Array(expression.terms.length);
169
+ segments.push("terms", 0);
170
+ try {
171
+ for (let index = 0; index < expression.terms.length; index++) {
172
+ segments[segments.length - 1] = index;
173
+ children[index] = evaluateMeasureExpression(expression.terms[index], measures, root, segments);
174
+ }
175
+ }
176
+ finally {
177
+ segments.length -= 2;
178
+ }
179
+ }
180
+ else {
181
+ segments.push("left");
182
+ try {
183
+ const left = evaluateMeasureExpression(expression.left, measures, root, segments);
184
+ segments[segments.length - 1] = "right";
185
+ children = [left, evaluateMeasureExpression(expression.right, measures, root, segments)];
186
+ }
187
+ finally {
188
+ segments.length -= 1;
189
+ }
190
+ }
191
+ const reasons = children.every((child) => child.reasons.length === 0)
192
+ ? NO_REASONS
193
+ : uniqueReasons(children.flatMap((child) => child.reasons));
194
+ const overflows = children.every((child) => child.overflows.length === 0)
195
+ ? NO_OVERFLOWS
196
+ : children.flatMap((child) => child.overflows);
138
197
  const sources = normalizeDiagnosticSourceLocations(children.flatMap((child) => child.sources));
139
198
  if (children.some((child) => child.value === null))
140
199
  return { value: null, reasons, overflows, sources };
@@ -145,7 +204,7 @@ export function evaluateDiagnosticMeasureExpression(expression, measures, path)
145
204
  return {
146
205
  value: null,
147
206
  reasons: uniqueReasons([...reasons, "expression-overflow"]),
148
- overflows: [...overflows, { expressionPath: path, sources }],
207
+ overflows: [...overflows, { expressionPath: renderPath(root, segments), sources }],
149
208
  sources,
150
209
  };
151
210
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticFormulas.js","sourceRoot":"","sources":["../src/diagnosticFormulas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAgBtC,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC;IACtD;QACE,EAAE,EAAE,WAAW;QACf,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QACpE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;QAC7C,iBAAiB,EAAE,kBAAkB;KACtC;IACD;QACE,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;YACL,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE;YAC/D,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE;SACjE;QACD,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QACvC,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;QAC1C,iBAAiB,EAAE,kBAAkB;KACtC;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,kBAAkB,EAAE,cAAc;gBAClC,oBAAoB,EAAE,YAAY;aACnC;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,kBAAkB,EAAE,cAAc;gBAClC,oBAAoB,EAAE,YAAY;aACnC;SACF;QACD,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QACvC,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;QAC7C,iBAAiB,EAAE,kBAAkB;KACtC;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QACrE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;QAC7C,iBAAiB,EAAE,kBAAkB;KACtC;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAChE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3C,iBAAiB,EAAE,kBAAkB;KACtC;IACD;QACE,EAAE,EAAE,eAAe;QACnB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,kBAAkB,EAAE,cAAc;gBAClC,oBAAoB,EAAE,YAAY;aACnC;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,kBAAkB,EAAE,cAAc;gBAClC,oBAAoB,EAAE,YAAY;aACnC;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE;SAC/D;QACD,SAAS,EAAE;YACT,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;YACtC,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;SACpC;QACD,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QACzC,iBAAiB,EAAE,kBAAkB;KACtC;CACsD,CAAC,CAAC;AAwD3D,SAAS,QAAQ,CAAC,MAAyB;IACzC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;QACzB,UAAU;YACR,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC9B,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,KAAK;gBACpB,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;QACzB,GAAG,GAAG,IAAI,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;IACzE,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC;IAChC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC;AAED,SAAS,aAAa,CACpB,MAAmD;IAEnD,MAAM,KAAK,GAAgD;QACzD,SAAS;QACT,SAAS;QACT,YAAY;QACZ,sBAAsB;QACtB,sBAAsB;QACtB,qBAAqB;QACrB,oBAAoB;KACrB,CAAC;IACF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,OAAwB;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5E,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,UAA+D,EAC/D,QAA8D,EAC9D,IAAY;IAEZ,IAAI,UAAU,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC;YAC5D,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YAChC,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,KAAK;YACV,CAAC,CAAC;gBACE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK;gBAC3B,OAAO,EAAE,KAAK,CAAC,SAAS;gBACxB,SAAS,EAAE,KAAK,CAAC,mBAAmB,IAAI,EAAE;gBAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;aAC7B;YACH,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,QAAQ,GACZ,UAAU,CAAC,EAAE,KAAK,KAAK;QACrB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnC,mCAAmC,CACjC,IAAI,EACJ,QAAQ,EACR,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CACvC,CACF;QACH,CAAC,CAAC;YACE,mCAAmC,CACjC,UAAU,CAAC,IAAI,EACf,QAAQ,EACR,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CACtB;YACD,mCAAmC,CACjC,UAAU,CAAC,KAAK,EAChB,QAAQ,EACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CACvB;SACF,CAAC;IACR,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,kCAAkC,CAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAC3C,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACtD,MAAM,KAAK,GACT,UAAU,CAAC,EAAE,KAAK,KAAK;QACrB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;QACjD,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAM,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAM,CAAC;IAChD,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC3D,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC5D,OAAO;SACR,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;QACvC,OAAO;QACP,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,UAA4D,EAC5D,QAAoD,EACpD,IAAY;IAEZ,IAAI,UAAU,CAAC,EAAE,KAAK,MAAM;QAC1B,OAAO,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAE;YAC5B,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACxE,MAAM,QAAQ,GACZ,UAAU,CAAC,EAAE,KAAK,KAAK;QACrB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnC,gCAAgC,CAC9B,IAAI,EACJ,QAAQ,EACR,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CACvC,CACF;QACH,CAAC,CAAC;YACE,gCAAgC,CAC9B,UAAU,CAAC,IAAI,EACf,QAAQ,EACR,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CACtB;YACD,gCAAgC,CAC9B,UAAU,CAAC,KAAK,EAChB,QAAQ,EACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CACvB;SACF,CAAC;IACR,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,kCAAkC,CAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAC3C,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACtD,MAAM,KAAK,GACT,UAAU,CAAC,EAAE,KAAK,KAAK;QACrB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;QACjD,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAM,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAM,CAAC;IAChD,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3C,OAAO;YACL,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC3D,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC5D,OAAO;SACR,CAAC;IACJ,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;QACvC,OAAO;QACP,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,SAAwB,EACxB,WAA0B;IAE1B,IACE,SAAS,KAAK,IAAI;QAClB,WAAW,KAAK,IAAI;QACpB,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7B,WAAW,IAAI,CAAC;QAEhB,OAAO,IAAI,CAAC;IACd,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChD,OAAO,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAAuB,EACvB,YAAkE;IAKlE,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAC5D,CAAC,CAAC;YACE,KAAK,EAAE,IAAI;YACX,OAAO,EAAE;gBACP,IAAI,EAAE,kCAAkC;gBACxC,OAAO,EAAE,4CAA4C;gBACrD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,EAAE;aACZ;SACF,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"diagnosticFormulas.js","sourceRoot":"","sources":["../src/diagnosticFormulas.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,18 @@
1
1
  import type { DiagnosticDeepReadonly } from "./diagnosticDefinitions.js";
2
- /** Freeze owned plain-data snapshots, visiting shared subgraphs only once. */
2
+ /**
3
+ * Freeze an owned plain-data snapshot deeply. Every reachable child is visited
4
+ * and frozen, including children of an already frozen node, because a frozen
5
+ * root is no evidence that a caller-supplied child is immutable. The walk keeps
6
+ * no state between calls and allocates nothing for ordinary acyclic graphs.
7
+ */
3
8
  export declare function freezeDiagnosticGraph<T>(value: T): DiagnosticDeepReadonly<T>;
9
+ /**
10
+ * Freeze a graph that the SDK built entirely itself, where every node that is
11
+ * already frozen was frozen complete: preparation attaches contributions,
12
+ * statistics, citation lists and shared empties only after freezing them and
13
+ * every child below them. Such nodes are skipped instead of re-walked once per
14
+ * reference. Never use this on a graph that may hold a caller-frozen node with
15
+ * mutable children; `freezeDiagnosticGraph` exists for that case.
16
+ */
17
+ export declare function freezeOwnedDiagnosticGraph<T>(value: T): DiagnosticDeepReadonly<T>;
4
18
  //# sourceMappingURL=diagnosticFreeze.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticFreeze.d.ts","sourceRoot":"","sources":["../src/diagnosticFreeze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AASzE,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CA0B5E"}
1
+ {"version":3,"file":"diagnosticFreeze.d.ts","sourceRoot":"","sources":["../src/diagnosticFreeze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AA2DzE;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAG5E;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAGjF"}