codemerge-cli 1.3.6 → 1.3.7

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 (137) hide show
  1. package/dist/cli.js +18 -16
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/help/index.d.ts +10 -0
  4. package/dist/commands/help/index.d.ts.map +1 -0
  5. package/dist/commands/help/index.js +45 -0
  6. package/dist/commands/help/index.js.map +1 -0
  7. package/dist/commands/help/types.d.ts +5 -0
  8. package/dist/commands/help/types.d.ts.map +1 -0
  9. package/dist/commands/help/types.js +2 -0
  10. package/dist/commands/help/types.js.map +1 -0
  11. package/dist/commands/help.d.ts +1 -1
  12. package/dist/commands/help.d.ts.map +1 -1
  13. package/dist/commands/help.js +18 -17
  14. package/dist/commands/help.js.map +1 -1
  15. package/dist/commands/init/index.d.ts +9 -0
  16. package/dist/commands/init/index.d.ts.map +1 -0
  17. package/dist/commands/init/index.js +68 -0
  18. package/dist/commands/init/index.js.map +1 -0
  19. package/dist/commands/init/types.d.ts +4 -0
  20. package/dist/commands/init/types.d.ts.map +1 -0
  21. package/dist/commands/init/types.js +2 -0
  22. package/dist/commands/init/types.js.map +1 -0
  23. package/dist/commands/init.d.ts.map +1 -1
  24. package/dist/commands/init.js +14 -23
  25. package/dist/commands/init.js.map +1 -1
  26. package/dist/commands/use/index.d.ts +6 -0
  27. package/dist/commands/use/index.d.ts.map +1 -0
  28. package/dist/commands/use/index.js +60 -0
  29. package/dist/commands/use/index.js.map +1 -0
  30. package/dist/commands/use/types.d.ts +4 -0
  31. package/dist/commands/use/types.d.ts.map +1 -0
  32. package/dist/commands/use/types.js +2 -0
  33. package/dist/commands/use/types.js.map +1 -0
  34. package/dist/commands/use.d.ts +1 -1
  35. package/dist/commands/use.d.ts.map +1 -1
  36. package/dist/commands/use.js +23 -17
  37. package/dist/commands/use.js.map +1 -1
  38. package/dist/commands/version/index.d.ts +9 -0
  39. package/dist/commands/version/index.d.ts.map +1 -0
  40. package/dist/commands/version/index.js +26 -0
  41. package/dist/commands/version/index.js.map +1 -0
  42. package/dist/commands/version/types.d.ts +5 -0
  43. package/dist/commands/version/types.d.ts.map +1 -0
  44. package/dist/commands/version/types.js +2 -0
  45. package/dist/commands/version/types.js.map +1 -0
  46. package/dist/commands/version.d.ts +1 -1
  47. package/dist/commands/version.d.ts.map +1 -1
  48. package/dist/commands/version.js +11 -17
  49. package/dist/commands/version.js.map +1 -1
  50. package/dist/commands/watch/index.d.ts +9 -0
  51. package/dist/commands/watch/index.d.ts.map +1 -0
  52. package/dist/commands/watch/index.js +86 -0
  53. package/dist/commands/watch/index.js.map +1 -0
  54. package/dist/commands/watch/types.d.ts +5 -0
  55. package/dist/commands/watch/types.d.ts.map +1 -0
  56. package/dist/commands/watch/types.js +2 -0
  57. package/dist/commands/watch/types.js.map +1 -0
  58. package/dist/commands/watch.d.ts.map +1 -1
  59. package/dist/commands/watch.js +15 -13
  60. package/dist/commands/watch.js.map +1 -1
  61. package/dist/core/codeMerger.d.ts +1 -1
  62. package/dist/core/codeMerger.d.ts.map +1 -1
  63. package/dist/core/codeMerger.js +17 -19
  64. package/dist/core/codeMerger.js.map +1 -1
  65. package/dist/core/config.d.ts +3 -3
  66. package/dist/core/config.d.ts.map +1 -1
  67. package/dist/core/config.js +18 -18
  68. package/dist/core/config.js.map +1 -1
  69. package/dist/core/defaults.d.ts.map +1 -1
  70. package/dist/core/fileWatcher.d.ts +3 -3
  71. package/dist/core/fileWatcher.d.ts.map +1 -1
  72. package/dist/core/fileWatcher.js +14 -14
  73. package/dist/core/fileWatcher.js.map +1 -1
  74. package/dist/core/httpServer/controllers/file.d.ts +4 -0
  75. package/dist/core/httpServer/controllers/file.d.ts.map +1 -0
  76. package/dist/core/httpServer/controllers/file.js +101 -0
  77. package/dist/core/httpServer/controllers/file.js.map +1 -0
  78. package/dist/core/httpServer/controllers/git.d.ts +3 -0
  79. package/dist/core/httpServer/controllers/git.d.ts.map +1 -0
  80. package/dist/core/httpServer/controllers/git.js +47 -0
  81. package/dist/core/httpServer/controllers/git.js.map +1 -0
  82. package/dist/core/httpServer/controllers/merge.d.ts +5 -0
  83. package/dist/core/httpServer/controllers/merge.d.ts.map +1 -0
  84. package/dist/core/httpServer/controllers/merge.js +64 -0
  85. package/dist/core/httpServer/controllers/merge.js.map +1 -0
  86. package/dist/core/httpServer/controllers/system.d.ts +6 -0
  87. package/dist/core/httpServer/controllers/system.d.ts.map +1 -0
  88. package/dist/core/httpServer/controllers/system.js +87 -0
  89. package/dist/core/httpServer/controllers/system.js.map +1 -0
  90. package/dist/core/httpServer/index.d.ts +19 -0
  91. package/dist/core/httpServer/index.d.ts.map +1 -0
  92. package/dist/core/httpServer/index.js +59 -0
  93. package/dist/core/httpServer/index.js.map +1 -0
  94. package/dist/core/httpServer/router.d.ts +5 -0
  95. package/dist/core/httpServer/router.d.ts.map +1 -0
  96. package/dist/core/httpServer/router.js +31 -0
  97. package/dist/core/httpServer/router.js.map +1 -0
  98. package/dist/core/httpServer/services/command.d.ts +11 -0
  99. package/dist/core/httpServer/services/command.d.ts.map +1 -0
  100. package/dist/core/httpServer/services/command.js +36 -0
  101. package/dist/core/httpServer/services/command.js.map +1 -0
  102. package/dist/core/httpServer/types.d.ts +16 -0
  103. package/dist/core/httpServer/types.d.ts.map +1 -0
  104. package/dist/core/httpServer/types.js +2 -0
  105. package/dist/core/httpServer/types.js.map +1 -0
  106. package/dist/core/httpServer.d.ts.map +1 -1
  107. package/dist/core/httpServer.js +5 -6
  108. package/dist/core/httpServer.js.map +1 -1
  109. package/dist/core/mergeCache.d.ts +1 -1
  110. package/dist/core/mergeCache.d.ts.map +1 -1
  111. package/dist/core/mergeCache.js +1 -1
  112. package/dist/core/mergeCache.js.map +1 -1
  113. package/dist/utils/file.d.ts +13 -0
  114. package/dist/utils/file.d.ts.map +1 -0
  115. package/dist/utils/file.js +52 -0
  116. package/dist/utils/file.js.map +1 -0
  117. package/dist/utils/logger.d.ts +1 -1
  118. package/dist/utils/logger.d.ts.map +1 -1
  119. package/dist/utils/logger.js +4 -3
  120. package/dist/utils/logger.js.map +1 -1
  121. package/dist/utils/path.d.ts +10 -0
  122. package/dist/utils/path.d.ts.map +1 -0
  123. package/dist/utils/path.js +16 -0
  124. package/dist/utils/path.js.map +1 -0
  125. package/dist/utils/pattern.d.ts +1 -1
  126. package/dist/utils/pattern.d.ts.map +1 -1
  127. package/dist/utils/pattern.js +5 -8
  128. package/dist/utils/pattern.js.map +1 -1
  129. package/dist/utils/process.d.ts +4 -0
  130. package/dist/utils/process.d.ts.map +1 -0
  131. package/dist/utils/process.js +21 -0
  132. package/dist/utils/process.js.map +1 -0
  133. package/dist/utils/translate.d.ts +3 -1
  134. package/dist/utils/translate.d.ts.map +1 -1
  135. package/dist/utils/translate.js +28 -26
  136. package/dist/utils/translate.js.map +1 -1
  137. package/package.json +1 -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 { Logger } from './utils/logger.js';
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 registerCommands() {
19
+ };
20
+ registerCommands = async () => {
21
21
  const commandsPath = join(__dirname, 'commands');
22
- const files = readdirSync(commandsPath).filter(file => extname(file) === '.js');
23
- for (const file of files) {
24
- await this.registerCommand(commandsPath, file);
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 registerCommand(commandsPath, fileName) {
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[Object.keys(module).find(key => key.includes('Command')) || ''];
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 run() {
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":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../lib/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Command } from 'commander';
2
+ export default class HelpCommand {
3
+ register: (program: Command) => void;
4
+ private execute;
5
+ private displayBanner;
6
+ private displayHelp;
7
+ private displayCommandHelp;
8
+ private getPackageJson;
9
+ }
10
+ //# 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,CAQd;IAED,OAAO,CAAC,aAAa,CAIpB;IAED,OAAO,CAAC,WAAW,CAMlB;IAED,OAAO,CAAC,kBAAkB,CAQzB;IAED,OAAO,CAAC,cAAc,CAAsG;CAC7H"}
@@ -0,0 +1,45 @@
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.displayBanner();
15
+ this.displayHelp(program, command);
16
+ }
17
+ catch (error) {
18
+ Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
19
+ process.exit(1);
20
+ }
21
+ };
22
+ displayBanner = () => {
23
+ const packageJson = this.getPackageJson();
24
+ const name = packageJson.name.replace('-', ' ').toUpperCase();
25
+ Logger.banner(name);
26
+ };
27
+ displayHelp = (program, command) => {
28
+ if (command) {
29
+ this.displayCommandHelp(program, command);
30
+ return;
31
+ }
32
+ program.help();
33
+ };
34
+ displayCommandHelp = (program, commandName) => {
35
+ const cmd = program.commands.find(c => c.name() === commandName);
36
+ if (cmd) {
37
+ cmd.help();
38
+ return;
39
+ }
40
+ Logger.error(`Command '${commandName}' not found`);
41
+ program.help();
42
+ };
43
+ getPackageJson = () => File.readJson(Path.getPackagePath(import.meta.url, 'package.json'));
44
+ }
45
+ //# 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,aAAa,EAAE,CAAA;YACpB,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,aAAa,GAAG,GAAS,EAAE;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAC7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,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,5 @@
1
+ export interface PackageInfo {
2
+ version: string;
3
+ name: string;
4
+ }
5
+ //# sourceMappingURL=types.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/help/types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { Command } from 'commander';
2
2
  export declare class HelpCommand {
3
- register(program: Command): void;
3
+ register: (program: Command) => void;
4
4
  private execute;
5
5
  private displayBanner;
6
6
  private displayHelp;
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../lib/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACf,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;YAIzB,OAAO;IAUrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,cAAc;CAIvB"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../lib/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,qBAAa,WAAW;IACf,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAMzC;IAED,OAAO,CAAC,OAAO,CAQd;IAED,OAAO,CAAC,aAAa,CAIpB;IAED,OAAO,CAAC,WAAW,CAMlB;IAED,OAAO,CAAC,kBAAkB,CAQzB;IAED,OAAO,CAAC,cAAc,CAAsG;CAC7H"}
@@ -1,11 +1,15 @@
1
- import { PathUtils } from '../utils/pathUtils.js';
2
- import { FileUtils } from '../utils/fileUtils.js';
3
1
  import { Logger } from '../utils/logger.js';
2
+ import { Path } from '../utils/path.js';
3
+ import { File } from '../utils/file.js';
4
4
  export class HelpCommand {
5
- register(program) {
6
- program.command('help').description('Display help information').argument('[command]', 'Command to get help for').action((command) => this.execute(program, command));
7
- }
8
- async execute(program, command) {
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) => {
9
13
  try {
10
14
  this.displayBanner();
11
15
  this.displayHelp(program, command);
@@ -14,20 +18,20 @@ export class HelpCommand {
14
18
  Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
15
19
  process.exit(1);
16
20
  }
17
- }
18
- displayBanner() {
21
+ };
22
+ displayBanner = () => {
19
23
  const packageJson = this.getPackageJson();
20
24
  const name = packageJson.name.replace('-', ' ').toUpperCase();
21
25
  Logger.banner(name);
22
- }
23
- displayHelp(program, command) {
26
+ };
27
+ displayHelp = (program, command) => {
24
28
  if (command) {
25
29
  this.displayCommandHelp(program, command);
26
30
  return;
27
31
  }
28
32
  program.help();
29
- }
30
- displayCommandHelp(program, commandName) {
33
+ };
34
+ displayCommandHelp = (program, commandName) => {
31
35
  const cmd = program.commands.find(c => c.name() === commandName);
32
36
  if (cmd) {
33
37
  cmd.help();
@@ -35,10 +39,7 @@ export class HelpCommand {
35
39
  }
36
40
  Logger.error(`Command '${commandName}' not found`);
37
41
  program.help();
38
- }
39
- getPackageJson() {
40
- const packagePath = PathUtils.getPackagePath(import.meta.url, 'package.json');
41
- return FileUtils.readJson(packagePath);
42
- }
42
+ };
43
+ getPackageJson = () => File.readJson(Path.getPackagePath(import.meta.url, 'package.json'));
43
44
  }
44
45
  //# sourceMappingURL=help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../lib/commands/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI5C,MAAM,OAAO,WAAW;IACf,QAAQ,CAAC,OAAgB;QAC9B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAChL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,OAAgB;QACtD,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,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,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEO,WAAW,CAAC,OAAgB,EAAE,OAAgB;QACpD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAEO,kBAAkB,CAAC,OAAgB,EAAE,WAAmB;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,CAAC;QACjE,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,YAAY,WAAW,aAAa,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAEO,cAAc;QACpB,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC,QAAQ,CAAc,WAAW,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../lib/commands/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAIvC,MAAM,OAAO,WAAW;IACf,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,aAAa,EAAE,CAAA;YACpB,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,aAAa,GAAG,GAAS,EAAE;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAC7D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,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,9 @@
1
+ import { Command } from 'commander';
2
+ export default class InitCommand {
3
+ register: (program: Command) => void;
4
+ private execute;
5
+ private getProjectName;
6
+ private createConfigFile;
7
+ private updateGitignore;
8
+ }
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"}
@@ -0,0 +1,68 @@
1
+ import { readFileSync } from 'fs';
2
+ import { join } from 'path';
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
+ register = (program) => {
9
+ program
10
+ .command('init')
11
+ .description('Initialize CodeMerge project structure')
12
+ .argument('[path]', 'Target directory', '.')
13
+ .option('-f, --force', 'Overwrite existing files')
14
+ .action(this.execute);
15
+ };
16
+ execute = async (targetPath, options) => {
17
+ try {
18
+ Logger.info('Initializing CodeMerge project...');
19
+ const resolvedPath = Path.resolve(targetPath);
20
+ const configPath = join(resolvedPath, 'codemerge.json');
21
+ if (!options.force && File.exists(configPath)) {
22
+ Logger.error('codemerge.json already exists. Use --force to overwrite.');
23
+ process.exit(1);
24
+ }
25
+ const projectName = this.getProjectName(resolvedPath);
26
+ const outputPath = projectName ? `${projectName}-merged.txt` : 'merged-output.txt';
27
+ this.createConfigFile(configPath, outputPath, projectName);
28
+ this.updateGitignore(resolvedPath, outputPath);
29
+ Logger.success('Configuration file created: codemerge.json');
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');
32
+ }
33
+ catch (error) {
34
+ Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
35
+ process.exit(1);
36
+ }
37
+ };
38
+ getProjectName = (basePath) => {
39
+ const packagePath = join(basePath, 'package.json');
40
+ if (!File.exists(packagePath))
41
+ return null;
42
+ try {
43
+ const pkg = File.readJson(packagePath);
44
+ if (!pkg.name)
45
+ return null;
46
+ return pkg.name.replace(/^@.*?\//, '').replace(/[^a-zA-Z0-9-_]/g, '-').toLowerCase();
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ };
52
+ createConfigFile = (configPath, outputPath, projectName) => {
53
+ const config = { projectName: projectName ?? 'codemerge-project', outputPath, ...DEFAULT_CONFIG };
54
+ File.write(configPath, JSON.stringify(config, null, 2) + '\n');
55
+ };
56
+ updateGitignore = (basePath, outputFileName) => {
57
+ const gitignorePath = join(basePath, '.gitignore');
58
+ if (!File.exists(gitignorePath)) {
59
+ File.write(gitignorePath, outputFileName + '\n');
60
+ return;
61
+ }
62
+ const content = readFileSync(gitignorePath, 'utf-8');
63
+ if (content.split('\n').some(line => line.trim() === outputFileName))
64
+ return;
65
+ File.write(gitignorePath, content.endsWith('\n') ? `${content}${outputFileName}\n` : `${content}\n${outputFileName}\n`);
66
+ };
67
+ }
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,4 @@
1
+ export interface InitOptions {
2
+ force?: boolean;
3
+ }
4
+ //# sourceMappingURL=types.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/init/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../lib/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAenC,qBAAa,WAAW;IACf,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAOzC;IAED,OAAO,CAAC,OAAO,CA2Bd;IAED,OAAO,CAAC,cAAc,CAWrB;IAED,OAAO,CAAC,gBAAgB,CAQvB;IAED,OAAO,CAAC,eAAe,CAetB;CACF"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../lib/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcnC,qBAAa,WAAW;IACf,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,9 +1,9 @@
1
1
  import { readFileSync } from 'fs';
2
2
  import { join } from 'path';
3
3
  import { DEFAULT_CONFIG } from '../core/defaults.js';
4
- import { PathUtils } from '../utils/pathUtils.js';
5
- import { FileUtils } from '../utils/fileUtils.js';
6
4
  import { Logger } from '../utils/logger.js';
5
+ import { Path } from '../utils/path.js';
6
+ import { File } from '../utils/file.js';
7
7
  export class InitCommand {
8
8
  register = (program) => {
9
9
  program
@@ -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 = PathUtils.resolve(targetPath);
19
+ const resolvedPath = Path.resolve(targetPath);
20
20
  const configPath = join(resolvedPath, 'codemerge.json');
21
- if (!options.force && FileUtils.exists(configPath)) {
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('Output file added to .gitignore: ' + outputPath);
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 (!FileUtils.exists(packagePath))
40
+ if (!File.exists(packagePath))
44
41
  return null;
45
42
  try {
46
- const pkg = FileUtils.readJson(packagePath);
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
- projectName: projectName ?? 'codemerge-project',
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 (!FileUtils.exists(gitignorePath)) {
66
- FileUtils.write(gitignorePath, outputFileName + '\n');
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
- const lines = content.split('\n');
71
- if (lines.some(line => line.trim() === outputFileName))
63
+ if (content.split('\n').some(line => line.trim() === outputFileName))
72
64
  return;
73
- const newContent = content.endsWith('\n') ? content + outputFileName + '\n' : content + '\n' + outputFileName + '\n';
74
- FileUtils.write(gitignorePath, newContent);
65
+ File.write(gitignorePath, content.endsWith('\n') ? `${content}${outputFileName}\n` : `${content}\n${outputFileName}\n`);
75
66
  };
76
67
  }
77
68
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../lib/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../lib/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ export default class UseCommand {
3
+ register: (program: Command) => void;
4
+ private execute;
5
+ }
6
+ //# sourceMappingURL=index.d.ts.map
@@ -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,4 @@
1
+ import type { CommandOptions } from '../../types/config.js';
2
+ export interface UseOptions extends CommandOptions {
3
+ }
4
+ //# sourceMappingURL=types.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/use/types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { Command } from 'commander';
2
2
  export declare class UseCommand {
3
- register(program: Command): void;
3
+ register: (program: Command) => void;
4
4
  private execute;
5
5
  }
6
6
  //# sourceMappingURL=use.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../lib/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,qBAAa,UAAU;IACd,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;YAIzB,OAAO;CAkDtB"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../lib/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUnC,qBAAa,UAAU;IACd,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAUzC;IAED,OAAO,CAAC,OAAO,CA6Cd;CACF"}