@wundr.io/cli 1.0.0 → 1.0.2-dev.20260530174250.ef0ec927

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 (230) hide show
  1. package/README.md +696 -280
  2. package/bin/wundr.js +13 -5
  3. package/package.json +30 -9
  4. package/src/ai/ai-service.ts +6 -4
  5. package/src/ai/claude-client.ts +6 -2
  6. package/src/ai/conversation-manager.ts +12 -5
  7. package/src/cli.ts +42 -13
  8. package/src/commands/ai.ts +340 -64
  9. package/src/commands/alignment.ts +1212 -0
  10. package/src/commands/analyze-optimized.ts +371 -33
  11. package/src/commands/analyze.ts +8 -6
  12. package/src/commands/batch.ts +166 -26
  13. package/src/commands/chat.ts +20 -10
  14. package/src/commands/claude-init.ts +31 -27
  15. package/src/commands/claude-setup.ts +761 -81
  16. package/src/commands/computer-setup.ts +524 -12
  17. package/src/commands/create-command.ts +3 -3
  18. package/src/commands/create.ts +9 -6
  19. package/src/commands/dashboard.ts +11 -6
  20. package/src/commands/govern.ts +11 -6
  21. package/src/commands/governance.ts +1005 -0
  22. package/src/commands/guardian.ts +887 -0
  23. package/src/commands/init.ts +104 -11
  24. package/src/commands/orchestrator.ts +789 -0
  25. package/src/commands/performance-optimizer.ts +15 -10
  26. package/src/commands/plugins.ts +8 -5
  27. package/src/commands/project-update.ts +1156 -0
  28. package/src/commands/rag.ts +1011 -0
  29. package/src/commands/session.ts +631 -0
  30. package/src/commands/setup.ts +42 -344
  31. package/src/commands/test-init.ts +3 -2
  32. package/src/commands/test.ts +3 -2
  33. package/src/commands/watch.ts +21 -11
  34. package/src/commands/worktree.ts +1057 -0
  35. package/src/context/context-manager.ts +5 -2
  36. package/src/context/session-manager.ts +18 -7
  37. package/src/framework/command-interface.ts +520 -0
  38. package/src/framework/command-registry.ts +942 -0
  39. package/src/framework/completion-exporter.ts +383 -0
  40. package/src/framework/debug-logger.ts +519 -0
  41. package/src/framework/error-handler.ts +867 -0
  42. package/src/framework/help-generator.ts +540 -0
  43. package/src/framework/index.ts +169 -0
  44. package/src/framework/interactive-repl.ts +703 -0
  45. package/src/framework/output-formatter.ts +834 -0
  46. package/src/framework/progress-manager.ts +539 -0
  47. package/src/index.ts +3 -2
  48. package/src/interactive/interactive-mode.ts +14 -7
  49. package/src/lib/conflict-resolution.ts +818 -0
  50. package/src/lib/merge-strategy.ts +550 -0
  51. package/src/lib/safety-mechanisms.ts +451 -0
  52. package/src/lib/state-detection.ts +1030 -0
  53. package/src/nlp/command-mapper.ts +8 -3
  54. package/src/nlp/command-parser.ts +5 -2
  55. package/src/nlp/intent-parser.ts +23 -9
  56. package/src/plugins/plugin-manager.ts +50 -24
  57. package/src/tests/computer-setup-integration.test.ts +470 -0
  58. package/src/types/index.ts +1 -1
  59. package/src/types/modules.d.ts +425 -1
  60. package/src/utils/backup-rollback-manager.ts +366 -0
  61. package/src/utils/claude-config-installer.ts +823 -0
  62. package/src/utils/config-manager.ts +9 -6
  63. package/src/utils/error-handler.ts +3 -1
  64. package/src/utils/logger.ts +35 -12
  65. package/templates/batch/ci-cd.yaml +7 -7
  66. package/test-suites/api/health.spec.ts +20 -23
  67. package/test-suites/helpers/test-config.ts +14 -13
  68. package/test-suites/ui/accessibility.spec.ts +27 -22
  69. package/test-suites/ui/smoke.spec.ts +26 -21
  70. package/dist/ai/ai-service.d.ts +0 -152
  71. package/dist/ai/ai-service.d.ts.map +0 -1
  72. package/dist/ai/ai-service.js +0 -430
  73. package/dist/ai/ai-service.js.map +0 -1
  74. package/dist/ai/claude-client.d.ts +0 -130
  75. package/dist/ai/claude-client.d.ts.map +0 -1
  76. package/dist/ai/claude-client.js +0 -339
  77. package/dist/ai/claude-client.js.map +0 -1
  78. package/dist/ai/conversation-manager.d.ts +0 -164
  79. package/dist/ai/conversation-manager.d.ts.map +0 -1
  80. package/dist/ai/conversation-manager.js +0 -612
  81. package/dist/ai/conversation-manager.js.map +0 -1
  82. package/dist/ai/index.d.ts +0 -5
  83. package/dist/ai/index.d.ts.map +0 -1
  84. package/dist/ai/index.js +0 -8
  85. package/dist/ai/index.js.map +0 -1
  86. package/dist/cli.d.ts +0 -36
  87. package/dist/cli.d.ts.map +0 -1
  88. package/dist/cli.js +0 -173
  89. package/dist/cli.js.map +0 -1
  90. package/dist/commands/ai.d.ts +0 -89
  91. package/dist/commands/ai.d.ts.map +0 -1
  92. package/dist/commands/ai.js +0 -735
  93. package/dist/commands/ai.js.map +0 -1
  94. package/dist/commands/analyze-optimized.d.ts +0 -14
  95. package/dist/commands/analyze-optimized.d.ts.map +0 -1
  96. package/dist/commands/analyze-optimized.js +0 -437
  97. package/dist/commands/analyze-optimized.js.map +0 -1
  98. package/dist/commands/analyze.d.ts +0 -65
  99. package/dist/commands/analyze.d.ts.map +0 -1
  100. package/dist/commands/analyze.js +0 -435
  101. package/dist/commands/analyze.js.map +0 -1
  102. package/dist/commands/batch.d.ts +0 -71
  103. package/dist/commands/batch.d.ts.map +0 -1
  104. package/dist/commands/batch.js +0 -738
  105. package/dist/commands/batch.js.map +0 -1
  106. package/dist/commands/chat.d.ts +0 -71
  107. package/dist/commands/chat.d.ts.map +0 -1
  108. package/dist/commands/chat.js +0 -674
  109. package/dist/commands/chat.js.map +0 -1
  110. package/dist/commands/claude-init.d.ts +0 -28
  111. package/dist/commands/claude-init.d.ts.map +0 -1
  112. package/dist/commands/claude-init.js +0 -587
  113. package/dist/commands/claude-init.js.map +0 -1
  114. package/dist/commands/claude-setup.d.ts +0 -32
  115. package/dist/commands/claude-setup.d.ts.map +0 -1
  116. package/dist/commands/claude-setup.js +0 -570
  117. package/dist/commands/claude-setup.js.map +0 -1
  118. package/dist/commands/computer-setup-commands.d.ts +0 -39
  119. package/dist/commands/computer-setup-commands.d.ts.map +0 -1
  120. package/dist/commands/computer-setup-commands.js +0 -563
  121. package/dist/commands/computer-setup-commands.js.map +0 -1
  122. package/dist/commands/computer-setup.d.ts +0 -7
  123. package/dist/commands/computer-setup.d.ts.map +0 -1
  124. package/dist/commands/computer-setup.js +0 -481
  125. package/dist/commands/computer-setup.js.map +0 -1
  126. package/dist/commands/create-command.d.ts +0 -7
  127. package/dist/commands/create-command.d.ts.map +0 -1
  128. package/dist/commands/create-command.js +0 -158
  129. package/dist/commands/create-command.js.map +0 -1
  130. package/dist/commands/create.d.ts +0 -74
  131. package/dist/commands/create.d.ts.map +0 -1
  132. package/dist/commands/create.js +0 -556
  133. package/dist/commands/create.js.map +0 -1
  134. package/dist/commands/dashboard.d.ts +0 -91
  135. package/dist/commands/dashboard.d.ts.map +0 -1
  136. package/dist/commands/dashboard.js +0 -537
  137. package/dist/commands/dashboard.js.map +0 -1
  138. package/dist/commands/govern.d.ts +0 -70
  139. package/dist/commands/govern.d.ts.map +0 -1
  140. package/dist/commands/govern.js +0 -480
  141. package/dist/commands/govern.js.map +0 -1
  142. package/dist/commands/init.d.ts +0 -55
  143. package/dist/commands/init.d.ts.map +0 -1
  144. package/dist/commands/init.js +0 -584
  145. package/dist/commands/init.js.map +0 -1
  146. package/dist/commands/performance-optimizer.d.ts +0 -30
  147. package/dist/commands/performance-optimizer.d.ts.map +0 -1
  148. package/dist/commands/performance-optimizer.js +0 -649
  149. package/dist/commands/performance-optimizer.js.map +0 -1
  150. package/dist/commands/plugins.d.ts +0 -87
  151. package/dist/commands/plugins.d.ts.map +0 -1
  152. package/dist/commands/plugins.js +0 -685
  153. package/dist/commands/plugins.js.map +0 -1
  154. package/dist/commands/setup.d.ts +0 -29
  155. package/dist/commands/setup.d.ts.map +0 -1
  156. package/dist/commands/setup.js +0 -399
  157. package/dist/commands/setup.js.map +0 -1
  158. package/dist/commands/test-init.d.ts +0 -9
  159. package/dist/commands/test-init.d.ts.map +0 -1
  160. package/dist/commands/test-init.js +0 -222
  161. package/dist/commands/test-init.js.map +0 -1
  162. package/dist/commands/test.d.ts +0 -25
  163. package/dist/commands/test.d.ts.map +0 -1
  164. package/dist/commands/test.js +0 -217
  165. package/dist/commands/test.js.map +0 -1
  166. package/dist/commands/watch.d.ts +0 -76
  167. package/dist/commands/watch.d.ts.map +0 -1
  168. package/dist/commands/watch.js +0 -610
  169. package/dist/commands/watch.js.map +0 -1
  170. package/dist/context/context-manager.d.ts +0 -155
  171. package/dist/context/context-manager.d.ts.map +0 -1
  172. package/dist/context/context-manager.js +0 -383
  173. package/dist/context/context-manager.js.map +0 -1
  174. package/dist/context/index.d.ts +0 -3
  175. package/dist/context/index.d.ts.map +0 -1
  176. package/dist/context/index.js +0 -6
  177. package/dist/context/index.js.map +0 -1
  178. package/dist/context/session-manager.d.ts +0 -207
  179. package/dist/context/session-manager.d.ts.map +0 -1
  180. package/dist/context/session-manager.js +0 -682
  181. package/dist/context/session-manager.js.map +0 -1
  182. package/dist/index.d.ts +0 -8
  183. package/dist/index.d.ts.map +0 -1
  184. package/dist/index.js +0 -51
  185. package/dist/index.js.map +0 -1
  186. package/dist/interactive/interactive-mode.d.ts +0 -76
  187. package/dist/interactive/interactive-mode.d.ts.map +0 -1
  188. package/dist/interactive/interactive-mode.js +0 -730
  189. package/dist/interactive/interactive-mode.js.map +0 -1
  190. package/dist/nlp/command-mapper.d.ts +0 -174
  191. package/dist/nlp/command-mapper.d.ts.map +0 -1
  192. package/dist/nlp/command-mapper.js +0 -623
  193. package/dist/nlp/command-mapper.js.map +0 -1
  194. package/dist/nlp/command-parser.d.ts +0 -106
  195. package/dist/nlp/command-parser.d.ts.map +0 -1
  196. package/dist/nlp/command-parser.js +0 -416
  197. package/dist/nlp/command-parser.js.map +0 -1
  198. package/dist/nlp/index.d.ts +0 -5
  199. package/dist/nlp/index.d.ts.map +0 -1
  200. package/dist/nlp/index.js +0 -8
  201. package/dist/nlp/index.js.map +0 -1
  202. package/dist/nlp/intent-classifier.d.ts +0 -59
  203. package/dist/nlp/intent-classifier.d.ts.map +0 -1
  204. package/dist/nlp/intent-classifier.js +0 -384
  205. package/dist/nlp/intent-classifier.js.map +0 -1
  206. package/dist/nlp/intent-parser.d.ts +0 -152
  207. package/dist/nlp/intent-parser.d.ts.map +0 -1
  208. package/dist/nlp/intent-parser.js +0 -739
  209. package/dist/nlp/intent-parser.js.map +0 -1
  210. package/dist/plugins/plugin-manager.d.ts +0 -120
  211. package/dist/plugins/plugin-manager.d.ts.map +0 -1
  212. package/dist/plugins/plugin-manager.js +0 -595
  213. package/dist/plugins/plugin-manager.js.map +0 -1
  214. package/dist/types/index.d.ts +0 -224
  215. package/dist/types/index.d.ts.map +0 -1
  216. package/dist/types/index.js +0 -3
  217. package/dist/types/index.js.map +0 -1
  218. package/dist/utils/config-manager.d.ts +0 -73
  219. package/dist/utils/config-manager.d.ts.map +0 -1
  220. package/dist/utils/config-manager.js +0 -339
  221. package/dist/utils/config-manager.js.map +0 -1
  222. package/dist/utils/error-handler.d.ts +0 -46
  223. package/dist/utils/error-handler.d.ts.map +0 -1
  224. package/dist/utils/error-handler.js +0 -169
  225. package/dist/utils/error-handler.js.map +0 -1
  226. package/dist/utils/logger.d.ts +0 -25
  227. package/dist/utils/logger.d.ts.map +0 -1
  228. package/dist/utils/logger.js +0 -94
  229. package/dist/utils/logger.js.map +0 -1
  230. package/src/commands/computer-setup-commands.ts +0 -709
