baseguard 1.0.3 → 1.0.4

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 (167) hide show
  1. package/.baseguardrc.example.json +63 -63
  2. package/.eslintrc.json +24 -24
  3. package/.prettierrc +7 -7
  4. package/CHANGELOG.md +195 -195
  5. package/DEPLOYMENT.md +624 -624
  6. package/DEPLOYMENT_CHECKLIST.md +239 -239
  7. package/DEPLOYMENT_SUMMARY_v1.0.2.md +202 -202
  8. package/QUICK_START.md +134 -134
  9. package/README.md +488 -488
  10. package/RELEASE_NOTES_v1.0.2.md +434 -434
  11. package/bin/base.js +627 -627
  12. package/dist/ai/fix-manager.d.ts.map +1 -1
  13. package/dist/ai/fix-manager.js +1 -1
  14. package/dist/ai/fix-manager.js.map +1 -1
  15. package/dist/ai/gemini-analyzer.d.ts.map +1 -1
  16. package/dist/ai/gemini-analyzer.js +29 -35
  17. package/dist/ai/gemini-analyzer.js.map +1 -1
  18. package/dist/ai/gemini-code-fixer.d.ts.map +1 -1
  19. package/dist/ai/gemini-code-fixer.js +58 -58
  20. package/dist/ai/gemini-code-fixer.js.map +1 -1
  21. package/dist/ai/jules-implementer.d.ts +3 -0
  22. package/dist/ai/jules-implementer.d.ts.map +1 -1
  23. package/dist/ai/jules-implementer.js +63 -32
  24. package/dist/ai/jules-implementer.js.map +1 -1
  25. package/dist/ai/unified-code-fixer.js.map +1 -1
  26. package/dist/commands/check.d.ts.map +1 -1
  27. package/dist/commands/check.js +1 -1
  28. package/dist/commands/check.js.map +1 -1
  29. package/dist/commands/config.js +2 -1
  30. package/dist/commands/config.js.map +1 -1
  31. package/dist/commands/fix.d.ts.map +1 -1
  32. package/dist/commands/fix.js +44 -15
  33. package/dist/commands/fix.js.map +1 -1
  34. package/dist/core/api-key-manager.js +2 -2
  35. package/dist/core/api-key-manager.js.map +1 -1
  36. package/dist/core/baseguard.d.ts +1 -0
  37. package/dist/core/baseguard.d.ts.map +1 -1
  38. package/dist/core/baseguard.js +13 -10
  39. package/dist/core/baseguard.js.map +1 -1
  40. package/dist/core/baseline-checker.d.ts.map +1 -1
  41. package/dist/core/baseline-checker.js +2 -1
  42. package/dist/core/baseline-checker.js.map +1 -1
  43. package/dist/core/configuration-recovery.d.ts.map +1 -1
  44. package/dist/core/configuration-recovery.js +1 -1
  45. package/dist/core/configuration-recovery.js.map +1 -1
  46. package/dist/core/debug-logger.d.ts.map +1 -1
  47. package/dist/core/debug-logger.js +1 -1
  48. package/dist/core/debug-logger.js.map +1 -1
  49. package/dist/core/error-handler.d.ts.map +1 -1
  50. package/dist/core/error-handler.js +2 -1
  51. package/dist/core/error-handler.js.map +1 -1
  52. package/dist/core/gitignore-manager.js +5 -5
  53. package/dist/core/graceful-degradation-manager.d.ts.map +1 -1
  54. package/dist/core/graceful-degradation-manager.js +16 -16
  55. package/dist/core/graceful-degradation-manager.js.map +1 -1
  56. package/dist/core/lazy-loader.d.ts.map +1 -1
  57. package/dist/core/lazy-loader.js +9 -2
  58. package/dist/core/lazy-loader.js.map +1 -1
  59. package/dist/core/memory-manager.d.ts +0 -3
  60. package/dist/core/memory-manager.d.ts.map +1 -1
  61. package/dist/core/memory-manager.js.map +1 -1
  62. package/dist/core/parser-worker.d.ts +2 -0
  63. package/dist/core/parser-worker.d.ts.map +1 -0
  64. package/dist/core/parser-worker.js +19 -0
  65. package/dist/core/parser-worker.js.map +1 -0
  66. package/dist/core/startup-optimizer.d.ts.map +1 -1
  67. package/dist/core/startup-optimizer.js +4 -8
  68. package/dist/core/startup-optimizer.js.map +1 -1
  69. package/dist/core/system-error-handler.d.ts.map +1 -1
  70. package/dist/core/system-error-handler.js.map +1 -1
  71. package/dist/git/automation-engine.d.ts.map +1 -1
  72. package/dist/git/automation-engine.js +5 -4
  73. package/dist/git/automation-engine.js.map +1 -1
  74. package/dist/git/github-manager.d.ts.map +1 -1
  75. package/dist/git/github-manager.js.map +1 -1
  76. package/dist/git/hook-manager.js +5 -5
  77. package/dist/git/hook-manager.js.map +1 -1
  78. package/dist/parsers/parser-manager.d.ts.map +1 -1
  79. package/dist/parsers/parser-manager.js +1 -1
  80. package/dist/parsers/parser-manager.js.map +1 -1
  81. package/dist/parsers/svelte-parser.js +1 -1
  82. package/dist/parsers/svelte-parser.js.map +1 -1
  83. package/dist/parsers/vanilla-parser.d.ts.map +1 -1
  84. package/dist/parsers/vanilla-parser.js.map +1 -1
  85. package/dist/parsers/vue-parser.d.ts.map +1 -1
  86. package/dist/parsers/vue-parser.js.map +1 -1
  87. package/dist/ui/components.d.ts +1 -1
  88. package/dist/ui/components.d.ts.map +1 -1
  89. package/dist/ui/components.js +11 -11
  90. package/dist/ui/components.js.map +1 -1
  91. package/dist/ui/terminal-header.js +14 -14
  92. package/package.json +105 -105
  93. package/src/ai/__tests__/gemini-analyzer.test.ts +180 -180
  94. package/src/ai/agentkit-orchestrator.ts +533 -533
  95. package/src/ai/fix-manager.ts +362 -362
  96. package/src/ai/gemini-analyzer.ts +665 -671
  97. package/src/ai/gemini-code-fixer.ts +539 -540
  98. package/src/ai/index.ts +3 -3
  99. package/src/ai/jules-implementer.ts +504 -460
  100. package/src/ai/unified-code-fixer.ts +347 -347
  101. package/src/commands/automation.ts +343 -343
  102. package/src/commands/check.ts +298 -299
  103. package/src/commands/config.ts +584 -583
  104. package/src/commands/fix.ts +264 -238
  105. package/src/commands/index.ts +6 -6
  106. package/src/commands/init.ts +155 -155
  107. package/src/commands/status.ts +306 -306
  108. package/src/core/api-key-manager.ts +298 -298
  109. package/src/core/baseguard.ts +757 -756
  110. package/src/core/baseline-checker.ts +564 -563
  111. package/src/core/cache-manager.ts +271 -271
  112. package/src/core/configuration-recovery.ts +672 -673
  113. package/src/core/configuration.ts +595 -595
  114. package/src/core/debug-logger.ts +590 -590
  115. package/src/core/directory-filter.ts +420 -420
  116. package/src/core/error-handler.ts +518 -517
  117. package/src/core/file-processor.ts +337 -337
  118. package/src/core/gitignore-manager.ts +168 -168
  119. package/src/core/graceful-degradation-manager.ts +596 -596
  120. package/src/core/index.ts +16 -16
  121. package/src/core/lazy-loader.ts +317 -307
  122. package/src/core/memory-manager.ts +290 -295
  123. package/src/core/parser-worker.ts +33 -0
  124. package/src/core/startup-optimizer.ts +246 -255
  125. package/src/core/system-error-handler.ts +755 -756
  126. package/src/git/automation-engine.ts +361 -361
  127. package/src/git/github-manager.ts +190 -192
  128. package/src/git/hook-manager.ts +210 -210
  129. package/src/git/index.ts +3 -3
  130. package/src/index.ts +7 -7
  131. package/src/parsers/feature-validator.ts +558 -558
  132. package/src/parsers/index.ts +7 -7
  133. package/src/parsers/parser-manager.ts +418 -419
  134. package/src/parsers/parser.ts +25 -25
  135. package/src/parsers/react-parser-optimized.ts +160 -160
  136. package/src/parsers/react-parser.ts +358 -358
  137. package/src/parsers/svelte-parser.ts +510 -510
  138. package/src/parsers/vanilla-parser.ts +685 -686
  139. package/src/parsers/vue-parser.ts +476 -478
  140. package/src/types/index.ts +95 -95
  141. package/src/ui/components.ts +567 -567
  142. package/src/ui/help.ts +192 -192
  143. package/src/ui/index.ts +3 -3
  144. package/src/ui/prompts.ts +680 -680
  145. package/src/ui/terminal-header.ts +58 -58
  146. package/test-build.js +40 -40
  147. package/test-config-commands.js +55 -55
  148. package/test-header-simple.js +32 -32
  149. package/test-terminal-header.js +11 -11
  150. package/test-ui.js +28 -28
  151. package/tests/e2e/baseguard.e2e.test.ts +515 -515
  152. package/tests/e2e/cross-platform.e2e.test.ts +419 -419
  153. package/tests/e2e/git-integration.e2e.test.ts +486 -486
  154. package/tests/fixtures/react-project/package.json +13 -13
  155. package/tests/fixtures/react-project/src/App.css +75 -75
  156. package/tests/fixtures/react-project/src/App.tsx +76 -76
  157. package/tests/fixtures/svelte-project/package.json +10 -10
  158. package/tests/fixtures/svelte-project/src/App.svelte +368 -368
  159. package/tests/fixtures/vanilla-project/index.html +75 -75
  160. package/tests/fixtures/vanilla-project/script.js +330 -330
  161. package/tests/fixtures/vanilla-project/styles.css +358 -358
  162. package/tests/fixtures/vue-project/package.json +11 -11
  163. package/tests/fixtures/vue-project/src/App.vue +215 -215
  164. package/tsconfig.json +34 -34
  165. package/vitest.config.ts +11 -11
  166. package/dist/terminal-header.d.ts +0 -12
  167. package/dist/terminal-header.js +0 -45
