modestbench 0.8.0 → 0.9.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/CHANGELOG.md +22 -0
- package/README.md +37 -4
- package/dist/adapters/types.d.cts +1 -1
- package/dist/adapters/types.d.cts.map +1 -1
- package/dist/adapters/types.d.ts +1 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/cli/commands/baseline.cjs +8 -8
- package/dist/cli/commands/baseline.cjs.map +1 -1
- package/dist/cli/commands/baseline.js +8 -8
- package/dist/cli/commands/baseline.js.map +1 -1
- package/dist/cli/commands/init.cjs +2 -2
- package/dist/cli/commands/init.cjs.map +1 -1
- package/dist/cli/commands/init.js +2 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +12 -8
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.d.cts +1 -13
- package/dist/cli/commands/run.d.cts.map +1 -1
- package/dist/cli/commands/run.d.ts +1 -13
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +11 -7
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/test.cjs +1 -1
- package/dist/cli/commands/test.cjs.map +1 -1
- package/dist/cli/commands/test.js +1 -1
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.cjs +655 -870
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +27 -17
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts +27 -17
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +657 -869
- package/dist/cli/index.js.map +1 -1
- package/dist/{core → config}/benchmark-schema.cjs +1 -1
- package/dist/config/benchmark-schema.cjs.map +1 -0
- package/dist/config/benchmark-schema.d.cts +913 -0
- package/dist/config/benchmark-schema.d.cts.map +1 -0
- package/dist/config/benchmark-schema.d.ts +913 -0
- package/dist/config/benchmark-schema.d.ts.map +1 -0
- package/dist/{core → config}/benchmark-schema.js +1 -1
- package/dist/config/benchmark-schema.js.map +1 -0
- package/dist/config/budget-schema.cjs +1 -1
- package/dist/config/budget-schema.cjs.map +1 -1
- package/dist/config/budget-schema.js +1 -1
- package/dist/config/budget-schema.js.map +1 -1
- package/dist/config/schema.cjs +188 -105
- package/dist/config/schema.cjs.map +1 -1
- package/dist/config/schema.d.cts +208 -80
- package/dist/config/schema.d.cts.map +1 -1
- package/dist/config/schema.d.ts +208 -80
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +187 -104
- package/dist/config/schema.js.map +1 -1
- package/dist/core/engine.cjs +50 -45
- package/dist/core/engine.cjs.map +1 -1
- package/dist/core/engine.d.cts.map +1 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +50 -45
- package/dist/core/engine.js.map +1 -1
- package/dist/core/engines/accurate-engine.cjs +1 -1
- package/dist/core/engines/accurate-engine.cjs.map +1 -1
- package/dist/core/engines/accurate-engine.d.cts.map +1 -1
- package/dist/core/engines/accurate-engine.d.ts.map +1 -1
- package/dist/core/engines/accurate-engine.js +1 -1
- package/dist/core/engines/accurate-engine.js.map +1 -1
- package/dist/core/output-path-resolver.cjs +15 -1
- package/dist/core/output-path-resolver.cjs.map +1 -1
- package/dist/core/output-path-resolver.d.cts +8 -0
- package/dist/core/output-path-resolver.d.cts.map +1 -1
- package/dist/core/output-path-resolver.d.ts +8 -0
- package/dist/core/output-path-resolver.d.ts.map +1 -1
- package/dist/core/output-path-resolver.js +13 -0
- package/dist/core/output-path-resolver.js.map +1 -1
- package/dist/formatters/history/compare.cjs +6 -6
- package/dist/formatters/history/compare.cjs.map +1 -1
- package/dist/formatters/history/compare.js +6 -6
- package/dist/formatters/history/compare.js.map +1 -1
- package/dist/formatters/history/show.cjs +2 -2
- package/dist/formatters/history/show.cjs.map +1 -1
- package/dist/formatters/history/show.js +2 -2
- package/dist/formatters/history/show.js.map +1 -1
- package/dist/formatters/history/trends.cjs +1 -1
- package/dist/formatters/history/trends.cjs.map +1 -1
- package/dist/formatters/history/trends.js +1 -1
- package/dist/formatters/history/trends.js.map +1 -1
- package/dist/reporters/human.cjs +3 -3
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +3 -3
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/json.cjs +1 -1
- package/dist/reporters/json.cjs.map +1 -1
- package/dist/reporters/json.js +1 -1
- package/dist/reporters/json.js.map +1 -1
- package/dist/reporters/nyan.cjs +1 -1
- package/dist/reporters/nyan.cjs.map +1 -1
- package/dist/reporters/nyan.js +1 -1
- package/dist/reporters/nyan.js.map +1 -1
- package/dist/schema/modestbench-config.schema.json +94 -87
- package/dist/services/budget-evaluator.cjs +10 -8
- package/dist/services/budget-evaluator.cjs.map +1 -1
- package/dist/services/budget-evaluator.d.cts +2 -2
- package/dist/services/budget-evaluator.d.cts.map +1 -1
- package/dist/services/budget-evaluator.d.ts +2 -2
- package/dist/services/budget-evaluator.d.ts.map +1 -1
- package/dist/services/budget-evaluator.js +10 -8
- package/dist/services/budget-evaluator.js.map +1 -1
- package/dist/services/budget-resolver.cjs +214 -0
- package/dist/services/budget-resolver.cjs.map +1 -0
- package/dist/services/budget-resolver.d.cts +98 -0
- package/dist/services/budget-resolver.d.cts.map +1 -0
- package/dist/services/budget-resolver.d.ts +98 -0
- package/dist/services/budget-resolver.d.ts.map +1 -0
- package/dist/services/budget-resolver.js +203 -0
- package/dist/services/budget-resolver.js.map +1 -0
- package/dist/services/config-manager.cjs +2 -2
- package/dist/services/config-manager.cjs.map +1 -1
- package/dist/services/config-manager.js +2 -2
- package/dist/services/config-manager.js.map +1 -1
- package/dist/services/file-loader.cjs +1 -1
- package/dist/services/file-loader.cjs.map +1 -1
- package/dist/services/file-loader.js +1 -1
- package/dist/services/file-loader.js.map +1 -1
- package/dist/services/reporter-registry.cjs +8 -8
- package/dist/services/reporter-registry.cjs.map +1 -1
- package/dist/services/reporter-registry.js +8 -8
- package/dist/services/reporter-registry.js.map +1 -1
- package/dist/types/budgets.d.cts +31 -0
- package/dist/types/budgets.d.cts.map +1 -1
- package/dist/types/budgets.d.ts +31 -0
- package/dist/types/budgets.d.ts.map +1 -1
- package/dist/types/core.cjs.map +1 -1
- package/dist/types/core.d.cts +28 -75
- package/dist/types/core.d.cts.map +1 -1
- package/dist/types/core.d.ts +28 -75
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/package.json +24 -15
- package/src/adapters/types.ts +1 -1
- package/src/cli/commands/baseline.ts +8 -8
- package/src/cli/commands/init.ts +2 -2
- package/src/cli/commands/run.ts +18 -6
- package/src/cli/commands/test.ts +1 -1
- package/src/cli/index.ts +806 -942
- package/src/{core → config}/benchmark-schema.ts +1 -1
- package/src/config/budget-schema.ts +1 -1
- package/src/config/schema.ts +379 -302
- package/src/core/engine.ts +74 -69
- package/src/core/engines/accurate-engine.ts +1 -1
- package/src/core/output-path-resolver.ts +14 -0
- package/src/formatters/history/compare.ts +6 -6
- package/src/formatters/history/show.ts +2 -2
- package/src/formatters/history/trends.ts +1 -1
- package/src/reporters/human.ts +5 -3
- package/src/reporters/json.ts +1 -1
- package/src/reporters/nyan.ts +1 -1
- package/src/services/budget-evaluator.ts +15 -11
- package/src/services/budget-resolver.ts +254 -0
- package/src/services/config-manager.ts +2 -2
- package/src/services/file-loader.ts +1 -1
- package/src/services/reporter-registry.ts +8 -8
- package/src/types/budgets.ts +38 -0
- package/src/types/core.ts +64 -99
- package/dist/core/benchmark-schema.cjs.map +0 -1
- package/dist/core/benchmark-schema.d.cts +0 -139
- package/dist/core/benchmark-schema.d.cts.map +0 -1
- package/dist/core/benchmark-schema.d.ts +0 -139
- package/dist/core/benchmark-schema.d.ts.map +0 -1
- package/dist/core/benchmark-schema.js.map +0 -1
package/dist/types/budgets.d.ts
CHANGED
|
@@ -62,6 +62,25 @@ export interface Budget {
|
|
|
62
62
|
/** Relative thresholds */
|
|
63
63
|
readonly relative?: RelativeBudget;
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* A budget pattern with glob support for files and simple wildcards for
|
|
67
|
+
* suite/task
|
|
68
|
+
*
|
|
69
|
+
* File patterns use minimatch glob syntax (e.g., `**\/*.bench.js`). Suite/task
|
|
70
|
+
* patterns use simple `*` wildcard (matches any value).
|
|
71
|
+
*/
|
|
72
|
+
export interface BudgetPattern {
|
|
73
|
+
/** The budget to apply when this pattern matches */
|
|
74
|
+
readonly budget: Budget;
|
|
75
|
+
/** Glob pattern for file matching (minimatch syntax) */
|
|
76
|
+
readonly filePattern: string;
|
|
77
|
+
/** Computed specificity score (higher = more specific) */
|
|
78
|
+
readonly specificity: number;
|
|
79
|
+
/** Suite name or `*` for wildcard */
|
|
80
|
+
readonly suitePattern: string;
|
|
81
|
+
/** Task name or `*` for wildcard */
|
|
82
|
+
readonly taskPattern: string;
|
|
83
|
+
}
|
|
65
84
|
/**
|
|
66
85
|
* Budget evaluation result for a single task
|
|
67
86
|
*/
|
|
@@ -124,6 +143,18 @@ export interface RelativeBudget {
|
|
|
124
143
|
/** Maximum performance regression as decimal (0.10 = 10%) */
|
|
125
144
|
readonly maxRegression?: number;
|
|
126
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Resolved budgets structure with exact matches and patterns separated
|
|
148
|
+
*
|
|
149
|
+
* During evaluation, exact matches are checked first, then patterns are matched
|
|
150
|
+
* in order of specificity (highest first).
|
|
151
|
+
*/
|
|
152
|
+
export interface ResolvedBudgets {
|
|
153
|
+
/** Exact TaskId matches (no wildcards or globs) */
|
|
154
|
+
readonly exact: Record<string, Budget>;
|
|
155
|
+
/** Patterns with wildcards/globs, sorted by specificity descending */
|
|
156
|
+
readonly patterns: readonly BudgetPattern[];
|
|
157
|
+
}
|
|
127
158
|
/**
|
|
128
159
|
* Branded type for benchmark run identifiers
|
|
129
160
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/types/budgets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/types/budgets.ts"],"names":[],"mappings":"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"}
|
package/dist/types/core.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":";;;AAqHA;;;;;;;;;;GAUG;AAEH,wCAAwC;AACxC,2DAAoE;AAA3D,6GAAA,WAAW,OAAA;AAAE,8GAAA,YAAY,OAAA"}
|
package/dist/types/core.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { jsonReporterConfigSchema, ModestBenchConfig, ModestBenchConfigInput, reporterConfigSchema } from "../config/schema.cjs";
|
|
3
|
+
import type { AbsoluteBudget, BaselineReference, BaselineStorage, BaselineSummaryData, Budget, BudgetPattern, BudgetResult, BudgetSummary, BudgetViolation, RelativeBudget, ResolvedBudgets, RunId, TaskId } from "./budgets.cjs";
|
|
4
4
|
/**
|
|
5
5
|
* Benchmark file structure after parsing
|
|
6
6
|
*/
|
|
@@ -14,18 +14,6 @@ export interface BenchmarkFile {
|
|
|
14
14
|
/** File metadata */
|
|
15
15
|
readonly metadata: FileMetadata;
|
|
16
16
|
}
|
|
17
|
-
/**
|
|
18
|
-
* ModestBench Core Types
|
|
19
|
-
*
|
|
20
|
-
* Defines the fundamental data structures used throughout the ModestBench
|
|
21
|
-
* system. These types represent benchmark results, metadata, configuration, and
|
|
22
|
-
* system state.
|
|
23
|
-
*
|
|
24
|
-
* Note: BenchmarkDefinition, BenchmarkSuite, and BenchmarkTask types are
|
|
25
|
-
* derived from Zod schemas and re-exported from benchmark-schema.ts for type
|
|
26
|
-
* safety and consistency.
|
|
27
|
-
*/
|
|
28
|
-
export { createRunId, createTaskId } from "../utils/identifiers.cjs";
|
|
29
17
|
/**
|
|
30
18
|
* Represents a complete benchmark run across multiple files
|
|
31
19
|
*/
|
|
@@ -57,6 +45,9 @@ export interface BenchmarkRun {
|
|
|
57
45
|
/** Run-level tags */
|
|
58
46
|
readonly tags?: string[];
|
|
59
47
|
}
|
|
48
|
+
export type { AbsoluteBudget, BaselineReference, BaselineStorage, BaselineSummaryData, Budget, BudgetPattern, BudgetResult, BudgetSummary, BudgetViolation, RelativeBudget, ResolvedBudgets, RunId, TaskId, };
|
|
49
|
+
export type { ModestBenchConfig, ModestBenchConfigInput };
|
|
50
|
+
export type { BenchmarkDefinition, BenchmarkDefinitionInput, BenchmarkSuite, BenchmarkSuiteInput, BenchmarkTask, BenchmarkTaskInput, } from "../config/benchmark-schema.cjs";
|
|
60
51
|
/**
|
|
61
52
|
* CI/CD environment information
|
|
62
53
|
*/
|
|
@@ -74,6 +65,18 @@ export interface CiInfo {
|
|
|
74
65
|
/** Pull request number */
|
|
75
66
|
readonly pullRequest?: string;
|
|
76
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* ModestBench Core Types
|
|
70
|
+
*
|
|
71
|
+
* Defines the fundamental data structures used throughout the ModestBench
|
|
72
|
+
* system. These types represent benchmark results, metadata, configuration, and
|
|
73
|
+
* system state.
|
|
74
|
+
*
|
|
75
|
+
* Note: BenchmarkDefinition, BenchmarkSuite, and BenchmarkTask types are
|
|
76
|
+
* derived from Zod schemas and re-exported from benchmark-schema.ts for type
|
|
77
|
+
* safety and consistency.
|
|
78
|
+
*/
|
|
79
|
+
export { createRunId, createTaskId } from "../utils/identifiers.cjs";
|
|
77
80
|
/**
|
|
78
81
|
* CPU information
|
|
79
82
|
*/
|
|
@@ -217,6 +220,10 @@ export interface GitInfo {
|
|
|
217
220
|
/** Commit timestamp */
|
|
218
221
|
readonly timestamp: Date;
|
|
219
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Configuration options for the JSON reporter
|
|
225
|
+
*/
|
|
226
|
+
export type JsonReporterConfig = z.infer<typeof jsonReporterConfigSchema>;
|
|
220
227
|
/**
|
|
221
228
|
* Memory information
|
|
222
229
|
*/
|
|
@@ -229,68 +236,12 @@ export interface MemoryInfo {
|
|
|
229
236
|
readonly used: number;
|
|
230
237
|
}
|
|
231
238
|
/**
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
* The JSON Schema for this configuration is available at
|
|
235
|
-
* `dist/schema/modestbench-config.schema.json` after building the project.
|
|
236
|
-
*
|
|
237
|
-
* Config files can optionally include a `$schema` property pointing to the
|
|
238
|
-
* schema file for IDE autocomplete and validation support.
|
|
239
|
+
* Reporter-specific configuration
|
|
239
240
|
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
* ```json
|
|
243
|
-
* {
|
|
244
|
-
* "$schema": "./node_modules/modestbench/dist/schema/modestbench-config.schema.json",
|
|
245
|
-
* "iterations": 1000,
|
|
246
|
-
* "reporters": ["human", "json"],
|
|
247
|
-
* "time": 5000
|
|
248
|
-
* }
|
|
249
|
-
* ```
|
|
241
|
+
* Provides typed configuration for known reporters. Unknown reporter configs
|
|
242
|
+
* are allowed via index signature.
|
|
250
243
|
*/
|
|
251
|
-
export
|
|
252
|
-
readonly $schema?: string | undefined;
|
|
253
|
-
/** Whether to stop on first failure */
|
|
254
|
-
readonly bail: boolean;
|
|
255
|
-
/** Name of baseline to use for relative budget comparisons */
|
|
256
|
-
readonly baseline?: string | undefined;
|
|
257
|
-
/** How to handle budget violations: 'fail', 'warn', or 'report' */
|
|
258
|
-
readonly budgetMode?: 'fail' | 'report' | 'warn' | undefined;
|
|
259
|
-
/** Performance budgets mapped by task identifier */
|
|
260
|
-
readonly budgets?: Record<string, unknown> | undefined;
|
|
261
|
-
/** Patterns to exclude from discovery */
|
|
262
|
-
readonly exclude: string[];
|
|
263
|
-
/** Tags to exclude from execution */
|
|
264
|
-
readonly excludeTags: string[];
|
|
265
|
-
/** Default number of iterations per task */
|
|
266
|
-
readonly iterations: number;
|
|
267
|
-
/** How to limit benchmark execution: 'time', 'iterations', 'any', or 'all' */
|
|
268
|
-
readonly limitBy: 'all' | 'any' | 'iterations' | 'time';
|
|
269
|
-
/** Custom metadata to attach to runs */
|
|
270
|
-
readonly metadata: Record<string, unknown>;
|
|
271
|
-
/** Output directory for reports (undefined means stdout for data reporters) */
|
|
272
|
-
readonly outputDir?: string;
|
|
273
|
-
/** Pattern(s) for discovering benchmark files */
|
|
274
|
-
readonly pattern: string | string[];
|
|
275
|
-
/** Whether to run in quiet mode */
|
|
276
|
-
readonly quiet: boolean;
|
|
277
|
-
/** Configuration for specific reporters */
|
|
278
|
-
readonly reporterConfig: Record<string, unknown>;
|
|
279
|
-
/** Reporters to use for output */
|
|
280
|
-
readonly reporters: string[];
|
|
281
|
-
/** Tags to include (if empty, include all) */
|
|
282
|
-
readonly tags: string[];
|
|
283
|
-
/** Threshold configuration for performance assertions */
|
|
284
|
-
readonly thresholds: ThresholdConfig;
|
|
285
|
-
/** Maximum time to spend on each task in milliseconds */
|
|
286
|
-
readonly time: number;
|
|
287
|
-
/** Timeout for individual tasks in milliseconds */
|
|
288
|
-
readonly timeout: number;
|
|
289
|
-
/** Whether to run in verbose mode */
|
|
290
|
-
readonly verbose: boolean;
|
|
291
|
-
/** Number of warmup iterations before measurement */
|
|
292
|
-
readonly warmup: number;
|
|
293
|
-
}
|
|
244
|
+
export type ReporterConfig = z.infer<typeof reporterConfigSchema>;
|
|
294
245
|
/**
|
|
295
246
|
* Summary statistics for a benchmark run
|
|
296
247
|
*/
|
|
@@ -376,6 +327,8 @@ export interface TaskResult {
|
|
|
376
327
|
}
|
|
377
328
|
/**
|
|
378
329
|
* Threshold configuration for performance assertions
|
|
330
|
+
*
|
|
331
|
+
* TODO: Derive from thresholdConfigSchema via z.infer (see #15)
|
|
379
332
|
*/
|
|
380
333
|
export interface ThresholdConfig {
|
|
381
334
|
/** Maximum allowed margin of error percentage */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"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"}
|
package/dist/types/core.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { jsonReporterConfigSchema, ModestBenchConfig, ModestBenchConfigInput, reporterConfigSchema } from "../config/schema.js";
|
|
3
|
+
import type { AbsoluteBudget, BaselineReference, BaselineStorage, BaselineSummaryData, Budget, BudgetPattern, BudgetResult, BudgetSummary, BudgetViolation, RelativeBudget, ResolvedBudgets, RunId, TaskId } from "./budgets.js";
|
|
4
4
|
/**
|
|
5
5
|
* Benchmark file structure after parsing
|
|
6
6
|
*/
|
|
@@ -14,18 +14,6 @@ export interface BenchmarkFile {
|
|
|
14
14
|
/** File metadata */
|
|
15
15
|
readonly metadata: FileMetadata;
|
|
16
16
|
}
|
|
17
|
-
/**
|
|
18
|
-
* ModestBench Core Types
|
|
19
|
-
*
|
|
20
|
-
* Defines the fundamental data structures used throughout the ModestBench
|
|
21
|
-
* system. These types represent benchmark results, metadata, configuration, and
|
|
22
|
-
* system state.
|
|
23
|
-
*
|
|
24
|
-
* Note: BenchmarkDefinition, BenchmarkSuite, and BenchmarkTask types are
|
|
25
|
-
* derived from Zod schemas and re-exported from benchmark-schema.ts for type
|
|
26
|
-
* safety and consistency.
|
|
27
|
-
*/
|
|
28
|
-
export { createRunId, createTaskId } from "../utils/identifiers.js";
|
|
29
17
|
/**
|
|
30
18
|
* Represents a complete benchmark run across multiple files
|
|
31
19
|
*/
|
|
@@ -57,6 +45,9 @@ export interface BenchmarkRun {
|
|
|
57
45
|
/** Run-level tags */
|
|
58
46
|
readonly tags?: string[];
|
|
59
47
|
}
|
|
48
|
+
export type { AbsoluteBudget, BaselineReference, BaselineStorage, BaselineSummaryData, Budget, BudgetPattern, BudgetResult, BudgetSummary, BudgetViolation, RelativeBudget, ResolvedBudgets, RunId, TaskId, };
|
|
49
|
+
export type { ModestBenchConfig, ModestBenchConfigInput };
|
|
50
|
+
export type { BenchmarkDefinition, BenchmarkDefinitionInput, BenchmarkSuite, BenchmarkSuiteInput, BenchmarkTask, BenchmarkTaskInput, } from "../config/benchmark-schema.js";
|
|
60
51
|
/**
|
|
61
52
|
* CI/CD environment information
|
|
62
53
|
*/
|
|
@@ -74,6 +65,18 @@ export interface CiInfo {
|
|
|
74
65
|
/** Pull request number */
|
|
75
66
|
readonly pullRequest?: string;
|
|
76
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* ModestBench Core Types
|
|
70
|
+
*
|
|
71
|
+
* Defines the fundamental data structures used throughout the ModestBench
|
|
72
|
+
* system. These types represent benchmark results, metadata, configuration, and
|
|
73
|
+
* system state.
|
|
74
|
+
*
|
|
75
|
+
* Note: BenchmarkDefinition, BenchmarkSuite, and BenchmarkTask types are
|
|
76
|
+
* derived from Zod schemas and re-exported from benchmark-schema.ts for type
|
|
77
|
+
* safety and consistency.
|
|
78
|
+
*/
|
|
79
|
+
export { createRunId, createTaskId } from "../utils/identifiers.js";
|
|
77
80
|
/**
|
|
78
81
|
* CPU information
|
|
79
82
|
*/
|
|
@@ -217,6 +220,10 @@ export interface GitInfo {
|
|
|
217
220
|
/** Commit timestamp */
|
|
218
221
|
readonly timestamp: Date;
|
|
219
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Configuration options for the JSON reporter
|
|
225
|
+
*/
|
|
226
|
+
export type JsonReporterConfig = z.infer<typeof jsonReporterConfigSchema>;
|
|
220
227
|
/**
|
|
221
228
|
* Memory information
|
|
222
229
|
*/
|
|
@@ -229,68 +236,12 @@ export interface MemoryInfo {
|
|
|
229
236
|
readonly used: number;
|
|
230
237
|
}
|
|
231
238
|
/**
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
* The JSON Schema for this configuration is available at
|
|
235
|
-
* `dist/schema/modestbench-config.schema.json` after building the project.
|
|
236
|
-
*
|
|
237
|
-
* Config files can optionally include a `$schema` property pointing to the
|
|
238
|
-
* schema file for IDE autocomplete and validation support.
|
|
239
|
+
* Reporter-specific configuration
|
|
239
240
|
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
* ```json
|
|
243
|
-
* {
|
|
244
|
-
* "$schema": "./node_modules/modestbench/dist/schema/modestbench-config.schema.json",
|
|
245
|
-
* "iterations": 1000,
|
|
246
|
-
* "reporters": ["human", "json"],
|
|
247
|
-
* "time": 5000
|
|
248
|
-
* }
|
|
249
|
-
* ```
|
|
241
|
+
* Provides typed configuration for known reporters. Unknown reporter configs
|
|
242
|
+
* are allowed via index signature.
|
|
250
243
|
*/
|
|
251
|
-
export
|
|
252
|
-
readonly $schema?: string | undefined;
|
|
253
|
-
/** Whether to stop on first failure */
|
|
254
|
-
readonly bail: boolean;
|
|
255
|
-
/** Name of baseline to use for relative budget comparisons */
|
|
256
|
-
readonly baseline?: string | undefined;
|
|
257
|
-
/** How to handle budget violations: 'fail', 'warn', or 'report' */
|
|
258
|
-
readonly budgetMode?: 'fail' | 'report' | 'warn' | undefined;
|
|
259
|
-
/** Performance budgets mapped by task identifier */
|
|
260
|
-
readonly budgets?: Record<string, unknown> | undefined;
|
|
261
|
-
/** Patterns to exclude from discovery */
|
|
262
|
-
readonly exclude: string[];
|
|
263
|
-
/** Tags to exclude from execution */
|
|
264
|
-
readonly excludeTags: string[];
|
|
265
|
-
/** Default number of iterations per task */
|
|
266
|
-
readonly iterations: number;
|
|
267
|
-
/** How to limit benchmark execution: 'time', 'iterations', 'any', or 'all' */
|
|
268
|
-
readonly limitBy: 'all' | 'any' | 'iterations' | 'time';
|
|
269
|
-
/** Custom metadata to attach to runs */
|
|
270
|
-
readonly metadata: Record<string, unknown>;
|
|
271
|
-
/** Output directory for reports (undefined means stdout for data reporters) */
|
|
272
|
-
readonly outputDir?: string;
|
|
273
|
-
/** Pattern(s) for discovering benchmark files */
|
|
274
|
-
readonly pattern: string | string[];
|
|
275
|
-
/** Whether to run in quiet mode */
|
|
276
|
-
readonly quiet: boolean;
|
|
277
|
-
/** Configuration for specific reporters */
|
|
278
|
-
readonly reporterConfig: Record<string, unknown>;
|
|
279
|
-
/** Reporters to use for output */
|
|
280
|
-
readonly reporters: string[];
|
|
281
|
-
/** Tags to include (if empty, include all) */
|
|
282
|
-
readonly tags: string[];
|
|
283
|
-
/** Threshold configuration for performance assertions */
|
|
284
|
-
readonly thresholds: ThresholdConfig;
|
|
285
|
-
/** Maximum time to spend on each task in milliseconds */
|
|
286
|
-
readonly time: number;
|
|
287
|
-
/** Timeout for individual tasks in milliseconds */
|
|
288
|
-
readonly timeout: number;
|
|
289
|
-
/** Whether to run in verbose mode */
|
|
290
|
-
readonly verbose: boolean;
|
|
291
|
-
/** Number of warmup iterations before measurement */
|
|
292
|
-
readonly warmup: number;
|
|
293
|
-
}
|
|
244
|
+
export type ReporterConfig = z.infer<typeof reporterConfigSchema>;
|
|
294
245
|
/**
|
|
295
246
|
* Summary statistics for a benchmark run
|
|
296
247
|
*/
|
|
@@ -376,6 +327,8 @@ export interface TaskResult {
|
|
|
376
327
|
}
|
|
377
328
|
/**
|
|
378
329
|
* Threshold configuration for performance assertions
|
|
330
|
+
*
|
|
331
|
+
* TODO: Derive from thresholdConfigSchema via z.infer (see #15)
|
|
379
332
|
*/
|
|
380
333
|
export interface ThresholdConfig {
|
|
381
334
|
/** Maximum allowed margin of error percentage */
|
package/dist/types/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"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"}
|
package/dist/types/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAqHA;;;;;;;;;;GAUG;AAEH,wCAAwC;AACxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gCAAgC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "modestbench",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A full-ass benchmarking framework for Node.js",
|
|
6
6
|
"repository": {
|
|
@@ -93,14 +93,12 @@
|
|
|
93
93
|
"build:schema": "tsx scripts/generate-schema.ts",
|
|
94
94
|
"clean": "rm -rf dist",
|
|
95
95
|
"commitlint": "commitlint",
|
|
96
|
-
"dev": "zshy --watch",
|
|
97
96
|
"docs:build": "run-s build:schema docs:copy astro:build",
|
|
98
97
|
"docs:copy": "tsx scripts/copy-docs.ts",
|
|
99
98
|
"docs:dev": "run-s docs:copy astro:dev",
|
|
100
99
|
"docs:preview": "astro preview --config astro.config.js",
|
|
101
100
|
"fix": "run-s -sl fix:*",
|
|
102
101
|
"fix:eslint": "eslint --fix .",
|
|
103
|
-
"fix:pkg": "npm pkg fix",
|
|
104
102
|
"fix:prettier": "prettier --write . && markdownlint-cli2 --fix \"**/*.md\"",
|
|
105
103
|
"lint": "run-p -sl --aggregate-output lint:*",
|
|
106
104
|
"lint-staged": "lint-staged",
|
|
@@ -123,53 +121,53 @@
|
|
|
123
121
|
"test:watch": "npm run test:base -- --watch"
|
|
124
122
|
},
|
|
125
123
|
"dependencies": {
|
|
124
|
+
"@boneskull/bargs": "3.6.2",
|
|
126
125
|
"cosmiconfig": "9.0.0",
|
|
127
126
|
"cosmiconfig-typescript-loader": "6.2.0",
|
|
128
127
|
"glob": "13.0.0",
|
|
129
128
|
"minimatch": "10.1.1",
|
|
130
129
|
"tinybench": "6.0.0",
|
|
131
|
-
"
|
|
132
|
-
"zod": "4.1.13"
|
|
130
|
+
"zod": "4.2.1"
|
|
133
131
|
},
|
|
134
132
|
"devDependencies": {
|
|
135
133
|
"@astrojs/mdx": "4.3.13",
|
|
136
134
|
"@astrojs/starlight": "0.37.1",
|
|
137
135
|
"@commitlint/cli": "20.2.0",
|
|
138
136
|
"@commitlint/config-conventional": "20.2.0",
|
|
139
|
-
"@eslint/js": "9.39.
|
|
137
|
+
"@eslint/js": "9.39.2",
|
|
140
138
|
"@jest/globals": "30.2.0",
|
|
141
139
|
"@pasqal-io/starlight-client-mermaid": "0.1.0",
|
|
142
140
|
"@stylistic/eslint-plugin": "5.6.1",
|
|
143
141
|
"@types/mocha": "10.0.10",
|
|
144
|
-
"@types/node": "24.10.
|
|
142
|
+
"@types/node": "24.10.4",
|
|
145
143
|
"@types/wallabyjs": "0.0.15",
|
|
146
|
-
"
|
|
147
|
-
"
|
|
148
|
-
"astro": "5.16.5",
|
|
144
|
+
"asciinema-player": "3.13.5",
|
|
145
|
+
"astro": "5.16.6",
|
|
149
146
|
"astro-broken-link-checker": "file:./vendor/astro-broken-link-checker",
|
|
150
147
|
"ava": "6.4.1",
|
|
151
148
|
"bupkis": "0.14.0",
|
|
152
149
|
"cspell": "9.4.0",
|
|
153
|
-
"eslint": "9.39.
|
|
150
|
+
"eslint": "9.39.2",
|
|
154
151
|
"eslint-plugin-jsonc": "2.21.0",
|
|
155
|
-
"eslint-plugin-perfectionist": "
|
|
152
|
+
"eslint-plugin-perfectionist": "5.2.0",
|
|
156
153
|
"globals": "16.5.0",
|
|
157
154
|
"husky": "9.1.7",
|
|
158
155
|
"jest": "30.2.0",
|
|
159
|
-
"knip": "5.
|
|
156
|
+
"knip": "5.78.0",
|
|
160
157
|
"lint-staged": "16.2.7",
|
|
161
158
|
"markdownlint-cli2": "0.20.0",
|
|
162
159
|
"markdownlint-cli2-formatter-pretty": "0.0.9",
|
|
163
160
|
"mocha": "11.7.5",
|
|
164
161
|
"npm-run-all2": "8.0.4",
|
|
165
162
|
"prettier": "3.7.4",
|
|
163
|
+
"prettier-plugin-astro": "0.14.1",
|
|
166
164
|
"prettier-plugin-jsdoc": "1.8.0",
|
|
167
165
|
"prettier-plugin-pkg": "0.21.2",
|
|
168
166
|
"prettier-plugin-sort-json": "4.1.1",
|
|
169
167
|
"tsd": "0.33.0",
|
|
170
168
|
"tsx": "4.21.0",
|
|
171
169
|
"typescript": "5.9.3",
|
|
172
|
-
"typescript-eslint": "8.
|
|
170
|
+
"typescript-eslint": "8.50.1",
|
|
173
171
|
"zshy": "0.6.0"
|
|
174
172
|
},
|
|
175
173
|
"publishConfig": {
|
|
@@ -181,7 +179,6 @@
|
|
|
181
179
|
"@types/wallabyjs",
|
|
182
180
|
"@types/mocha",
|
|
183
181
|
"markdownlint-cli2-formatter-pretty",
|
|
184
|
-
"asciinema-player",
|
|
185
182
|
"@astrojs/mdx",
|
|
186
183
|
"astro-broken-link-checker",
|
|
187
184
|
"jest",
|
|
@@ -215,6 +212,9 @@
|
|
|
215
212
|
}
|
|
216
213
|
},
|
|
217
214
|
"lint-staged": {
|
|
215
|
+
"*.{astro,css}": [
|
|
216
|
+
"prettier --write"
|
|
217
|
+
],
|
|
218
218
|
"*.{ts,cts,js,cjs,yml,json5}": [
|
|
219
219
|
"eslint --fix",
|
|
220
220
|
"prettier --write",
|
|
@@ -238,7 +238,16 @@
|
|
|
238
238
|
"prettier": {
|
|
239
239
|
"jsdocCommentLineStrategy": "keep",
|
|
240
240
|
"jsdocPreferCodeFences": true,
|
|
241
|
+
"overrides": [
|
|
242
|
+
{
|
|
243
|
+
"files": "*.astro",
|
|
244
|
+
"options": {
|
|
245
|
+
"parser": "astro"
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
],
|
|
241
249
|
"plugins": [
|
|
250
|
+
"prettier-plugin-astro",
|
|
242
251
|
"prettier-plugin-jsdoc",
|
|
243
252
|
"prettier-plugin-pkg",
|
|
244
253
|
"prettier-plugin-sort-json"
|
package/src/adapters/types.ts
CHANGED
|
@@ -69,13 +69,13 @@ const formatDuration = (nanoseconds: number): string => {
|
|
|
69
69
|
if (nanoseconds < 1000) {
|
|
70
70
|
return `${nanoseconds.toFixed(2)}ns`;
|
|
71
71
|
}
|
|
72
|
-
if (nanoseconds <
|
|
72
|
+
if (nanoseconds < 1_000_000) {
|
|
73
73
|
return `${(nanoseconds / 1000).toFixed(2)}μs`;
|
|
74
74
|
}
|
|
75
|
-
if (nanoseconds <
|
|
76
|
-
return `${(nanoseconds /
|
|
75
|
+
if (nanoseconds < 1_000_000_000) {
|
|
76
|
+
return `${(nanoseconds / 1_000_000).toFixed(2)}ms`;
|
|
77
77
|
}
|
|
78
|
-
return `${(nanoseconds /
|
|
78
|
+
return `${(nanoseconds / 1_000_000_000).toFixed(2)}s`;
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
/**
|
|
@@ -85,13 +85,13 @@ const formatOpsPerSec = (ops: number): string => {
|
|
|
85
85
|
if (ops < 1000) {
|
|
86
86
|
return `${ops.toFixed(2)} ops/sec`;
|
|
87
87
|
}
|
|
88
|
-
if (ops <
|
|
88
|
+
if (ops < 1_000_000) {
|
|
89
89
|
return `${(ops / 1000).toFixed(2)}K ops/sec`;
|
|
90
90
|
}
|
|
91
|
-
if (ops <
|
|
92
|
-
return `${(ops /
|
|
91
|
+
if (ops < 1_000_000_000) {
|
|
92
|
+
return `${(ops / 1_000_000).toFixed(2)}M ops/sec`;
|
|
93
93
|
}
|
|
94
|
-
return `${(ops /
|
|
94
|
+
return `${(ops / 1_000_000_000).toFixed(2)}B ops/sec`;
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
/**
|
package/src/cli/commands/init.ts
CHANGED
|
@@ -51,7 +51,7 @@ const PROJECT_TEMPLATES = {
|
|
|
51
51
|
outputDir: DEFAULT_OUTPUT_DIR,
|
|
52
52
|
pattern: `${DEFAULT_BENCHMARK_DIR}/**/*.bench.{js,ts}`,
|
|
53
53
|
reporters: ['human', 'json'],
|
|
54
|
-
time:
|
|
54
|
+
time: 10_000,
|
|
55
55
|
warmup: 50,
|
|
56
56
|
},
|
|
57
57
|
description: 'Feature-rich setup with multiple reporters and configuration',
|
|
@@ -77,7 +77,7 @@ const PROJECT_TEMPLATES = {
|
|
|
77
77
|
outputDir: DEFAULT_OUTPUT_DIR,
|
|
78
78
|
pattern: `${DEFAULT_BENCHMARK_DIR}/**/*.bench.{js,ts}`,
|
|
79
79
|
reporters: ['human', 'json'],
|
|
80
|
-
time:
|
|
80
|
+
time: 15_000,
|
|
81
81
|
warmup: 100,
|
|
82
82
|
},
|
|
83
83
|
description: 'Optimized for library performance testing',
|