termkit 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +472 -2
  2. package/dist/config.d.ts +11 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/index.d.ts +47 -96
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +2558 -138
  7. package/dist/index.mjs +2537 -137
  8. package/dist/models/Bar.d.ts +125 -0
  9. package/dist/models/Bar.d.ts.map +1 -0
  10. package/dist/models/Chart.d.ts +106 -0
  11. package/dist/models/Chart.d.ts.map +1 -0
  12. package/dist/models/Column.d.ts +20 -0
  13. package/dist/models/Column.d.ts.map +1 -0
  14. package/dist/models/Command.d.ts +38 -0
  15. package/dist/models/Command.d.ts.map +1 -0
  16. package/dist/models/Input.d.ts +58 -0
  17. package/dist/models/Input.d.ts.map +1 -0
  18. package/dist/models/Log.d.ts +24 -0
  19. package/dist/models/Log.d.ts.map +1 -0
  20. package/dist/models/Markup.d.ts +17 -0
  21. package/dist/models/Markup.d.ts.map +1 -0
  22. package/dist/models/MultiBar.d.ts +17 -0
  23. package/dist/models/MultiBar.d.ts.map +1 -0
  24. package/dist/models/MultiSelect.d.ts +45 -0
  25. package/dist/models/MultiSelect.d.ts.map +1 -0
  26. package/dist/models/Option.d.ts +17 -0
  27. package/dist/models/Option.d.ts.map +1 -0
  28. package/dist/models/Scrollbox.d.ts +20 -0
  29. package/dist/models/Scrollbox.d.ts.map +1 -0
  30. package/dist/models/Select.d.ts +39 -0
  31. package/dist/models/Select.d.ts.map +1 -0
  32. package/dist/models/Spinner.d.ts +67 -0
  33. package/dist/models/Spinner.d.ts.map +1 -0
  34. package/dist/models/Table.d.ts +26 -0
  35. package/dist/models/Table.d.ts.map +1 -0
  36. package/dist/models/TermKit.d.ts +19 -0
  37. package/dist/models/TermKit.d.ts.map +1 -0
  38. package/dist/models/Variable.d.ts +28 -0
  39. package/dist/models/Variable.d.ts.map +1 -0
  40. package/dist/types.d.ts +10 -0
  41. package/dist/types.d.ts.map +1 -0
  42. package/dist/utils/cleanup.d.ts +2 -0
  43. package/dist/utils/cleanup.d.ts.map +1 -0
  44. package/dist/utils/color.d.ts +29 -0
  45. package/dist/utils/color.d.ts.map +1 -0
  46. package/dist/utils/findCommand.d.ts +3 -0
  47. package/dist/utils/findCommand.d.ts.map +1 -0
  48. package/dist/utils/findCommandVariables.d.ts +3 -0
  49. package/dist/utils/findCommandVariables.d.ts.map +1 -0
  50. package/dist/utils/findOption.d.ts +3 -0
  51. package/dist/utils/findOption.d.ts.map +1 -0
  52. package/dist/utils/findOptions.d.ts +3 -0
  53. package/dist/utils/findOptions.d.ts.map +1 -0
  54. package/dist/utils/findVariable.d.ts +5 -0
  55. package/dist/utils/findVariable.d.ts.map +1 -0
  56. package/dist/utils/findVariables.d.ts +3 -0
  57. package/dist/utils/findVariables.d.ts.map +1 -0
  58. package/dist/utils/getVariables.d.ts +3 -0
  59. package/dist/utils/getVariables.d.ts.map +1 -0
  60. package/dist/utils/padLeft.d.ts +2 -0
  61. package/dist/utils/padLeft.d.ts.map +1 -0
  62. package/dist/utils/padRight.d.ts +2 -0
  63. package/dist/utils/padRight.d.ts.map +1 -0
  64. package/dist/utils/padSides.d.ts +2 -0
  65. package/dist/utils/padSides.d.ts.map +1 -0
  66. package/dist/utils/stringLength.d.ts +2 -0
  67. package/dist/utils/stringLength.d.ts.map +1 -0
  68. package/dist/utils/truncate.d.ts +2 -0
  69. package/dist/utils/truncate.d.ts.map +1 -0
  70. package/dist/utils/wrap.d.ts +2 -0
  71. package/dist/utils/wrap.d.ts.map +1 -0
  72. package/package.json +35 -7
  73. package/dist/index.d.mts +0 -99
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/models/Spinner.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,OAAO;IAClB,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;MAMrB;IAED,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAEhC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,kBAAkB,CAA4B;gBAE1C,OAAO,GAAE,cAAmB;IAqBxC,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAGzB;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAG3B;IAED,KAAK,IAAI,IAAI;IAYb,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAY5B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK7B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc9B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3B,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,GAAG;CAwBZ"}
@@ -0,0 +1,26 @@
1
+ import { Column, type ColumnAlign, type ColumnOptions } from '@/models/Column';
2
+ export interface TableOptions {
3
+ title?: string;
4
+ columns?: (ColumnOptions | string)[];
5
+ meta?: Record<string, unknown>[];
6
+ separator?: string;
7
+ align?: ColumnAlign;
8
+ margin?: number;
9
+ }
10
+ export declare class Table {
11
+ static readonly left: ColumnAlign;
12
+ static readonly center: ColumnAlign;
13
+ static readonly right: ColumnAlign;
14
+ rows: Record<string, unknown>[];
15
+ columns: Record<string, Column>;
16
+ separator: string;
17
+ align: ColumnAlign;
18
+ margin: number;
19
+ title?: string;
20
+ meta?: Record<string, unknown>[];
21
+ string: string;
22
+ constructor(rows: Record<string, unknown>[], options?: TableOptions);
23
+ print(): void;
24
+ get width(): number;
25
+ }
26
+ //# sourceMappingURL=Table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/models/Table.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAM9E,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAaD,qBAAa,KAAK;IAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAS;IAC1C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAW;IAC9C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAU;IAE5C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;gBAEF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,GAAE,YAAiB;IAmFvE,KAAK,IAAI,IAAI;IAIb,IAAI,KAAK,IAAI,MAAM,CAMlB;CACF"}
@@ -0,0 +1,19 @@
1
+ import { Command } from '@/models/Command';
2
+ import { Option } from '@/models/Option';
3
+ import type { MiddlewareFn } from '@/types';
4
+ interface TermKitDefaults {
5
+ middlewares?: MiddlewareFn[];
6
+ options?: Option[];
7
+ }
8
+ export declare class TermKit {
9
+ private static base;
10
+ private static commandDefaults;
11
+ static set defaults(obj: TermKitDefaults);
12
+ static setDefaults(obj: TermKitDefaults): void;
13
+ static command(name: string, variables?: string | null, info?: string): Command;
14
+ static middleware(action: MiddlewareFn): MiddlewareFn;
15
+ static option(short: string | null, long: string | null, variables: string | null, info: string): Option;
16
+ static parse(arr: string[]): Promise<unknown>;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=TermKit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TermKit.d.ts","sourceRoot":"","sources":["../../src/models/TermKit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,UAAU,eAAe;IACvB,WAAW,CAAC,EAAE,YAAY,EAAE,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAuB;IAC1C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAsB;IAEpD,MAAM,KAAK,QAAQ,CAAC,GAAG,EAAE,eAAe,EAEvC;IAED,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAI9C,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAM/E,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY;IAIrD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAIxG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9C"}
@@ -0,0 +1,28 @@
1
+ import type { VariableType } from '@/types';
2
+ interface VariableData {
3
+ array?: boolean;
4
+ default?: string;
5
+ enum?: string[];
6
+ max?: number;
7
+ min?: number;
8
+ name?: string;
9
+ raw?: string;
10
+ required?: boolean;
11
+ type?: VariableType;
12
+ }
13
+ export declare class Variable {
14
+ array: boolean;
15
+ default: string | null;
16
+ enum: string[] | null;
17
+ max: number | null;
18
+ min: number | null;
19
+ name: string | null;
20
+ raw: string | null;
21
+ required: boolean;
22
+ type: VariableType;
23
+ value: unknown[] | null;
24
+ constructor(data?: VariableData);
25
+ get hint(): string | null;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=Variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Variable.d.ts","sourceRoot":"","sources":["../../src/models/Variable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,qBAAa,QAAQ;IACnB,KAAK,UAAQ;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAO;IAC7B,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAO;IAC5B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAO;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAO;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAO;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAO;IACzB,QAAQ,UAAQ;IAChB,IAAI,EAAE,YAAY,CAAW;IAC7B,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAO;gBAElB,IAAI,CAAC,EAAE,YAAY;IAc/B,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAQxB;CACF"}
@@ -0,0 +1,10 @@
1
+ export type VariableType = 'string' | 'number' | 'integer' | 'boolean' | 'enum';
2
+ export interface ParsedOptions {
3
+ _?: string[];
4
+ _source: string[];
5
+ _parents?: Record<string, Record<string, unknown>>;
6
+ [key: string]: unknown;
7
+ }
8
+ export type ActionFn = (options: ParsedOptions) => unknown | Promise<unknown>;
9
+ export type MiddlewareFn = (options: ParsedOptions) => void | Promise<void>;
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;AAE/E,MAAM,WAAW,aAAa;IAC5B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAC7E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function registerCleanup(fn: () => void): () => void;
2
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/utils/cleanup.ts"],"names":[],"mappings":"AAsBA,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAM1D"}
@@ -0,0 +1,29 @@
1
+ export declare const RESET = "\u001B[0m";
2
+ export declare const SHOW_CURSOR = "\u001B[?25h";
3
+ export declare const HIDE_CURSOR = "\u001B[?25l";
4
+ export declare const BOLD = "\u001B[1m";
5
+ export declare const FAINT = "\u001B[2m";
6
+ export declare const GREEN = "\u001B[32m";
7
+ export declare const RED = "\u001B[31m";
8
+ export declare const YELLOW = "\u001B[33m";
9
+ export declare const BLUE = "\u001B[34m";
10
+ export declare const MAGENTA = "\u001B[35m";
11
+ export declare const CYAN = "\u001B[36m";
12
+ export declare const DIM = 0.35;
13
+ export declare const SHIMMER_SPEED = 0.5;
14
+ export interface RgbColor {
15
+ r: number;
16
+ g: number;
17
+ b: number;
18
+ }
19
+ export declare function parseHex(hex: string): RgbColor;
20
+ export declare function lerpColor(a: RgbColor, b: RgbColor, t: number): RgbColor;
21
+ export declare function interpolateColor(colors: RgbColor[], t: number): RgbColor;
22
+ export declare function formatColor(code: 38 | 48, color: RgbColor): string;
23
+ export declare function colorText(colorOrAnsi: string, text: string): string;
24
+ export declare function ansiColor(code: 38 | 48, colors: RgbColor[], t: number): string;
25
+ export declare function dimColor(c: RgbColor): RgbColor;
26
+ export declare function shimmerFactor(t: number, phase: number, amplitude: number): number;
27
+ export declare function resolveColor(color: string | number): string;
28
+ export declare function applyShimmer(color: RgbColor, t: number, phase: number, amplitude: number): RgbColor;
29
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/utils/color.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,cAAY,CAAA;AAC9B,eAAO,MAAM,WAAW,gBAAc,CAAA;AACtC,eAAO,MAAM,WAAW,gBAAc,CAAA;AACtC,eAAO,MAAM,IAAI,cAAY,CAAA;AAC7B,eAAO,MAAM,KAAK,cAAY,CAAA;AAC9B,eAAO,MAAM,KAAK,eAAa,CAAA;AAC/B,eAAO,MAAM,GAAG,eAAa,CAAA;AAC7B,eAAO,MAAM,MAAM,eAAa,CAAA;AAChC,eAAO,MAAM,IAAI,eAAa,CAAA;AAC9B,eAAO,MAAM,OAAO,eAAa,CAAA;AACjC,eAAO,MAAM,IAAI,eAAa,CAAA;AAC9B,eAAO,MAAM,GAAG,OAAO,CAAA;AACvB,eAAO,MAAM,aAAa,MAAM,CAAA;AAQhC,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAG9C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,CAMvE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,CAMxE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAGlE;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOnE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAE9C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAc3D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAQnG"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from '@/models/Command';
2
+ export declare function findCommand(array: string[], commands: Command[]): Command | null;
3
+ //# sourceMappingURL=findCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCommand.d.ts","sourceRoot":"","sources":["../../src/utils/findCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI,CAQhF"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from '@/models/Command';
2
+ export declare function findCommandVariables(array: string[], command: Command): Promise<Record<string, unknown> | null>;
3
+ //# sourceMappingURL=findCommandVariables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCommandVariables.d.ts","sourceRoot":"","sources":["../../src/utils/findCommandVariables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG/C,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAUrH"}
@@ -0,0 +1,3 @@
1
+ import type { Option } from '@/models/Option';
2
+ export declare function findOption(string: string, options: Option[]): Option | undefined;
3
+ //# sourceMappingURL=findOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findOption.d.ts","sourceRoot":"","sources":["../../src/utils/findOption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEhF"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from '@/models/Command';
2
+ export declare function findOptions(array: string[], command: Command): Promise<Record<string, unknown>>;
3
+ //# sourceMappingURL=findOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findOptions.d.ts","sourceRoot":"","sources":["../../src/utils/findOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAI/C,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAuCrG"}
@@ -0,0 +1,5 @@
1
+ import type { Variable } from '@/models/Variable';
2
+ import type { VariableType } from '@/types';
3
+ export declare function coerce(value: string, type: VariableType, enumValues: string[] | null, min?: number | null, max?: number | null): unknown;
4
+ export declare function findVariable(array: string[], variable: Variable, commands: string[]): Promise<unknown>;
5
+ //# sourceMappingURL=findVariable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findVariable.d.ts","sourceRoot":"","sources":["../../src/utils/findVariable.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG3C,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAoBpJ;AAuBD,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAwC5G"}
@@ -0,0 +1,3 @@
1
+ import type { Variable } from '@/models/Variable';
2
+ export declare function findVariables(base: string | null, array: string[], variables: Variable[] | null, commands: string[]): Promise<Record<string, unknown>>;
3
+ //# sourceMappingURL=findVariables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findVariables.d.ts","sourceRoot":"","sources":["../../src/utils/findVariables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGjD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAsB5J"}
@@ -0,0 +1,3 @@
1
+ import { Variable } from '@/models/Variable';
2
+ export declare function getVariables(string: string): Variable[];
3
+ //# sourceMappingURL=getVariables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVariables.d.ts","sourceRoot":"","sources":["../../src/utils/getVariables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAwB5C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmBvD"}
@@ -0,0 +1,2 @@
1
+ export declare const padLeft: (string: string, padding: number) => string;
2
+ //# sourceMappingURL=padLeft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"padLeft.d.ts","sourceRoot":"","sources":["../../src/utils/padLeft.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,MAGzD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const padRight: (string: string, padding: number) => string;
2
+ //# sourceMappingURL=padRight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"padRight.d.ts","sourceRoot":"","sources":["../../src/utils/padRight.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,MAG1D,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const padSides: (string: string, padding: number) => string;
2
+ //# sourceMappingURL=padSides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"padSides.d.ts","sourceRoot":"","sources":["../../src/utils/padSides.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,MAW1D,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const stringLength: (string: string) => number;
2
+ //# sourceMappingURL=stringLength.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringLength.d.ts","sourceRoot":"","sources":["../../src/utils/stringLength.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAG7C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function truncate(str: string, maxLength: number, suffix?: string): string;
2
+ //# sourceMappingURL=truncate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../src/utils/truncate.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAsB7E"}
@@ -0,0 +1,2 @@
1
+ export declare function wrap(str: string, width: number): string;
2
+ //# sourceMappingURL=wrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/utils/wrap.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAuBvD"}
package/package.json CHANGED
@@ -1,16 +1,32 @@
1
1
  {
2
2
  "name": "termkit",
3
- "version": "2.0.2",
4
- "description": "Fluent CLI framework for Node.js with nested subcommands, middleware, and TypeScript support",
3
+ "version": "2.1.0",
4
+ "description": "Node.js terminal toolkit with CLI commands, progress bars, charts, tables, styled markup, prompts, and text utilities",
5
5
  "keywords": [
6
+ "animation",
6
7
  "argv",
7
- "builder",
8
+ "bar",
9
+ "bar-chart",
10
+ "chart",
8
11
  "cli",
12
+ "color",
9
13
  "command-line",
14
+ "confirm",
10
15
  "framework",
16
+ "input",
17
+ "log",
18
+ "markup",
11
19
  "middleware",
20
+ "multiselect",
12
21
  "parser",
22
+ "progress",
23
+ "progress-bar",
24
+ "prompt",
25
+ "select",
26
+ "spinner",
13
27
  "subcommands",
28
+ "table",
29
+ "terminal",
14
30
  "typescript"
15
31
  ],
16
32
  "homepage": "https://github.com/jayrdeaton/termkit#readme",
@@ -39,21 +55,33 @@
39
55
  "dist"
40
56
  ],
41
57
  "scripts": {
42
- "build": "tsup src/index.ts --format cjs,esm --dts --clean",
58
+ "build": "tsup && tsc --emitDeclarationOnly",
59
+ "demo:bar": "node demos/bar.js",
60
+ "demo:chart": "node demos/chart.js",
61
+ "demo:color": "node demos/color.js",
62
+ "demo:input": "node demos/input.js",
63
+ "demo:log": "node demos/log.js",
64
+ "demo:markup": "node demos/markup.js",
65
+ "demo:multiselect": "node demos/multiselect.js",
66
+ "demo:program": "node demos/program.js",
67
+ "demo:select": "node demos/select.js",
68
+ "demo:spinner": "node demos/spinner.js",
69
+ "demo:table": "node demos/table.js",
70
+ "demo:text": "node demos/text.js",
43
71
  "fix": "eslint --fix",
44
72
  "lint": "eslint",
45
73
  "prepublishOnly": "npm run build",
46
- "release": "git push --follow-tags",
47
74
  "release:major": "npm version major && git push --follow-tags",
48
75
  "release:minor": "npm version minor && git push --follow-tags",
49
76
  "release:patch": "npm version patch && git push --follow-tags",
50
77
  "test": "jest",
51
78
  "test:watch": "jest --watchAll",
52
79
  "typecheck": "tsc --noEmit",
53
- "preversion": "npm run lint && npm test"
80
+ "validate": "npm run lint && npm run typecheck && npm test",
81
+ "preversion": "npm run validate"
54
82
  },
55
83
  "dependencies": {
56
- "cosmetic": "^1.4.0"
84
+ "cosmetic": "^1.4.1"
57
85
  },
58
86
  "devDependencies": {
59
87
  "@types/jest": "^30.0.0",
package/dist/index.d.mts DELETED
@@ -1,99 +0,0 @@
1
- type VariableType = 'string' | 'number' | 'boolean';
2
- interface ParsedOptions {
3
- _source: string[];
4
- _parents?: Record<string, Record<string, unknown>>;
5
- [key: string]: unknown;
6
- }
7
- type ActionFn = (options: ParsedOptions) => unknown | Promise<unknown>;
8
- type MiddlewareFn = (options: ParsedOptions) => void | Promise<void>;
9
-
10
- interface VariableData {
11
- array?: boolean;
12
- name?: string;
13
- raw?: string;
14
- required?: boolean;
15
- type?: VariableType;
16
- }
17
- declare class Variable {
18
- array: boolean;
19
- name: string | null;
20
- raw: string | null;
21
- required: boolean;
22
- type: VariableType;
23
- value: unknown[] | null;
24
- constructor(data?: VariableData);
25
- }
26
-
27
- interface OptionData {
28
- short?: string | null;
29
- long?: string | null;
30
- info?: string | null;
31
- variables?: string | null;
32
- }
33
- declare class Option {
34
- short: string | null;
35
- long: string | null;
36
- info: string | null;
37
- variables: Variable[] | null;
38
- constructor(data?: OptionData);
39
- description(info: string): this;
40
- }
41
-
42
- interface CommandData {
43
- name?: string;
44
- variables?: string | null;
45
- info?: string;
46
- middlewares?: MiddlewareFn[];
47
- options?: Option[];
48
- }
49
- declare class Command {
50
- actionFunction: ActionFn | null;
51
- commandsArray: Command[];
52
- commandStrings: string[];
53
- info: string | null;
54
- middlewaresArray: MiddlewareFn[];
55
- name: string | null;
56
- optionsArray: Option[];
57
- variables: Variable[] | null;
58
- versionString: string | null;
59
- constructor(data?: CommandData);
60
- description(info: string): this;
61
- variable(string: string): this;
62
- action(fn: ActionFn): this;
63
- command(cmd: Command): this;
64
- commands(cmds: Command[]): this;
65
- middleware(fn: MiddlewareFn): this;
66
- middlewares(fns: MiddlewareFn[]): this;
67
- option(short: string | null, long: string | null, variables: string | null, info: string): this;
68
- options(opts: Option[]): this;
69
- version(v: string): this;
70
- help(_source?: string[]): void;
71
- parse(input: string[]): Promise<unknown>;
72
- }
73
-
74
- interface TermKitDefaults {
75
- middlewares?: MiddlewareFn[];
76
- options?: Option[];
77
- }
78
- declare class TermKit {
79
- private static base;
80
- private static commandDefaults;
81
- static set defaults(obj: TermKitDefaults);
82
- static setDefaults(obj: TermKitDefaults): void;
83
- static command(name: string, variables?: string | null, info?: string): Command;
84
- static middleware(action: MiddlewareFn): MiddlewareFn;
85
- static option(short: string | null, long: string | null, variables: string | null, info: string): Option;
86
- static parse(arr: string[]): Promise<unknown>;
87
- }
88
-
89
- interface CommandDefaults {
90
- middlewares?: MiddlewareFn[];
91
- options?: Option[];
92
- }
93
- declare const command: (name: string, variables?: string | null, info?: string) => Command;
94
- declare const middleware: (fn: MiddlewareFn) => MiddlewareFn;
95
- declare const option: (short: string | null, long: string | null, variables: string | null, info: string) => Option;
96
- declare const parse: (arr: string[]) => Promise<unknown>;
97
- declare const setDefaults: (data: CommandDefaults) => void;
98
-
99
- export { type ActionFn, Command, type CommandDefaults, type MiddlewareFn, Option, type ParsedOptions, TermKit, Variable, type VariableType, command, middleware, option, parse, setDefaults };