baseguard 1.0.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 (244) hide show
  1. package/.eslintrc.json +25 -0
  2. package/.prettierrc +8 -0
  3. package/README.md +94 -0
  4. package/bin/base.js +494 -0
  5. package/dist/ai/fix-manager.d.ts +67 -0
  6. package/dist/ai/fix-manager.d.ts.map +1 -0
  7. package/dist/ai/fix-manager.js +326 -0
  8. package/dist/ai/fix-manager.js.map +1 -0
  9. package/dist/ai/gemini-analyzer.d.ts +116 -0
  10. package/dist/ai/gemini-analyzer.d.ts.map +1 -0
  11. package/dist/ai/gemini-analyzer.js +572 -0
  12. package/dist/ai/gemini-analyzer.js.map +1 -0
  13. package/dist/ai/index.d.ts +4 -0
  14. package/dist/ai/index.d.ts.map +1 -0
  15. package/dist/ai/index.js +5 -0
  16. package/dist/ai/index.js.map +1 -0
  17. package/dist/ai/jules-implementer.d.ts +115 -0
  18. package/dist/ai/jules-implementer.d.ts.map +1 -0
  19. package/dist/ai/jules-implementer.js +387 -0
  20. package/dist/ai/jules-implementer.js.map +1 -0
  21. package/dist/commands/automation.d.ts +5 -0
  22. package/dist/commands/automation.d.ts.map +1 -0
  23. package/dist/commands/automation.js +305 -0
  24. package/dist/commands/automation.js.map +1 -0
  25. package/dist/commands/check.d.ts +9 -0
  26. package/dist/commands/check.d.ts.map +1 -0
  27. package/dist/commands/check.js +113 -0
  28. package/dist/commands/check.js.map +1 -0
  29. package/dist/commands/config.d.ts +11 -0
  30. package/dist/commands/config.d.ts.map +1 -0
  31. package/dist/commands/config.js +324 -0
  32. package/dist/commands/config.js.map +1 -0
  33. package/dist/commands/fix.d.ts +9 -0
  34. package/dist/commands/fix.d.ts.map +1 -0
  35. package/dist/commands/fix.js +207 -0
  36. package/dist/commands/fix.js.map +1 -0
  37. package/dist/commands/index.d.ts +6 -0
  38. package/dist/commands/index.d.ts.map +1 -0
  39. package/dist/commands/index.js +7 -0
  40. package/dist/commands/index.js.map +1 -0
  41. package/dist/commands/init.d.ts +9 -0
  42. package/dist/commands/init.d.ts.map +1 -0
  43. package/dist/commands/init.js +125 -0
  44. package/dist/commands/init.js.map +1 -0
  45. package/dist/core/api-key-manager.d.ts +83 -0
  46. package/dist/core/api-key-manager.d.ts.map +1 -0
  47. package/dist/core/api-key-manager.js +244 -0
  48. package/dist/core/api-key-manager.js.map +1 -0
  49. package/dist/core/baseguard.d.ts +46 -0
  50. package/dist/core/baseguard.d.ts.map +1 -0
  51. package/dist/core/baseguard.js +132 -0
  52. package/dist/core/baseguard.js.map +1 -0
  53. package/dist/core/baseline-checker.d.ts +63 -0
  54. package/dist/core/baseline-checker.d.ts.map +1 -0
  55. package/dist/core/baseline-checker.js +502 -0
  56. package/dist/core/baseline-checker.js.map +1 -0
  57. package/dist/core/cache-manager.d.ts +88 -0
  58. package/dist/core/cache-manager.d.ts.map +1 -0
  59. package/dist/core/cache-manager.js +213 -0
  60. package/dist/core/cache-manager.js.map +1 -0
  61. package/dist/core/configuration.d.ts +140 -0
  62. package/dist/core/configuration.d.ts.map +1 -0
  63. package/dist/core/configuration.js +474 -0
  64. package/dist/core/configuration.js.map +1 -0
  65. package/dist/core/directory-filter.d.ts +90 -0
  66. package/dist/core/directory-filter.d.ts.map +1 -0
  67. package/dist/core/directory-filter.js +319 -0
  68. package/dist/core/directory-filter.js.map +1 -0
  69. package/dist/core/error-handler.d.ts +110 -0
  70. package/dist/core/error-handler.d.ts.map +1 -0
  71. package/dist/core/error-handler.js +392 -0
  72. package/dist/core/error-handler.js.map +1 -0
  73. package/dist/core/file-processor.d.ts +80 -0
  74. package/dist/core/file-processor.d.ts.map +1 -0
  75. package/dist/core/file-processor.js +259 -0
  76. package/dist/core/file-processor.js.map +1 -0
  77. package/dist/core/gitignore-manager.d.ts +44 -0
  78. package/dist/core/gitignore-manager.d.ts.map +1 -0
  79. package/dist/core/gitignore-manager.js +147 -0
  80. package/dist/core/gitignore-manager.js.map +1 -0
  81. package/dist/core/index.d.ts +13 -0
  82. package/dist/core/index.d.ts.map +1 -0
  83. package/dist/core/index.js +13 -0
  84. package/dist/core/index.js.map +1 -0
  85. package/dist/core/lazy-loader.d.ts +68 -0
  86. package/dist/core/lazy-loader.d.ts.map +1 -0
  87. package/dist/core/lazy-loader.js +260 -0
  88. package/dist/core/lazy-loader.js.map +1 -0
  89. package/dist/core/memory-manager.d.ts +1 -0
  90. package/dist/core/memory-manager.d.ts.map +1 -0
  91. package/dist/core/memory-manager.js +2 -0
  92. package/dist/core/memory-manager.js.map +1 -0
  93. package/dist/core/startup-optimizer.d.ts +45 -0
  94. package/dist/core/startup-optimizer.d.ts.map +1 -0
  95. package/dist/core/startup-optimizer.js +140 -0
  96. package/dist/core/startup-optimizer.js.map +1 -0
  97. package/dist/git/automation-engine.d.ts +58 -0
  98. package/dist/git/automation-engine.d.ts.map +1 -0
  99. package/dist/git/automation-engine.js +318 -0
  100. package/dist/git/automation-engine.js.map +1 -0
  101. package/dist/git/github-manager.d.ts +71 -0
  102. package/dist/git/github-manager.d.ts.map +1 -0
  103. package/dist/git/github-manager.js +226 -0
  104. package/dist/git/github-manager.js.map +1 -0
  105. package/dist/git/hook-manager.d.ts +43 -0
  106. package/dist/git/hook-manager.d.ts.map +1 -0
  107. package/dist/git/hook-manager.js +191 -0
  108. package/dist/git/hook-manager.js.map +1 -0
  109. package/dist/git/index.d.ts +4 -0
  110. package/dist/git/index.d.ts.map +1 -0
  111. package/dist/git/index.js +5 -0
  112. package/dist/git/index.js.map +1 -0
  113. package/dist/index.d.ts +8 -0
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +9 -0
  116. package/dist/index.js.map +1 -0
  117. package/dist/parsers/feature-validator.d.ts +60 -0
  118. package/dist/parsers/feature-validator.d.ts.map +1 -0
  119. package/dist/parsers/feature-validator.js +483 -0
  120. package/dist/parsers/feature-validator.js.map +1 -0
  121. package/dist/parsers/index.d.ts +8 -0
  122. package/dist/parsers/index.d.ts.map +1 -0
  123. package/dist/parsers/index.js +9 -0
  124. package/dist/parsers/index.js.map +1 -0
  125. package/dist/parsers/parser-manager.d.ts +103 -0
  126. package/dist/parsers/parser-manager.d.ts.map +1 -0
  127. package/dist/parsers/parser-manager.js +321 -0
  128. package/dist/parsers/parser-manager.js.map +1 -0
  129. package/dist/parsers/parser.d.ts +23 -0
  130. package/dist/parsers/parser.d.ts.map +1 -0
  131. package/dist/parsers/parser.js +6 -0
  132. package/dist/parsers/parser.js.map +1 -0
  133. package/dist/parsers/react-parser.d.ts +22 -0
  134. package/dist/parsers/react-parser.d.ts.map +1 -0
  135. package/dist/parsers/react-parser.js +307 -0
  136. package/dist/parsers/react-parser.js.map +1 -0
  137. package/dist/parsers/svelte-parser.d.ts +33 -0
  138. package/dist/parsers/svelte-parser.d.ts.map +1 -0
  139. package/dist/parsers/svelte-parser.js +408 -0
  140. package/dist/parsers/svelte-parser.js.map +1 -0
  141. package/dist/parsers/vanilla-parser.d.ts +31 -0
  142. package/dist/parsers/vanilla-parser.d.ts.map +1 -0
  143. package/dist/parsers/vanilla-parser.js +590 -0
  144. package/dist/parsers/vanilla-parser.js.map +1 -0
  145. package/dist/parsers/vue-parser.d.ts +9 -0
  146. package/dist/parsers/vue-parser.d.ts.map +1 -0
  147. package/dist/parsers/vue-parser.js +16 -0
  148. package/dist/parsers/vue-parser.js.map +1 -0
  149. package/dist/terminal-header.d.ts +12 -0
  150. package/dist/terminal-header.js +45 -0
  151. package/dist/types/index.d.ts +83 -0
  152. package/dist/types/index.d.ts.map +1 -0
  153. package/dist/types/index.js +5 -0
  154. package/dist/types/index.js.map +1 -0
  155. package/dist/ui/components.d.ts +133 -0
  156. package/dist/ui/components.d.ts.map +1 -0
  157. package/dist/ui/components.js +482 -0
  158. package/dist/ui/components.js.map +1 -0
  159. package/dist/ui/help.d.ts +11 -0
  160. package/dist/ui/help.d.ts.map +1 -0
  161. package/dist/ui/help.js +161 -0
  162. package/dist/ui/help.js.map +1 -0
  163. package/dist/ui/index.d.ts +5 -0
  164. package/dist/ui/index.d.ts.map +1 -0
  165. package/dist/ui/index.js +5 -0
  166. package/dist/ui/index.js.map +1 -0
  167. package/dist/ui/prompts.d.ts +63 -0
  168. package/dist/ui/prompts.d.ts.map +1 -0
  169. package/dist/ui/prompts.js +611 -0
  170. package/dist/ui/prompts.js.map +1 -0
  171. package/dist/ui/terminal-header.d.ts +13 -0
  172. package/dist/ui/terminal-header.d.ts.map +1 -0
  173. package/dist/ui/terminal-header.js +46 -0
  174. package/dist/ui/terminal-header.js.map +1 -0
  175. package/package.json +80 -0
  176. package/src/ai/__tests__/gemini-analyzer.test.ts +181 -0
  177. package/src/ai/fix-manager.ts +362 -0
  178. package/src/ai/gemini-analyzer.ts +671 -0
  179. package/src/ai/index.ts +4 -0
  180. package/src/ai/jules-implementer.ts +459 -0
  181. package/src/commands/automation.ts +344 -0
  182. package/src/commands/check.ts +299 -0
  183. package/src/commands/config.ts +365 -0
  184. package/src/commands/fix.ts +234 -0
  185. package/src/commands/index.ts +6 -0
  186. package/src/commands/init.ts +142 -0
  187. package/src/commands/status.ts +0 -0
  188. package/src/core/api-key-manager.ts +298 -0
  189. package/src/core/baseguard.ts +742 -0
  190. package/src/core/baseline-checker.ts +563 -0
  191. package/src/core/cache-manager.ts +270 -0
  192. package/src/core/configuration-recovery.ts +676 -0
  193. package/src/core/configuration.ts +559 -0
  194. package/src/core/debug-logger.ts +590 -0
  195. package/src/core/directory-filter.ts +421 -0
  196. package/src/core/error-handler.ts +517 -0
  197. package/src/core/file-processor.ts +331 -0
  198. package/src/core/gitignore-manager.ts +169 -0
  199. package/src/core/graceful-degradation-manager.ts +596 -0
  200. package/src/core/index.ts +13 -0
  201. package/src/core/lazy-loader.ts +307 -0
  202. package/src/core/logger.ts +0 -0
  203. package/src/core/memory-manager.ts +294 -0
  204. package/src/core/startup-optimizer.ts +173 -0
  205. package/src/core/system-error-handler.ts +746 -0
  206. package/src/git/automation-engine.ts +361 -0
  207. package/src/git/github-manager.ts +260 -0
  208. package/src/git/hook-manager.ts +210 -0
  209. package/src/git/index.ts +4 -0
  210. package/src/index.ts +8 -0
  211. package/src/parsers/feature-validator.ts +559 -0
  212. package/src/parsers/index.ts +8 -0
  213. package/src/parsers/parser-manager.ts +419 -0
  214. package/src/parsers/parser.ts +26 -0
  215. package/src/parsers/react-parser-optimized.ts +161 -0
  216. package/src/parsers/react-parser.ts +359 -0
  217. package/src/parsers/svelte-parser.ts +506 -0
  218. package/src/parsers/vanilla-parser.ts +682 -0
  219. package/src/parsers/vue-parser.ts +472 -0
  220. package/src/types/index.ts +92 -0
  221. package/src/ui/components.ts +567 -0
  222. package/src/ui/help.ts +193 -0
  223. package/src/ui/index.ts +4 -0
  224. package/src/ui/prompts.ts +688 -0
  225. package/src/ui/terminal-header.ts +59 -0
  226. package/test-config-commands.js +56 -0
  227. package/test-header-simple.js +33 -0
  228. package/test-terminal-header.js +12 -0
  229. package/test-ui.js +29 -0
  230. package/tests/e2e/baseguard.e2e.test.ts +516 -0
  231. package/tests/e2e/cross-platform.e2e.test.ts +420 -0
  232. package/tests/e2e/git-integration.e2e.test.ts +487 -0
  233. package/tests/fixtures/react-project/package.json +14 -0
  234. package/tests/fixtures/react-project/src/App.css +76 -0
  235. package/tests/fixtures/react-project/src/App.tsx +77 -0
  236. package/tests/fixtures/svelte-project/package.json +11 -0
  237. package/tests/fixtures/svelte-project/src/App.svelte +369 -0
  238. package/tests/fixtures/vanilla-project/index.html +76 -0
  239. package/tests/fixtures/vanilla-project/script.js +331 -0
  240. package/tests/fixtures/vanilla-project/styles.css +359 -0
  241. package/tests/fixtures/vue-project/package.json +12 -0
  242. package/tests/fixtures/vue-project/src/App.vue +216 -0
  243. package/tsconfig.json +36 -0
  244. package/vitest.config.ts +10 -0