@@ -1,222 +0,0 @@
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 commander_1 = require("commander");
7
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
- const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
9
- const path_1 = tslib_1.__importDefault(require("path"));
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-init.js","sourceRoot":"","sources":["../../src/commands/test-init.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,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"}
@@ -1,217 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestCommand = void 0;
4
- exports.createTestCommand = createTestCommand;
5
- const tslib_1 = require("tslib");
6
- const commander_1 = require("commander");
7
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
- const child_process_1 = require("child_process");
9
- const path_1 = tslib_1.__importDefault(require("path"));
10
- const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
11
- const ora_1 = tslib_1.__importDefault(require("ora"));
12
- class TestCommand {
13
- testConfigPath;
14
- testsPath;
15
- constructor() {
16
- // Tests are bundled with the CLI package
17
- this.testsPath = path_1.default.join(__dirname, '../../test-suites');
18
- this.testConfigPath = path_1.default.join(process.cwd(), 'wundr-test.config.js');
19
- }
20
- async run(options) {
21
- const spinner = (0, ora_1.default)('Preparing test environment...').start();
22
- try {
23
- // Check if tests are available
24
- if (!(await fs_extra_1.default.pathExists(this.testsPath))) {
25
- spinner.fail('Test suites not found. Please reinstall @wundr/cli');
26
- return;
27
- }
28
- // Load or create config
29
- const config = await this.loadConfig(options);
30
- // Setup test environment
31
- await this.setupTestEnvironment(config);
32
- spinner.succeed('Test environment ready');
33
- // Run tests based on type
34
- switch (options.type) {
35
- case 'ui':
36
- await this.runUITests(config, options);
37
- break;
38
- case 'api':
39
- await this.runAPITests(config, options);
40
- break;
41
- case 'unit':
42
- await this.runUnitTests(config, options);
43
- break;
44
- default:
45
- await this.runAllTests(config, options);
46
- }
47
- }
48
- catch (error) {
49
- spinner.fail('Test execution failed');
50
- console.error(chalk_1.default.red('Error:'), error);
51
- process.exit(1);
52
- }
53
- }
54
- async loadConfig(options) {
55
- let config = {
56
- baseUrl: options.baseUrl || process.env.TEST_BASE_URL || 'http://localhost:3000',
57
- testDir: this.testsPath,
58
- outputDir: path_1.default.join(process.cwd(), 'test-results'),
59
- timeout: 30000,
60
- retries: 2,
61
- workers: 4,
62
- use: {
63
- headless: !options.headed,
64
- screenshot: 'only-on-failure',
65
- video: 'retain-on-failure',
66
- trace: 'on-first-retry',
67
- },
68
- };
69
- // Check for custom config
70
- if (options.config) {
71
- const customConfigPath = path_1.default.resolve(options.config);
72
- if (await fs_extra_1.default.pathExists(customConfigPath)) {
73
- const customConfig = require(customConfigPath);
74
- config = { ...config, ...customConfig };
75
- }
76
- }
77
- else if (await fs_extra_1.default.pathExists(this.testConfigPath)) {
78
- const projectConfig = require(this.testConfigPath);
79
- config = { ...config, ...projectConfig };
80
- }
81
- return config;
82
- }
83
- async setupTestEnvironment(config) {
84
- // Create output directory
85
- await fs_extra_1.default.ensureDir(config.outputDir);
86
- // Copy test files to temp location if needed
87
- const tempTestDir = path_1.default.join(config.outputDir, '.test-suites');
88
- await fs_extra_1.default.copy(this.testsPath, tempTestDir, { overwrite: true });
89
- // Generate Playwright config
90
- const playwrightConfig = `
91
- import { defineConfig, devices } from '@playwright/test';
92
-
93
- export default defineConfig({
94
- testDir: '${tempTestDir}',
95
- outputDir: '${config.outputDir}',
96
- timeout: ${config.timeout},
97
- retries: ${config.retries},
98
- workers: ${config.workers},
99
- reporter: [
100
- ['html', { outputFolder: '${path_1.default.join(config.outputDir, 'html-report')}' }],
101
- ['json', { outputFile: '${path_1.default.join(config.outputDir, 'results.json')}' }],
102
- ['list']
103
- ],
104
- use: {
105
- baseURL: '${config.baseUrl}',
106
- ...${JSON.stringify(config.use, null, 2)}
107
- },
108
- projects: [
109
- { name: 'chromium', use: { ...devices['Desktop Chrome'] } },
110
- { name: 'firefox', use: { ...devices['Desktop Firefox'] } },
111
- { name: 'webkit', use: { ...devices['Desktop Safari'] } }
112
- ]
113
- });
114
- `;
115
- await fs_extra_1.default.writeFile(path_1.default.join(config.outputDir, 'playwright.config.ts'), playwrightConfig);
116
- }
117
- async runUITests(config, options) {
118
- console.log(chalk_1.default.blue('\n🧪 Running UI Tests...'));
119
- const args = [
120
- 'playwright',
121
- 'test',
122
- '--config',
123
- path_1.default.join(config.outputDir, 'playwright.config.ts'),
124
- ];
125
- if (options.browser) {
126
- args.push('--project', options.browser);
127
- }
128
- if (options.watch) {
129
- args.push('--ui');
130
- }
131
- await this.runCommand('npx', args);
132
- if (options.report) {
133
- console.log(chalk_1.default.green('\n📊 Opening test report...'));
134
- await this.runCommand('npx', [
135
- 'playwright',
136
- 'show-report',
137
- path_1.default.join(config.outputDir, 'html-report'),
138
- ]);
139
- }
140
- }
141
- async runAPITests(config, options) {
142
- console.log(chalk_1.default.blue('\n🔌 Running API Tests...'));
143
- const testFiles = await fs_extra_1.default.readdir(path_1.default.join(config.testDir, 'api'));
144
- const apiTests = testFiles.filter(f => f.endsWith('.spec.ts'));
145
- for (const testFile of apiTests) {
146
- console.log(chalk_1.default.gray(` Running ${testFile}...`));
147
- await this.runCommand('npx', [
148
- 'playwright',
149
- 'test',
150
- path_1.default.join(config.testDir, 'api', testFile),
151
- '--config',
152
- path_1.default.join(config.outputDir, 'playwright.config.ts'),
153
- ]);
154
- }
155
- }
156
- async runUnitTests(config, options) {
157
- console.log(chalk_1.default.blue('\n🔬 Running Unit Tests...'));
158
- // Check for Jest or Vitest
159
- const packageJson = await fs_extra_1.default.readJson(path_1.default.join(process.cwd(), 'package.json'));
160
- if (packageJson.scripts?.test) {
161
- await this.runCommand('npm', ['run', 'test']);
162
- }
163
- else {
164
- console.log(chalk_1.default.yellow('No unit tests configured in package.json'));
165
- }
166
- }
167
- async runAllTests(config, options) {
168
- console.log(chalk_1.default.blue('\n🚀 Running All Tests...'));
169
- await this.runUnitTests(config, options);
170
- await this.runAPITests(config, options);
171
- await this.runUITests(config, options);
172
- }
173
- runCommand(command, args) {
174
- return new Promise((resolve, reject) => {
175
- const child = (0, child_process_1.spawn)(command, args, {
176
- stdio: 'inherit',
177
- shell: true,
178
- });
179
- child.on('close', code => {
180
- if (code === 0) {
181
- resolve();
182
- }
183
- else {
184
- reject(new Error(`Command failed with exit code ${code}`));
185
- }
186
- });
187
- child.on('error', reject);
188
- });
189
- }
190
- }
191
- exports.TestCommand = TestCommand;
192
- function createTestCommand() {
193
- const command = new commander_1.Command('test')
194
- .description('Run tests against your application')
195
- .option('-t, --type <type>', 'Type of tests to run (ui, api, unit, all)', 'all')
196
- .option('-b, --browser <browser>', 'Browser to use (chromium, firefox, webkit)')
197
- .option('--headed', 'Run tests in headed mode')
198
- .option('--base-url <url>', 'Base URL for the application')
199
- .option('-c, --config <path>', 'Path to custom test configuration')
200
- .option('-r, --report', 'Open HTML report after tests')
201
- .option('-w, --watch', 'Run tests in watch mode')
202
- .action(async (options) => {
203
- const testCommand = new TestCommand();
204
- await testCommand.run(options);
205
- });
206
- // Add init subcommand
207
- command
208
- .command('init')
209
- .description('Initialize test configuration for your project')
210
- .action(async () => {
211
- const { TestInitCommand } = await Promise.resolve().then(() => tslib_1.__importStar(require('./test-init')));
212
- const initCommand = new TestInitCommand();
213
- await initCommand.run();
214
- });
215
- return command;
216
- }
217
- //# sourceMappingURL=test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- import { Command } from 'commander';
2
- import { ConfigManager } from '../utils/config-manager';
3
- import { PluginManager } from '../plugins/plugin-manager';
4
- /**
5
- * Watch commands for real-time monitoring
6
- */
7
- export declare class WatchCommands {
8
- private program;
9
- private configManager;
10
- private pluginManager;
11
- private watchers;
12
- private activeWatches;
13
- constructor(program: Command, configManager: ConfigManager, pluginManager: PluginManager);
14
- private registerCommands;
15
- /**
16
- * Start watching files or directories
17
- */
18
- private startWatching;
19
- /**
20
- * Stop watching
21
- */
22
- private stopWatching;
23
- /**
24
- * List active watches
25
- */
26
- private listWatches;
27
- /**
28
- * Show watch status
29
- */
30
- private showWatchStatus;
31
- /**
32
- * Create watch configuration
33
- */
34
- private createWatchConfig;
35
- /**
36
- * Load watch configuration from file
37
- */
38
- private loadWatchConfig;
39
- /**
40
- * Save watch configuration to file
41
- */
42
- private saveWatchConfig;
43
- /**
44
- * Watch tests
45
- */
46
- private watchTests;
47
- /**
48
- * Watch build
49
- */
50
- private watchBuild;
51
- /**
52
- * Watch lint
53
- */
54
- private watchLint;
55
- /**
56
- * Watch analysis
57
- */
58
- private watchAnalysis;
59
- /**
60
- * Helper methods
61
- */
62
- private setupWatchHandlers;
63
- private shouldExecuteCommand;
64
- private executeWatchCommand;
65
- private createWatchConfigFromOptions;
66
- private loadWatchConfigFile;
67
- private startWatchingWithConfig;
68
- private createInteractiveWatchConfig;
69
- private parseWatchCommands;
70
- private getTestPatterns;
71
- private getTestCommand;
72
- private getBuildCommand;
73
- private getLintCommand;
74
- private getAnalysisCommand;
75
- }
76
- //# sourceMappingURL=watch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK1D;;GAEG;AACH,qBAAa,aAAa;IAKtB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,aAAa,CAAuC;gBAGlD,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa;IAKtC,OAAO,CAAC,gBAAgB;IAwHxB;;OAEG;YACW,aAAa;IA0C3B;;OAEG;YACW,YAAY;IAgC1B;;OAEG;YACW,WAAW;IA6BzB;;OAEG;YACW,eAAe;IAqC7B;;OAEG;YACW,iBAAiB;IAqC/B;;OAEG;YACW,eAAe;IAiB7B;;OAEG;YACW,eAAe;IAuB7B;;OAEG;YACW,UAAU;IA4BxB;;OAEG;YACW,UAAU;IA4BxB;;OAEG;YACW,SAAS;IA4BvB;;OAEG;YACW,aAAa;IA4B3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,oBAAoB;YAkBd,mBAAmB;IAoCjC,OAAO,CAAC,4BAA4B;YAoBtB,mBAAmB;YAiBnB,uBAAuB;YAqBvB,4BAA4B;IA4C1C,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,kBAAkB;CAG3B"}