modestbench 0.5.1 → 0.7.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 (117) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +6 -2
  3. package/dist/adapters/jest-adapter.cjs +496 -0
  4. package/dist/adapters/jest-adapter.cjs.map +1 -0
  5. package/dist/adapters/jest-adapter.d.cts +42 -0
  6. package/dist/adapters/jest-adapter.d.cts.map +1 -0
  7. package/dist/adapters/jest-adapter.d.ts +42 -0
  8. package/dist/adapters/jest-adapter.d.ts.map +1 -0
  9. package/dist/adapters/jest-adapter.js +459 -0
  10. package/dist/adapters/jest-adapter.js.map +1 -0
  11. package/dist/adapters/jest-hooks.cjs +83 -0
  12. package/dist/adapters/jest-hooks.cjs.map +1 -0
  13. package/dist/adapters/jest-hooks.d.cts +24 -0
  14. package/dist/adapters/jest-hooks.d.cts.map +1 -0
  15. package/dist/adapters/jest-hooks.d.ts +24 -0
  16. package/dist/adapters/jest-hooks.d.ts.map +1 -0
  17. package/dist/adapters/jest-hooks.js +78 -0
  18. package/dist/adapters/jest-hooks.js.map +1 -0
  19. package/dist/adapters/jest-register.cjs +17 -0
  20. package/dist/adapters/jest-register.cjs.map +1 -0
  21. package/dist/adapters/jest-register.d.cts +12 -0
  22. package/dist/adapters/jest-register.d.cts.map +1 -0
  23. package/dist/adapters/jest-register.d.ts +12 -0
  24. package/dist/adapters/jest-register.d.ts.map +1 -0
  25. package/dist/adapters/jest-register.js +15 -0
  26. package/dist/adapters/jest-register.js.map +1 -0
  27. package/dist/adapters/types.cjs.map +1 -1
  28. package/dist/adapters/types.d.cts +5 -1
  29. package/dist/adapters/types.d.cts.map +1 -1
  30. package/dist/adapters/types.d.ts +5 -1
  31. package/dist/adapters/types.d.ts.map +1 -1
  32. package/dist/adapters/types.js.map +1 -1
  33. package/dist/cli/commands/run.cjs +17 -11
  34. package/dist/cli/commands/run.cjs.map +1 -1
  35. package/dist/cli/commands/run.js +9 -3
  36. package/dist/cli/commands/run.js.map +1 -1
  37. package/dist/cli/commands/test.cjs +17 -15
  38. package/dist/cli/commands/test.cjs.map +1 -1
  39. package/dist/cli/commands/test.d.cts.map +1 -1
  40. package/dist/cli/commands/test.d.ts.map +1 -1
  41. package/dist/cli/commands/test.js +5 -3
  42. package/dist/cli/commands/test.js.map +1 -1
  43. package/dist/cli/index.cjs +5 -2
  44. package/dist/cli/index.cjs.map +1 -1
  45. package/dist/cli/index.d.cts.map +1 -1
  46. package/dist/cli/index.d.ts.map +1 -1
  47. package/dist/cli/index.js +6 -3
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/constants.cjs +1 -0
  50. package/dist/constants.cjs.map +1 -1
  51. package/dist/constants.d.cts +1 -0
  52. package/dist/constants.d.cts.map +1 -1
  53. package/dist/constants.d.ts +1 -0
  54. package/dist/constants.d.ts.map +1 -1
  55. package/dist/constants.js +1 -0
  56. package/dist/constants.js.map +1 -1
  57. package/dist/index.cjs +4 -1
  58. package/dist/index.cjs.map +1 -1
  59. package/dist/index.d.cts +1 -0
  60. package/dist/index.d.cts.map +1 -1
  61. package/dist/index.d.ts +1 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +2 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/reporters/index.cjs +3 -1
  66. package/dist/reporters/index.cjs.map +1 -1
  67. package/dist/reporters/index.d.cts +1 -0
  68. package/dist/reporters/index.d.cts.map +1 -1
  69. package/dist/reporters/index.d.ts +1 -0
  70. package/dist/reporters/index.d.ts.map +1 -1
  71. package/dist/reporters/index.js +1 -0
  72. package/dist/reporters/index.js.map +1 -1
  73. package/dist/reporters/nyan.cjs +318 -0
  74. package/dist/reporters/nyan.cjs.map +1 -0
  75. package/dist/reporters/nyan.d.cts +118 -0
  76. package/dist/reporters/nyan.d.cts.map +1 -0
  77. package/dist/reporters/nyan.d.ts +118 -0
  78. package/dist/reporters/nyan.d.ts.map +1 -0
  79. package/dist/reporters/nyan.js +314 -0
  80. package/dist/reporters/nyan.js.map +1 -0
  81. package/dist/types/core.cjs.map +1 -1
  82. package/dist/types/core.d.cts +13 -12
  83. package/dist/types/core.d.cts.map +1 -1
  84. package/dist/types/core.d.ts +13 -12
  85. package/dist/types/core.d.ts.map +1 -1
  86. package/dist/types/core.js.map +1 -1
  87. package/dist/types/index.cjs +0 -2
  88. package/dist/types/index.cjs.map +1 -1
  89. package/dist/types/index.d.cts +0 -1
  90. package/dist/types/index.d.cts.map +1 -1
  91. package/dist/types/index.d.ts +0 -1
  92. package/dist/types/index.d.ts.map +1 -1
  93. package/dist/types/index.js +0 -2
  94. package/dist/types/index.js.map +1 -1
  95. package/package.json +28 -8
  96. package/src/adapters/jest-adapter.ts +563 -0
  97. package/src/adapters/jest-hooks.ts +82 -0
  98. package/src/adapters/jest-register.ts +16 -0
  99. package/src/adapters/types.ts +5 -1
  100. package/src/cli/commands/run.ts +10 -3
  101. package/src/cli/commands/test.ts +5 -3
  102. package/src/cli/index.ts +10 -2
  103. package/src/constants.ts +2 -1
  104. package/src/index.ts +3 -0
  105. package/src/reporters/index.ts +1 -0
  106. package/src/reporters/nyan.ts +409 -0
  107. package/src/types/core.ts +16 -14
  108. package/src/types/index.ts +0 -3
  109. package/dist/types/cli.cjs +0 -12
  110. package/dist/types/cli.cjs.map +0 -1
  111. package/dist/types/cli.d.cts +0 -75
  112. package/dist/types/cli.d.cts.map +0 -1
  113. package/dist/types/cli.d.ts +0 -75
  114. package/dist/types/cli.d.ts.map +0 -1
  115. package/dist/types/cli.js +0 -9
  116. package/dist/types/cli.js.map +0 -1
  117. package/src/types/cli.ts +0 -82
