goke 6.7.0 → 6.9.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.
@@ -1831,3 +1831,127 @@ describe('middleware', () => {
1831
1831
  expect(order).toEqual(['sync1', 'async', 'sync2', 'action']);
1832
1832
  });
1833
1833
  });
1834
+ describe('use() with sub-CLI composition', () => {
1835
+ test('basic composition: sub-CLI command runs via parent', () => {
1836
+ const parent = goke('mycli');
1837
+ const sub = goke();
1838
+ let matched = '';
1839
+ sub
1840
+ .command('deploy', 'Deploy the app')
1841
+ .action(() => { matched = 'deploy'; });
1842
+ parent.use(sub);
1843
+ parent.parse(['node', 'bin', 'deploy'], { run: true });
1844
+ expect(matched).toBe('deploy');
1845
+ });
1846
+ test('multiple sub-CLIs composed together', () => {
1847
+ const parent = goke('mycli');
1848
+ const subA = goke();
1849
+ const subB = goke();
1850
+ let matched = '';
1851
+ subA.command('login', 'Login').action(() => { matched = 'login'; });
1852
+ subB.command('deploy', 'Deploy').action(() => { matched = 'deploy'; });
1853
+ parent.use(subA).use(subB);
1854
+ parent.parse(['node', 'bin', 'login'], { run: true });
1855
+ expect(matched).toBe('login');
1856
+ matched = '';
1857
+ parent.parse(['node', 'bin', 'deploy'], { run: true });
1858
+ expect(matched).toBe('deploy');
1859
+ });
1860
+ test('sub-CLI command with options and schema coercion', () => {
1861
+ const parent = goke('mycli');
1862
+ const sub = goke();
1863
+ let result = {};
1864
+ sub
1865
+ .command('serve', 'Start server')
1866
+ .option('--port <port>', z.number().describe('Port'))
1867
+ .option('--host <host>', z.string().describe('Host'))
1868
+ .action((options) => { result = options; });
1869
+ parent.use(sub);
1870
+ parent.parse('node bin serve --port 3000 --host localhost'.split(' '), { run: true });
1871
+ expect(result.port).toBe(3000);
1872
+ expect(typeof result.port).toBe('number');
1873
+ expect(result.host).toBe('localhost');
1874
+ });
1875
+ test('sub-CLI command with positional args', () => {
1876
+ const parent = goke('mycli');
1877
+ const sub = goke();
1878
+ let receivedId = '';
1879
+ sub
1880
+ .command('get <id>', 'Get a resource')
1881
+ .action((id) => { receivedId = id; });
1882
+ parent.use(sub);
1883
+ parent.parse(['node', 'bin', 'get', 'abc123'], { run: true });
1884
+ expect(receivedId).toBe('abc123');
1885
+ });
1886
+ test('sub-CLI with multi-word commands', () => {
1887
+ const parent = goke('mycli');
1888
+ const sub = goke();
1889
+ let matched = '';
1890
+ sub.command('mcp login', 'Login to MCP').action(() => { matched = 'mcp login'; });
1891
+ sub.command('mcp logout', 'Logout from MCP').action(() => { matched = 'mcp logout'; });
1892
+ parent.use(sub);
1893
+ parent.parse(['node', 'bin', 'mcp', 'login'], { run: true });
1894
+ expect(matched).toBe('mcp login');
1895
+ matched = '';
1896
+ parent.parse(['node', 'bin', 'mcp', 'logout'], { run: true });
1897
+ expect(matched).toBe('mcp logout');
1898
+ });
1899
+ test('help output includes composed commands', () => {
1900
+ const stdout = createTestOutputStream();
1901
+ const parent = goke('mycli', { stdout });
1902
+ const sub = goke();
1903
+ sub.command('selfhost', 'Set up on your own workspace')
1904
+ .option('-t, --token [token]', 'Admin token');
1905
+ parent.command('init', 'Initialize project');
1906
+ parent.use(sub);
1907
+ parent.help();
1908
+ parent.parse(['node', 'bin', '--help'], { run: false });
1909
+ expect(stdout.text).toContain('init');
1910
+ expect(stdout.text).toContain('selfhost');
1911
+ expect(stdout.text).toContain('Set up on your own workspace');
1912
+ });
1913
+ test('sub-CLI middlewares are NOT copied to parent', () => {
1914
+ const parent = goke('mycli');
1915
+ const sub = goke();
1916
+ let subMiddlewareCalled = false;
1917
+ const order = [];
1918
+ sub.use(() => { subMiddlewareCalled = true; });
1919
+ sub.command('deploy', 'Deploy').action(() => { order.push('deploy'); });
1920
+ parent.use(() => { order.push('parent-mw'); });
1921
+ parent.use(sub);
1922
+ parent.parse(['node', 'bin', 'deploy'], { run: true });
1923
+ expect(subMiddlewareCalled).toBe(false);
1924
+ expect(order).toEqual(['parent-mw', 'deploy']);
1925
+ });
1926
+ test('parent global options are available to composed commands', () => {
1927
+ const parent = goke('mycli');
1928
+ const sub = goke();
1929
+ let result = {};
1930
+ parent.option('--verbose', 'Verbose output');
1931
+ sub
1932
+ .command('build', 'Build')
1933
+ .option('--target <target>', 'Build target')
1934
+ .action((options) => { result = options; });
1935
+ parent.use(sub);
1936
+ parent.parse('node bin build --verbose --target production'.split(' '), { run: true });
1937
+ expect(result.verbose).toBe(true);
1938
+ expect(result.target).toBe('production');
1939
+ });
1940
+ test('composed commands coexist with inline commands', () => {
1941
+ const parent = goke('mycli');
1942
+ const sub = goke();
1943
+ let matched = '';
1944
+ parent.command('init', 'Initialize').action(() => { matched = 'init'; });
1945
+ sub.command('deploy', 'Deploy').action(() => { matched = 'deploy'; });
1946
+ sub.command('rollback', 'Rollback').action(() => { matched = 'rollback'; });
1947
+ parent.use(sub);
1948
+ parent.parse(['node', 'bin', 'init'], { run: true });
1949
+ expect(matched).toBe('init');
1950
+ matched = '';
1951
+ parent.parse(['node', 'bin', 'deploy'], { run: true });
1952
+ expect(matched).toBe('deploy');
1953
+ matched = '';
1954
+ parent.parse(['node', 'bin', 'rollback'], { run: true });
1955
+ expect(matched).toBe('rollback');
1956
+ });
1957
+ });
@@ -4,6 +4,31 @@
4
4
  import { describe, expect, test } from 'vitest';
