@vibecheckai/cli 2.5.7 → 2.7.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 (159) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundles/vibecheck-core.js +20 -20
  3. package/dist/commands/secrets-allowlist.js +4 -4
  4. package/dist/commands/secrets-allowlist.js.map +1 -1
  5. package/dist/commands/ship-consolidated.js +193 -193
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/init/ci-generator.d.ts +2 -2
  10. package/dist/init/hooks-installer.d.ts +2 -2
  11. package/dist/init/index.d.ts +1 -1
  12. package/dist/init/index.d.ts.map +1 -1
  13. package/dist/init/index.js +2 -2
  14. package/dist/init/index.js.map +1 -1
  15. package/dist/init/templates.d.ts +6 -285
  16. package/dist/init/templates.d.ts.map +1 -1
  17. package/dist/init/templates.js +2 -3
  18. package/dist/init/templates.js.map +1 -1
  19. package/dist/runtime/json-output.d.ts +2 -2
  20. package/package.json +11 -3
  21. package/dist/bundles/guardrail-core.js +0 -25799
  22. package/dist/bundles/guardrail-security.js +0 -208687
  23. package/dist/bundles/guardrail-ship.js +0 -2318
  24. package/dist/commands/autopilot-decision.d.ts +0 -24
  25. package/dist/commands/autopilot-decision.d.ts.map +0 -1
  26. package/dist/commands/autopilot-decision.js +0 -304
  27. package/dist/commands/autopilot-decision.js.map +0 -1
  28. package/dist/commands/autopilot.d.ts +0 -33
  29. package/dist/commands/autopilot.d.ts.map +0 -1
  30. package/dist/commands/autopilot.js +0 -1539
  31. package/dist/commands/autopilot.js.map +0 -1
  32. package/dist/commands/context.d.ts +0 -8
  33. package/dist/commands/context.d.ts.map +0 -1
  34. package/dist/commands/context.js +0 -340
  35. package/dist/commands/context.js.map +0 -1
  36. package/dist/commands/debug.d.ts +0 -78
  37. package/dist/commands/debug.d.ts.map +0 -1
  38. package/dist/commands/debug.js +0 -381
  39. package/dist/commands/debug.js.map +0 -1
  40. package/dist/commands/preview.d.ts +0 -54
  41. package/dist/commands/preview.d.ts.map +0 -1
  42. package/dist/commands/preview.js +0 -352
  43. package/dist/commands/preview.js.map +0 -1
  44. package/dist/commands/quality/check.d.ts +0 -31
  45. package/dist/commands/quality/check.d.ts.map +0 -1
  46. package/dist/commands/quality/check.js +0 -242
  47. package/dist/commands/quality/check.js.map +0 -1
  48. package/dist/commands/quality/index.d.ts +0 -8
  49. package/dist/commands/quality/index.d.ts.map +0 -1
  50. package/dist/commands/quality/index.js +0 -14
  51. package/dist/commands/quality/index.js.map +0 -1
  52. package/dist/commands/quality/setup-quality.d.ts +0 -23
  53. package/dist/commands/quality/setup-quality.d.ts.map +0 -1
  54. package/dist/commands/quality/setup-quality.js +0 -452
  55. package/dist/commands/quality/setup-quality.js.map +0 -1
  56. package/dist/commands/quality/tidy.d.ts +0 -41
  57. package/dist/commands/quality/tidy.d.ts.map +0 -1
  58. package/dist/commands/quality/tidy.js +0 -466
  59. package/dist/commands/quality/tidy.js.map +0 -1
  60. package/dist/commands/quality/utils.d.ts +0 -73
  61. package/dist/commands/quality/utils.d.ts.map +0 -1
  62. package/dist/commands/quality/utils.js +0 -158
  63. package/dist/commands/quality/utils.js.map +0 -1
  64. package/dist/fix/analytics.d.ts +0 -121
  65. package/dist/fix/analytics.d.ts.map +0 -1
  66. package/dist/fix/analytics.js +0 -289
  67. package/dist/fix/analytics.js.map +0 -1
  68. package/dist/fix/audit.d.ts +0 -61
  69. package/dist/fix/audit.d.ts.map +0 -1
  70. package/dist/fix/audit.js +0 -149
  71. package/dist/fix/audit.js.map +0 -1
  72. package/dist/fix/config.d.ts +0 -78
  73. package/dist/fix/config.d.ts.map +0 -1
  74. package/dist/fix/config.js +0 -200
  75. package/dist/fix/config.js.map +0 -1
  76. package/dist/fix/impact.d.ts +0 -74
  77. package/dist/fix/impact.d.ts.map +0 -1
  78. package/dist/fix/impact.js +0 -281
  79. package/dist/fix/impact.js.map +0 -1
  80. package/dist/fix/learning.d.ts +0 -109
  81. package/dist/fix/learning.d.ts.map +0 -1
  82. package/dist/fix/learning.js +0 -296
  83. package/dist/fix/learning.js.map +0 -1
  84. package/dist/fix/metrics.d.ts +0 -106
  85. package/dist/fix/metrics.d.ts.map +0 -1
  86. package/dist/fix/metrics.js +0 -138
  87. package/dist/fix/metrics.js.map +0 -1
  88. package/dist/fix/parallel.d.ts +0 -69
  89. package/dist/fix/parallel.d.ts.map +0 -1
  90. package/dist/fix/parallel.js +0 -203
  91. package/dist/fix/parallel.js.map +0 -1
  92. package/dist/fix/report.d.ts +0 -40
  93. package/dist/fix/report.d.ts.map +0 -1
  94. package/dist/fix/report.js +0 -212
  95. package/dist/fix/report.js.map +0 -1
  96. package/dist/fix/strategy.d.ts +0 -53
  97. package/dist/fix/strategy.d.ts.map +0 -1
  98. package/dist/fix/strategy.js +0 -143
  99. package/dist/fix/strategy.js.map +0 -1
  100. package/dist/fix/templates.d.ts +0 -58
  101. package/dist/fix/templates.d.ts.map +0 -1
  102. package/dist/fix/templates.js +0 -259
  103. package/dist/fix/templates.js.map +0 -1
  104. package/dist/fix/testing.d.ts +0 -68
  105. package/dist/fix/testing.d.ts.map +0 -1
  106. package/dist/fix/testing.js +0 -245
  107. package/dist/fix/testing.js.map +0 -1
  108. package/dist/fix/validation.d.ts +0 -71
  109. package/dist/fix/validation.d.ts.map +0 -1
  110. package/dist/fix/validation.js +0 -267
  111. package/dist/fix/validation.js.map +0 -1
  112. package/dist/fix/visualization.d.ts +0 -73
  113. package/dist/fix/visualization.d.ts.map +0 -1
  114. package/dist/fix/visualization.js +0 -243
  115. package/dist/fix/visualization.js.map +0 -1
  116. package/dist/runtime/cli-errors.d.ts +0 -38
  117. package/dist/runtime/cli-errors.d.ts.map +0 -1
  118. package/dist/runtime/cli-errors.js +0 -354
  119. package/dist/runtime/cli-errors.js.map +0 -1
  120. package/dist/runtime/owner-mode.d.ts +0 -48
  121. package/dist/runtime/owner-mode.d.ts.map +0 -1
  122. package/dist/runtime/owner-mode.js +0 -284
  123. package/dist/runtime/owner-mode.js.map +0 -1
  124. package/dist/scanner/index.d.ts +0 -8
  125. package/dist/scanner/index.d.ts.map +0 -1
  126. package/dist/scanner/index.js +0 -15
  127. package/dist/scanner/index.js.map +0 -1
  128. package/dist/scanner/placeholder-detector.d.ts +0 -56
  129. package/dist/scanner/placeholder-detector.d.ts.map +0 -1
  130. package/dist/scanner/placeholder-detector.js +0 -220
  131. package/dist/scanner/placeholder-detector.js.map +0 -1
  132. package/dist/scanner/route-detector.d.ts +0 -100
  133. package/dist/scanner/route-detector.d.ts.map +0 -1
  134. package/dist/scanner/route-detector.js +0 -455
  135. package/dist/scanner/route-detector.js.map +0 -1
  136. package/dist/scanner/scoring.d.ts +0 -67
  137. package/dist/scanner/scoring.d.ts.map +0 -1
  138. package/dist/scanner/scoring.js +0 -284
  139. package/dist/scanner/scoring.js.map +0 -1
  140. package/dist/ship-baseline.d.ts +0 -56
  141. package/dist/ship-baseline.d.ts.map +0 -1
  142. package/dist/ship-baseline.js +0 -194
  143. package/dist/ship-baseline.js.map +0 -1
  144. package/dist/ship-config.d.ts +0 -91
  145. package/dist/ship-config.d.ts.map +0 -1
  146. package/dist/ship-config.js +0 -133
  147. package/dist/ship-config.js.map +0 -1
  148. package/dist/ship-data-loader.d.ts +0 -70
  149. package/dist/ship-data-loader.d.ts.map +0 -1
  150. package/dist/ship-data-loader.js +0 -301
  151. package/dist/ship-data-loader.js.map +0 -1
  152. package/dist/utils/ai-helpers.d.ts +0 -72
  153. package/dist/utils/ai-helpers.d.ts.map +0 -1
  154. package/dist/utils/ai-helpers.js +0 -339
  155. package/dist/utils/ai-helpers.js.map +0 -1
  156. package/dist/utils/validation.d.ts +0 -34
  157. package/dist/utils/validation.d.ts.map +0 -1
  158. package/dist/utils/validation.js +0 -160
  159. package/dist/utils/validation.js.map +0 -1