package/src/types/core.ts CHANGED
@@ -37,6 +37,20 @@ export type {
37
37
  BenchmarkTaskInput,
38
38
  } from '../core/benchmark-schema.js';
39
39
 
40
+ /**
41
+ * Benchmark file structure after parsing
42
+ */
43
+ export interface BenchmarkFile {
44
+ /** Raw file content */
45
+ readonly content: string;
46
+ /** Parsed exports from the file */
47
+ readonly exports: unknown;
48
+ /** Absolute path to the file */
49
+ readonly filePath: string;
50
+ /** File metadata */
51
+ readonly metadata: FileMetadata;
52
+ }
53
+
40
54
  /**
41
55
  * ModestBench Core Types
42
56
  *
@@ -52,20 +66,6 @@ export type {
52
66
  // Re-export identifier helper functions
53
67
  export { createRunId, createTaskId } from '../utils/identifiers.js';
54
68
 
55
- /**
56
- * Benchmark file structure after parsing
57
- */
58
- export interface BenchmarkFile {
59
- /** Raw file content */
60
- readonly content: string;
61
- /** Parsed exports from the file */
62
- readonly exports: unknown;
63
- /** Absolute path to the file */
64
- readonly filePath: string;
65
- /** File metadata */
66
- readonly metadata: FileMetadata;
67
- }
68
-
69
69
  /**
70
70
  * Represents a complete benchmark run across multiple files
71
71
  */
@@ -128,6 +128,8 @@ export interface CpuInfo {
128
128
  readonly speed: number;
129
129
  }
130
130
 
131
+ export type Engine = 'accurate' | 'tinybench';
132
+
131
133
  /**
132
134
  * Environment information captured during benchmark execution
133
135
  */
@@ -5,9 +5,6 @@
5
5
  * This file re-exports all types from the individual type modules.
6
6
  */
7
7
 
8
- // CLI-specific types
9
- export * from './cli.js';
10
-
11
8
  // Core data types
12
9
  export type * from './core.js';
13
10
  // Helper functions from core (value exports)
