cli-forge 0.12.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.eslintrc.json CHANGED
@@ -3,6 +3,7 @@
3
3
  "ignorePatterns": [
4
4
  "!**/*",
5
5
  "node_modules",
6
+ "dist",
6
7
  "**/vite.config.*.timestamp*",
7
8
  "**/vitest.config.*.timestamp*"
8
9
  ],
@@ -1,5 +1,5 @@
1
1
  import { ArgvParser, EnvOptionConfig, OptionConfig, ParsedArgs, type ConfigurationFiles } from '@cli-forge/parser';
2
- import { CLI, CLICommandOptions, Command, ErrorHandler } from './public-api';
2
+ import { CLI, CLICommandOptions, Command, ErrorHandler, SDKCommand } from './public-api';
3
3
  /**
4
4
  * The base class for a CLI application. This class is used to define the structure of the CLI.
5
5
  *
@@ -75,15 +75,15 @@ export declare class InternalCLI<TArgs extends ParsedArgs = ParsedArgs, THandler
75
75
  */
76
76
  constructor(name: string, rootCommandConfiguration?: CLICommandOptions<TArgs, any, THandlerReturn, TChildren>);
77
77
  withRootCommandConfiguration<TRootCommandArgs extends TArgs>(configuration: CLICommandOptions<TArgs, TRootCommandArgs>): InternalCLI<TArgs, THandlerReturn, TChildren, TParent>;
78
- command<TCommandArgs extends TArgs>(cmd: Command<TArgs, TCommandArgs>): CLI<TArgs, THandlerReturn, TChildren & (typeof cmd extends Command<TArgs, infer TCmdArgs, infer TCmdName> ? {
79
- [key in TCmdName]: CLI<TCmdArgs, void, {}, CLI<TArgs, THandlerReturn, TChildren, TParent>>;
80
- } : {}), TParent>;
78
+ command<TCommandArgs extends TArgs, TCmdName extends string>(cmd: Command<TArgs, TCommandArgs, TCmdName>): CLI<TArgs, THandlerReturn, TChildren & {
79
+ [key in TCmdName]: CLI<TCommandArgs, void, {}, CLI<TArgs, THandlerReturn, TChildren, TParent>>;
80
+ }, TParent>;
81
81
  command<TCommandArgs extends TArgs, TChildHandlerReturn = void, TCommandName extends string = string>(key: TCommandName, options: CLICommandOptions<TArgs, TCommandArgs, TChildHandlerReturn>): CLI<TArgs, THandlerReturn, TChildren & {
82
82
  [key in TCommandName]: CLI<TCommandArgs, TChildHandlerReturn, {}, CLI<TArgs, THandlerReturn, TChildren, TParent>>;
83
83
  }, TParent>;
84
84
  commands(...a0: Command[] | Command[][]): any;
85
- option<TOption extends string, const TOptionConfig extends OptionConfig<any, any, any, any>>(name: TOption, config: TOptionConfig): any;
86
- positional<TOption extends string, const TOptionConfig extends OptionConfig<any, any, any, any>>(name: TOption, config: TOptionConfig): any;
85
+ option<TOption extends string, const TOptionConfig extends OptionConfig<any, any, any>>(name: TOption, config: TOptionConfig): any;
86
+ positional<TOption extends string, const TOptionConfig extends OptionConfig<any, any, any>>(name: TOption, config: TOptionConfig): any;
87
87
  conflicts(...args: [string, string, ...string[]]): CLI<TArgs, THandlerReturn, TChildren, TParent>;
88
88
  implies(option: string, ...impliedOptions: string[]): CLI<TArgs, THandlerReturn, TChildren, TParent>;
89
89
  env(a0?: string | EnvOptionConfig | undefined): CLI<TArgs, THandlerReturn, TChildren, TParent>;
@@ -109,11 +109,11 @@ export declare class InternalCLI<TArgs extends ParsedArgs = ParsedArgs, THandler
109
109
  runCommand<T extends ParsedArgs>(args: T, originalArgV: string[]): Promise<void>;
110
110
  getChildren(): TChildren;
111
111
  getParent(): TParent;
