@navios/commander 1.6.0 → 1.7.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/.turbo/turbo-build.log +20 -20
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test$colon$ci.log +5 -5
- package/CHANGELOG.md +9 -0
- package/dist/src/services/cli-parser.service.d.mts +42 -0
- package/dist/src/services/cli-parser.service.d.mts.map +1 -1
- package/dist/src/services/command-registry.service.d.mts +5 -0
- package/dist/src/services/command-registry.service.d.mts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/lib/{help-command.token-XHx3WkoD.mjs → help-command.token-ChAUjOyV.mjs} +27 -2
- package/lib/help-command.token-ChAUjOyV.mjs.map +1 -0
- package/lib/{help-command.token-DamE31Aw.cjs → help-command.token-mlwEyWij.cjs} +27 -2
- package/lib/help-command.token-mlwEyWij.cjs.map +1 -0
- package/lib/{help.command-Bynoll_7.mjs → help.command-CzQymUFY.mjs} +2 -2
- package/lib/{help.command-Bynoll_7.mjs.map → help.command-CzQymUFY.mjs.map} +1 -1
- package/lib/{help.command-DvKmMpB7.cjs → help.command-knivRhJz.cjs} +2 -2
- package/lib/{help.command-DvKmMpB7.cjs.map → help.command-knivRhJz.cjs.map} +1 -1
- package/lib/index.cjs +110 -7
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +47 -0
- package/lib/index.d.cts.map +1 -1
- package/lib/index.d.mts +47 -0
- package/lib/index.d.mts.map +1 -1
- package/lib/index.mjs +110 -7
- package/lib/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/services/__tests__/cli-parser.service.spec.mts +294 -0
- package/src/services/cli-parser.service.mts +196 -31
- package/src/services/command-registry.service.mts +51 -0
- package/lib/help-command.token-DamE31Aw.cjs.map +0 -1
- package/lib/help-command.token-XHx3WkoD.mjs.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -5,44 +5,44 @@
|
|
|
5
5
|
ℹ tsconfig: tsconfig.json
|
|
6
6
|
ℹ Build start
|
|
7
7
|
ℹ Cleaning 37 files
|
|
8
|
-
ℹ [CJS] lib/index.d.cts.map
|
|
8
|
+
ℹ [CJS] lib/index.d.cts.map 31.72 kB │ gzip: 8.97 kB
|
|
9
9
|
ℹ [CJS] lib/cli-module.decorator-BV3vVKlR.d.cts.map 8.66 kB │ gzip: 2.82 kB
|
|
10
10
|
ℹ [CJS] lib/legacy-compat/index.d.cts.map 2.42 kB │ gzip: 0.82 kB
|
|
11
|
-
ℹ [CJS] lib/index.d.cts
|
|
11
|
+
ℹ [CJS] lib/index.d.cts 22.67 kB │ gzip: 5.93 kB
|
|
12
12
|
ℹ [CJS] lib/legacy-compat/index.d.cts 1.94 kB │ gzip: 0.71 kB
|
|
13
13
|
ℹ [CJS] lib/cli-module.decorator-BV3vVKlR.d.cts 6.54 kB │ gzip: 2.05 kB
|
|
14
|
-
ℹ [CJS] 6 files, total:
|
|
15
|
-
ℹ [CJS] lib/index.cjs
|
|
14
|
+
ℹ [CJS] 6 files, total: 73.94 kB
|
|
15
|
+
ℹ [CJS] lib/index.cjs 53.22 kB │ gzip: 8.90 kB
|
|
16
16
|
ℹ [CJS] lib/legacy-compat/index.cjs 2.53 kB │ gzip: 0.90 kB
|
|
17
|
-
ℹ [CJS] lib/index.cjs.map
|
|
18
|
-
ℹ [CJS] lib/help-command.token-
|
|
19
|
-
ℹ [CJS] lib/help.
|
|
20
|
-
ℹ [CJS] lib/help
|
|
17
|
+
ℹ [CJS] lib/index.cjs.map 52.71 kB │ gzip: 13.63 kB
|
|
18
|
+
ℹ [CJS] lib/help-command.token-mlwEyWij.cjs 15.17 kB │ gzip: 4.09 kB
|
|
19
|
+
ℹ [CJS] lib/help-command.token-mlwEyWij.cjs.map 11.99 kB │ gzip: 3.80 kB
|
|
20
|
+
ℹ [CJS] lib/help.command-knivRhJz.cjs 10.48 kB │ gzip: 2.87 kB
|
|
21
21
|
ℹ [CJS] lib/command.decorator-HziankUv.cjs.map 9.07 kB │ gzip: 2.85 kB
|
|
22
22
|
ℹ [CJS] lib/command.decorator-HziankUv.cjs 5.12 kB │ gzip: 1.57 kB
|
|
23
23
|
ℹ [CJS] lib/cli-module.decorator-CXt38aqF.cjs.map 4.77 kB │ gzip: 1.78 kB
|
|
24
24
|
ℹ [CJS] lib/legacy-compat/index.cjs.map 3.39 kB │ gzip: 1.04 kB
|
|
25
|
-
ℹ [CJS] lib/help.command-
|
|
25
|
+
ℹ [CJS] lib/help.command-knivRhJz.cjs.map 2.50 kB │ gzip: 0.98 kB
|
|
26
26
|
ℹ [CJS] lib/cli-module.decorator-CXt38aqF.cjs 2.12 kB │ gzip: 0.96 kB
|
|
27
|
-
ℹ [CJS] 12 files, total:
|
|
27
|
+
ℹ [CJS] 12 files, total: 173.07 kB
|
|
28
28
|
✔ Build complete in 481ms
|
|
29
|
-
ℹ [ESM] lib/index.mjs
|
|
29
|
+
ℹ [ESM] lib/index.mjs 51.79 kB │ gzip: 8.71 kB
|
|
30
30
|
ℹ [ESM] lib/legacy-compat/index.mjs 2.13 kB │ gzip: 0.75 kB
|
|
31
|
-
ℹ [ESM] lib/index.mjs.map
|
|
32
|
-
ℹ [ESM] lib/index.d.mts.map
|
|
31
|
+
ℹ [ESM] lib/index.mjs.map 52.75 kB │ gzip: 13.62 kB
|
|
32
|
+
ℹ [ESM] lib/index.d.mts.map 22.97 kB │ gzip: 7.04 kB
|
|
33
33
|
ℹ [ESM] lib/cli-module.decorator-DDlgpTgI.d.mts.map 17.48 kB │ gzip: 5.18 kB
|
|
34
|
-
ℹ [ESM] lib/help-command.token-
|
|
35
|
-
ℹ [ESM] lib/help.
|
|
36
|
-
ℹ [ESM] lib/help
|
|
34
|
+
ℹ [ESM] lib/help-command.token-ChAUjOyV.mjs 14.94 kB │ gzip: 4.06 kB
|
|
35
|
+
ℹ [ESM] lib/help-command.token-ChAUjOyV.mjs.map 11.99 kB │ gzip: 3.79 kB
|
|
36
|
+
ℹ [ESM] lib/help.command-CzQymUFY.mjs 10.34 kB │ gzip: 2.85 kB
|
|
37
37
|
ℹ [ESM] lib/command.decorator-QiRU7ny3.mjs.map 9.08 kB │ gzip: 2.85 kB
|
|
38
38
|
ℹ [ESM] lib/cli-module.decorator-DAjf_r_W.mjs.map 4.79 kB │ gzip: 1.78 kB
|
|
39
39
|
ℹ [ESM] lib/command.decorator-QiRU7ny3.mjs 4.36 kB │ gzip: 1.49 kB
|
|
40
40
|
ℹ [ESM] lib/legacy-compat/index.mjs.map 3.40 kB │ gzip: 1.05 kB
|
|
41
|
-
ℹ [ESM] lib/help.command-
|
|
41
|
+
ℹ [ESM] lib/help.command-CzQymUFY.mjs.map 2.51 kB │ gzip: 0.97 kB
|
|
42
42
|
ℹ [ESM] lib/legacy-compat/index.d.mts.map 2.42 kB │ gzip: 0.82 kB
|
|
43
43
|
ℹ [ESM] lib/cli-module.decorator-DAjf_r_W.mjs 1.98 kB │ gzip: 0.89 kB
|
|
44
|
-
ℹ [ESM] lib/index.d.mts
|
|
44
|
+
ℹ [ESM] lib/index.d.mts 16.97 kB │ gzip: 4.91 kB
|
|
45
45
|
ℹ [ESM] lib/legacy-compat/index.d.mts 1.94 kB │ gzip: 0.70 kB
|
|
46
46
|
ℹ [ESM] lib/cli-module.decorator-DDlgpTgI.d.mts 12.71 kB │ gzip: 3.52 kB
|
|
47
|
-
ℹ [ESM] 18 files, total:
|
|
48
|
-
✔ Build complete in
|
|
47
|
+
ℹ [ESM] 18 files, total: 244.54 kB
|
|
48
|
+
✔ Build complete in 487ms
|
package/.turbo/turbo-lint.log
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
Found 0 warnings and 0 errors.
|
|
2
|
-
Finished in
|
|
2
|
+
Finished in 22ms on 34 files with 90 rules using 16 threads.
|
|
@@ -3,7 +3,7 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
|
|
|
3
3
|
|
|
4
4
|
[1m[46m RUN [49m[22m [36mv4.0.17 [39m[90m/Volumes/Dev/Projects/navios/commander/packages/commander[39m
|
|
5
5
|
|
|
6
|
-
[32m✓[39m src/services/__tests__/cli-parser.service.spec.mts [2m([22m[
|
|
6
|
+
[32m✓[39m src/services/__tests__/cli-parser.service.spec.mts [2m([22m[2m57 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
7
7
|
[95m[39m [95m DEBUG[39m [38;5;3m[ModuleLoaderService] [39m [95mModule TestModule_dy4bqj loaded[39m
|
|
8
8
|
[95m[39m [95m DEBUG[39m [38;5;3m[NaviosApplication] [39m [95mNavios application initialized[39m
|
|
9
9
|
[90mstdout[2m | src/__tests__/commander.factory.e2e.spec.mts[2m > [22m[2mCommanderApplication E2E - run() with different argv[2m > [22m[2msimple command without options[2m > [22m[2mshould execute command with minimal argv
|
|
@@ -99,11 +99,11 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
|
|
|
99
99
|
[95m[39m [95m DEBUG[39m [38;5;3m[NaviosApplication] [39m [95mNavios application initialized[39m
|
|
100
100
|
[95m[39m [95m DEBUG[39m [38;5;3m[ModuleLoaderService] [39m [95mModule AppModule_fuvatb loaded[39m
|
|
101
101
|
[95m[39m [95m DEBUG[39m [38;5;3m[NaviosApplication] [39m [95mNavios application initialized[39m
|
|
102
|
-
[32m✓[39m src/__tests__/commander.factory.e2e.spec.mts [2m([22m[2m40 tests[22m[2m)[22m[32m
|
|
102
|
+
[32m✓[39m src/__tests__/commander.factory.e2e.spec.mts [2m([22m[2m40 tests[22m[2m)[22m[32m 20[2mms[22m[39m
|
|
103
103
|
|
|
104
104
|
[2m Test Files [22m [1m[32m2 passed[39m[22m[90m (2)[39m
|
|
105
|
-
[2m Tests [22m [1m[
|
|
105
|
+
[2m Tests [22m [1m[32m97 passed[39m[22m[90m (97)[39m
|
|
106
106
|
[2mType Errors [22m [2mno errors[22m
|
|
107
|
-
[2m Start at [22m
|
|
108
|
-
[2m Duration [22m
|
|
107
|
+
[2m Start at [22m 01:50:44
|
|
108
|
+
[2m Duration [22m 199ms[2m (transform 105ms, setup 0ms, import 187ms, tests 27ms, environment 0ms)[22m
|
|
109
109
|
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.7.0] - 2026-01-29
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Object Notation Support for CLI Parameters** - CLI parameters can now use object notation syntax
|
|
13
|
+
- Supports nested object syntax like `--config.host=localhost --config.port=3000`
|
|
14
|
+
- Automatically parses dot-separated keys into nested objects
|
|
15
|
+
- Works seamlessly with existing zod schema validation
|
|
16
|
+
|
|
8
17
|
## [1.6.0] - 2026-01-27
|
|
9
18
|
|
|
10
19
|
### Added
|
|
@@ -13,6 +13,7 @@ export interface ParsedCliArgs {
|
|
|
13
13
|
/**
|
|
14
14
|
* Parsed options as key-value pairs.
|
|
15
15
|
* Keys are converted from kebab-case to camelCase.
|
|
16
|
+
* Supports object notation (e.g., --obj.field=value creates { obj: { field: value } }).
|
|
16
17
|
*/
|
|
17
18
|
options: Record<string, any>
|
|
18
19
|
/**
|
|
@@ -29,6 +30,8 @@ export interface ParsedCliArgs {
|
|
|
29
30
|
* - Boolean flags
|
|
30
31
|
* - Array options
|
|
31
32
|
* - Positional arguments
|
|
33
|
+
* - Object notation: `--obj.field=value` or `--obj.nested.field value`
|
|
34
|
+
* Creates nested objects automatically (e.g., { obj: { field: value } })
|
|
32
35
|
*
|
|
33
36
|
* @public
|
|
34
37
|
*/
|
|
@@ -71,5 +74,44 @@ export declare class CliParserService {
|
|
|
71
74
|
* Unwraps zod/v4Optional and zod/v4Default using zod/v4 v4 API
|
|
72
75
|
*/
|
|
73
76
|
private isSchemaArray
|
|
77
|
+
/**
|
|
78
|
+
* Sets a nested property on an object using dot notation path.
|
|
79
|
+
* Creates intermediate objects as needed.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* setNestedProperty({}, 'a.b.c', 'value') // { a: { b: { c: 'value' } } }
|
|
83
|
+
*/
|
|
84
|
+
private setNestedProperty
|
|
85
|
+
/**
|
|
86
|
+
* Gets a nested property from an object using dot notation path.
|
|
87
|
+
* Returns undefined if path doesn't exist.
|
|
88
|
+
*/
|
|
89
|
+
private getNestedProperty
|
|
90
|
+
/**
|
|
91
|
+
* Checks if an option key contains dot notation (object notation).
|
|
92
|
+
* Returns true for keys like "obj.field" or "deep.nested.value".
|
|
93
|
+
*/
|
|
94
|
+
private isObjectNotation
|
|
95
|
+
/**
|
|
96
|
+
* Processes an option key that may contain object notation.
|
|
97
|
+
* Converts each segment from kebab-case to camelCase.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* processObjectNotationKey('my-obj.field-name') // 'myObj.fieldName'
|
|
101
|
+
*/
|
|
102
|
+
private processObjectNotationKey
|
|
103
|
+
/**
|
|
104
|
+
* Gets the nested schema for a given dot-notation path.
|
|
105
|
+
* Returns undefined if the path doesn't lead to a valid schema.
|
|
106
|
+
*/
|
|
107
|
+
private getNestedSchema
|
|
108
|
+
/**
|
|
109
|
+
* Checks if a nested path represents a boolean field in the schema.
|
|
110
|
+
*/
|
|
111
|
+
private isNestedBoolean
|
|
112
|
+
/**
|
|
113
|
+
* Checks if a nested path represents an array field in the schema.
|
|
114
|
+
*/
|
|
115
|
+
private isNestedArray
|
|
74
116
|
}
|
|
75
117
|
//# sourceMappingURL=cli-parser.service.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-parser.service.d.mts","sourceRoot":"","sources":["../../../src/services/cli-parser.service.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf
|
|
1
|
+
{"version":3,"file":"cli-parser.service.d.mts","sourceRoot":"","sources":["../../../src/services/cli-parser.service.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,qBACa,gBAAgB;IAC3B;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,aAAa,CAoLhE;IAED;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,UAAU;IAkClB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAiBrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAOhC;;;OAGG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,aAAa;CAItB"}
|
|
@@ -72,6 +72,11 @@ export declare class CommandRegistryService {
|
|
|
72
72
|
* @returns Formatted string with command help
|
|
73
73
|
*/
|
|
74
74
|
formatCommandHelp(commandPath: string): string
|
|
75
|
+
/**
|
|
76
|
+
* Recursively formats nested object options for help display.
|
|
77
|
+
* Shows nested fields with dot notation (e.g., --config.port)
|
|
78
|
+
*/
|
|
79
|
+
private formatNestedObjectOptions
|
|
75
80
|
/**
|
|
76
81
|
* Gets a human-readable type name from a zod/v4 schema.
|
|
77
82
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-registry.service.d.mts","sourceRoot":"","sources":["../../../src/services/command-registry.service.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAA;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAKvD;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAErD;IAED;;;;OAIG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEvC;IAED;;;;;OAKG;IACH,aAAa,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC,CAMzD;IAED;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,CAW1B;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"command-registry.service.d.mts","sourceRoot":"","sources":["../../../src/services/command-registry.service.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAA;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAKvD;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAErD;IAED;;;;OAIG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEvC;IAED;;;;;OAKG;IACH,aAAa,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC,CAMzD;IAED;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,CAW1B;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAuC7C;IAED;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA4CjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
|