@radkode/neo 0.5.0 → 0.6.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/README.md +16 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/alias/setup/index.d.ts.map +1 -1
- package/dist/commands/alias/setup/index.js +11 -14
- package/dist/commands/alias/setup/index.js.map +1 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +142 -12
- package/dist/commands/config/index.js.map +1 -1
- package/dist/commands/git/pull/index.d.ts.map +1 -1
- package/dist/commands/git/pull/index.js +31 -30
- package/dist/commands/git/pull/index.js.map +1 -1
- package/dist/commands/git/push/index.d.ts.map +1 -1
- package/dist/commands/git/push/index.js +36 -42
- package/dist/commands/git/push/index.js.map +1 -1
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +39 -28
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/update/index.d.ts.map +1 -1
- package/dist/commands/update/index.js +30 -27
- package/dist/commands/update/index.js.map +1 -1
- package/dist/utils/banner.d.ts +3 -0
- package/dist/utils/banner.d.ts.map +1 -1
- package/dist/utils/banner.js +26 -6
- package/dist/utils/banner.js.map +1 -1
- package/dist/utils/config.d.ts +2 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +1 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/ui-examples.d.ts +3 -0
- package/dist/utils/ui-examples.d.ts.map +1 -0
- package/dist/utils/ui-examples.js +191 -0
- package/dist/utils/ui-examples.js.map +1 -0
- package/dist/utils/ui-types.d.ts +72 -0
- package/dist/utils/ui-types.d.ts.map +1 -0
- package/dist/utils/ui-types.js +21 -0
- package/dist/utils/ui-types.js.map +1 -0
- package/dist/utils/ui.d.ts +43 -0
- package/dist/utils/ui.d.ts.map +1 -0
- package/dist/utils/ui.js +163 -0
- package/dist/utils/ui.js.map +1 -0
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
<div align="center">
|
|
11
11
|
|
|
12
|
-
###
|
|
12
|
+
### Modern CLI toolkit with intelligent git workflows and configuration management
|
|
13
13
|
|
|
14
14
|
[](https://www.npmjs.com/package/@radkode/neo)
|
|
15
15
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -74,7 +74,7 @@ $ neo git push
|
|
|
74
74
|
|
|
75
75
|
⚡ NEO CLI
|
|
76
76
|
Radkode's Lightning-Fast CLI Framework
|
|
77
|
-
|
|
77
|
+
|
|
78
78
|
⚠️ You are about to push directly to the main branch.
|
|
79
79
|
This is generally not recommended as it bypasses code review processes.
|
|
80
80
|
✔ Are you sure you want to continue? » No
|
|
@@ -104,6 +104,7 @@ $ neo config list
|
|
|
104
104
|
## Commands
|
|
105
105
|
|
|
106
106
|
### `init`
|
|
107
|
+
|
|
107
108
|
Install and configure Neo CLI globally.
|
|
108
109
|
|
|
109
110
|
```bash
|
|
@@ -111,10 +112,12 @@ neo init
|
|
|
111
112
|
```
|
|
112
113
|
|
|
113
114
|
Options:
|
|
115
|
+
|
|
114
116
|
- `--force` - Force reconfiguration if already initialized
|
|
115
117
|
- `--skip-install` - Skip global installation (configuration only)
|
|
116
118
|
|
|
117
119
|
### `config`
|
|
120
|
+
|
|
118
121
|
Manage configuration values with simple key-value storage.
|
|
119
122
|
|
|
120
123
|
```bash
|
|
@@ -129,14 +132,17 @@ neo config list
|
|
|
129
132
|
```
|
|
130
133
|
|
|
131
134
|
Subcommands:
|
|
135
|
+
|
|
132
136
|
- `config get <key>` - Get a configuration value
|
|
133
137
|
- `config set <key> <value>` - Set a configuration value
|
|
134
138
|
- `config list` - List all configuration values
|
|
135
139
|
|
|
136
140
|
### `git`
|
|
141
|
+
|
|
137
142
|
Enhanced git operations with safety features.
|
|
138
143
|
|
|
139
144
|
#### `git push`
|
|
145
|
+
|
|
140
146
|
Smart git push with main branch protection.
|
|
141
147
|
|
|
142
148
|
```bash
|
|
@@ -157,18 +163,21 @@ neo git push --tags
|
|
|
157
163
|
```
|
|
158
164
|
|
|
159
165
|
Options:
|
|
166
|
+
|
|
160
167
|
- `-f, --force` - Force push (overwrites remote)
|
|
161
168
|
- `-u, --set-upstream <branch>` - Set upstream branch
|
|
162
169
|
- `--dry-run` - Show what would be pushed without actually pushing
|
|
163
170
|
- `--tags` - Push tags along with commits
|
|
164
171
|
|
|
165
172
|
**Safety Features:**
|
|
173
|
+
|
|
166
174
|
- ⚠️ Interactive confirmation when pushing to main branch
|
|
167
175
|
- 📝 Helpful guidance for safer alternatives
|
|
168
176
|
- ✅ Graceful cancellation (exits with success code)
|
|
169
177
|
- 🎯 Encourages best practices while allowing flexibility
|
|
170
178
|
|
|
171
179
|
### `update`
|
|
180
|
+
|
|
172
181
|
Update Neo CLI to the latest version from npm.
|
|
173
182
|
|
|
174
183
|
```bash
|
|
@@ -183,10 +192,12 @@ neo update --force
|
|
|
183
192
|
```
|
|
184
193
|
|
|
185
194
|
Options:
|
|
195
|
+
|
|
186
196
|
- `--check-only` - Only check for updates without installing
|
|
187
197
|
- `--force` - Force update even if already on latest version
|
|
188
198
|
|
|
189
199
|
**Features:**
|
|
200
|
+
|
|
190
201
|
- 🔍 Automatic version checking against npm registry
|
|
191
202
|
- 📦 Smart package manager detection (npm, pnpm, yarn)
|
|
192
203
|
- ✨ Interactive confirmation before updating
|
|
@@ -253,6 +264,7 @@ pnpm changeset
|
|
|
253
264
|
```
|
|
254
265
|
|
|
255
266
|
This will:
|
|
267
|
+
|
|
256
268
|
1. Prompt you to select which packages to version (this project has one)
|
|
257
269
|
2. Ask for the type of change (patch, minor, major)
|
|
258
270
|
3. Request a description of the changes
|
|
@@ -274,12 +286,13 @@ pnpm release
|
|
|
274
286
|
#### Change Types
|
|
275
287
|
|
|
276
288
|
- **patch**: Bug fixes, small improvements (0.1.0 → 0.1.1)
|
|
277
|
-
- **minor**: New features, enhancements (0.1.0 → 0.2.0)
|
|
289
|
+
- **minor**: New features, enhancements (0.1.0 → 0.2.0)
|
|
278
290
|
- **major**: Breaking changes (0.1.0 → 1.0.0)
|
|
279
291
|
|
|
280
292
|
#### CI Integration
|
|
281
293
|
|
|
282
294
|
The changeset workflow integrates with:
|
|
295
|
+
|
|
283
296
|
- GitHub releases and changelogs
|
|
284
297
|
- Automated version bumping
|
|
285
298
|
- NPM publishing pipeline
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAetD,wBAAgB,SAAS,IAAI,OAAO,CAoEnC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Command } from '@commander-js/extra-typings';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
-
import {
|
|
3
|
+
import { displayBanner } from './utils/banner.js';
|
|
4
4
|
import { logger } from './utils/logger.js';
|
|
5
5
|
import { registerCommands } from './commands/index.js';
|
|
6
|
+
import { configManager } from './utils/config.js';
|
|
6
7
|
import { readFileSync } from 'fs';
|
|
7
8
|
import { fileURLToPath } from 'url';
|
|
8
9
|
import { dirname, join } from 'path';
|
|
@@ -19,19 +20,30 @@ export function createCLI() {
|
|
|
19
20
|
.option('-c, --config <path>', 'path to config file')
|
|
20
21
|
.option('--no-color', 'disable colored output')
|
|
21
22
|
.option('--no-banner', 'hide banner')
|
|
22
|
-
.hook('preAction', (thisCommand, actionCommand) => {
|
|
23
|
+
.hook('preAction', async (thisCommand, actionCommand) => {
|
|
23
24
|
const opts = thisCommand.opts();
|
|
24
25
|
const commandName = actionCommand.name();
|
|
25
|
-
const
|
|
26
|
-
commandName === 'version' ||
|
|
26
|
+
const isHelpOrVersion = commandName === 'version' ||
|
|
27
27
|
commandName === 'help' ||
|
|
28
28
|
process.argv.includes('--version') ||
|
|
29
29
|
process.argv.includes('-V') ||
|
|
30
30
|
process.argv.includes('--help') ||
|
|
31
31
|
process.argv.includes('-h');
|
|
32
|
-
if (
|
|
33
|
-
|
|
32
|
+
if (isHelpOrVersion) {
|
|
33
|
+
return;
|
|
34
34
|
}
|
|
35
|
+
if (opts.banner === false) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
let bannerType = 'full';
|
|
39
|
+
try {
|
|
40
|
+
const config = await configManager.read();
|
|
41
|
+
bannerType = config.preferences.banner;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
logger.debug(`Failed to read banner config, using default: ${error}`);
|
|
45
|
+
}
|
|
46
|
+
displayBanner(bannerType);
|
|
35
47
|
if (opts.verbose) {
|
|
36
48
|
logger.setVerbose(true);
|
|
37
49
|
logger.debug(`Executing command: ${commandName}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;SACpC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;SAC5B,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACjD,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;SACpD,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC;SAC9C,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC;SACpC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QAQzC,MAAM,eAAe,GACnB,WAAW,KAAK,SAAS;YACzB,WAAW,KAAK,MAAM;YACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAG9B,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAGD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAGD,IAAI,UAAU,GAAe,MAAM,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1C,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,MAAM,CAAC,KAAK,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;QAGD,aAAa,CAAC,UAAU,CAAC,CAAC;QAG1B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACpD,CAAC;QAGD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAGL,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE1B,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3F,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAG5B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,YAAY,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAEpD,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAyB,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAGD,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAGD,IAAI,GAAG,CAAC,IAAI,KAAK,2BAA2B,IAAI,GAAG,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;gBACxF,OAAO,CAAC,KAAK,CACX,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;gBACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1 +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;
|
|
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;AAiDtD,wBAAgB,kBAAkB,IAAI,OAAO,CA2E5C"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Command } from '@commander-js/extra-typings';
|
|
2
2
|
import inquirer from 'inquirer';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
3
|
import { ZshIntegration } from '../../../utils/shell.js';
|
|
5
|
-
import {
|
|
4
|
+
import { ui } from '../../../utils/ui.js';
|
|
6
5
|
const ALIASES = Object.freeze({
|
|
7
6
|
gp: 'neo git pull',
|
|
8
7
|
gpu: 'neo git push',
|
|
@@ -39,9 +38,9 @@ export function createSetupCommand() {
|
|
|
39
38
|
})();
|
|
40
39
|
const conflicts = findConflictingAliases(rcContent, ALIASES);
|
|
41
40
|
if (conflicts.length > 0 && !options.force) {
|
|
42
|
-
|
|
41
|
+
ui.warn('The following aliases already exist and will be overwritten:');
|
|
43
42
|
for (const c of conflicts) {
|
|
44
|
-
|
|
43
|
+
ui.log(` ${c.alias}: currently ${c.current} -> new ${ALIASES[c.alias]}`);
|
|
45
44
|
}
|
|
46
45
|
const { confirm } = await inquirer.prompt([
|
|
47
46
|
{
|
|
@@ -52,30 +51,28 @@ export function createSetupCommand() {
|
|
|
52
51
|
},
|
|
53
52
|
]);
|
|
54
53
|
if (!confirm) {
|
|
55
|
-
|
|
54
|
+
ui.info('Aborted. No changes were made');
|
|
56
55
|
return;
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
58
|
const backupPath = await shell.backup();
|
|
60
59
|
if (backupPath) {
|
|
61
|
-
|
|
60
|
+
ui.info(`Backed up ${rcFile} to ${backupPath}`);
|
|
62
61
|
}
|
|
63
62
|
else {
|
|
64
|
-
|
|
63
|
+
ui.warn('No existing ~/.zshrc found to back up, proceeding to create/update it');
|
|
65
64
|
}
|
|
66
65
|
for (const [alias, value] of Object.entries(ALIASES)) {
|
|
67
66
|
await shell.addAlias(alias, value);
|
|
68
67
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
logger.info('Restart your shell or run: source ~/.zshrc');
|
|
68
|
+
ui.success('Aliases configured successfully');
|
|
69
|
+
ui.info('Added/updated aliases:');
|
|
70
|
+
ui.list(Object.entries(ALIASES).map(([alias, value]) => `${alias}="${value}"`));
|
|
71
|
+
ui.info('Restart your shell or run: source ~/.zshrc');
|
|
75
72
|
}
|
|
76
73
|
catch (error) {
|
|
77
74
|
const message = error instanceof Error ? error.message : String(error);
|
|
78
|
-
|
|
75
|
+
ui.error(`Failed to setup aliases: ${message}`);
|
|
79
76
|
process.exitCode = 1;
|
|
80
77
|
}
|
|
81
78
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/alias/setup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/alias/setup/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAKtD,wBAAgB,mBAAmB,IAAI,OAAO,CAU7C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command } from '@commander-js/extra-typings';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import { ui } from '../../utils/ui.js';
|
|
3
|
+
import { configManager } from '../../utils/config.js';
|
|
4
4
|
export function createConfigCommand() {
|
|
5
5
|
const command = new Command('config');
|
|
6
6
|
command
|
|
@@ -14,9 +14,27 @@ function createConfigGetCommand() {
|
|
|
14
14
|
const command = new Command('get');
|
|
15
15
|
command
|
|
16
16
|
.description('Get a configuration value')
|
|
17
|
-
.argument('<key>', 'configuration key')
|
|
18
|
-
.action((key) => {
|
|
19
|
-
|
|
17
|
+
.argument('<key>', 'configuration key (supports dot notation, e.g., preferences.banner)')
|
|
18
|
+
.action(async (key) => {
|
|
19
|
+
try {
|
|
20
|
+
const config = await configManager.read();
|
|
21
|
+
const value = getNestedValue(config, key);
|
|
22
|
+
if (value === undefined) {
|
|
23
|
+
ui.error(`Configuration key not found: ${key}`);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
if (typeof value === 'object' && value !== null) {
|
|
27
|
+
ui.info(`${key}:`);
|
|
28
|
+
console.log(JSON.stringify(value, null, 2));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
ui.keyValue([[key, String(value)]]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
ui.error(`Failed to read configuration: ${error}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
20
38
|
});
|
|
21
39
|
return command;
|
|
22
40
|
}
|
|
@@ -24,19 +42,131 @@ function createConfigSetCommand() {
|
|
|
24
42
|
const command = new Command('set');
|
|
25
43
|
command
|
|
26
44
|
.description('Set a configuration value')
|
|
27
|
-
.argument('<key>', 'configuration key')
|
|
45
|
+
.argument('<key>', 'configuration key (supports dot notation, e.g., preferences.banner)')
|
|
28
46
|
.argument('<value>', 'configuration value')
|
|
29
|
-
.action((key, value) => {
|
|
30
|
-
|
|
47
|
+
.action(async (key, value) => {
|
|
48
|
+
try {
|
|
49
|
+
if (key === 'preferences.banner') {
|
|
50
|
+
const validBannerValues = ['full', 'compact', 'none'];
|
|
51
|
+
if (!validBannerValues.includes(value)) {
|
|
52
|
+
ui.error(`Invalid banner value: ${value}. Must be one of: ${validBannerValues.join(', ')}`);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (key === 'preferences.theme') {
|
|
57
|
+
const validThemeValues = ['dark', 'light', 'auto'];
|
|
58
|
+
if (!validThemeValues.includes(value)) {
|
|
59
|
+
ui.error(`Invalid theme value: ${value}. Must be one of: ${validThemeValues.join(', ')}`);
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (key === 'shell.type') {
|
|
64
|
+
const validShellTypes = ['zsh', 'bash', 'fish'];
|
|
65
|
+
if (!validShellTypes.includes(value)) {
|
|
66
|
+
ui.error(`Invalid shell type: ${value}. Must be one of: ${validShellTypes.join(', ')}`);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const config = await configManager.read();
|
|
71
|
+
const updated = setNestedValue(config, key, parseValue(value));
|
|
72
|
+
await configManager.write(updated);
|
|
73
|
+
ui.success(`Configuration updated: ${key} = ${value}`);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
ui.error(`Failed to set configuration: ${error}`);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
31
79
|
});
|
|
32
80
|
return command;
|
|
33
81
|
}
|
|
82
|
+
function getNestedValue(obj, path) {
|
|
83
|
+
return path.split('.').reduce((current, key) => {
|
|
84
|
+
if (current && typeof current === 'object' && key in current) {
|
|
85
|
+
return current[key];
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}, obj);
|
|
89
|
+
}
|
|
90
|
+
function setNestedValue(obj, path, value) {
|
|
91
|
+
const keys = path.split('.');
|
|
92
|
+
const result = JSON.parse(JSON.stringify(obj));
|
|
93
|
+
let current = result;
|
|
94
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
95
|
+
const key = keys[i];
|
|
96
|
+
if (!current[key]) {
|
|
97
|
+
current[key] = {};
|
|
98
|
+
}
|
|
99
|
+
current = current[key];
|
|
100
|
+
}
|
|
101
|
+
const lastKey = keys[keys.length - 1];
|
|
102
|
+
current[lastKey] = value;
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
function parseValue(value) {
|
|
106
|
+
if (value === 'true')
|
|
107
|
+
return true;
|
|
108
|
+
if (value === 'false')
|
|
109
|
+
return false;
|
|
110
|
+
const num = Number(value);
|
|
111
|
+
if (!isNaN(num) && value !== '')
|
|
112
|
+
return num;
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
34
115
|
function createConfigListCommand() {
|
|
35
116
|
const command = new Command('list');
|
|
36
|
-
command.description('List all configuration values').action(() => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
117
|
+
command.description('List all configuration values').action(async () => {
|
|
118
|
+
try {
|
|
119
|
+
const config = await configManager.read();
|
|
120
|
+
ui.info('Current Neo CLI Configuration');
|
|
121
|
+
console.log('');
|
|
122
|
+
if (config.user.name || config.user.email) {
|
|
123
|
+
ui.section('User');
|
|
124
|
+
const userPairs = [];
|
|
125
|
+
if (config.user.name)
|
|
126
|
+
userPairs.push(['user.name', config.user.name]);
|
|
127
|
+
if (config.user.email)
|
|
128
|
+
userPairs.push(['user.email', config.user.email]);
|
|
129
|
+
ui.keyValue(userPairs);
|
|
130
|
+
console.log('');
|
|
131
|
+
}
|
|
132
|
+
ui.section('Preferences');
|
|
133
|
+
const prefPairs = [
|
|
134
|
+
['banner', config.preferences.banner],
|
|
135
|
+
['theme', config.preferences.theme],
|
|
136
|
+
];
|
|
137
|
+
if (config.preferences.editor) {
|
|
138
|
+
prefPairs.push(['editor', config.preferences.editor]);
|
|
139
|
+
}
|
|
140
|
+
prefPairs.push(['aliases.n', config.preferences.aliases.n ? 'enabled' : 'disabled']);
|
|
141
|
+
ui.keyValue(prefPairs);
|
|
142
|
+
console.log('');
|
|
143
|
+
ui.section('Shell');
|
|
144
|
+
ui.keyValue([
|
|
145
|
+
['type', config.shell.type],
|
|
146
|
+
['rcFile', config.shell.rcFile],
|
|
147
|
+
]);
|
|
148
|
+
console.log('');
|
|
149
|
+
ui.section('Installation');
|
|
150
|
+
const installPairs = [
|
|
151
|
+
['version', config.installation.version],
|
|
152
|
+
['installedAt', config.installation.installedAt],
|
|
153
|
+
];
|
|
154
|
+
if (config.installation.globalPath) {
|
|
155
|
+
installPairs.push(['globalPath', config.installation.globalPath]);
|
|
156
|
+
}
|
|
157
|
+
if (config.installation.completionsPath) {
|
|
158
|
+
installPairs.push(['completionsPath', config.installation.completionsPath]);
|
|
159
|
+
}
|
|
160
|
+
ui.keyValue(installPairs);
|
|
161
|
+
console.log('');
|
|
162
|
+
ui.divider();
|
|
163
|
+
ui.muted(`Config file: ${configManager.getConfigFile()}`);
|
|
164
|
+
ui.muted(`\nUse these full keys with 'neo config get <key>' or 'neo config set <key> <value>'`);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
ui.error(`Failed to read configuration: ${error}`);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
40
170
|
});
|
|
41
171
|
return command;
|
|
42
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/pull/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/pull/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AActD,wBAAgB,iBAAiB,IAAI,OAAO,CAyI3C"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Command } from '@commander-js/extra-typings';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import ora from 'ora';
|
|
4
2
|
import { execa } from 'execa';
|
|
5
3
|
import { logger } from '../../../utils/logger.js';
|
|
4
|
+
import { ui } from '../../../utils/ui.js';
|
|
6
5
|
export function createPullCommand() {
|
|
7
6
|
const command = new Command('pull');
|
|
8
7
|
command
|
|
@@ -10,7 +9,7 @@ export function createPullCommand() {
|
|
|
10
9
|
.option('--rebase', 'force rebase strategy')
|
|
11
10
|
.option('--no-rebase', 'prevent automatic rebase fallback')
|
|
12
11
|
.action(async (options) => {
|
|
13
|
-
const spinner =
|
|
12
|
+
const spinner = ui.spinner('Pulling from remote');
|
|
14
13
|
try {
|
|
15
14
|
const { stdout: currentBranch } = await execa('git', ['branch', '--show-current']);
|
|
16
15
|
const branchName = currentBranch.trim();
|
|
@@ -19,11 +18,11 @@ export function createPullCommand() {
|
|
|
19
18
|
await execa('git', ['rev-parse', '--abbrev-ref', '@{u}']);
|
|
20
19
|
}
|
|
21
20
|
catch {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
ui.error('No upstream branch configured!');
|
|
22
|
+
ui.warn('Set an upstream branch first:');
|
|
23
|
+
ui.muted(` git branch --set-upstream-to=origin/${branchName} ${branchName}`);
|
|
24
|
+
ui.muted('Or push with upstream:');
|
|
25
|
+
ui.muted(` neo git push -u ${branchName}`);
|
|
27
26
|
process.exit(1);
|
|
28
27
|
}
|
|
29
28
|
spinner.start();
|
|
@@ -34,9 +33,9 @@ export function createPullCommand() {
|
|
|
34
33
|
stdio: 'pipe',
|
|
35
34
|
encoding: 'utf8',
|
|
36
35
|
});
|
|
37
|
-
spinner.succeed(
|
|
36
|
+
spinner.succeed('Successfully pulled with rebase!');
|
|
38
37
|
if (stdout.trim()) {
|
|
39
|
-
|
|
38
|
+
ui.muted(stdout);
|
|
40
39
|
}
|
|
41
40
|
return;
|
|
42
41
|
}
|
|
@@ -46,9 +45,9 @@ export function createPullCommand() {
|
|
|
46
45
|
stdio: 'pipe',
|
|
47
46
|
encoding: 'utf8',
|
|
48
47
|
});
|
|
49
|
-
spinner.succeed(
|
|
48
|
+
spinner.succeed('Successfully pulled from remote!');
|
|
50
49
|
if (stdout.trim()) {
|
|
51
|
-
|
|
50
|
+
ui.muted(stdout);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
catch (error) {
|
|
@@ -63,10 +62,10 @@ export function createPullCommand() {
|
|
|
63
62
|
stdio: 'pipe',
|
|
64
63
|
encoding: 'utf8',
|
|
65
64
|
});
|
|
66
|
-
spinner.succeed(
|
|
67
|
-
|
|
65
|
+
spinner.succeed('Successfully pulled with rebase!');
|
|
66
|
+
ui.info('Used rebase strategy due to divergent branches');
|
|
68
67
|
if (stdout.trim()) {
|
|
69
|
-
|
|
68
|
+
ui.muted(stdout);
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
else {
|
|
@@ -79,33 +78,35 @@ export function createPullCommand() {
|
|
|
79
78
|
if (error instanceof Error) {
|
|
80
79
|
const errorMessage = error.message;
|
|
81
80
|
if (errorMessage.includes('not a git repository')) {
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
ui.error('Not a git repository!');
|
|
82
|
+
ui.warn('Make sure you are in a git repository directory');
|
|
84
83
|
process.exit(1);
|
|
85
84
|
}
|
|
86
85
|
if (errorMessage.includes('conflict')) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
ui.error('Merge conflicts detected!');
|
|
87
|
+
ui.warn('Resolve conflicts manually, then:');
|
|
88
|
+
ui.list([
|
|
89
|
+
'Fix conflicts in your editor',
|
|
90
|
+
'Stage resolved files: git add <files>',
|
|
91
|
+
'Continue rebase: git rebase --continue',
|
|
92
|
+
]);
|
|
93
|
+
ui.muted('Or abort the rebase:');
|
|
94
|
+
ui.muted(' git rebase --abort');
|
|
94
95
|
process.exit(1);
|
|
95
96
|
}
|
|
96
97
|
if (errorMessage.includes('authentication') || errorMessage.includes('permission')) {
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
ui.error('Authentication failed!');
|
|
99
|
+
ui.warn('Check your git credentials or SSH keys');
|
|
99
100
|
process.exit(1);
|
|
100
101
|
}
|
|
101
102
|
if (errorMessage.includes('Could not resolve host')) {
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
ui.error('Network error!');
|
|
104
|
+
ui.warn('Check your internet connection');
|
|
104
105
|
process.exit(1);
|
|
105
106
|
}
|
|
106
107
|
}
|
|
107
|
-
|
|
108
|
-
|
|
108
|
+
ui.error('Failed to pull from remote');
|
|
109
|
+
ui.muted(error instanceof Error ? error.message : String(error));
|
|
109
110
|
process.exit(1);
|
|
110
111
|
}
|
|
111
112
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/git/pull/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/git/pull/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/push/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/push/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAOtD,wBAAgB,iBAAiB,IAAI,OAAO,CAsJ3C"}
|