@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.
Files changed (31) hide show
  1. package/dist/index.d.ts +4 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/investigation/call-graph-builder.d.ts +95 -8
  6. package/dist/investigation/call-graph-builder.d.ts.map +1 -1
  7. package/dist/investigation/call-graph-builder.js +424 -81
  8. package/dist/investigation/call-graph-builder.js.map +1 -1
  9. package/dist/investigation/codebase-searcher.d.ts +68 -0
  10. package/dist/investigation/codebase-searcher.d.ts.map +1 -1
  11. package/dist/investigation/codebase-searcher.js +154 -10
  12. package/dist/investigation/codebase-searcher.js.map +1 -1
  13. package/dist/investigation/template-usage-finder.d.ts +64 -0
  14. package/dist/investigation/template-usage-finder.d.ts.map +1 -0
  15. package/dist/investigation/template-usage-finder.js +279 -0
  16. package/dist/investigation/template-usage-finder.js.map +1 -0
  17. package/dist/investigation/template-usage-scanner.d.ts +69 -0
  18. package/dist/investigation/template-usage-scanner.d.ts.map +1 -0
  19. package/dist/investigation/template-usage-scanner.js +375 -0
  20. package/dist/investigation/template-usage-scanner.js.map +1 -0
  21. package/dist/investigation/usage-finder.d.ts +51 -5
  22. package/dist/investigation/usage-finder.d.ts.map +1 -1
  23. package/dist/investigation/usage-finder.js +129 -36
  24. package/dist/investigation/usage-finder.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/index.ts +16 -0
  27. package/src/investigation/call-graph-builder.ts +528 -103
  28. package/src/investigation/codebase-searcher.ts +240 -11
  29. package/src/investigation/template-usage-finder.ts +389 -0
  30. package/src/investigation/template-usage-scanner.ts +529 -0
  31. 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 { CallGraphBuilder, type CallNode, type CallGraphOptions, type CallGraphResult, } from './investigation/call-graph-builder.js';
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
@@ -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,GACrB,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,GAChB,MAAM,sCAAsC,CAAC"}
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,GAIjB,MAAM,sCAAsC,CAAC"}
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 method or function within a ts-morph Project.
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 { Project } from 'ts-morph';
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 and functions across a ts-morph Project.
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 method or function.
106
+ * Builds a call graph rooted at the named callable.
71
107
  *
72
- * @param method - Name of the method or function to analyse.
73
- * @param file - Absolute path of the source file containing the method.
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;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAA0C,MAAM,UAAU,CAAC;AAGhF,qCAAqC;AACrC,MAAM,WAAW,QAAQ;IACvB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IAEb,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IAEb,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;AAID;;GAEG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC;;OAEG;gBAC0B,OAAO,EAAE,OAAO;IAE7C;;;;;;;OAOG;IACH,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC7B,eAAe;IA4BlB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,YAAY;IAuDpB,OAAO,CAAC,YAAY;IA+DpB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,gBAAgB;CAWzB"}
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"}