bob-core 1.3.13 → 2.0.0-beta.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/README.md +3 -3
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/package-BKSqoABj.cjs +1 -0
- package/dist/cjs/src/Cli.d.ts +17 -10
- package/dist/cjs/src/Command.d.ts +47 -34
- package/dist/cjs/src/CommandIO.d.ts +12 -0
- package/dist/cjs/src/CommandParser.d.ts +76 -44
- package/dist/cjs/src/CommandRegistry.d.ts +7 -6
- package/dist/cjs/src/CommandSignatureParser.d.ts +85 -0
- package/dist/cjs/src/CommandWithSignature.d.ts +37 -0
- package/dist/cjs/src/ExceptionHandler.d.ts +3 -0
- package/dist/cjs/src/Logger.d.ts +17 -0
- package/dist/cjs/src/commands/HelpCommand.d.ts +2 -4
- package/dist/cjs/src/contracts/CommandOption.d.ts +3 -4
- package/dist/cjs/src/contracts/LoggerContract.d.ts +14 -0
- package/dist/cjs/src/contracts/index.d.ts +1 -0
- package/dist/cjs/src/errors/BadCommandOption.d.ts +1 -1
- package/dist/cjs/src/errors/BadCommandParameter.d.ts +1 -1
- package/dist/cjs/src/errors/BobError.d.ts +2 -1
- package/dist/cjs/src/errors/CommandNotFoundError.d.ts +1 -1
- package/dist/cjs/src/errors/InvalidOption.d.ts +4 -4
- package/dist/cjs/src/errors/MissingRequiredArgumentValue.d.ts +3 -4
- package/dist/cjs/src/errors/MissingRequiredOptionValue.d.ts +6 -0
- package/dist/cjs/src/errors/MissingSignatureArgument.d.ts +4 -4
- package/dist/cjs/src/errors/MissingSignatureOption.d.ts +4 -4
- package/dist/cjs/src/errors/index.d.ts +6 -0
- package/dist/cjs/src/index.d.ts +7 -1
- package/dist/cjs/src/lib/optionHelpers.d.ts +5 -0
- package/dist/cjs/src/lib/types.d.ts +29 -0
- package/dist/cjs/src/lib/valueConverter.d.ts +10 -0
- package/dist/cjs/src/options/HelpOption.d.ts +4 -2
- package/dist/cjs/src/testFixtures.d.ts +11 -0
- package/dist/esm/index.js +817 -371
- package/dist/esm/package-Pf7NCMvE.js +31 -0
- package/dist/esm/src/Cli.d.ts +17 -10
- package/dist/esm/src/Command.d.ts +47 -34
- package/dist/esm/src/CommandIO.d.ts +12 -0
- package/dist/esm/src/CommandParser.d.ts +76 -44
- package/dist/esm/src/CommandRegistry.d.ts +7 -6
- package/dist/esm/src/CommandSignatureParser.d.ts +85 -0
- package/dist/esm/src/CommandWithSignature.d.ts +37 -0
- package/dist/esm/src/ExceptionHandler.d.ts +3 -0
- package/dist/esm/src/Logger.d.ts +17 -0
- package/dist/esm/src/commands/HelpCommand.d.ts +2 -4
- package/dist/esm/src/contracts/CommandOption.d.ts +3 -4
- package/dist/esm/src/contracts/LoggerContract.d.ts +14 -0
- package/dist/esm/src/contracts/index.d.ts +1 -0
- package/dist/esm/src/errors/BadCommandOption.d.ts +1 -1
- package/dist/esm/src/errors/BadCommandParameter.d.ts +1 -1
- package/dist/esm/src/errors/BobError.d.ts +2 -1
- package/dist/esm/src/errors/CommandNotFoundError.d.ts +1 -1
- package/dist/esm/src/errors/InvalidOption.d.ts +4 -4
- package/dist/esm/src/errors/MissingRequiredArgumentValue.d.ts +3 -4
- package/dist/esm/src/errors/MissingRequiredOptionValue.d.ts +6 -0
- package/dist/esm/src/errors/MissingSignatureArgument.d.ts +4 -4
- package/dist/esm/src/errors/MissingSignatureOption.d.ts +4 -4
- package/dist/esm/src/errors/index.d.ts +6 -0
- package/dist/esm/src/index.d.ts +7 -1
- package/dist/esm/src/lib/optionHelpers.d.ts +5 -0
- package/dist/esm/src/lib/types.d.ts +29 -0
- package/dist/esm/src/lib/valueConverter.d.ts +10 -0
- package/dist/esm/src/options/HelpOption.d.ts +4 -2
- package/dist/esm/src/testFixtures.d.ts +11 -0
- package/package.json +5 -1
- package/dist/cjs/package-CTfVL-rk.cjs +0 -1
- package/dist/esm/package-DFkXEfYf.js +0 -31
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type LogLevel = 'debug' | 'verbose' | 'info' | 'warn' | 'error' | 'silent';
|
|
2
|
+
export type LoggerOptions = {
|
|
3
|
+
level?: LogLevel;
|
|
4
|
+
};
|
|
5
|
+
export declare class Logger {
|
|
6
|
+
private level;
|
|
7
|
+
constructor(opts?: LoggerOptions);
|
|
8
|
+
private shouldLog;
|
|
9
|
+
setLevel(level: LogLevel): void;
|
|
10
|
+
getLevel(): LogLevel;
|
|
11
|
+
log(...args: any[]): void;
|
|
12
|
+
info(...args: any[]): void;
|
|
13
|
+
warn(...args: any[]): void;
|
|
14
|
+
error(...args: any[]): void;
|
|
15
|
+
debug(...args: any[]): void;
|
|
16
|
+
verbose(...args: any[]): void;
|
|
17
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Command } from '../Command.js';
|
|
2
1
|
import { CommandRegistry } from '../CommandRegistry.js';
|
|
2
|
+
import { Command } from '../Command.js';
|
|
3
3
|
export type HelpCommandOptions = {
|
|
4
4
|
commandRegistry: CommandRegistry;
|
|
5
5
|
cliName?: string;
|
|
@@ -7,8 +7,6 @@ export type HelpCommandOptions = {
|
|
|
7
7
|
};
|
|
8
8
|
export default class HelpCommand extends Command {
|
|
9
9
|
private opts;
|
|
10
|
-
signature: string;
|
|
11
|
-
description: string;
|
|
12
10
|
constructor(opts: HelpCommandOptions);
|
|
13
|
-
|
|
11
|
+
handle(): Promise<void>;
|
|
14
12
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { OptionDefinition } from '../lib/types.js';
|
|
2
|
+
import { Command } from '../Command.js';
|
|
3
|
+
export interface CommandOption<C extends Command> extends OptionDefinition {
|
|
2
4
|
option: string;
|
|
3
|
-
alias?: string[];
|
|
4
|
-
defaultValue: string | boolean | Array<string> | null;
|
|
5
|
-
description?: string;
|
|
6
5
|
handler(this: C): Promise<number | void>;
|
|
7
6
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'verbose';
|
|
2
|
+
/**
|
|
3
|
+
* Logger interface defining standard logging methods and level management
|
|
4
|
+
*/
|
|
5
|
+
export interface LoggerContract {
|
|
6
|
+
log(message: string, ...args: any[]): void;
|
|
7
|
+
info(message: string, ...args: any[]): void;
|
|
8
|
+
warn(message: string, ...args: any[]): void;
|
|
9
|
+
error(message: string, ...args: any[]): void;
|
|
10
|
+
debug(message: string, ...args: any[]): void;
|
|
11
|
+
verbose(message: string, ...args: any[]): void;
|
|
12
|
+
setLevel(level: LogLevel): void;
|
|
13
|
+
getLevel(): LogLevel;
|
|
14
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BobError } from './BobError.js';
|
|
2
|
-
import {
|
|
2
|
+
import { OptionsSchema } from '../lib/types.js';
|
|
3
3
|
export declare class InvalidOption extends BobError {
|
|
4
4
|
private option;
|
|
5
|
-
private
|
|
6
|
-
constructor(option: string,
|
|
7
|
-
pretty(): void;
|
|
5
|
+
private optionsSchema;
|
|
6
|
+
constructor(option: string, optionsSchema?: OptionsSchema);
|
|
7
|
+
pretty(io: any): void;
|
|
8
8
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { BobError } from './BobError.js';
|
|
2
|
-
import { ArgSignature } from '../CommandParser.js';
|
|
3
2
|
export declare class MissingRequiredArgumentValue extends BobError {
|
|
4
|
-
readonly
|
|
5
|
-
constructor(
|
|
6
|
-
pretty(): void;
|
|
3
|
+
readonly argument: string;
|
|
4
|
+
constructor(argument: string);
|
|
5
|
+
pretty(io: any): void;
|
|
7
6
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BobError } from './BobError.js';
|
|
2
|
-
import {
|
|
2
|
+
import { OptionsSchema } from '../lib/types.js';
|
|
3
3
|
export declare class MissingSignatureArgument extends BobError {
|
|
4
4
|
private argument;
|
|
5
|
-
private
|
|
6
|
-
constructor(argument: string,
|
|
7
|
-
pretty(): void;
|
|
5
|
+
private argumentsSchema;
|
|
6
|
+
constructor(argument: string, argumentsSchema: OptionsSchema);
|
|
7
|
+
pretty(io: any): void;
|
|
8
8
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BobError } from './BobError.js';
|
|
2
|
-
import {
|
|
2
|
+
import { OptionsSchema } from '../lib/types.js';
|
|
3
3
|
export declare class MissingSignatureOption extends BobError {
|
|
4
4
|
private option;
|
|
5
|
-
private
|
|
6
|
-
constructor(option: string,
|
|
7
|
-
pretty(): void;
|
|
5
|
+
private optionsSchema;
|
|
6
|
+
constructor(option: string, optionsSchema: OptionsSchema);
|
|
7
|
+
pretty(io: any): void;
|
|
8
8
|
}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
export * from './BobError.js';
|
|
2
2
|
export * from './BadCommandParameter.js';
|
|
3
3
|
export * from './BadCommandOption.js';
|
|
4
|
+
export * from './InvalidOption.js';
|
|
5
|
+
export * from './CommandNotFoundError.js';
|
|
6
|
+
export * from './MissingSignatureArgument.js';
|
|
7
|
+
export * from './MissingSignatureOption.js';
|
|
8
|
+
export * from './MissingRequiredArgumentValue.js';
|
|
9
|
+
export * from './MissingRequiredOptionValue.js';
|
package/dist/cjs/src/index.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export * from './Command.js';
|
|
2
|
+
export * from './CommandWithSignature.js';
|
|
2
3
|
export * from './CommandIO.js';
|
|
4
|
+
export * from './CommandParser.js';
|
|
5
|
+
export * from './CommandSignatureParser.js';
|
|
6
|
+
export * from './CommandRegistry.js';
|
|
3
7
|
export * from './Cli.js';
|
|
8
|
+
export * from './Logger.js';
|
|
9
|
+
export * from './ExceptionHandler.js';
|
|
10
|
+
export * from './lib/types.js';
|
|
4
11
|
export * from './errors/index.js';
|
|
5
|
-
export * from './contracts/index.js';
|
|
6
12
|
export * from './options/index.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Option, OptionDefinition, OptionReturnType } from './types.js';
|
|
2
|
+
export declare function getOptionPrimitiveDefaultValue<Opts extends Option>(type: Opts): OptionReturnType<Opts>;
|
|
3
|
+
export declare function getOptionDefaultValue<Opts extends Option>(option: Opts): OptionReturnType<Opts>;
|
|
4
|
+
export type OptionDetails = Required<OptionDefinition>;
|
|
5
|
+
export declare function getOptionDetails(option: Option): OptionDetails;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type OptionPrimitive = 'string' | 'number' | 'boolean' | ['string'] | ['number'];
|
|
2
|
+
export type OptionDefinition = {
|
|
3
|
+
type: OptionPrimitive;
|
|
4
|
+
description?: string;
|
|
5
|
+
alias?: string | Array<string>;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
default?: any;
|
|
8
|
+
variadic?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type Option = OptionPrimitive | OptionDefinition;
|
|
11
|
+
export type OptionType<O extends Option> = O extends 'string' ? string : O extends 'number' ? number : O extends 'boolean' ? boolean : O extends Array<'string'> ? Array<string> : O extends Array<'number'> ? Array<number> : O extends {
|
|
12
|
+
type: infer T extends Option;
|
|
13
|
+
} ? OptionType<T> : never;
|
|
14
|
+
export type IsRequired<O extends Option> = O extends {
|
|
15
|
+
required: true;
|
|
16
|
+
} ? true : false;
|
|
17
|
+
export type OptionReturnType<O extends Option> = IsRequired<O> extends true ? OptionType<O> : OptionType<O> | null;
|
|
18
|
+
export type OptionsSchema = {
|
|
19
|
+
[key: string]: Option;
|
|
20
|
+
};
|
|
21
|
+
export type OptionsObject<Options extends OptionsSchema> = {
|
|
22
|
+
[Key in keyof Options]: OptionReturnType<Options[Key]>;
|
|
23
|
+
};
|
|
24
|
+
export type ArgumentsSchema = {
|
|
25
|
+
[key: string]: Option;
|
|
26
|
+
};
|
|
27
|
+
export type ArgumentsObject<Arguments extends ArgumentsSchema> = {
|
|
28
|
+
[Key in keyof Arguments]: OptionReturnType<Arguments[Key]>;
|
|
29
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { OptionPrimitive } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a value to the specified type with validation
|
|
4
|
+
* @param value - The value to convert
|
|
5
|
+
* @param type - The target type
|
|
6
|
+
* @param name - The parameter name (for error messages)
|
|
7
|
+
* @param defaultValue - Optional default value if value is null/undefined
|
|
8
|
+
* @returns The converted value
|
|
9
|
+
*/
|
|
10
|
+
export declare function convertValue(value: any, type: OptionPrimitive, name: string, defaultValue?: any): any;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { Command } from '../Command.js';
|
|
2
1
|
import { CommandOption } from '../contracts/index.js';
|
|
2
|
+
import { Command } from '../Command.js';
|
|
3
|
+
import { OptionPrimitive } from '../lib/types.js';
|
|
3
4
|
export declare class HelpOption implements CommandOption<Command> {
|
|
5
|
+
type: OptionPrimitive;
|
|
4
6
|
option: string;
|
|
5
7
|
alias: string[];
|
|
6
|
-
|
|
8
|
+
default: boolean;
|
|
7
9
|
description: string;
|
|
8
10
|
handler(this: Command): Promise<number | void>;
|
|
9
11
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Mocked } from 'vitest';
|
|
2
|
+
import { Logger } from './Logger.js';
|
|
3
|
+
export type TestLogger = Mocked<Logger>;
|
|
4
|
+
export declare function newTestLogger(): TestLogger;
|
|
5
|
+
/**
|
|
6
|
+
* Creates test fixtures with a mocked logger
|
|
7
|
+
* @returns Object containing mocked logger instance
|
|
8
|
+
*/
|
|
9
|
+
export declare function newFixtures(): {
|
|
10
|
+
logger: TestLogger;
|
|
11
|
+
};
|