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
@@ -1,13 +1,21 @@
1
- import { ProcessUtils } from '../utils/processUtils.js';
2
- import { CodeMerger } from '../core/codeMerger.js';
3
- import { Config } from '../core/config.js';
4
1
  import { FileWatcher } from '../core/fileWatcher.js';
2
+ import { CodeMerger } from '../core/codeMerger.js';
3
+ import { Process } from '../utils/process.js';
5
4
  import { Logger } from '../utils/logger.js';
5
+ import { Config } from '../core/config.js';
6
6
  export class UseCommand {
7
- register(program) {
8
- program.command('use').description('Merge code files into a single output file').argument('[path]', 'Input path to scan', '.').option('-o, --output <path>', 'Output file path').option('-w, --watch', 'Watch for file changes').option('--ignore <patterns>', 'Additional ignore patterns (comma-separated)').option('--include <patterns>', 'Include patterns (comma-separated)').action(this.execute.bind(this));
9
- }
10
- async execute(inputPath, options) {
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) => {
11
19
  try {
12
20
  Logger.info('Starting code merge...');
13
21
  const config = Config.load(inputPath);
@@ -18,23 +26,21 @@ export class UseCommand {
18
26
  ignorePatterns: options.ignore ? options.ignore.split(',') : undefined,
19
27
  includePatterns: options.include ? options.include.split(',') : undefined
20
28
  });
21
- if (mergeOptions.onStartCommand) {
22
- ProcessUtils.runCommand(mergeOptions.onStartCommand, mergeOptions.onStartCommandLogs);
23
- }
29
+ if (mergeOptions.onStartCommand)
30
+ Process.runCommand(mergeOptions.onStartCommand, mergeOptions.onStartCommandLogs);
24
31
  const merger = new CodeMerger(mergeOptions);
25
32
  const result = await merger.execute();
26
33
  if (!result.success) {
27
34
  Logger.error('Merge failed:');
28
- result.errors.forEach(error => Logger.error(' ' + error));
35
+ result.errors.forEach(error => Logger.error(` ${error}`));
29
36
  process.exit(1);
30
37
  }
31
- Logger.success('Merged ' + result.filesProcessed + ' files into ' + result.outputPath);
38
+ Logger.success(`Merged ${result.filesProcessed} files into ${result.outputPath}`);
32
39
  if (mergeOptions.watch) {
33
40
  const watcher = new FileWatcher(mergeOptions, async () => {
34
- const result = await merger.execute();
35
- if (result.success) {
36
- Logger.success('Merged ' + result.filesProcessed + ' files into ' + result.outputPath);
37
- }
41
+ const res = await merger.execute();
42
+ if (res.success)
43
+ Logger.success(`Merged ${res.filesProcessed} files into ${res.outputPath}`);
38
44
  });
39
45
  watcher.start();
40
46
  process.on('SIGINT', () => {
@@ -49,6 +55,6 @@ export class UseCommand {
49
55
  Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
50
56
  process.exit(1);
51
57
  }
52
- }
58
+ };
53
59
  }
54
60
  //# sourceMappingURL=use.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../lib/commands/use.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../lib/commands/use.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Command } from 'commander';
2
+ export default class VersionCommand {
3
+ register: (program: Command) => void;
4
+ private execute;
5
+ private displayBanner;
6
+ private displayVersion;
7
+ private getPackageJson;
8
+ }
9
+ //# sourceMappingURL=index.d.ts.map
@@ -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,CAQd;IAED,OAAO,CAAC,aAAa,CAIpB;IAED,OAAO,CAAC,cAAc,CAAuE;IAE7F,OAAO,CAAC,cAAc,CAAsG;CAC7H"}
@@ -0,0 +1,26 @@
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.displayBanner();
11
+ this.displayVersion();
12
+ }
13
+ catch (error) {
14
+ Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
15
+ process.exit(1);
16
+ }
17
+ };
18
+ displayBanner = () => {
19
+ const packageJson = this.getPackageJson();
20
+ const name = packageJson.name.replace('-', ' ').toUpperCase();
21
+ Logger.banner(name);
22
+ };
23
+ displayVersion = () => Logger.info(`Version: ${this.getPackageJson().version}`);
24
+ getPackageJson = () => File.readJson(Path.getPackagePath(import.meta.url, 'package.json'));
25
+ }
26
+ //# 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,aAAa,EAAE,CAAA;YACpB,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,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,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,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/version/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/version/types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { Command } from 'commander';
2
2
  export declare class VersionCommand {
3
- register(program: Command): void;
3
+ register: (program: Command) => void;
4
4
  private execute;
5
5
  private displayBanner;
6
6
  private displayVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../lib/commands/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,cAAc;IAClB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;YAIzB,OAAO;IAUrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;CAIvB"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../lib/commands/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,qBAAa,cAAc;IAClB,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAEzC;IAED,OAAO,CAAC,OAAO,CAQd;IAED,OAAO,CAAC,aAAa,CAIpB;IAED,OAAO,CAAC,cAAc,CAAuE;IAE7F,OAAO,CAAC,cAAc,CAAsG;CAC7H"}