5
5
  import { z } from 'zod';
6
6
  import goke from '../index.js';
7
+ /**
8
+ * Build a minimal `GokeFs` stub where every method throws unless the
9
+ * caller overrides it. Used by `createExecutionContext` tests that
10
+ * only care about a single method (e.g. `readFile`) but still need
11
+ * an object that satisfies the full `GokeFs` interface.
12
+ */
13
+ function stubGokeFs(overrides) {
14
+ const notImplemented = () => { throw new Error('not implemented in stub'); };
15
+ return {
16
+ appendFile: notImplemented,
17
+ chmod: notImplemented,
18
+ copyFile: notImplemented,
19
+ link: notImplemented,
20
+ mkdir: notImplemented,
21
+ readFile: notImplemented,
22
+ readlink: notImplemented,
23
+ realpath: notImplemented,
24
+ rename: notImplemented,
25
+ rm: notImplemented,
26
+ symlink: notImplemented,
27
+ utimes: notImplemented,
28
+ writeFile: notImplemented,
29
+ ...overrides,
30
+ };
31
+ }
7
32
  const ANSI_RE = /\x1B\[[0-9;]*m/g;
8
33
  const stripAnsi = (text) => text.replace(ANSI_RE, '');
9
34
  function createTestOutputStream() {
@@ -62,6 +87,71 @@ describe('clone', () => {
62
87
  expect(cli.matchedCommandName).toBeUndefined();
63
88
  });
64
89
  });
