codemerge-cli 1.3.1 → 1.3.2

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 (89) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +57 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/commands/help.d.ts +10 -0
  6. package/dist/commands/help.d.ts.map +1 -0
  7. package/dist/commands/help.js +44 -0
  8. package/dist/commands/help.js.map +1 -0
  9. package/dist/commands/init.d.ts +9 -0
  10. package/dist/commands/init.d.ts.map +1 -0
  11. package/dist/commands/init.js +89 -0
  12. package/dist/commands/init.js.map +1 -0
  13. package/dist/commands/use.d.ts +6 -0
  14. package/dist/commands/use.d.ts.map +1 -0
  15. package/dist/commands/use.js +54 -0
  16. package/dist/commands/use.js.map +1 -0
  17. package/dist/commands/version.d.ts +9 -0
  18. package/dist/commands/version.d.ts.map +1 -0
  19. package/dist/commands/version.js +32 -0
  20. package/dist/commands/version.js.map +1 -0
  21. package/dist/commands/watch.d.ts +9 -0
  22. package/dist/commands/watch.d.ts.map +1 -0
  23. package/dist/commands/watch.js +83 -0
  24. package/dist/commands/watch.js.map +1 -0
  25. package/dist/core/codeMerger.d.ts +18 -0
  26. package/dist/core/codeMerger.d.ts.map +1 -0
  27. package/dist/core/codeMerger.js +281 -0
  28. package/dist/core/codeMerger.js.map +1 -0
  29. package/dist/core/config.d.ts +14 -0
  30. package/dist/core/config.d.ts.map +1 -0
  31. package/dist/core/config.js +78 -0
  32. package/dist/core/config.js.map +1 -0
  33. package/dist/core/fileWatcher.d.ts +13 -0
  34. package/dist/core/fileWatcher.d.ts.map +1 -0
  35. package/dist/core/fileWatcher.js +65 -0
  36. package/dist/core/fileWatcher.js.map +1 -0
  37. package/dist/core/httpServer.d.ts +31 -0
  38. package/dist/core/httpServer.d.ts.map +1 -0
  39. package/dist/core/httpServer.js +298 -0
  40. package/dist/core/httpServer.js.map +1 -0
  41. package/dist/core/mergeCache.d.ts +10 -0
  42. package/dist/core/mergeCache.d.ts.map +1 -0
  43. package/dist/core/mergeCache.js +22 -0
  44. package/dist/core/mergeCache.js.map +1 -0
  45. package/dist/types/config.d.ts +19 -0
  46. package/dist/types/config.d.ts.map +1 -0
  47. package/dist/types/config.js +2 -0
  48. package/dist/types/config.js.map +1 -0
  49. package/dist/types/merge.d.ts +95 -0
  50. package/dist/types/merge.d.ts.map +1 -0
  51. package/dist/types/merge.js +2 -0
  52. package/dist/types/merge.js.map +1 -0
  53. package/dist/utils/fileUtils.d.ts +12 -0
  54. package/dist/utils/fileUtils.d.ts.map +1 -0
  55. package/dist/utils/fileUtils.js +47 -0
  56. package/dist/utils/fileUtils.js.map +1 -0
  57. package/dist/utils/logger.d.ts +13 -0
  58. package/dist/utils/logger.d.ts.map +1 -0
  59. package/dist/utils/logger.js +34 -0
  60. package/dist/utils/logger.js.map +1 -0
  61. package/dist/utils/pathUtils.d.ts +10 -0
  62. package/dist/utils/pathUtils.d.ts.map +1 -0
  63. package/dist/utils/pathUtils.js +29 -0
  64. package/dist/utils/pathUtils.js.map +1 -0
  65. package/dist/utils/pattern.d.ts +8 -0
  66. package/dist/utils/pattern.d.ts.map +1 -0
  67. package/dist/utils/pattern.js +90 -0
  68. package/dist/utils/pattern.js.map +1 -0
  69. package/dist/utils/patternUtils.d.ts +8 -0
  70. package/dist/utils/patternUtils.d.ts.map +1 -0
  71. package/dist/utils/patternUtils.js +90 -0
  72. package/dist/utils/patternUtils.js.map +1 -0
  73. package/dist/utils/proccessCmd.d.ts +4 -0
  74. package/dist/utils/proccessCmd.d.ts.map +1 -0
  75. package/dist/utils/proccessCmd.js +29 -0
  76. package/dist/utils/proccessCmd.js.map +1 -0
  77. package/dist/utils/processUtils.d.ts +4 -0
  78. package/dist/utils/processUtils.d.ts.map +1 -0
  79. package/dist/utils/processUtils.js +29 -0
  80. package/dist/utils/processUtils.js.map +1 -0
  81. package/dist/utils/translate.d.ts +2 -0
  82. package/dist/utils/translate.d.ts.map +1 -0
  83. package/dist/utils/translate.js +29 -0
  84. package/dist/utils/translate.js.map +1 -0
  85. package/dist/utils/translateUtils.d.ts +2 -0
  86. package/dist/utils/translateUtils.d.ts.map +1 -0
  87. package/dist/utils/translateUtils.js +29 -0
  88. package/dist/utils/translateUtils.js.map +1 -0
  89. package/package.json +5 -5