@@ -1,11 +1,11 @@
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 VersionCommand {
5
- register(program) {
6
- program.command('version').description('Display version information').action(() => this.execute());
7
- }
8
- async execute() {
5
+ register = (program) => {
6
+ program.command('version').description('Display version information').action(this.execute);
7
+ };
8
+ execute = async () => {
9
9
  try {
10
10
  this.displayBanner();
11
11
  this.displayVersion();
@@ -14,19 +14,13 @@ export class VersionCommand {
14
14
  Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
15
15
  process.exit(1);
16
16
  }
17
- }
18
- displayBanner() {
17
+ };
18
+ displayBanner = () => {
19
19
  const packageJson = this.getPackageJson();
20
20
  const name = packageJson.name.replace('-', ' ').toUpperCase();
21
21
  Logger.banner(name);
22
- }
23
- displayVersion() {
24
- const packageJson = this.getPackageJson();
25
- Logger.info(`Version: ${packageJson.version}`);
26
- }
27
- getPackageJson() {
28
- const packagePath = PathUtils.getPackagePath(import.meta.url, 'package.json');
29
- return FileUtils.readJson(packagePath);
30
- }
22
+ };
23
+ displayVersion = () => Logger.info(`Version: ${this.getPackageJson().version}`);
24
+ getPackageJson = () => File.readJson(Path.getPackagePath(import.meta.url, 'package.json'));
31
25
  }
32
26
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../lib/commands/version.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,cAAc;IAClB,QAAQ,CAAC,OAAgB;QAC9B,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrG,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,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,cAAc;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,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":"version.js","sourceRoot":"","sources":["../../lib/commands/version.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,cAAc;IAClB,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,aAAa,EAAE,CAAA;YACpB,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,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,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,9 @@
1
+ import { Command } from 'commander';
2
+ export default class WatchCommand {
3
+ register: (program: Command) => void;
4
+ private execute;
5
+ private performInitialMerge;
6
+ private getProjectName;
7
+ private setupGracefulShutdown;
8
+ }
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"}
@@ -0,0 +1,86 @@
1
+ import { basename, resolve } from 'path';
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
+ register = (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);
20
+ };
21
+ execute = async (inputPath, options) => {
22
+ try {
23
+ Logger.info('Starting watch mode...');
24
+ const config = Config.load(inputPath);
25
+ const mergeOptions = Config.merge(config, {
26
+ inputPath,
27
+ outputPath: options.output,
28
+ watch: true,
29
+ writeOutput: false,
30
+ ignorePatterns: options.ignore ? options.ignore.split(',') : undefined,
31
+ includePatterns: options.include ? options.include.split(',') : undefined
32
+ });
33
+ if (mergeOptions.onStartCommand)
34
+ Process.runCommand(mergeOptions.onStartCommand, mergeOptions.onStartCommandLogs);
35
+ const projectName = this.getProjectName(mergeOptions.outputPath);
36
+ const port = parseInt(options.port || '9876', 10);
37
+ const cache = new MergeCache();
38
+ const basePath = resolve(mergeOptions.inputPath);
39
+ const merger = new CodeMerger(mergeOptions);
40
+ await this.performInitialMerge(merger, cache);
41
+ const server = new HttpServer(port, projectName, cache, basePath);
42
+ server.setMerger(merger, mergeOptions);
43
+ await server.start();
44
+ const watcher = new FileWatcher(mergeOptions, async () => await this.performInitialMerge(merger, cache));
45
+ watcher.start();
46
+ this.setupGracefulShutdown(server, watcher);
47
+ Logger.success(`Server running at http://localhost:${port}`);
48
+ Logger.plain(` Merge endpoint: http://localhost:${port}/content`);
49
+ Logger.plain(` Structure endpoint: http://localhost:${port}/structure`);
50
+ Logger.plain(` Selective content: http://localhost:${port}/selective-content`);
51
+ Logger.plain(` Upsert endpoint: http://localhost:${port}/upsert`);
52
+ Logger.plain(` Delete files endpoint: http://localhost:${port}/delete-files`);
53
+ Logger.plain(` Commit endpoint: http://localhost:${port}/commit`);
54
+ Logger.plain(` Execute commands endpoint: http://localhost:${port}/execute-commands`);
55
+ Logger.plain(` Command output endpoint: http://localhost:${port}/command-output`);
56
+ Logger.plain('Press Ctrl+C to stop');
57
+ }
58
+ catch (error) {
59
+ Logger.error(error instanceof Error ? error.message : 'Unexpected error occurred');
60
+ process.exit(1);
61
+ }
62
+ };
63
+ performInitialMerge = async (merger, cache) => {
64
+ const result = await merger.execute();
65
+ if (!result.success) {
66
+ Logger.error('Initial merge failed');
67
+ result.errors.forEach(error => Logger.error(` ${error}`));
68
+ return;
69
+ }
70
+ if (result.content)
71
+ cache.set(result.content);
72
+ Logger.success(`Merged ${result.filesProcessed} files`);
73
+ };
74
+ getProjectName = (outputPath) => basename(outputPath).replace(/\.[^/.]+$/, '').replace(/[^a-zA-Z0-9-_]/g, '-').toLowerCase();
75
+ setupGracefulShutdown = (server, watcher) => {
76
+ const shutdown = () => {
77
+ Logger.plain('\nStopping server and watcher...');
78
+ server.stop();
79
+ watcher.stop();
80
+ process.exit(0);
81
+ };
82
+ process.on('SIGINT', shutdown);
83
+ process.on('SIGTERM', shutdown);
84
+ };
85
+ }
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,5 @@
1
+ import type { CommandOptions } from '../../types/config.js';
2
+ export interface WatchOptions extends CommandOptions {
3
+ port?: string;
4
+ }
5
+ //# sourceMappingURL=types.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/commands/watch/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../lib/commands/watch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,qBAAa,YAAY;IAChB,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAExC;IAEF,OAAO,CAAC,OAAO,CA0Cb;IAEF,OAAO,CAAC,mBAAmB,CASzB;IAEF,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,qBAAqB,CAS3B;CACH"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../lib/commands/watch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC,qBAAa,YAAY;IAChB,QAAQ,GAAI,SAAS,OAAO,KAAG,IAAI,CAUzC;IAED,OAAO,CAAC,OAAO,CA+Cd;IAED,OAAO,CAAC,mBAAmB,CAS1B;IAED,OAAO,CAAC,cAAc,CAA8H;IAEpJ,OAAO,CAAC,qBAAqB,CAS5B;CACF"}
@@ -1,14 +1,22 @@
1
1
  import { basename, resolve } from 'path';
