@runa-cmd/core 0.2.0-beta.5 → 0.2.0-beta.7

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 (62) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/README.md +100 -9
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +102 -14
  5. package/dist/cli.js.map +1 -1
  6. package/dist/command.d.ts +1 -1
  7. package/dist/command.d.ts.map +1 -1
  8. package/dist/command.js +3 -3
  9. package/dist/command.js.map +1 -1
  10. package/dist/config/loader.d.ts +2 -2
  11. package/dist/config/loader.d.ts.map +1 -1
  12. package/dist/config/loader.js +8 -5
  13. package/dist/config/loader.js.map +1 -1
  14. package/dist/config/scope.js +2 -2
  15. package/dist/config/scope.js.map +1 -1
  16. package/dist/errors.d.ts +83 -0
  17. package/dist/errors.d.ts.map +1 -1
  18. package/dist/errors.js +114 -11
  19. package/dist/errors.js.map +1 -1
  20. package/dist/help.d.ts.map +1 -1
  21. package/dist/help.js +29 -8
  22. package/dist/help.js.map +1 -1
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/internal.d.ts +1 -0
  28. package/dist/internal.d.ts.map +1 -1
  29. package/dist/internal.js +1 -0
  30. package/dist/internal.js.map +1 -1
  31. package/dist/parse/resolve.d.ts +7 -0
  32. package/dist/parse/resolve.d.ts.map +1 -1
  33. package/dist/parse/resolve.js +140 -25
  34. package/dist/parse/resolve.js.map +1 -1
  35. package/dist/parse/schema-adapter.d.ts +2 -0
  36. package/dist/parse/schema-adapter.d.ts.map +1 -1
  37. package/dist/parse/schema-adapter.js.map +1 -1
  38. package/dist/parse/variadic.js +3 -3
  39. package/dist/parse/variadic.js.map +1 -1
  40. package/dist/plugin.d.ts +14 -0
  41. package/dist/plugin.d.ts.map +1 -1
  42. package/dist/plugin.js +111 -20
  43. package/dist/plugin.js.map +1 -1
  44. package/dist/stop.d.ts +2 -0
  45. package/dist/stop.d.ts.map +1 -1
  46. package/dist/stop.js +19 -2
  47. package/dist/stop.js.map +1 -1
  48. package/dist/testing.d.ts +7 -0
  49. package/dist/testing.d.ts.map +1 -1
  50. package/dist/testing.js +13 -0
  51. package/dist/testing.js.map +1 -1
  52. package/dist/tool-channel.d.ts +5 -1
  53. package/dist/tool-channel.d.ts.map +1 -1
  54. package/dist/tool-channel.js.map +1 -1
  55. package/dist/trace.d.ts +24 -0
  56. package/dist/trace.d.ts.map +1 -1
  57. package/dist/trace.js.map +1 -1
  58. package/dist/types.d.ts +164 -0
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/types.js +14 -0
  61. package/dist/types.js.map +1 -1
  62. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"schema-adapter.d.ts","sourceRoot":"","sources":["../../src/parse/schema-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,aAAa;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IACnC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IACjC,6FAA6F;IAC7F,IAAI,EAAE,SAAS,CAAC;IAChB,sFAAsF;IACtF,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,2FAA2F;AAC3F,eAAO,MAAM,cAAc,EAAE,aAA4B,CAAC"}
