@radkode/neo 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/alias/index.d.ts +3 -0
- package/dist/commands/alias/index.d.ts.map +1 -0
- package/dist/commands/alias/index.js +8 -0
- package/dist/commands/alias/index.js.map +1 -0
- package/dist/commands/alias/setup/index.d.ts +3 -0
- package/dist/commands/alias/setup/index.d.ts.map +1 -0
- package/dist/commands/alias/setup/index.js +84 -0
- package/dist/commands/alias/setup/index.js.map +1 -0
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -0
- package/dist/commands/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/alias/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAQtD,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Command } from '@commander-js/extra-typings';
|
|
2
|
+
import { createSetupCommand } from '../alias/setup/index.js';
|
|
3
|
+
export function createAliasCommand() {
|
|
4
|
+
const command = new Command('alias');
|
|
5
|
+
command.description('Manage shell aliases for Neo CLI').addCommand(createSetupCommand());
|
|
6
|
+
return command;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/alias/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAOrE,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,OAAO,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/alias/setup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAkDtD,wBAAgB,kBAAkB,IAAI,OAAO,CA6E5C"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Command } from '@commander-js/extra-typings';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { ZshIntegration } from '../../../utils/shell.js';
|
|
5
|
+
import { logger } from '../../../utils/logger.js';
|
|
6
|
+
const ALIASES = Object.freeze({
|
|
7
|
+
gp: 'neo git pull',
|
|
8
|
+
gpu: 'neo git push',
|
|
9
|
+
});
|
|
10
|
+
function findConflictingAliases(content, aliases) {
|
|
11
|
+
const conflicts = [];
|
|
12
|
+
const aliasRegex = /^alias\s+([A-Za-z0-9_-]+)=(["'])(.*?)\2\s*$/gm;
|
|
13
|
+
let match;
|
|
14
|
+
while ((match = aliasRegex.exec(content)) !== null) {
|
|
15
|
+
const [, name, , value] = match;
|
|
16
|
+
if (name && value && aliases[name] && value.trim() !== aliases[name]) {
|
|
17
|
+
conflicts.push({ alias: name, current: value.trim() });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return conflicts;
|
|
21
|
+
}
|
|
22
|
+
export function createSetupCommand() {
|
|
23
|
+
const command = new Command('setup');
|
|
24
|
+
command
|
|
25
|
+
.description('Setup ZSH aliases for Neo CLI (gp, gpu). Backs up ~/.zshrc before modifying.')
|
|
26
|
+
.option('-f, --force', 'skip confirmation and overwrite conflicting aliases')
|
|
27
|
+
.action(async (options) => {
|
|
28
|
+
const shell = new ZshIntegration();
|
|
29
|
+
try {
|
|
30
|
+
const rcFile = shell.getRcFile();
|
|
31
|
+
const rcContent = await (async () => {
|
|
32
|
+
try {
|
|
33
|
+
const { readFile } = await import('fs/promises');
|
|
34
|
+
return await readFile(rcFile, 'utf-8');
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
})();
|
|
40
|
+
const conflicts = findConflictingAliases(rcContent, ALIASES);
|
|
41
|
+
if (conflicts.length > 0 && !options.force) {
|
|
42
|
+
logger.warn('The following aliases already exist and will be overwritten:');
|
|
43
|
+
for (const c of conflicts) {
|
|
44
|
+
logger.log(` ${chalk.cyan(c.alias)}: currently ${chalk.yellow(c.current)} -> new ${chalk.green(ALIASES[c.alias])}`);
|
|
45
|
+
}
|
|
46
|
+
const { confirm } = await inquirer.prompt([
|
|
47
|
+
{
|
|
48
|
+
type: 'confirm',
|
|
49
|
+
name: 'confirm',
|
|
50
|
+
message: 'Proceed with overwriting these aliases?',
|
|
51
|
+
default: false,
|
|
52
|
+
},
|
|
53
|
+
]);
|
|
54
|
+
if (!confirm) {
|
|
55
|
+
logger.info('Aborted. No changes were made.');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const backupPath = await shell.backup();
|
|
60
|
+
if (backupPath) {
|
|
61
|
+
logger.info(`Backed up ${chalk.cyan(rcFile)} to ${chalk.cyan(backupPath)}`);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
logger.warn('No existing ~/.zshrc found to back up, proceeding to create/update it.');
|
|
65
|
+
}
|
|
66
|
+
for (const [alias, value] of Object.entries(ALIASES)) {
|
|
67
|
+
await shell.addAlias(alias, value);
|
|
68
|
+
}
|
|
69
|
+
logger.success('Aliases configured successfully.');
|
|
70
|
+
logger.log('Added/updated aliases:');
|
|
71
|
+
for (const [alias, value] of Object.entries(ALIASES)) {
|
|
72
|
+
logger.log(` ${chalk.cyan(alias)}=${chalk.green(`"${value}"`)}`);
|
|
73
|
+
}
|
|
74
|
+
logger.info('Restart your shell or run: source ~/.zshrc');
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
78
|
+
logger.error(`Failed to setup aliases: ${message}`);
|
|
79
|
+
process.exitCode = 1;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
return command;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/alias/setup/index.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export declare function registerCommands(program: Command): void;
|
|
|
3
3
|
export { createInitCommand } from './init/index.js';
|
|
4
4
|
export { createConfigCommand } from './config/index.js';
|
|
5
5
|
export { createGitCommand } from './git/index.js';
|
|
6
|
+
export { createAliasCommand } from './alias/index.js';
|
|
6
7
|
export { createUpdateCommand } from './update/index.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAOtD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAMvD;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -2,14 +2,17 @@ import { createInitCommand } from './init/index.js';
|
|
|
2
2
|
import { createConfigCommand } from './config/index.js';
|
|
3
3
|
import { createGitCommand } from './git/index.js';
|
|
4
4
|
import { createUpdateCommand } from './update/index.js';
|
|
5
|
+
import { createAliasCommand } from './alias/index.js';
|
|
5
6
|
export function registerCommands(program) {
|
|
6
7
|
program.addCommand(createInitCommand());
|
|
7
8
|
program.addCommand(createConfigCommand());
|
|
8
9
|
program.addCommand(createGitCommand());
|
|
10
|
+
program.addCommand(createAliasCommand());
|
|
9
11
|
program.addCommand(createUpdateCommand());
|
|
10
12
|
}
|
|
11
13
|
export { createInitCommand } from './init/index.js';
|
|
12
14
|
export { createConfigCommand } from './config/index.js';
|
|
13
15
|
export { createGitCommand } from './git/index.js';
|
|
16
|
+
export { createAliasCommand } from './alias/index.js';
|
|
14
17
|
export { createUpdateCommand } from './update/index.js';
|
|
15
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
|