@@ -0,0 +1,319 @@
1
+ import { readdir, stat } from 'fs/promises';
2
+ import { join, basename, extname } from 'path';
3
+ import { glob } from 'glob';
4
+ /**
5
+ * Smart directory filtering to skip node_modules and build outputs
6
+ */
7
+ export class DirectoryFilter {
8
+ defaultExcludePatterns = [
9
+ 'node_modules',
10
+ '.git',
11
+ '.svn',
12
+ '.hg',
13
+ 'dist',
14
+ 'build',
15
+ 'out',
16
+ '.next',
17
+ '.nuxt',
18
+ '.output',
19
+ 'coverage',
20
+ '.nyc_output',
21
+ '.cache',
22
+ '.parcel-cache',
23
+ '.vscode',
24
+ '.idea',
25
+ '*.log',
26
+ '*.tmp',
27
+ '*.temp',
28
+ '.DS_Store',
29
+ 'Thumbs.db'
30
+ ];
31
+ defaultIncludeExtensions = [
32
+ '.js',
33
+ '.jsx',
34
+ '.ts',
35
+ '.tsx',
36
+ '.vue',
37
+ '.svelte',
38
+ '.css',
39
+ '.scss',
40
+ '.sass',
41
+ '.less',
42
+ '.html',
43
+ '.htm'
44
+ ];
45
+ excludePatterns;
46
+ includeExtensions;
47
+ maxDepth;
48
+ maxFiles;
49
+ constructor(options = {}) {
50
+ this.excludePatterns = new Set([
51
+ ...this.defaultExcludePatterns,
52
+ ...(options.excludePatterns || [])
53
+ ]);
54
+ this.includeExtensions = new Set(options.includeExtensions || this.defaultIncludeExtensions);
55
+ this.maxDepth = options.maxDepth || 10;
56
+ this.maxFiles = options.maxFiles || 10000;
57
+ }
58
+ /**
59
+ * Find files recursively with smart filtering
60
+ */
61
+ async findFiles(directories, options = {}) {
62
+ const { patterns = [], excludePatterns = [], includeHidden = false } = options;
63
+ const allExcludePatterns = new Set([
64
+ ...this.excludePatterns,
65
+ ...excludePatterns
66
+ ]);
67
+ const files = [];
68
+ const processedDirs = new Set();
69
+ for (const directory of directories) {
70
+ try {
71
+ await this.findFilesRecursive(directory, files, allExcludePatterns, patterns, includeHidden, 0, processedDirs);
72
+ }
73
+ catch (error) {
74
+ console.warn(`Could not scan directory ${directory}: ${error instanceof Error ? error.message : 'Unknown error'}`);
75
+ }
76
+ // Stop if we've found too many files
77
+ if (files.length >= this.maxFiles) {
78
+ console.warn(`Reached maximum file limit (${this.maxFiles}). Some files may be skipped.`);
79
+ break;
80
+ }
81
+ }
82
+ return files.slice(0, this.maxFiles);
83
+ }
84
+ /**
85
+ * Find files using glob patterns (faster for specific patterns)
86
+ */
87
+ async findFilesWithGlob(patterns, options = {}) {
88
+ const { cwd = process.cwd(), excludePatterns = [] } = options;
89
+ try {
90
+ const allFiles = await glob(patterns, {
91
+ cwd,
92
+ ignore: [
93
+ ...Array.from(this.excludePatterns),
94
+ ...excludePatterns
95
+ ],
96
+ absolute: true,
97
+ nodir: true
98
+ });
99
+ // Filter by supported extensions
100
+ return allFiles.filter(file => this.isSupportedFile(file));
101
+ }
102
+ catch (error) {
103
+ console.error(`Glob search failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
104
+ return [];
105
+ }
106
+ }
107
+ /**
108
+ * Check if a file should be processed
109
+ */
110
+ isSupportedFile(filePath) {
111
+ const extension = extname(filePath).toLowerCase();
112
+ return this.includeExtensions.has(extension);
113
+ }
114
+ /**
115
+ * Check if a directory should be excluded
116
+ */
117
+ isExcludedDirectory(dirPath) {
118
+ const dirName = basename(dirPath);
119
+ // Check exact matches
120
+ if (this.excludePatterns.has(dirName)) {
121
+ return true;
122
+ }
123
+ // Check pattern matches
124
+ for (const pattern of this.excludePatterns) {
125
+ if (pattern.includes('*') || pattern.includes('?')) {
126
+ // Simple glob pattern matching
127
+ const regex = new RegExp(pattern
128
+ .replace(/\*/g, '.*')
129
+ .replace(/\?/g, '.'));
130
+ if (regex.test(dirName)) {
131
+ return true;
132
+ }
133
+ }
134
+ }
135
+ return false;
136
+ }
137
+ /**
138
+ * Get file statistics for a directory
139
+ */
140
+ async getDirectoryStats(directoryPath) {
141
+ const stats = {
142
+ totalFiles: 0,
143
+ supportedFiles: 0,
144
+ directories: 0,
145
+ excludedDirectories: 0,
146
+ largestFiles: []
147
+ };
148
+ try {
149
+ await this.collectStats(directoryPath, stats, 0);
150
+ }
151
+ catch (error) {
152
+ console.warn(`Could not collect stats for ${directoryPath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
153
+ }
154
+ // Sort largest files
155
+ stats.largestFiles.sort((a, b) => b.size - a.size);
156
+ stats.largestFiles = stats.largestFiles.slice(0, 10);
157
+ return stats;
158
+ }
159
+ /**
160
+ * Recursive file finding with smart filtering
161
+ */
162
+ async findFilesRecursive(currentPath, results, excludePatterns, includePatterns, includeHidden, currentDepth, processedDirs) {
163
+ // Prevent infinite loops with symlinks
164
+ if (processedDirs.has(currentPath)) {
165
+ return;
166
+ }
167
+ processedDirs.add(currentPath);
168
+ // Check depth limit
169
+ if (currentDepth >= this.maxDepth) {
170
+ return;
171
+ }
172
+ // Check file limit
173
+ if (results.length >= this.maxFiles) {
174
+ return;
175
+ }
176
+ try {
177
+ const entries = await readdir(currentPath);
178
+ for (const entry of entries) {
179
+ // Skip hidden files/directories unless explicitly included
180
+ if (!includeHidden && entry.startsWith('.')) {
181
+ continue;
182
+ }
183
+ const fullPath = join(currentPath, entry);
184
+ try {
185
+ const stats = await stat(fullPath);
186
+ if (stats.isDirectory()) {
187
+ // Check if directory should be excluded
188
+ if (this.isExcludedDirectory(fullPath)) {
189
+ continue;
190
+ }
191
+ // Recurse into directory
192
+ await this.findFilesRecursive(fullPath, results, excludePatterns, includePatterns, includeHidden, currentDepth + 1, processedDirs);
193
+ }
194
+ else if (stats.isFile()) {
195
+ // Check if file matches patterns
196
+ if (this.shouldIncludeFile(fullPath, includePatterns)) {
197
+ results.push(fullPath);
198
+ }
199
+ }
200
+ }
201
+ catch (error) {
202
+ // Skip files/directories that can't be accessed
203
+ continue;
204
+ }
205
+ }
206
+ }
207
+ catch (error) {
208
+ console.warn(`Could not read directory ${currentPath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
209
+ }
210
+ }
211
+ /**
212
+ * Check if file should be included based on patterns
213
+ */
214
+ shouldIncludeFile(filePath, includePatterns) {
215
+ // If no specific patterns, use extension filtering
216
+ if (includePatterns.length === 0) {
217
+ return this.isSupportedFile(filePath);
218
+ }
219
+ // Check against include patterns
220
+ const fileName = basename(filePath);
221
+ return includePatterns.some(pattern => {
222
+ if (pattern.includes('*') || pattern.includes('?')) {
223
+ const regex = new RegExp(pattern
224
+ .replace(/\*/g, '.*')
225
+ .replace(/\?/g, '.'));
226
+ return regex.test(fileName);
227
+ }
228
+ return fileName === pattern;
229
+ });
230
+ }
231
+ /**
232
+ * Collect directory statistics recursively
233
+ */
234
+ async collectStats(currentPath, stats, currentDepth) {
235
+ if (currentDepth >= this.maxDepth) {
236
+ return;
237
+ }
238
+ try {
239
+ const entries = await readdir(currentPath);
240
+ for (const entry of entries) {
241
+ const fullPath = join(currentPath, entry);
242
+ try {
243
+ const fileStat = await stat(fullPath);
244
+ if (fileStat.isDirectory()) {
245
+ stats.directories++;
246
+ if (this.isExcludedDirectory(fullPath)) {
247
+ stats.excludedDirectories++;
248
+ continue;
249
+ }
250
+ await this.collectStats(fullPath, stats, currentDepth + 1);
251
+ }
252
+ else if (fileStat.isFile()) {
253
+ stats.totalFiles++;
254
+ if (this.isSupportedFile(fullPath)) {
255
+ stats.supportedFiles++;
256
+ }
257
+ // Track largest files
258
+ if (stats.largestFiles.length < 100) {
259
+ stats.largestFiles.push({
260
+ path: fullPath,
261
+ size: fileStat.size
262
+ });
263
+ }
264
+ }
265
+ }
266
+ catch (error) {
267
+ // Skip files/directories that can't be accessed
268
+ continue;
269
+ }
270
+ }
271
+ }
272
+ catch (error) {
273
+ // Skip directories that can't be read
274
+ }
275
+ }
276
+ /**
277
+ * Get supported extensions
278
+ */
279
+ getSupportedExtensions() {
280
+ return Array.from(this.includeExtensions);
281
+ }
282
+ /**
283
+ * Get exclude patterns
284
+ */
285
+ getExcludePatterns() {
286
+ return Array.from(this.excludePatterns);
287
+ }
288
+ /**
289
+ * Add custom exclude pattern
290
+ */
291
+ addExcludePattern(pattern) {
292
+ this.excludePatterns.add(pattern);
293
+ }
294
+ /**
295
+ * Remove exclude pattern
296
+ */
297
+ removeExcludePattern(pattern) {
298
+ this.excludePatterns.delete(pattern);
299
+ }
300
+ /**
301
+ * Add supported extension
302
+ */
303
+ addSupportedExtension(extension) {
304
+ if (!extension.startsWith('.')) {
305
+ extension = '.' + extension;
306
+ }
307
+ this.includeExtensions.add(extension.toLowerCase());
308
+ }
309
+ /**
310
+ * Remove supported extension
311
+ */
312
+ removeSupportedExtension(extension) {
313
+ if (!extension.startsWith('.')) {
314
+ extension = '.' + extension;
315
+ }
316
+ this.includeExtensions.delete(extension.toLowerCase());
317
+ }
318
+ }
319
+ //# sourceMappingURL=directory-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-filter.js","sourceRoot":"","sources":["../../src/core/directory-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B;;GAEG;AACH,MAAM,OAAO,eAAe;IACT,sBAAsB,GAAa;QAClD,cAAc;QACd,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,SAAS;QACT,UAAU;QACV,aAAa;QACb,QAAQ;QACR,eAAe;QACf,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,WAAW;QACX,WAAW;KACZ,CAAC;IAEe,wBAAwB,GAAa;QACpD,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;KACP,CAAC;IAEe,eAAe,CAAc;IAC7B,iBAAiB,CAAc;IAC/B,QAAQ,CAAS;IACjB,QAAQ,CAAS;IAElC,YAAY,UAKR,EAAE;QACJ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC;YAC7B,GAAG,IAAI,CAAC,sBAAsB;YAC9B,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAC9B,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,wBAAwB,CAC3D,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,WAAqB,EACrB,UAII,EAAE;QAEN,MAAM,EACJ,QAAQ,GAAG,EAAE,EACb,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,KAAK,EACtB,GAAG,OAAO,CAAC;QAEZ,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;YACjC,GAAG,IAAI,CAAC,eAAe;YACvB,GAAG,eAAe;SACnB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAExC,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,kBAAkB,CAC3B,SAAS,EACT,KAAK,EACL,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,CAAC,EACD,aAAa,CACd,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,SAAS,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACrH,CAAC;YAED,qCAAqC;YACrC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,QAAQ,+BAA+B,CAAC,CAAC;gBAC1F,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,QAAkB,EAClB,UAGI,EAAE;QAEN,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;gBACpC,GAAG;gBACH,MAAM,EAAE;oBACN,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;oBACnC,GAAG,eAAe;iBACnB;gBACD,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,iCAAiC;YACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACjG,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAAgB;QAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAe;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAElC,sBAAsB;QACtB,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnD,+BAA+B;gBAC/B,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,OAAO;qBACJ,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;qBACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACvB,CAAC;gBACF,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,aAAqB;QAO3C,MAAM,KAAK,GAAG;YACZ,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,CAAC;YACd,mBAAmB,EAAE,CAAC;YACtB,YAAY,EAAE,EAA2C;SAC1D,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,+BAA+B,aAAa,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5H,CAAC;QAED,qBAAqB;QACrB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,WAAmB,EACnB,OAAiB,EACjB,eAA4B,EAC5B,eAAyB,EACzB,aAAsB,EACtB,YAAoB,EACpB,aAA0B;QAE1B,uCAAuC;QACvC,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/B,oBAAoB;QACpB,IAAI,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;YAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,2DAA2D;gBAC3D,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAE1C,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAEnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,wCAAwC;wBACxC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACvC,SAAS;wBACX,CAAC;wBAED,yBAAyB;wBACzB,MAAM,IAAI,CAAC,kBAAkB,CAC3B,QAAQ,EACR,OAAO,EACP,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,GAAG,CAAC,EAChB,aAAa,CACd,CAAC;oBACJ,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;wBAC1B,iCAAiC;wBACjC,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;4BACtD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,gDAAgD;oBAChD,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,WAAW,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,QAAgB,EAAE,eAAyB;QACnE,mDAAmD;QACnD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,iCAAiC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,OAAO;qBACJ,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;qBACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACvB,CAAC;gBACF,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,QAAQ,KAAK,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,WAAmB,EACnB,KAAU,EACV,YAAoB;QAEpB,IAAI,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;YAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAE1C,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAEtC,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;wBAC3B,KAAK,CAAC,WAAW,EAAE,CAAC;wBAEpB,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACvC,KAAK,CAAC,mBAAmB,EAAE,CAAC;4BAC5B,SAAS;wBACX,CAAC;wBAED,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;oBAC7D,CAAC;yBAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;wBAC7B,KAAK,CAAC,UAAU,EAAE,CAAC;wBAEnB,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACnC,KAAK,CAAC,cAAc,EAAE,CAAC;wBACzB,CAAC;wBAED,sBAAsB;wBACtB,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;4BACpC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;gCACtB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,QAAQ,CAAC,IAAI;6BACpB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,gDAAgD;oBAChD,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAe;QAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,OAAe;QAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,SAAiB;QACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,SAAiB;QACxC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Error types for different API operations
3
+ */
4
+ export declare enum ErrorType {
5
+ NETWORK = "network",
6
+ AUTHENTICATION = "authentication",
7
+ RATE_LIMIT = "rate_limit",
8
+ QUOTA_EXCEEDED = "quota_exceeded",
9
+ INVALID_REQUEST = "invalid_request",
10
+ SERVER_ERROR = "server_error",
11
+ TIMEOUT = "timeout",
12
+ CONFIGURATION = "configuration",
13
+ VALIDATION = "validation",
14
+ UNKNOWN = "unknown"
15
+ }
16
+ /**
17
+ * Retry configuration for different error types
18
+ */
19
+ export interface RetryConfig {
20
+ maxRetries: number;
21
+ baseDelay: number;
22
+ maxDelay: number;
23
+ backoffMultiplier: number;
24
+ retryableErrors: ErrorType[];
25
+ }
26
+ /**
27
+ * Default retry configuration
28
+ */
29
+ export declare const DEFAULT_RETRY_CONFIG: RetryConfig;
30
+ /**
31
+ * API operation error with context and recovery suggestions
32
+ */
33
+ export declare class APIError extends Error {
34
+ readonly type: ErrorType;
35
+ readonly statusCode?: number;
36
+ readonly retryAfter?: number;
37
+ readonly quotaReset?: Date;
38
+ readonly suggestions: string[];
39
+ readonly context: Record<string, any>;
40
+ constructor(message: string, type: ErrorType, options?: {
41
+ statusCode?: number;
42
+ retryAfter?: number;
43
+ quotaReset?: Date;
44
+ suggestions?: string[];
45
+ context?: Record<string, any>;
46
+ cause?: Error;
47
+ });
48
+ }
49
+ /**
50
+ * Comprehensive error handler for API operations
51
+ */
52
+ export declare class ErrorHandler {
53
+ /**
54
+ * Handle and classify API errors
55
+ */
56
+ static handleAPIError(error: any, context?: Record<string, any>): APIError;
57
+ /**
58
+ * Handle HTTP status code errors
59
+ */
60
+ private static handleHTTPError;
61
+ /**
62
+ * Check if error is a network/connection error
63
+ */
64
+ private static isNetworkError;
65
+ /**
66
+ * Check if error is a timeout error
67
+ */
68
+ private static isTimeoutError;
69
+ /**
70
+ * Check if error is a configuration error
71
+ */
72
+ private static isConfigurationError;
73
+ /**
74
+ * Parse retry-after header
75
+ */
76
+ private static parseRetryAfter;
77
+ /**
78
+ * Parse quota reset time from headers
79
+ */
80
+ private static parseQuotaReset;
81
+ /**
82
+ * Retry operation with exponential backoff
83
+ */
84
+ static withRetry<T>(operation: () => Promise<T>, config?: Partial<RetryConfig>): Promise<T>;
85
+ /**
86
+ * Display error to user with helpful information
87
+ */
88
+ static displayError(error: APIError): void;
89
+ /**
90
+ * Get fallback mode suggestions when APIs are unavailable
91
+ */
92
+ static getFallbackSuggestions(errorType: ErrorType): string[];
93
+ /**
94
+ * Check if operation should continue in fallback mode
95
+ */
96
+ static shouldUseFallbackMode(error: APIError): boolean;
97
+ /**
98
+ * Sleep for specified milliseconds
99
+ */
100
+ private static sleep;
101
+ /**
102
+ * Validate API response structure
103
+ */
104
+ static validateAPIResponse(response: any, expectedFields: string[]): void;
105
+ /**
106
+ * Create context object for error reporting
107
+ */
108
+ static createContext(operation: string, params?: Record<string, any>): Record<string, any>;
109
+ }
110
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/core/error-handler.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,SAAS;IACnB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,SAAS,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAWlC,CAAC;AAEF;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,SAAgB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClC,SAAgB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtC,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAG3C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,IAAI,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;KACV;CAeT;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,QAAQ;IA8E9E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA0G9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAW7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAQnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAS9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAS9B;;OAEG;WACU,SAAS,CAAC,CAAC,EACtB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAChC,OAAO,CAAC,CAAC,CAAC;IAsCb;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IA6B1C;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE;IAkC7D;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAUtD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,KAAK;IAIpB;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAgCzE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAQ3F"}