@radkode/neo 0.3.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 +167 -0
- package/bin/cli.js +2 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +74 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/config/index.d.ts +3 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +43 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/git/index.d.ts +3 -0
- package/dist/commands/git/index.d.ts.map +1 -0
- package/dist/commands/git/index.js +8 -0
- package/dist/commands/git/index.js.map +1 -0
- package/dist/commands/git/push/index.d.ts +3 -0
- package/dist/commands/git/push/index.d.ts.map +1 -0
- package/dist/commands/git/push/index.js +140 -0
- package/dist/commands/git/push/index.js.map +1 -0
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +12 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init/index.d.ts +3 -0
- package/dist/commands/init/index.d.ts.map +1 -0
- package/dist/commands/init/index.js +136 -0
- package/dist/commands/init/index.js.map +1 -0
- package/dist/core/errors/index.d.ts +168 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +260 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/interfaces/index.d.ts +292 -0
- package/dist/core/interfaces/index.d.ts.map +1 -0
- package/dist/core/interfaces/index.js +9 -0
- package/dist/core/interfaces/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/banner.d.ts +2 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +13 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/completions.d.ts +6 -0
- package/dist/utils/completions.d.ts.map +1 -0
- package/dist/utils/completions.js +108 -0
- package/dist/utils/completions.js.map +1 -0
- package/dist/utils/config.d.ts +38 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +128 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/installer.d.ts +28 -0
- package/dist/utils/installer.d.ts.map +1 -0
- package/dist/utils/installer.js +219 -0
- package/dist/utils/installer.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +29 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/shell.d.ts +31 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +213 -0
- package/dist/utils/shell.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { Result } from '../errors/index.js';
|
|
2
|
+
import type { Readable, Writable } from 'node:stream';
|
|
3
|
+
export interface CommandOption {
|
|
4
|
+
readonly flags: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
readonly defaultValue?: unknown;
|
|
7
|
+
readonly required?: boolean;
|
|
8
|
+
readonly validator?: (value: unknown) => boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface CommandArgument {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly description: string;
|
|
13
|
+
readonly required?: boolean;
|
|
14
|
+
readonly defaultValue?: unknown;
|
|
15
|
+
readonly validator?: (value: unknown) => boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface ICommand<TOptions = unknown> {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly description: string;
|
|
20
|
+
readonly version?: string;
|
|
21
|
+
readonly aliases?: string[];
|
|
22
|
+
readonly options?: CommandOption[];
|
|
23
|
+
readonly arguments?: CommandArgument[];
|
|
24
|
+
readonly examples?: string[];
|
|
25
|
+
readonly hidden?: boolean;
|
|
26
|
+
execute(options: TOptions, args?: string[]): Promise<Result<void>>;
|
|
27
|
+
validate(options: unknown): options is TOptions;
|
|
28
|
+
getHelp?(): string;
|
|
29
|
+
}
|
|
30
|
+
export interface CommandMetadata {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly description: string;
|
|
33
|
+
readonly group?: string;
|
|
34
|
+
readonly priority?: number;
|
|
35
|
+
readonly experimental?: boolean;
|
|
36
|
+
readonly deprecated?: boolean;
|
|
37
|
+
readonly deprecationMessage?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface IPlugin {
|
|
40
|
+
readonly name: string;
|
|
41
|
+
readonly version: string;
|
|
42
|
+
readonly description?: string;
|
|
43
|
+
readonly author?: string;
|
|
44
|
+
readonly homepage?: string;
|
|
45
|
+
readonly dependencies?: Record<string, string>;
|
|
46
|
+
readonly commands?: ICommand[];
|
|
47
|
+
readonly hooks?: ILifecycleHooks;
|
|
48
|
+
initialize(context: IPluginContext): Promise<void>;
|
|
49
|
+
dispose?(): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
export interface IPluginContext {
|
|
52
|
+
readonly version: string;
|
|
53
|
+
readonly config: IConfiguration;
|
|
54
|
+
readonly logger: ILogger;
|
|
55
|
+
readonly eventBus: IEventBus;
|
|
56
|
+
readonly commandRegistry: ICommandRegistry;
|
|
57
|
+
}
|
|
58
|
+
export interface ILifecycleHooks {
|
|
59
|
+
beforeCommand?: (commandName: string, options: unknown) => Promise<void>;
|
|
60
|
+
afterCommand?: (commandName: string, result: Result<void>) => Promise<void>;
|
|
61
|
+
onError?: (error: Error) => Promise<void>;
|
|
62
|
+
onExit?: (code: number) => Promise<void>;
|
|
63
|
+
}
|
|
64
|
+
export interface ILogger {
|
|
65
|
+
debug(message: string, context?: Record<string, unknown>): void;
|
|
66
|
+
info(message: string, context?: Record<string, unknown>): void;
|
|
67
|
+
warn(message: string, context?: Record<string, unknown>): void;
|
|
68
|
+
error(message: string, context?: Record<string, unknown>): void;
|
|
69
|
+
success(message: string, context?: Record<string, unknown>): void;
|
|
70
|
+
log(message: string): void;
|
|
71
|
+
setLevel(level: LogLevel): void;
|
|
72
|
+
getLevel(): LogLevel;
|
|
73
|
+
}
|
|
74
|
+
export declare enum LogLevel {
|
|
75
|
+
DEBUG = 0,
|
|
76
|
+
INFO = 1,
|
|
77
|
+
WARN = 2,
|
|
78
|
+
ERROR = 3,
|
|
79
|
+
NONE = 4
|
|
80
|
+
}
|
|
81
|
+
export interface IConfiguration {
|
|
82
|
+
get<T = unknown>(key: string): T | undefined;
|
|
83
|
+
set<T = unknown>(key: string, value: T): void;
|
|
84
|
+
has(key: string): boolean;
|
|
85
|
+
delete(key: string): void;
|
|
86
|
+
clear(): void;
|
|
87
|
+
getAll(): Record<string, unknown>;
|
|
88
|
+
validate(): Result<void>;
|
|
89
|
+
save(): Promise<Result<void>>;
|
|
90
|
+
load(): Promise<Result<void>>;
|
|
91
|
+
}
|
|
92
|
+
export interface IConfigurationSource {
|
|
93
|
+
readonly priority: number;
|
|
94
|
+
readonly name: string;
|
|
95
|
+
get<T = unknown>(key: string): T | undefined;
|
|
96
|
+
set<T = unknown>(key: string, value: T): void;
|
|
97
|
+
has(key: string): boolean;
|
|
98
|
+
delete(key: string): void;
|
|
99
|
+
getAll(): Record<string, unknown>;
|
|
100
|
+
}
|
|
101
|
+
export interface IEventBus {
|
|
102
|
+
emit<T = unknown>(event: string, data?: T): void;
|
|
103
|
+
on<T = unknown>(event: string, handler: EventHandler<T>): void;
|
|
104
|
+
off<T = unknown>(event: string, handler: EventHandler<T>): void;
|
|
105
|
+
once<T = unknown>(event: string, handler: EventHandler<T>): void;
|
|
106
|
+
}
|
|
107
|
+
export type EventHandler<T = unknown> = (data: T) => void | Promise<void>;
|
|
108
|
+
export interface ICommandRegistry {
|
|
109
|
+
register(command: ICommand, metadata?: CommandMetadata): void;
|
|
110
|
+
unregister(commandName: string): void;
|
|
111
|
+
get(commandName: string): ICommand | undefined;
|
|
112
|
+
getAll(): ICommand[];
|
|
113
|
+
getByGroup(group: string): ICommand[];
|
|
114
|
+
hasCommand(commandName: string): boolean;
|
|
115
|
+
}
|
|
116
|
+
export interface ITemplateEngine {
|
|
117
|
+
render(template: string, context: Record<string, unknown>): string;
|
|
118
|
+
renderFile(templatePath: string, context: Record<string, unknown>): Promise<string>;
|
|
119
|
+
registerHelper(name: string, helper: TemplateHelper): void;
|
|
120
|
+
}
|
|
121
|
+
export type TemplateHelper = (...args: unknown[]) => unknown;
|
|
122
|
+
export interface IFileSystem {
|
|
123
|
+
exists(path: string): Promise<boolean>;
|
|
124
|
+
readFile(path: string): Promise<string>;
|
|
125
|
+
writeFile(path: string, content: string): Promise<void>;
|
|
126
|
+
deleteFile(path: string): Promise<void>;
|
|
127
|
+
createDirectory(path: string): Promise<void>;
|
|
128
|
+
deleteDirectory(path: string): Promise<void>;
|
|
129
|
+
listDirectory(path: string): Promise<string[]>;
|
|
130
|
+
getFileInfo(path: string): Promise<IFileInfo>;
|
|
131
|
+
copyFile(source: string, destination: string): Promise<void>;
|
|
132
|
+
moveFile(source: string, destination: string): Promise<void>;
|
|
133
|
+
}
|
|
134
|
+
export interface IFileInfo {
|
|
135
|
+
readonly path: string;
|
|
136
|
+
readonly name: string;
|
|
137
|
+
readonly size: number;
|
|
138
|
+
readonly isDirectory: boolean;
|
|
139
|
+
readonly isFile: boolean;
|
|
140
|
+
readonly createdAt: Date;
|
|
141
|
+
readonly modifiedAt: Date;
|
|
142
|
+
readonly permissions: string;
|
|
143
|
+
}
|
|
144
|
+
export interface IProcessExecutor {
|
|
145
|
+
execute(command: string, args?: string[], options?: IProcessOptions): Promise<IProcessResult>;
|
|
146
|
+
spawn(command: string, args?: string[], options?: IProcessOptions): IProcess;
|
|
147
|
+
}
|
|
148
|
+
export interface IProcessOptions {
|
|
149
|
+
readonly cwd?: string;
|
|
150
|
+
readonly env?: Record<string, string>;
|
|
151
|
+
readonly shell?: boolean;
|
|
152
|
+
readonly timeout?: number;
|
|
153
|
+
readonly maxBuffer?: number;
|
|
154
|
+
readonly encoding?: BufferEncoding;
|
|
155
|
+
readonly silent?: boolean;
|
|
156
|
+
}
|
|
157
|
+
export interface IProcessResult {
|
|
158
|
+
readonly stdout: string;
|
|
159
|
+
readonly stderr: string;
|
|
160
|
+
readonly exitCode: number;
|
|
161
|
+
readonly signal?: NodeJS.Signals;
|
|
162
|
+
readonly duration: number;
|
|
163
|
+
}
|
|
164
|
+
export interface IProcess {
|
|
165
|
+
readonly pid: number;
|
|
166
|
+
readonly stdin: Writable;
|
|
167
|
+
readonly stdout: Readable;
|
|
168
|
+
readonly stderr: Readable;
|
|
169
|
+
kill(signal?: NodeJS.Signals): void;
|
|
170
|
+
onExit(handler: (code: number | null) => void): void;
|
|
171
|
+
}
|
|
172
|
+
export interface IHttpClient {
|
|
173
|
+
get<T = unknown>(url: string, options?: IHttpOptions): Promise<IHttpResponse<T>>;
|
|
174
|
+
post<T = unknown>(url: string, data?: unknown, options?: IHttpOptions): Promise<IHttpResponse<T>>;
|
|
175
|
+
put<T = unknown>(url: string, data?: unknown, options?: IHttpOptions): Promise<IHttpResponse<T>>;
|
|
176
|
+
delete<T = unknown>(url: string, options?: IHttpOptions): Promise<IHttpResponse<T>>;
|
|
177
|
+
patch<T = unknown>(url: string, data?: unknown, options?: IHttpOptions): Promise<IHttpResponse<T>>;
|
|
178
|
+
}
|
|
179
|
+
export interface IHttpOptions {
|
|
180
|
+
readonly headers?: Record<string, string>;
|
|
181
|
+
readonly timeout?: number;
|
|
182
|
+
readonly params?: Record<string, string | number>;
|
|
183
|
+
readonly auth?: {
|
|
184
|
+
username: string;
|
|
185
|
+
password: string;
|
|
186
|
+
};
|
|
187
|
+
readonly proxy?: {
|
|
188
|
+
host: string;
|
|
189
|
+
port: number;
|
|
190
|
+
};
|
|
191
|
+
readonly followRedirects?: boolean;
|
|
192
|
+
readonly maxRedirects?: number;
|
|
193
|
+
}
|
|
194
|
+
export interface IHttpResponse<T = unknown> {
|
|
195
|
+
readonly data: T;
|
|
196
|
+
readonly status: number;
|
|
197
|
+
readonly statusText: string;
|
|
198
|
+
readonly headers: Record<string, string>;
|
|
199
|
+
readonly request: IHttpOptions;
|
|
200
|
+
}
|
|
201
|
+
export interface ICache {
|
|
202
|
+
get<T = unknown>(key: string): T | undefined;
|
|
203
|
+
set<T = unknown>(key: string, value: T, ttl?: number): void;
|
|
204
|
+
has(key: string): boolean;
|
|
205
|
+
delete(key: string): void;
|
|
206
|
+
clear(): void;
|
|
207
|
+
size(): number;
|
|
208
|
+
}
|
|
209
|
+
export interface IPrompt {
|
|
210
|
+
text(message: string, options?: ITextPromptOptions): Promise<string>;
|
|
211
|
+
confirm(message: string, defaultValue?: boolean): Promise<boolean>;
|
|
212
|
+
select<T = string>(message: string, choices: IChoice<T>[]): Promise<T>;
|
|
213
|
+
multiselect<T = string>(message: string, choices: IChoice<T>[]): Promise<T[]>;
|
|
214
|
+
password(message: string, options?: IPasswordPromptOptions): Promise<string>;
|
|
215
|
+
}
|
|
216
|
+
export interface ITextPromptOptions {
|
|
217
|
+
readonly defaultValue?: string;
|
|
218
|
+
readonly validator?: (value: string) => boolean | string;
|
|
219
|
+
readonly placeholder?: string;
|
|
220
|
+
readonly required?: boolean;
|
|
221
|
+
}
|
|
222
|
+
export interface IPasswordPromptOptions {
|
|
223
|
+
readonly mask?: string;
|
|
224
|
+
readonly validator?: (value: string) => boolean | string;
|
|
225
|
+
readonly required?: boolean;
|
|
226
|
+
}
|
|
227
|
+
export interface IChoice<T = string> {
|
|
228
|
+
readonly name: string;
|
|
229
|
+
readonly value: T;
|
|
230
|
+
readonly description?: string;
|
|
231
|
+
readonly disabled?: boolean;
|
|
232
|
+
}
|
|
233
|
+
export interface IProgress {
|
|
234
|
+
start(message?: string): void;
|
|
235
|
+
update(message: string): void;
|
|
236
|
+
succeed(message?: string): void;
|
|
237
|
+
fail(message?: string): void;
|
|
238
|
+
warn(message?: string): void;
|
|
239
|
+
info(message?: string): void;
|
|
240
|
+
stop(): void;
|
|
241
|
+
}
|
|
242
|
+
export interface IProgressBar {
|
|
243
|
+
start(total: number, initial?: number): void;
|
|
244
|
+
update(current: number): void;
|
|
245
|
+
increment(delta?: number): void;
|
|
246
|
+
stop(): void;
|
|
247
|
+
}
|
|
248
|
+
export interface IOutputFormatter {
|
|
249
|
+
table(headers: string[], rows: string[][]): string;
|
|
250
|
+
json(data: unknown, pretty?: boolean): string;
|
|
251
|
+
yaml(data: unknown): string;
|
|
252
|
+
markdown(content: string): string;
|
|
253
|
+
code(content: string, language?: string): string;
|
|
254
|
+
success(message: string): string;
|
|
255
|
+
error(message: string): string;
|
|
256
|
+
warning(message: string): string;
|
|
257
|
+
info(message: string): string;
|
|
258
|
+
}
|
|
259
|
+
export interface IContainer {
|
|
260
|
+
register<T>(token: InjectionToken<T>, provider: Provider<T>): void;
|
|
261
|
+
resolve<T>(token: InjectionToken<T>): T;
|
|
262
|
+
has<T>(token: InjectionToken<T>): boolean;
|
|
263
|
+
createScope(): IContainer;
|
|
264
|
+
}
|
|
265
|
+
export type InjectionToken<T> = symbol | string | {
|
|
266
|
+
new (...args: unknown[]): T;
|
|
267
|
+
};
|
|
268
|
+
export type Provider<T> = {
|
|
269
|
+
useClass: new (...args: unknown[]) => T;
|
|
270
|
+
} | {
|
|
271
|
+
useValue: T;
|
|
272
|
+
} | {
|
|
273
|
+
useFactory: (...args: unknown[]) => T;
|
|
274
|
+
} | {
|
|
275
|
+
useExisting: InjectionToken<T>;
|
|
276
|
+
};
|
|
277
|
+
export interface IRepository<T, ID = string> {
|
|
278
|
+
findById(id: ID): Promise<T | undefined>;
|
|
279
|
+
findAll(): Promise<T[]>;
|
|
280
|
+
findBy(criteria: Partial<T>): Promise<T[]>;
|
|
281
|
+
save(entity: T): Promise<T>;
|
|
282
|
+
delete(id: ID): Promise<void>;
|
|
283
|
+
exists(id: ID): Promise<boolean>;
|
|
284
|
+
count(): Promise<number>;
|
|
285
|
+
}
|
|
286
|
+
export interface IUnitOfWork {
|
|
287
|
+
begin(): Promise<void>;
|
|
288
|
+
commit(): Promise<void>;
|
|
289
|
+
rollback(): Promise<void>;
|
|
290
|
+
isActive(): boolean;
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var LogLevel;
|
|
2
|
+
(function (LogLevel) {
|
|
3
|
+
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
4
|
+
LogLevel[LogLevel["INFO"] = 1] = "INFO";
|
|
5
|
+
LogLevel[LogLevel["WARN"] = 2] = "WARN";
|
|
6
|
+
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
|
|
7
|
+
LogLevel[LogLevel["NONE"] = 4] = "NONE";
|
|
8
|
+
})(LogLevel || (LogLevel = {}));
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/interfaces/index.ts"],"names":[],"mappings":"AAiJA,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,uCAAQ,CAAA;AACV,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface BaseOptions {
|
|
2
|
+
verbose?: boolean;
|
|
3
|
+
config?: string;
|
|
4
|
+
color?: boolean;
|
|
5
|
+
banner?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface InitOptions extends BaseOptions {
|
|
8
|
+
force?: boolean;
|
|
9
|
+
skipInstall?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface GitPushOptions extends BaseOptions {
|
|
12
|
+
dryRun?: boolean;
|
|
13
|
+
force?: boolean;
|
|
14
|
+
setUpstream?: string;
|
|
15
|
+
tags?: boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/utils/banner.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,IAAI,IAAI,CAUjC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export function showBanner() {
|
|
3
|
+
const banner = `
|
|
4
|
+
${chalk.bold.hex('#00BFFF')(' ███╗ ██╗███████╗ ██████╗ ██████╗██╗ ██╗')}
|
|
5
|
+
${chalk.bold.hex('#00BFFF')(' ████╗ ██║██╔════╝██╔═══██╗ ██╔════╝██║ ██║')}
|
|
6
|
+
${chalk.bold.hex('#00BFFF')(' ██╔██╗ ██║█████╗ ██║ ██║ ██║ ██║ ██║')}
|
|
7
|
+
${chalk.bold.hex('#00BFFF')(' ██║╚██╗██║██╔══╝ ██║ ██║ ██║ ██║ ██║')}
|
|
8
|
+
${chalk.bold.hex('#00BFFF')(' ██║ ╚████║███████╗╚██████╔╝ ╚██████╗███████╗██║')}
|
|
9
|
+
${chalk.bold.hex('#00BFFF')(' ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═════╝╚══════╝╚═╝')}
|
|
10
|
+
`;
|
|
11
|
+
console.log(banner);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/utils/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,UAAU;IACxB,MAAM,MAAM,GAAG;EACf,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,qDAAqD,CAAC;EAChF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,qDAAqD,CAAC;EAChF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,qDAAqD,CAAC;EAChF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,qDAAqD,CAAC;EAChF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,qDAAqD,CAAC;EAChF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,qDAAqD,CAAC;CACjF,CAAC;IACA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare class CompletionGenerator {
|
|
2
|
+
static generateZshCompletions(): string;
|
|
3
|
+
static createCompletionFiles(completionsPath: string): Promise<void>;
|
|
4
|
+
static updateCompletions(completionsPath: string): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=completions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/utils/completions.ts"],"names":[],"mappings":"AAIA,qBAAa,mBAAmB;IAI9B,MAAM,CAAC,sBAAsB,IAAI,MAAM;WAmF1B,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WA+B7D,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIvE"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { writeFile, mkdir } from 'fs/promises';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { logger } from './logger.js';
|
|
4
|
+
export class CompletionGenerator {
|
|
5
|
+
static generateZshCompletions() {
|
|
6
|
+
return `#compdef neo n
|
|
7
|
+
|
|
8
|
+
# Neo CLI completion script
|
|
9
|
+
# This file provides command completion for neo CLI in ZSH
|
|
10
|
+
|
|
11
|
+
_neo_commands() {
|
|
12
|
+
local -a commands
|
|
13
|
+
commands=(
|
|
14
|
+
'init:Install and configure Neo CLI globally'
|
|
15
|
+
'config:Manage configuration'
|
|
16
|
+
'git:Git operations and utilities'
|
|
17
|
+
'help:Display help for command'
|
|
18
|
+
)
|
|
19
|
+
_describe 'neo commands' commands
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
_neo_config_subcommands() {
|
|
23
|
+
local -a subcommands
|
|
24
|
+
subcommands=(
|
|
25
|
+
'get:Get a configuration value'
|
|
26
|
+
'set:Set a configuration value'
|
|
27
|
+
'list:List all configuration values'
|
|
28
|
+
)
|
|
29
|
+
_describe 'config subcommands' subcommands
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
_neo_git_subcommands() {
|
|
33
|
+
local -a subcommands
|
|
34
|
+
subcommands=(
|
|
35
|
+
'push:Push commits to remote repository'
|
|
36
|
+
)
|
|
37
|
+
_describe 'git subcommands' subcommands
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
_neo() {
|
|
41
|
+
local context state line
|
|
42
|
+
|
|
43
|
+
_arguments -C \\
|
|
44
|
+
'1: :_neo_commands' \\
|
|
45
|
+
'*::arg:->args' \\
|
|
46
|
+
'--verbose[Enable verbose logging]' \\
|
|
47
|
+
'--config=[Path to config file]:file:_files' \\
|
|
48
|
+
'--no-color[Disable colored output]' \\
|
|
49
|
+
'--no-banner[Hide banner]' \\
|
|
50
|
+
'--help[Show help]' \\
|
|
51
|
+
'--version[Show version]'
|
|
52
|
+
|
|
53
|
+
case $state in
|
|
54
|
+
args)
|
|
55
|
+
case $words[1] in
|
|
56
|
+
config)
|
|
57
|
+
_arguments -C \\
|
|
58
|
+
'1: :_neo_config_subcommands' \\
|
|
59
|
+
'*::arg:->config_args'
|
|
60
|
+
;;
|
|
61
|
+
git)
|
|
62
|
+
_arguments -C \\
|
|
63
|
+
'1: :_neo_git_subcommands' \\
|
|
64
|
+
'*::arg:->git_args'
|
|
65
|
+
;;
|
|
66
|
+
init)
|
|
67
|
+
_arguments \\
|
|
68
|
+
'--force[Force reconfiguration if already initialized]' \\
|
|
69
|
+
'--skip-install[Skip global installation]' \\
|
|
70
|
+
'--help[Show help]'
|
|
71
|
+
;;
|
|
72
|
+
esac
|
|
73
|
+
;;
|
|
74
|
+
esac
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
# Main completion function
|
|
78
|
+
_neo "$@"
|
|
79
|
+
|
|
80
|
+
# Also provide completion for 'n' alias
|
|
81
|
+
compdef _neo n
|
|
82
|
+
`;
|
|
83
|
+
}
|
|
84
|
+
static async createCompletionFiles(completionsPath) {
|
|
85
|
+
try {
|
|
86
|
+
await mkdir(completionsPath, { recursive: true });
|
|
87
|
+
const completionFile = join(completionsPath, '_neo');
|
|
88
|
+
const completionContent = this.generateZshCompletions();
|
|
89
|
+
await writeFile(completionFile, completionContent, 'utf-8');
|
|
90
|
+
logger.debug(`Created completion file: ${completionFile}`);
|
|
91
|
+
const aliasCompletionFile = join(completionsPath, '_n');
|
|
92
|
+
const aliasContent = `#compdef n
|
|
93
|
+
# Completion for 'n' alias (points to neo)
|
|
94
|
+
compdef neo n
|
|
95
|
+
`;
|
|
96
|
+
await writeFile(aliasCompletionFile, aliasContent, 'utf-8');
|
|
97
|
+
logger.debug(`Created alias completion file: ${aliasCompletionFile}`);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
logger.error(`Failed to create completion files: ${error}`);
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
static async updateCompletions(completionsPath) {
|
|
105
|
+
await this.createCompletionFiles(completionsPath);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=completions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/utils/completions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,OAAO,mBAAmB;IAI9B,MAAM,CAAC,sBAAsB;QAC3B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EV,CAAC;IACA,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,eAAuB;QACxD,IAAI,CAAC;YAEH,MAAM,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAGlD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAExD,MAAM,SAAS,CAAC,cAAc,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,KAAK,CAAC,4BAA4B,cAAc,EAAE,CAAC,CAAC;YAG3D,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG;;;CAG1B,CAAC;YAEI,MAAM,SAAS,CAAC,mBAAmB,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,KAAK,CAAC,kCAAkC,mBAAmB,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAMD,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAuB;QAEpD,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export interface NeoConfig {
|
|
2
|
+
user: {
|
|
3
|
+
name?: string;
|
|
4
|
+
email?: string;
|
|
5
|
+
};
|
|
6
|
+
preferences: {
|
|
7
|
+
aliases: {
|
|
8
|
+
n: boolean;
|
|
9
|
+
};
|
|
10
|
+
theme: 'dark' | 'light' | 'auto';
|
|
11
|
+
editor?: string;
|
|
12
|
+
};
|
|
13
|
+
shell: {
|
|
14
|
+
type: 'zsh' | 'bash' | 'fish';
|
|
15
|
+
rcFile: string;
|
|
16
|
+
};
|
|
17
|
+
installation: {
|
|
18
|
+
globalPath?: string;
|
|
19
|
+
completionsPath?: string;
|
|
20
|
+
installedAt: string;
|
|
21
|
+
version: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export declare class ConfigManager {
|
|
25
|
+
private configDir;
|
|
26
|
+
private configFile;
|
|
27
|
+
constructor();
|
|
28
|
+
private ensureConfigDir;
|
|
29
|
+
isInitialized(): Promise<boolean>;
|
|
30
|
+
read(): Promise<NeoConfig>;
|
|
31
|
+
write(config: NeoConfig): Promise<void>;
|
|
32
|
+
update(updates: Partial<NeoConfig>): Promise<void>;
|
|
33
|
+
getConfigDir(): string;
|
|
34
|
+
getConfigFile(): string;
|
|
35
|
+
backup(): Promise<string | null>;
|
|
36
|
+
}
|
|
37
|
+
export declare const configManager: ConfigManager;
|
|
38
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE;YACP,CAAC,EAAE,OAAO,CAAC;SACZ,CAAC;QACF,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,EAAE;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAoBD,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;;YAUb,eAAe;IAYvB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAYjC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAgC1B,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxD,YAAY,IAAI,MAAM;IAOtB,aAAa,IAAI,MAAM;IAOjB,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAmBvC;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|