2
- import { ProcessUtils } from '../utils/processUtils.js';
3
- import { FileWatcher } from '../core/fileWatcher.js';
4
2
  import { HttpServer } from '../core/httpServer.js';
3
+ import { FileWatcher } from '../core/fileWatcher.js';
5
4
  import { CodeMerger } from '../core/codeMerger.js';
6
5
  import { MergeCache } from '../core/mergeCache.js';
6
+ import { Process } from '../utils/process.js';
7
7
  import { Logger } from '../utils/logger.js';
8
8
  import { Config } from '../core/config.js';
9
9
  export class WatchCommand {
10
10
  register = (program) => {
11
- program.command('watch').description('Start HTTP server and watch for file changes').argument('[path]', 'Input path to scan', '.').option('-o, --output <path>', 'Output file path').option('-p, --port <number>', 'Server port', '9876').option('--ignore <patterns>', 'Additional ignore patterns (comma-separated)').option('--include <patterns>', 'Include patterns (comma-separated)').action(this.execute);
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
- ProcessUtils.runCommand(mergeOptions.onStartCommand, mergeOptions.onStartCommandLogs);
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(' ' + 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...');
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../lib/commands/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../lib/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ProjectStructure, MergeOptions, MergeResult } from '../types/merge.js';
2
- export declare class CodeMerger {
2
+ export default class CodeMerger {
3
3
  private options;
4
4
  constructor(options: MergeOptions);
5
5
  execute: () => Promise<MergeResult>;
@@ -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,mBAAmB,CAAA;AAE3G,qBAAa,UAAU;IACrB,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,CAElB;CACF"}
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"}
@@ -1,8 +1,8 @@
1
1
  import { resolve, relative, basename, join } from 'path';
2
2
  import { promises } from 'fs';
3
- import { PatternUtils } from '../utils/pattern.js';
4
- import { FileUtils } from '../utils/fileUtils.js';
5
- export class CodeMerger {
3
+ import Pattern from '../utils/pattern.js';
4
+ import File from '../utils/file.js';
5
+ export default class CodeMerger {
6
6
  options;
7
7
  constructor(options) {
8
8
  this.options = options;
@@ -59,7 +59,7 @@ export class CodeMerger {
59
59
  const selectedFiles = allFiles.filter(file => selectedPaths.some(selected => {
60
60
  const normalizedSelected = selected.replace(/\\/g, '/');
61
61
  const normalizedFile = file.relativePath.replace(/\\/g, '/');
62
- return normalizedFile === normalizedSelected || normalizedFile.startsWith(normalizedSelected + '/');
62
+ return normalizedFile === normalizedSelected || normalizedFile.startsWith(`${normalizedSelected}/`);
63
63
  }));
64
64
  const content = this.mergeFiles(selectedFiles);
65
65
  return {
@@ -131,8 +131,8 @@ export class CodeMerger {
131
131
  const inputPath = resolve(this.options.inputPath);
132
132
  const ignorePatterns = this.getIgnorePatterns(inputPath);
133
133
  const includePatterns = this.options.includePatterns;
134
- const ignoreRegexes = ignorePatterns.map(p => PatternUtils.globToRegex(p));
135
- const includeRegexes = includePatterns.map(p => PatternUtils.globToRegex(p));
134
+ const ignoreRegexes = ignorePatterns.map(p => Pattern.globToRegex(p));
135
+ const includeRegexes = includePatterns.map(p => Pattern.globToRegex(p));
136
136
  const walk = async (currentPath, relativeDir) => {
137
137
  try {
138
138
  const entries = await promises.readdir(currentPath, { withFileTypes: true });
@@ -147,10 +147,10 @@ export class CodeMerger {
147
147
  else if (entry.isFile()) {
148
148
  if (!includeRegexes.some(r => r.test(relPath)))
149
149
  continue;
150
- if (this.shouldProcessFile(fullPath, inputPath) && FileUtils.isTextFile(fullPath)) {
150
+ if (this.shouldProcessFile(fullPath, inputPath) && File.isTextFile(fullPath)) {
151
151
  files.push({
152
152
  path: fullPath,
153
- content: FileUtils.read(fullPath),
153
+ content: File.read(fullPath),
154
154
  relativePath: relPath
155
155
  });
156
156
  }
@@ -165,7 +165,7 @@ export class CodeMerger {
165
165
  return files.sort((a, b) => a.relativePath.localeCompare(b.relativePath));
166
166
  };
167
167
  shouldProcessFile = (fullPath, inputPath) => {
168
- if (!FileUtils.exists(fullPath))
168
+ if (!File.exists(fullPath))
169
169
  return false;
170
170
  const relativePath = relative(inputPath, fullPath);
171
171
  const outputFileName = basename(this.options.outputPath);
@@ -206,11 +206,11 @@ export class CodeMerger {
206
206
  const mergedContent = files.map(file => {
207
207
  const fileSeparator = '-'.repeat(40);
208
208
  return [
209
- 'STARTOFFILE: ' + file.relativePath,
209
+ `STARTOFFILE: ${file.relativePath}`,
210
210
  fileSeparator,
211
211
  file.content,
212
212
  fileSeparator,
213
- 'ENDOFFILE: ' + file.relativePath,
213
+ `ENDOFFILE: ${file.relativePath}`,
214
214
  ''
215
215
  ].join('\n');
216
216
  }).join('\n');
@@ -220,11 +220,11 @@ export class CodeMerger {
220
220
  const timestamp = new Date().toISOString();
221
221
  return [
222
222
  '# Code Merge Output',
223
- 'Generated at: ' + timestamp,
224
- 'Source path: ' + this.options.inputPath,
225
- 'Files processed: ' + fileCount,
226
- 'Total lines: ' + totalLines,
227
- 'Total characters: ' + totalChars,
223
+ `Generated at: ${timestamp}`,
224
+ `Source path: ${this.options.inputPath}`,
225
+ `Files processed: ${fileCount}`,
226
+ `Total lines: ${totalLines}`,
227
+ `Total characters: ${totalChars}`,
228
228
  '',
229
229
  breakdown,
230
230
  '',
@@ -284,8 +284,6 @@ export class CodeMerger {
284
284
  });
285
285
  return lines.join('\n');
286
286
  };
287
- writeOutput = (content) => {
288
- FileUtils.write(this.options.outputPath, content);
289
- };
287
+ writeOutput = (content) => File.write(this.options.outputPath, content);
290
288
  }
291
289
  //# sourceMappingURL=codeMerger.js.map