@wundr.io/cli 1.0.12 → 1.0.14

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 (233) hide show
  1. package/dist/ai/ai-service.d.ts +152 -0
  2. package/dist/ai/ai-service.d.ts.map +1 -0
  3. package/dist/ai/ai-service.js +430 -0
  4. package/dist/ai/ai-service.js.map +1 -0
  5. package/dist/ai/claude-client.d.ts +130 -0
  6. package/dist/ai/claude-client.d.ts.map +1 -0
  7. package/dist/ai/claude-client.js +340 -0
  8. package/dist/ai/claude-client.js.map +1 -0
  9. package/dist/ai/conversation-manager.d.ts +164 -0
  10. package/dist/ai/conversation-manager.d.ts.map +1 -0
  11. package/dist/ai/conversation-manager.js +614 -0
  12. package/dist/ai/conversation-manager.js.map +1 -0
  13. package/dist/ai/index.d.ts +5 -0
  14. package/dist/ai/index.d.ts.map +1 -0
  15. package/dist/ai/index.js +8 -0
  16. package/dist/ai/index.js.map +1 -0
  17. package/dist/cli.d.ts +36 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +192 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/commands/ai.d.ts +89 -0
  22. package/dist/commands/ai.d.ts.map +1 -0
  23. package/dist/commands/ai.js +954 -0
  24. package/dist/commands/ai.js.map +1 -0
  25. package/dist/commands/alignment.d.ts +78 -0
  26. package/dist/commands/alignment.d.ts.map +1 -0
  27. package/dist/commands/alignment.js +817 -0
  28. package/dist/commands/alignment.js.map +1 -0
  29. package/dist/commands/analyze-optimized.d.ts +14 -0
  30. package/dist/commands/analyze-optimized.d.ts.map +1 -0
  31. package/dist/commands/analyze-optimized.js +609 -0
  32. package/dist/commands/analyze-optimized.js.map +1 -0
  33. package/dist/commands/analyze.d.ts +65 -0
  34. package/dist/commands/analyze.d.ts.map +1 -0
  35. package/dist/commands/analyze.js +435 -0
  36. package/dist/commands/analyze.js.map +1 -0
  37. package/dist/commands/batch.d.ts +93 -0
  38. package/dist/commands/batch.d.ts.map +1 -0
  39. package/dist/commands/batch.js +854 -0
  40. package/dist/commands/batch.js.map +1 -0
  41. package/dist/commands/chat.d.ts +72 -0
  42. package/dist/commands/chat.d.ts.map +1 -0
  43. package/dist/commands/chat.js +678 -0
  44. package/dist/commands/chat.js.map +1 -0
  45. package/dist/commands/claude-init.d.ts +28 -0
  46. package/dist/commands/claude-init.d.ts.map +1 -0
  47. package/dist/commands/claude-init.js +591 -0
  48. package/dist/commands/claude-init.js.map +1 -0
  49. package/dist/commands/claude-setup.d.ts +119 -0
  50. package/dist/commands/claude-setup.d.ts.map +1 -0
  51. package/dist/commands/claude-setup.js +1079 -0
  52. package/dist/commands/claude-setup.js.map +1 -0
  53. package/dist/commands/computer-setup.d.ts +8 -0
  54. package/dist/commands/computer-setup.d.ts.map +1 -0
  55. package/dist/commands/computer-setup.js +877 -0
  56. package/dist/commands/computer-setup.js.map +1 -0
  57. package/dist/commands/create-command.d.ts +7 -0
  58. package/dist/commands/create-command.d.ts.map +1 -0
  59. package/dist/commands/create-command.js +158 -0
  60. package/dist/commands/create-command.js.map +1 -0
  61. package/dist/commands/create.d.ts +74 -0
  62. package/dist/commands/create.d.ts.map +1 -0
  63. package/dist/commands/create.js +556 -0
  64. package/dist/commands/create.js.map +1 -0
  65. package/dist/commands/dashboard.d.ts +91 -0
  66. package/dist/commands/dashboard.d.ts.map +1 -0
  67. package/dist/commands/dashboard.js +538 -0
  68. package/dist/commands/dashboard.js.map +1 -0
  69. package/dist/commands/govern.d.ts +70 -0
  70. package/dist/commands/govern.d.ts.map +1 -0
  71. package/dist/commands/govern.js +481 -0
  72. package/dist/commands/govern.js.map +1 -0
  73. package/dist/commands/governance.d.ts +17 -0
  74. package/dist/commands/governance.d.ts.map +1 -0
  75. package/dist/commands/governance.js +703 -0
  76. package/dist/commands/governance.js.map +1 -0
  77. package/dist/commands/guardian.d.ts +20 -0
  78. package/dist/commands/guardian.d.ts.map +1 -0
  79. package/dist/commands/guardian.js +597 -0
  80. package/dist/commands/guardian.js.map +1 -0
  81. package/dist/commands/init.d.ts +59 -0
  82. package/dist/commands/init.d.ts.map +1 -0
  83. package/dist/commands/init.js +650 -0
  84. package/dist/commands/init.js.map +1 -0
  85. package/dist/commands/orchestrator.d.ts +7 -0
  86. package/dist/commands/orchestrator.d.ts.map +1 -0
  87. package/dist/commands/orchestrator.js +578 -0
  88. package/dist/commands/orchestrator.js.map +1 -0
  89. package/dist/commands/performance-optimizer.d.ts +30 -0
  90. package/dist/commands/performance-optimizer.d.ts.map +1 -0
  91. package/dist/commands/performance-optimizer.js +650 -0
  92. package/dist/commands/performance-optimizer.js.map +1 -0
  93. package/dist/commands/plugins.d.ts +87 -0
  94. package/dist/commands/plugins.d.ts.map +1 -0
  95. package/dist/commands/plugins.js +685 -0
  96. package/dist/commands/plugins.js.map +1 -0
  97. package/dist/commands/rag.d.ts +7 -0
  98. package/dist/commands/rag.d.ts.map +1 -0
  99. package/dist/commands/rag.js +751 -0
  100. package/dist/commands/rag.js.map +1 -0
  101. package/dist/commands/session.d.ts +41 -0
  102. package/dist/commands/session.d.ts.map +1 -0
  103. package/dist/commands/session.js +441 -0
  104. package/dist/commands/session.js.map +1 -0
  105. package/dist/commands/setup.d.ts +24 -0
  106. package/dist/commands/setup.d.ts.map +1 -0
  107. package/dist/commands/setup.js +172 -0
  108. package/dist/commands/setup.js.map +1 -0
  109. package/dist/commands/test-init.d.ts +9 -0
  110. package/dist/commands/test-init.d.ts.map +1 -0
  111. package/dist/commands/test-init.js +222 -0
  112. package/dist/commands/test-init.js.map +1 -0
  113. package/dist/commands/test.d.ts +25 -0
  114. package/dist/commands/test.d.ts.map +1 -0
  115. package/dist/commands/test.js +217 -0
  116. package/dist/commands/test.js.map +1 -0
  117. package/dist/commands/watch.d.ts +76 -0
  118. package/dist/commands/watch.d.ts.map +1 -0
  119. package/dist/commands/watch.js +613 -0
  120. package/dist/commands/watch.js.map +1 -0
  121. package/dist/commands/worktree.d.ts +63 -0
  122. package/dist/commands/worktree.d.ts.map +1 -0
  123. package/dist/commands/worktree.js +774 -0
  124. package/dist/commands/worktree.js.map +1 -0
  125. package/dist/context/context-manager.d.ts +155 -0
  126. package/dist/context/context-manager.d.ts.map +1 -0
  127. package/dist/context/context-manager.js +383 -0
  128. package/dist/context/context-manager.js.map +1 -0
  129. package/dist/context/index.d.ts +3 -0
  130. package/dist/context/index.d.ts.map +1 -0
  131. package/dist/context/index.js +6 -0
  132. package/dist/context/index.js.map +1 -0
  133. package/dist/context/session-manager.d.ts +207 -0
  134. package/dist/context/session-manager.d.ts.map +1 -0
  135. package/dist/context/session-manager.js +686 -0
  136. package/dist/context/session-manager.js.map +1 -0
  137. package/dist/framework/command-interface.d.ts +349 -0
  138. package/dist/framework/command-interface.d.ts.map +1 -0
  139. package/dist/framework/command-interface.js +101 -0
  140. package/dist/framework/command-interface.js.map +1 -0
  141. package/dist/framework/command-registry.d.ts +173 -0
  142. package/dist/framework/command-registry.d.ts.map +1 -0
  143. package/dist/framework/command-registry.js +734 -0
  144. package/dist/framework/command-registry.js.map +1 -0
  145. package/dist/framework/completion-exporter.d.ts +79 -0
  146. package/dist/framework/completion-exporter.d.ts.map +1 -0
  147. package/dist/framework/completion-exporter.js +259 -0
  148. package/dist/framework/completion-exporter.js.map +1 -0
  149. package/dist/framework/debug-logger.d.ts +163 -0
  150. package/dist/framework/debug-logger.d.ts.map +1 -0
  151. package/dist/framework/debug-logger.js +373 -0
  152. package/dist/framework/debug-logger.js.map +1 -0
  153. package/dist/framework/error-handler.d.ts +196 -0
  154. package/dist/framework/error-handler.d.ts.map +1 -0
  155. package/dist/framework/error-handler.js +613 -0
  156. package/dist/framework/error-handler.js.map +1 -0
  157. package/dist/framework/help-generator.d.ts +78 -0
  158. package/dist/framework/help-generator.d.ts.map +1 -0
  159. package/dist/framework/help-generator.js +414 -0
  160. package/dist/framework/help-generator.js.map +1 -0
  161. package/dist/framework/index.d.ts +62 -0
  162. package/dist/framework/index.d.ts.map +1 -0
  163. package/dist/framework/index.js +95 -0
  164. package/dist/framework/index.js.map +1 -0
  165. package/dist/framework/interactive-repl.d.ts +138 -0
  166. package/dist/framework/interactive-repl.d.ts.map +1 -0
  167. package/dist/framework/interactive-repl.js +567 -0
  168. package/dist/framework/interactive-repl.js.map +1 -0
  169. package/dist/framework/output-formatter.d.ts +274 -0
  170. package/dist/framework/output-formatter.d.ts.map +1 -0
  171. package/dist/framework/output-formatter.js +545 -0
  172. package/dist/framework/output-formatter.js.map +1 -0
  173. package/dist/framework/progress-manager.d.ts +192 -0
  174. package/dist/framework/progress-manager.d.ts.map +1 -0
  175. package/dist/framework/progress-manager.js +408 -0
  176. package/dist/framework/progress-manager.js.map +1 -0
  177. package/dist/index.d.ts +8 -0
  178. package/dist/index.d.ts.map +1 -0
  179. package/dist/index.js +51 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/interactive/interactive-mode.d.ts +76 -0
  182. package/dist/interactive/interactive-mode.d.ts.map +1 -0
  183. package/dist/interactive/interactive-mode.js +732 -0
  184. package/dist/interactive/interactive-mode.js.map +1 -0
  185. package/dist/nlp/command-mapper.d.ts +174 -0
  186. package/dist/nlp/command-mapper.d.ts.map +1 -0
  187. package/dist/nlp/command-mapper.js +624 -0
  188. package/dist/nlp/command-mapper.js.map +1 -0
  189. package/dist/nlp/command-parser.d.ts +106 -0
  190. package/dist/nlp/command-parser.d.ts.map +1 -0
  191. package/dist/nlp/command-parser.js +417 -0
  192. package/dist/nlp/command-parser.js.map +1 -0
  193. package/dist/nlp/index.d.ts +5 -0
  194. package/dist/nlp/index.d.ts.map +1 -0
  195. package/dist/nlp/index.js +8 -0
  196. package/dist/nlp/index.js.map +1 -0
  197. package/dist/nlp/intent-classifier.d.ts +59 -0
  198. package/dist/nlp/intent-classifier.d.ts.map +1 -0
  199. package/dist/nlp/intent-classifier.js +384 -0
  200. package/dist/nlp/intent-classifier.js.map +1 -0
  201. package/dist/nlp/intent-parser.d.ts +152 -0
  202. package/dist/nlp/intent-parser.d.ts.map +1 -0
  203. package/dist/nlp/intent-parser.js +746 -0
  204. package/dist/nlp/intent-parser.js.map +1 -0
  205. package/dist/plugins/plugin-manager.d.ts +121 -0
  206. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  207. package/dist/plugins/plugin-manager.js +606 -0
  208. package/dist/plugins/plugin-manager.js.map +1 -0
  209. package/dist/types/index.d.ts +224 -0
  210. package/dist/types/index.d.ts.map +1 -0
  211. package/dist/types/index.js +3 -0
  212. package/dist/types/index.js.map +1 -0
  213. package/dist/utils/backup-rollback-manager.d.ts +72 -0
  214. package/dist/utils/backup-rollback-manager.d.ts.map +1 -0
  215. package/dist/utils/backup-rollback-manager.js +288 -0
  216. package/dist/utils/backup-rollback-manager.js.map +1 -0
  217. package/dist/utils/claude-config-installer.d.ts +98 -0
  218. package/dist/utils/claude-config-installer.d.ts.map +1 -0
  219. package/dist/utils/claude-config-installer.js +678 -0
  220. package/dist/utils/claude-config-installer.js.map +1 -0
  221. package/dist/utils/config-manager.d.ts +73 -0
  222. package/dist/utils/config-manager.d.ts.map +1 -0
  223. package/dist/utils/config-manager.js +339 -0
  224. package/dist/utils/config-manager.js.map +1 -0
  225. package/dist/utils/error-handler.d.ts +46 -0
  226. package/dist/utils/error-handler.d.ts.map +1 -0
  227. package/dist/utils/error-handler.js +169 -0
  228. package/dist/utils/error-handler.js.map +1 -0
  229. package/dist/utils/logger.d.ts +25 -0
  230. package/dist/utils/logger.d.ts.map +1 -0
  231. package/dist/utils/logger.js +105 -0
  232. package/dist/utils/logger.js.map +1 -0
  233. package/package.json +6 -6
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ /**
3
+ * Simple Setup Commands - Main setup entry points
4
+ *
5
+ * `wundr setup` (and its sub-commands) delegate to the SAME code path as
6
+ * `wundr computer-setup` (runComputerSetup -> ComputerSetupManager), so there is
7
+ * a single orchestrator engine across the whole CLI. The old RealSetupOrchestrator
8
+ * has been retired.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.SetupCommands = void 0;
12
+ const tslib_1 = require("tslib");
13
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
14
+ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
15
+ const ora_1 = tslib_1.__importDefault(require("ora"));
16
+ const computer_setup_1 = require("./computer-setup");
17
+ class SetupCommands {
18
+ program;
19
+ configManager;
20
+ pluginManager;
21
+ constructor(program, configManager, pluginManager) {
22
+ this.program = program;
23
+ this.configManager = configManager;
24
+ this.pluginManager = pluginManager;
25
+ this.registerCommands();
26
+ }
27
+ registerCommands() {
28
+ // Main setup command (wundr setup)
29
+ this.program
30
+ .command('setup')
31
+ .description('Set up developer machine with required tools')
32
+ .option('-p, --profile <profile>', 'Use specific profile (frontend, backend, fullstack, devops)', 'fullstack')
33
+ .option('--dry-run', 'Show what would be installed without making changes')
34
+ .option('--interactive', 'Run in interactive mode')
35
+ .option('--no-remote-access', 'Skip remote-access provisioning')
36
+ .action(async (options) => {
37
+ await this.runSetup(options);
38
+ });
39
+ // Setup with specific profile (wundr setup:profile frontend)
40
+ const setupProfile = this.program
41
+ .command('setup:profile')
42
+ .description('Set up using a specific developer profile');
43
+ for (const profile of ['frontend', 'backend', 'fullstack', 'devops']) {
44
+ setupProfile
45
+ .command(profile)
46
+ .description(`Set up ${profile} development environment`)
47
+ .action(async () => {
48
+ await this.runSetup({ profile });
49
+ });
50
+ }
51
+ // Validate setup (wundr setup:validate)
52
+ this.program
53
+ .command('setup:validate')
54
+ .description('Validate current development environment setup')
55
+ .option('--profile <profile>', 'Validate against specific profile')
56
+ .option('--fix', 'Attempt to fix issues found')
57
+ .action(async (options) => {
58
+ await this.validateSetup(options);
59
+ });
60
+ // Resume setup (wundr setup:resume) — re-runs idempotently, skipping
61
+ // already-installed tools (the setup flow is now idempotent).
62
+ this.program
63
+ .command('setup:resume')
64
+ .description('Re-run setup, skipping tools that are already installed')
65
+ .option('-p, --profile <profile>', 'Profile to resume', 'fullstack')
66
+ .action(async (options) => {
67
+ await this.runSetup({ ...options, skipExisting: true });
68
+ });
69
+ // Personalize setup (wundr setup:personalize)
70
+ this.program
71
+ .command('setup:personalize')
72
+ .description('Run personalization and configuration')
73
+ .action(async () => {
74
+ await this.personalizeSetup();
75
+ });
76
+ }
77
+ async runSetup(options) {
78
+ // Single source of truth: the same handler that backs `wundr computer-setup`.
79
+ await (0, computer_setup_1.runComputerSetup)({
80
+ profile: options.profile,
81
+ mode: options.interactive ? 'interactive' : 'automated',
82
+ dryRun: Boolean(options.dryRun),
83
+ interactive: Boolean(options.interactive),
84
+ skipExisting: Boolean(options.skipExisting),
85
+ remoteAccess: options.remoteAccess,
86
+ });
87
+ }
88
+ async validateSetup(options) {
89
+ console.log(chalk_1.default.cyan('\n🔍 Validating development environment...\n'));
90
+ const spinner = (0, ora_1.default)('Running validation checks...').start();
91
+ const checks = [
92
+ { name: 'Node.js', test: () => this.checkCommand('node --version') },
93
+ { name: 'Git', test: () => this.checkCommand('git --version') },
94
+ { name: 'Homebrew', test: () => this.checkCommand('brew --version') },
95
+ { name: 'Docker', test: () => this.checkCommand('docker --version') },
96
+ ];
97
+ const results = [];
98
+ for (const check of checks) {
99
+ try {
100
+ results.push({
101
+ name: check.name,
102
+ status: 'pass',
103
+ version: await check.test(),
104
+ });
105
+ }
106
+ catch {
107
+ results.push({ name: check.name, status: 'fail' });
108
+ }
109
+ }
110
+ spinner.stop();
111
+ console.log(chalk_1.default.cyan('📊 Validation Results:\n'));
112
+ results.forEach(result => {
113
+ const icon = result.status === 'pass' ? '✅' : '❌';
114
+ const status = result.status === 'pass'
115
+ ? chalk_1.default.green(result.version || 'installed')
116
+ : chalk_1.default.red('not found');
117
+ console.log(`${icon} ${result.name}: ${status}`);
118
+ });
119
+ const failed = results.filter(r => r.status === 'fail');
120
+ if (failed.length > 0) {
121
+ console.log(chalk_1.default.yellow(`\n⚠️ ${failed.length} issues found`));
122
+ if (options.fix) {
123
+ console.log(chalk_1.default.cyan('\n🔧 Attempting to fix issues...'));
124
+ await this.runSetup({ profile: options.profile || 'fullstack' });
125
+ }
126
+ else {
127
+ console.log(chalk_1.default.cyan('\n💡 Fix issues with: wundr setup:validate --fix'));
128
+ }
129
+ }
130
+ else {
131
+ console.log(chalk_1.default.green('\n✅ All checks passed! Environment is ready.'));
132
+ }
133
+ }
134
+ async personalizeSetup() {
135
+ console.log(chalk_1.default.cyan('\n👤 Personal Configuration Setup\n'));
136
+ const answers = await inquirer_1.default.prompt([
137
+ {
138
+ type: 'input',
139
+ name: 'name',
140
+ message: 'Your name:',
141
+ validate: (input) => input.length > 0 || 'Name is required',
142
+ },
143
+ {
144
+ type: 'input',
145
+ name: 'email',
146
+ message: 'Your email:',
147
+ validate: (input) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(input) || 'Valid email required',
148
+ },
149
+ ]);
150
+ console.log(chalk_1.default.cyan('\n⚙️ Configuring personal settings...'));
151
+ try {
152
+ await this.runCommand(`git config --global user.name "${answers.name}"`);
153
+ await this.runCommand(`git config --global user.email "${answers.email}"`);
154
+ console.log(chalk_1.default.green('✅ Git configured'));
155
+ }
156
+ catch {
157
+ console.log(chalk_1.default.yellow('⚠️ Could not configure Git'));
158
+ }
159
+ console.log(chalk_1.default.green('\n✅ Personalization complete!'));
160
+ }
161
+ async checkCommand(command) {
162
+ const { execa } = await Promise.resolve().then(() => tslib_1.__importStar(require('execa')));
163
+ const { stdout } = await execa('sh', ['-c', command]);
164
+ return stdout?.split('\n')[0] || '';
165
+ }
166
+ async runCommand(command) {
167
+ const { execa } = await Promise.resolve().then(() => tslib_1.__importStar(require('execa')));
168
+ await execa('sh', ['-c', command]);
169
+ }
170
+ }
171
+ exports.SetupCommands = SetupCommands;
172
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Command } from 'commander';
2
+ export declare class TestInitCommand {
3
+ run(): Promise<void>;
4
+ private generateConfig;
5
+ private updatePackageJson;
6
+ private generateCIConfig;
7
+ }
8
+ export declare function createTestInitCommand(): Command;
9
+ //# sourceMappingURL=test-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-init.d.ts","sourceRoot":"","sources":["../../src/commands/test-init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,qBAAa,eAAe;IACpB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAoF1B,OAAO,CAAC,cAAc;YAsER,iBAAiB;YAmBjB,gBAAgB;CAkD/B;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAS/C"}
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestInitCommand = void 0;
4
+ exports.createTestInitCommand = createTestInitCommand;
5
+ const tslib_1 = require("tslib");
6
+ const path_1 = tslib_1.__importDefault(require("path"));
7
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const commander_1 = require("commander");
9
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
10
+ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
11
+ class TestInitCommand {
12
+ async run() {
13
+ console.log(chalk_1.default.blue('\n🧪 Initializing Wundr Test Configuration\n'));
14
+ const answers = await inquirer_1.default.prompt([
15
+ {
16
+ type: 'input',
17
+ name: 'baseURL',
18
+ message: "What is your application's base URL?",
19
+ default: 'http://localhost:3000',
20
+ },
21
+ {
22
+ type: 'input',
23
+ name: 'apiURL',
24
+ message: 'What is your API base URL?',
25
+ default: 'http://localhost:3000/api',
26
+ },
27
+ {
28
+ type: 'checkbox',
29
+ name: 'testSuites',
30
+ message: 'Which test suites would you like to enable?',
31
+ choices: [
32
+ { name: 'Smoke Tests', value: 'smoke', checked: true },
33
+ {
34
+ name: 'Accessibility Tests',
35
+ value: 'accessibility',
36
+ checked: true,
37
+ },
38
+ { name: 'API Tests', value: 'api', checked: true },
39
+ { name: 'Performance Tests', value: 'performance', checked: false },
40
+ { name: 'Security Tests', value: 'security', checked: false },
41
+ ],
42
+ },
43
+ {
44
+ type: 'checkbox',
45
+ name: 'browsers',
46
+ message: 'Which browsers should we test?',
47
+ choices: [
48
+ { name: 'Chromium', value: 'chromium', checked: true },
49
+ { name: 'Firefox', value: 'firefox', checked: false },
50
+ { name: 'Safari (WebKit)', value: 'webkit', checked: false },
51
+ { name: 'Mobile', value: 'mobile', checked: true },
52
+ ],
53
+ },
54
+ {
55
+ type: 'confirm',
56
+ name: 'headless',
57
+ message: 'Run tests in headless mode?',
58
+ default: true,
59
+ },
60
+ {
61
+ type: 'confirm',
62
+ name: 'ci',
63
+ message: 'Would you like to add CI/CD configuration?',
64
+ default: true,
65
+ },
66
+ ]);
67
+ // Generate configuration
68
+ const config = this.generateConfig(answers);
69
+ // Write configuration file
70
+ const configPath = path_1.default.join(process.cwd(), 'wundr-test.config.js');
71
+ await fs_extra_1.default.writeFile(configPath, config);
72
+ console.log(chalk_1.default.green('\n✅ Test configuration created: wundr-test.config.js'));
73
+ // Add package.json scripts
74
+ await this.updatePackageJson();
75
+ // Generate CI configuration if requested
76
+ if (answers.ci) {
77
+ await this.generateCIConfig(answers);
78
+ }
79
+ // Show next steps
80
+ console.log(chalk_1.default.cyan('\n📋 Next Steps:'));
81
+ console.log(' 1. Install Playwright: npm install -D @playwright/test');
82
+ console.log(' 2. Run tests: npm run test:wundr');
83
+ console.log(' 3. View report: npm run test:report');
84
+ console.log(' 4. Customize wundr-test.config.js as needed');
85
+ }
86
+ generateConfig(answers) {
87
+ const testSuites = answers.testSuites.reduce((acc, suite) => {
88
+ acc[suite] = true;
89
+ return acc;
90
+ }, {});
91
+ const projects = answers.browsers
92
+ .map((browser) => {
93
+ if (browser === 'mobile') {
94
+ return ` {
95
+ name: 'mobile',
96
+ use: {
97
+ browserName: 'chromium',
98
+ viewport: { width: 375, height: 667 },
99
+ userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)'
100
+ }
101
+ }`;
102
+ }
103
+ return ` {
104
+ name: '${browser}',
105
+ use: {
106
+ browserName: '${browser}',
107
+ viewport: { width: 1280, height: 720 }
108
+ }
109
+ }`;
110
+ })
111
+ .join(',\n');
112
+ return `/**
113
+ * Wundr Test Configuration
114
+ * Generated on ${new Date().toISOString()}
115
+ */
116
+
117
+ module.exports = {
118
+ // Base URL of your application
119
+ baseURL: '${answers.baseURL}',
120
+
121
+ // Test execution settings
122
+ timeout: 30000,
123
+ retries: 2,
124
+ workers: 4,
125
+
126
+ // Browser settings
127
+ headless: ${answers.headless},
128
+ slowMo: 0,
129
+
130
+ // Screenshot and video settings
131
+ screenshot: 'only-on-failure',
132
+ video: 'retain-on-failure',
133
+ trace: 'on-first-retry',
134
+
135
+ // API configuration
136
+ api: {
137
+ baseURL: '${answers.apiURL}',
138
+ headers: {
139
+ 'Content-Type': 'application/json'
140
+ },
141
+ timeout: 10000
142
+ },
143
+
144
+ // Enabled test suites
145
+ testSuites: ${JSON.stringify(testSuites, null, 4)},
146
+
147
+ // Projects/browsers to test
148
+ projects: [
149
+ ${projects}
150
+ ]
151
+ };`;
152
+ }
153
+ async updatePackageJson() {
154
+ const packageJsonPath = path_1.default.join(process.cwd(), 'package.json');
155
+ if (await fs_extra_1.default.pathExists(packageJsonPath)) {
156
+ const packageJson = await fs_extra_1.default.readJson(packageJsonPath);
157
+ packageJson.scripts = packageJson.scripts || {};
158
+ packageJson.scripts['test:wundr'] = 'wundr test';
159
+ packageJson.scripts['test:wundr:ui'] = 'wundr test --type ui';
160
+ packageJson.scripts['test:wundr:api'] = 'wundr test --type api';
161
+ packageJson.scripts['test:wundr:headed'] = 'wundr test --headed';
162
+ packageJson.scripts['test:report'] = 'wundr test --report';
163
+ await fs_extra_1.default.writeJson(packageJsonPath, packageJson, { spaces: 2 });
164
+ console.log(chalk_1.default.green('✅ Added test scripts to package.json'));
165
+ }
166
+ }
167
+ async generateCIConfig(answers) {
168
+ const githubWorkflow = `name: Wundr Tests
169
+
170
+ on:
171
+ push:
172
+ branches: [ main, master ]
173
+ pull_request:
174
+ branches: [ main, master ]
175
+
176
+ jobs:
177
+ test:
178
+ runs-on: ubuntu-latest
179
+
180
+ steps:
181
+ - uses: actions/checkout@v3
182
+
183
+ - name: Setup Node.js
184
+ uses: actions/setup-node@v3
185
+ with:
186
+ node-version: '18'
187
+
188
+ - name: Install dependencies
189
+ run: npm ci
190
+
191
+ - name: Install Playwright
192
+ run: npx playwright install --with-deps
193
+
194
+ - name: Run Wundr tests
195
+ run: npm run test:wundr
196
+ env:
197
+ TEST_BASE_URL: '${answers.baseURL}'
198
+
199
+ - name: Upload test results
200
+ if: always()
201
+ uses: actions/upload-artifact@v3
202
+ with:
203
+ name: test-results
204
+ path: test-results/
205
+ retention-days: 30`;
206
+ const githubDir = path_1.default.join(process.cwd(), '.github', 'workflows');
207
+ await fs_extra_1.default.ensureDir(githubDir);
208
+ await fs_extra_1.default.writeFile(path_1.default.join(githubDir, 'wundr-tests.yml'), githubWorkflow);
209
+ console.log(chalk_1.default.green('✅ Created GitHub Actions workflow: .github/workflows/wundr-tests.yml'));
210
+ }
211
+ }
212
+ exports.TestInitCommand = TestInitCommand;
213
+ function createTestInitCommand() {
214
+ const command = new commander_1.Command('test-init')
215
+ .description('Initialize Wundr test configuration for your project')
216
+ .action(async () => {
217
+ const initCommand = new TestInitCommand();
218
+ await initCommand.run();
219
+ });
220
+ return command;
221
+ }
222
+ //# sourceMappingURL=test-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-init.js","sourceRoot":"","sources":["../../src/commands/test-init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Command } from 'commander';
2
+ export interface TestOptions {
3
+ type?: 'ui' | 'api' | 'unit' | 'all';
4
+ browser?: 'chromium' | 'firefox' | 'webkit';
5
+ headed?: boolean;
6
+ baseUrl?: string;
7
+ config?: string;
8
+ report?: boolean;
9
+ watch?: boolean;
10
+ }
11
+ export declare class TestCommand {
12
+ private testConfigPath;
13
+ private testsPath;
14
+ constructor();
15
+ run(options: TestOptions): Promise<void>;
16
+ private loadConfig;
17
+ private setupTestEnvironment;
18
+ private runUITests;
19
+ private runAPITests;
20
+ private runUnitTests;
21
+ private runAllTests;
22
+ private runCommand;
23
+ }
24
+ export declare function createTestCommand(): Command;
25
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACrC,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;;IAQpB,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAuChC,UAAU;YAgCV,oBAAoB;YAyCpB,UAAU;YA8BV,WAAW;YAkBX,YAAY;YAeZ,WAAW;IAQzB,OAAO,CAAC,UAAU;CAkBnB;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAiC3C"}