@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.
Files changed (32) hide show
  1. package/.turbo/turbo-build.log +20 -20
  2. package/.turbo/turbo-lint.log +1 -1
  3. package/.turbo/turbo-test$colon$ci.log +5 -5
  4. package/CHANGELOG.md +9 -0
  5. package/dist/src/services/cli-parser.service.d.mts +42 -0
  6. package/dist/src/services/cli-parser.service.d.mts.map +1 -1
  7. package/dist/src/services/command-registry.service.d.mts +5 -0
  8. package/dist/src/services/command-registry.service.d.mts.map +1 -1
  9. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  10. package/dist/tsconfig.tsbuildinfo +1 -1
  11. package/lib/{help-command.token-XHx3WkoD.mjs → help-command.token-ChAUjOyV.mjs} +27 -2
  12. package/lib/help-command.token-ChAUjOyV.mjs.map +1 -0
  13. package/lib/{help-command.token-DamE31Aw.cjs → help-command.token-mlwEyWij.cjs} +27 -2
  14. package/lib/help-command.token-mlwEyWij.cjs.map +1 -0
  15. package/lib/{help.command-Bynoll_7.mjs → help.command-CzQymUFY.mjs} +2 -2
  16. package/lib/{help.command-Bynoll_7.mjs.map → help.command-CzQymUFY.mjs.map} +1 -1
  17. package/lib/{help.command-DvKmMpB7.cjs → help.command-knivRhJz.cjs} +2 -2
  18. package/lib/{help.command-DvKmMpB7.cjs.map → help.command-knivRhJz.cjs.map} +1 -1
  19. package/lib/index.cjs +110 -7
  20. package/lib/index.cjs.map +1 -1
  21. package/lib/index.d.cts +47 -0
  22. package/lib/index.d.cts.map +1 -1
  23. package/lib/index.d.mts +47 -0
  24. package/lib/index.d.mts.map +1 -1
  25. package/lib/index.mjs +110 -7
  26. package/lib/index.mjs.map +1 -1
  27. package/package.json +2 -2
  28. package/src/services/__tests__/cli-parser.service.spec.mts +294 -0
  29. package/src/services/cli-parser.service.mts +196 -31
  30. package/src/services/command-registry.service.mts +51 -0
  31. package/lib/help-command.token-DamE31Aw.cjs.map +0 -1
  32. package/lib/help-command.token-XHx3WkoD.mjs.map +0 -1
@@ -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 29.83 kB │ gzip: 8.44 kB
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 21.03 kB │ gzip: 5.49 kB
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: 70.41 kB
15
- ℹ [CJS] lib/index.cjs 49.06 kB │ gzip: 8.10 kB
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 44.00 kB │ gzip: 11.79 kB
18
- ℹ [CJS] lib/help-command.token-DamE31Aw.cjs 14.04 kB │ gzip: 3.87 kB
19
- ℹ [CJS] lib/help.command-DvKmMpB7.cjs 10.48 kB │ gzip: 2.87 kB
20
- ℹ [CJS] lib/help-command.token-DamE31Aw.cjs.map 9.64 kB │ gzip: 3.30 kB
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-DvKmMpB7.cjs.map 2.50 kB │ gzip: 0.98 kB
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: 156.73 kB
27
+ ℹ [CJS] 12 files, total: 173.07 kB
28
28
  ✔ Build complete in 481ms
29
- ℹ [ESM] lib/index.mjs 47.63 kB │ gzip: 7.94 kB
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 44.04 kB │ gzip: 11.77 kB
32
- ℹ [ESM] lib/index.d.mts.map 21.17 kB │ gzip: 6.52 kB
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-XHx3WkoD.mjs 13.81 kB │ gzip: 3.83 kB
35
- ℹ [ESM] lib/help.command-Bynoll_7.mjs 10.34 kB │ gzip: 2.85 kB
36
- ℹ [ESM] lib/help-command.token-XHx3WkoD.mjs.map 9.64 kB │ gzip: 3.29 kB
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-Bynoll_7.mjs.map 2.51 kB │ gzip: 0.97 kB
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 15.33 kB │ gzip: 4.45 kB
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: 224.77 kB
48
- ✔ Build complete in 491ms
47
+ ℹ [ESM] 18 files, total: 244.54 kB
48
+ ✔ Build complete in 487ms
@@ -1,2 +1,2 @@
1
1
  Found 0 warnings and 0 errors.
2
- Finished in 21ms on 34 files with 90 rules using 16 threads.
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
   RUN  v4.0.17 /Volumes/Dev/Projects/navios/commander/packages/commander
5
5
 
6
- ✓ src/services/__tests__/cli-parser.service.spec.mts (40 tests) 6ms
6
+ ✓ src/services/__tests__/cli-parser.service.spec.mts (57 tests) 7ms
7
7
    DEBUG [ModuleLoaderService]  Module TestModule_dy4bqj loaded
8
8
    DEBUG [NaviosApplication]  Navios application initialized
9
9
  stdout | src/__tests__/commander.factory.e2e.spec.mts > CommanderApplication E2E - run() with different argv > simple command without options > should execute command with minimal argv
@@ -99,11 +99,11 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
99
99
    DEBUG [NaviosApplication]  Navios application initialized
100
100
    DEBUG [ModuleLoaderService]  Module AppModule_fuvatb loaded
101
101
    DEBUG [NaviosApplication]  Navios application initialized
102
- ✓ src/__tests__/commander.factory.e2e.spec.mts (40 tests) 22ms
102
+ ✓ src/__tests__/commander.factory.e2e.spec.mts (40 tests) 20ms
103
103
 
104
104
   Test Files  2 passed (2)
105
-  Tests  80 passed (80)
105
+  Tests  97 passed (97)
106
106
  Type Errors  no errors
107
-  Start at  09:14:33
108
-  Duration  197ms (transform 102ms, setup 0ms, import 189ms, tests 28ms, environment 0ms)
107
+  Start at  01:50:44
108
+  Duration  199ms (transform 105ms, setup 0ms, import 187ms, tests 27ms, environment 0ms)
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;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED;;;;;;;;;;;GAWG;AACH,qBACa,gBAAgB;IAC3B;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,aAAa,CAiIhE;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;CAgBtB"}
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,CAoC7C;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
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"}