112
- getBuilder<T extends ParsedArgs = {
113
- unmatched: string[];
114
- '--'?: string[];
115
- }>(_?: CLI<T, any, any> | undefined): ((parser: CLI<T, any, any>) => CLI<TArgs, THandlerReturn, TChildren>) | undefined;
112
+ getBuilder(): (<TInit extends ParsedArgs, TInitHandlerReturn, TInitChildren, TInitParent>(parser: CLI<TInit, TInitHandlerReturn, TInitChildren, TInitParent>) => CLI<TInit & TArgs, TInitHandlerReturn, TInitChildren & TChildren, TInitParent>) | undefined;
116
113
  getHandler(): ((args: Omit<TArgs, keyof ParsedArgs>) => THandlerReturn) | undefined;
114
+ sdk(): SDKCommand<TArgs, THandlerReturn, TChildren>;
115
+ private buildSDKProxy;
116
+ private collectMiddlewareChain;
117
117
  enableInteractiveShell(): CLI<TArgs, THandlerReturn, TChildren, TParent>;
118
118
  private versionHandler;
119
119
  private withErrorHandlers;
@@ -323,10 +323,12 @@ class InternalCLI {
323
323
  getParent() {
324
324
  return this._parent;
325
325
  }
326
- getBuilder(
327
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- This is used to help TS infer T correctly
328
- _) {
329
- return this.configuration?.builder;
326
+ getBuilder() {
327
+ const builder = this.configuration?.builder;
328
+ if (!builder)
329
+ return undefined;
330
+ // Return a composable builder that preserves input types
331
+ return ((parser) => builder(parser));
330
332
  }
331
333
  getHandler() {
332
334
  const context = {
@@ -338,6 +340,101 @@ class InternalCLI {
338
340
  }
339
341
  return (args) => handler(args, context);
340
342
  }
343
+ sdk() {
344
+ return this.buildSDKProxy(this);
345
+ }
346
+ buildSDKProxy(targetCmd) {
347
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
348
+ const self = this;
349
+ const invoke = async (argsOrArgv) => {
350
+ // Clone the target command to avoid mutating the original
351
+ const cmd = targetCmd.clone();
352
+ const handler = cmd._configuration?.handler;
353
+ if (!handler) {
354
+ throw new Error(`Command '${cmd.name}' has no handler`);
355
+ }
356
+ let parsedArgs;
357
+ if (Array.isArray(argsOrArgv)) {
358
+ // String array: full pipeline (parse → validate → middleware)
359
+ // Run the builder first if present
360
+ if (cmd._configuration?.builder) {
361
+ cmd._configuration.builder(cmd);
362
+ }
363
+ parsedArgs = cmd.parser.parse(argsOrArgv);
364
+ }
365
+ else {
366
+ // Object args: skip validation, apply defaults, run middleware
367
+ // Run the builder first to register options and get defaults
368
+ if (cmd._configuration?.builder) {
369
+ cmd._configuration.builder(cmd);
370
+ }
371
+ // Build defaults from configured options
372
+ const defaults = {};
373
+ for (const [key, config] of Object.entries(cmd.parser.configuredOptions)) {
374
+ if (config.default !== undefined) {
375
+ defaults[key] = config.default;
376
+ }
377
+ }
378
+ parsedArgs = {
379
+ ...defaults,
380
+ ...argsOrArgv,
381
+ unmatched: [],
382
+ };
383
+ }
384
+ // Collect and run middleware from the command chain
385
+ const middlewares = self.collectMiddlewareChain(targetCmd);
386
+ for (const mw of middlewares) {
387
+ const middlewareResult = await mw(parsedArgs);
388
+ if (middlewareResult !== void 0 &&
389
+ typeof middlewareResult === 'object') {
390
+ parsedArgs = middlewareResult;
391
+ }
392
+ }
393
+ // Execute handler
394
+ const context = {
395
+ command: cmd,
396
+ };
397
+ const result = await handler(parsedArgs, context);
398
+ // Try to attach $args to the result (fails silently for primitives)
399
+ if (result !== null && typeof result === 'object') {
400
+ try {
401
+ result.$args = parsedArgs;
402
+ }
403
+ catch {
404
+ // Cannot attach to frozen objects or primitives, return as-is
405
+ }
406
+ }
407
+ return result;
408
+ };
409
+ // Ensure builder has run to register all subcommands
410
+ if (targetCmd._configuration?.builder) {
411
+ targetCmd._configuration.builder(targetCmd);
412
+ }
413
+ // Create proxy that is both callable and has child properties
414
+ return new Proxy(invoke, {
415
+ get(_, prop) {
416
+ // Handle special properties
417
+ if (prop === 'then' || prop === 'catch' || prop === 'finally') {
418
+ // Don't intercept Promise methods - this prevents issues with await
419
+ return undefined;
420
+ }
421
+ const child = targetCmd.registeredCommands[prop];
422
+ if (child) {
423
+ return self.buildSDKProxy(child);
424
+ }
425
+ return undefined;
426
+ },
427
+ });
428
+ }
429
+ collectMiddlewareChain(cmd) {
430
+ const chain = [];
431
+ let current = cmd;
432
+ while (current) {
433
+ chain.unshift(current);
434
+ current = current._parent;
435
+ }
436
+ return chain.flatMap((c) => c.registeredMiddleware);
437
+ }
341
438
  enableInteractiveShell() {
342
439
  if (this.requiresCommand === 'EXPLICIT') {
343
440
  throw new Error('Interactive shell is not supported for commands that require a command.');
@@ -1 +1 @@
1
- {"version":3,"file":"internal-cli.js","sourceRoot":"","sources":["../../src/lib/internal-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-cli.js","sourceRoot":"","sources":["../../src/lib/internal-cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ConfigurationFiles, OptionConfig, OptionConfigToType, ParsedArgs, EnvOptionConfig, ObjectOptionConfig, StringOptionConfig, NumberOptionConfig, BooleanOptionConfig, ArrayOptionConfig, ResolveProperties, WithOptional, MakeUndefinedPropertiesOptional, WithAdditionalProperties } from '@cli-forge/parser';
1
+ import { type ConfigurationFiles, OptionConfig, OptionConfigToType, ParsedArgs, EnvOptionConfig, ObjectOptionConfig, StringOptionConfig, NumberOptionConfig, BooleanOptionConfig, ArrayOptionConfig, ResolveProperties, WithOptional, MakeUndefinedPropertiesOptional } from '@cli-forge/parser';
2
2
  import { InternalCLI } from './internal-cli';
3
3
  /**
4
4
  * Extracts the command name from a Command type.
@@ -43,16 +43,16 @@ export type CommandToChildEntry<T, TParentCLI = undefined> = {
43
43
  * ```
44
44
  */
45
45
  export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = void, TChildren = {}, TParent = undefined> {
46
- command<TCommandArgs extends TArgs>(cmd: Command<TArgs, TCommandArgs>): CLI<TArgs, THandlerReturn, TChildren & (typeof cmd extends Command<TArgs, infer TCommandArgs, infer TCmdName> ? {
46
+ command<TCommandArgs extends TArgs, TCmdName extends string>(cmd: Command<TArgs, TCommandArgs, TCmdName>): CLI<TArgs, THandlerReturn, TChildren & {
47
47
  [key in TCmdName]: CLI<TCommandArgs, void, {}, CLI<TArgs, THandlerReturn, TChildren, TParent>>;
48
- } : {}), TParent>;
48
+ }, TParent>;
49
49
  /**
50
50
  * Registers a new command with the CLI.
51
51
  * @param key What should the new command be called?
52
52
  * @param options Settings for the new command. See {@link CLICommandOptions}.
53
53
  * @returns Updated CLI instance with the new command registered.
54
54
  */
55
- command<TCommandArgs extends TArgs, TChildHandlerReturn, TKey extends string, TChildChildren = {}>(key: TKey, options: CLICommandOptions<TArgs, TCommandArgs, TChildHandlerReturn, any, CLI<TArgs, THandlerReturn, TChildren, TParent>, TChildChildren>): CLI<TArgs, THandlerReturn, TChildren & {
55
+ command<TCommandArgs extends TArgs, TChildHandlerReturn, TKey extends string, TChildChildren = {}>(key: TKey, options: CLICommandOptions<TArgs, TCommandArgs, TChildHandlerReturn, TChildren, CLI<TArgs, THandlerReturn, TChildren, TParent>, TChildChildren>): CLI<TArgs, THandlerReturn, TChildren & {
56
56
  [key in TKey]: CLI<TCommandArgs, TChildHandlerReturn, TChildChildren, CLI<TArgs, THandlerReturn, TChildren, TParent>>;
57
57
  }, TParent>;
58
58
  /**
@@ -103,8 +103,8 @@ export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = voi
103
103
  */
104
104
  option<TOption extends string, TCoerce, const TProps extends Record<string, {
105
105
  type: string;
106
- }>, TAdditionalProps extends false | 'string' | 'number' | 'boolean' = false>(name: TOption, config: ObjectOptionConfig<TCoerce, TProps, TAdditionalProps>): CLI<TArgs & MakeUndefinedPropertiesOptional<{
107
- [key in TOption]: WithOptional<unknown extends TCoerce ? WithAdditionalProperties<ResolveProperties<TProps>, TAdditionalProps> : TCoerce, ObjectOptionConfig<TCoerce, TProps, TAdditionalProps>>;
106
+ }>>(name: TOption, config: ObjectOptionConfig<TCoerce, TProps>): CLI<TArgs & MakeUndefinedPropertiesOptional<{
107
+ [key in TOption]: WithOptional<unknown extends TCoerce ? ResolveProperties<TProps> : TCoerce, ObjectOptionConfig<TCoerce, TProps>>;
108
108
  }>, THandlerReturn, TChildren, TParent>;
109
109
  option<TOption extends string, const TConfig extends StringOptionConfig<any, any>>(name: TOption, config: TConfig): CLI<TArgs & MakeUndefinedPropertiesOptional<{
110
110
  [key in TOption]: OptionConfigToType<TConfig>;
@@ -118,7 +118,7 @@ export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = voi
118
118
  option<TOption extends string, const TConfig extends ArrayOptionConfig<any, any>>(name: TOption, config: TConfig): CLI<TArgs & MakeUndefinedPropertiesOptional<{
119
119
  [key in TOption]: OptionConfigToType<TConfig>;
120
120
  }>, THandlerReturn, TChildren, TParent>;
121
- option<TOption extends string, const TOptionConfig extends OptionConfig<any, any, any, any>>(name: TOption, config: TOptionConfig): CLI<TArgs & MakeUndefinedPropertiesOptional<{
121
+ option<TOption extends string, const TOptionConfig extends OptionConfig<any, any, any>>(name: TOption, config: TOptionConfig): CLI<TArgs & MakeUndefinedPropertiesOptional<{
122
122
  [key in TOption]: OptionConfigToType<TOptionConfig>;
123
123
  }>, THandlerReturn, TChildren, TParent>;
124
124
  /**
@@ -130,8 +130,8 @@ export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = voi
130
130
  */
131
131
  positional<TOption extends string, TCoerce, const TProps extends Record<string, {
132
132
  type: string;
133
- }>, TAdditionalProps extends false | 'string' | 'number' | 'boolean' = false>(name: TOption, config: ObjectOptionConfig<TCoerce, TProps, TAdditionalProps>): CLI<TArgs & MakeUndefinedPropertiesOptional<{
134
- [key in TOption]: WithOptional<unknown extends TCoerce ? WithAdditionalProperties<ResolveProperties<TProps>, TAdditionalProps> : TCoerce, ObjectOptionConfig<TCoerce, TProps, TAdditionalProps>>;
133
+ }>>(name: TOption, config: ObjectOptionConfig<TCoerce, TProps>): CLI<TArgs & MakeUndefinedPropertiesOptional<{
134
+ [key in TOption]: WithOptional<unknown extends TCoerce ? ResolveProperties<TProps> : TCoerce, ObjectOptionConfig<TCoerce, TProps>>;
135
135
  }>, THandlerReturn, TChildren, TParent>;
136
136
  positional<TOption extends string, const TConfig extends StringOptionConfig<any, any>>(name: TOption, config: TConfig): CLI<TArgs & MakeUndefinedPropertiesOptional<{
137
137
  [key in TOption]: OptionConfigToType<TConfig>;
@@ -145,7 +145,7 @@ export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = voi
145
145
  positional<TOption extends string, const TConfig extends ArrayOptionConfig<any, any>>(name: TOption, config: TConfig): CLI<TArgs & MakeUndefinedPropertiesOptional<{
146
146
  [key in TOption]: OptionConfigToType<TConfig>;
147
147
  }>, THandlerReturn, TChildren, TParent>;
148
- positional<TOption extends string, const TOptionConfig extends OptionConfig<any, any, any, any>>(name: TOption, config: TOptionConfig): CLI<TArgs & MakeUndefinedPropertiesOptional<{
148
+ positional<TOption extends string, const TOptionConfig extends OptionConfig<any, any, any>>(name: TOption, config: TOptionConfig): CLI<TArgs & MakeUndefinedPropertiesOptional<{
149
149
  [key in TOption]: OptionConfigToType<TOptionConfig>;
150
150
  }>, THandlerReturn, TChildren, TParent>;
151
151
  /**
@@ -236,7 +236,50 @@ export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = voi
236
236
  * ```
237
237
  */
238
238
  getParent(): TParent;
239
- getBuilder<T extends ParsedArgs = ParsedArgs>(initialCli?: CLI<T, any, any>): ((parser: CLI<T, any, any>) => CLI<TArgs, THandlerReturn, TChildren>) | undefined;
239
+ /**
240
+ * Returns a programmatic SDK for invoking this CLI and its subcommands.
241
+ * The SDK provides typed function calls instead of argv parsing.
242
+ *
243
+ * @example
244
+ * ```ts
245
+ * const myCLI = cli('my-app')
246
+ * .option('verbose', { type: 'boolean' })
247
+ * .command('build', {
248
+ * builder: (cmd) => cmd.option('watch', { type: 'boolean' }),
249
+ * handler: (args) => ({ success: true, files: ['a.js'] })
250
+ * });
251
+ *
252
+ * const sdk = myCLI.sdk();
253
+ *
254
+ * // Invoke root command (if it has a handler)
255
+ * await sdk({ verbose: true });
256
+ *
257
+ * // Invoke subcommand with typed args
258
+ * const result = await sdk.build({ watch: true });
259
+ * console.log(result.files); // ['a.js']
260
+ * console.log(result.$args.watch); // true
261
+ *
262
+ * // Use CLI-style args for -- support
263
+ * await sdk.build(['--watch', '--', 'extra-arg']);
264
+ * ```
265
+ *
266
+ * @returns An SDK object that is callable (if this command has a handler)
267
+ * and has properties for each subcommand.
268
+ */
269
+ sdk(): SDKCommand<TArgs, THandlerReturn, TChildren>;
270
+ /**
271
+ * Returns the builder function for this command as a composable builder.
272
+ * The returned function can be used with `chain` to compose multiple builders.
273
+ *
274
+ * @example
275
+ * ```ts
276
+ * const siblings = args.getParent().getChildren();
277
+ * const withBuildArgs = siblings.build.getBuilder()!;
278
+ * const withServeArgs = siblings.serve.getBuilder()!;
279
+ * return chain(args, withBuildArgs, withServeArgs);
280
+ * ```
281
+ */
282
+ getBuilder(): (<TInit extends ParsedArgs, TInitHandlerReturn, TInitChildren, TInitParent>(parser: CLI<TInit, TInitHandlerReturn, TInitChildren, TInitParent>) => CLI<TInit & TArgs, TInitHandlerReturn, TInitChildren & TChildren, TInitParent>) | undefined;
240
283
  getHandler(): ((args: Omit<TArgs, keyof ParsedArgs>) => THandlerReturn) | undefined;
241
284
  }
242
285
  export interface CLIHandlerContext<TChildren = {}, TParent = any> {
@@ -322,6 +365,44 @@ export type ErrorHandler = (e: unknown, actions: {
322
365
  }) => void;
323
366
  export type UnknownCLI = CLI<ParsedArgs, any, any, any>;
324
367
  export type MiddlewareFunction<TArgs extends ParsedArgs, TArgs2> = (args: TArgs) => TArgs2 | Promise<TArgs2>;
368
+ /**
369
+ * Result type that conditionally includes $args.
370
+ * Only attaches $args when result is an object type.
371
+ * Uses `Awaited<T>` to handle async handlers that return `Promise<U>`.
372
+ */
373
+ export type SDKResult<TArgs, THandlerReturn> = Awaited<THandlerReturn> extends object ? Awaited<THandlerReturn> & {
374
+ $args: TArgs;
375
+ } : Awaited<THandlerReturn>;
376
+ /**
377
+ * The callable signature for a command with a handler.
378
+ * Supports both object-style args (typed, skips validation) and
379
+ * string array args (CLI-style, full validation pipeline).
380
+ */
381
+ export type SDKInvokable<TArgs, THandlerReturn> = {
382
+ /**
383
+ * Invoke the command with typed object args.
384
+ * Skips validation (TypeScript handles it), applies defaults, runs middleware.
385
+ */
386
+ (args?: Partial<Omit<TArgs, 'unmatched' | '--'>>): Promise<SDKResult<TArgs, THandlerReturn>>;
387
+ /**
388
+ * Invoke the command with CLI-style string args.
389
+ * Runs full pipeline: parse → validate → middleware → handler.
390
+ * Use this when you need to pass `--` extra args.
391
+ */
392
+ (args: string[]): Promise<SDKResult<TArgs, THandlerReturn>>;
393
+ };
394
+ /**
395
+ * Recursively builds SDK type from TChildren.
396
+ * Each child command becomes a property on the SDK object.
397
+ */
398
+ export type SDKChildren<TChildren> = {
399
+ [K in keyof TChildren]: TChildren[K] extends CLI<infer A, infer R, infer C, infer _P> ? SDKCommand<A, R, C> : never;
400
+ };
401
+ /**
402
+ * A single SDK command - callable if it has a handler, with nested children as properties.
403
+ * Container commands (no handler) are not callable but still provide access to children.
404
+ */
405
+ export type SDKCommand<TArgs, THandlerReturn, TChildren> = SDKInvokable<TArgs, THandlerReturn> & SDKChildren<TChildren>;
325
406
  /**
326
407
  * Constructs a CLI instance. See {@link CLI} for more information.
327
408
  * @param name Name for the top level CLI
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../src/lib/public-api.ts"],"names":[],"mappings":";;AAs5BA,kBAsBC;AA15BD,iDAA6C;AA83B7C;;;;;GAKG;AACH,SAAgB,GAAG,CAOjB,IAAW,EACX,wBAOC;IAED,OAAO,IAAI,0BAAW,CAAC,IAAI,EAAE,wBAA+B,CAI3D,CAAC;AACJ,CAAC;AAED,kBAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../src/lib/public-api.ts"],"names":[],"mappings":";;AAy/BA,kBAsBC;AA9/BD,iDAA6C;AAk+B7C;;;;;GAKG;AACH,SAAgB,GAAG,CAOjB,IAAW,EACX,wBAOC;IAED,OAAO,IAAI,0BAAW,CAAC,IAAI,EAAE,wBAA+B,CAI3D,CAAC;AACJ,CAAC;AAED,kBAAe,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "cli-forge",
3
- "version": "0.12.0",
3
+ "version": "1.0.1",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0",
6
- "@cli-forge/parser": "0.12.0"
6
+ "@cli-forge/parser": "1.0.1"
7
7
  },
8
8
  "peerDependencies": {
9
9
  "markdown-factory": "^0.2.0",
@@ -23,6 +23,9 @@
23
23
  "optional": true
24
24
  }
25
25
  },
26
+ "devDependencies": {
27
+ "vite": "^5.4.0"
28
+ },
26
29
  "type": "commonjs",
27
30
  "main": "./dist/index.js",
28
31
  "typings": "./dist/index.d.ts",
@@ -39,7 +42,8 @@
39
42
  "exports": {
40
43
  ".": {
41
44
  "require": "./dist/index.js",
42
- "types": "./dist/index.d.ts"
45
+ "types": "./dist/index.d.ts",
46
+ "import": "./dist/index.js"
43
47
  },
44
48
  "./middleware": {
45
49
  "require": "./dist/middleware.js",
@@ -1,3 +1,4 @@
1
+ import { it, describe, expect } from 'vitest';
1
2
  import { InternalCLI } from './internal-cli';
2
3
  import { generateDocumentation } from './documentation';
3
4
  import cli from './public-api';
@@ -1,3 +1,4 @@
1
+ import { it, describe, expect, afterEach } from 'vitest';
1
2
  import { InternalCLI } from './internal-cli';
2
3
  import { cli } from './public-api';
3
4
 
@@ -77,11 +78,11 @@ describe('cliForge', () => {
77
78
  alias: ['$0'],
78
79
  builder: (argv) => argv,
79
80
  handler: makeHandler('bar'),
80
- }) as InternalCLI;
81
- await test.clone().forge(['f']);
82
- await test.clone().forge(['foo']);
83
- await test.clone().forge(['bar']);
84
- await test.clone().forge([]);
81
+ }) as Partial<InternalCLI>;
82
+ await test.clone?.().forge(['f']);
83
+ await test.clone?.().forge(['foo']);
84
+ await test.clone?.().forge(['bar']);
85
+ await test.clone?.().forge([]);
85
86
  expect(ran).toMatchInlineSnapshot(`
86
87
  {
87
88
  "bar": 2,