90
+ describe('createExecutionContext', () => {
91
+ test('returns a context that mirrors the cli defaults when called with no override', () => {
92
+ const stdout = createTestOutputStream();
93
+ const stderr = createTestOutputStream();
94
+ const cli = gokeTestable('mycli', {
95
+ cwd: '/workspace',
96
+ env: { TOKEN: 'abc' },
97
+ stdin: 'stdin-text',
98
+ stdout,
99
+ stderr,
100
+ });
101
+ const ctx = cli.createExecutionContext();
102
+ expect(ctx.process.cwd).toBe('/workspace');
103
+ expect(ctx.process.env.TOKEN).toBe('abc');
104
+ expect(ctx.process.stdin).toBe('stdin-text');
105
+ expect(ctx.process.stdout).toBe(stdout);
106
+ expect(ctx.process.stderr).toBe(stderr);
107
+ ctx.console.log('hi');
108
+ expect(stdout.text).toBe('hi\n');
109
+ });
110
+ test('honors per-call overrides for stdout, cwd, env, stdin, fs, and exit', async () => {
111
+ const defaultStdout = createTestOutputStream();
112
+ const defaultFs = stubGokeFs({ readFile: async () => 'default' });
113
+ const cli = gokeTestable('mycli', {
114
+ cwd: '/default',
115
+ env: { DEFAULT: '1' },
116
+ stdin: 'default-stdin',
117
+ stdout: defaultStdout,
118
+ fs: defaultFs,
119
+ });
120
+ const overrideStdout = createTestOutputStream();
121
+ const overrideStderr = createTestOutputStream();
122
+ const overrideFs = stubGokeFs({ readFile: async () => 'override' });
123
+ let receivedExitCode;
124
+ const ctx = cli.createExecutionContext({
125
+ cwd: '/tenant',
126
+ env: { TOKEN: 'xyz' },
127
+ stdin: 'tenant-stdin',
128
+ stdout: overrideStdout,
129
+ stderr: overrideStderr,
130
+ fs: overrideFs,
131
+ exit: (code) => {
132
+ receivedExitCode = code;
133
+ },
134
+ });
135
+ expect(ctx.process.cwd).toBe('/tenant');
136
+ expect(ctx.process.env.TOKEN).toBe('xyz');
137
+ expect(ctx.process.env.DEFAULT).toBeUndefined();
138
+ expect(ctx.process.stdin).toBe('tenant-stdin');
139
+ expect(ctx.process.stdout).toBe(overrideStdout);
140
+ expect(ctx.process.stderr).toBe(overrideStderr);
141
+ expect(ctx.fs).toBe(overrideFs);
142
+ expect(await ctx.fs.readFile('unused')).toBe('override');
143
+ // The cli's own stdout must NOT receive writes made through the
144
+ // override. This is what makes per-request capturing safe.
145
+ ctx.console.log('per-tenant');
146
+ expect(defaultStdout.text).toBe('');
147
+ expect(overrideStdout.text).toBe('per-tenant\n');
148
+ // Custom exit callback runs, then the wrapper throws GokeProcessExit
149
+ // so the action's code path stops at the exit site.
150
+ const { GokeProcessExit } = await import('../goke.js');
151
+ expect(() => ctx.process.exit(7)).toThrow(GokeProcessExit);
152
+ expect(receivedExitCode).toBe(7);
153
+ });
154
+ });
65
155
  describe('createJustBashCommand', () => {
66
156
  test('runs multi-word goke subcommands through one just-bash command', async () => {
67
157
  const cli = gokeTestable('parent');
@@ -222,4 +312,23 @@ describe('createJustBashCommand', () => {
222
312
  exitCode: 7,
223
313
  });
224
314
  });
315
+ test('truncates captured output to just-bash maxOutputSize and appends a notice', async () => {
316
+ const { Bash } = await import('just-bash');
317
+ const cli = gokeTestable('parent');
318
+ cli
319
+ .command('spam-stderr', 'Write too much stderr')
320
+ .action((options, { console }) => {
321
+ console.error('x'.repeat(60));
322
+ console.error('y'.repeat(60));
323
+ });
324
+ const bash = new Bash({
325
+ executionLimits: { maxOutputSize: 80 },
326
+ customCommands: [await cli.createJustBashCommand()],
327
+ });
328
+ const result = await bash.exec('parent spam-stderr');
329
+ expect(result.exitCode).toBe(0);
330
+ expect(result.stdout).toBe('');
331
+ expect(result.stderr.length).toBeLessThanOrEqual(80);
332
+ expect(result.stderr).toBe(`${'x'.repeat(60)}\n[output truncated]\n`);
333
+ });
225
334
  });
@@ -397,6 +397,43 @@ describe('type-level: README TypeScript examples', () => {
397
397
  expectTypeOf(process.cwd).toEqualTypeOf();
398
398
  });
399
399
  });
