codemerge-cli 1.3.6 → 1.3.8
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.js +18 -16
- package/dist/cli.js.map +1 -1
- package/dist/commands/{help.d.ts → help/index.d.ts} +3 -4
- package/dist/commands/help/index.d.ts.map +1 -0
- package/dist/commands/help/index.js +39 -0
- package/dist/commands/help/index.js.map +1 -0
- package/dist/commands/help/types.d.ts +5 -0
- package/dist/commands/help/types.d.ts.map +1 -0
- package/dist/commands/help/types.js +2 -0
- package/dist/commands/help/types.js.map +1 -0
- package/dist/commands/{init.d.ts → init/index.d.ts} +2 -2
- package/dist/commands/init/index.d.ts.map +1 -0
- package/dist/commands/{init.js → init/index.js} +18 -27
- package/dist/commands/init/index.js.map +1 -0
- package/dist/commands/init/types.d.ts +4 -0
- package/dist/commands/init/types.d.ts.map +1 -0
- package/dist/commands/init/types.js +2 -0
- package/dist/commands/init/types.js.map +1 -0
- package/dist/commands/use/index.d.ts +6 -0
- package/dist/commands/use/index.d.ts.map +1 -0
- package/dist/commands/use/index.js +60 -0
- package/dist/commands/use/index.js.map +1 -0
- package/dist/commands/use/types.d.ts +4 -0
- package/dist/commands/use/types.d.ts.map +1 -0
- package/dist/commands/use/types.js +2 -0
- package/dist/commands/use/types.js.map +1 -0
- package/dist/commands/version/index.d.ts +8 -0
- package/dist/commands/version/index.d.ts.map +1 -0
- package/dist/commands/version/index.js +20 -0
- package/dist/commands/version/index.js.map +1 -0
- package/dist/commands/version/types.d.ts +5 -0
- package/dist/commands/version/types.d.ts.map +1 -0
- package/dist/commands/version/types.js +2 -0
- package/dist/commands/version/types.js.map +1 -0
- package/dist/commands/{watch.d.ts → watch/index.d.ts} +2 -2
- package/dist/commands/watch/index.d.ts.map +1 -0
- package/dist/commands/{watch.js → watch/index.js} +22 -20
- package/dist/commands/watch/index.js.map +1 -0
- package/dist/commands/watch/types.d.ts +5 -0
- package/dist/commands/watch/types.d.ts.map +1 -0
- package/dist/commands/watch/types.js +2 -0
- package/dist/commands/watch/types.js.map +1 -0
- package/dist/core/codeMerger.d.ts +1 -1
- package/dist/core/codeMerger.d.ts.map +1 -1
- package/dist/core/codeMerger.js +17 -19
- package/dist/core/codeMerger.js.map +1 -1
- package/dist/core/config.d.ts +3 -3
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +18 -18
- package/dist/core/config.js.map +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/fileWatcher.d.ts +3 -3
- package/dist/core/fileWatcher.d.ts.map +1 -1
- package/dist/core/fileWatcher.js +14 -14
- package/dist/core/fileWatcher.js.map +1 -1
- package/dist/core/httpServer/controllers/file.d.ts +4 -0
- package/dist/core/httpServer/controllers/file.d.ts.map +1 -0
- package/dist/core/httpServer/controllers/file.js +101 -0
- package/dist/core/httpServer/controllers/file.js.map +1 -0
- package/dist/core/httpServer/controllers/git.d.ts +3 -0
- package/dist/core/httpServer/controllers/git.d.ts.map +1 -0
- package/dist/core/httpServer/controllers/git.js +47 -0
- package/dist/core/httpServer/controllers/git.js.map +1 -0
- package/dist/core/httpServer/controllers/merge.d.ts +5 -0
- package/dist/core/httpServer/controllers/merge.d.ts.map +1 -0
- package/dist/core/httpServer/controllers/merge.js +64 -0
- package/dist/core/httpServer/controllers/merge.js.map +1 -0
- package/dist/core/httpServer/controllers/system.d.ts +6 -0
- package/dist/core/httpServer/controllers/system.d.ts.map +1 -0
- package/dist/core/httpServer/controllers/system.js +87 -0
- package/dist/core/httpServer/controllers/system.js.map +1 -0
- package/dist/core/httpServer/index.d.ts +19 -0
- package/dist/core/httpServer/index.d.ts.map +1 -0
- package/dist/core/httpServer/index.js +59 -0
- package/dist/core/httpServer/index.js.map +1 -0
- package/dist/core/httpServer/router.d.ts +5 -0
- package/dist/core/httpServer/router.d.ts.map +1 -0
- package/dist/core/httpServer/router.js +31 -0
- package/dist/core/httpServer/router.js.map +1 -0
- package/dist/core/httpServer/services/command.d.ts +11 -0
- package/dist/core/httpServer/services/command.d.ts.map +1 -0
- package/dist/core/httpServer/services/command.js +36 -0
- package/dist/core/httpServer/services/command.js.map +1 -0
- package/dist/core/httpServer/types.d.ts +16 -0
- package/dist/core/httpServer/types.d.ts.map +1 -0
- package/dist/core/httpServer/types.js +2 -0
- package/dist/core/httpServer/types.js.map +1 -0
- package/dist/core/mergeCache.d.ts +1 -1
- package/dist/core/mergeCache.d.ts.map +1 -1
- package/dist/core/mergeCache.js +1 -1
- package/dist/core/mergeCache.js.map +1 -1
- package/dist/utils/file.d.ts +13 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/{fileUtils.js → file.js} +16 -25
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +4 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/path.d.ts +10 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +16 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/pattern.d.ts +1 -1
- package/dist/utils/pattern.d.ts.map +1 -1
- package/dist/utils/pattern.js +5 -8
- package/dist/utils/pattern.js.map +1 -1
- package/dist/utils/process.d.ts +4 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +21 -0
- package/dist/utils/process.js.map +1 -0
- package/dist/utils/translate.d.ts +3 -1
- package/dist/utils/translate.d.ts.map +1 -1
- package/dist/utils/translate.js +28 -26
- package/dist/utils/translate.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/help.d.ts.map +0 -1
- package/dist/commands/help.js +0 -44
- package/dist/commands/help.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/use.d.ts +0 -6
- package/dist/commands/use.d.ts.map +0 -1
- package/dist/commands/use.js +0 -54
- package/dist/commands/use.js.map +0 -1
- package/dist/commands/version.d.ts +0 -9
- package/dist/commands/version.d.ts.map +0 -1
- package/dist/commands/version.js +0 -32
- package/dist/commands/version.js.map +0 -1
- package/dist/commands/watch.d.ts.map +0 -1
- package/dist/commands/watch.js.map +0 -1
- package/dist/core/httpServer.d.ts +0 -34
- package/dist/core/httpServer.d.ts.map +0 -1
- package/dist/core/httpServer.js +0 -377
- package/dist/core/httpServer.js.map +0 -1
- package/dist/utils/fileUtils.d.ts +0 -13
- package/dist/utils/fileUtils.d.ts.map +0 -1
- package/dist/utils/fileUtils.js.map +0 -1
- package/dist/utils/pathUtils.d.ts +0 -10
- package/dist/utils/pathUtils.d.ts.map +0 -1
- package/dist/utils/pathUtils.js +0 -29
- package/dist/utils/pathUtils.js.map +0 -1
- package/dist/utils/patternUtils.d.ts +0 -8
- package/dist/utils/patternUtils.d.ts.map +0 -1
- package/dist/utils/patternUtils.js +0 -90
- package/dist/utils/patternUtils.js.map +0 -1
- package/dist/utils/proccessCmd.d.ts +0 -4
- package/dist/utils/proccessCmd.d.ts.map +0 -1
- package/dist/utils/proccessCmd.js +0 -29
- package/dist/utils/proccessCmd.js.map +0 -1
- package/dist/utils/processUtils.d.ts +0 -4
- package/dist/utils/processUtils.d.ts.map +0 -1
- package/dist/utils/processUtils.js +0 -28
- package/dist/utils/processUtils.js.map +0 -1
- package/dist/utils/translateUtils.d.ts +0 -2
- package/dist/utils/translateUtils.d.ts.map +0 -1
- package/dist/utils/translateUtils.js +0 -29
- package/dist/utils/translateUtils.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Command } from 'commander';
|
|
3
|
-
import { readFileSync, readdirSync } from 'fs';
|
|
4
|
-
import { dirname, join, extname } from 'path';
|
|
5
2
|
import { fileURLToPath, pathToFileURL } from 'url';
|
|
6
|
-
import {
|
|
3
|
+
import { readFileSync, readdirSync } from 'fs';
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { dirname, join } from 'path';
|
|
6
|
+
import Logger from './utils/logger.js';
|
|
7
7
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
8
|
const __dirname = dirname(__filename);
|
|
9
9
|
class CLI {
|
|
@@ -12,24 +12,25 @@ class CLI {
|
|
|
12
12
|
this.program = new Command();
|
|
13
13
|
this.setupProgram();
|
|
14
14
|
}
|
|
15
|
-
setupProgram() {
|
|
15
|
+
setupProgram = () => {
|
|
16
16
|
const packagePath = join(__dirname, '../package.json');
|
|
17
17
|
const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
18
18
|
this.program.name('codemerge').description(packageJson.description).version(packageJson.version);
|
|
19
|
-
}
|
|
20
|
-
async
|
|
19
|
+
};
|
|
20
|
+
registerCommands = async () => {
|
|
21
21
|
const commandsPath = join(__dirname, 'commands');
|
|
22
|
-
const
|
|
23
|
-
for (const
|
|
24
|
-
|
|
22
|
+
const entries = readdirSync(commandsPath, { withFileTypes: true });
|
|
23
|
+
for (const entry of entries) {
|
|
24
|
+
if (entry.isDirectory())
|
|
25
|
+
await this.registerCommand(commandsPath, `${entry.name}/index.js`);
|
|
25
26
|
}
|
|
26
|
-
}
|
|
27
|
-
async
|
|
27
|
+
};
|
|
28
|
+
registerCommand = async (commandsPath, fileName) => {
|
|
28
29
|
try {
|
|
29
30
|
const filePath = join(commandsPath, fileName);
|
|
30
31
|
const fileUrl = pathToFileURL(filePath).href;
|
|
31
32
|
const module = await import(fileUrl);
|
|
32
|
-
const CommandClass = module
|
|
33
|
+
const CommandClass = module.default;
|
|
33
34
|
if (!CommandClass) {
|
|
34
35
|
Logger.warning(`Skipping ${fileName}: No command class found`);
|
|
35
36
|
return;
|
|
@@ -44,12 +45,13 @@ class CLI {
|
|
|
44
45
|
catch (error) {
|
|
45
46
|
Logger.error(`Failed to load ${fileName}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
46
47
|
}
|
|
47
|
-
}
|
|
48
|
-
async
|
|
48
|
+
};
|
|
49
|
+
run = async () => {
|
|
49
50
|
await this.registerCommands();
|
|
50
51
|
this.program.parse(process.argv);
|
|
51
|
-
}
|
|
52
|
+
};
|
|
52
53
|
}
|
|
54
|
+
;
|
|
53
55
|
(async () => {
|
|
54
56
|
const cli = new CLI();
|
|
55
57
|
await cli.run();
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../lib/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../lib/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
export
|
|
3
|
-
register(program: Command)
|
|
2
|
+
export default class HelpCommand {
|
|
3
|
+
register: (program: Command) => void;
|
|
4
4
|
private execute;
|
|
5
|
-
private displayBanner;
|
|
6
5
|
private displayHelp;
|
|
7
6
|
private displayCommandHelp;
|
|
8
7
|
private getPackageJson;
|
|
9
8
|
}
|
|
10
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/help/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,CAAC,OAAO,OAAO,WAAW;IACvB,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAMzC;IAED,OAAO,CAAC,OAAO,CAOd;IAED,OAAO,CAAC,WAAW,CAMlB;IAED,OAAO,CAAC,kBAAkB,CAQzB;IAED,OAAO,CAAC,cAAc,CAAsG;CAC7H"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import Logger from '../../utils/logger.js';
|
|
2
|
+
import File from '../../utils/file.js';
|
|
3
|
+
import Path from '../../utils/path.js';
|
|
4
|
+
export default class HelpCommand {
|
|
5
|
+
register = (program) => {
|
|
6
|
+
program
|
|
7
|
+
.command('help')
|
|
8
|
+
.description('Display help information')
|
|
9
|
+
.argument('[command]', 'Command to get help for')
|
|
10
|
+
.action((command) => this.execute(program, command));
|
|
11
|
+
};
|
|
12
|
+
execute = async (program, command) => {
|
|
13
|
+
try {
|
|
14
|
+
this.displayHelp(program, command);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
displayHelp = (program, command) => {
|
|
22
|
+
if (command) {
|
|
23
|
+
this.displayCommandHelp(program, command);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
program.help();
|
|
27
|
+
};
|
|
28
|
+
displayCommandHelp = (program, commandName) => {
|
|
29
|
+
const cmd = program.commands.find(c => c.name() === commandName);
|
|
30
|
+
if (cmd) {
|
|
31
|
+
cmd.help();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
Logger.error(`Command '${commandName}' not found`);
|
|
35
|
+
program.help();
|
|
36
|
+
};
|
|
37
|
+
getPackageJson = () => File.readJson(Path.getPackagePath(import.meta.url, 'package.json'));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/help/index.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,kBAAkB,CAAA;AACrC,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,IAAI,MAAM,gBAAgB,CAAA;AAIjC,MAAM,CAAC,OAAO,OAAO,WAAW;IACvB,QAAQ,GAAG,CAAC,OAAgB,EAAQ,EAAE;QAC3C,OAAO;aACJ,OAAO,CAAC,MAAM,CAAC;aACf,WAAW,CAAC,0BAA0B,CAAC;aACvC,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;aAChD,MAAM,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IACjE,CAAC,CAAA;IAEO,OAAO,GAAG,KAAK,EAAE,OAAgB,EAAE,OAAgB,EAAiB,EAAE;QAC5E,IAAI,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAA;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAA;IAEO,WAAW,GAAG,CAAC,OAAgB,EAAE,OAAgB,EAAQ,EAAE;QACjE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC,CAAA;IAEO,kBAAkB,GAAG,CAAC,OAAgB,EAAE,WAAmB,EAAQ,EAAE;QAC3E,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,CAAA;QAChE,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,YAAY,WAAW,aAAa,CAAC,CAAA;QAClD,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC,CAAA;IAEO,cAAc,GAAG,GAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAc,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;CAC7H"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/commands/help/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/help/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
export
|
|
2
|
+
export default class InitCommand {
|
|
3
3
|
register: (program: Command) => void;
|
|
4
4
|
private execute;
|
|
5
5
|
private getProjectName;
|
|
6
6
|
private createConfigFile;
|
|
7
7
|
private updateGitignore;
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC,MAAM,CAAC,OAAO,OAAO,WAAW;IACvB,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAOzC;IAED,OAAO,CAAC,OAAO,CAwBd;IAED,OAAO,CAAC,cAAc,CAWrB;IAED,OAAO,CAAC,gBAAgB,CAGvB;IAED,OAAO,CAAC,eAAe,CAYtB;CACF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { readFileSync } from 'fs';
|
|
2
2
|
import { join } from 'path';
|
|
3
|
-
import { DEFAULT_CONFIG } from '
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
export class InitCommand {
|
|
3
|
+
import { DEFAULT_CONFIG } from '../../core/defaults.js';
|
|
4
|
+
import Logger from '../../utils/logger.js';
|
|
5
|
+
import File from '../../utils/file.js';
|
|
6
|
+
import Path from '../../utils/path.js';
|
|
7
|
+
export default class InitCommand {
|
|
8
8
|
register = (program) => {
|
|
9
9
|
program
|
|
10
10
|
.command('init')
|
|
@@ -16,9 +16,9 @@ export class InitCommand {
|
|
|
16
16
|
execute = async (targetPath, options) => {
|
|
17
17
|
try {
|
|
18
18
|
Logger.info('Initializing CodeMerge project...');
|
|
19
|
-
const resolvedPath =
|
|
19
|
+
const resolvedPath = Path.resolve(targetPath);
|
|
20
20
|
const configPath = join(resolvedPath, 'codemerge.json');
|
|
21
|
-
if (!options.force &&
|
|
21
|
+
if (!options.force && File.exists(configPath)) {
|
|
22
22
|
Logger.error('codemerge.json already exists. Use --force to overwrite.');
|
|
23
23
|
process.exit(1);
|
|
24
24
|
}
|
|
@@ -27,11 +27,8 @@ export class InitCommand {
|
|
|
27
27
|
this.createConfigFile(configPath, outputPath, projectName);
|
|
28
28
|
this.updateGitignore(resolvedPath, outputPath);
|
|
29
29
|
Logger.success('Configuration file created: codemerge.json');
|
|
30
|
-
Logger.plain(
|
|
31
|
-
Logger.plain('');
|
|
32
|
-
Logger.plain('Next steps:');
|
|
33
|
-
Logger.plain(' 1. Review codemerge.json settings');
|
|
34
|
-
Logger.plain(' 2. Run: codemerge use');
|
|
30
|
+
Logger.plain(`Output file added to .gitignore: ${outputPath}`);
|
|
31
|
+
Logger.plain('\nNext steps:\n 1. Review codemerge.json settings\n 2. Run: codemerge use');
|
|
35
32
|
}
|
|
36
33
|
catch (error) {
|
|
37
34
|
Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
|
|
@@ -40,10 +37,10 @@ export class InitCommand {
|
|
|
40
37
|
};
|
|
41
38
|
getProjectName = (basePath) => {
|
|
42
39
|
const packagePath = join(basePath, 'package.json');
|
|
43
|
-
if (!
|
|
40
|
+
if (!File.exists(packagePath))
|
|
44
41
|
return null;
|
|
45
42
|
try {
|
|
46
|
-
const pkg =
|
|
43
|
+
const pkg = File.readJson(packagePath);
|
|
47
44
|
if (!pkg.name)
|
|
48
45
|
return null;
|
|
49
46
|
return pkg.name.replace(/^@.*?\//, '').replace(/[^a-zA-Z0-9-_]/g, '-').toLowerCase();
|
|
@@ -53,25 +50,19 @@ export class InitCommand {
|
|
|
53
50
|
}
|
|
54
51
|
};
|
|
55
52
|
createConfigFile = (configPath, outputPath, projectName) => {
|
|
56
|
-
const config = {
|
|
57
|
-
|
|
58
|
-
outputPath,
|
|
59
|
-
...DEFAULT_CONFIG
|
|
60
|
-
};
|
|
61
|
-
FileUtils.write(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
53
|
+
const config = { projectName: projectName ?? 'codemerge-project', outputPath, ...DEFAULT_CONFIG };
|
|
54
|
+
File.write(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
62
55
|
};
|
|
63
56
|
updateGitignore = (basePath, outputFileName) => {
|
|
64
57
|
const gitignorePath = join(basePath, '.gitignore');
|
|
65
|
-
if (!
|
|
66
|
-
|
|
58
|
+
if (!File.exists(gitignorePath)) {
|
|
59
|
+
File.write(gitignorePath, outputFileName + '\n');
|
|
67
60
|
return;
|
|
68
61
|
}
|
|
69
62
|
const content = readFileSync(gitignorePath, 'utf-8');
|
|
70
|
-
|
|
71
|
-
if (lines.some(line => line.trim() === outputFileName))
|
|
63
|
+
if (content.split('\n').some(line => line.trim() === outputFileName))
|
|
72
64
|
return;
|
|
73
|
-
|
|
74
|
-
FileUtils.write(gitignorePath, newContent);
|
|
65
|
+
File.write(gitignorePath, content.endsWith('\n') ? `${content}${outputFileName}\n` : `${content}\n${outputFileName}\n`);
|
|
75
66
|
};
|
|
76
67
|
}
|
|
77
|
-
//# sourceMappingURL=
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/init/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/commands/init/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/init/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/use/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUnC,MAAM,CAAC,OAAO,OAAO,UAAU;IACtB,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAUzC;IAED,OAAO,CAAC,OAAO,CA6Cd;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import FileWatcher from '../../core/fileWatcher.js';
|
|
2
|
+
import CodeMerger from '../../core/codeMerger.js';
|
|
3
|
+
import Process from '../../utils/process.js';
|
|
4
|
+
import Config from '../../core/config.js';
|
|
5
|
+
import Logger from '../../utils/logger.js';
|
|
6
|
+
export default class UseCommand {
|
|
7
|
+
register = (program) => {
|
|
8
|
+
program
|
|
9
|
+
.command('use')
|
|
10
|
+
.description('Merge code files into a single output file')
|
|
11
|
+
.argument('[path]', 'Input path to scan', '.')
|
|
12
|
+
.option('-o, --output <path>', 'Output file path')
|
|
13
|
+
.option('-w, --watch', 'Watch for file changes')
|
|
14
|
+
.option('--ignore <patterns>', 'Additional ignore patterns (comma-separated)')
|
|
15
|
+
.option('--include <patterns>', 'Include patterns (comma-separated)')
|
|
16
|
+
.action(this.execute);
|
|
17
|
+
};
|
|
18
|
+
execute = async (inputPath, options) => {
|
|
19
|
+
try {
|
|
20
|
+
Logger.info('Starting code merge...');
|
|
21
|
+
const config = Config.load(inputPath);
|
|
22
|
+
const mergeOptions = Config.merge(config, {
|
|
23
|
+
inputPath,
|
|
24
|
+
outputPath: options.output,
|
|
25
|
+
watch: options.watch,
|
|
26
|
+
ignorePatterns: options.ignore ? options.ignore.split(',') : undefined,
|
|
27
|
+
includePatterns: options.include ? options.include.split(',') : undefined
|
|
28
|
+
});
|
|
29
|
+
if (mergeOptions.onStartCommand)
|
|
30
|
+
Process.runCommand(mergeOptions.onStartCommand, mergeOptions.onStartCommandLogs);
|
|
31
|
+
const merger = new CodeMerger(mergeOptions);
|
|
32
|
+
const result = await merger.execute();
|
|
33
|
+
if (!result.success) {
|
|
34
|
+
Logger.error('Merge failed:');
|
|
35
|
+
result.errors.forEach(error => Logger.error(` ${error}`));
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
Logger.success(`Merged ${result.filesProcessed} files into ${result.outputPath}`);
|
|
39
|
+
if (mergeOptions.watch) {
|
|
40
|
+
const watcher = new FileWatcher(mergeOptions, async () => {
|
|
41
|
+
const res = await merger.execute();
|
|
42
|
+
if (res.success)
|
|
43
|
+
Logger.success(`Merged ${res.filesProcessed} files into ${res.outputPath}`);
|
|
44
|
+
});
|
|
45
|
+
watcher.start();
|
|
46
|
+
process.on('SIGINT', () => {
|
|
47
|
+
Logger.plain('\nStopping watcher...');
|
|
48
|
+
watcher.stop();
|
|
49
|
+
process.exit(0);
|
|
50
|
+
});
|
|
51
|
+
Logger.plain('Press Ctrl+C to stop watching');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/use/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/commands/use/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,UAAW,SAAQ,cAAc;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/use/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/version/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,CAAC,OAAO,OAAO,cAAc;IAC1B,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAEzC;IAED,OAAO,CAAC,OAAO,CAOd;IAED,OAAO,CAAC,cAAc,CAAuE;IAE7F,OAAO,CAAC,cAAc,CAAsG;CAC7H"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Logger from '../../utils/logger.js';
|
|
2
|
+
import File from '../../utils/file.js';
|
|
3
|
+
import Path from '../../utils/path.js';
|
|
4
|
+
export default class VersionCommand {
|
|
5
|
+
register = (program) => {
|
|
6
|
+
program.command('version').description('Display version information').action(this.execute);
|
|
7
|
+
};
|
|
8
|
+
execute = async () => {
|
|
9
|
+
try {
|
|
10
|
+
this.displayVersion();
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
displayVersion = () => Logger.info(`Version: ${this.getPackageJson().version}`);
|
|
18
|
+
getPackageJson = () => File.readJson(Path.getPackagePath(import.meta.url, 'package.json'));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/version/index.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,kBAAkB,CAAA;AACrC,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,IAAI,MAAM,gBAAgB,CAAA;AAIjC,MAAM,CAAC,OAAO,OAAO,cAAc;IAC1B,QAAQ,GAAG,CAAC,OAAgB,EAAQ,EAAE;QAC3C,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5F,CAAC,CAAA;IAEO,OAAO,GAAG,KAAK,IAAmB,EAAE;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAA;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAA;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAA;IAEO,cAAc,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAErF,cAAc,GAAG,GAAgB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAc,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;CAC7H"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/commands/version/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/version/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
export
|
|
2
|
+
export default class WatchCommand {
|
|
3
3
|
register: (program: Command) => void;
|
|
4
4
|
private execute;
|
|
5
5
|
private performInitialMerge;
|
|
6
6
|
private getProjectName;
|
|
7
7
|
private setupGracefulShutdown;
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/watch/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC,MAAM,CAAC,OAAO,OAAO,YAAY;IACxB,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAUzC;IAED,OAAO,CAAC,OAAO,CAiDd;IAED,OAAO,CAAC,mBAAmB,CAW1B;IAED,OAAO,CAAC,cAAc,CAA8H;IAEpJ,OAAO,CAAC,qBAAqB,CAU5B;CACF"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { basename, resolve } from 'path';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
export class WatchCommand {
|
|
2
|
+
import HttpServer from '../../core/httpServer/index.js';
|
|
3
|
+
import FileWatcher from '../../core/fileWatcher.js';
|
|
4
|
+
import CodeMerger from '../../core/codeMerger.js';
|
|
5
|
+
import MergeCache from '../../core/mergeCache.js';
|
|
6
|
+
import Process from '../../utils/process.js';
|
|
7
|
+
import Config from '../../core/config.js';
|
|
8
|
+
import Logger from '../../utils/logger.js';
|
|
9
|
+
export default class WatchCommand {
|
|
10
10
|
register = (program) => {
|
|
11
|
-
program
|
|
11
|
+
program
|
|
12
|
+
.command('watch')
|
|
13
|
+
.description('Start HTTP server and watch for file changes')
|
|
14
|
+
.argument('[path]', 'Input path to scan', '.')
|
|
15
|
+
.option('-o, --output <path>', 'Output file path')
|
|
16
|
+
.option('-p, --port <number>', 'Server port', '9876')
|
|
17
|
+
.option('--ignore <patterns>', 'Additional ignore patterns (comma-separated)')
|
|
18
|
+
.option('--include <patterns>', 'Include patterns (comma-separated)')
|
|
19
|
+
.action(this.execute);
|
|
12
20
|
};
|
|
13
21
|
execute = async (inputPath, options) => {
|
|
14
22
|
try {
|
|
@@ -23,7 +31,7 @@ export class WatchCommand {
|
|
|
23
31
|
includePatterns: options.include ? options.include.split(',') : undefined
|
|
24
32
|
});
|
|
25
33
|
if (mergeOptions.onStartCommand)
|
|
26
|
-
|
|
34
|
+
Process.runCommand(mergeOptions.onStartCommand, mergeOptions.onStartCommandLogs);
|
|
27
35
|
const projectName = this.getProjectName(mergeOptions.outputPath);
|
|
28
36
|
const port = parseInt(options.port || '9876', 10);
|
|
29
37
|
const cache = new MergeCache();
|
|
@@ -33,9 +41,7 @@ export class WatchCommand {
|
|
|
33
41
|
const server = new HttpServer(port, projectName, cache, basePath);
|
|
34
42
|
server.setMerger(merger, mergeOptions);
|
|
35
43
|
await server.start();
|
|
36
|
-
const watcher = new FileWatcher(mergeOptions, async () =>
|
|
37
|
-
await this.performInitialMerge(merger, cache);
|
|
38
|
-
});
|
|
44
|
+
const watcher = new FileWatcher(mergeOptions, async () => await this.performInitialMerge(merger, cache));
|
|
39
45
|
watcher.start();
|
|
40
46
|
this.setupGracefulShutdown(server, watcher);
|
|
41
47
|
Logger.success(`Server running at http://localhost:${port}`);
|
|
@@ -47,7 +53,6 @@ export class WatchCommand {
|
|
|
47
53
|
Logger.plain(` Commit endpoint: http://localhost:${port}/commit`);
|
|
48
54
|
Logger.plain(` Execute commands endpoint: http://localhost:${port}/execute-commands`);
|
|
49
55
|
Logger.plain(` Command output endpoint: http://localhost:${port}/command-output`);
|
|
50
|
-
Logger.plain(` Health endpoint: http://localhost:${port}/health`);
|
|
51
56
|
Logger.plain('Press Ctrl+C to stop');
|
|
52
57
|
}
|
|
53
58
|
catch (error) {
|
|
@@ -59,17 +64,14 @@ export class WatchCommand {
|
|
|
59
64
|
const result = await merger.execute();
|
|
60
65
|
if (!result.success) {
|
|
61
66
|
Logger.error('Initial merge failed');
|
|
62
|
-
result.errors.forEach(error => Logger.error(
|
|
67
|
+
result.errors.forEach(error => Logger.error(` ${error}`));
|
|
63
68
|
return;
|
|
64
69
|
}
|
|
65
70
|
if (result.content)
|
|
66
71
|
cache.set(result.content);
|
|
67
72
|
Logger.success(`Merged ${result.filesProcessed} files`);
|
|
68
73
|
};
|
|
69
|
-
getProjectName = (outputPath) =>
|
|
70
|
-
const fileName = basename(outputPath);
|
|
71
|
-
return fileName.replace(/\.[^/.]+$/, '').replace(/[^a-zA-Z0-9-_]/g, '-').toLowerCase();
|
|
72
|
-
};
|
|
74
|
+
getProjectName = (outputPath) => basename(outputPath).replace(/\.[^/.]+$/, '').replace(/[^a-zA-Z0-9-_]/g, '-').toLowerCase();
|
|
73
75
|
setupGracefulShutdown = (server, watcher) => {
|
|
74
76
|
const shutdown = () => {
|
|
75
77
|
Logger.plain('\nStopping server and watcher...');
|
|
@@ -81,4 +83,4 @@ export class WatchCommand {
|
|
|
81
83
|
process.on('SIGTERM', shutdown);
|
|
82
84
|
};
|
|
83
85
|
}
|
|
84
|
-
//# sourceMappingURL=
|
|
86
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/commands/watch/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/commands/watch/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/watch/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeMerger.d.ts","sourceRoot":"","sources":["../../lib/core/codeMerger.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAe,YAAY,EAAE,WAAW,EAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"codeMerger.d.ts","sourceRoot":"","sources":["../../lib/core/codeMerger.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAe,YAAY,EAAE,WAAW,EAAY,MAAM,gBAAgB,CAAA;AAExG,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,CAAC,OAAO,CAAc;gBAEjB,OAAO,EAAE,YAAY;IAI1B,OAAO,QAAa,OAAO,CAAC,WAAW,CAAC,CAsB9C;IAEM,mBAAmB,QAAa,OAAO,CAAC,gBAAgB,CAAC,CAyB/D;IAEM,mBAAmB,GAAU,eAAe,MAAM,EAAE,KAAG,OAAO,CAAC,WAAW,CAAC,CA4BjF;IAED,OAAO,CAAC,kBAAkB,CAsDzB;IAED,OAAO,CAAC,YAAY,CAwCnB;IAED,OAAO,CAAC,iBAAiB,CASxB;IAED,OAAO,CAAC,iBAAiB,CAwBxB;IAED,OAAO,CAAC,UAAU,CAqBjB;IAED,OAAO,CAAC,cAAc,CAcrB;IAED,OAAO,CAAC,iBAAiB,CAcxB;IAED,OAAO,CAAC,iBAAiB,CA6CxB;IAED,OAAO,CAAC,WAAW,CAA0E;CAC9F"}
|