package/src/ui/help.ts CHANGED
@@ -1,193 +1,193 @@
1
- import chalk from 'chalk';
2
- import { readFileSync } from 'fs';
3
- import { join, dirname } from 'path';
4
- import { fileURLToPath } from 'url';
5
- import { showTerminalHeader } from './terminal-header.js';
6
-
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = dirname(__filename);
9
-
10
- /**
11
- * Show version information and system details
12
- */
13
- export async function showVersionInfo(options: { checkUpdates?: boolean } = {}): Promise<void> {
14
- try {
15
- // Read package.json for version info
16
- const packagePath = join(__dirname, '../../package.json');
17
- const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
18
-
19
- console.log(chalk.cyan('🛡️ BaseGuard Version Information\n'));
20
-
21
- // BaseGuard version
22
- console.log(chalk.white('BaseGuard:'));
23
- console.log(` Version: ${chalk.green(packageJson.version)}`);
24
- console.log(` License: ${packageJson.license}`);
25
- console.log(` Homepage: ${chalk.blue('https://github.com/baseguard/baseguard')}`);
26
-
27
- // System information
28
- console.log(chalk.white('\nSystem:'));
29
- console.log(` Node.js: ${chalk.green(process.version)}`);
30
- console.log(` Platform: ${process.platform} ${process.arch}`);
31
- console.log(` OS: ${process.platform === 'win32' ? 'Windows' : process.platform === 'darwin' ? 'macOS' : 'Linux'}`);
32
-
33
- // Dependencies
34
- console.log(chalk.white('\nKey Dependencies:'));
35
- const deps = packageJson.dependencies;
36
- console.log(` web-features: ${chalk.green(deps['web-features'])}`);
37
- console.log(` commander: ${chalk.green(deps.commander)}`);
38
- console.log(` chalk: ${chalk.green(deps.chalk)}`);
39
-
40
- // Engine requirements
41
- console.log(chalk.white('\nRequirements:'));
42
- console.log(` Node.js: ${chalk.green(packageJson.engines.node)}`);
43
-
44
- // Check for updates if requested
45
- if (options.checkUpdates) {
46
- console.log(chalk.white('\nChecking for updates...'));
47
- try {
48
- const { default: fetch } = await import('node-fetch');
49
- const response = await fetch('https://registry.npmjs.org/baseguard/latest');
50
- const data = await response.json() as any;
51
- const latestVersion = data.version;
52
-
53
- if (latestVersion !== packageJson.version) {
54
- console.log(chalk.yellow(` 📦 Update available: ${chalk.green(latestVersion)} (current: ${packageJson.version})`));
55
- console.log(chalk.yellow(` Run: ${chalk.white('npm update -g baseguard')}`));
56
- } else {
57
- console.log(chalk.green(' ✅ You have the latest version'));
58
- }
59
- } catch (error) {
60
- console.log(chalk.red(' ❌ Unable to check for updates (network error)'));
61
- }
62
- }
63
-
64
- // Installation info
65
- console.log(chalk.white('\nInstallation:'));
66
- console.log(` Global: ${chalk.white('npm install -g baseguard')}`);
67
- console.log(` Local: ${chalk.white('npm install --save-dev baseguard')}`);
68
-
69
- // Support links
70
- console.log(chalk.white('\nSupport:'));
71
- console.log(` Documentation: ${chalk.blue('https://github.com/baseguard/baseguard#readme')}`);
72
- console.log(` Issues: ${chalk.blue('https://github.com/baseguard/baseguard/issues')}`);
73
- console.log(` Discussions: ${chalk.blue('https://github.com/baseguard/baseguard/discussions')}`);
74
-
75
- } catch (error) {
76
- console.error(chalk.red('❌ Error reading version information:'), error instanceof Error ? error.message : 'Unknown error');
77
- process.exit(1);
78
- }
79
- }
80
-
81
- /**
82
- * Show comprehensive help information
83
- */
84
- export function showGlobalHelp(): void {
85
- showTerminalHeader();
86
-
87
- console.log(chalk.cyan('🛡️ BaseGuard - Never ship incompatible code again\n'));
88
-
89
- console.log(chalk.white('DESCRIPTION:'));
90
- console.log(' BaseGuard is an intelligent browser compatibility enforcement tool that prevents');
91
- console.log(' incompatible code from reaching production. It combines Baseline detection using');
92
- console.log(' the web-features package, Gemini AI analysis, and Jules autonomous fixing.\n');
93
-
94
- console.log(chalk.white('USAGE:'));
95
- console.log(` ${chalk.cyan('base')} ${chalk.white('<command>')} ${chalk.gray('[options]')}\n`);
96
-
97
- console.log(chalk.white('CORE COMMANDS:'));
98
- console.log(` ${chalk.cyan('init')} Initialize BaseGuard in your project`);
99
- console.log(` ${chalk.cyan('check')} Scan for browser compatibility violations`);
100
- console.log(` ${chalk.cyan('fix')} Fix violations with AI assistance`);
101
- console.log(` ${chalk.cyan('config')} Manage configuration and settings`);
102
- console.log(` ${chalk.cyan('automation')} Manage git hooks and automation\n`);
103
-
104
- console.log(chalk.white('QUICK COMMANDS:'));
105
- console.log(` ${chalk.cyan('add')} ${chalk.white('<target>')} Add browser target (e.g., "chrome 100")`);
106
- console.log(` ${chalk.cyan('remove')} ${chalk.white('<target>')} Remove browser target`);
107
- console.log(` ${chalk.cyan('list')} Show configuration summary\n`);
108
-
109
- console.log(chalk.white('UTILITY COMMANDS:'));
110
- console.log(` ${chalk.cyan('version')} Show version and system information`);
111
- console.log(` ${chalk.cyan('help')} ${chalk.white('[command]')} Show help for specific command\n`);
112
-
113
- console.log(chalk.white('GETTING STARTED:'));
114
- console.log(` 1. ${chalk.white('base init')} Set up BaseGuard in your project`);
115
- console.log(` 2. ${chalk.white('base config set-keys')} Configure API keys for AI features`);
116
- console.log(` 3. ${chalk.white('base automation enable')} Enable git hooks for automation`);
117
- console.log(` 4. ${chalk.white('base check')} Check for compatibility issues\n`);
118
-
119
- console.log(chalk.white('COMMON WORKFLOWS:'));
120
- console.log(chalk.yellow(' Basic Compatibility Checking:'));
121
- console.log(` ${chalk.dim('$')} base init`);
122
- console.log(` ${chalk.dim('$')} base check`);
123
- console.log(` ${chalk.dim('$')} base add "chrome 100" ${chalk.gray('# Add specific browser support')}`);
124
-
125
- console.log(chalk.yellow('\n AI-Powered Fixing:'));
126
- console.log(` ${chalk.dim('$')} base config set-keys ${chalk.gray('# Configure Gemini & Jules API keys')}`);
127
- console.log(` ${chalk.dim('$')} base fix ${chalk.gray('# Analyze and fix violations')}`);
128
-
129
- console.log(chalk.yellow('\n Automated Git Integration:'));
130
- console.log(` ${chalk.dim('$')} base automation enable ${chalk.gray('# Install git hooks')}`);
131
- console.log(` ${chalk.dim('$')} git commit ${chalk.gray('# Automatic checking on commit')}`);
132
-
133
- console.log(chalk.white('\nBROWSER TARGETS:'));
134
- console.log(` ${chalk.cyan('Presets:')} baseline-widely, baseline-newly, last-2-years, custom`);
135
- console.log(` ${chalk.cyan('Format:')} "browser version" (e.g., "chrome 100", "safari baseline")`);
136
- console.log(` ${chalk.cyan('Examples:')} "chrome 100", "safari 15", "firefox baseline"\n`);
137
-
138
- console.log(chalk.white('AI SERVICES:'));
139
- console.log(` ${chalk.cyan('Gemini:')} AI analysis of compatibility issues`);
140
- console.log(` Get API key: ${chalk.blue('https://aistudio.google.com')}`);
141
- console.log(` ${chalk.cyan('Jules:')} Autonomous code fixing (requires GitHub repository)`);
142
- console.log(` Get API key: ${chalk.blue('https://jules.google.com')}\n`);
143
-
144
- console.log(chalk.white('SUPPORTED FILES:'));
145
- console.log(' • JavaScript/TypeScript: .js, .jsx, .ts, .tsx');
146
- console.log(' • Framework files: .vue, .svelte');
147
- console.log(' • Stylesheets: .css');
148
- console.log(' • Markup: .html\n');
149
-
150
- console.log(chalk.white('FEATURES DETECTED:'));
151
- console.log(' • CSS properties, selectors, and at-rules');
152
- console.log(' • JavaScript APIs and ECMAScript features');
153
- console.log(' • HTML elements and attributes');
154
- console.log(' • Web platform APIs (Canvas, WebGL, WebRTC, WebAssembly, etc.)');
155
- console.log(' • Framework-aware extraction (React, Vue, Svelte)\n');
156
-
157
- console.log(chalk.white('CONFIGURATION:'));
158
- console.log(` ${chalk.cyan('File:')} .baseguardrc.json (automatically created)`);
159
- console.log(` ${chalk.cyan('Security:')} Automatically added to .gitignore`);
160
- console.log(` ${chalk.cyan('Validation:')} Built-in configuration validation\n`);
161
-
162
- console.log(chalk.white('EXAMPLES:'));
163
- console.log(chalk.gray(' # Quick setup and check'));
164
- console.log(` ${chalk.dim('$')} base init --preset baseline-widely`);
165
- console.log(` ${chalk.dim('$')} base check --strict`);
166
-
167
- console.log(chalk.gray('\n # Configure specific browser support'));
168
- console.log(` ${chalk.dim('$')} base add "chrome 100"`);
169
- console.log(` ${chalk.dim('$')} base add "safari baseline"`);
170
- console.log(` ${chalk.dim('$')} base check --files "src/**/*.ts"`);
171
-
172
- console.log(chalk.gray('\n # Set up AI-powered fixing'));
173
- console.log(` ${chalk.dim('$')} base config set-keys`);
174
- console.log(` ${chalk.dim('$')} base fix --analyze-only`);
175
- console.log(` ${chalk.dim('$')} base fix --auto`);
176
-
177
- console.log(chalk.gray('\n # Enable automation'));
178
- console.log(` ${chalk.dim('$')} base automation enable --trigger pre-commit`);
179
- console.log(` ${chalk.dim('$')} base automation status`);
180
-
181
- console.log(chalk.white('\nGLOBAL OPTIONS:'));
182
- console.log(` ${chalk.cyan('--help, -h')} Show help information`);
183
- console.log(` ${chalk.cyan('--version, -V')} Show version number\n`);
184
-
185
- console.log(chalk.white('DOCUMENTATION:'));
186
- console.log(` ${chalk.blue('https://github.com/baseguard/baseguard#readme')}\n`);
187
-
188
- console.log(chalk.white('SUPPORT:'));
189
- console.log(` Issues: ${chalk.blue('https://github.com/baseguard/baseguard/issues')}`);
190
- console.log(` Discussions: ${chalk.blue('https://github.com/baseguard/baseguard/discussions')}\n`);
191
-
192
- console.log(chalk.gray('For command-specific help, run: base help <command>'));
1
+ import chalk from 'chalk';
2
+ import { readFileSync } from 'fs';
3
+ import { join, dirname } from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import { showTerminalHeader } from './terminal-header.js';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
9
+
10
+ /**
11
+ * Show version information and system details
12
+ */
13
+ export async function showVersionInfo(options: { checkUpdates?: boolean } = {}): Promise<void> {
14
+ try {
15
+ // Read package.json for version info
16
+ const packagePath = join(__dirname, '../../package.json');
17
+ const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
18
+
19
+ console.log(chalk.cyan('🛡️ BaseGuard Version Information\n'));
20
+
21
+ // BaseGuard version
22
+ console.log(chalk.white('BaseGuard:'));
23
+ console.log(` Version: ${chalk.green(packageJson.version)}`);
24
+ console.log(` License: ${packageJson.license}`);
25
+ console.log(` Homepage: ${chalk.blue('https://github.com/baseguard/baseguard')}`);
26
+
27
+ // System information
28
+ console.log(chalk.white('\nSystem:'));
29
+ console.log(` Node.js: ${chalk.green(process.version)}`);
30
+ console.log(` Platform: ${process.platform} ${process.arch}`);
31
+ console.log(` OS: ${process.platform === 'win32' ? 'Windows' : process.platform === 'darwin' ? 'macOS' : 'Linux'}`);
32
+
33
+ // Dependencies
34
+ console.log(chalk.white('\nKey Dependencies:'));
35
+ const deps = packageJson.dependencies;
36
+ console.log(` web-features: ${chalk.green(deps['web-features'])}`);
37
+ console.log(` commander: ${chalk.green(deps.commander)}`);
38
+ console.log(` chalk: ${chalk.green(deps.chalk)}`);
39
+
40
+ // Engine requirements
41
+ console.log(chalk.white('\nRequirements:'));
42
+ console.log(` Node.js: ${chalk.green(packageJson.engines.node)}`);
43
+
44
+ // Check for updates if requested
45
+ if (options.checkUpdates) {
46
+ console.log(chalk.white('\nChecking for updates...'));
47
+ try {
48
+ const { default: fetch } = await import('node-fetch');
49
+ const response = await fetch('https://registry.npmjs.org/baseguard/latest');
50
+ const data = await response.json() as any;
51
+ const latestVersion = data.version;
52
+
53
+ if (latestVersion !== packageJson.version) {
54
+ console.log(chalk.yellow(` 📦 Update available: ${chalk.green(latestVersion)} (current: ${packageJson.version})`));
55
+ console.log(chalk.yellow(` Run: ${chalk.white('npm update -g baseguard')}`));
56
+ } else {
57
+ console.log(chalk.green(' ✅ You have the latest version'));
58
+ }
59
+ } catch (error) {
60
+ console.log(chalk.red(' ❌ Unable to check for updates (network error)'));
61
+ }
62
+ }
63
+
64
+ // Installation info
65
+ console.log(chalk.white('\nInstallation:'));
66
+ console.log(` Global: ${chalk.white('npm install -g baseguard')}`);
67
+ console.log(` Local: ${chalk.white('npm install --save-dev baseguard')}`);
68
+
69
+ // Support links
70
+ console.log(chalk.white('\nSupport:'));
71
+ console.log(` Documentation: ${chalk.blue('https://github.com/baseguard/baseguard#readme')}`);
72
+ console.log(` Issues: ${chalk.blue('https://github.com/baseguard/baseguard/issues')}`);
73
+ console.log(` Discussions: ${chalk.blue('https://github.com/baseguard/baseguard/discussions')}`);
74
+
75
+ } catch (error) {
76
+ console.error(chalk.red('❌ Error reading version information:'), error instanceof Error ? error.message : 'Unknown error');
77
+ process.exit(1);
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Show comprehensive help information
83
+ */
84
+ export function showGlobalHelp(): void {
85
+ showTerminalHeader();
86
+
87
+ console.log(chalk.cyan('🛡️ BaseGuard - Never ship incompatible code again\n'));
88
+
89
+ console.log(chalk.white('DESCRIPTION:'));
90
+ console.log(' BaseGuard is an intelligent browser compatibility enforcement tool that prevents');
91
+ console.log(' incompatible code from reaching production. It combines Baseline detection using');
92
+ console.log(' the web-features package, Gemini AI analysis, and Jules autonomous fixing.\n');
93
+
94
+ console.log(chalk.white('USAGE:'));
95
+ console.log(` ${chalk.cyan('base')} ${chalk.white('<command>')} ${chalk.gray('[options]')}\n`);
96
+
97
+ console.log(chalk.white('CORE COMMANDS:'));
98
+ console.log(` ${chalk.cyan('init')} Initialize BaseGuard in your project`);
99
+ console.log(` ${chalk.cyan('check')} Scan for browser compatibility violations`);
100
+ console.log(` ${chalk.cyan('fix')} Fix violations with AI assistance`);
101
+ console.log(` ${chalk.cyan('config')} Manage configuration and settings`);
102
+ console.log(` ${chalk.cyan('automation')} Manage git hooks and automation\n`);
103
+
104
+ console.log(chalk.white('QUICK COMMANDS:'));
105
+ console.log(` ${chalk.cyan('add')} ${chalk.white('<target>')} Add browser target (e.g., "chrome 100")`);
106
+ console.log(` ${chalk.cyan('remove')} ${chalk.white('<target>')} Remove browser target`);
107
+ console.log(` ${chalk.cyan('list')} Show configuration summary\n`);
108
+
109
+ console.log(chalk.white('UTILITY COMMANDS:'));
110
+ console.log(` ${chalk.cyan('version')} Show version and system information`);
111
+ console.log(` ${chalk.cyan('help')} ${chalk.white('[command]')} Show help for specific command\n`);
112
+
113
+ console.log(chalk.white('GETTING STARTED:'));
114
+ console.log(` 1. ${chalk.white('base init')} Set up BaseGuard in your project`);
115
+ console.log(` 2. ${chalk.white('base config set-keys')} Configure API keys for AI features`);
116
+ console.log(` 3. ${chalk.white('base automation enable')} Enable git hooks for automation`);
117
+ console.log(` 4. ${chalk.white('base check')} Check for compatibility issues\n`);
118
+
119
+ console.log(chalk.white('COMMON WORKFLOWS:'));
120
+ console.log(chalk.yellow(' Basic Compatibility Checking:'));
121
+ console.log(` ${chalk.dim('$')} base init`);
122
+ console.log(` ${chalk.dim('$')} base check`);
123
+ console.log(` ${chalk.dim('$')} base add "chrome 100" ${chalk.gray('# Add specific browser support')}`);
124
+
125
+ console.log(chalk.yellow('\n AI-Powered Fixing:'));
126
+ console.log(` ${chalk.dim('$')} base config set-keys ${chalk.gray('# Configure Gemini & Jules API keys')}`);
127
+ console.log(` ${chalk.dim('$')} base fix ${chalk.gray('# Analyze and fix violations')}`);
128
+
129
+ console.log(chalk.yellow('\n Automated Git Integration:'));
130
+ console.log(` ${chalk.dim('$')} base automation enable ${chalk.gray('# Install git hooks')}`);
131
+ console.log(` ${chalk.dim('$')} git commit ${chalk.gray('# Automatic checking on commit')}`);
132
+
133
+ console.log(chalk.white('\nBROWSER TARGETS:'));
134
+ console.log(` ${chalk.cyan('Presets:')} baseline-widely, baseline-newly, last-2-years, custom`);
135
+ console.log(` ${chalk.cyan('Format:')} "browser version" (e.g., "chrome 100", "safari baseline")`);
136
+ console.log(` ${chalk.cyan('Examples:')} "chrome 100", "safari 15", "firefox baseline"\n`);
137
+
138
+ console.log(chalk.white('AI SERVICES:'));
139
+ console.log(` ${chalk.cyan('Gemini:')} AI analysis of compatibility issues`);
140
+ console.log(` Get API key: ${chalk.blue('https://aistudio.google.com')}`);
141
+ console.log(` ${chalk.cyan('Jules:')} Autonomous code fixing (requires GitHub repository)`);
142
+ console.log(` Get API key: ${chalk.blue('https://jules.google.com')}\n`);
143
+
144
+ console.log(chalk.white('SUPPORTED FILES:'));
145
+ console.log(' • JavaScript/TypeScript: .js, .jsx, .ts, .tsx');
146
+ console.log(' • Framework files: .vue, .svelte');
147
+ console.log(' • Stylesheets: .css');
148
+ console.log(' • Markup: .html\n');
149
+
150
+ console.log(chalk.white('FEATURES DETECTED:'));
151
+ console.log(' • CSS properties, selectors, and at-rules');
152
+ console.log(' • JavaScript APIs and ECMAScript features');
153
+ console.log(' • HTML elements and attributes');
154
+ console.log(' • Web platform APIs (Canvas, WebGL, WebRTC, WebAssembly, etc.)');
155
+ console.log(' • Framework-aware extraction (React, Vue, Svelte)\n');
156
+
157
+ console.log(chalk.white('CONFIGURATION:'));
158
+ console.log(` ${chalk.cyan('File:')} .baseguardrc.json (automatically created)`);
159
+ console.log(` ${chalk.cyan('Security:')} Automatically added to .gitignore`);
160
+ console.log(` ${chalk.cyan('Validation:')} Built-in configuration validation\n`);
161
+
162
+ console.log(chalk.white('EXAMPLES:'));
163
+ console.log(chalk.gray(' # Quick setup and check'));
164
+ console.log(` ${chalk.dim('$')} base init --preset baseline-widely`);
165
+ console.log(` ${chalk.dim('$')} base check --strict`);
166
+
167
+ console.log(chalk.gray('\n # Configure specific browser support'));
168
+ console.log(` ${chalk.dim('$')} base add "chrome 100"`);
169
+ console.log(` ${chalk.dim('$')} base add "safari baseline"`);
170
+ console.log(` ${chalk.dim('$')} base check --files "src/**/*.ts"`);
171
+
172
+ console.log(chalk.gray('\n # Set up AI-powered fixing'));
173
+ console.log(` ${chalk.dim('$')} base config set-keys`);
174
+ console.log(` ${chalk.dim('$')} base fix --analyze-only`);
175
+ console.log(` ${chalk.dim('$')} base fix --auto`);
176
+
177
+ console.log(chalk.gray('\n # Enable automation'));
178
+ console.log(` ${chalk.dim('$')} base automation enable --trigger pre-commit`);
179
+ console.log(` ${chalk.dim('$')} base automation status`);
180
+
181
+ console.log(chalk.white('\nGLOBAL OPTIONS:'));
182
+ console.log(` ${chalk.cyan('--help, -h')} Show help information`);
183
+ console.log(` ${chalk.cyan('--version, -V')} Show version number\n`);
184
+
185
+ console.log(chalk.white('DOCUMENTATION:'));
186
+ console.log(` ${chalk.blue('https://github.com/baseguard/baseguard#readme')}\n`);
187
+
188
+ console.log(chalk.white('SUPPORT:'));
189
+ console.log(` Issues: ${chalk.blue('https://github.com/baseguard/baseguard/issues')}`);
190
+ console.log(` Discussions: ${chalk.blue('https://github.com/baseguard/baseguard/discussions')}\n`);
191
+
192
+ console.log(chalk.gray('For command-specific help, run: base help <command>'));
193
193
  }
package/src/ui/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { UIComponents, Colors } from './components.js';
2
- export { Prompts } from './prompts.js';
3
- export { showTerminalHeader, showCompactHeader } from './terminal-header.js';
1
+ export { UIComponents, Colors } from './components.js';
2
+ export { Prompts } from './prompts.js';
3
+ export { showTerminalHeader, showCompactHeader } from './terminal-header.js';
4
4
  export { showVersionInfo, showGlobalHelp } from './help.js';