ng-explorer 0.0.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/.claude-plugin/plugin.json +14 -0
- package/LICENSE +674 -0
- package/README.md +140 -0
- package/bin/ng-explorer.js +6 -0
- package/dist/commands/api.d.ts +3 -0
- package/dist/commands/api.d.ts.map +1 -0
- package/dist/commands/api.js +60 -0
- package/dist/commands/api.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +58 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/search.d.ts +3 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +97 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/stats.d.ts +3 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +41 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/usage.d.ts +3 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +110 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +125 -0
- package/dist/index.js.map +1 -0
- package/dist/services/formatter.d.ts +67 -0
- package/dist/services/formatter.d.ts.map +1 -0
- package/dist/services/formatter.js +302 -0
- package/dist/services/formatter.js.map +1 -0
- package/dist/services/loader.d.ts +24 -0
- package/dist/services/loader.d.ts.map +1 -0
- package/dist/services/loader.js +56 -0
- package/dist/services/loader.js.map +1 -0
- package/dist/services/searcher.d.ts +48 -0
- package/dist/services/searcher.d.ts.map +1 -0
- package/dist/services/searcher.js +162 -0
- package/dist/services/searcher.js.map +1 -0
- package/dist/services/usage-finder.d.ts +33 -0
- package/dist/services/usage-finder.d.ts.map +1 -0
- package/dist/services/usage-finder.js +156 -0
- package/dist/services/usage-finder.js.map +1 -0
- package/dist/types/compodoc.d.ts +292 -0
- package/dist/types/compodoc.d.ts.map +1 -0
- package/dist/types/compodoc.js +40 -0
- package/dist/types/compodoc.js.map +1 -0
- package/package.json +54 -0
- package/skills/ng-explorer/SKILL.md +141 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searcher.d.ts","sourceRoot":"","sources":["../../src/services/searcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE3E,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,YAAY,GACZ,WAAW,GACX,MAAM,GACN,QAAQ,GACR,OAAO,GACP,KAAK,CAAC;AAEV;;GAEG;AACH,qBAAa,QAAQ;IAIP,OAAO,CAAC,IAAI;IAHxB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,IAAI,CAAoE;gBAE5D,IAAI,EAAE,YAAY;IAItC;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,aAAqB,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,gBAAgB,EAAE;IA8BhH;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,aAAqB,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,gBAAgB,EAAE;IAuBrH;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,gBAAgB,GAAG,IAAI;IAcvE;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,gBAAgB,EAAE;IAc7F;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;IAajE;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAWnC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import Fuse from 'fuse.js';
|
|
2
|
+
import { minimatch } from 'minimatch';
|
|
3
|
+
/**
|
|
4
|
+
* Searcher service for finding Angular constructs in documentation
|
|
5
|
+
*/
|
|
6
|
+
export class Searcher {
|
|
7
|
+
data;
|
|
8
|
+
allConstructs = [];
|
|
9
|
+
fuse = null;
|
|
10
|
+
constructor(data) {
|
|
11
|
+
this.data = data;
|
|
12
|
+
this.buildSearchIndex();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Strip common Angular suffixes from a name
|
|
16
|
+
*/
|
|
17
|
+
stripSuffix(name) {
|
|
18
|
+
const suffixes = ['Component', 'Directive', 'Service', 'Pipe', 'Module'];
|
|
19
|
+
for (const suffix of suffixes) {
|
|
20
|
+
if (name.endsWith(suffix) && name.length > suffix.length) {
|
|
21
|
+
return name.slice(0, -suffix.length);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return name;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build search index from all constructs
|
|
28
|
+
*/
|
|
29
|
+
buildSearchIndex() {
|
|
30
|
+
// Collect all constructs
|
|
31
|
+
this.allConstructs = [
|
|
32
|
+
...(this.data.components || []),
|
|
33
|
+
...(this.data.injectables || []),
|
|
34
|
+
...(this.data.directives || []),
|
|
35
|
+
...(this.data.pipes || []),
|
|
36
|
+
...(this.data.modules || []),
|
|
37
|
+
...(this.data.classes || []),
|
|
38
|
+
];
|
|
39
|
+
// Create enhanced constructs with normalized names for better fuzzy matching
|
|
40
|
+
const searchableConstructs = this.allConstructs.map(construct => ({
|
|
41
|
+
...construct,
|
|
42
|
+
normalizedName: this.stripSuffix(construct.name),
|
|
43
|
+
}));
|
|
44
|
+
// Configure Fuse.js for fuzzy search
|
|
45
|
+
this.fuse = new Fuse(searchableConstructs, {
|
|
46
|
+
keys: [
|
|
47
|
+
{ name: 'normalizedName', weight: 2 },
|
|
48
|
+
{ name: 'selector', weight: 1.5 },
|
|
49
|
+
],
|
|
50
|
+
threshold: 0.3,
|
|
51
|
+
includeScore: true,
|
|
52
|
+
minMatchCharLength: 2,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Search for constructs by query string
|
|
57
|
+
*/
|
|
58
|
+
search(query, type = 'all', pathPattern, limit = 50) {
|
|
59
|
+
if (!this.fuse) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
// Strip suffix from query for better fuzzy matching
|
|
63
|
+
const normalizedQuery = this.stripSuffix(query);
|
|
64
|
+
// Perform fuzzy search with normalized query
|
|
65
|
+
const results = this.fuse.search(normalizedQuery);
|
|
66
|
+
// Extract items (remove normalizedName property) and filter by type
|
|
67
|
+
let constructs = results.map((result) => {
|
|
68
|
+
const { normalizedName, ...construct } = result.item;
|
|
69
|
+
return construct;
|
|
70
|
+
});
|
|
71
|
+
if (type !== 'all') {
|
|
72
|
+
constructs = constructs.filter((construct) => construct.type === type);
|
|
73
|
+
}
|
|
74
|
+
// Filter by path pattern if provided
|
|
75
|
+
if (pathPattern) {
|
|
76
|
+
constructs = this.filterByPath(constructs, pathPattern);
|
|
77
|
+
}
|
|
78
|
+
// Apply limit
|
|
79
|
+
return constructs.slice(0, limit);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Search for constructs by exact name matching
|
|
83
|
+
*/
|
|
84
|
+
searchExact(query, type = 'all', pathPattern, limit = 50) {
|
|
85
|
+
let constructs = this.allConstructs;
|
|
86
|
+
// Filter by type
|
|
87
|
+
if (type !== 'all') {
|
|
88
|
+
constructs = constructs.filter((construct) => construct.type === type);
|
|
89
|
+
}
|
|
90
|
+
// Filter by exact name match (case-insensitive)
|
|
91
|
+
const lowerQuery = query.toLowerCase();
|
|
92
|
+
constructs = constructs.filter((construct) => construct.name.toLowerCase() === lowerQuery);
|
|
93
|
+
// Filter by path pattern if provided
|
|
94
|
+
if (pathPattern) {
|
|
95
|
+
constructs = this.filterByPath(constructs, pathPattern);
|
|
96
|
+
}
|
|
97
|
+
// Apply limit
|
|
98
|
+
return constructs.slice(0, limit);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Find a construct by exact name
|
|
102
|
+
*/
|
|
103
|
+
findByName(name, type) {
|
|
104
|
+
let constructs = this.allConstructs;
|
|
105
|
+
if (type && type !== 'all') {
|
|
106
|
+
constructs = constructs.filter((construct) => construct.type === type);
|
|
107
|
+
}
|
|
108
|
+
return (constructs.find((construct) => construct.name.toLowerCase() === name.toLowerCase()) || null);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* List all constructs of a specific type
|
|
112
|
+
*/
|
|
113
|
+
listByType(type, pathPattern, limit = 50) {
|
|
114
|
+
let constructs = type === 'all'
|
|
115
|
+
? this.allConstructs
|
|
116
|
+
: this.allConstructs.filter((construct) => construct.type === type);
|
|
117
|
+
// Filter by path pattern if provided
|
|
118
|
+
if (pathPattern) {
|
|
119
|
+
constructs = this.filterByPath(constructs, pathPattern);
|
|
120
|
+
}
|
|
121
|
+
// Apply limit
|
|
122
|
+
return constructs.slice(0, limit);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get total count of constructs by type (before limit)
|
|
126
|
+
*/
|
|
127
|
+
getCountByType(type, pathPattern) {
|
|
128
|
+
let constructs = type === 'all'
|
|
129
|
+
? this.allConstructs
|
|
130
|
+
: this.allConstructs.filter((construct) => construct.type === type);
|
|
131
|
+
// Filter by path pattern if provided
|
|
132
|
+
if (pathPattern) {
|
|
133
|
+
constructs = this.filterByPath(constructs, pathPattern);
|
|
134
|
+
}
|
|
135
|
+
return constructs.length;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Filter constructs by path pattern
|
|
139
|
+
*/
|
|
140
|
+
filterByPath(constructs, pathPattern) {
|
|
141
|
+
return constructs.filter((construct) => {
|
|
142
|
+
// Normalize path separators and remove leading ./
|
|
143
|
+
const filePath = construct.file.replace(/^\.\//, '');
|
|
144
|
+
return minimatch(filePath, pathPattern, { matchBase: true });
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get statistics about the documentation
|
|
149
|
+
*/
|
|
150
|
+
getStats() {
|
|
151
|
+
return {
|
|
152
|
+
components: this.data.components?.length || 0,
|
|
153
|
+
injectables: this.data.injectables?.length || 0,
|
|
154
|
+
directives: this.data.directives?.length || 0,
|
|
155
|
+
pipes: this.data.pipes?.length || 0,
|
|
156
|
+
modules: this.data.modules?.length || 0,
|
|
157
|
+
classes: this.data.classes?.length || 0,
|
|
158
|
+
total: this.allConstructs.length,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=searcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searcher.js","sourceRoot":"","sources":["../../src/services/searcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AngularConstruct } from '../types/compodoc.js';
|
|
2
|
+
export interface UsageMatch {
|
|
3
|
+
file: string;
|
|
4
|
+
line: number;
|
|
5
|
+
content: string;
|
|
6
|
+
context: string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Service for finding usages of Angular constructs in the codebase
|
|
10
|
+
*/
|
|
11
|
+
export declare class UsageFinder {
|
|
12
|
+
/**
|
|
13
|
+
* Find usages of a construct in the codebase
|
|
14
|
+
*/
|
|
15
|
+
findUsages(construct: AngularConstruct): UsageMatch[];
|
|
16
|
+
/**
|
|
17
|
+
* Determine what to search for based on construct type
|
|
18
|
+
*/
|
|
19
|
+
private getSearchTerm;
|
|
20
|
+
/**
|
|
21
|
+
* Determine file pattern to search based on construct type
|
|
22
|
+
*/
|
|
23
|
+
private getFilePattern;
|
|
24
|
+
/**
|
|
25
|
+
* Parse grep output into structured matches
|
|
26
|
+
*/
|
|
27
|
+
private parseGrepOutput;
|
|
28
|
+
/**
|
|
29
|
+
* Group matches by file
|
|
30
|
+
*/
|
|
31
|
+
groupByFile(matches: UsageMatch[]): Map<string, UsageMatch[]>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=usage-finder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-finder.d.ts","sourceRoot":"","sources":["../../src/services/usage-finder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,gBAAgB,GAAG,UAAU,EAAE;IAmCrD;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmEvB;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;CAW9D"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
import { isComponent, isDirective, isPipe } from '../types/compodoc.js';
|
|
3
|
+
/**
|
|
4
|
+
* Service for finding usages of Angular constructs in the codebase
|
|
5
|
+
*/
|
|
6
|
+
export class UsageFinder {
|
|
7
|
+
/**
|
|
8
|
+
* Find usages of a construct in the codebase
|
|
9
|
+
*/
|
|
10
|
+
findUsages(construct) {
|
|
11
|
+
const searchTerm = this.getSearchTerm(construct);
|
|
12
|
+
const filePattern = this.getFilePattern(construct);
|
|
13
|
+
if (!searchTerm) {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
// Use grep to find matches with line numbers and context
|
|
18
|
+
// -r: recursive
|
|
19
|
+
// -n: show line numbers
|
|
20
|
+
// -w: match whole words only (prevents bitButton from matching bitButtonGroup)
|
|
21
|
+
// -A 2: show 2 lines after match
|
|
22
|
+
// -B 1: show 1 line before match
|
|
23
|
+
// --include: filter by file pattern
|
|
24
|
+
const command = `grep -rnw -A 2 -B 1 --include="${filePattern}" "${searchTerm}" .`;
|
|
25
|
+
const output = execSync(command, {
|
|
26
|
+
cwd: process.cwd(),
|
|
27
|
+
encoding: 'utf-8',
|
|
28
|
+
maxBuffer: 10 * 1024 * 1024, // 10MB buffer
|
|
29
|
+
});
|
|
30
|
+
return this.parseGrepOutput(output);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// grep returns exit code 1 when no matches found
|
|
34
|
+
if (error.status === 1) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
// Other errors (e.g., command not found)
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Determine what to search for based on construct type
|
|
43
|
+
*/
|
|
44
|
+
getSearchTerm(construct) {
|
|
45
|
+
if (isComponent(construct) || isDirective(construct)) {
|
|
46
|
+
// Search for the selector in templates
|
|
47
|
+
const selector = construct.selector || '';
|
|
48
|
+
// If the selector contains brackets, extract the attribute name
|
|
49
|
+
// e.g., "button[bitButton], a[bitButton]" -> "bitButton"
|
|
50
|
+
// e.g., "[bitAction]" -> "bitAction"
|
|
51
|
+
const bracketMatch = selector.match(/\[([^\]]+)\]/);
|
|
52
|
+
if (bracketMatch) {
|
|
53
|
+
return bracketMatch[1];
|
|
54
|
+
}
|
|
55
|
+
// Otherwise use the selector as-is (for element selectors like "app-vault-items")
|
|
56
|
+
return selector;
|
|
57
|
+
}
|
|
58
|
+
else if (isPipe(construct)) {
|
|
59
|
+
// Search for pipe name in templates
|
|
60
|
+
return construct.pipeName || construct.name;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// For services and classes, search for the class name
|
|
64
|
+
return construct.name;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Determine file pattern to search based on construct type
|
|
69
|
+
*/
|
|
70
|
+
getFilePattern(construct) {
|
|
71
|
+
if (isComponent(construct) || isDirective(construct) || isPipe(construct)) {
|
|
72
|
+
// Search in HTML templates
|
|
73
|
+
return '*.html';
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// Search in TypeScript files for services/classes
|
|
77
|
+
return '*.ts';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Parse grep output into structured matches
|
|
82
|
+
*/
|
|
83
|
+
parseGrepOutput(output) {
|
|
84
|
+
const matches = [];
|
|
85
|
+
const lines = output.split('\n');
|
|
86
|
+
let currentMatch = null;
|
|
87
|
+
let contextLines = [];
|
|
88
|
+
for (const line of lines) {
|
|
89
|
+
if (!line.trim())
|
|
90
|
+
continue;
|
|
91
|
+
// Check if this is a separator (grep uses -- to separate match groups)
|
|
92
|
+
if (line === '--') {
|
|
93
|
+
if (currentMatch && currentMatch.file && currentMatch.line !== undefined) {
|
|
94
|
+
matches.push({
|
|
95
|
+
file: currentMatch.file,
|
|
96
|
+
line: currentMatch.line,
|
|
97
|
+
content: currentMatch.content || '',
|
|
98
|
+
context: contextLines,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
currentMatch = null;
|
|
102
|
+
contextLines = [];
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
// Parse grep output format: file:linenum:content or file:linenum-content
|
|
106
|
+
const match = line.match(/^([^:]+):(\d+)([-:])(.*)$/);
|
|
107
|
+
if (match) {
|
|
108
|
+
const [, file, lineNum, separator, content] = match;
|
|
109
|
+
if (separator === ':') {
|
|
110
|
+
// This is the actual match line
|
|
111
|
+
if (currentMatch && currentMatch.file && currentMatch.line !== undefined) {
|
|
112
|
+
matches.push({
|
|
113
|
+
file: currentMatch.file,
|
|
114
|
+
line: currentMatch.line,
|
|
115
|
+
content: currentMatch.content || '',
|
|
116
|
+
context: contextLines,
|
|
117
|
+
});
|
|
118
|
+
contextLines = [];
|
|
119
|
+
}
|
|
120
|
+
currentMatch = {
|
|
121
|
+
file,
|
|
122
|
+
line: parseInt(lineNum, 10),
|
|
123
|
+
content,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// This is a context line
|
|
128
|
+
contextLines.push(content);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Don't forget the last match
|
|
133
|
+
if (currentMatch && currentMatch.file && currentMatch.line !== undefined) {
|
|
134
|
+
matches.push({
|
|
135
|
+
file: currentMatch.file,
|
|
136
|
+
line: currentMatch.line,
|
|
137
|
+
content: currentMatch.content || '',
|
|
138
|
+
context: contextLines,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return matches;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Group matches by file
|
|
145
|
+
*/
|
|
146
|
+
groupByFile(matches) {
|
|
147
|
+
const grouped = new Map();
|
|
148
|
+
for (const match of matches) {
|
|
149
|
+
const existing = grouped.get(match.file) || [];
|
|
150
|
+
existing.push(match);
|
|
151
|
+
grouped.set(match.file, existing);
|
|
152
|
+
}
|
|
153
|
+
return grouped;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=usage-finder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-finder.js","sourceRoot":"","sources":["../../src/services/usage-finder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript type definitions for Compodoc's documentation.json format
|
|
3
|
+
*/
|
|
4
|
+
export interface JsDocTag {
|
|
5
|
+
name?: string;
|
|
6
|
+
type?: string;
|
|
7
|
+
tagName: {
|
|
8
|
+
text: string;
|
|
9
|
+
};
|
|
10
|
+
comment?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface MethodArg {
|
|
13
|
+
name: string;
|
|
14
|
+
type: string;
|
|
15
|
+
deprecated: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface ConstructorArg {
|
|
18
|
+
name: string;
|
|
19
|
+
type: string;
|
|
20
|
+
deprecated: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface Constructor {
|
|
23
|
+
name: 'constructor';
|
|
24
|
+
args?: ConstructorArg[];
|
|
25
|
+
line?: number;
|
|
26
|
+
description?: string;
|
|
27
|
+
jsdoctags?: JsDocTag[];
|
|
28
|
+
}
|
|
29
|
+
export interface Method {
|
|
30
|
+
name: string;
|
|
31
|
+
args?: MethodArg[];
|
|
32
|
+
returnType?: string;
|
|
33
|
+
line: number;
|
|
34
|
+
deprecated: boolean;
|
|
35
|
+
deprecationMessage?: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
rawdescription?: string;
|
|
38
|
+
jsdoctags?: JsDocTag[];
|
|
39
|
+
modifierKind?: number[];
|
|
40
|
+
}
|
|
41
|
+
export interface Property {
|
|
42
|
+
name: string;
|
|
43
|
+
type: string;
|
|
44
|
+
defaultValue?: string;
|
|
45
|
+
line: number;
|
|
46
|
+
deprecated: boolean;
|
|
47
|
+
deprecationMessage?: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
rawdescription?: string;
|
|
50
|
+
modifierKind?: number[];
|
|
51
|
+
decorators?: Array<{
|
|
52
|
+
name: string;
|
|
53
|
+
}>;
|
|
54
|
+
}
|
|
55
|
+
export interface InputProperty {
|
|
56
|
+
name: string;
|
|
57
|
+
type: string;
|
|
58
|
+
line: number;
|
|
59
|
+
deprecated: boolean;
|
|
60
|
+
deprecationMessage?: string;
|
|
61
|
+
description?: string;
|
|
62
|
+
rawdescription?: string;
|
|
63
|
+
decorators?: Array<{
|
|
64
|
+
name: string;
|
|
65
|
+
}>;
|
|
66
|
+
}
|
|
67
|
+
export interface OutputProperty {
|
|
68
|
+
name: string;
|
|
69
|
+
type: string;
|
|
70
|
+
line: number;
|
|
71
|
+
deprecated: boolean;
|
|
72
|
+
deprecationMessage?: string;
|
|
73
|
+
description?: string;
|
|
74
|
+
rawdescription?: string;
|
|
75
|
+
decorators?: Array<{
|
|
76
|
+
name: string;
|
|
77
|
+
}>;
|
|
78
|
+
}
|
|
79
|
+
export interface Component {
|
|
80
|
+
name: string;
|
|
81
|
+
id: string;
|
|
82
|
+
file: string;
|
|
83
|
+
type: 'component';
|
|
84
|
+
selector?: string;
|
|
85
|
+
standalone: boolean;
|
|
86
|
+
deprecated: boolean;
|
|
87
|
+
deprecationMessage?: string;
|
|
88
|
+
description?: string;
|
|
89
|
+
rawdescription?: string;
|
|
90
|
+
sourceCode?: string;
|
|
91
|
+
templateUrl?: string[];
|
|
92
|
+
styleUrls?: string[];
|
|
93
|
+
template?: string;
|
|
94
|
+
encapsulation?: string[];
|
|
95
|
+
changeDetection?: string;
|
|
96
|
+
inputsClass?: InputProperty[];
|
|
97
|
+
outputsClass?: OutputProperty[];
|
|
98
|
+
methodsClass?: Method[];
|
|
99
|
+
propertiesClass?: Property[];
|
|
100
|
+
constructorObj?: Constructor;
|
|
101
|
+
implements?: string[];
|
|
102
|
+
extends?: string;
|
|
103
|
+
providers?: Array<{
|
|
104
|
+
name: string;
|
|
105
|
+
}>;
|
|
106
|
+
imports?: Array<{
|
|
107
|
+
name: string;
|
|
108
|
+
}>;
|
|
109
|
+
}
|
|
110
|
+
export interface Injectable {
|
|
111
|
+
name: string;
|
|
112
|
+
id: string;
|
|
113
|
+
file: string;
|
|
114
|
+
type: 'injectable';
|
|
115
|
+
deprecated: boolean;
|
|
116
|
+
deprecationMessage?: string;
|
|
117
|
+
description?: string;
|
|
118
|
+
rawdescription?: string;
|
|
119
|
+
sourceCode?: string;
|
|
120
|
+
properties?: Property[];
|
|
121
|
+
methods?: Method[];
|
|
122
|
+
constructorObj?: Constructor;
|
|
123
|
+
implements?: string[];
|
|
124
|
+
extends?: string;
|
|
125
|
+
}
|
|
126
|
+
export interface Directive {
|
|
127
|
+
name: string;
|
|
128
|
+
id: string;
|
|
129
|
+
file: string;
|
|
130
|
+
type: 'directive';
|
|
131
|
+
selector?: string;
|
|
132
|
+
standalone: boolean;
|
|
133
|
+
deprecated: boolean;
|
|
134
|
+
deprecationMessage?: string;
|
|
135
|
+
description?: string;
|
|
136
|
+
rawdescription?: string;
|
|
137
|
+
sourceCode?: string;
|
|
138
|
+
inputsClass?: InputProperty[];
|
|
139
|
+
outputsClass?: OutputProperty[];
|
|
140
|
+
methodsClass?: Method[];
|
|
141
|
+
propertiesClass?: Property[];
|
|
142
|
+
constructorObj?: Constructor;
|
|
143
|
+
implements?: string[];
|
|
144
|
+
extends?: string;
|
|
145
|
+
providers?: Array<{
|
|
146
|
+
name: string;
|
|
147
|
+
}>;
|
|
148
|
+
}
|
|
149
|
+
export interface Pipe {
|
|
150
|
+
name: string;
|
|
151
|
+
id: string;
|
|
152
|
+
file: string;
|
|
153
|
+
type: 'pipe';
|
|
154
|
+
standalone: boolean;
|
|
155
|
+
deprecated: boolean;
|
|
156
|
+
deprecationMessage?: string;
|
|
157
|
+
description?: string;
|
|
158
|
+
rawdescription?: string;
|
|
159
|
+
sourceCode?: string;
|
|
160
|
+
pipeName?: string;
|
|
161
|
+
pure?: boolean;
|
|
162
|
+
methods?: Method[];
|
|
163
|
+
properties?: Property[];
|
|
164
|
+
}
|
|
165
|
+
export interface Module {
|
|
166
|
+
name: string;
|
|
167
|
+
id: string;
|
|
168
|
+
file: string;
|
|
169
|
+
type: 'module';
|
|
170
|
+
deprecated: boolean;
|
|
171
|
+
deprecationMessage?: string;
|
|
172
|
+
description?: string;
|
|
173
|
+
rawdescription?: string;
|
|
174
|
+
sourceCode?: string;
|
|
175
|
+
declarations?: Array<{
|
|
176
|
+
name: string;
|
|
177
|
+
}>;
|
|
178
|
+
imports?: Array<{
|
|
179
|
+
name: string;
|
|
180
|
+
}>;
|
|
181
|
+
exports?: Array<{
|
|
182
|
+
name: string;
|
|
183
|
+
}>;
|
|
184
|
+
providers?: Array<{
|
|
185
|
+
name: string;
|
|
186
|
+
}>;
|
|
187
|
+
bootstrap?: Array<{
|
|
188
|
+
name: string;
|
|
189
|
+
}>;
|
|
190
|
+
}
|
|
191
|
+
export interface Class {
|
|
192
|
+
name: string;
|
|
193
|
+
id: string;
|
|
194
|
+
file: string;
|
|
195
|
+
type: 'class';
|
|
196
|
+
deprecated: boolean;
|
|
197
|
+
deprecationMessage?: string;
|
|
198
|
+
description?: string;
|
|
199
|
+
rawdescription?: string;
|
|
200
|
+
sourceCode?: string;
|
|
201
|
+
methods?: Method[];
|
|
202
|
+
properties?: Property[];
|
|
203
|
+
constructorObj?: Constructor;
|
|
204
|
+
implements?: string[];
|
|
205
|
+
extends?: string;
|
|
206
|
+
}
|
|
207
|
+
export interface Interface {
|
|
208
|
+
name: string;
|
|
209
|
+
id: string;
|
|
210
|
+
file: string;
|
|
211
|
+
type: 'interface';
|
|
212
|
+
deprecated: boolean;
|
|
213
|
+
deprecationMessage?: string;
|
|
214
|
+
description?: string;
|
|
215
|
+
sourceCode?: string;
|
|
216
|
+
properties?: Property[];
|
|
217
|
+
methods?: Method[];
|
|
218
|
+
}
|
|
219
|
+
export interface Miscellaneous {
|
|
220
|
+
variables?: Array<{
|
|
221
|
+
name: string;
|
|
222
|
+
type: string;
|
|
223
|
+
file: string;
|
|
224
|
+
}>;
|
|
225
|
+
functions?: Array<{
|
|
226
|
+
name: string;
|
|
227
|
+
file: string;
|
|
228
|
+
}>;
|
|
229
|
+
typealiases?: Array<{
|
|
230
|
+
name: string;
|
|
231
|
+
type: string;
|
|
232
|
+
file: string;
|
|
233
|
+
}>;
|
|
234
|
+
enumerations?: Array<{
|
|
235
|
+
name: string;
|
|
236
|
+
file: string;
|
|
237
|
+
}>;
|
|
238
|
+
}
|
|
239
|
+
export interface Coverage {
|
|
240
|
+
count: number;
|
|
241
|
+
status: string;
|
|
242
|
+
files: Array<{
|
|
243
|
+
filePath: string;
|
|
244
|
+
type: string;
|
|
245
|
+
linktype: string;
|
|
246
|
+
name: string;
|
|
247
|
+
coveragePercent: number;
|
|
248
|
+
coverageCount: string;
|
|
249
|
+
status: string;
|
|
250
|
+
}>;
|
|
251
|
+
}
|
|
252
|
+
export interface CompodocData {
|
|
253
|
+
pipes?: Pipe[];
|
|
254
|
+
interfaces?: Interface[];
|
|
255
|
+
injectables?: Injectable[];
|
|
256
|
+
classes?: Class[];
|
|
257
|
+
directives?: Directive[];
|
|
258
|
+
components?: Component[];
|
|
259
|
+
modules?: Module[];
|
|
260
|
+
miscellaneous?: Miscellaneous;
|
|
261
|
+
routes?: unknown[];
|
|
262
|
+
coverage?: Coverage;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Union type for all searchable Angular constructs
|
|
266
|
+
*/
|
|
267
|
+
export type AngularConstruct = Component | Injectable | Directive | Pipe | Module | Class;
|
|
268
|
+
/**
|
|
269
|
+
* Type guard to check if a construct is a Component
|
|
270
|
+
*/
|
|
271
|
+
export declare function isComponent(construct: AngularConstruct): construct is Component;
|
|
272
|
+
/**
|
|
273
|
+
* Type guard to check if a construct is an Injectable
|
|
274
|
+
*/
|
|
275
|
+
export declare function isInjectable(construct: AngularConstruct): construct is Injectable;
|
|
276
|
+
/**
|
|
277
|
+
* Type guard to check if a construct is a Directive
|
|
278
|
+
*/
|
|
279
|
+
export declare function isDirective(construct: AngularConstruct): construct is Directive;
|
|
280
|
+
/**
|
|
281
|
+
* Type guard to check if a construct is a Pipe
|
|
282
|
+
*/
|
|
283
|
+
export declare function isPipe(construct: AngularConstruct): construct is Pipe;
|
|
284
|
+
/**
|
|
285
|
+
* Type guard to check if a construct is a Module
|
|
286
|
+
*/
|
|
287
|
+
export declare function isModule(construct: AngularConstruct): construct is Module;
|
|
288
|
+
/**
|
|
289
|
+
* Type guard to check if a construct is a Class
|
|
290
|
+
*/
|
|
291
|
+
export declare function isClass(construct: AngularConstruct): construct is Class;
|
|
292
|
+
//# sourceMappingURL=compodoc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compodoc.d.ts","sourceRoot":"","sources":["../../src/types/compodoc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,WAAW,CAAC;IAG7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,WAAW,CAAC;IAG7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,WAAW,CAAC;IAG7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IAGf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,WAAW,CAAC;IAG7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1F;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,IAAI,SAAS,CAE/E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,IAAI,UAAU,CAEjF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,IAAI,SAAS,CAE/E;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,IAAI,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,IAAI,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,IAAI,KAAK,CAEvE"}
|