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.
- package/.eslintrc.json +25 -0
- package/.prettierrc +8 -0
- package/README.md +94 -0
- package/bin/base.js +494 -0
- package/dist/ai/fix-manager.d.ts +67 -0
- package/dist/ai/fix-manager.d.ts.map +1 -0
- package/dist/ai/fix-manager.js +326 -0
- package/dist/ai/fix-manager.js.map +1 -0
- package/dist/ai/gemini-analyzer.d.ts +116 -0
- package/dist/ai/gemini-analyzer.d.ts.map +1 -0
- package/dist/ai/gemini-analyzer.js +572 -0
- package/dist/ai/gemini-analyzer.js.map +1 -0
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +5 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/jules-implementer.d.ts +115 -0
- package/dist/ai/jules-implementer.d.ts.map +1 -0
- package/dist/ai/jules-implementer.js +387 -0
- package/dist/ai/jules-implementer.js.map +1 -0
- package/dist/commands/automation.d.ts +5 -0
- package/dist/commands/automation.d.ts.map +1 -0
- package/dist/commands/automation.js +305 -0
- package/dist/commands/automation.js.map +1 -0
- package/dist/commands/check.d.ts +9 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +113 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/config.d.ts +11 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +324 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/fix.d.ts +9 -0
- package/dist/commands/fix.d.ts.map +1 -0
- package/dist/commands/fix.js +207 -0
- package/dist/commands/fix.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +7 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +125 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/core/api-key-manager.d.ts +83 -0
- package/dist/core/api-key-manager.d.ts.map +1 -0
- package/dist/core/api-key-manager.js +244 -0
- package/dist/core/api-key-manager.js.map +1 -0
- package/dist/core/baseguard.d.ts +46 -0
- package/dist/core/baseguard.d.ts.map +1 -0
- package/dist/core/baseguard.js +132 -0
- package/dist/core/baseguard.js.map +1 -0
- package/dist/core/baseline-checker.d.ts +63 -0
- package/dist/core/baseline-checker.d.ts.map +1 -0
- package/dist/core/baseline-checker.js +502 -0
- package/dist/core/baseline-checker.js.map +1 -0
- package/dist/core/cache-manager.d.ts +88 -0
- package/dist/core/cache-manager.d.ts.map +1 -0
- package/dist/core/cache-manager.js +213 -0
- package/dist/core/cache-manager.js.map +1 -0
- package/dist/core/configuration.d.ts +140 -0
- package/dist/core/configuration.d.ts.map +1 -0
- package/dist/core/configuration.js +474 -0
- package/dist/core/configuration.js.map +1 -0
- package/dist/core/directory-filter.d.ts +90 -0
- package/dist/core/directory-filter.d.ts.map +1 -0
- package/dist/core/directory-filter.js +319 -0
- package/dist/core/directory-filter.js.map +1 -0
- package/dist/core/error-handler.d.ts +110 -0
- package/dist/core/error-handler.d.ts.map +1 -0
- package/dist/core/error-handler.js +392 -0
- package/dist/core/error-handler.js.map +1 -0
- package/dist/core/file-processor.d.ts +80 -0
- package/dist/core/file-processor.d.ts.map +1 -0
- package/dist/core/file-processor.js +259 -0
- package/dist/core/file-processor.js.map +1 -0
- package/dist/core/gitignore-manager.d.ts +44 -0
- package/dist/core/gitignore-manager.d.ts.map +1 -0
- package/dist/core/gitignore-manager.js +147 -0
- package/dist/core/gitignore-manager.js.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lazy-loader.d.ts +68 -0
- package/dist/core/lazy-loader.d.ts.map +1 -0
- package/dist/core/lazy-loader.js +260 -0
- package/dist/core/lazy-loader.js.map +1 -0
- package/dist/core/memory-manager.d.ts +1 -0
- package/dist/core/memory-manager.d.ts.map +1 -0
- package/dist/core/memory-manager.js +2 -0
- package/dist/core/memory-manager.js.map +1 -0
- package/dist/core/startup-optimizer.d.ts +45 -0
- package/dist/core/startup-optimizer.d.ts.map +1 -0
- package/dist/core/startup-optimizer.js +140 -0
- package/dist/core/startup-optimizer.js.map +1 -0
- package/dist/git/automation-engine.d.ts +58 -0
- package/dist/git/automation-engine.d.ts.map +1 -0
- package/dist/git/automation-engine.js +318 -0
- package/dist/git/automation-engine.js.map +1 -0
- package/dist/git/github-manager.d.ts +71 -0
- package/dist/git/github-manager.d.ts.map +1 -0
- package/dist/git/github-manager.js +226 -0
- package/dist/git/github-manager.js.map +1 -0
- package/dist/git/hook-manager.d.ts +43 -0
- package/dist/git/hook-manager.d.ts.map +1 -0
- package/dist/git/hook-manager.js +191 -0
- package/dist/git/hook-manager.js.map +1 -0
- package/dist/git/index.d.ts +4 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +5 -0
- package/dist/git/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/feature-validator.d.ts +60 -0
- package/dist/parsers/feature-validator.d.ts.map +1 -0
- package/dist/parsers/feature-validator.js +483 -0
- package/dist/parsers/feature-validator.js.map +1 -0
- package/dist/parsers/index.d.ts +8 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +9 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/parser-manager.d.ts +103 -0
- package/dist/parsers/parser-manager.d.ts.map +1 -0
- package/dist/parsers/parser-manager.js +321 -0
- package/dist/parsers/parser-manager.js.map +1 -0
- package/dist/parsers/parser.d.ts +23 -0
- package/dist/parsers/parser.d.ts.map +1 -0
- package/dist/parsers/parser.js +6 -0
- package/dist/parsers/parser.js.map +1 -0
- package/dist/parsers/react-parser.d.ts +22 -0
- package/dist/parsers/react-parser.d.ts.map +1 -0
- package/dist/parsers/react-parser.js +307 -0
- package/dist/parsers/react-parser.js.map +1 -0
- package/dist/parsers/svelte-parser.d.ts +33 -0
- package/dist/parsers/svelte-parser.d.ts.map +1 -0
- package/dist/parsers/svelte-parser.js +408 -0
- package/dist/parsers/svelte-parser.js.map +1 -0
- package/dist/parsers/vanilla-parser.d.ts +31 -0
- package/dist/parsers/vanilla-parser.d.ts.map +1 -0
- package/dist/parsers/vanilla-parser.js +590 -0
- package/dist/parsers/vanilla-parser.js.map +1 -0
- package/dist/parsers/vue-parser.d.ts +9 -0
- package/dist/parsers/vue-parser.d.ts.map +1 -0
- package/dist/parsers/vue-parser.js +16 -0
- package/dist/parsers/vue-parser.js.map +1 -0
- package/dist/terminal-header.d.ts +12 -0
- package/dist/terminal-header.js +45 -0
- package/dist/types/index.d.ts +83 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/components.d.ts +133 -0
- package/dist/ui/components.d.ts.map +1 -0
- package/dist/ui/components.js +482 -0
- package/dist/ui/components.js.map +1 -0
- package/dist/ui/help.d.ts +11 -0
- package/dist/ui/help.d.ts.map +1 -0
- package/dist/ui/help.js +161 -0
- package/dist/ui/help.js.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +5 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompts.d.ts +63 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +611 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/terminal-header.d.ts +13 -0
- package/dist/ui/terminal-header.d.ts.map +1 -0
- package/dist/ui/terminal-header.js +46 -0
- package/dist/ui/terminal-header.js.map +1 -0
- package/package.json +80 -0
- package/src/ai/__tests__/gemini-analyzer.test.ts +181 -0
- package/src/ai/fix-manager.ts +362 -0
- package/src/ai/gemini-analyzer.ts +671 -0
- package/src/ai/index.ts +4 -0
- package/src/ai/jules-implementer.ts +459 -0
- package/src/commands/automation.ts +344 -0
- package/src/commands/check.ts +299 -0
- package/src/commands/config.ts +365 -0
- package/src/commands/fix.ts +234 -0
- package/src/commands/index.ts +6 -0
- package/src/commands/init.ts +142 -0
- package/src/commands/status.ts +0 -0
- package/src/core/api-key-manager.ts +298 -0
- package/src/core/baseguard.ts +742 -0
- package/src/core/baseline-checker.ts +563 -0
- package/src/core/cache-manager.ts +270 -0
- package/src/core/configuration-recovery.ts +676 -0
- package/src/core/configuration.ts +559 -0
- package/src/core/debug-logger.ts +590 -0
- package/src/core/directory-filter.ts +421 -0
- package/src/core/error-handler.ts +517 -0
- package/src/core/file-processor.ts +331 -0
- package/src/core/gitignore-manager.ts +169 -0
- package/src/core/graceful-degradation-manager.ts +596 -0
- package/src/core/index.ts +13 -0
- package/src/core/lazy-loader.ts +307 -0
- package/src/core/logger.ts +0 -0
- package/src/core/memory-manager.ts +294 -0
- package/src/core/startup-optimizer.ts +173 -0
- package/src/core/system-error-handler.ts +746 -0
- package/src/git/automation-engine.ts +361 -0
- package/src/git/github-manager.ts +260 -0
- package/src/git/hook-manager.ts +210 -0
- package/src/git/index.ts +4 -0
- package/src/index.ts +8 -0
- package/src/parsers/feature-validator.ts +559 -0
- package/src/parsers/index.ts +8 -0
- package/src/parsers/parser-manager.ts +419 -0
- package/src/parsers/parser.ts +26 -0
- package/src/parsers/react-parser-optimized.ts +161 -0
- package/src/parsers/react-parser.ts +359 -0
- package/src/parsers/svelte-parser.ts +506 -0
- package/src/parsers/vanilla-parser.ts +682 -0
- package/src/parsers/vue-parser.ts +472 -0
- package/src/types/index.ts +92 -0
- package/src/ui/components.ts +567 -0
- package/src/ui/help.ts +193 -0
- package/src/ui/index.ts +4 -0
- package/src/ui/prompts.ts +688 -0
- package/src/ui/terminal-header.ts +59 -0
- package/test-config-commands.js +56 -0
- package/test-header-simple.js +33 -0
- package/test-terminal-header.js +12 -0
- package/test-ui.js +29 -0
- package/tests/e2e/baseguard.e2e.test.ts +516 -0
- package/tests/e2e/cross-platform.e2e.test.ts +420 -0
- package/tests/e2e/git-integration.e2e.test.ts +487 -0
- package/tests/fixtures/react-project/package.json +14 -0
- package/tests/fixtures/react-project/src/App.css +76 -0
- package/tests/fixtures/react-project/src/App.tsx +77 -0
- package/tests/fixtures/svelte-project/package.json +11 -0
- package/tests/fixtures/svelte-project/src/App.svelte +369 -0
- package/tests/fixtures/vanilla-project/index.html +76 -0
- package/tests/fixtures/vanilla-project/script.js +331 -0
- package/tests/fixtures/vanilla-project/styles.css +359 -0
- package/tests/fixtures/vue-project/package.json +12 -0
- package/tests/fixtures/vue-project/src/App.vue +216 -0
- package/tsconfig.json +36 -0
- package/vitest.config.ts +10 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Parser } from './parser.js';
|
|
2
|
+
export class VueParser extends Parser {
|
|
3
|
+
canParse(filePath) {
|
|
4
|
+
return /\.vue$/.test(filePath);
|
|
5
|
+
}
|
|
6
|
+
async parseFeatures(content, filePath) {
|
|
7
|
+
throw new Error('Not implemented yet');
|
|
8
|
+
}
|
|
9
|
+
getSupportedExtensions() {
|
|
10
|
+
return ['.vue'];
|
|
11
|
+
}
|
|
12
|
+
getName() {
|
|
13
|
+
return 'VueParser';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=vue-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue-parser.js","sourceRoot":"","sources":["../../src/parsers/vue-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,OAAO,SAAU,SAAQ,MAAM;IACnC,QAAQ,CAAC,QAAgB;QACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,QAAgB;QACnD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,sBAAsB;QACpB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display beautiful Baseguard terminal header with ASCII art and tagline
|
|
3
|
+
*/
|
|
4
|
+
export declare function showTerminalHeader(): void;
|
|
5
|
+
/**
|
|
6
|
+
* Display compact header for command output
|
|
7
|
+
*/
|
|
8
|
+
export declare function showCompactHeader(): void;
|
|
9
|
+
/**
|
|
10
|
+
* Simple fallback header without external dependencies
|
|
11
|
+
*/
|
|
12
|
+
export declare function showSimpleHeader(): void;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
/**
|
|
3
|
+
* Display beautiful Baseguard terminal header with ASCII art and tagline
|
|
4
|
+
*/
|
|
5
|
+
export function showTerminalHeader() {
|
|
6
|
+
console.clear();
|
|
7
|
+
// Well-spaced ASCII art for "Baseguard" - monochrome for good contrast
|
|
8
|
+
const logo = `
|
|
9
|
+
██████╗ █████╗ ███████╗ ███████╗ ██████╗ ██╗ ██╗ █████╗ ██████╗ ██████╗
|
|
10
|
+
██╔══██╗ ██╔══██╗ ██╔════╝ ██╔════╝ ██╔════╝ ██║ ██║ ██╔══██╗ ██╔══██╗ ██╔══██╗
|
|
11
|
+
██████╔╝ ███████║ ███████╗ █████╗ ██║ ███╗ ██║ ██║ ███████║ ██████╔╝ ██║ ██║
|
|
12
|
+
██╔══██╗ ██╔══██║ ╚════██║ ██╔══╝ ██║ ██║ ██║ ██║ ██╔══██║ ██╔══██╗ ██║ ██║
|
|
13
|
+
██████╔╝ ██║ ██║ ███████║ ███████╗ ╚██████╔╝ ╚██████╔╝ ██║ ██║ ██║ ██║ ██████╔╝
|
|
14
|
+
╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝
|
|
15
|
+
`;
|
|
16
|
+
// Use a single color that contrasts well with both light and dark terminals
|
|
17
|
+
console.log(chalk.bold.white(logo));
|
|
18
|
+
// Tagline with styling
|
|
19
|
+
console.log(chalk.bold.white(' Ship Modern Code') +
|
|
20
|
+
chalk.dim(' ✨\n'));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Display compact header for command output
|
|
24
|
+
*/
|
|
25
|
+
export function showCompactHeader() {
|
|
26
|
+
console.log(chalk.bold.white('🛡️ Baseguard') +
|
|
27
|
+
chalk.dim(' - Ship Modern Code ✨\n'));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Simple fallback header without external dependencies
|
|
31
|
+
*/
|
|
32
|
+
export function showSimpleHeader() {
|
|
33
|
+
console.clear();
|
|
34
|
+
const logo = `
|
|
35
|
+
██████╗ █████╗ ███████╗ ███████╗ ██████╗ ██╗ ██╗ █████╗ ██████╗ ██████╗
|
|
36
|
+
██╔══██╗ ██╔══██╗ ██╔════╝ ██╔════╝ ██╔════╝ ██║ ██║ ██╔══██╗ ██╔══██╗ ██╔══██╗
|
|
37
|
+
██████╔╝ ███████║ ███████╗ █████╗ ██║ ███╗ ██║ ██║ ███████║ ██████╔╝ ██║ ██║
|
|
38
|
+
██╔══██╗ ██╔══██║ ╚════██║ ██╔══╝ ██║ ██║ ██║ ██║ ██╔══██║ ██╔══██╗ ██║ ██║
|
|
39
|
+
██████╔╝ ██║ ██║ ███████║ ███████╗ ╚██████╔╝ ╚██████╔╝ ██║ ██║ ██║ ██║ ██████╔╝
|
|
40
|
+
╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝
|
|
41
|
+
`;
|
|
42
|
+
console.log(chalk.bold.white(logo));
|
|
43
|
+
console.log(chalk.bold.white(' Ship Modern Code') +
|
|
44
|
+
chalk.dim(' ✨\n'));
|
|
45
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core data models for BaseGuard
|
|
3
|
+
*/
|
|
4
|
+
export interface Violation {
|
|
5
|
+
feature: string;
|
|
6
|
+
featureId: string;
|
|
7
|
+
file: string;
|
|
8
|
+
line: number;
|
|
9
|
+
column: number;
|
|
10
|
+
context: string;
|
|
11
|
+
browser: string;
|
|
12
|
+
required: string;
|
|
13
|
+
actual: string | false;
|
|
14
|
+
baselineStatus: string;
|
|
15
|
+
reason: string;
|
|
16
|
+
}
|
|
17
|
+
export interface Analysis {
|
|
18
|
+
violation: Violation;
|
|
19
|
+
userImpact: string;
|
|
20
|
+
marketShare: number;
|
|
21
|
+
fixStrategy: string;
|
|
22
|
+
bestPractices: string[];
|
|
23
|
+
sources: string[];
|
|
24
|
+
plainEnglish: string;
|
|
25
|
+
confidence: number;
|
|
26
|
+
}
|
|
27
|
+
export interface Fix {
|
|
28
|
+
violation: Violation;
|
|
29
|
+
analysis: Analysis;
|
|
30
|
+
patch: string;
|
|
31
|
+
explanation: string;
|
|
32
|
+
filePath: string;
|
|
33
|
+
preview: string;
|
|
34
|
+
confidence: number;
|
|
35
|
+
testable: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface BrowserTarget {
|
|
38
|
+
browser: string;
|
|
39
|
+
minVersion: string | 'baseline' | 'baseline-newly';
|
|
40
|
+
}
|
|
41
|
+
export interface Configuration {
|
|
42
|
+
version: string;
|
|
43
|
+
targets: BrowserTarget[];
|
|
44
|
+
apiKeys: {
|
|
45
|
+
jules: string | null;
|
|
46
|
+
gemini: string | null;
|
|
47
|
+
};
|
|
48
|
+
automation: {
|
|
49
|
+
enabled: boolean;
|
|
50
|
+
trigger: 'pre-commit' | 'pre-push';
|
|
51
|
+
autoAnalyze: boolean;
|
|
52
|
+
autoFix: boolean;
|
|
53
|
+
blockCommit: boolean;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export interface DetectedFeature {
|
|
57
|
+
feature: string;
|
|
58
|
+
type: 'css' | 'js' | 'html';
|
|
59
|
+
line: number;
|
|
60
|
+
column: number;
|
|
61
|
+
context: string;
|
|
62
|
+
file?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface CompatibilityResult {
|
|
65
|
+
violations: Violation[];
|
|
66
|
+
featureData: any;
|
|
67
|
+
}
|
|
68
|
+
export interface AutomationOptions {
|
|
69
|
+
trigger: 'pre-commit' | 'pre-push';
|
|
70
|
+
strict?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface JulesSession {
|
|
73
|
+
id: string;
|
|
74
|
+
status: string;
|
|
75
|
+
title: string;
|
|
76
|
+
}
|
|
77
|
+
export interface JulesActivity {
|
|
78
|
+
id: string;
|
|
79
|
+
type: string;
|
|
80
|
+
status: string;
|
|
81
|
+
timestamp: string;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC;QACnC,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,WAAW,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { type Ora } from 'ora';
|
|
2
|
+
import type { Violation, Analysis, Fix, Configuration } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Color scheme for consistent CLI output
|
|
5
|
+
*/
|
|
6
|
+
export declare const Colors: {
|
|
7
|
+
readonly primary: import("chalk").ChalkInstance;
|
|
8
|
+
readonly success: import("chalk").ChalkInstance;
|
|
9
|
+
readonly error: import("chalk").ChalkInstance;
|
|
10
|
+
readonly warning: import("chalk").ChalkInstance;
|
|
11
|
+
readonly info: import("chalk").ChalkInstance;
|
|
12
|
+
readonly muted: import("chalk").ChalkInstance;
|
|
13
|
+
readonly highlight: import("chalk").ChalkInstance;
|
|
14
|
+
readonly feature: import("chalk").ChalkInstance;
|
|
15
|
+
readonly file: import("chalk").ChalkInstance;
|
|
16
|
+
readonly browser: import("chalk").ChalkInstance;
|
|
17
|
+
readonly baseline: import("chalk").ChalkInstance;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* UI components for beautiful CLI output
|
|
21
|
+
*/
|
|
22
|
+
export { Prompts } from './prompts.js';
|
|
23
|
+
export declare class UIComponents {
|
|
24
|
+
/**
|
|
25
|
+
* Display violations grouped by file with clear visual hierarchy
|
|
26
|
+
*/
|
|
27
|
+
static showViolations(violations: Violation[]): void;
|
|
28
|
+
/**
|
|
29
|
+
* Display a single violation with context and details
|
|
30
|
+
*/
|
|
31
|
+
static showSingleViolation(violation: Violation, index: number): void;
|
|
32
|
+
/**
|
|
33
|
+
* Show code context with basic syntax highlighting
|
|
34
|
+
*/
|
|
35
|
+
static showCodeContext(context: string, line: number, column: number): void;
|
|
36
|
+
/**
|
|
37
|
+
* Format baseline status with appropriate colors
|
|
38
|
+
*/
|
|
39
|
+
static formatBaselineStatus(status: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Group violations by file for organized display
|
|
42
|
+
*/
|
|
43
|
+
static groupViolationsByFile(violations: Violation[]): Record<string, Violation[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Show violation summary with actionable next steps
|
|
46
|
+
*/
|
|
47
|
+
static showViolationSummary(violations: Violation[]): void;
|
|
48
|
+
/**
|
|
49
|
+
* Display analysis results with sources and recommendations
|
|
50
|
+
*/
|
|
51
|
+
static showAnalysis(analysis: Analysis): void;
|
|
52
|
+
/**
|
|
53
|
+
* Display fix preview with diff-like formatting
|
|
54
|
+
*/
|
|
55
|
+
static showFixPreview(fix: Fix): void;
|
|
56
|
+
/**
|
|
57
|
+
* Display diff with syntax highlighting
|
|
58
|
+
*/
|
|
59
|
+
static showDiff(patch: string): void;
|
|
60
|
+
/**
|
|
61
|
+
* Show configuration in a readable format
|
|
62
|
+
*/
|
|
63
|
+
static showConfiguration(config: Configuration): void;
|
|
64
|
+
/**
|
|
65
|
+
* Wrap text to specified width
|
|
66
|
+
*/
|
|
67
|
+
static wrapText(text: string, width: number): string;
|
|
68
|
+
/**
|
|
69
|
+
* Create a spinner for long-running operations
|
|
70
|
+
*/
|
|
71
|
+
static createSpinner(text: string): Ora;
|
|
72
|
+
/**
|
|
73
|
+
* Show success message in a box
|
|
74
|
+
*/
|
|
75
|
+
static showSuccessBox(message: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Show error message in a box
|
|
78
|
+
*/
|
|
79
|
+
static showErrorBox(message: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Show warning message in a box
|
|
82
|
+
*/
|
|
83
|
+
static showWarningBox(message: string): void;
|
|
84
|
+
/**
|
|
85
|
+
* Show info message in a box
|
|
86
|
+
*/
|
|
87
|
+
static showInfoBox(message: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* Show a formatted header with Baseguard branding
|
|
90
|
+
*/
|
|
91
|
+
static showHeader(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Show the full terminal header with ASCII art
|
|
94
|
+
*/
|
|
95
|
+
static showFullHeader(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Show beautiful terminal header with ASCII art
|
|
98
|
+
*/
|
|
99
|
+
static showTerminalHeader(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Show a formatted section header
|
|
102
|
+
*/
|
|
103
|
+
static showSectionHeader(title: string): void;
|
|
104
|
+
/**
|
|
105
|
+
* Create a formatted table for displaying data
|
|
106
|
+
*/
|
|
107
|
+
static createTable(headers: string[]): any;
|
|
108
|
+
/**
|
|
109
|
+
* Show a progress indicator
|
|
110
|
+
*/
|
|
111
|
+
static showProgress(current: number, total: number, operation: string): void;
|
|
112
|
+
/**
|
|
113
|
+
* Clear the current line (useful for progress indicators)
|
|
114
|
+
*/
|
|
115
|
+
static clearLine(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Show a simple status message with icon
|
|
118
|
+
*/
|
|
119
|
+
static showStatus(type: 'success' | 'error' | 'warning' | 'info', message: string): void;
|
|
120
|
+
/**
|
|
121
|
+
* Show a list of items with bullets
|
|
122
|
+
*/
|
|
123
|
+
static showList(items: string[], bullet?: string): void;
|
|
124
|
+
/**
|
|
125
|
+
* Show a key-value pair
|
|
126
|
+
*/
|
|
127
|
+
static showKeyValue(key: string, value: string, indent?: number): void;
|
|
128
|
+
/**
|
|
129
|
+
* Show JUnit XML report for violations
|
|
130
|
+
*/
|
|
131
|
+
static showJUnitReport(violations: Violation[]): void;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/ui/components.ts"],"names":[],"mappings":"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"}
|