400
+ test('use() with sub-CLI preserves parent middleware typing', () => {
401
+ const sub = goke();
402
+ sub
403
+ .command('deploy', 'Deploy the app')
404
+ .option('--force', z.boolean())
405
+ .action((options) => {
406
+ // Sub-CLI command's action sees its own options
407
+ expectTypeOf(options.force).toEqualTypeOf();
408
+ });
409
+ goke('test')
410
+ .option('--verbose', z.boolean().default(false).describe('Verbose'))
411
+ .use(sub)
412
+ .use((options) => {
413
+ // Parent middleware still sees parent's accumulated options after .use(subCli)
414
+ expectTypeOf(options.verbose).toEqualTypeOf();
415
+ })
416
+ .command('build', 'Build')
417
+ .option('--target <target>', z.string())
418
+ .action((options) => {
419
+ // Parent's inline command still sees global options
420
+ expectTypeOf(options.verbose).toEqualTypeOf();
421
+ expectTypeOf(options.target).toEqualTypeOf();
422
+ });
423
+ });
424
+ test('use() with sub-CLI does not leak sub-CLI types to parent', () => {
425
+ const sub = goke()
426
+ .option('--sub-only <val>', z.string());
427
+ sub.command('sub-cmd', 'Sub command').action(() => { });
428
+ goke('test')
429
+ .option('--parent-only <val>', z.number())
430
+ .use(sub)
431
+ .use((options) => {
432
+ expectTypeOf(options.parentOnly).toEqualTypeOf();
433
+ // @ts-expect-error subOnly is not declared on the parent
434
+ options.subOnly;
435
+ });
436
+ });
400
437
  test('README global options and middleware example stays typed end-to-end', () => {
401
438
  // `z.boolean().default(false)` and `z.string().default(...)` are
402
439
  // effectively required at runtime: the default applies when the flag is
package/dist/goke.d.ts CHANGED
@@ -330,6 +330,44 @@ interface GokeExecutionContext {
330
330
  fs: GokeFs;
331
331
  process: GokeProcess;
332
332
  }
333
+ /**
334
+ * Per-request overrides accepted by `Goke#createExecutionContext()`.
335
+ *
336
+ * Any field left `undefined` falls back to the `Goke` instance's
337
+ * defaults (set via `GokeOptions`), which themselves fall back to the
338
+ * real Node.js `process.*`. Use this to construct an execution context
339
+ * with tenant-specific values — e.g. a per-user `cwd`/`env`/`fs` pair
340
+ * for a remote MCP server, or capture streams for stdout/stderr.
341
+ *
342
+ * Passing a custom `exit` replaces the default behavior of calling
343
+ * `this.exit(code)`. The returned `process.exit` still throws
344
+ * `GokeProcessExit` after the user-provided `exit` returns, so callers
345
+ * can catch the exit without the outer code needing to know about it.
346
+ */
347
+ interface GokeExecutionContextOverride {
348
+ /** Override the argv array exposed as `process.argv`. Defaults to the cli's raw parsed argv. */
349
+ argv?: string[];
350
+ /** Override the working directory exposed as `process.cwd`. */
351
+ cwd?: string;
352
+ /** Override the environment exposed as `process.env`. */
353
+ env?: Record<string, string | undefined>;
354
+ /** Override the filesystem exposed as `ctx.fs`. */
355
+ fs?: GokeFs;
356
+ /** Override the stdin content exposed as `process.stdin`. */
357
+ stdin?: string;
358
+ /** Override the stdout stream used by `ctx.console.log` and exposed as `process.stdout`. */
359
+ stdout?: GokeOutputStream;
360
+ /** Override the stderr stream used by `ctx.console.error` and exposed as `process.stderr`. */
361
+ stderr?: GokeOutputStream;
362
+ /**
363
+ * Override the exit function called by `process.exit(code)`.
364
+ *
365
+ * The returned context still throws `GokeProcessExit` after this
366
+ * callback returns, so callers that want to capture the exit
367
+ * without killing the host process can pass `() => {}`.
368
+ */
369
+ exit?: (code: number) => void;
370
+ }
333
371
  declare class GokeProcessExit extends Error {
334
372
  code: number;
335
373
  constructor(code: number);
@@ -424,7 +462,43 @@ declare class Goke<Opts = {}> extends EventEmitter {
424
462
  */
425
463
  constructor(name?: string, options?: GokeOptions);
426
464
  clone(options?: GokeOptions): Goke<Opts>;
427
- private createExecutionContext;
465
+ /**
466
+ * Build a `GokeExecutionContext` using this cli's defaults, optionally
467
+ * overridden per-request.
468
+ *
469
+ * `runMatchedCommand()` calls this internally with no arguments to
470
+ * construct the context passed to command actions and middlewares.
471
+ *
472
+ * The method is also public so adapters (MCP, remote RPC, batch
473
+ * runners, etc.) can build a context for a single invocation with
474
+ * tenant-specific values — e.g. capture streams for stdout/stderr,
475
+ * a per-user `cwd`/`env`/`fs`, or an `exit` that throws instead of
476
+ * killing the host process. See {@link GokeExecutionContextOverride}.
477
+ *
478
+ * @example
479
+ * ```ts
480
+ * // Build an execution context that captures output into strings and
481
+ * // treats `ctx.process.exit(code)` as a `GokeProcessExit` throw
482
+ * // instead of terminating the host process.
483
+ * const stdout = createTextCaptureStream()
484
+ * const stderr = createTextCaptureStream()
485
+ * const ctx = cli.createExecutionContext({
486
+ * stdout,
487
+ * stderr,
488
+ * exit: () => {},
489
+ * })
490
+ * try {
491
+ * await action(...args, options, ctx)
492
+ * } catch (err) {
493
+ * if (err instanceof GokeProcessExit) {
494
+ * // handle exit code
495
+ * } else {
496
+ * throw err
497
+ * }
498
+ * }
499
+ * ```
500
+ */
501
+ createExecutionContext(override?: GokeExecutionContextOverride): GokeExecutionContext;
428
502
  createJustBashCommand(options?: {
429
503
  name?: string;
430
504
  }): Promise<import("./just-bash.js").JustBashCommand>;
@@ -479,7 +553,30 @@ declare class Goke<Opts = {}> extends EventEmitter {
479
553
  * }
480
554
  * })
481
555
  * ```
556
+ *
557
+ * Alternatively, pass another `Goke` instance to compose commands from
558
+ * separate files. All commands defined on the sub-CLI are merged into
559
+ * this CLI. Middlewares and global options from the sub-CLI are NOT
560
+ * copied; only commands are composed.
561
+ *
562
+ * @example
563
+ * ```ts
564
+ * // selfhost.ts
565
+ * export const selfhostCli = goke()
566
+ * selfhostCli
567
+ * .command('selfhost', 'Set up on your own workspace')
568
+ * .option('-t, --token [token]', 'Admin token')
569
+ * .action((options) => { ... })
570
+ *
571
+ * // main.ts
572
+ * import { selfhostCli } from './selfhost.js'
573
+ * goke('mycli')
574
+ * .use(selfhostCli)
575
+ * .help()
576
+ * .parse(process.argv)
577
+ * ```
482
578
  */
579
+ use(subCli: Goke<any>): this;
483
580
  use(callback: (options: Opts & DoubleDashOptions, context: GokeExecutionContext) => void | Promise<void>): this;
484
581
  /**
485
582
  * Show help message when `-h, --help` flags appear.
@@ -537,7 +634,7 @@ declare class Goke<Opts = {}> extends EventEmitter {
537
634
  private mri;
538
635
  runMatchedCommand(): any;
539
636
  }
540
- export type { GokeOutputStream, GokeConsole, GokeOptions, GokeProcess, GokeExecutionContext, GokeFs };
637
+ export type { GokeOutputStream, GokeConsole, GokeOptions, GokeProcess, GokeExecutionContext, GokeExecutionContextOverride, GokeFs };
541
638
  export { createConsole, Command, GokeProcessExit, openInBrowser };
542
639
  export default Goke;
543
640
  //# sourceMappingURL=goke.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"goke.d.ts","sourceRoot":"","sources":["../src/goke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"goke.d.ts","sourceRoot":"","sources":["../src/goke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAmB,aAAa,EAAW,MAAM,UAAU,CAAA;AAmNhF,cAAM,MAAM;IAwBD,OAAO,EAAE,MAAM;IAvBxB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;;;;OAKG;gBAEM,OAAO,EAAE,MAAM,EACtB,mBAAmB,CAAC,EAAE,MAAM,GAAG,oBAAoB;IA0CrD,KAAK;CAGN;AAMD;;;GAGG;AACH,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAC7B,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC7B,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GACjC,CAAC,CAAA;AAEP;;;;;GAKG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAErC,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAClE,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAClE,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,GACtD,MAAM,CAAA;AAER;;GAEG;AACH,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IACpC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,GAAG,KAAK,GACxC,IAAI,CAAA;AAEN;;;;;GAKG;AACH,KAAK,gBAAgB,CAAC,CAAC,IACrB,CAAC,SAAS;IAAE,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,OAAO,CAAA;AAEpG;;;;;GAKG;AACH,KAAK,iBAAiB,CAAC,CAAC,IACtB,CAAC,SAAS;IAAE,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,OAAO,CAAA;AAErG;;;;;;;;;;;;;GAaG;AACH,KAAK,gBAAgB,CAAC,CAAC,IACrB,OAAO,SAAS,gBAAgB,CAAC,CAAC,CAAC,GAC/B,KAAK,GACL,SAAS,SAAS,gBAAgB,CAAC,CAAC,CAAC,GACnC,SAAS,SAAS,iBAAiB,CAAC,CAAC,CAAC,GACpC,KAAK,GACL,IAAI,GACN,KAAK,CAAA;AAEb;;;;;;;;GAQG;AACH,KAAK,WAAW,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,IAC7C,gBAAgB,CAAC,OAAO,CAAC,SAAS,IAAI,GAClC,gBAAgB,CAAC,MAAM,CAAC,SAAS,IAAI,GACnC;KAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;CAAE,GAChE;KAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC;CAAE,GACnE;KAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;CAAE,CAAA;AAEtE;;;;;;;;;;;GAWG;AACH,KAAK,kBAAkB,CAAC,OAAO,SAAS,MAAM,IAC5C,OAAO,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,GAAG,MAAM,GAC/C,OAAO,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,GAAG,MAAM,GAC/C,OAAO,GAAG,SAAS,CAAA;AAErB;;;GAGG;AACH,KAAK,kBAAkB,CAAC,OAAO,SAAS,MAAM,IAC5C,OAAO,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,GAClC;KAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;CAAE,GAClE;KAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC;CAAE,CAAA;AAEzE;;;;GAIG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,SAAS,MAAM,EAAE,GAAG,EAAE,IACpE,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACnC,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAClC,CAAC,SAAS,EAAE,GACV,GAAG,GACH,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;AAEnB;;;;;;;;;GASG;AACH,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,IAClC,CAAC,SAAS,OAAO,MAAM,GAAG,GAAG,MAAM,EAAE,GACrC,CAAC,SAAS,OAAO,MAAM,GAAG,GAAG,MAAM,EAAE,GACrC,CAAC,SAAS,IAAI,MAAM,GAAG,GAAG,MAAM,GAChC,CAAC,SAAS,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG,SAAS,GAC5C,KAAK,CAAA;AAEP;;;GAGG;AACH,KAAK,kBAAkB,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IACjD,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,SAAS,MAAM,EAAE,CAAC,GAC1E,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpC,kBAAkB,CAAC,IAAI,CAAC,GACxB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,GACrD,EAAE,CAAA;AAER;;;;;;;;GAQG;AACH,KAAK,qBAAqB,CAAC,OAAO,SAAS,MAAM,IAC/C,kBAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;AAE3C;;;;;GAKG;AACH,KAAK,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAE3C;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,CAAC,OAAO,SAAS,MAAM,EAAE,IAAI,IAC1C;IACE,GAAG,qBAAqB,CAAC,OAAO,CAAC;IACjC,IAAI,GAAG,iBAAiB;IACxB,oBAAoB;CACrB,CAAA;AAEH,UAAU,UAAU;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED,UAAU,aAAa;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,WAAW,EAAE,CAAA;AAErE,KAAK,cAAc,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;AAExD,cAAM,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE;IAe7C,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,aAAa;IACrB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;IAjBvB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,MAAM,EAAE,CAAA;IAEpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,EAAE,CAAA;IAClB,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;gBAGR,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,YAAK,EAC1B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;IASvB,KAAK,CAAC,IAAI,EAAE,MAAM;IAKlB,mBAAmB;IAKnB,wBAAwB;IAKxB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,SAAkB;IAMtD,OAAO,CAAC,OAAO,EAAE,cAAc;IAK/B;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CACJ,aAAa,SAAS,MAAM,EAC5B,CAAC,SAAS,oBAAoB,EAE9B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,aAAa,SAAS,MAAM,EACjC,OAAO,EAAE,aAAa,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAO7D,KAAK,CAAC,IAAI,EAAE,MAAM;IAKlB,MAAM;IAKN;;;;;;;;;;;;;;OAcG;IACH,MAAM,CACJ,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC3E,IAAI;IAKP,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAuBrE,IAAI,gBAAgB,YAEnB;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM;IAOtB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAwLlB,UAAU;IAIV,aAAa;IAQb,iBAAiB;IAUjB;;;;OAIG;IACH,mBAAmB;IAkBnB;;OAEG;IACH,gBAAgB;CAwBjB;AAED,cAAM,aAAc,SAAQ,OAAO;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;CAG3B;AAsBD;;;GAGG;AACH,UAAU,gBAAgB;IACxB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED;;;;GAIG;AACH,UAAU,WAAW;IACnB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC7B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAC/B;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,gBAAgB,CAAA;IACxB,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAA;CACjC;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE,WAAW,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,WAAW,CAAA;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,UAAU,4BAA4B;IACpC,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACxC,mDAAmD;IACnD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4FAA4F;IAC5F,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAED,cAAM,eAAgB,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAA;gBAEA,IAAI,EAAE,MAAM;CAKzB;AAED;;GAEG;AACH,UAAU,WAAW;IACnB,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACxC,+EAA+E;IAC/E,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uDAAuD;IACvD,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,uDAAuD;IACvD,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,gHAAgH;IAChH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAED;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAetF;AAwBD,UAAU,UAAU;IAClB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,OAAO,EAAE;QACP,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KACjB,CAAA;CACF;AAED,cAAM,IAAI,CAAC,IAAI,GAAG,EAAE,CAAE,SAAQ,YAAY;;IACxC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IAC7B,6FAA6F;IAC7F,WAAW,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC,CAAA;IACrG,aAAa,EAAE,aAAa,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACxB;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAE9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,sEAAsE;IACtE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,gEAAgE;IAChE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACjD,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAIrC;;;OAGG;gBACS,IAAI,SAAK,EAAE,OAAO,CAAC,EAAE,WAAW;IAsB5C,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IA+B3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,sBAAsB,CAAC,QAAQ,CAAC,EAAE,4BAA4B,GAAG,oBAAoB;IA2B/E,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAIvD;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM;IAKlB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,SAAS,MAAM,EACnC,OAAO,EAAE,cAAc,EACvB,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;IAYhC;;;;;;;;;;;;OAYG;IACH,MAAM,CACJ,OAAO,SAAS,MAAM,EACtB,CAAC,SAAS,oBAAoB,EAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,OAAO,SAAS,MAAM,EAC3B,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAO3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACH,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;IAC5B,GAAG,CACD,QAAQ,EAAE,CACR,OAAO,EAAE,IAAI,GAAG,iBAAiB,EACjC,OAAO,EAAE,oBAAoB,KAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACxB,IAAI;IAgBP;;;OAGG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY;IAO5B;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,SAAkB;IAMtD;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,cAAc;IAK/B;;;;OAIG;IACH,QAAQ,IAAI,MAAM;IAOlB;;;;OAIG;IACH,UAAU;IAIV;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,YAAY,UAAQ;IAwBrF;;;OAGG;IACH,aAAa;IAIb,OAAO,CAAC,aAAa;IAgBrB,mBAAmB;IAKnB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,KAAK,CACH,IAAI,WAAoB,EACxB;IACE,oDAAoD;IACpD,GAAU,GACX;;KAAK,GACL,UAAU;IA2Ib,OAAO,CAAC,GAAG;IAwJX,iBAAiB;CA0FlB;AAID,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAA;AACnI,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,CAAA;AACjE,eAAe,IAAI,CAAA"}
package/dist/goke.js CHANGED
@@ -729,19 +729,63 @@ class Goke extends EventEmitter {
729
729
  }
730
730
  return cloned;
731
731
  }
732
- createExecutionContext(argv = this.rawArgs) {
732
+ /**
733
+ * Build a `GokeExecutionContext` using this cli's defaults, optionally
734
+ * overridden per-request.
735
+ *
736
+ * `runMatchedCommand()` calls this internally with no arguments to
737
+ * construct the context passed to command actions and middlewares.
738
+ *
739
+ * The method is also public so adapters (MCP, remote RPC, batch
740
+ * runners, etc.) can build a context for a single invocation with
741
+ * tenant-specific values — e.g. capture streams for stdout/stderr,
742
+ * a per-user `cwd`/`env`/`fs`, or an `exit` that throws instead of
743
+ * killing the host process. See {@link GokeExecutionContextOverride}.
744
+ *
745
+ * @example
746
+ * ```ts
747
+ * // Build an execution context that captures output into strings and
748
+ * // treats `ctx.process.exit(code)` as a `GokeProcessExit` throw
749
+ * // instead of terminating the host process.
750
+ * const stdout = createTextCaptureStream()
751
+ * const stderr = createTextCaptureStream()
752
+ * const ctx = cli.createExecutionContext({
753
+ * stdout,
754
+ * stderr,
755
+ * exit: () => {},
756
+ * })
757
+ * try {
758
+ * await action(...args, options, ctx)
759
+ * } catch (err) {
760
+ * if (err instanceof GokeProcessExit) {
761
+ * // handle exit code
762
+ * } else {
763
+ * throw err
764
+ * }
765
+ * }
766
+ * ```
767
+ */
768
+ createExecutionContext(override) {
769
+ const stdout = override?.stdout ?? this.stdout;
770
+ const stderr = override?.stderr ?? this.stderr;
771
+ // Reuse the cached console when streams aren't overridden; otherwise
772
+ // build a new one so ctx.console.log writes to the overridden streams.
773
+ const contextConsole = (override?.stdout !== undefined || override?.stderr !== undefined)
774
+ ? createConsole(stdout, stderr)
775
+ : this.console;
776
+ const exitFn = override?.exit ?? this.exit;
733
777
  return {
734
- console: this.console,
735
- fs: this.fs,
778
+ console: contextConsole,
779
+ fs: override?.fs ?? this.fs,
736
780
  process: {
737
- argv,
738
- cwd: this.cwd ?? process.cwd(),
739
- env: this.env ?? process.env,
740
- stdin: this.stdin ?? '',
741
- stdout: this.stdout,
742
- stderr: this.stderr,
781
+ argv: override?.argv ?? this.rawArgs,
782
+ cwd: override?.cwd ?? this.cwd ?? process.cwd(),
783
+ env: override?.env ?? this.env ?? process.env,
784
+ stdin: override?.stdin ?? this.stdin ?? '',
785
+ stdout,
786
+ stderr,
743
787
  exit: (code) => {
744
- this.exit(code);
788
+ exitFn(code);
745
789
  throw new GokeProcessExit(code);
746
790
  },
747
791
  },
@@ -778,30 +822,14 @@ class Goke extends EventEmitter {
778
822
  this.globalCommand.options.push(option);
779
823
  return this;
780
824
  }
781
- /**
782
- * Register a middleware function that runs before the matched command action.
783
- *
784
- * Middleware runs in registration order, after option parsing and validation,
785
- * but before the command's `.action()` callback. Useful for reacting to global
786
- * options (e.g. setting up logging, initializing state).
787
- *
788
- * The callback receives the parsed options object, typed according to all
789
- * `.option()` calls that precede this `.use()` in the chain, plus an injected
790
- * execution context with `{ console, process }` for portable output and exits.
791
- *
792
- * @example
793
- * ```ts
794
- * cli
795
- * .option('--verbose', z.boolean().default(false).describe('Verbose'))
796
- * .use((options, { console }) => {
797
- * if (options.verbose) {
798
- * console.log('verbose mode enabled')
799
- * }
800
- * })
801
- * ```
802
- */
803
- use(callback) {
804
- this.middlewares.push({ action: callback });
825
+ use(callbackOrCli) {
826
+ if (callbackOrCli instanceof Goke) {
827
+ for (const command of callbackOrCli.commands) {
828
+ this.commands.push(cloneCommandInto(command, this));
829
+ }
830
+ return this;
831
+ }
832
+ this.middlewares.push({ action: callbackOrCli });
805
833
  return this;
806
834
  }
807
835
  /**
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ declare const goke: (name?: string, options?: GokeOptions) => Goke<{}>;
9
9
  export default goke;
10
10
  export { goke, Goke, Command };
11
11
  export { createConsole, GokeProcessExit, openInBrowser } from "./goke.js";
12
- export type { GokeOutputStream, GokeConsole, GokeExecutionContext, GokeFs, GokeOptions, GokeProcess } from "./goke.js";
12
+ export type { GokeOutputStream, GokeConsole, GokeExecutionContext, GokeExecutionContextOverride, GokeFs, GokeOptions, GokeProcess } from "./goke.js";
13
13
  export type { StandardTypedV1, StandardJSONSchemaV1, JsonSchema } from "./coerce.js";
14
14
  export { GokeError, coerceBySchema, extractJsonSchema, wrapJsonSchema, isStandardSchema, extractSchemaMetadata } from "./coerce.js";
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC;;;GAGG;AACH,QAAA,MAAM,IAAI,GAAI,aAAS,EAAE,UAAU,WAAW,aAA4B,CAAA;AAE1E,eAAe,IAAI,CAAA;AACnB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACtH,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC;;;GAGG;AACH,QAAA,MAAM,IAAI,GAAI,aAAS,EAAE,UAAU,WAAW,aAA4B,CAAA;AAE1E,eAAe,IAAI,CAAA;AACnB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACpJ,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA"}
@@ -17,7 +17,7 @@ interface JustBashCommand {
17
17
  trusted: true;
18
18
  execute(args: string[], context?: JustBashExecutionContext): Promise<JustBashExecResult>;
19
19
  }
20
- type JustBashExecutionContext = Pick<CommandContext, 'cwd' | 'env' | 'fs' | 'stdin'>;
20
+ type JustBashExecutionContext = Pick<CommandContext, 'cwd' | 'env' | 'fs' | 'stdin' | 'limits'>;
21
21
  export declare function createJustBashCommand(cli: Goke<any>, options?: {
22
22
  name?: string;
23
23
  }): JustBashCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"just-bash.d.ts","sourceRoot":"","sources":["../src/just-bash.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,WAAW,CAAA;AAC5D,OAAO,IAAyB,MAAM,WAAW,CAAA;AAIjD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,IAAI,CAAA;IACb,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACzF;AAED,KAAK,wBAAwB,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,CAAA;AA4LpF,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EACd,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,eAAe,CAqDjB;AAED,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"just-bash.d.ts","sourceRoot":"","sources":["../src/just-bash.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,WAAW,CAAA;AAC5D,OAAO,IAAyB,MAAM,WAAW,CAAA;AAIjD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,IAAI,CAAA;IACb,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACzF;AAED,KAAK,wBAAwB,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA;AAqQ/F,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EACd,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1B,eAAe,CAsDjB;AAED,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}