@untangle-code/complexity 0.0.0-stage → 0.1.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.
- package/LICENSE +661 -0
- package/NOTICE +90 -0
- package/README.md +235 -2
- package/THIRD_PARTY_LICENSES.md +24 -0
- package/dist/aggregator.d.ts +28 -0
- package/dist/aggregator.d.ts.map +1 -0
- package/dist/aggregator.js +77 -0
- package/dist/aggregator.js.map +1 -0
- package/dist/assemble.d.ts +50 -0
- package/dist/assemble.d.ts.map +1 -0
- package/dist/assemble.js +43 -0
- package/dist/assemble.js.map +1 -0
- package/dist/cognitive.d.ts +62 -0
- package/dist/cognitive.d.ts.map +1 -0
- package/dist/cognitive.js +62 -0
- package/dist/cognitive.js.map +1 -0
- package/dist/cyclomatic.d.ts +29 -0
- package/dist/cyclomatic.d.ts.map +1 -0
- package/dist/cyclomatic.js +52 -0
- package/dist/cyclomatic.js.map +1 -0
- package/dist/entropy.d.ts +5 -0
- package/dist/entropy.d.ts.map +1 -0
- package/dist/entropy.js +29 -0
- package/dist/entropy.js.map +1 -0
- package/dist/explain.d.ts +22 -0
- package/dist/explain.d.ts.map +1 -0
- package/dist/explain.js +35 -0
- package/dist/explain.js.map +1 -0
- package/dist/halstead.d.ts +23 -0
- package/dist/halstead.d.ts.map +1 -0
- package/dist/halstead.js +24 -0
- package/dist/halstead.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/build-ir.d.ts +105 -0
- package/dist/ir/build-ir.d.ts.map +1 -0
- package/dist/ir/build-ir.js +267 -0
- package/dist/ir/build-ir.js.map +1 -0
- package/dist/maintainability.d.ts +15 -0
- package/dist/maintainability.d.ts.map +1 -0
- package/dist/maintainability.js +10 -0
- package/dist/maintainability.js.map +1 -0
- package/dist/node-kind-heuristics.d.ts +24 -0
- package/dist/node-kind-heuristics.d.ts.map +1 -0
- package/dist/node-kind-heuristics.js +37 -0
- package/dist/node-kind-heuristics.js.map +1 -0
- package/dist/prose/metrics.d.ts +81 -0
- package/dist/prose/metrics.d.ts.map +1 -0
- package/dist/prose/metrics.js +103 -0
- package/dist/prose/metrics.js.map +1 -0
- package/dist/scope-aggregate.d.ts +229 -0
- package/dist/scope-aggregate.d.ts.map +1 -0
- package/dist/scope-aggregate.js +588 -0
- package/dist/scope-aggregate.js.map +1 -0
- package/dist/scope-identity.d.ts +85 -0
- package/dist/scope-identity.d.ts.map +1 -0
- package/dist/scope-identity.js +144 -0
- package/dist/scope-identity.js.map +1 -0
- package/dist/scope.d.ts +36 -0
- package/dist/scope.d.ts.map +1 -0
- package/dist/scope.js +60 -0
- package/dist/scope.js.map +1 -0
- package/dist/structural.d.ts +30 -0
- package/dist/structural.d.ts.map +1 -0
- package/dist/structural.js +98 -0
- package/dist/structural.js.map +1 -0
- package/dist/syntactic.d.ts +35 -0
- package/dist/syntactic.d.ts.map +1 -0
- package/dist/syntactic.js +143 -0
- package/dist/syntactic.js.map +1 -0
- package/dist/text-lines.d.ts +34 -0
- package/dist/text-lines.d.ts.map +1 -0
- package/dist/text-lines.js +60 -0
- package/dist/text-lines.js.map +1 -0
- package/dist/textual.d.ts +28 -0
- package/dist/textual.d.ts.map +1 -0
- package/dist/textual.js +75 -0
- package/dist/textual.js.map +1 -0
- package/dist/types.d.ts +112 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +60 -3
- package/src/aggregator.ts +105 -0
- package/src/assemble.ts +109 -0
- package/src/cognitive.ts +127 -0
- package/src/cyclomatic.ts +78 -0
- package/src/entropy.ts +30 -0
- package/src/explain.ts +64 -0
- package/src/halstead.ts +54 -0
- package/src/index.ts +85 -0
- package/src/ir/build-ir.ts +411 -0
- package/src/maintainability.ts +29 -0
- package/src/node-kind-heuristics.ts +55 -0
- package/src/prose/metrics.ts +201 -0
- package/src/scope-aggregate.ts +775 -0
- package/src/scope-identity.ts +240 -0
- package/src/scope.ts +77 -0
- package/src/structural.ts +132 -0
- package/src/syntactic.ts +183 -0
- package/src/text-lines.ts +90 -0
- package/src/textual.ts +119 -0
- package/src/types.ts +121 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import type { AggregationEntry } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Ein Scope mit beiden Lesarten desselben Metrikwerts.
|
|
4
|
+
*
|
|
5
|
+
* Der Aufrufer erzeugt die Werte mit demselben Calculator, nur mit
|
|
6
|
+
* unterschiedlich zugeschnittenen Facts:
|
|
7
|
+
* - `inclusiveValue`: Calculator auf `buildSymbolIR(facts, id)` — die
|
|
8
|
+
* ungefilterten Datei-Facts, der Builder zieht alle Nachfahren-Scopes mit
|
|
9
|
+
* hinein.
|
|
10
|
+
* - `selfValue`: Calculator auf
|
|
11
|
+
* `buildSymbolIR(selectSymbolFacts(facts, id), id)` — nur die eigenen
|
|
12
|
+
* Facts des Scopes, ohne Nachfahren.
|
|
13
|
+
*/
|
|
14
|
+
export interface ScopeMetricNodeV1 {
|
|
15
|
+
/** `metrics_scope_id` nach spec.md §16.10; hier die `symbolScopeId`. */
|
|
16
|
+
metricsScopeId: string;
|
|
17
|
+
/** Eltern-Scope; fehlt genau bei einem Wurzel-Scope (typisch: der Datei-Scope). */
|
|
18
|
+
parentScopeId?: string;
|
|
19
|
+
/** Wert EINSCHLIESSLICH aller Nachfahren-Scopes. */
|
|
20
|
+
inclusiveValue: number;
|
|
21
|
+
/** Wert allein aus den eigenen Facts des Scopes, OHNE Nachfahren. */
|
|
22
|
+
selfValue: number;
|
|
23
|
+
/**
|
|
24
|
+
* True, wenn der Scope eine eigene Ausfuehrungseinheit ist (Funktion,
|
|
25
|
+
* Methode, Konstruktor, Lambda) — false bei Datei, Klasse, Interface,
|
|
26
|
+
* Namespace, Typ, Property-Gruppe. Steuert ausschliesslich die Lesart
|
|
27
|
+
* `"execution_unit"`; die Zuordnung trifft der Aufrufer, weil
|
|
28
|
+
* `SymbolScopeFact.kind` ein adapterspezifischer String ist und dieses
|
|
29
|
+
* Paket keine Sprach-Taxonomie kennt.
|
|
30
|
+
*/
|
|
31
|
+
executionUnit: boolean;
|
|
32
|
+
/** SLOC des Scopes, fuer den SLOC-gewichteten Mittelwert in `aggregate()`. */
|
|
33
|
+
sloc?: number;
|
|
34
|
+
}
|
|
35
|
+
/** Die drei definierten Lesarten einer Scope-Summe. */
|
|
36
|
+
export declare const SCOPE_SUM_READINGS: readonly ["top_level", "execution_unit", "self"];
|
|
37
|
+
export type ScopeSumReading = (typeof SCOPE_SUM_READINGS)[number];
|
|
38
|
+
/** Geschlossene Menge der Invariantenverstoesse. Ein Verstoss ist ein Fehler, kein Hinweis. */
|
|
39
|
+
export declare const SCOPE_INVARIANT_CODES: readonly ["duplicate_scope_id", "unknown_parent", "parent_cycle", "negative_value", "self_exceeds_inclusive", "children_exceed_parent", "leaf_self_differs_from_inclusive", "scope_counted_twice", "scope_uncounted"];
|
|
40
|
+
export type ScopeInvariantCode = (typeof SCOPE_INVARIANT_CODES)[number];
|
|
41
|
+
/** Ein Invariantenverstoss mit Pflicht-Detailtext (E4). */
|
|
42
|
+
export interface ScopeInvariantViolationV1 {
|
|
43
|
+
code: ScopeInvariantCode;
|
|
44
|
+
metricsScopeId: string;
|
|
45
|
+
/** Beobachteter Wert (Bedeutung je nach `code`). */
|
|
46
|
+
observed: number;
|
|
47
|
+
/** Obergrenze/Erwartungswert, gegen den `observed` geprueft wurde. */
|
|
48
|
+
limit: number;
|
|
49
|
+
/** Menschenlesbare Begruendung; nie leer. */
|
|
50
|
+
detail: string;
|
|
51
|
+
}
|
|
52
|
+
export interface ScopeTreeOptions {
|
|
53
|
+
/**
|
|
54
|
+
* Konstanter Sockel, den JEDER gemessene Scope traegt, unabhaengig von
|
|
55
|
+
* seinem Inhalt. Cognitive: `0` (Default). Cyclomatic classic/extended:
|
|
56
|
+
* `1`, weil `computeCyclomatic` immer den `M = 1 + decision_points`-Sockel
|
|
57
|
+
* anlegt — ohne diese Angabe meldet die Eltern/Kind-Pruefung fuer
|
|
58
|
+
* Cyclomatic Scheinverstoesse, sobald ein Scope mehr als ein Kind hat.
|
|
59
|
+
* Die Pruefung rechnet mit `wert - perScopeBase`; die ausgewiesenen Summen
|
|
60
|
+
* bleiben unveraendert.
|
|
61
|
+
*/
|
|
62
|
+
perScopeBase?: number;
|
|
63
|
+
/** Toleranz fuer Fliesskomma-Vergleiche. Default 1e-9. */
|
|
64
|
+
epsilon?: number;
|
|
65
|
+
}
|
|
66
|
+
/** Ergebnis von `aggregateScopeTree`. */
|
|
67
|
+
export interface ScopeTreeAggregateV1 {
|
|
68
|
+
/** Scopes nach Dedupe ueber `metricsScopeId`. */
|
|
69
|
+
scopeCount: number;
|
|
70
|
+
/** Wegen wiederholter `metricsScopeId` verworfene Eingaben (spec.md §16.10). */
|
|
71
|
+
duplicatesDropped: number;
|
|
72
|
+
rootCount: number;
|
|
73
|
+
/** Anzahl der aeussersten Ausfuehrungseinheiten (Basis der Funktions-Lesart). */
|
|
74
|
+
executionUnitRootCount: number;
|
|
75
|
+
leafCount: number;
|
|
76
|
+
/** Lesart `"top_level"`. */
|
|
77
|
+
topLevelSum: number;
|
|
78
|
+
/** Lesart `"execution_unit"` — die Vorgabezahl. */
|
|
79
|
+
executionUnitSum: number;
|
|
80
|
+
/** Lesart `"self"`. */
|
|
81
|
+
selfSum: number;
|
|
82
|
+
/**
|
|
83
|
+
* NUR DIAGNOSE: Summe der `inclusiveValue` ueber alle Scopes — die naiv
|
|
84
|
+
* doppelt zaehlende Zahl. Nie als Kennzahl ausgeben.
|
|
85
|
+
*/
|
|
86
|
+
naiveSum: number;
|
|
87
|
+
/** `naiveSum - topLevelSum`: der Betrag, den eine naive Summe doppelt zaehlt. */
|
|
88
|
+
doubleCountedAmount: number;
|
|
89
|
+
/** NUR DIAGNOSE: Summe ueber die Blatt-Scopes (siehe Modul-Doku). */
|
|
90
|
+
leafOnlySum: number;
|
|
91
|
+
/** `selfSum - leafOnlySum`: der Betrag, den eine Blatt-Lesart verschlucken wuerde. */
|
|
92
|
+
leafOnlyDroppedAmount: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Prueft alle Invarianten des Scope-Baums und liefert JEDEN Verstoss mit
|
|
96
|
+
* Begruendung. Leere Liste heisst: der Baum traegt eine sinnvolle Summe.
|
|
97
|
+
*
|
|
98
|
+
* Geprueft wird:
|
|
99
|
+
* 1. `duplicate_scope_id` — dieselbe Id mit abweichenden Werten.
|
|
100
|
+
* 2. `unknown_parent` — `parentScopeId` zeigt auf einen Scope, der nicht in
|
|
101
|
+
* der Menge ist. Ihn stillschweigend als Wurzel zu behandeln waere ein
|
|
102
|
+
* E4-Verstoss: der Elternwert, gegen den geprueft werden muesste, fehlt.
|
|
103
|
+
* 3. `parent_cycle` — die Elternkette schliesst sich.
|
|
104
|
+
* 4. `negative_value` — negative Metrikwerte.
|
|
105
|
+
* 5. `self_exceeds_inclusive` — der Eigenanteil ist groesser als der Wert
|
|
106
|
+
* mit Nachfahren. Der Eigenanteil ist per Definition ein Teil davon.
|
|
107
|
+
* 6. `children_exceed_parent` — der Eigenanteil eines Scopes plus die Summe
|
|
108
|
+
* seiner direkten Kinder darf seinen eigenen Wert nicht ueberschreiten.
|
|
109
|
+
*
|
|
110
|
+
* WAS DIESE PRUEFUNG LEISTET UND WAS NICHT — sie ist eine EINSEITIGE
|
|
111
|
+
* Schranke (`self + Summe Kinder <= inclusive`) und darf deshalb nicht als
|
|
112
|
+
* Doppelzaehlungspruefung gelesen werden:
|
|
113
|
+
* - Sie schlaegt an, wenn der Elternwert ZU KLEIN ist, dem Elternwert
|
|
114
|
+
* also Inhalt seiner Kinder FEHLT (oder ein Kindwert zu gross ist).
|
|
115
|
+
* Ein Verstoss heisst: der Baum verliert Inhalt, nicht: er zaehlt
|
|
116
|
+
* doppelt.
|
|
117
|
+
* - Sie schlaegt NICHT an, wenn der Elternwert ZU GROSS ist — genau der
|
|
118
|
+
* Fall, in dem ein Kindbeitrag zweimal im Elternwert steckt. Ein
|
|
119
|
+
* aufgeblaehter `inclusiveValue` ist aus Werten allein nicht von einem
|
|
120
|
+
* Scope zu unterscheiden, der im eigenen Koerper viel Kontrollfluss
|
|
121
|
+
* traegt.
|
|
122
|
+
*
|
|
123
|
+
* Die Zusicherung "jeder Beitrag zaehlt genau einmal" leistet
|
|
124
|
+
* `checkScopeCoverage` auf der Struktur der jeweiligen Lesart, nicht
|
|
125
|
+
* diese Wertschranke.
|
|
126
|
+
* 7. `leaf_self_differs_from_inclusive` — ein Scope ohne Kinder hat keine
|
|
127
|
+
* Nachfahren, sein Eigenanteil MUSS also sein Gesamtwert sein. Weicht er
|
|
128
|
+
* ab, hat der Aufrufer die beiden Werte nicht aus demselben Scope
|
|
129
|
+
* berechnet.
|
|
130
|
+
*
|
|
131
|
+
* NICHT geprueft (und mit Absicht hier benannt statt verschwiegen): ein zu
|
|
132
|
+
* grosser `inclusiveValue` eines Scopes MIT Kindern. Siehe Punkt 6 und die
|
|
133
|
+
* Modul-Doku, Abschnitt "Woraus die Doppelzaehlungsfreiheit tatsaechlich
|
|
134
|
+
* folgt".
|
|
135
|
+
*
|
|
136
|
+
* Alle Wertvergleiche laufen auf `wert - perScopeBase` (siehe
|
|
137
|
+
* `ScopeTreeOptions.perScopeBase`).
|
|
138
|
+
*/
|
|
139
|
+
export declare function checkScopeTreeInvariants(nodes: readonly ScopeMetricNodeV1[], options?: ScopeTreeOptions): ScopeInvariantViolationV1[];
|
|
140
|
+
/**
|
|
141
|
+
* Wirft bei jedem Invariantenverstoss. Die Meldung nennt Anzahl und die
|
|
142
|
+
* ersten Verstoesse im Klartext; `context.violations` traegt die volle Liste.
|
|
143
|
+
*
|
|
144
|
+
* Geprueft wird in ZWEI Stufen: erst die Wert- und Bauminvarianten
|
|
145
|
+
* (`checkScopeTreeInvariants`), danach — nur wenn der Baum ueberhaupt
|
|
146
|
+
* wohlgeformt ist — die strukturelle Zaehlpruefung ueber alle drei Lesarten
|
|
147
|
+
* (`checkAllScopeCoverage`). Erst beide zusammen tragen die Aussage, dass die
|
|
148
|
+
* ausgegebenen Summen jeden Scope genau einmal enthalten; die Wertschranke
|
|
149
|
+
* allein taete es nicht (siehe Punkt 6 oben).
|
|
150
|
+
*/
|
|
151
|
+
export declare function assertScopeTreeInvariants(nodes: readonly ScopeMetricNodeV1[], options?: ScopeTreeOptions): void;
|
|
152
|
+
/**
|
|
153
|
+
* Liefert genau die Eintraege, die eine Lesart zaehlt — jeder Scope hoechstens
|
|
154
|
+
* einmal, jeweils mit dem fuer die Lesart richtigen Wert. Das Ergebnis geht
|
|
155
|
+
* unveraendert in `aggregate()`; damit gelten count/mean/median/p90/p95/max/
|
|
156
|
+
* Schwellenzaehlung (spec.md §16.10) auf einer doppelzaehlungsfreien Basis.
|
|
157
|
+
*
|
|
158
|
+
* Prueft KEINE Invarianten — dafuer ist `checkScopeTreeInvariants` da. Ein
|
|
159
|
+
* `unknown_parent` wird hier zwangslaeufig wie eine Wurzel behandelt; genau
|
|
160
|
+
* deshalb meldet die Pruefung ihn als Fehler, statt ihn zu tolerieren.
|
|
161
|
+
*/
|
|
162
|
+
export declare function selectScopeEntries(nodes: readonly ScopeMetricNodeV1[], reading: ScopeSumReading): AggregationEntry[];
|
|
163
|
+
/**
|
|
164
|
+
* Mit welchem Wert ein ausgewaehlter Scope in seine Lesart eingeht — und
|
|
165
|
+
* damit auch, WIE WEIT sein Summand reicht: `"inclusive"` deckt den Scope
|
|
166
|
+
* und alle seine Nachfahren ab, `"self"` nur ihn selbst.
|
|
167
|
+
*/
|
|
168
|
+
export type ScopeSelectionKind = "inclusive" | "self";
|
|
169
|
+
/**
|
|
170
|
+
* Welche Scopes eine Lesart als Summanden zaehlt und mit welcher Reichweite.
|
|
171
|
+
* Was nicht in der Abbildung steht, ist kein eigener Summand.
|
|
172
|
+
*/
|
|
173
|
+
export type ScopeSelectionV1 = ReadonlyMap<string, ScopeSelectionKind>;
|
|
174
|
+
/**
|
|
175
|
+
* Die Auswahl einer Lesart. Einzige Quelle der Wahrheit fuer
|
|
176
|
+
* `selectScopeEntries` UND `checkScopeCoverage`: die Pruefung soll dieselbe
|
|
177
|
+
* Auswahl sehen, die auch summiert wird, sonst prueft sie etwas anderes als
|
|
178
|
+
* das, was ausgegeben wird.
|
|
179
|
+
*/
|
|
180
|
+
export declare function selectionForReading(nodes: readonly ScopeMetricNodeV1[], reading: ScopeSumReading): ScopeSelectionV1;
|
|
181
|
+
/**
|
|
182
|
+
* Prueft STRUKTURELL, dass eine Lesart jeden Scope genau einmal zaehlt — die
|
|
183
|
+
* Zusicherung, die `children_exceed_parent` NICHT leisten kann (siehe die
|
|
184
|
+
* Modul-Doku, Abschnitt "Woraus die Doppelzaehlungsfreiheit tatsaechlich
|
|
185
|
+
* folgt", und Punkt 6 von `checkScopeTreeInvariants`).
|
|
186
|
+
*
|
|
187
|
+
* Fuer jeden Scope wird gezaehlt, wie viele Summanden der Lesart seinen
|
|
188
|
+
* Beitrag tragen: er selbst, falls er ausgewaehlt ist, plus jeder echte
|
|
189
|
+
* Vorfahre, der mit `inclusiveValue` ausgewaehlt ist (dessen Summand deckt
|
|
190
|
+
* den ganzen Teilbaum ab). Genau EINER muss es sein.
|
|
191
|
+
*
|
|
192
|
+
* Was die Pruefung NICHT leisten kann: sie sieht die Struktur, nicht die
|
|
193
|
+
* Werte. Ein `inclusiveValue`, der den Beitrag eines Kindes intern doppelt
|
|
194
|
+
* enthaelt, ist aus Zahlen allein nicht erkennbar — dafuer haftet der
|
|
195
|
+
* Aufrufer, der die Werte berechnet hat.
|
|
196
|
+
*/
|
|
197
|
+
export declare function checkScopeCoverage(nodes: readonly ScopeMetricNodeV1[], reading: ScopeSumReading): ScopeInvariantViolationV1[];
|
|
198
|
+
/**
|
|
199
|
+
* Dieselbe Zaehlpruefung wie `checkScopeCoverage`, aber gegen eine BELIEBIGE
|
|
200
|
+
* Auswahl. Sie ist der eigentliche Kern; `checkScopeCoverage` ist nur die
|
|
201
|
+
* Anwendung auf die Auswahl, die eine der drei Lesarten trifft.
|
|
202
|
+
*
|
|
203
|
+
* Getrennt exportiert, weil die Zusicherung sonst nicht vorfuehrbar waere:
|
|
204
|
+
* die Auswahlen der drei Lesarten koennen `scope_counted_twice` per
|
|
205
|
+
* Konstruktion nicht ausloesen (dort ist ein Scope ausgewaehlt GENAU DANN,
|
|
206
|
+
* wenn er keinen ausgewaehlten `inclusive`-Vorfahren hat). Eine Pruefung,
|
|
207
|
+
* deren Alarmfall ueber die oeffentliche Schnittstelle nicht erreichbar ist,
|
|
208
|
+
* waere eine Behauptung statt einer Pruefung — mit dieser Funktion laesst er
|
|
209
|
+
* sich zeigen, und der Waechter greift, sobald jemand `selectionFor` aendert.
|
|
210
|
+
*
|
|
211
|
+
* @param label Erscheint im Detailtext an der Stelle der Lesart.
|
|
212
|
+
*/
|
|
213
|
+
export declare function checkSelectionCoverage(nodes: readonly ScopeMetricNodeV1[], selection: ScopeSelectionV1, label: string): ScopeInvariantViolationV1[];
|
|
214
|
+
/**
|
|
215
|
+
* `checkScopeCoverage` fuer ALLE drei Lesarten, Verstoesse deterministisch
|
|
216
|
+
* nach Lesart und Scope sortiert.
|
|
217
|
+
*/
|
|
218
|
+
export declare function checkAllScopeCoverage(nodes: readonly ScopeMetricNodeV1[]): ScopeInvariantViolationV1[];
|
|
219
|
+
/**
|
|
220
|
+
* Summiert einen Scope-Baum in allen drei Lesarten, ohne Doppelzaehlung.
|
|
221
|
+
*
|
|
222
|
+
* WIRFT bei jedem Invariantenverstoss (`UntangleError`, Code
|
|
223
|
+
* `ANALYSIS_INCOMPLETE`): eine Summe ueber einen widerspruechlichen Baum ist
|
|
224
|
+
* keine Zahl mit Bedeutung, und ein Hinweis waere hier zu wenig. Wer die
|
|
225
|
+
* Verstoesse anzeigen statt abbrechen will, ruft vorher
|
|
226
|
+
* `checkScopeTreeInvariants` auf.
|
|
227
|
+
*/
|
|
228
|
+
export declare function aggregateScopeTree(nodes: readonly ScopeMetricNodeV1[], options?: ScopeTreeOptions): ScopeTreeAggregateV1;
|
|
229
|
+
//# sourceMappingURL=scope-aggregate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-aggregate.d.ts","sourceRoot":"","sources":["../src/scope-aggregate.ts"],"names":[],"mappings":"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"}
|