@@ -1,12 +0,0 @@
1
- "use strict";
2
- /**
3
- * ModestBench CLI Types
4
- *
5
- * Defines types specific to the command-line interface, including command
6
- * definitions, argument parsing, and CLI-specific configuration structures.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ExitCodes = void 0;
10
- const constants_js_1 = require("../constants.cjs");
11
- Object.defineProperty(exports, "ExitCodes", { enumerable: true, get: function () { return constants_js_1.ExitCodes; } });
12
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/types/cli.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mDAA4C;AAEnC,0FAFA,wBAAS,OAEA"}
@@ -1,75 +0,0 @@
1
- /**
2
- * ModestBench CLI Types
3
- *
4
- * Defines types specific to the command-line interface, including command
5
- * definitions, argument parsing, and CLI-specific configuration structures.
6
- */
7
- import { ExitCodes } from "../constants.cjs";
8
- export { ExitCodes };
9
- /**
10
- * CLI argument specification for a command
11
- */
12
- export interface ArgumentSpec {
13
- /** Short alias */
14
- readonly alias?: string;
15
- /** Choices for string arguments */
16
- readonly choices?: string[];
17
- /** Default value */
18
- readonly default?: unknown;
19
- /** Argument description */
20
- readonly description: string;
21
- /** Argument name */
22
- readonly name: string;
23
- /** Whether argument is required */
24
- readonly required?: boolean;
25
- /** Argument type */
26
- readonly type: 'array' | 'boolean' | 'number' | 'string';
27
- /** Validation function */
28
- readonly validate?: (value: unknown) => boolean | string;
29
- }
30
- /**
31
- * Parsed command-line arguments
32
- */
33
- export interface CommandArguments {
34
- /** Positional arguments */
35
- readonly _: string[];
36
- /** Named arguments */
37
- readonly [key: string]: unknown;
38
- }
39
- /**
40
- * CLI command specification
41
- */
42
- export interface CommandSpec {
43
- /** Command aliases */
44
- readonly aliases?: string[];
45
- /** Command description */
46
- readonly description: string;
47
- /** Examples of command usage */
48
- readonly examples?: string[];
49
- /** Command name */
50
- readonly name: string;
51
- /** Named arguments */
52
- readonly options?: ArgumentSpec[];
53
- /** Positional arguments */
54
- readonly positional?: ArgumentSpec[];
55
- /** Subcommands */
56
- readonly subcommands?: CommandSpec[];
57
- }
58
- export type Engine = 'accurate' | 'tinybench';
59
- export type ExitCode = (typeof ExitCodes)[keyof typeof ExitCodes];
60
- /**
61
- * Progress display options
62
- */
63
- export interface ProgressDisplayOptions {
64
- /** Progress bar width */
65
- readonly barWidth: number;
66
- /** Show current file being processed */
67
- readonly showCurrentFile: boolean;
68
- /** Show progress bars */
69
- readonly showProgress: boolean;
70
- /** Show estimated time remaining */
71
- readonly showTimeRemaining: boolean;
72
- /** Update interval in milliseconds */
73
- readonly updateInterval: number;
74
- }
75
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/types/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,yBAAwB;AAE5C,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kBAAkB;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzD,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,sBAAsB;IACtB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IACrC,kBAAkB;IAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,yBAAyB;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,sCAAsC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC"}
@@ -1,75 +0,0 @@
1
- /**
2
- * ModestBench CLI Types
3
- *
4
- * Defines types specific to the command-line interface, including command
5
- * definitions, argument parsing, and CLI-specific configuration structures.
6
- */
7
- import { ExitCodes } from "../constants.js";
8
- export { ExitCodes };
9
- /**
10
- * CLI argument specification for a command
11
- */
12
- export interface ArgumentSpec {
13
- /** Short alias */
14
- readonly alias?: string;
15
- /** Choices for string arguments */
16
- readonly choices?: string[];
17
- /** Default value */
18
- readonly default?: unknown;
19
- /** Argument description */
20
- readonly description: string;
21
- /** Argument name */
22
- readonly name: string;
23
- /** Whether argument is required */
24
- readonly required?: boolean;
25
- /** Argument type */
26
- readonly type: 'array' | 'boolean' | 'number' | 'string';
27
- /** Validation function */
28
- readonly validate?: (value: unknown) => boolean | string;
29
- }
30
- /**
31
- * Parsed command-line arguments
32
- */
33
- export interface CommandArguments {
34
- /** Positional arguments */
35
- readonly _: string[];
36
- /** Named arguments */
37
- readonly [key: string]: unknown;
38
- }
39
- /**
40
- * CLI command specification
41
- */
42
- export interface CommandSpec {
43
- /** Command aliases */
44
- readonly aliases?: string[];
45
- /** Command description */
46
- readonly description: string;
47
- /** Examples of command usage */
48
- readonly examples?: string[];
49
- /** Command name */
50
- readonly name: string;
51
- /** Named arguments */
52
- readonly options?: ArgumentSpec[];
53
- /** Positional arguments */
54
- readonly positional?: ArgumentSpec[];
55
- /** Subcommands */
56
- readonly subcommands?: CommandSpec[];
57
- }
58
- export type Engine = 'accurate' | 'tinybench';
59
- export type ExitCode = (typeof ExitCodes)[keyof typeof ExitCodes];
60
- /**
61
- * Progress display options
62
- */
63
- export interface ProgressDisplayOptions {
64
- /** Progress bar width */
65
- readonly barWidth: number;
66
- /** Show current file being processed */
67
- readonly showCurrentFile: boolean;
68
- /** Show progress bars */
69
- readonly showProgress: boolean;
70
- /** Show estimated time remaining */
71
- readonly showTimeRemaining: boolean;
72
- /** Update interval in milliseconds */
73
- readonly updateInterval: number;
74
- }
75
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/types/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,wBAAwB;AAE5C,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kBAAkB;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzD,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,sBAAsB;IACtB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IACrC,kBAAkB;IAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,yBAAyB;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,sCAAsC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC"}
package/dist/types/cli.js DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * ModestBench CLI Types
3
- *
4
- * Defines types specific to the command-line interface, including command
5
- * definitions, argument parsing, and CLI-specific configuration structures.
6
- */
7
- import { ExitCodes } from "../constants.js";
8
- export { ExitCodes };
9
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/types/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,wBAAwB;AAE5C,OAAO,EAAE,SAAS,EAAE,CAAC"}
package/src/types/cli.ts DELETED
@@ -1,82 +0,0 @@
1
- /**
2
- * ModestBench CLI Types
3
- *
4
- * Defines types specific to the command-line interface, including command
5
- * definitions, argument parsing, and CLI-specific configuration structures.
6
- */
7
-
8
- import { ExitCodes } from '../constants.js';
9
-
10
- export { ExitCodes };
11
-
12
- /**
13
- * CLI argument specification for a command
14
- */
15
- export interface ArgumentSpec {
16
- /** Short alias */
17
- readonly alias?: string;
18
- /** Choices for string arguments */
19
- readonly choices?: string[];
20
- /** Default value */
21
- readonly default?: unknown;
22
- /** Argument description */
23
- readonly description: string;
24
- /** Argument name */
25
- readonly name: string;
26
- /** Whether argument is required */
27
- readonly required?: boolean;
28
- /** Argument type */
29
- readonly type: 'array' | 'boolean' | 'number' | 'string';
30
- /** Validation function */
31
- readonly validate?: (value: unknown) => boolean | string;
32
- }
33
-
34
- /**
35
- * Parsed command-line arguments
36
- */
37
- export interface CommandArguments {
38
- /** Positional arguments */
39
- readonly _: string[];
40
- /** Named arguments */
41
- readonly [key: string]: unknown;
42
- }
43
-
44
- /**
45
- * CLI command specification
46
- */
47
- export interface CommandSpec {
48
- /** Command aliases */
49
- readonly aliases?: string[];
50
- /** Command description */
51
- readonly description: string;
52
- /** Examples of command usage */
53
- readonly examples?: string[];
54
- /** Command name */
55
- readonly name: string;
56
- /** Named arguments */
57
- readonly options?: ArgumentSpec[];
58
- /** Positional arguments */
59
- readonly positional?: ArgumentSpec[];
60
- /** Subcommands */
61
- readonly subcommands?: CommandSpec[];
62
- }
63
-
64
- export type Engine = 'accurate' | 'tinybench';
65
-
66
- export type ExitCode = (typeof ExitCodes)[keyof typeof ExitCodes];
67
-
68
- /**
69
- * Progress display options
70
- */
71
- export interface ProgressDisplayOptions {
72
- /** Progress bar width */
73
- readonly barWidth: number;
74
- /** Show current file being processed */
75
- readonly showCurrentFile: boolean;
76
- /** Show progress bars */
77
- readonly showProgress: boolean;
78
- /** Show estimated time remaining */
79
- readonly showTimeRemaining: boolean;
80
- /** Update interval in milliseconds */
81
- readonly updateInterval: number;
82
- }