1
+ {"version":3,"file":"schema-adapter.d.ts","sourceRoot":"","sources":["../../src/parse/schema-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IACnC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,CAAC;CAC7C;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IACjC,6FAA6F;IAC7F,IAAI,EAAE,SAAS,CAAC;IAChB,sFAAsF;IACtF,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,UAAU,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,2FAA2F;AAC3F,eAAO,MAAM,cAAc,EAAE,aAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-adapter.js","sourceRoot":"","sources":["../../src/parse/schema-adapter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA4BpD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAkB,YAAY,CAAC"}
1
+ {"version":3,"file":"schema-adapter.js","sourceRoot":"","sources":["../../src/parse/schema-adapter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA8BpD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,cAAc,GAAkB,YAAY,CAAC"}
@@ -1,4 +1,4 @@
1
- import { RunaError } from '../errors.js';
1
+ import { ERROR_CODES, RunaError } from '../errors.js';
2
2
  import { defaultAdapter } from './schema-adapter.js';
3
3
  // ─── Public API ─────────────────────────────────────────────
4
4
  /**
@@ -36,7 +36,7 @@ export function validateVariadicArgs(args) {
36
36
  if (arrayIndices.length > 1) {
37
37
  const names = arrayIndices.map((a) => `'${a.name}'`).join(', ');
38
38
  throw new RunaError(`Only one variadic arg is allowed per command. Found: ${names}.`, {
39
- code: 'INVALID_VARIADIC_ARGS',
39
+ code: ERROR_CODES.INVALID_VARIADIC_ARGS,
40
40
  exitCode: 1,
41
41
  });
42
42
  }
@@ -44,7 +44,7 @@ export function validateVariadicArgs(args) {
44
44
  const arrayEntry = arrayIndices[0];
45
45
  if (arrayEntry && arrayEntry.index !== keys.length - 1) {
46
46
  throw new RunaError(`Variadic arg '${arrayEntry.name}' must be the last positional argument. ` +
47
- `Found at position ${arrayEntry.index} of ${keys.length}.`, { code: 'INVALID_VARIADIC_POSITION', exitCode: 1 });
47
+ `Found at position ${arrayEntry.index} of ${keys.length}.`, { code: ERROR_CODES.INVALID_VARIADIC_POSITION, exitCode: 1 });
48
48
  }
49
49
  // Single array in last position → valid
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"variadic.js","sourceRoot":"","sources":["../../src/parse/variadic.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,+DAA+D;AAE/D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAe;IACzC,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA6B;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,YAAY,GAA2C,EAAE,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC;IAED,oBAAoB;IACpB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,wDAAwD,KAAK,GAAG,EAAE;YACrF,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,CAAC;SACX,CAAC,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAClB,iBAAiB,UAAU,CAAC,IAAI,0CAA0C;YACzE,qBAAqB,UAAU,CAAC,KAAK,OAAO,IAAI,CAAC,MAAM,GAAG,EAC3D,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,CAClD,CAAC;IACH,CAAC;IAED,wCAAwC;AACzC,CAAC"}
1
+ {"version":3,"file":"variadic.js","sourceRoot":"","sources":["../../src/parse/variadic.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,+DAA+D;AAE/D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAe;IACzC,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA6B;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,YAAY,GAA2C,EAAE,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC;IAED,oBAAoB;IACpB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,wDAAwD,KAAK,GAAG,EAAE;YACrF,IAAI,EAAE,WAAW,CAAC,qBAAqB;YACvC,QAAQ,EAAE,CAAC;SACX,CAAC,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAClB,iBAAiB,UAAU,CAAC,IAAI,0CAA0C;YACzE,qBAAqB,UAAU,CAAC,KAAK,OAAO,IAAI,CAAC,MAAM,GAAG,EAC3D,EAAE,IAAI,EAAE,WAAW,CAAC,yBAAyB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAC5D,CAAC;IACH,CAAC;IAED,wCAAwC;AACzC,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -63,6 +63,20 @@ export declare function runPluginSetup(plugins: PluginConfig[], refs: PluginHost
63
63
  * `config.globalOptions` (as opposed to plugin-registered ones).
64
64
  */
65
65
  export declare const STATIC_GLOBAL_OPTION_SOURCE = "<cli-config>";
66
+ /**
67
+ * An alias that is neither `-x` nor `--word` never worked: parseArgs ignored
68
+ * it, and the help still showed it. It fails at startup, as a collision does,
69
+ * so the author sees it the first time the CLI runs (T-244).
70
+ */
71
+ export declare function validateOptionAliases(commands: CommandTree, globalMeta: {
72
+ options?: Record<string, OptionMeta>;
73
+ }): void;
74
+ /**
75
+ * Inside a command, every token names one option. Two options with `-e`, an
76
+ * alias equal to another option's flag or negation, or to its own flag: parseArgs
77
+ * kept one of them, or threw the typed value away, without a word (T-252).
78
+ */
79
+ export declare function validateCommandTokens(commands: CommandTree): void;
66
80
  /** Keys that can't become a usable flag fail at startup, not on the first use. */
67
81
  export declare function validateOptionNames(commands: CommandTree, globalOptions: Record<string, ZodType>): void;
68
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAKnC,OAAO,KAAK,EACX,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAc/D;AAID,KAAK,WAAW,GAAG,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CAAC;AAE7E;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA2BpF;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAmEvE;AAID,MAAM,WAAW,QAAQ;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KAAE,CAAC;IACpD,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,MAAM,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3F,6DAA6D;IAC7D,IAAI,EAAE,QAAQ,CAAC;IACf;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,IAAI,EAAE,cAAc,GAClB,SAAS,CAkFX;AAID;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjG;AAID;;;GAGG;AACH,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AA+B1D,kFAAkF;AAClF,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,IAAI,CAaN;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAuBnF;AAyCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,EACnD,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC7B,IAAI,CAoGN;AAID;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAiBhF"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { JSON_OPTION } from './command.js';
2
- import { RunaError } from './errors.js';
2
+ import { ERROR_CODES, isRunaError, RunaError } from './errors.js';
3
3
  import { flagName, longFlag } from './flag-name.js';
4
4
  import { walkSchema } from './parse/schema-walker.js';
5
5
  // ─── Public builder ─────────────────────────────────────────
@@ -10,13 +10,13 @@ import { walkSchema } from './parse/schema-walker.js';
10
10
  export function definePlugin(config) {
11
11
  if (!config.meta?.name) {
12
12
  throw new RunaError('Plugin must have meta.name defined.', {
13
- code: 'INVALID_PLUGIN',
13
+ code: ERROR_CODES.INVALID_PLUGIN,
14
14
  exitCode: 1,
15
15
  });
16
16
  }
17
17
  if (typeof config.setup !== 'function') {
18
18
  throw new RunaError(`Plugin '${config.meta.name}' must have a setup() function.`, {
19
- code: 'INVALID_PLUGIN',
19
+ code: ERROR_CODES.INVALID_PLUGIN,
20
20
  exitCode: 1,
21
21
  });
22
22
  }
@@ -34,16 +34,17 @@ export async function resolvePlugins(plugins) {
34
34
  const mod = await plugin();
35
35
  if (!mod.default) {
36
36
  throw new RunaError('Lazy-loaded plugin module does not have a default export.', {
37
- code: 'PLUGIN_LOAD_ERROR',
37
+ code: ERROR_CODES.PLUGIN_LOAD_ERROR,
38
38
  exitCode: 1,
39
39
  });
40
40
  }
41
41
  resolved.push(mod.default);
42
42
  }
43
43
  catch (err) {
44
- if (err instanceof RunaError)
44
+ // A plugin may bring its own copy of core: its errors are still ours (T-254)
45
+ if (isRunaError(err))
45
46
  throw err;
46
- throw new RunaError(`Failed to load lazy plugin: ${err instanceof Error ? err.message : String(err)}`, { code: 'PLUGIN_LOAD_ERROR', exitCode: 1 });
47
+ throw new RunaError(`Failed to load lazy plugin: ${err instanceof Error ? err.message : String(err)}`, { code: ERROR_CODES.PLUGIN_LOAD_ERROR, exitCode: 1 });
47
48
  }
48
49
  }
49
50
  else {
@@ -76,7 +77,7 @@ export function topologicalSort(plugins) {
76
77
  for (const dep of plugin.meta.dependencies ?? []) {
77
78
  if (!byName.has(dep)) {
78
79
  throw new RunaError(`Plugin '${name}' depends on '${dep}', which is not registered.`, {
79
- code: 'PLUGIN_MISSING_DEPENDENCY',
80
+ code: ERROR_CODES.PLUGIN_MISSING_DEPENDENCY,
80
81
  exitCode: 1,
81
82
  });
82
83
  }
@@ -117,7 +118,7 @@ export function topologicalSort(plugins) {
117
118
  .map((p) => `'${p.meta.name}'`)
118
119
  .join(', ');
119
120
  throw new RunaError(`Circular dependency detected among plugins: ${remaining}.`, {
120
- code: 'PLUGIN_CIRCULAR_DEPENDENCY',
121
+ code: ERROR_CODES.PLUGIN_CIRCULAR_DEPENDENCY,
121
122
  exitCode: 1,
122
123
  });
123
124
  }
@@ -131,13 +132,13 @@ export function createPluginAPI(pluginName, capabilities, refs) {
131
132
  return {
132
133
  addCommand(name, command) {
133
134
  if (!caps.addCommands) {
134
- throw new RunaError(`Plugin '${pluginName}' called addCommand() but did not declare addCommands capability.`, { code: 'PLUGIN_CAPABILITY_VIOLATION', exitCode: 1 });
135
+ throw new RunaError(`Plugin '${pluginName}' called addCommand() but did not declare addCommands capability.`, { code: ERROR_CODES.PLUGIN_CAPABILITY_VIOLATION, exitCode: 1 });
135
136
  }
136
137
  refs.commands[name] = command;
137
138
  },
138
139
  addGlobalOption(name, schema, meta) {
139
140
  if (!caps.addGlobalOptions) {
140
- throw new RunaError(`Plugin '${pluginName}' called addGlobalOption() but did not declare addGlobalOptions capability.`, { code: 'PLUGIN_CAPABILITY_VIOLATION', exitCode: 1 });
141
+ throw new RunaError(`Plugin '${pluginName}' called addGlobalOption() but did not declare addGlobalOptions capability.`, { code: ERROR_CODES.PLUGIN_CAPABILITY_VIOLATION, exitCode: 1 });
141
142
  }
142
143
  refs.globalOptions[name] = schema;
143
144
  if (meta) {
@@ -158,7 +159,7 @@ export function createPluginAPI(pluginName, capabilities, refs) {
158
159
  },
159
160
  addMiddleware(middleware) {
160
161
  if (!caps.addMiddleware) {
161
- throw new RunaError(`Plugin '${pluginName}' called addMiddleware() but did not declare addMiddleware capability.`, { code: 'PLUGIN_CAPABILITY_VIOLATION', exitCode: 1 });
162
+ throw new RunaError(`Plugin '${pluginName}' called addMiddleware() but did not declare addMiddleware capability.`, { code: ERROR_CODES.PLUGIN_CAPABILITY_VIOLATION, exitCode: 1 });
162
163
  }
163
164
  refs.middleware.push(middleware);
164
165
  },
@@ -177,10 +178,10 @@ export function createPluginAPI(pluginName, capabilities, refs) {
177
178
  },
178
179
  replaceHelp(show) {
179
180
  if (!caps.replaceHelp) {
180
- throw new RunaError(`Plugin '${pluginName}' called replaceHelp() but did not declare replaceHelp capability.`, { code: 'PLUGIN_CAPABILITY_VIOLATION', exitCode: 1 });
181
+ throw new RunaError(`Plugin '${pluginName}' called replaceHelp() but did not declare replaceHelp capability.`, { code: ERROR_CODES.PLUGIN_CAPABILITY_VIOLATION, exitCode: 1 });
181
182
  }
182
183
  if (refs.help.owner) {
183
- throw new RunaError(`Plugins '${refs.help.owner}' and '${pluginName}' both replace the help.`, { code: 'HELP_ALREADY_REPLACED', exitCode: 1 });
184
+ throw new RunaError(`Plugins '${refs.help.owner}' and '${pluginName}' both replace the help.`, { code: ERROR_CODES.HELP_ALREADY_REPLACED, exitCode: 1 });
184
185
  }
185
186
  refs.help.owner = pluginName;
186
187
  refs.help.show = show;
@@ -207,12 +208,12 @@ export const STATIC_GLOBAL_OPTION_SOURCE = '<cli-config>';
207
208
  const NEGATED_KEY = /^no(?:-|(?=[A-Z]))(.+)$/;
208
209
  function assertUsableNames(options, owner) {
209
210
  const keysByFlag = new Map();
210
- for (const { name, zodType } of walkSchema(options)) {
211
+ for (const { name, zodType, isOptional } of walkSchema(options)) {
211
212
  const flag = flagName(name);
212
213
  const other = keysByFlag.get(flag);
213
214
  if (other) {
214
215
  throw new RunaError(`Options '${other}' and '${name}' of ${owner} are both '--${flag}'.`, {
215
- code: 'OPTION_NAME',
216
+ code: ERROR_CODES.OPTION_COLLISION,
216
217
  exitCode: 1,
217
218
  });
218
219
  }
@@ -221,10 +222,96 @@ function assertUsableNames(options, owner) {
221
222
  if (positive && zodType === 'boolean') {
222
223
  const key = `${positive[0]?.toLowerCase()}${positive.slice(1)}`;
223
224
  throw new RunaError(`Boolean option '${name}' of ${owner} would clash with '--no-${flagName(key)}', ` +
224
- `which already negates '${key}'. Declare '${key}' instead, with .default(true).`, { code: 'OPTION_NAME', exitCode: 1 });
225
+ `which already negates '${key}'. Declare '${key}' instead, with .default(true).`, { code: ERROR_CODES.INVALID_OPTION_NAME, exitCode: 1 });
226
+ }
227
+ // A flag that isn't passed would fail every run: the author hears it, not the user (T-256)
228
+ if (zodType === 'boolean' && !isOptional) {
229
+ throw new RunaError(`Boolean option '${name}' of ${owner} has no default: a flag that isn't passed needs one. ` +
230
+ 'Use z.boolean().default(false), or .optional().', { code: ERROR_CODES.INVALID_BOOLEAN_OPTION, exitCode: 1 });
225
231
  }
226
232
  }
227
233
  }
234
+ const SHORT_ALIAS = /^-[^-\s]$/;
235
+ const LONG_ALIAS = /^--[^-\s=][^\s=]*$/;
236
+ /** How to write an alias that can't work: the letters it has, with the right dashes. */
237
+ function aliasProposal(alias) {
238
+ const bare = alias.replace(/^-+/, '');
239
+ if (bare.length === 0)
240
+ return "'-x' or '--word'";
241
+ if (bare.length === 1)
242
+ return `'-${bare}'`;
243
+ return `'--${bare}', or one character as '-${bare[0]}'`;
244
+ }
245
+ /**
246
+ * An alias that is neither `-x` nor `--word` never worked: parseArgs ignored
247
+ * it, and the help still showed it. It fails at startup, as a collision does,
248
+ * so the author sees it the first time the CLI runs (T-244).
249
+ */
250
+ export function validateOptionAliases(commands, globalMeta) {
251
+ const check = (options, owner) => {
252
+ for (const [name, meta] of Object.entries(options ?? {})) {
253
+ for (const alias of meta.alias ?? []) {
254
+ if (SHORT_ALIAS.test(alias) || LONG_ALIAS.test(alias))
255
+ continue;
256
+ throw new RunaError(`Alias '${alias}' of option '${name}' of ${owner} must be ${aliasProposal(alias)}.`, { code: ERROR_CODES.INVALID_OPTION_ALIAS, exitCode: 1 });
257
+ }
258
+ }
259
+ };
260
+ check(globalMeta.options, 'the CLI');
261
+ const walk = (tree, path) => {
262
+ for (const [key, entry] of Object.entries(tree)) {
263
+ if (isCommandNode(entry)) {
264
+ check(entry.meta.options, `command '${[...path, key].join(' ')}'`);
265
+ }
266
+ else {
267
+ walk(entry, [...path, key]);
268
+ }
269
+ }
270
+ };
271
+ walk(commands, []);
272
+ }
273
+ /**
274
+ * Inside a command, every token names one option. Two options with `-e`, an
275
+ * alias equal to another option's flag or negation, or to its own flag: parseArgs
276
+ * kept one of them, or threw the typed value away, without a word (T-252).
277
+ */
278
+ export function validateCommandTokens(commands) {
279
+ const collide = (message) => {
280
+ throw new RunaError(message, { code: ERROR_CODES.OPTION_COLLISION, exitCode: 1 });
281
+ };
282
+ const check = (command, label) => {
283
+ const options = command.options ?? {};
284
+ const meta = (command.meta.options ?? {});
285
+ const owners = new Map();
286
+ // Flags first: an alias is what collides with them, not the other way round
287
+ for (const { name, zodType } of walkSchema(options)) {
288
+ owners.set(`--${flagName(name)}`, name);
289
+ if (zodType === 'boolean')
290
+ owners.set(`--no-${flagName(name)}`, name);
291
+ }
292
+ for (const name of Object.keys(options)) {
293
+ for (const alias of meta[name]?.alias ?? []) {
294
+ const owner = owners.get(alias);
295
+ if (owner === name) {
296
+ collide(`Option '${name}' of ${label} has '${alias}' as an alias, which is already its flag. Remove the alias.`);
297
+ }
298
+ if (owner !== undefined) {
299
+ collide(`Options '${name}' and '${owner}' of ${label} both use '${alias}'.`);
300
+ }
301
+ owners.set(alias, name);
302
+ }
303
+ }
304
+ };
305
+ const walk = (tree, path) => {
306
+ for (const [key, entry] of Object.entries(tree)) {
307
+ if (isCommandNode(entry))
308
+ check(entry, `command '${[...path, key].join(' ')}'`);
309
+ else
310
+ walk(entry, [...path, key]);
311
+ }
312
+ };
313
+ walk(commands, []);
314
+ }
228
315
  /** Keys that can't become a usable flag fail at startup, not on the first use. */
229
316
  export function validateOptionNames(commands, globalOptions) {
230
317
  assertUsableNames(globalOptions, 'the CLI');
@@ -247,7 +334,7 @@ const COMMAND_NAME = /^[a-z0-9]+(-[a-z0-9]+)*$/;
247
334
  * meta.name, and that isn't a command anyone types.
248
335
  */
249
336
  export function validateCommandNames(commands, rootName) {
250
- const invalid = (message) => new RunaError(message, { code: 'INVALID_COMMAND_NAME', exitCode: 1 });
337
+ const invalid = (message) => new RunaError(message, { code: ERROR_CODES.INVALID_COMMAND_NAME, exitCode: 1 });
251
338
  const walk = (tree, path) => {
252
339
  for (const [key, entry] of Object.entries(tree)) {
253
340
  if (path.length === 0 && key === rootName)
@@ -262,6 +349,10 @@ export function validateCommandNames(commands, rootName) {
262
349
  else if (entry.meta.name !== undefined && entry.meta.name !== key) {
263
350
  throw invalid(`Command '${[...path, key].join(' ')}' says meta.name is '${entry.meta.name}', but its key is '${key}'. The key names it: remove meta.name, or make it match.`);
264
351
  }
352
+ else if (entry.meta.version !== undefined) {
353
+ // Only the command of runCLI is the CLI: here it would do nothing (T-250)
354
+ throw new RunaError(`Command '${[...path, key].join(' ')}' declares meta.version: 'version' only applies with runCLI; set it in defineCLI's meta.`, { code: ERROR_CODES.INVALID_COMMAND_VERSION, exitCode: 1 });
355
+ }
265
356
  }
266
357
  };
267
358
  walk(commands, []);
@@ -317,7 +408,7 @@ export function validateOptionCollisions(commands, globalOptions, globalMeta, so
317
408
  const labels = registrants
318
409
  .map((r) => (r === STATIC_GLOBAL_OPTION_SOURCE ? 'the CLI config' : `plugin '${r}'`))
319
410
  .join(' and ');
320
- throw new RunaError(`Global option '${renderLong(name)}' is registered by both ${labels}.`, { code: 'OPTION_COLLISION', exitCode: 1 });
411
+ throw new RunaError(`Global option '${renderLong(name)}' is registered by both ${labels}.`, { code: ERROR_CODES.OPTION_COLLISION, exitCode: 1 });
321
412
  }
322
413
  }
323
414
  }
@@ -331,7 +422,7 @@ export function validateOptionCollisions(commands, globalOptions, globalMeta, so
331
422
  if (existing && existing.canonical !== owner.canonical) {
332
423
  throw new RunaError(`Global option '${renderLong(owner.canonical)}' (${sourceLabel(sources?.get(owner.canonical)?.[0])}) ` +
333
424
  `collides with global option '${renderLong(existing.canonical)}' (${sourceLabel(sources?.get(existing.canonical)?.[0])}): ` +
334
- `both use '${owner.token}'.`, { code: 'OPTION_COLLISION', exitCode: 1 });
425
+ `both use '${owner.token}'.`, { code: ERROR_CODES.OPTION_COLLISION, exitCode: 1 });
335
426
  }
336
427
  map.set(key, owner);
337
428
  };
@@ -367,7 +458,7 @@ export function validateOptionCollisions(commands, globalOptions, globalMeta, so
367
458
  ? ''
368
459
  : ` Both use '${owner.token}'.`;
369
460
  throw new RunaError(`Global option '${renderLong(owner.canonical)}' (${sourceLabel(sources?.get(owner.canonical)?.[0])}) ` +
370
- `collides with option '${renderLong(optName)}' of command '${commandPath}'.${viaAlias}`, { code: 'OPTION_COLLISION', exitCode: 1 });
461
+ `collides with option '${renderLong(optName)}' of command '${commandPath}'.${viaAlias}`, { code: ERROR_CODES.OPTION_COLLISION, exitCode: 1 });
371
462
  };
372
463
  for (const long of [flagName(optName), ...longs]) {
373
464
  const owner = globalLong.get(long);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/stop.d.ts CHANGED
@@ -15,6 +15,8 @@ export interface RunStop {
15
15
  guard(run: () => Promise<void>): Promise<void>;
16
16
  /** The run ended: stop listening, and end what a stopped tool left behind */
17
17
  finish(): void;
18
+ /** After cleanup, end a stopped process: by its signal where there is one */
19
+ leave(): void;
18
20
  }
19
21
  /**
20
22
  * Start listening for a stop.
@@ -1 +1 @@
1
- {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../src/stop.ts"],"names":[],"mappings":"AAUA,mDAAmD;AACnD,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAarC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAajD;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,qEAAqE;IACrE,KAAK,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,6EAA6E;IAC7E,MAAM,IAAI,IAAI,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,UAAO,GAAG,OAAO,CAiEpE"}
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../src/stop.ts"],"names":[],"mappings":"AAUA,mDAAmD;AACnD,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAarC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAajD;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,qEAAqE;IACrE,KAAK,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,6EAA6E;IAC7E,MAAM,IAAI,IAAI,CAAC;IACf,6EAA6E;IAC7E,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,UAAO,GAAG,OAAO,CAkFpE"}
package/dist/stop.js CHANGED
@@ -53,10 +53,24 @@ export function watchForStop(isTool, listen = true) {
53
53
  });
54
54
  gracePeriod.catch(() => { }); // Nobody is listening unless a command is running
55
55
  const interrupted = () => new InterruptedError(STOP_MESSAGES[cause ?? 'SIGINT']);
56
+ /**
57
+ * End the process the way the stop asks. On Unix a signal ends it by that
58
+ * same signal, after cleanup (ADR-0046): the shell still sees 130 or 143, and
59
+ * systemd sees a clean stop, which it doesn't for exit(143). Windows has no
60
+ * signals to raise, and a cancelled tool has no signal: both use the code.
61
+ */
56
62
  const leave = () => {
57
63
  if (isTool)
58
64
  killProcessTree(process.pid);
59
- process.exit(EXIT_CODES[cause ?? 'SIGINT']);
65
+ const code = EXIT_CODES[cause ?? 'SIGINT'];
66
+ if ((cause === 'SIGINT' || cause === 'SIGTERM') && process.platform !== 'win32') {
67
+ process.removeAllListeners(cause);
68
+ process.kill(process.pid, cause);
69
+ // The signal ends the process on its way out of kill(): this only runs if it didn't
70
+ setImmediate(() => process.exit(code));
71
+ return;
72
+ }
73
+ process.exit(code);
60
74
  };
61
75
  const stop = (next) => {
62
76
  if (cause) {
@@ -98,7 +112,9 @@ export function watchForStop(isTool, listen = true) {
98
112
  throw interrupted();
99
113
  throw error;
100
114
  }
101
- if (cause)
115
+ // run() ended well after a signal: it stopped as asked, so it isn't an
116
+ // error (F-07). A cancelled tool still reports the cancellation.
117
+ if (cause === 'cancelled')
102
118
  throw interrupted();
103
119
  },
104
120
  finish() {
@@ -108,6 +124,7 @@ export function watchForStop(isTool, listen = true) {
108
124
  if (cause && isTool)
109
125
  killProcessTree(process.pid);
110
126
  },
127
+ leave,
111
128
  };
112
129
  }
113
130
  //# sourceMappingURL=stop.js.map
package/dist/stop.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../src/stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../src/stop.ts"],"names":[],"mappings":"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"}
package/dist/testing.d.ts CHANGED
@@ -1,16 +1,23 @@
1
1
  import type { TraceEvent } from './trace.js';
2
2
  import type { CLI, Command, RunCLIOptions } from './types.js';
3
3
  export type { TraceEvent, ValueSource } from './trace.js';
4
+ /**
5
+ * What a test hands in instead of the machine it runs on. A single command also
6
+ * takes the plugins, middleware and global options it will run under.
7
+ */
4
8
  export interface TestOptions extends Pick<RunCLIOptions, 'plugins' | 'middleware' | 'globalOptions' | 'globalMeta'> {
5
9
  /** What Runa sees as the environment. It doesn't read the real one */
6
10
  env?: Record<string, string | undefined>;
7
11
  /** The contents of the config file. No file is read */
8
12
  config?: Record<string, unknown>;
9
13
  }
14
+ /** What a run did, instead of ending the process. */
10
15
  export interface TestResult {
11
16
  /** The exit code the process would end with */
12
17
  code: number;
18
+ /** What it wrote to stdout: the result, or what the command printed */
13
19
  stdout: string;
20
+ /** What it wrote to stderr: errors, warnings and progress */
14
21
  stderr: string;
15
22
  /** What run() returned */
16
23
  result: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAa,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,WAChB,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY,CAAC;IACtF,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IAC1B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE,UAAU,EAAE,CAAC;CACpB;AAiHD;;;;GAIG;AACH,wBAAsB,OAAO,CAC5B,MAAM,EAAE,GAAG,GAAG,OAAO,EACrB,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,UAAU,CAAC,CA4CrB"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAa,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,WAChB,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY,CAAC;IACtF,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,qDAAqD;AACrD,MAAM,WAAW,UAAU;IAC1B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE,UAAU,EAAE,CAAC;CACpB;AA+HD;;;;GAIG;AACH,wBAAsB,OAAO,CAC5B,MAAM,EAAE,GAAG,GAAG,OAAO,EACrB,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,UAAU,CAAC,CA6CrB"}
package/dist/testing.js CHANGED
@@ -100,6 +100,18 @@ function configOf(target, options) {
100
100
  const name = target.meta.name ?? 'command';
101
101
  return [rootConfig(target, name, { plugins, middleware, globalOptions, globalMeta }), name];
102
102
  }
103
+ /**
104
+ * A CLI without `config` reads no file, so a test that hands it config values
105
+ * would pass while the real program ignores them (T-230). Say so instead.
106
+ * A single command can't be checked: `config` stands for the file of
107
+ * `runCLI(command, { config })`.
108
+ */
109
+ function assertReadsConfig(target, config, options) {
110
+ if (options.config === undefined || !isCLI(target) || config.config)
111
+ return;
112
+ const { name } = config.meta;
113
+ throw new Error(`testCLI() got config, but '${name}' reads no config file: add config: { name: '${name}' } to defineCLI, or drop config from the test.`);
114
+ }
103
115
  /**
104
116
  * Run a CLI or a command through its real lifecycle, without ending the process.
105
117
  *
@@ -123,6 +135,7 @@ export async function testCLI(target, argv = [], options = {}) {
123
135
  },
124
136
  };
125
137
  const [config, rootName] = configOf(target, options);
138
+ assertReadsConfig(target, config, options);
126
139
  const exitCodeBefore = process.exitCode;
127
140
  enter();
128
141
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,11 @@ export type ToolReport = {
38
38
  kind: 'failed';
39
39
  reason: ToolFailureReason;
40
40
  };
41
- export type ToolFailureReason = 'input' | 'output' | 'other';
41
+ /**
42
+ * `command` is a CommandError, a failure the author wrote; `other` is anything
43
+ * else, as a plain Error, a bug the author didn't foresee.
44
+ */
45
+ export type ToolFailureReason = 'input' | 'output' | 'command' | 'other';
42
46
  /**
43
47
  * The request of this process, if it was started as a tool. The variable is
44
48
  * removed right away, so a CLI the command starts is an ordinary CLI.
@@ -1 +1 @@
1
- {"version":3,"file":"tool-channel.d.ts","sourceRoot":"","sources":["../src/tool-channel.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,aAAa,4BAA4B,CAAC;AACvD,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,WAAW;AACtB,wEAAwE;AACtE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACA,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;CACtB,CAAC;AAEL,MAAM,MAAM,UAAU,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB,uEAAuE;GACrE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,qEAAqE;GACnE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE;AACjB,mDAAmD;GACjD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE;AACpC,mEAAmE;GACjE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACtC,2FAA2F;GACzF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,GAAG,SAAS,CAIzD;AAeD,wBAAgB,cAAc,CAC7B,MAAM,EAAE,UAAU,EAClB,cAAc,SAA2B,GACvC,IAAI,CAON"}
1
+ {"version":3,"file":"tool-channel.d.ts","sourceRoot":"","sources":["../src/tool-channel.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,aAAa,4BAA4B,CAAC;AACvD,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,WAAW;AACtB,wEAAwE;AACtE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACA,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;CACtB,CAAC;AAEL,MAAM,MAAM,UAAU,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB,uEAAuE;GACrE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,qEAAqE;GACnE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE;AACjB,mDAAmD;GACjD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE;AACpC,mEAAmE;GACjE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACtC,2FAA2F;GACzF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzE;;;GAGG;AACH,wBAAgB,eAAe,IAAI,WAAW,GAAG,SAAS,CAIzD;AAeD,wBAAgB,cAAc,CAC7B,MAAM,EAAE,UAAU,EAClB,cAAc,SAA2B,GACvC,IAAI,CAON"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-channel.js","sourceRoot":"","sources":["../src/tool-channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,yBAAyB,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AA4BhC;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAgB,CAAC;AACvE,CAAC;AAED,SAAS,SAAS,CAAC,MAAkB,EAAE,QAAgB;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QACxD,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC/D,OAAO;IACR,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,IAAI,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,MAAkB,EAClB,cAAc,GAAG,MAAM,CAAC,iBAAiB;IAEzC,IAAI,CAAC;QACJ,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,yEAAyE;QACzE,IAAK,KAA+B,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC;IACpE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"tool-channel.js","sourceRoot":"","sources":["../src/tool-channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,yBAAyB,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAgChC;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAgB,CAAC;AACvE,CAAC;AAED,SAAS,SAAS,CAAC,MAAkB,EAAE,QAAgB;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QACxD,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC/D,OAAO;IACR,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,IAAI,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,MAAkB,EAClB,cAAc,GAAG,MAAM,CAAC,iBAAiB;IAEzC,IAAI,CAAC;QACJ,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,yEAAyE;QACzE,IAAK,KAA+B,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC;IACpE,CAAC;AACF,CAAC"}