@oalacea/daemon 0.5.1 → 0.6.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/dist/cli/cli.d.ts +42 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +89 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/commands/detect.command.d.ts +39 -0
- package/dist/cli/commands/detect.command.d.ts.map +1 -0
- package/dist/cli/commands/detect.command.js +111 -0
- package/dist/cli/commands/detect.command.js.map +1 -0
- package/dist/cli/commands/index.d.ts +14 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +11 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.command.d.ts +41 -0
- package/dist/cli/commands/init.command.d.ts.map +1 -0
- package/dist/cli/commands/init.command.js +111 -0
- package/dist/cli/commands/init.command.js.map +1 -0
- package/dist/cli/commands/test.command.d.ts +58 -0
- package/dist/cli/commands/test.command.d.ts.map +1 -0
- package/dist/cli/commands/test.command.js +180 -0
- package/dist/cli/commands/test.command.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +10 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/config/daemon.config.d.ts +32 -0
- package/dist/core/config/daemon.config.d.ts.map +1 -0
- package/dist/core/config/daemon.config.js +83 -0
- package/dist/core/config/daemon.config.js.map +1 -0
- package/dist/core/config/index.d.ts +5 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +5 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/constants.d.ts +36 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +56 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/types/common.types.d.ts +250 -0
- package/dist/core/types/common.types.d.ts.map +1 -0
- package/dist/core/types/common.types.js +7 -0
- package/dist/core/types/common.types.js.map +1 -0
- package/dist/core/types/detection.types.d.ts +232 -0
- package/dist/core/types/detection.types.d.ts.map +1 -0
- package/dist/core/types/detection.types.js +22 -0
- package/dist/core/types/detection.types.js.map +1 -0
- package/dist/core/types/docker.types.d.ts +322 -0
- package/dist/core/types/docker.types.d.ts.map +1 -0
- package/dist/core/types/docker.types.js +7 -0
- package/dist/core/types/docker.types.js.map +1 -0
- package/dist/core/types/index.d.ts +11 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +7 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/project.types.d.ts +74 -0
- package/dist/core/types/project.types.d.ts.map +1 -0
- package/dist/core/types/project.types.js +7 -0
- package/dist/core/types/project.types.js.map +1 -0
- package/dist/core/types/shared.types.d.ts +118 -0
- package/dist/core/types/shared.types.d.ts.map +1 -0
- package/dist/core/types/shared.types.js +7 -0
- package/dist/core/types/shared.types.js.map +1 -0
- package/dist/core/types/test.types.d.ts +230 -0
- package/dist/core/types/test.types.d.ts.map +1 -0
- package/dist/core/types/test.types.js +7 -0
- package/dist/core/types/test.types.js.map +1 -0
- package/dist/services/detection/__tests__/framework-detector.test.d.ts +5 -0
- package/dist/services/detection/__tests__/framework-detector.test.d.ts.map +1 -0
- package/dist/services/detection/__tests__/framework-detector.test.js +52 -0
- package/dist/services/detection/__tests__/framework-detector.test.js.map +1 -0
- package/dist/services/detection/framework-detector.d.ts +179 -0
- package/dist/services/detection/framework-detector.d.ts.map +1 -0
- package/dist/services/detection/framework-detector.js +636 -0
- package/dist/services/detection/framework-detector.js.map +1 -0
- package/dist/services/detection/index.d.ts +10 -0
- package/dist/services/detection/index.d.ts.map +1 -0
- package/dist/services/detection/index.js +7 -0
- package/dist/services/detection/index.js.map +1 -0
- package/dist/services/docker/__tests__/docker-manager.test.d.ts +5 -0
- package/dist/services/docker/__tests__/docker-manager.test.d.ts.map +1 -0
- package/dist/services/docker/__tests__/docker-manager.test.js +67 -0
- package/dist/services/docker/__tests__/docker-manager.test.js.map +1 -0
- package/dist/services/docker/docker-manager.d.ts +157 -0
- package/dist/services/docker/docker-manager.d.ts.map +1 -0
- package/dist/services/docker/docker-manager.js +516 -0
- package/dist/services/docker/docker-manager.js.map +1 -0
- package/dist/services/docker/index.d.ts +9 -0
- package/dist/services/docker/index.d.ts.map +1 -0
- package/dist/services/docker/index.js +9 -0
- package/dist/services/docker/index.js.map +1 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +8 -0
- package/dist/services/index.js.map +1 -0
- package/dist/shared/errors/__tests__/base.error.test.d.ts +5 -0
- package/dist/shared/errors/__tests__/base.error.test.d.ts.map +1 -0
- package/dist/shared/errors/__tests__/base.error.test.js +61 -0
- package/dist/shared/errors/__tests__/base.error.test.js.map +1 -0
- package/dist/shared/errors/__tests__/command.error.test.d.ts +5 -0
- package/dist/shared/errors/__tests__/command.error.test.d.ts.map +1 -0
- package/dist/shared/errors/__tests__/command.error.test.js +62 -0
- package/dist/shared/errors/__tests__/command.error.test.js.map +1 -0
- package/dist/shared/errors/__tests__/file.error.test.d.ts +5 -0
- package/dist/shared/errors/__tests__/file.error.test.d.ts.map +1 -0
- package/dist/shared/errors/__tests__/file.error.test.js +75 -0
- package/dist/shared/errors/__tests__/file.error.test.js.map +1 -0
- package/dist/shared/errors/__tests__/index.test.d.ts +5 -0
- package/dist/shared/errors/__tests__/index.test.d.ts.map +1 -0
- package/dist/shared/errors/__tests__/index.test.js +62 -0
- package/dist/shared/errors/__tests__/index.test.js.map +1 -0
- package/dist/shared/errors/__tests__/validation.error.test.d.ts +5 -0
- package/dist/shared/errors/__tests__/validation.error.test.d.ts.map +1 -0
- package/dist/shared/errors/__tests__/validation.error.test.js +79 -0
- package/dist/shared/errors/__tests__/validation.error.test.js.map +1 -0
- package/dist/shared/errors/base.error.d.ts +54 -0
- package/dist/shared/errors/base.error.d.ts.map +1 -0
- package/dist/shared/errors/base.error.js +85 -0
- package/dist/shared/errors/base.error.js.map +1 -0
- package/dist/shared/errors/command.error.d.ts +58 -0
- package/dist/shared/errors/command.error.d.ts.map +1 -0
- package/dist/shared/errors/command.error.js +102 -0
- package/dist/shared/errors/command.error.js.map +1 -0
- package/dist/shared/errors/detection.error.d.ts +42 -0
- package/dist/shared/errors/detection.error.d.ts.map +1 -0
- package/dist/shared/errors/detection.error.js +82 -0
- package/dist/shared/errors/detection.error.js.map +1 -0
- package/dist/shared/errors/docker.error.d.ts +142 -0
- package/dist/shared/errors/docker.error.d.ts.map +1 -0
- package/dist/shared/errors/docker.error.js +172 -0
- package/dist/shared/errors/docker.error.js.map +1 -0
- package/dist/shared/errors/file.error.d.ts +66 -0
- package/dist/shared/errors/file.error.d.ts.map +1 -0
- package/dist/shared/errors/file.error.js +93 -0
- package/dist/shared/errors/file.error.js.map +1 -0
- package/dist/shared/errors/index.d.ts +56 -0
- package/dist/shared/errors/index.d.ts.map +1 -0
- package/dist/shared/errors/index.js +86 -0
- package/dist/shared/errors/index.js.map +1 -0
- package/dist/shared/errors/validation.error.d.ts +67 -0
- package/dist/shared/errors/validation.error.d.ts.map +1 -0
- package/dist/shared/errors/validation.error.js +97 -0
- package/dist/shared/errors/validation.error.js.map +1 -0
- package/dist/shared/templates/index.d.ts +2 -0
- package/dist/shared/templates/index.d.ts.map +1 -0
- package/dist/shared/templates/index.js +2 -0
- package/dist/shared/templates/index.js.map +1 -0
- package/dist/shared/templates/prompt-builder.d.ts +2 -0
- package/dist/shared/templates/prompt-builder.d.ts.map +1 -0
- package/dist/shared/templates/prompt-builder.js +2 -0
- package/dist/shared/templates/prompt-builder.js.map +1 -0
- package/dist/shared/templates/template-engine.d.ts +2 -0
- package/dist/shared/templates/template-engine.d.ts.map +1 -0
- package/dist/shared/templates/template-engine.js +2 -0
- package/dist/shared/templates/template-engine.js.map +1 -0
- package/dist/shared/utils/__tests__/command-executor.test.d.ts +5 -0
- package/dist/shared/utils/__tests__/command-executor.test.d.ts.map +1 -0
- package/dist/shared/utils/__tests__/command-executor.test.js +45 -0
- package/dist/shared/utils/__tests__/command-executor.test.js.map +1 -0
- package/dist/shared/utils/__tests__/file-helper.test.d.ts +5 -0
- package/dist/shared/utils/__tests__/file-helper.test.d.ts.map +1 -0
- package/dist/shared/utils/__tests__/file-helper.test.js +71 -0
- package/dist/shared/utils/__tests__/file-helper.test.js.map +1 -0
- package/dist/shared/utils/__tests__/logger.test.d.ts +5 -0
- package/dist/shared/utils/__tests__/logger.test.d.ts.map +1 -0
- package/dist/shared/utils/__tests__/logger.test.js +83 -0
- package/dist/shared/utils/__tests__/logger.test.js.map +1 -0
- package/dist/shared/utils/command-executer.d.ts +2 -0
- package/dist/shared/utils/command-executer.d.ts.map +1 -0
- package/dist/shared/utils/command-executer.js +2 -0
- package/dist/shared/utils/command-executer.js.map +1 -0
- package/dist/shared/utils/command-executor.d.ts +255 -0
- package/dist/shared/utils/command-executor.d.ts.map +1 -0
- package/dist/shared/utils/command-executor.js +287 -0
- package/dist/shared/utils/command-executor.js.map +1 -0
- package/dist/shared/utils/file-helper.d.ts +86 -0
- package/dist/shared/utils/file-helper.d.ts.map +1 -0
- package/dist/shared/utils/file-helper.js +323 -0
- package/dist/shared/utils/file-helper.js.map +1 -0
- package/dist/shared/utils/index.d.ts +9 -0
- package/dist/shared/utils/index.d.ts.map +1 -0
- package/dist/shared/utils/index.js +9 -0
- package/dist/shared/utils/index.js.map +1 -0
- package/dist/shared/utils/logger.d.ts +163 -0
- package/dist/shared/utils/logger.d.ts.map +1 -0
- package/dist/shared/utils/logger.js +389 -0
- package/dist/shared/utils/logger.js.map +1 -0
- package/package.json +25 -6
- package/CHANGELOG.md +0 -46
- package/agents/deps-analyzer.js +0 -366
- package/agents/detector.js +0 -570
- package/agents/fix-engine.js +0 -305
- package/agents/lighthouse-scanner.js +0 -405
- package/agents/perf-analyzer.js +0 -294
- package/agents/perf-front-analyzer.js +0 -229
- package/agents/test-generator.js +0 -387
- package/agents/test-runner.js +0 -318
- package/bin/cli.js +0 -449
- package/lib/config.js +0 -250
- package/lib/docker.js +0 -207
- package/lib/reporter.js +0 -297
- package/scripts/dev.js +0 -106
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Daemon CLI - Main CLI Class
|
|
4
|
+
*
|
|
5
|
+
* @module cli/cli
|
|
6
|
+
*/
|
|
7
|
+
export interface CliContext {
|
|
8
|
+
/** Project directory */
|
|
9
|
+
projectDir: string;
|
|
10
|
+
/** Verbose mode */
|
|
11
|
+
verbose?: boolean;
|
|
12
|
+
/** Silent mode */
|
|
13
|
+
silent?: boolean;
|
|
14
|
+
/** Force mode */
|
|
15
|
+
force?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Main CLI class for Daemon
|
|
19
|
+
*
|
|
20
|
+
* Handles command routing and execution.
|
|
21
|
+
*/
|
|
22
|
+
export declare class DaemonCli {
|
|
23
|
+
private readonly commands;
|
|
24
|
+
constructor();
|
|
25
|
+
/**
|
|
26
|
+
* Run the CLI with provided arguments
|
|
27
|
+
*/
|
|
28
|
+
run(argv: string[]): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Show help message
|
|
31
|
+
*/
|
|
32
|
+
private showHelp;
|
|
33
|
+
/**
|
|
34
|
+
* Get CLI context from environment and flags
|
|
35
|
+
*/
|
|
36
|
+
createContext(options: {
|
|
37
|
+
verbose?: boolean;
|
|
38
|
+
silent?: boolean;
|
|
39
|
+
force?: boolean;
|
|
40
|
+
}): CliContext;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AASH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8D;;IASvF;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BxC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAyBhB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,UAAU;CAQf"}
|
package/dist/cli/cli.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Daemon CLI - Main CLI Class
|
|
4
|
+
*
|
|
5
|
+
* @module cli/cli
|
|
6
|
+
*/
|
|
7
|
+
import { createLogger } from '../shared/utils/logger.js';
|
|
8
|
+
import { InitCommand } from './commands/init.command.js';
|
|
9
|
+
import { DetectCommand } from './commands/detect.command.js';
|
|
10
|
+
import { TestCommand } from './commands/test.command.js';
|
|
11
|
+
const logger = createLogger('DaemonCli');
|
|
12
|
+
/**
|
|
13
|
+
* Main CLI class for Daemon
|
|
14
|
+
*
|
|
15
|
+
* Handles command routing and execution.
|
|
16
|
+
*/
|
|
17
|
+
export class DaemonCli {
|
|
18
|
+
commands;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.commands = new Map();
|
|
21
|
+
this.commands.set('init', new InitCommand());
|
|
22
|
+
this.commands.set('detect', new DetectCommand());
|
|
23
|
+
this.commands.set('test', new TestCommand());
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Run the CLI with provided arguments
|
|
27
|
+
*/
|
|
28
|
+
async run(argv) {
|
|
29
|
+
const args = argv.slice(2); // Skip node and script path
|
|
30
|
+
if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
|
|
31
|
+
this.showHelp();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const commandName = args[0] ?? '';
|
|
35
|
+
const commandArgs = args.slice(1);
|
|
36
|
+
const command = this.commands.get(commandName);
|
|
37
|
+
if (!command) {
|
|
38
|
+
logger.error(`Unknown command: ${commandName}`);
|
|
39
|
+
this.showHelp();
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
await command.execute(commandArgs);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
logger.error('Command execution failed', error);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Show help message
|
|
52
|
+
*/
|
|
53
|
+
showHelp() {
|
|
54
|
+
console.log(`
|
|
55
|
+
Daemon v0.6.0 - AI-powered automated testing toolkit
|
|
56
|
+
|
|
57
|
+
USAGE:
|
|
58
|
+
daemon <command> [options]
|
|
59
|
+
|
|
60
|
+
COMMANDS:
|
|
61
|
+
init Initialize project with Daemon
|
|
62
|
+
detect Detect project framework and tools
|
|
63
|
+
test Generate and run tests
|
|
64
|
+
|
|
65
|
+
OPTIONS:
|
|
66
|
+
--help, -h Show this help message
|
|
67
|
+
--version Show version number
|
|
68
|
+
|
|
69
|
+
EXAMPLES:
|
|
70
|
+
daemon init
|
|
71
|
+
daemon detect
|
|
72
|
+
daemon test --coverage
|
|
73
|
+
|
|
74
|
+
For more information, visit: https://github.com/Pamacea/daemon
|
|
75
|
+
`);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get CLI context from environment and flags
|
|
79
|
+
*/
|
|
80
|
+
createContext(options) {
|
|
81
|
+
return {
|
|
82
|
+
projectDir: process.cwd(),
|
|
83
|
+
verbose: options.verbose ?? false,
|
|
84
|
+
silent: options.silent ?? false,
|
|
85
|
+
force: options.force ?? false,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAazC;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACH,QAAQ,CAA8D;IAEvF;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAA0D,CAAC;QAClF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;QAExD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;KAqBX,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAIb;QACC,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;SAC9B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect Command
|
|
3
|
+
*
|
|
4
|
+
* Detects and displays project framework and tools.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands/detect
|
|
7
|
+
*/
|
|
8
|
+
export interface DetectOptions {
|
|
9
|
+
/** Output format (text, json) */
|
|
10
|
+
format?: 'text' | 'json';
|
|
11
|
+
/** Verbose output */
|
|
12
|
+
verbose?: boolean;
|
|
13
|
+
/** Include alternatives */
|
|
14
|
+
includeAlternatives?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Detect command for Daemon
|
|
18
|
+
*/
|
|
19
|
+
export declare class DetectCommand {
|
|
20
|
+
private readonly detector;
|
|
21
|
+
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Execute the detect command
|
|
24
|
+
*/
|
|
25
|
+
execute(args: string[]): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Parse command line arguments
|
|
28
|
+
*/
|
|
29
|
+
private parseArgs;
|
|
30
|
+
/**
|
|
31
|
+
* Display detection results in text format
|
|
32
|
+
*/
|
|
33
|
+
private displayResults;
|
|
34
|
+
/**
|
|
35
|
+
* Format a detection result with confidence indicator
|
|
36
|
+
*/
|
|
37
|
+
private formatResult;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=detect.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/detect.command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;;IAM7C;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5C;;OAEG;IACH,OAAO,CAAC,SAAS;IAyBjB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0CtB;;OAEG;IACH,OAAO,CAAC,YAAY;CAQrB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect Command
|
|
3
|
+
*
|
|
4
|
+
* Detects and displays project framework and tools.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands/detect
|
|
7
|
+
*/
|
|
8
|
+
import { createLogger } from '../../shared/utils/logger.js';
|
|
9
|
+
import { FrameworkDetector } from '../../services/detection/framework-detector.js';
|
|
10
|
+
const logger = createLogger('DetectCommand');
|
|
11
|
+
/**
|
|
12
|
+
* Detect command for Daemon
|
|
13
|
+
*/
|
|
14
|
+
export class DetectCommand {
|
|
15
|
+
detector;
|
|
16
|
+
constructor() {
|
|
17
|
+
this.detector = new FrameworkDetector();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Execute the detect command
|
|
21
|
+
*/
|
|
22
|
+
async execute(args) {
|
|
23
|
+
const options = this.parseArgs(args);
|
|
24
|
+
try {
|
|
25
|
+
const results = await this.detector.detectAll(process.cwd(), options);
|
|
26
|
+
if (options.format === 'json') {
|
|
27
|
+
console.log(JSON.stringify(results, null, 2));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.displayResults(results, options);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
logger.error('Detection failed', error);
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Parse command line arguments
|
|
40
|
+
*/
|
|
41
|
+
parseArgs(args) {
|
|
42
|
+
const options = {
|
|
43
|
+
format: 'text',
|
|
44
|
+
verbose: false,
|
|
45
|
+
includeAlternatives: false,
|
|
46
|
+
};
|
|
47
|
+
for (const arg of args) {
|
|
48
|
+
switch (arg) {
|
|
49
|
+
case '--json':
|
|
50
|
+
options.format = 'json';
|
|
51
|
+
break;
|
|
52
|
+
case '--verbose':
|
|
53
|
+
case '-v':
|
|
54
|
+
options.verbose = true;
|
|
55
|
+
break;
|
|
56
|
+
case '--alternatives':
|
|
57
|
+
options.includeAlternatives = true;
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return options;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Display detection results in text format
|
|
65
|
+
*/
|
|
66
|
+
displayResults(results, options) {
|
|
67
|
+
console.log('\n🔍 Project Detection Results\n');
|
|
68
|
+
// Framework
|
|
69
|
+
console.log(`Framework: ${this.formatResult(results.framework.value, results.framework.confidence)}`);
|
|
70
|
+
if (results.framework.alternatives && options.includeAlternatives) {
|
|
71
|
+
for (const alt of results.framework.alternatives) {
|
|
72
|
+
console.log(` └─ Alternative: ${alt.value} (${Math.round(alt.confidence * 100)}%)`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Language
|
|
76
|
+
console.log(`Language: ${this.formatResult(results.language.value, results.language.confidence)}`);
|
|
77
|
+
// Test Runner
|
|
78
|
+
console.log(`Test Runner: ${this.formatResult(results.testRunner.value, results.testRunner.confidence)}`);
|
|
79
|
+
// Database
|
|
80
|
+
if (results.database.value) {
|
|
81
|
+
console.log(`Database: ${this.formatResult(results.database.value, results.database.confidence)}`);
|
|
82
|
+
}
|
|
83
|
+
// Test counts
|
|
84
|
+
console.log(`\nExisting Tests: ${results.testCounts.total}`);
|
|
85
|
+
if (options.verbose && results.testCounts.total > 0) {
|
|
86
|
+
console.log(` - In src/: ${results.testCounts.inSrc}`);
|
|
87
|
+
console.log(` - Outside src/: ${results.testCounts.outsideSrc}`);
|
|
88
|
+
}
|
|
89
|
+
// Coverage
|
|
90
|
+
if (results.coverage) {
|
|
91
|
+
console.log(`\nCoverage: ${results.coverage.total.toFixed(1)}%`);
|
|
92
|
+
if (options.verbose) {
|
|
93
|
+
console.log(` - Lines: ${results.coverage.lines.toFixed(1)}%`);
|
|
94
|
+
console.log(` - Branches: ${results.coverage.branches.toFixed(1)}%`);
|
|
95
|
+
console.log(` - Functions: ${results.coverage.functions.toFixed(1)}%`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
console.log(`\nAnalysis completed in ${results.duration}ms`);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Format a detection result with confidence indicator
|
|
102
|
+
*/
|
|
103
|
+
formatResult(value, confidence) {
|
|
104
|
+
if (!value)
|
|
105
|
+
return 'Not detected';
|
|
106
|
+
const percentage = Math.round(confidence * 100);
|
|
107
|
+
const indicator = percentage >= 90 ? '✓' : percentage >= 70 ? '~' : '?';
|
|
108
|
+
return `${value} ${indicator} (${percentage}%)`;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=detect.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.command.js","sourceRoot":"","sources":["../../../src/cli/commands/detect.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Commands Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all CLI commands for the Daemon toolkit.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands
|
|
7
|
+
*/
|
|
8
|
+
export { InitCommand } from './init.command.js';
|
|
9
|
+
export type { InitOptions } from './init.command.js';
|
|
10
|
+
export { DetectCommand } from './detect.command.js';
|
|
11
|
+
export type { DetectOptions } from './detect.command.js';
|
|
12
|
+
export { TestCommand } from './test.command.js';
|
|
13
|
+
export type { TestOptions } from './test.command.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Commands Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all CLI commands for the Daemon toolkit.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands
|
|
7
|
+
*/
|
|
8
|
+
export { InitCommand } from './init.command.js';
|
|
9
|
+
export { DetectCommand } from './detect.command.js';
|
|
10
|
+
export { TestCommand } from './test.command.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Init Command
|
|
3
|
+
*
|
|
4
|
+
* Initializes a project with Daemon testing toolkit.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands/init
|
|
7
|
+
*/
|
|
8
|
+
export interface InitOptions {
|
|
9
|
+
/** Force overwrite existing files */
|
|
10
|
+
force?: boolean;
|
|
11
|
+
/** Skip framework detection */
|
|
12
|
+
skipDetection?: boolean;
|
|
13
|
+
/** Custom output directory */
|
|
14
|
+
output?: string;
|
|
15
|
+
/** Verbose output */
|
|
16
|
+
verbose?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Initialize command for Daemon
|
|
20
|
+
*/
|
|
21
|
+
export declare class InitCommand {
|
|
22
|
+
private readonly detector;
|
|
23
|
+
constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Execute the init command
|
|
26
|
+
*/
|
|
27
|
+
execute(args: string[]): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Parse command line arguments
|
|
30
|
+
*/
|
|
31
|
+
private parseArgs;
|
|
32
|
+
/**
|
|
33
|
+
* Create Daemon configuration
|
|
34
|
+
*/
|
|
35
|
+
private createConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Create test directories
|
|
38
|
+
*/
|
|
39
|
+
private createDirectories;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=init.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;;IAM7C;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B5C;;OAEG;IACH,OAAO,CAAC,SAAS;IA+BjB;;OAEG;YACW,YAAY;IAoB1B;;OAEG;YACW,iBAAiB;CAUhC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Init Command
|
|
3
|
+
*
|
|
4
|
+
* Initializes a project with Daemon testing toolkit.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands/init
|
|
7
|
+
*/
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { createLogger } from '../../shared/utils/logger.js';
|
|
10
|
+
import { fileHelper } from '../../shared/utils/file-helper.js';
|
|
11
|
+
import { FrameworkDetector } from '../../services/detection/framework-detector.js';
|
|
12
|
+
const logger = createLogger('InitCommand');
|
|
13
|
+
/**
|
|
14
|
+
* Initialize command for Daemon
|
|
15
|
+
*/
|
|
16
|
+
export class InitCommand {
|
|
17
|
+
detector;
|
|
18
|
+
constructor() {
|
|
19
|
+
this.detector = new FrameworkDetector();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Execute the init command
|
|
23
|
+
*/
|
|
24
|
+
async execute(args) {
|
|
25
|
+
logger.info('Initializing Daemon...');
|
|
26
|
+
const options = this.parseArgs(args);
|
|
27
|
+
try {
|
|
28
|
+
// Detect framework
|
|
29
|
+
let framework = 'Unknown';
|
|
30
|
+
if (!options.skipDetection) {
|
|
31
|
+
const result = await this.detector.detect(process.cwd());
|
|
32
|
+
framework = result.value ?? 'Unknown';
|
|
33
|
+
logger.info(`Detected framework: ${framework}`);
|
|
34
|
+
}
|
|
35
|
+
// Create daemon config
|
|
36
|
+
await this.createConfig(options);
|
|
37
|
+
// Create test directories
|
|
38
|
+
await this.createDirectories(options);
|
|
39
|
+
logger.success('Daemon initialized successfully!');
|
|
40
|
+
logger.info('Run "daemon detect" to see project details');
|
|
41
|
+
logger.info('Run "daemon test" to generate tests');
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
logger.error('Failed to initialize Daemon', error);
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Parse command line arguments
|
|
50
|
+
*/
|
|
51
|
+
parseArgs(args) {
|
|
52
|
+
const options = {
|
|
53
|
+
force: false,
|
|
54
|
+
skipDetection: false,
|
|
55
|
+
verbose: false,
|
|
56
|
+
};
|
|
57
|
+
for (const arg of args) {
|
|
58
|
+
switch (arg) {
|
|
59
|
+
case '--force':
|
|
60
|
+
case '-f':
|
|
61
|
+
options.force = true;
|
|
62
|
+
break;
|
|
63
|
+
case '--skip-detection':
|
|
64
|
+
options.skipDetection = true;
|
|
65
|
+
break;
|
|
66
|
+
case '--verbose':
|
|
67
|
+
case '-v':
|
|
68
|
+
options.verbose = true;
|
|
69
|
+
break;
|
|
70
|
+
default:
|
|
71
|
+
if (arg.startsWith('--output=')) {
|
|
72
|
+
const value = arg.split('=')[1];
|
|
73
|
+
if (value)
|
|
74
|
+
options.output = value;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return options;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create Daemon configuration
|
|
82
|
+
*/
|
|
83
|
+
async createConfig(options) {
|
|
84
|
+
const configPath = path.join(process.cwd(), 'daemon.config.json');
|
|
85
|
+
if (await fileHelper.exists(configPath) && !options.force) {
|
|
86
|
+
logger.warn('Daemon config already exists. Use --force to overwrite.');
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const config = {
|
|
90
|
+
version: '0.6.0',
|
|
91
|
+
testRunner: 'vitest',
|
|
92
|
+
e2eRunner: 'playwright',
|
|
93
|
+
performanceTool: 'k6',
|
|
94
|
+
generatedAt: new Date().toISOString(),
|
|
95
|
+
};
|
|
96
|
+
await fileHelper.writeJson(configPath, config);
|
|
97
|
+
logger.debug(`Created config: ${configPath}`);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create test directories
|
|
101
|
+
*/
|
|
102
|
+
async createDirectories(options) {
|
|
103
|
+
const baseDir = options.output ?? path.join(process.cwd(), 'tests');
|
|
104
|
+
await fileHelper.ensureDir(baseDir);
|
|
105
|
+
await fileHelper.ensureDir(path.join(baseDir, 'unit'));
|
|
106
|
+
await fileHelper.ensureDir(path.join(baseDir, 'integration'));
|
|
107
|
+
await fileHelper.ensureDir(path.join(baseDir, 'e2e'));
|
|
108
|
+
logger.debug(`Created test directories in: ${baseDir}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=init.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Command
|
|
3
|
+
*
|
|
4
|
+
* Generates and runs tests for the project.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands/test
|
|
7
|
+
*/
|
|
8
|
+
export interface TestOptions {
|
|
9
|
+
/** Generate tests only (don't run) */
|
|
10
|
+
generateOnly?: boolean;
|
|
11
|
+
/** Run existing tests only (don't generate) */
|
|
12
|
+
runOnly?: boolean;
|
|
13
|
+
/** Include coverage report */
|
|
14
|
+
coverage?: boolean;
|
|
15
|
+
/** Watch mode */
|
|
16
|
+
watch?: boolean;
|
|
17
|
+
/** Specific test file pattern */
|
|
18
|
+
pattern?: string;
|
|
19
|
+
/** Verbose output */
|
|
20
|
+
verbose?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Test command for Daemon
|
|
24
|
+
*/
|
|
25
|
+
export declare class TestCommand {
|
|
26
|
+
private readonly detector;
|
|
27
|
+
private readonly docker;
|
|
28
|
+
constructor();
|
|
29
|
+
/**
|
|
30
|
+
* Execute the test command
|
|
31
|
+
*/
|
|
32
|
+
execute(args: string[]): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Parse command line arguments
|
|
35
|
+
*/
|
|
36
|
+
private parseArgs;
|
|
37
|
+
/**
|
|
38
|
+
* Setup Docker container for testing
|
|
39
|
+
*/
|
|
40
|
+
private setupDocker;
|
|
41
|
+
/**
|
|
42
|
+
* Generate tests for the project
|
|
43
|
+
*/
|
|
44
|
+
private generateTests;
|
|
45
|
+
/**
|
|
46
|
+
* Run tests for the project
|
|
47
|
+
*/
|
|
48
|
+
private runTests;
|
|
49
|
+
/**
|
|
50
|
+
* Get the test runner for the framework
|
|
51
|
+
*/
|
|
52
|
+
private getTestRunner;
|
|
53
|
+
/**
|
|
54
|
+
* Build the test command
|
|
55
|
+
*/
|
|
56
|
+
private buildTestCommand;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=test.command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/test.command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;;IAOvC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B5C;;OAEG;IACH,OAAO,CAAC,SAAS;IA0CjB;;OAEG;YACW,WAAW;IAazB;;OAEG;YACW,aAAa;IAS3B;;OAEG;YACW,QAAQ;IAwBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAqBzB"}
|