@@ -0,0 +1,10 @@
1
+ export declare class PathUtils {
2
+ static resolve(path: string): string;
3
+ static relative(from: string, to: string): string;
4
+ static normalize(path: string): string;
5
+ static join(...paths: string[]): string;
6
+ static isAbsolute(path: string): boolean;
7
+ static getPackageRoot(importMetaUrl: string): string;
8
+ static getPackagePath(importMetaUrl: string, ...paths: string[]): string;
9
+ }
10
+ //# sourceMappingURL=pathUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathUtils.d.ts","sourceRoot":"","sources":["../../lib/utils/pathUtils.ts"],"names":[],"mappings":"AAGA,qBAAa,SAAS;WACN,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAI7B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;WAI1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAI/B,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;WAIhC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIjC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;WAM7C,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;CAIhF"}
@@ -0,0 +1,29 @@
1
+ import { resolve, relative, normalize, join, dirname } from 'path';
2
+ import { fileURLToPath } from 'url';
3
+ export class PathUtils {
4
+ static resolve(path) {
5
+ return resolve(path);
6
+ }
7
+ static relative(from, to) {
8
+ return relative(from, to);
9
+ }
10
+ static normalize(path) {
11
+ return normalize(path);
12
+ }
13
+ static join(...paths) {
14
+ return join(...paths);
15
+ }
16
+ static isAbsolute(path) {
17
+ return resolve(path) === normalize(path);
18
+ }
19
+ static getPackageRoot(importMetaUrl) {
20
+ const __filename = fileURLToPath(importMetaUrl);
21
+ const __dirname = dirname(__filename);
22
+ return resolve(__dirname, '../..');
23
+ }
24
+ static getPackagePath(importMetaUrl, ...paths) {
25
+ const root = this.getPackageRoot(importMetaUrl);
26
+ return join(root, ...paths);
27
+ }
28
+ }
29
+ //# sourceMappingURL=pathUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathUtils.js","sourceRoot":"","sources":["../../lib/utils/pathUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,OAAO,CAAC,IAAY;QAChC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,EAAU;QAC7C,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,IAAY;QAClC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,GAAG,KAAe;QACnC,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAY;QACnC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,aAAqB;QAChD,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,aAAqB,EAAE,GAAG,KAAe;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ export declare class PatternUtils {
2
+ static parseGitignorePatterns(content: string): string[];
3
+ private static convertGitignorePattern;
4
+ static normalizePatterns(patterns: string[]): string[];
5
+ static mergePatterns(...patternGroups: (string[] | undefined)[]): string[];
6
+ static addDefaultPatterns(patterns: string[], outputPath?: string): string[];
7
+ }
8
+ //# sourceMappingURL=pattern.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../lib/utils/pattern.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;WACT,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAe/D,OAAO,CAAC,MAAM,CAAC,uBAAuB;WA+BxB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;WAgB/C,aAAa,CAAC,GAAG,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE;WAUnE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAuBpF"}
@@ -0,0 +1,90 @@
1
+ export class PatternUtils {
2
+ static parseGitignorePatterns(content) {
3
+ const patterns = [];
4
+ content.split('\n').forEach(line => {
5
+ const trimmed = line.trim();
6
+ if (!trimmed || trimmed.startsWith('#'))
7
+ return;
8
+ if (trimmed.startsWith('!'))
9
+ return;
10
+ const converted = this.convertGitignorePattern(trimmed);
11
+ patterns.push(...converted);
12
+ });
13
+ return patterns;
14
+ }
15
+ static convertGitignorePattern(pattern) {
16
+ const patterns = [];
17
+ let p = pattern;
18
+ const isRootRelative = p.startsWith('/');
19
+ if (isRootRelative)
20
+ p = p.slice(1);
21
+ const isDirectory = p.endsWith('/');
22
+ if (isDirectory)
23
+ p = p.slice(0, -1);
24
+ if (isDirectory) {
25
+ patterns.push(`${p}/**`);
26
+ if (!isRootRelative) {
27
+ patterns.push(`**/${p}/**`);
28
+ patterns.push(`**/${p}`);
29
+ }
30
+ }
31
+ else if (p.includes('/')) {
32
+ patterns.push(p);
33
+ if (!isRootRelative)
34
+ patterns.push(`**/${p}`);
35
+ }
36
+ else if (p.includes('*')) {
37
+ patterns.push(p);
38
+ patterns.push(`**/${p}`);
39
+ }
40
+ else {
41
+ patterns.push(`**/${p}`);
42
+ patterns.push(`**/${p}/**`);
43
+ patterns.push(p);
44
+ }
45
+ return patterns;
46
+ }
47
+ static normalizePatterns(patterns) {
48
+ const normalized = new Set();
49
+ patterns.forEach(pattern => {
50
+ let p = pattern.trim();
51
+ if (!p)
52
+ return;
53
+ if (p.startsWith('./'))
54
+ p = p.slice(2);
55
+ if (p.startsWith('/') && !p.startsWith('**'))
56
+ p = p.slice(1);
57
+ normalized.add(p);
58
+ });
59
+ return Array.from(normalized);
60
+ }
61
+ static mergePatterns(...patternGroups) {
62
+ const allPatterns = [];
63
+ patternGroups.forEach(group => {
64
+ if (group)
65
+ allPatterns.push(...group);
66
+ });
67
+ return this.normalizePatterns(allPatterns);
68
+ }
69
+ static addDefaultPatterns(patterns, outputPath) {
70
+ const defaults = [
71
+ 'node_modules',
72
+ 'node_modules/**',
73
+ '**/node_modules',
74
+ '**/node_modules/**',
75
+ '.git',
76
+ '.git/**',
77
+ '**/.git',
78
+ '**/.git/**',
79
+ 'codemerge.json',
80
+ 'codemerge.config.json'
81
+ ];
82
+ const combined = [...defaults, ...patterns];
83
+ if (outputPath) {
84
+ combined.push(outputPath);
85
+ combined.push(`**/${outputPath}`);
86
+ }
87
+ return this.normalizePatterns(combined);
88
+ }
89
+ }
90
+ //# sourceMappingURL=pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../lib/utils/pattern.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare class PatternUtils {
2
+ static parseGitignorePatterns(content: string): string[];
3
+ private static convertGitignorePattern;
4
+ static normalizePatterns(patterns: string[]): string[];
5
+ static mergePatterns(...patternGroups: (string[] | undefined)[]): string[];
6
+ static addDefaultPatterns(patterns: string[], outputPath?: string): string[];
7
+ }
8
+ //# sourceMappingURL=patternUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patternUtils.d.ts","sourceRoot":"","sources":["../../lib/utils/patternUtils.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;WACT,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAe/D,OAAO,CAAC,MAAM,CAAC,uBAAuB;WA+BxB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;WAgB/C,aAAa,CAAC,GAAG,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE;WAUnE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAuBpF"}
@@ -0,0 +1,90 @@
1
+ export class PatternUtils {
2
+ static parseGitignorePatterns(content) {
3
+ const patterns = [];
4
+ content.split('\n').forEach(line => {
5
+ const trimmed = line.trim();
6
+ if (!trimmed || trimmed.startsWith('#'))
7
+ return;
8
+ if (trimmed.startsWith('!'))
9
+ return;
10
+ const converted = this.convertGitignorePattern(trimmed);
11
+ patterns.push(...converted);
12
+ });
13
+ return patterns;
14
+ }
15
+ static convertGitignorePattern(pattern) {
16
+ const patterns = [];
17
+ let p = pattern;
18
+ const isRootRelative = p.startsWith('/');
19
+ if (isRootRelative)
20
+ p = p.slice(1);
21
+ const isDirectory = p.endsWith('/');
22
+ if (isDirectory)
23
+ p = p.slice(0, -1);
24
+ if (isDirectory) {
25
+ patterns.push(`${p}/**`);
26
+ if (!isRootRelative) {
27
+ patterns.push(`**/${p}/**`);
28
+ patterns.push(`**/${p}`);
29
+ }
30
+ }
31
+ else if (p.includes('/')) {
32
+ patterns.push(p);
33
+ if (!isRootRelative)
34
+ patterns.push(`**/${p}`);
35
+ }
36
+ else if (p.includes('*')) {
37
+ patterns.push(p);
38
+ patterns.push(`**/${p}`);
39
+ }
40
+ else {
41
+ patterns.push(`**/${p}`);
42
+ patterns.push(`**/${p}/**`);
43
+ patterns.push(p);
44
+ }
45
+ return patterns;
46
+ }
47
+ static normalizePatterns(patterns) {
48
+ const normalized = new Set();
49
+ patterns.forEach(pattern => {
50
+ let p = pattern.trim();
51
+ if (!p)
52
+ return;
53
+ if (p.startsWith('./'))
54
+ p = p.slice(2);
55
+ if (p.startsWith('/') && !p.startsWith('**'))
56
+ p = p.slice(1);
57
+ normalized.add(p);
58
+ });
59
+ return Array.from(normalized);
60
+ }
61
+ static mergePatterns(...patternGroups) {
62
+ const allPatterns = [];
63
+ patternGroups.forEach(group => {
64
+ if (group)
65
+ allPatterns.push(...group);
66
+ });
67
+ return this.normalizePatterns(allPatterns);
68
+ }
69
+ static addDefaultPatterns(patterns, outputPath) {
70
+ const defaults = [
71
+ 'node_modules',
72
+ 'node_modules/**',
73
+ '**/node_modules',
74
+ '**/node_modules/**',
75
+ '.git',
76
+ '.git/**',
77
+ '**/.git',
78
+ '**/.git/**',
79
+ 'codemerge.json',
80
+ 'codemerge.config.json'
81
+ ];
82
+ const combined = [...defaults, ...patterns];
83
+ if (outputPath) {
84
+ combined.push(outputPath);
85
+ combined.push(`**/${outputPath}`);
86
+ }
87
+ return this.normalizePatterns(combined);
88
+ }
89
+ }
90
+ //# sourceMappingURL=patternUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patternUtils.js","sourceRoot":"","sources":["../../lib/utils/patternUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class ProcessCmd {
2
+ static runCommand(command: string, showLogs?: boolean): void;
3
+ }
4
+ //# sourceMappingURL=proccessCmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proccessCmd.d.ts","sourceRoot":"","sources":["../../lib/utils/proccessCmd.ts"],"names":[],"mappings":"AAKA,qBAAa,UAAU;WACP,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;CA4B3E"}
@@ -0,0 +1,29 @@
1
+ import { spawn } from 'child_process';
2
+ import chalk from 'chalk';
3
+ import { Logger } from './logger.js';
4
+ export class ProcessCmd {
5
+ static runCommand(command, showLogs = false) {
6
+ if (!command)
7
+ return;
8
+ Logger.info(`Running start command: ${command}`);
9
+ const [cmd, ...args] = command.split(' ');
10
+ const child = spawn(cmd, args, { shell: true });
11
+ if (showLogs) {
12
+ child.stdout.on('data', (data) => {
13
+ data.toString().split('\n').filter(Boolean).forEach((line) => Logger.project(line));
14
+ });
15
+ child.stderr.on('data', (data) => {
16
+ data.toString().split('\n').filter(Boolean).forEach((line) => Logger.project(chalk.red(line)));
17
+ });
18
+ }
19
+ child.on('error', (error) => {
20
+ Logger.error(`Failed to start project command: ${error.message}`);
21
+ });
22
+ child.on('exit', (code) => {
23
+ if (code !== 0 && code !== null) {
24
+ Logger.warning(`Project command exited with code ${code}`);
25
+ }
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=proccessCmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proccessCmd.js","sourceRoot":"","sources":["../../lib/utils/proccessCmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,OAAO,UAAU;IACd,MAAM,CAAC,UAAU,CAAC,OAAe,EAAE,WAAoB,KAAK;QACjE,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QAEjD,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzG,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,CAAC,OAAO,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export declare class ProcessUtils {
2
+ static runCommand(command: string, showLogs?: boolean): void;
3
+ }
4
+ //# sourceMappingURL=processUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processUtils.d.ts","sourceRoot":"","sources":["../../lib/utils/processUtils.ts"],"names":[],"mappings":"AAKA,qBAAa,YAAY;WACT,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;CA4B3E"}
@@ -0,0 +1,29 @@
1
+ import { spawn } from 'child_process';
2
+ import chalk from 'chalk';
3
+ import { Logger } from './logger.js';
4
+ export class ProcessUtils {
5
+ static runCommand(command, showLogs = false) {
6
+ if (!command)
7
+ return;
8
+ Logger.info(`Running start command: ${command}`);
9
+ const [cmd, ...args] = command.split(' ');
10
+ const child = spawn(cmd, args, { shell: true });
11
+ if (showLogs) {
12
+ child.stdout.on('data', (data) => {
13
+ data.toString().split('\n').filter(Boolean).forEach((line) => Logger.project(line));
14
+ });
15
+ child.stderr.on('data', (data) => {
16
+ data.toString().split('\n').filter(Boolean).forEach((line) => Logger.project(chalk.red(line)));
17
+ });
18
+ }
19
+ child.on('error', (error) => {
20
+ Logger.error(`Failed to start project command: ${error.message}`);
21
+ });
22
+ child.on('exit', (code) => {
23
+ if (code !== 0 && code !== null) {
24
+ Logger.warning(`Project command exited with code ${code}`);
25
+ }
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=processUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processUtils.js","sourceRoot":"","sources":["../../lib/utils/processUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,OAAO,YAAY;IAChB,MAAM,CAAC,UAAU,CAAC,OAAe,EAAE,WAAoB,KAAK;QACjE,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QAEjD,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzG,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,CAAC,OAAO,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export declare const translateText: (text: string, target: string) => Promise<string>;
2
+ //# sourceMappingURL=translate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../lib/utils/translate.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CA4B1E,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { get } from 'https';
2
+ export const translateText = (text, target) => {
3
+ return new Promise((resolve, reject) => {
4
+ const encoded = encodeURIComponent(text);
5
+ const url = `https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${target}&dt=t&q=${encoded}`;
6
+ get(url, res => {
7
+ if (res.statusCode !== 200) {
8
+ res.resume();
9
+ return reject(new Error(`Translate API error: ${res.statusCode}`));
10
+ }
11
+ let rawData = '';
12
+ res.on('data', chunk => rawData += chunk);
13
+ res.on('end', () => {
14
+ try {
15
+ const parsed = JSON.parse(rawData);
16
+ if (!parsed[0])
17
+ return reject(new Error('Invalid response format'));
18
+ const raw = parsed[0].map(t => t[0]).join('');
19
+ const lower = raw.toLowerCase();
20
+ resolve(lower.charAt(0).toUpperCase() + lower.slice(1));
21
+ }
22
+ catch (error) {
23
+ reject(error);
24
+ }
25
+ });
26
+ }).on('error', reject);
27
+ });
28
+ };
29
+ //# sourceMappingURL=translate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../lib/utils/translate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAc,EAAmB,EAAE;IAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,6EAA6E,MAAM,WAAW,OAAO,EAAE,CAAC;QAEpH,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACb,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAE1C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA8B,CAAC;oBAChE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;oBAEpE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const translateText: (text: string, target: string) => Promise<string>;
2
+ //# sourceMappingURL=translateUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translateUtils.d.ts","sourceRoot":"","sources":["../../lib/utils/translateUtils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CA4B1E,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { get } from 'https';
2
+ export const translateText = (text, target) => {
3
+ return new Promise((resolve, reject) => {
4
+ const encoded = encodeURIComponent(text);
5
+ const url = `https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${target}&dt=t&q=${encoded}`;
6
+ get(url, res => {
7
+ if (res.statusCode !== 200) {
8
+ res.resume();
9
+ return reject(new Error(`Translate API error: ${res.statusCode}`));
10
+ }
11
+ let rawData = '';
12
+ res.on('data', chunk => rawData += chunk);
13
+ res.on('end', () => {
14
+ try {
15
+ const parsed = JSON.parse(rawData);
16
+ if (!parsed[0])
17
+ return reject(new Error('Invalid response format'));
18
+ const raw = parsed[0].map(t => t[0]).join('');
19
+ const lower = raw.toLowerCase();
20
+ resolve(lower.charAt(0).toUpperCase() + lower.slice(1));
21
+ }
22
+ catch (error) {
23
+ reject(error);
24
+ }
25
+ });
26
+ }).on('error', reject);
27
+ });
28
+ };
29
+ //# sourceMappingURL=translateUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translateUtils.js","sourceRoot":"","sources":["../../lib/utils/translateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAc,EAAmB,EAAE;IAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,6EAA6E,MAAM,WAAW,OAAO,EAAE,CAAC;QAEpH,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACb,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAE1C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA8B,CAAC;oBAChE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;wBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;oBAEpE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "codemerge-cli",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "AI-focused code and data preparation utility",
5
5
  "license": "MIT",
6
6
  "author": "CodeMerge Team",
7
7
  "type": "module",
8
- "main": "dist/index.js",
8
+ "main": "dist/cli.js",
9
9
  "bin": {
10
10
  "codemerge": "bin/codemerge.js"
11
11
  },
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "https://github.com/yourusername/codemerge.git"
14
+ "url": "git+https://github.com/odutradev/codemerge-cli.git"
15
15
  },
16
16
  "keywords": [
17
17
  "ai",
@@ -48,7 +48,7 @@
48
48
  "node": ">=16.0.0"
49
49
  },
50
50
  "files": [
51
- "dist*",
52
- "bin*"
51
+ "dist",
52
+ "bin"
53
53
  ]
54
54
  }