@angular-modernizer/api 0.1.3 → 0.2.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.
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/investigation/call-graph-builder.d.ts +95 -8
- package/dist/investigation/call-graph-builder.d.ts.map +1 -1
- package/dist/investigation/call-graph-builder.js +424 -81
- package/dist/investigation/call-graph-builder.js.map +1 -1
- package/dist/investigation/codebase-searcher.d.ts +68 -0
- package/dist/investigation/codebase-searcher.d.ts.map +1 -1
- package/dist/investigation/codebase-searcher.js +154 -10
- package/dist/investigation/codebase-searcher.js.map +1 -1
- package/dist/investigation/template-usage-finder.d.ts +64 -0
- package/dist/investigation/template-usage-finder.d.ts.map +1 -0
- package/dist/investigation/template-usage-finder.js +279 -0
- package/dist/investigation/template-usage-finder.js.map +1 -0
- package/dist/investigation/template-usage-scanner.d.ts +69 -0
- package/dist/investigation/template-usage-scanner.d.ts.map +1 -0
- package/dist/investigation/template-usage-scanner.js +375 -0
- package/dist/investigation/template-usage-scanner.js.map +1 -0
- package/dist/investigation/usage-finder.d.ts +51 -5
- package/dist/investigation/usage-finder.d.ts.map +1 -1
- package/dist/investigation/usage-finder.js +129 -36
- package/dist/investigation/usage-finder.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +16 -0
- package/src/investigation/call-graph-builder.ts +528 -103
- package/src/investigation/codebase-searcher.ts +240 -11
- package/src/investigation/template-usage-finder.ts +389 -0
- package/src/investigation/template-usage-scanner.ts +529 -0
- package/src/investigation/usage-finder.ts +194 -54
package/dist/index.d.ts
CHANGED
|
@@ -16,8 +16,10 @@ export * from './analysis/external-template-loader.js';
|
|
|
16
16
|
export { SymbolLocator, type SymbolInfo as ProjectSymbolInfo, } from './analysis/symbol-locator.js';
|
|
17
17
|
export { StackTraceParser, type StackFrame, } from './investigation/stack-trace-parser.js';
|
|
18
18
|
export { UsageFinder, type SymbolUsage, type UsageType, type FindUsagesOptions, } from './investigation/usage-finder.js';
|
|
19
|
-
export {
|
|
19
|
+
export { TemplateUsageFinder, type TemplateSymbolUsage, type TemplateMatch, } from './investigation/template-usage-finder.js';
|
|
20
|
+
export { scanTemplate, templateMayMatch, type TemplateQuery, type TemplateHit, type TemplateUsageKind, } from './investigation/template-usage-scanner.js';
|
|
21
|
+
export { CallGraphBuilder, type CallNode, type CallGraphOptions, type CallGraphResult, type CallableKind, } from './investigation/call-graph-builder.js';
|
|
20
22
|
export { TypeResolver, type ResolvedTypeInfo, } from './investigation/type-resolver.js';
|
|
21
23
|
export { AngularSymbolFinder, type AngularSymbolResult, type AngularSymbolType, } from './investigation/angular-symbol-finder.js';
|
|
22
|
-
export { CodebaseSearcher, type SearchResult, type SearchOptions, type SymbolKind, } from './investigation/codebase-searcher.js';
|
|
24
|
+
export { CodebaseSearcher, type SearchResult, type SearchOptions, type SymbolKind, type SearchCoverage, type SearchWithCoverageResult, EXCLUDED_SEARCH_DIRECTORIES, } from './investigation/codebase-searcher.js';
|
|
23
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,YAAY,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,OAAO,EACL,aAAa,EACb,KAAK,UAAU,IAAI,iBAAiB,GACrC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,YAAY,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,OAAO,EACL,aAAa,EACb,KAAK,UAAU,IAAI,iBAAiB,GACrC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,2BAA2B,GAC5B,MAAM,sCAAsC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,8 +15,10 @@ export * from './analysis/external-template-loader.js';
|
|
|
15
15
|
export { SymbolLocator, } from './analysis/symbol-locator.js';
|
|
16
16
|
export { StackTraceParser, } from './investigation/stack-trace-parser.js';
|
|
17
17
|
export { UsageFinder, } from './investigation/usage-finder.js';
|
|
18
|
+
export { TemplateUsageFinder, } from './investigation/template-usage-finder.js';
|
|
19
|
+
export { scanTemplate, templateMayMatch, } from './investigation/template-usage-scanner.js';
|
|
18
20
|
export { CallGraphBuilder, } from './investigation/call-graph-builder.js';
|
|
19
21
|
export { TypeResolver, } from './investigation/type-resolver.js';
|
|
20
22
|
export { AngularSymbolFinder, } from './investigation/angular-symbol-finder.js';
|
|
21
|
-
export { CodebaseSearcher, } from './investigation/codebase-searcher.js';
|
|
23
|
+
export { CodebaseSearcher, EXCLUDED_SEARCH_DIRECTORIES, } from './investigation/codebase-searcher.js';
|
|
22
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAE/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,OAAO,EACL,aAAa,GAEd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gBAAgB,GAEjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,WAAW,GAIZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gBAAgB,GAIjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,YAAY,GAEb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mBAAmB,GAGpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAE/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,OAAO,EACL,aAAa,GAEd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gBAAgB,GAEjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,WAAW,GAIZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,mBAAmB,GAGpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,gBAAgB,GAIjB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,gBAAgB,GAKjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,YAAY,GAEb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mBAAmB,GAGpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,gBAAgB,EAMhB,2BAA2B,GAC5B,MAAM,sCAAsC,CAAC"}
|
|
@@ -1,13 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @angular-modernizer/api - Call Graph Builder
|
|
3
3
|
*
|
|
4
|
-
* Builds a call graph for a named
|
|
4
|
+
* Builds a call graph for a named callable within a ts-morph Project.
|
|
5
5
|
* Supports traversal upward (callers) and downward (callees) with configurable depth.
|
|
6
6
|
*
|
|
7
|
+
* Supported targets (and graph nodes):
|
|
8
|
+
* - class methods and top-level functions
|
|
9
|
+
* - constructors (`'constructor'` or `'ClassName.constructor'`); a class
|
|
10
|
+
* without an explicit constructor is represented by its field initializers
|
|
11
|
+
* - get/set accessors
|
|
12
|
+
* - properties and top-level variables initialized with an arrow function or
|
|
13
|
+
* function expression
|
|
14
|
+
*
|
|
15
|
+
* Callees include:
|
|
16
|
+
* - call expressions (resolved via the type checker, name-based fallback
|
|
17
|
+
* only when the symbol cannot be resolved)
|
|
18
|
+
* - `new X()` (edge to X's constructor, including X's field initializers)
|
|
19
|
+
* - `super(...)` (edge to the base class constructor)
|
|
20
|
+
* - property reads/writes that resolve to a getter/setter
|
|
21
|
+
* - for constructors: instance field initializers (they run during
|
|
22
|
+
* construction)
|
|
23
|
+
*
|
|
24
|
+
* Callers are the enclosing callable of each reference: method, function,
|
|
25
|
+
* constructor, accessor, arrow-function property, or (for references in a
|
|
26
|
+
* field initializer) the owning class constructor. Callers of a constructor
|
|
27
|
+
* are the `new X()` sites and the constructors of subclasses.
|
|
28
|
+
*
|
|
7
29
|
* @remarks
|
|
8
30
|
* Used in bug investigation to understand how an error propagates through the
|
|
9
31
|
* codebase. Combine with `find-usages` to trace the full call path from the
|
|
10
|
-
* entry point to the failing code.
|
|
32
|
+
* entry point to the failing code, e.g. "what runs transitively while an
|
|
33
|
+
* interceptor is constructed" (ctor -> helper getter -> static config read).
|
|
11
34
|
*
|
|
12
35
|
* @example
|
|
13
36
|
* ```typescript
|
|
@@ -18,17 +41,29 @@
|
|
|
18
41
|
* });
|
|
19
42
|
* // graph.callers → who calls getUser
|
|
20
43
|
* // graph.callees → what getUser calls
|
|
44
|
+
*
|
|
45
|
+
* const ctorGraph = builder.buildCallGraph(
|
|
46
|
+
* 'AuthInterceptor.constructor',
|
|
47
|
+
* '/src/app/auth.interceptor.ts',
|
|
48
|
+
* { direction: 'down', depth: 3 },
|
|
49
|
+
* );
|
|
21
50
|
* ```
|
|
22
51
|
*/
|
|
23
|
-
import type
|
|
52
|
+
import { type Project } from 'ts-morph';
|
|
53
|
+
/** Kind of callable represented by a call graph node. */
|
|
54
|
+
export type CallableKind = 'method' | 'function' | 'constructor' | 'getter' | 'setter' | 'property' | 'variable';
|
|
24
55
|
/** A node in the call graph tree. */
|
|
25
56
|
export interface CallNode {
|
|
26
|
-
/** Method or function name. */
|
|
57
|
+
/** Method or function name (`'constructor'` for constructors). */
|
|
27
58
|
name: string;
|
|
28
59
|
/** Absolute file path where this method is declared. */
|
|
29
60
|
file: string;
|
|
30
61
|
/** 1-based line number of the declaration. */
|
|
31
62
|
line: number;
|
|
63
|
+
/** Kind of callable (method, constructor, getter, ...). */
|
|
64
|
+
kind?: CallableKind;
|
|
65
|
+
/** Owning class name for class members. */
|
|
66
|
+
className?: string;
|
|
32
67
|
/** Nested callers or callees (recursive to configured depth). */
|
|
33
68
|
children: CallNode[];
|
|
34
69
|
}
|
|
@@ -58,7 +93,8 @@ export interface CallGraphResult {
|
|
|
58
93
|
callees: CallNode[];
|
|
59
94
|
}
|
|
60
95
|
/**
|
|
61
|
-
* Builds caller/callee graphs for methods
|
|
96
|
+
* Builds caller/callee graphs for methods, functions, constructors,
|
|
97
|
+
* accessors and arrow-function properties across a ts-morph Project.
|
|
62
98
|
*/
|
|
63
99
|
export declare class CallGraphBuilder {
|
|
64
100
|
private readonly project;
|
|
@@ -67,19 +103,70 @@ export declare class CallGraphBuilder {
|
|
|
67
103
|
*/
|
|
68
104
|
constructor(project: Project);
|
|
69
105
|
/**
|
|
70
|
-
* Builds a call graph rooted at the named
|
|
106
|
+
* Builds a call graph rooted at the named callable.
|
|
71
107
|
*
|
|
72
|
-
* @param method - Name of the
|
|
73
|
-
*
|
|
108
|
+
* @param method - Name of the callable to analyse. Accepts a method,
|
|
109
|
+
* function, accessor or arrow-function property name, `'constructor'`,
|
|
110
|
+
* or a class-qualified name such as `'AuthInterceptor.constructor'` or
|
|
111
|
+
* `'AuthInterceptor.headers'`.
|
|
112
|
+
* @param file - Absolute path of the source file containing the callable.
|
|
74
113
|
* @param options - Traversal direction and depth. Defaults to `both` / depth `2`.
|
|
75
114
|
* @returns A `CallGraphResult` with the target and its caller/callee trees.
|
|
76
115
|
*/
|
|
77
116
|
buildCallGraph(method: string, file: string, options?: CallGraphOptions): CallGraphResult;
|
|
78
117
|
private resolveTarget;
|
|
118
|
+
private findClassMember;
|
|
119
|
+
/**
|
|
120
|
+
* Converts a declaration node into a `Callable`, or `null` when the node
|
|
121
|
+
* cannot run code (e.g. a plain data property or an interface member).
|
|
122
|
+
*/
|
|
123
|
+
private toCallable;
|
|
124
|
+
/**
|
|
125
|
+
* Constructor callable for a class: the explicit constructor body (if any)
|
|
126
|
+
* plus all non-static, non-function field initializers.
|
|
127
|
+
*/
|
|
128
|
+
private constructorOf;
|
|
129
|
+
private functionInitializerBody;
|
|
130
|
+
private classNameOf;
|
|
131
|
+
private compact;
|
|
79
132
|
private buildCallees;
|
|
133
|
+
private collectCalleeCallables;
|
|
134
|
+
private calleesAt;
|
|
135
|
+
private resolveCallExpressionTarget;
|
|
136
|
+
private resolveNewExpressionTarget;
|
|
137
|
+
private resolveAccessorTarget;
|
|
138
|
+
private superConstructor;
|
|
139
|
+
/**
|
|
140
|
+
* Resolves the declarations behind an expression via the type checker.
|
|
141
|
+
* Returns `undefined` when no symbol can be resolved (caller may fall back
|
|
142
|
+
* to name-based lookup) and an empty array when the symbol resolves to
|
|
143
|
+
* declarations that cannot be represented.
|
|
144
|
+
*/
|
|
145
|
+
private resolveSymbolDeclarations;
|
|
146
|
+
/**
|
|
147
|
+
* Maps declarations to callables, preferring implementations (with body)
|
|
148
|
+
* over overload signatures and skipping ambient (.d.ts) declarations.
|
|
149
|
+
*/
|
|
150
|
+
private pickCallables;
|
|
80
151
|
private buildCallers;
|
|
152
|
+
private referenceNodes;
|
|
153
|
+
/**
|
|
154
|
+
* Maps a reference to the callable that performs the call. For
|
|
155
|
+
* constructor targets only `new X()` sites and subclass constructors
|
|
156
|
+
* (implicit or explicit `super()` calls) count.
|
|
157
|
+
*/
|
|
158
|
+
private callerForReference;
|
|
159
|
+
/**
|
|
160
|
+
* Finds the callable that contains `node`. Anonymous callbacks are
|
|
161
|
+
* attributed to their enclosing named callable; references inside a
|
|
162
|
+
* non-function field initializer are attributed to the class constructor.
|
|
163
|
+
*/
|
|
164
|
+
private enclosingCallable;
|
|
81
165
|
private findDeclarationInProject;
|
|
166
|
+
private findClassInProject;
|
|
82
167
|
private extractCallName;
|
|
168
|
+
private keyOf;
|
|
169
|
+
private toCallNode;
|
|
83
170
|
private deduplicateNodes;
|
|
84
171
|
}
|
|
85
172
|
//# sourceMappingURL=call-graph-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-graph-builder.d.ts","sourceRoot":"","sources":["../../src/investigation/call-graph-builder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"call-graph-builder.d.ts","sourceRoot":"","sources":["../../src/investigation/call-graph-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,UAAU,CAAC;AAElB,yDAAyD;AACzD,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,UAAU,GACV,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,UAAU,CAAC;AAEf,qCAAqC;AACrC,MAAM,WAAW,QAAQ;IACvB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IAEb,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IAEb,2DAA2D;IAC3D,IAAI,CAAC,EAAE,YAAY,CAAC;IAEpB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iEAAiE;IACjE,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAEnC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAE1C,sEAAsE;IACtE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAEpB,wEAAwE;IACxE,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAiBD;;;GAGG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC;;OAEG;gBAC0B,OAAO,EAAE,OAAO;IAE7C;;;;;;;;;;OAUG;IACH,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC7B,eAAe;IAoClB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,eAAe;IA2BvB;;;OAGG;IACH,OAAO,CAAC,UAAU;IA8DlB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,2BAA2B;IAenC,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,gBAAgB;IAMxB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,cAAc;IAsBtB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,gBAAgB;CAWzB"}
|