@@ -1,281 +0,0 @@
1
- "use strict";
2
- /**
3
- * Fix Impact Analysis
4
- *
5
- * Analyzes the impact of fixes before application, including:
6
- * - Dependency analysis
7
- * - File dependency graphs
8
- * - Risk assessment
9
- * - Impact scope
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ImpactAnalyzer = void 0;
13
- const fs_1 = require("fs");
14
- const path_1 = require("path");
15
- class ImpactAnalyzer {
16
- constructor(projectPath) {
17
- this.projectPath = projectPath;
18
- }
19
- /**
20
- * Analyze impact of fix packs
21
- */
22
- async analyzeImpact(packs) {
23
- const packAnalyses = [];
24
- const allDependencies = [];
25
- const allFilesAffected = new Set();
26
- const allBreakingChanges = [];
27
- const allWarnings = [];
28
- for (const pack of packs) {
29
- const packAnalysis = await this.analyzePack(pack);
30
- packAnalyses.push(packAnalysis);
31
- allFilesAffected.add(...packAnalysis.filesAffected);
32
- allBreakingChanges.push(...packAnalysis.breakingChanges);
33
- allWarnings.push(...packAnalysis.warnings);
34
- // Build dependency graph
35
- for (const fix of pack.fixes) {
36
- const deps = this.analyzeFixDependencies(fix, packs);
37
- allDependencies.push(deps);
38
- }
39
- }
40
- const riskLevel = this.calculateOverallRisk(packAnalyses);
41
- const estimatedLinesChanged = packs.reduce((sum, p) => sum + p.fixes.length, 0);
42
- return {
43
- packs: packAnalyses,
44
- dependencies: allDependencies,
45
- riskLevel,
46
- estimatedFilesAffected: allFilesAffected.size,
47
- estimatedLinesChanged,
48
- breakingChanges: Array.from(new Set(allBreakingChanges)),
49
- warnings: Array.from(new Set(allWarnings)),
50
- };
51
- }
52
- /**
53
- * Analyze impact of a single pack
54
- */
55
- async analyzePack(pack) {
56
- const filesAffected = new Set(pack.impactedFiles);
57
- const breakingChanges = [];
58
- const warnings = [];
59
- const dependencies = [];
60
- // Analyze each fix in the pack
61
- for (const fix of pack.fixes) {
62
- // Check for breaking changes
63
- if (this.isBreakingChange(fix)) {
64
- breakingChanges.push(`Breaking change in ${fix.file}:${fix.line}`);
65
- }
66
- // Check for warnings
67
- const fixWarnings = this.analyzeFixWarnings(fix);
68
- warnings.push(...fixWarnings);
69
- // Check dependencies
70
- const fixDeps = this.detectFileDependencies(fix.file);
71
- dependencies.push(...fixDeps);
72
- }
73
- // Calculate estimated impact score (0-1)
74
- const estimatedImpact = this.calculateImpactScore(pack, breakingChanges.length, warnings.length);
75
- return {
76
- packId: pack.id,
77
- risk: pack.estimatedRisk,
78
- filesAffected: Array.from(filesAffected),
79
- dependencies: Array.from(new Set(dependencies)),
80
- breakingChanges,
81
- warnings,
82
- estimatedImpact,
83
- };
84
- }
85
- /**
86
- * Analyze fix dependencies
87
- */
88
- analyzeFixDependencies(fix, allPacks) {
89
- const dependsOn = [];
90
- const blocks = [];
91
- // Find fixes that modify the same file (potential conflicts)
92
- for (const pack of allPacks) {
93
- for (const otherFix of pack.fixes) {
94
- if (otherFix.file === fix.file &&
95
- otherFix.line === fix.line &&
96
- otherFix.findingId !== fix.findingId) {
97
- blocks.push(otherFix.findingId);
98
- }
99
- }
100
- }
101
- // Detect import dependencies
102
- const fileDeps = this.detectFileDependencies(fix.file);
103
- for (const dep of fileDeps) {
104
- // Check if any fix modifies this dependency
105
- for (const pack of allPacks) {
106
- for (const otherFix of pack.fixes) {
107
- if (otherFix.file === dep && otherFix.findingId !== fix.findingId) {
108
- if (!dependsOn.includes(otherFix.findingId)) {
109
- dependsOn.push(otherFix.findingId);
110
- }
111
- }
112
- }
113
- }
114
- }
115
- return {
116
- fixId: fix.findingId,
117
- dependsOn,
118
- blocks,
119
- };
120
- }
121
- /**
122
- * Detect file dependencies (imports, requires, etc.)
123
- */
124
- detectFileDependencies(filePath) {
125
- const fullPath = (0, path_1.join)(this.projectPath, filePath);
126
- if (!(0, fs_1.existsSync)(fullPath)) {
127
- return [];
128
- }
129
- try {
130
- const content = (0, fs_1.readFileSync)(fullPath, 'utf-8');
131
- const dependencies = [];
132
- // Match import/require statements
133
- const importRegex = /(?:import|require)\(?['"]([^'"]+)['"]\)?/g;
134
- let match;
135
- while ((match = importRegex.exec(content)) !== null) {
136
- const importPath = match[1];
137
- // Resolve relative imports
138
- if (importPath.startsWith('.')) {
139
- const resolved = (0, path_1.join)((0, path_1.dirname)(filePath), importPath).replace(/\\/g, '/');
140
- dependencies.push(resolved);
141
- }
142
- }
143
- return dependencies;
144
- }
145
- catch {
146
- return [];
147
- }
148
- }
149
- /**
150
- * Check if a fix is a breaking change
151
- */
152
- isBreakingChange(fix) {
153
- // API changes (function signatures, exports, etc.)
154
- if (fix.explanation.toLowerCase().includes('api') ||
155
- fix.explanation.toLowerCase().includes('signature') ||
156
- fix.explanation.toLowerCase().includes('export')) {
157
- return true;
158
- }
159
- // Dependency upgrades can be breaking
160
- if (fix.file === 'package.json' &&
161
- fix.explanation.toLowerCase().includes('upgrade')) {
162
- // Major version upgrades are breaking
163
- const majorVersionMatch = fix.newCode.match(/[\^~]?(\d+)\./);
164
- const oldMajorMatch = fix.oldCode.match(/[\^~]?(\d+)\./);
165
- if (majorVersionMatch && oldMajorMatch) {
166
- const newMajor = parseInt(majorVersionMatch[1], 10);
167
- const oldMajor = parseInt(oldMajorMatch[1], 10);
168
- if (newMajor > oldMajor) {
169
- return true;
170
- }
171
- }
172
- }
173
- return false;
174
- }
175
- /**
176
- * Analyze warnings for a fix
177
- */
178
- analyzeFixWarnings(fix) {
179
- const warnings = [];
180
- // Low confidence warnings
181
- if (fix.confidence < 0.7) {
182
- warnings.push(`Low confidence fix (${(fix.confidence * 100).toFixed(0)}%)`);
183
- }
184
- // High risk warnings
185
- if (fix.risk === 'high') {
186
- warnings.push('High risk fix - review carefully');
187
- }
188
- // Multi-line changes might be complex
189
- if (fix.newCode.split('\n').length > fix.oldCode.split('\n').length + 5) {
190
- warnings.push('Large code change - verify manually');
191
- }
192
- return warnings;
193
- }
194
- /**
195
- * Calculate impact score (0-1)
196
- */
197
- calculateImpactScore(pack, breakingChangesCount, warningsCount) {
198
- let score = 0;
199
- // Base score from risk level
200
- const riskScores = { low: 0.2, medium: 0.5, high: 0.8 };
201
- score += riskScores[pack.estimatedRisk] * 0.4;
202
- // Files affected (more files = higher impact)
203
- const filesScore = Math.min(pack.impactedFiles.length / 10, 1) * 0.3;
204
- score += filesScore;
205
- // Breaking changes
206
- score += Math.min(breakingChangesCount * 0.1, 0.2);
207
- // Warnings
208
- score += Math.min(warningsCount * 0.05, 0.1);
209
- return Math.min(score, 1);
210
- }
211
- /**
212
- * Calculate overall risk level
213
- */
214
- calculateOverallRisk(packAnalyses) {
215
- if (packAnalyses.length === 0)
216
- return 'low';
217
- const highRiskCount = packAnalyses.filter((p) => p.risk === 'high').length;
218
- const mediumRiskCount = packAnalyses.filter((p) => p.risk === 'medium').length;
219
- if (highRiskCount > packAnalyses.length * 0.3)
220
- return 'high';
221
- if (mediumRiskCount > packAnalyses.length * 0.5)
222
- return 'medium';
223
- return 'low';
224
- }
225
- /**
226
- * Get optimal application order based on dependencies
227
- */
228
- getApplicationOrder(packs, dependencies) {
229
- // Simple topological sort
230
- const ordered = [];
231
- const visited = new Set();
232
- const visiting = new Set();
233
- const packMap = new Map(packs.map((p) => [p.id, p]));
234
- const depMap = new Map();
235
- for (const dep of dependencies) {
236
- if (!depMap.has(dep.fixId)) {
237
- depMap.set(dep.fixId, []);
238
- }
239
- depMap.get(dep.fixId).push(dep);
240
- }
241
- const visit = (packId) => {
242
- if (visiting.has(packId)) {
243
- // Circular dependency detected
244
- return;
245
- }
246
- if (visited.has(packId)) {
247
- return;
248
- }
249
- visiting.add(packId);
250
- const pack = packMap.get(packId);
251
- if (pack) {
252
- // Visit dependencies first
253
- for (const fix of pack.fixes) {
254
- const deps = depMap.get(fix.findingId) || [];
255
- for (const dep of deps) {
256
- for (const depFixId of dep.dependsOn) {
257
- // Find pack containing this fix
258
- for (const otherPack of packs) {
259
- if (otherPack.fixes.some((f) => f.findingId === depFixId)) {
260
- visit(otherPack.id);
261
- break;
262
- }
263
- }
264
- }
265
- }
266
- }
267
- visiting.delete(packId);
268
- visited.add(packId);
269
- ordered.push(pack);
270
- }
271
- };
272
- for (const pack of packs) {
273
- if (!visited.has(pack.id)) {
274
- visit(pack.id);
275
- }
276
- }
277
- return ordered;
278
- }
279
- }
280
- exports.ImpactAnalyzer = ImpactAnalyzer;
281
- //# sourceMappingURL=impact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/fix/impact.ts"],"names":[],"mappings":"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"}
@@ -1,109 +0,0 @@
1
- /**
2
- * Fix Learning System
3
- *
4
- * Learns from successful fixes to improve future fix generation.
5
- * Tracks fix success rates, patterns, and user feedback.
6
- */
7
- import { Fix, Finding } from './engine';
8
- import { ApplyResult } from './applicator';
9
- export interface FixLearningRecord {
10
- id: string;
11
- timestamp: string;
12
- finding: Finding;
13
- fix: Fix;
14
- outcome: 'success' | 'failure' | 'partial';
15
- userFeedback?: 'positive' | 'negative' | 'neutral';
16
- verificationPassed: boolean;
17
- rollbackOccurred: boolean;
18
- confidence: number;
19
- actualConfidence: number;
20
- pattern: string;
21
- context: {
22
- fileType: string;
23
- language: string;
24
- projectType?: string;
25
- };
26
- }
27
- export interface LearningStatistics {
28
- totalFixes: number;
29
- successfulFixes: number;
30
- failedFixes: number;
31
- successRate: number;
32
- averageConfidence: number;
33
- averageActualConfidence: number;
34
- confidenceAccuracy: number;
35
- patterns: Map<string, PatternStatistics>;
36
- byCategory: Map<string, CategoryStatistics>;
37
- }
38
- export interface PatternStatistics {
39
- pattern: string;
40
- count: number;
41
- successRate: number;
42
- averageConfidence: number;
43
- averageActualConfidence: number;
44
- }
45
- export interface CategoryStatistics {
46
- category: string;
47
- count: number;
48
- successRate: number;
49
- averageConfidence: number;
50
- }
51
- export declare class FixLearningSystem {
52
- private projectPath;
53
- private learningDir;
54
- private learningFile;
55
- constructor(projectPath: string);
56
- /**
57
- * Record a fix outcome for learning
58
- */
59
- recordOutcome(finding: Finding, fix: Fix, applyResult: ApplyResult, verificationPassed: boolean, rollbackOccurred: boolean, userFeedback?: 'positive' | 'negative' | 'neutral'): void;
60
- /**
61
- * Get learning statistics
62
- */
63
- getStatistics(): LearningStatistics;
64
- /**
65
- * Adjust confidence based on learning
66
- */
67
- adjustConfidence(fix: Fix, finding: Finding): number;
68
- /**
69
- * Get successful patterns for a category
70
- */
71
- getSuccessfulPatterns(category: string): string[];
72
- /**
73
- * Load all learning records
74
- */
75
- private loadRecords;
76
- /**
77
- * Calculate actual confidence based on outcome
78
- */
79
- private calculateActualConfidence;
80
- /**
81
- * Extract pattern from fix
82
- */
83
- private extractPattern;
84
- /**
85
- * Classify code type
86
- */
87
- private classifyCode;
88
- /**
89
- * Determine operation type
90
- */
91
- private determineOperation;
92
- /**
93
- * Get file type
94
- */
95
- private getFileType;
96
- /**
97
- * Detect programming language
98
- */
99
- private detectLanguage;
100
- /**
101
- * Detect project type
102
- */
103
- private detectProjectType;
104
- /**
105
- * Empty statistics structure
106
- */
107
- private emptyStatistics;
108
- }
109
- //# sourceMappingURL=learning.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"learning.d.ts","sourceRoot":"","sources":["../../src/fix/learning.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACnD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACzC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;gBAEjB,WAAW,EAAE,MAAM;IAM/B;;OAEG;IACH,aAAa,CACX,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,OAAO,EAC3B,gBAAgB,EAAE,OAAO,EACzB,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GACjD,IAAI;IA2CP;;OAEG;IACH,aAAa,IAAI,kBAAkB;IAuFnC;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAqBpD;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAiBjD;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiBjC;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAaxB"}