@arikajs/console 0.0.3 → 0.0.5

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 CHANGED
@@ -10,10 +10,11 @@ It allows packages and applications to define, register, and execute CLI command
10
10
  ## ✨ Features
11
11
 
12
12
  - **Command registration & discovery**: Effortlessly manage CLI commands
13
- - **Argument and option parsing**: Structured input handling
14
- - **Signature-based command definitions**: Intuitive command signatures
15
- - **Dependency injection for commands**: Resolving commands via the service container
16
- - **Input/output helpers**: Simplified interaction with terminal
13
+ - **Lazy Loading**: High performance; commands are only loaded when executed
14
+ - **Signature-based definitions**: Intuitive signatures with default values `{name=default}`
15
+ - **Rich Output Components**: Tables, progress bars, and status indicators
16
+ - **Interactive Prompts**: Confirmations and question handling
17
+ - **Dependency injection**: Resolving commands via the service container
17
18
  - **Extensible command lifecycle**: Hooks for pre/post execution
18
19
  - **TypeScript-first design**: Typed arguments and options
19
20
 
@@ -53,10 +54,62 @@ export class QueueWorkCommand extends Command {
53
54
 
54
55
  ### 🧠 Command Signatures
55
56
 
56
- `command:name {argument} {--option}`
57
+ `command:name {argument} {argument?} {argument=default} {--option} {--mode=val}`
57
58
 
58
- Example:
59
- `make:controller UserController`
59
+ | Type | Syntax | Description |
60
+ | :--- | :--- | :--- |
61
+ | **Required** | `{user}` | Command fails if missing |
62
+ | **Optional** | `{user?}` | Returns `null` if missing |
63
+ | **Default** | `{user=guest}` | Returns `"guest"` if missing |
64
+ | **Option** | `{--force}` | Boolean (true/false) |
65
+ | **Option Val** | `{--mode=}` | Expects a value |
66
+ | **Opt Default** | `{--mode=prod}` | Defaults to `"prod"` |
67
+
68
+ ---
69
+
70
+ ## 🎨 Rich Outputs & Interaction
71
+
72
+ ### 📊 Tables
73
+ ```ts
74
+ this.table(['Name', 'Email'], [
75
+ ['Prakash', 'prakash@example.com'],
76
+ ['Arika', 'arika@arikajs.com']
77
+ ]);
78
+ ```
79
+
80
+ ### ⏳ Progress Bars
81
+ ```ts
82
+ this.progressStart(100);
83
+ // ...
84
+ this.progressAdvance(10);
85
+ // ...
86
+ this.progressFinish();
87
+ ```
88
+
89
+ ### ⚡ Tasks
90
+ ```ts
91
+ await this.task('Migrating database', async () => {
92
+ await db.migrate();
93
+ });
94
+ ```
95
+
96
+ ### ❓ Interaction
97
+ ```ts
98
+ if (await this.confirm('Do you want to proceed?')) {
99
+ const name = await this.ask('What is your name?', 'Guest');
100
+ this.success(`Hello ${name}`);
101
+ }
102
+ ```
103
+
104
+ ---
105
+
106
+ ## 🚀 Performance: Lazy Registration
107
+
108
+ For large applications, register commands lazily to avoid loading classes until they are needed:
109
+
110
+ ```ts
111
+ registry.registerLazy('make:controller {name}', 'Create a controller', () => import('./Commands/MakeController'));
112
+ ```
60
113
 
61
114
  ---
62
115
 
@@ -76,26 +129,23 @@ This package focuses only on command behavior, not binaries.
76
129
 
77
130
  ---
78
131
 
79
- ## 🧠 Architecture (High Level)
132
+ ## 🏗 Architecture
80
133
 
81
- ```
134
+ ```text
82
135
  console/
83
136
  ├── src/
84
137
  │ ├── Command.ts
85
138
  │ ├── CommandRegistry.ts
139
+ │ ├── index.ts
86
140
  │ ├── Input.ts
87
141
  │ ├── Output.ts
88
- ├── Parser.ts
89
- │ └── index.ts
142
+ └── Parser.ts
90
143
  ├── tests/
91
144
  ├── package.json
92
145
  ├── tsconfig.json
93
- ├── README.md
94
- └── LICENSE
146
+ └── README.md
95
147
  ```
96
148
 
97
- ---
98
-
99
149
  ## 📄 License
100
150
 
101
151
  `@arikajs/console` is open-source software licensed under the **MIT License**.
package/dist/Command.d.ts CHANGED
@@ -6,9 +6,11 @@ export declare abstract class Command {
6
6
  protected input: Input;
7
7
  protected output: Output;
8
8
  protected registry: any;
9
+ protected container: any;
9
10
  setInput(input: Input): void;
10
11
  setOutput(output: Output): void;
11
12
  setRegistry(registry: any): void;
13
+ setContainer(container: any): void;
12
14
  abstract handle(): Promise<any> | any;
13
15
  /**
14
16
  * Optional initialization hook that runs before handle().
@@ -20,6 +22,14 @@ export declare abstract class Command {
20
22
  protected error(message: string): void;
21
23
  protected warning(message: string): void;
22
24
  protected comment(message: string): void;
25
+ protected success(message: string): void;
26
+ protected table(headers: string[], rows: any[][]): void;
27
+ protected confirm(question: string, defaultAction?: boolean): Promise<boolean>;
28
+ protected ask(question: string, defaultValue?: string | null): Promise<string | null>;
29
+ protected progressStart(total: number): void;
30
+ protected progressAdvance(step?: number): void;
31
+ protected progressFinish(): void;
32
+ protected task(message: string, task: () => Promise<any> | any): Promise<any>;
23
33
  protected write(message: string): void;
24
34
  protected writeln(message: string): void;
25
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,8BAAsB,OAAO;IACzB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC;IACxB,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,QAAQ,EAAG,GAAG,CAAC;IAElB,QAAQ,CAAC,KAAK,EAAE,KAAK;IAIrB,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,WAAW,CAAC,QAAQ,EAAE,GAAG;aAIhB,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAE5C;;OAEG;IACI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIzC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU,GAAG,GAAG;IAI9D,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU,GAAG,GAAG;IAI5D,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IAI9B,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;IAI/B,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;IAIjC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;IAIjC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;IAI/B,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;CAGpC"}
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,8BAAsB,OAAO;IACzB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC;IACxB,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,QAAQ,EAAG,GAAG,CAAC;IACzB,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;IAElB,QAAQ,CAAC,KAAK,EAAE,KAAK;IAIrB,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,WAAW,CAAC,QAAQ,EAAE,GAAG;IAIzB,YAAY,CAAC,SAAS,EAAE,GAAG;aAIlB,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAE5C;;OAEG;IACI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIzC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU,GAAG,GAAG;IAI9D,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU,GAAG,GAAG;IAI5D,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IAI9B,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;IAI/B,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;IAIjC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;IAIjC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;IAIjC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;cAIhC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;cAI1E,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIjG,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM;IAIrC,SAAS,CAAC,eAAe,CAAC,IAAI,GAAE,MAAU;IAI1C,SAAS,CAAC,cAAc;cAIR,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAInF,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;IAI/B,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;CAGpC"}
package/dist/Command.js CHANGED
@@ -11,6 +11,9 @@ class Command {
11
11
  setRegistry(registry) {
12
12
  this.registry = registry;
13
13
  }
14
+ setContainer(container) {
15
+ this.container = container;
16
+ }
14
17
  /**
15
18
  * Optional initialization hook that runs before handle().
16
19
  */
@@ -35,6 +38,30 @@ class Command {
35
38
  comment(message) {
36
39
  this.output.comment(message);
37
40
  }
41
+ success(message) {
42
+ this.output.success(message);
43
+ }
44
+ table(headers, rows) {
45
+ this.output.table(headers, rows);
46
+ }
47
+ async confirm(question, defaultAction = true) {
48
+ return await this.output.confirm(question, defaultAction);
49
+ }
50
+ async ask(question, defaultValue = null) {
51
+ return await this.output.ask(question, defaultValue);
52
+ }
53
+ progressStart(total) {
54
+ this.output.progressStart(total);
55
+ }
56
+ progressAdvance(step = 1) {
57
+ this.output.progressAdvance(step);
58
+ }
59
+ progressFinish() {
60
+ this.output.progressFinish();
61
+ }
62
+ async task(message, task) {
63
+ return await this.output.task(message, task);
64
+ }
38
65
  write(message) {
39
66
  this.output.write(message);
40
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":";;;AAIA,MAAsB,OAAO;IAQlB,QAAQ,CAAC,KAAY;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,MAAc;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,WAAW,CAAC,QAAa;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAID;;OAEG;IACI,UAAU;QACb,oBAAoB;IACxB,CAAC;IAES,QAAQ,CAAC,GAAW,EAAE,eAAoB,IAAI;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAES,MAAM,CAAC,GAAW,EAAE,eAAoB,IAAI;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAES,IAAI,CAAC,OAAe;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAES,KAAK,CAAC,OAAe;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAES,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAES,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,OAAe;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAES,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACJ;AA5DD,0BA4DC"}
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":";;;AAIA,MAAsB,OAAO;IASlB,QAAQ,CAAC,KAAY;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,MAAc;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,WAAW,CAAC,QAAa;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEM,YAAY,CAAC,SAAc;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAID;;OAEG;IACI,UAAU;QACb,oBAAoB;IACxB,CAAC;IAES,QAAQ,CAAC,GAAW,EAAE,eAAoB,IAAI;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAES,MAAM,CAAC,GAAW,EAAE,eAAoB,IAAI;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAES,IAAI,CAAC,OAAe;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAES,KAAK,CAAC,OAAe;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAES,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAES,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAES,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,OAAiB,EAAE,IAAa;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,gBAAyB,IAAI;QACnE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC9D,CAAC;IAES,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,eAA8B,IAAI;QACpE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAES,aAAa,CAAC,KAAa;QACjC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAES,eAAe,CAAC,OAAe,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAES,cAAc;QACpB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,IAA8B;QAChE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAES,KAAK,CAAC,OAAe;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAES,OAAO,CAAC,OAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACJ;AAjGD,0BAiGC"}
@@ -2,7 +2,9 @@ import { Command } from './Command';
2
2
  export declare class CommandRegistry {
3
3
  protected commands: Map<string, any>;
4
4
  protected resolver: (commandClass: any) => Command;
5
+ protected container: any;
5
6
  constructor(resolver?: (commandClass: any) => Command);
7
+ setContainer(container: any): void;
6
8
  /**
7
9
  * Register a command class.
8
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CommandRegistry.d.ts","sourceRoot":"","sources":["../src/CommandRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,qBAAa,eAAe;IACxB,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa;IACjD,SAAS,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,OAAO,CAAC;gBAEvC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,OAAO;IAIrD;;OAEG;IACI,QAAQ,CAAC,OAAO,EAAE,GAAG;IAU5B;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;IAU3E,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE;IAoC3B,GAAG;CAGb"}
1
+ {"version":3,"file":"CommandRegistry.d.ts","sourceRoot":"","sources":["../src/CommandRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,qBAAa,eAAe;IACxB,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa;IACjD,SAAS,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,OAAO,CAAC;IACnD,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;gBAEb,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,OAAO;IAI9C,YAAY,CAAC,SAAS,EAAE,GAAG;IAIlC;;OAEG;IACI,QAAQ,CAAC,OAAO,EAAE,GAAG;IAU5B;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;IAU3E,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE;IAwC3B,GAAG;CAGb"}
@@ -9,6 +9,9 @@ class CommandRegistry {
9
9
  this.commands = new Map();
10
10
  this.resolver = resolver || ((cls) => new cls());
11
11
  }
12
+ setContainer(container) {
13
+ this.container = container;
14
+ }
12
15
  /**
13
16
  * Register a command class.
14
17
  */
@@ -56,6 +59,9 @@ class CommandRegistry {
56
59
  command.setInput(input);
57
60
  command.setOutput(output);
58
61
  command.setRegistry(this);
62
+ if (this.container) {
63
+ command.setContainer(this.container);
64
+ }
59
65
  await command.initialize();
60
66
  return await command.handle();
61
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CommandRegistry.js","sourceRoot":"","sources":["../src/CommandRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandRegistry.js","sourceRoot":"","sources":["../src/CommandRegistry.ts"],"names":[],"mappings":"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"}
package/dist/Output.d.ts CHANGED
@@ -1,9 +1,47 @@
1
1
  export declare class Output {
2
+ protected colors: {
3
+ reset: string;
4
+ red: string;
5
+ green: string;
6
+ yellow: string;
7
+ blue: string;
8
+ magenta: string;
9
+ cyan: string;
10
+ white: string;
11
+ gray: string;
12
+ bold: string;
13
+ };
2
14
  write(message: string): void;
3
15
  writeln(message: string): void;
4
16
  info(message: string): void;
5
17
  error(message: string): void;
6
18
  warning(message: string): void;
7
19
  comment(message: string): void;
20
+ success(message: string): void;
21
+ /**
22
+ * Display a table.
23
+ */
24
+ table(headers: string[], rows: any[][]): void;
25
+ /**
26
+ * Interactive Confirmation.
27
+ */
28
+ confirm(question: string, defaultAction?: boolean): Promise<boolean>;
29
+ /**
30
+ * Ask for input.
31
+ */
32
+ ask(question: string, defaultValue?: string | null): Promise<string | null>;
33
+ /**
34
+ * Progress bar support.
35
+ */
36
+ protected progressTotal: number;
37
+ protected progressCurrent: number;
38
+ progressStart(total: number): void;
39
+ progressAdvance(step?: number): void;
40
+ progressFinish(): void;
41
+ protected renderProgressBar(): void;
42
+ /**
43
+ * Run a task with a status indicator.
44
+ */
45
+ task(message: string, task: () => Promise<any> | any): Promise<any>;
8
46
  }
9
47
  //# sourceMappingURL=Output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../src/Output.ts"],"names":[],"mappings":"AACA,qBAAa,MAAM;IACR,KAAK,CAAC,OAAO,EAAE,MAAM;IAIrB,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,KAAK,CAAC,OAAO,EAAE,MAAM;IAIrB,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,OAAO,CAAC,OAAO,EAAE,MAAM;CAGjC"}
1
+ {"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../src/Output.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACf,SAAS,CAAC,MAAM;;;;;;;;;;;MAWd;IAEK,KAAK,CAAC,OAAO,EAAE,MAAM;IAIrB,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,KAAK,CAAC,OAAO,EAAE,MAAM;IAIrB,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,OAAO,CAAC,OAAO,EAAE,MAAM;IAIvB,OAAO,CAAC,OAAO,EAAE,MAAM;IAI9B;;OAEG;IACI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IAwB7C;;OAEG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBvF;;OAEG;IACU,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgB9F;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAK;IACpC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAK;IAE/B,aAAa,CAAC,KAAK,EAAE,MAAM;IAM3B,eAAe,CAAC,IAAI,GAAE,MAAU;IAKhC,cAAc;IAMrB,SAAS,CAAC,iBAAiB;IAa3B;;OAEG;IACU,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAenF"}
package/dist/Output.js CHANGED
@@ -1,7 +1,30 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.Output = void 0;
7
+ const readline_1 = __importDefault(require("readline"));
4
8
  class Output {
9
+ constructor() {
10
+ this.colors = {
11
+ reset: '\x1b[0m',
12
+ red: '\x1b[31m',
13
+ green: '\x1b[32m',
14
+ yellow: '\x1b[33m',
15
+ blue: '\x1b[34m',
16
+ magenta: '\x1b[35m',
17
+ cyan: '\x1b[36m',
18
+ white: '\x1b[37m',
19
+ gray: '\x1b[90m',
20
+ bold: '\x1b[1m'
21
+ };
22
+ /**
23
+ * Progress bar support.
24
+ */
25
+ this.progressTotal = 0;
26
+ this.progressCurrent = 0;
27
+ }
5
28
  write(message) {
6
29
  process.stdout.write(message);
7
30
  }
@@ -9,16 +32,117 @@ class Output {
9
32
  process.stdout.write(message + '\n');
10
33
  }
11
34
  info(message) {
12
- this.writeln(`\x1b[32m${message}\x1b[0m`); // Green
35
+ this.writeln(`${this.colors.green}${message}${this.colors.reset}`);
13
36
  }
14
37
  error(message) {
15
- process.stderr.write(`\x1b[31m${message}\x1b[0m\n`); // Red
38
+ process.stderr.write(`${this.colors.red}${message}${this.colors.reset}\n`);
16
39
  }
17
40
  warning(message) {
18
- this.writeln(`\x1b[33m${message}\x1b[0m`); // Yellow
41
+ this.writeln(`${this.colors.yellow}${message}${this.colors.reset}`);
19
42
  }
20
43
  comment(message) {
21
- this.writeln(`\x1b[34m${message}\x1b[0m`); // Blue
44
+ this.writeln(`${this.colors.gray}${message}${this.colors.reset}`);
45
+ }
46
+ success(message) {
47
+ this.writeln(`${this.colors.green}✔ ${this.colors.reset}${message}`);
48
+ }
49
+ /**
50
+ * Display a table.
51
+ */
52
+ table(headers, rows) {
53
+ if (rows.length === 0)
54
+ return;
55
+ // Calculate column widths
56
+ const colWidths = headers.map((header, i) => {
57
+ const rowWidths = rows.map(row => String(row[i]).length);
58
+ return Math.max(header.length, ...rowWidths);
59
+ });
60
+ const horizontalLine = ' +' + colWidths.map(w => '-'.repeat(w + 2)).join('+') + '+';
61
+ // Print header
62
+ this.writeln(horizontalLine);
63
+ this.writeln(' | ' + headers.map((h, i) => h.padEnd(colWidths[i])).join(' | ') + ' |');
64
+ this.writeln(horizontalLine);
65
+ // Print rows
66
+ rows.forEach(row => {
67
+ this.writeln(' | ' + row.map((cell, i) => String(cell).padEnd(colWidths[i])).join(' | ') + ' |');
68
+ });
69
+ this.writeln(horizontalLine);
70
+ }
71
+ /**
72
+ * Interactive Confirmation.
73
+ */
74
+ async confirm(question, defaultAction = true) {
75
+ const rl = readline_1.default.createInterface({
76
+ input: process.stdin,
77
+ output: process.stdout
78
+ });
79
+ const suffix = defaultAction ? '[Y/n]' : '[y/N]';
80
+ return new Promise(resolve => {
81
+ rl.question(`${this.colors.bold}${question}${this.colors.reset} ${this.colors.gray}${suffix}${this.colors.reset} `, (answer) => {
82
+ rl.close();
83
+ if (!answer)
84
+ return resolve(defaultAction);
85
+ resolve(answer.toLowerCase().startsWith('y'));
86
+ });
87
+ });
88
+ }
89
+ /**
90
+ * Ask for input.
91
+ */
92
+ async ask(question, defaultValue = null) {
93
+ const rl = readline_1.default.createInterface({
94
+ input: process.stdin,
95
+ output: process.stdout
96
+ });
97
+ const suffix = defaultValue ? ` (${defaultValue})` : '';
98
+ return new Promise(resolve => {
99
+ rl.question(`${this.colors.bold}${question}${this.colors.reset}${suffix}: `, (answer) => {
100
+ rl.close();
101
+ resolve(answer || defaultValue);
102
+ });
103
+ });
104
+ }
105
+ progressStart(total) {
106
+ this.progressTotal = total;
107
+ this.progressCurrent = 0;
108
+ this.renderProgressBar();
109
+ }
110
+ progressAdvance(step = 1) {
111
+ this.progressCurrent += step;
112
+ this.renderProgressBar();
113
+ }
114
+ progressFinish() {
115
+ this.progressCurrent = this.progressTotal;
116
+ this.renderProgressBar();
117
+ this.writeln('');
118
+ }
119
+ renderProgressBar() {
120
+ const width = 40;
121
+ const progress = Math.min(1, this.progressCurrent / this.progressTotal);
122
+ const filledWidth = Math.round(width * progress);
123
+ const emptyWidth = width - filledWidth;
124
+ const bar = '█'.repeat(filledWidth) + '░'.repeat(emptyWidth);
125
+ const percentage = Math.round(progress * 100);
126
+ readline_1.default.cursorTo(process.stdout, 0);
127
+ process.stdout.write(` ${bar} ${percentage}% (${this.progressCurrent}/${this.progressTotal})`);
128
+ }
129
+ /**
130
+ * Run a task with a status indicator.
131
+ */
132
+ async task(message, task) {
133
+ this.write(`${message} ... `);
134
+ try {
135
+ const result = await task();
136
+ readline_1.default.cursorTo(process.stdout, message.length + 5);
137
+ this.writeln(`${this.colors.green}DONE${this.colors.reset}`);
138
+ return result;
139
+ }
140
+ catch (error) {
141
+ readline_1.default.cursorTo(process.stdout, message.length + 5);
142
+ this.writeln(`${this.colors.red}FAIL${this.colors.reset}`);
143
+ this.error(error.message);
144
+ throw error;
145
+ }
22
146
  }
23
147
  }
24
148
  exports.Output = Output;
@@ -1 +1 @@
1
- {"version":3,"file":"Output.js","sourceRoot":"","sources":["../src/Output.ts"],"names":[],"mappings":";;;AACA,MAAa,MAAM;IACR,KAAK,CAAC,OAAe;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEM,OAAO,CAAC,OAAe;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,IAAI,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,CAAC,WAAW,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ;IACvD,CAAC;IAEM,KAAK,CAAC,OAAe;QACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,WAAW,CAAC,CAAC,CAAC,MAAM;IAC/D,CAAC;IAEM,OAAO,CAAC,OAAe;QAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS;IACxD,CAAC;IAEM,OAAO,CAAC,OAAe;QAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO;IACtD,CAAC;CACJ;AAxBD,wBAwBC"}
1
+ {"version":3,"file":"Output.js","sourceRoot":"","sources":["../src/Output.ts"],"names":[],"mappings":"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"}
package/dist/Parser.d.ts CHANGED
@@ -3,10 +3,12 @@ export interface ParsedSignature {
3
3
  arguments: {
4
4
  name: string;
5
5
  required: boolean;
6
+ default?: any;
6
7
  }[];
7
8
  options: {
8
9
  name: string;
9
10
  hasValue: boolean;
11
+ default?: any;
10
12
  }[];
11
13
  }
12
14
  export declare class Parser {
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACjD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAClD;AAED,qBAAa,MAAM;WACD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;WA4BlD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe;;;;CAuB7E"}
1
+ {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;IAChE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CACjE;AAED,qBAAa,MAAM;WACD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;WA2ClD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe;;;;CAgC7E"}
package/dist/Parser.js CHANGED
@@ -9,18 +9,29 @@ class Parser {
9
9
  const options = [];
10
10
  for (let i = 1; i < parts.length; i++) {
11
11
  const part = parts[i];
12
- // Match {argument} or {argument?}
13
- const argMatch = part.match(/^\{([^}]+)\}$/);
14
- if (argMatch) {
15
- const argName = argMatch[1];
16
- if (argName.startsWith('--')) {
17
- const optName = argName.substring(2);
18
- options.push({ name: optName, hasValue: optName.includes('=') });
12
+ const match = part.match(/^\{([^}]+)\}$/);
13
+ if (match) {
14
+ let content = match[1];
15
+ let defaultValue = undefined;
16
+ if (content.includes('=')) {
17
+ [content, defaultValue] = content.split('=');
18
+ }
19
+ if (content.startsWith('--')) {
20
+ const optName = content.substring(2);
21
+ const isValueOption = part.includes('=');
22
+ options.push({
23
+ name: optName,
24
+ hasValue: isValueOption,
25
+ default: defaultValue
26
+ });
19
27
  }
20
28
  else {
29
+ const isOptional = content.endsWith('?');
30
+ const argName = isOptional ? content.slice(0, -1) : content;
21
31
  args.push({
22
- name: argName.endsWith('?') ? argName.slice(0, -1) : argName,
23
- required: !argName.endsWith('?')
32
+ name: argName,
33
+ required: !isOptional && defaultValue === undefined,
34
+ default: defaultValue
24
35
  });
25
36
  }
26
37
  }
@@ -30,6 +41,15 @@ class Parser {
30
41
  static parseArguments(rawArgs, signature) {
31
42
  const argsMap = new Map();
32
43
  const optionsMap = new Map();
44
+ // Initialize with defaults
45
+ signature.arguments.forEach(arg => {
46
+ if (arg.default !== undefined)
47
+ argsMap.set(arg.name, arg.default);
48
+ });
49
+ signature.options.forEach(opt => {
50
+ if (opt.default !== undefined)
51
+ optionsMap.set(opt.name, opt.default);
52
+ });
33
53
  let argIndex = 0;
34
54
  for (let i = 0; i < rawArgs.length; i++) {
35
55
  const raw = rawArgs[i];
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":";;;AAOA,MAAa,MAAM;IACR,MAAM,CAAC,cAAc,CAAC,SAAiB;QAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,GAA0C,EAAE,CAAC;QACvD,MAAM,OAAO,GAA0C,EAAE,CAAC;QAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,IAAI,CAAC;wBACN,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;wBAC5D,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;qBACnC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,OAAiB,EAAE,SAA0B;QACtE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAe,CAAC;QAE1C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAEvB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACzB,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACJ,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;iBAAM,IAAI,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACrD,QAAQ,EAAE,CAAC;YACf,CAAC;QACL,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACvD,CAAC;CACJ;AApDD,wBAoDC"}
1
+ {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arikajs/console",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "The command system for the ArikaJS framework.",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -10,8 +10,9 @@
10
10
  "build:tests": "tsc -p tsconfig.test.json",
11
11
  "clean": "rm -rf dist",
12
12
  "prepare": "echo skip",
13
- "test": "npm run build && npm run build:tests && node scripts/fix-test-imports.js && node --test 'dist/tests/**/*.test.js'",
14
- "test:watch": "npm run build && npm run build:tests && node --test --watch 'dist/tests/**/*.test.js'"
13
+ "test": "npx tsx --test tests/**/*.test.ts",
14
+ "test:watch": "npx tsx --test --watch tests/**/*.test.ts",
15
+ "dev": "tsc -p tsconfig.json --watch"
15
16
  },
16
17
  "files": [
17
18
  "dist"
@@ -28,16 +29,18 @@
28
29
  },
29
30
  "repository": {
30
31
  "type": "git",
31
- "url": "git+https://github.com/arikajs/console.git"
32
+ "url": "git+https://github.com/ArikaJs/arikajs.git",
33
+ "directory": "packages/console"
32
34
  },
33
35
  "bugs": {
34
- "url": "https://github.com/arikajs/console/issues"
36
+ "url": "https://github.com/ArikaJs/arikajs/issues"
35
37
  },
36
- "homepage": "https://github.com/arikajs/console#readme",
38
+ "homepage": "https://github.com/ArikaJs/arikajs/tree/main/packages/console#readme",
37
39
  "dependencies": {},
38
40
  "devDependencies": {
39
41
  "@types/node": "^20.11.24",
40
- "typescript": "^5.3.3"
42
+ "typescript": "^5.3.3",
43
+ "tsx": "^4.7.1"
41
44
  },
42
45
  "author": "Prakash Tank"
43
46
  }