modestbench 0.7.0 → 0.9.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.
- package/CHANGELOG.md +25 -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/run.cjs +93 -49
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.d.cts +1 -0
- package/dist/cli/commands/run.d.cts.map +1 -1
- package/dist/cli/commands/run.d.ts +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +95 -51
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.cjs +7 -1
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +7 -1
- 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/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/constants.cjs +2 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +2 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.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/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/errors/index.cjs +3 -1
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +1 -1
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/reporter.cjs +45 -1
- package/dist/errors/reporter.cjs.map +1 -1
- package/dist/errors/reporter.d.cts +32 -0
- package/dist/errors/reporter.d.cts.map +1 -1
- package/dist/errors/reporter.d.ts +32 -0
- package/dist/errors/reporter.d.ts.map +1 -1
- package/dist/errors/reporter.js +42 -0
- package/dist/errors/reporter.js.map +1 -1
- package/dist/index.cjs +16 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.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/schema/modestbench-config.schema.json +94 -87
- package/dist/services/budget-evaluator.cjs +8 -6
- 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 +8 -6
- 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/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-loader.cjs +281 -0
- package/dist/services/reporter-loader.cjs.map +1 -0
- package/dist/services/reporter-loader.d.cts +67 -0
- package/dist/services/reporter-loader.d.cts.map +1 -0
- package/dist/services/reporter-loader.d.ts +67 -0
- package/dist/services/reporter-loader.d.ts.map +1 -0
- package/dist/services/reporter-loader.js +241 -0
- package/dist/services/reporter-loader.js.map +1 -0
- 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/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +1 -0
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/plugin.cjs +9 -0
- package/dist/types/plugin.cjs.map +1 -0
- package/dist/types/plugin.d.cts +179 -0
- package/dist/types/plugin.d.cts.map +1 -0
- package/dist/types/plugin.d.ts +179 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +8 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/utils/package.cjs +66 -5
- package/dist/utils/package.cjs.map +1 -1
- package/dist/utils/package.d.cts +6 -0
- package/dist/utils/package.d.cts.map +1 -1
- package/dist/utils/package.d.ts +6 -0
- package/dist/utils/package.d.ts.map +1 -1
- package/dist/utils/package.js +31 -1
- package/dist/utils/package.js.map +1 -1
- package/dist/utils/reporter-utils.cjs +90 -0
- package/dist/utils/reporter-utils.cjs.map +1 -0
- package/dist/utils/reporter-utils.d.cts +42 -0
- package/dist/utils/reporter-utils.d.cts.map +1 -0
- package/dist/utils/reporter-utils.d.ts +42 -0
- package/dist/utils/reporter-utils.d.ts.map +1 -0
- package/dist/utils/reporter-utils.js +83 -0
- package/dist/utils/reporter-utils.js.map +1 -0
- package/package.json +20 -9
- package/src/adapters/types.ts +1 -1
- package/src/cli/commands/run.ts +140 -69
- package/src/cli/index.ts +8 -1
- package/src/{core → config}/benchmark-schema.ts +1 -1
- package/src/config/schema.ts +379 -302
- package/src/constants.ts +2 -0
- package/src/core/engine.ts +74 -69
- package/src/core/output-path-resolver.ts +14 -0
- package/src/errors/index.ts +2 -0
- package/src/errors/reporter.ts +55 -0
- package/src/index.ts +19 -1
- package/src/reporters/json.ts +1 -1
- package/src/services/budget-evaluator.ts +13 -9
- package/src/services/budget-resolver.ts +254 -0
- package/src/services/file-loader.ts +1 -1
- package/src/services/reporter-loader.ts +323 -0
- package/src/types/budgets.ts +38 -0
- package/src/types/core.ts +64 -99
- package/src/types/index.ts +3 -0
- package/src/types/plugin.ts +197 -0
- package/src/utils/package.ts +32 -1
- package/src/utils/reporter-utils.ts +85 -0
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-schema.d.ts","sourceRoot":"","sources":["../../src/config/benchmark-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Types are derived from schemas using z.infer (output) and z.input (input).
|
|
8
8
|
*/
|
|
9
9
|
import { z } from 'zod';
|
|
10
|
-
import { partialModestBenchConfigSchema } from "
|
|
10
|
+
import { partialModestBenchConfigSchema } from "./schema.js";
|
|
11
11
|
/**
|
|
12
12
|
* Schema for benchmark functions
|
|
13
13
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark-schema.js","sourceRoot":"","sources":["../../src/config/benchmark-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.cjs
CHANGED
|
@@ -40,10 +40,34 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
};
|
|
41
41
|
})();
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.safeParseConfig = exports.safeParsePartialConfig = exports.partialModestBenchConfigSchema = void 0;
|
|
43
|
+
exports.safeParseConfig = exports.safeParsePartialConfig = exports.partialModestBenchConfigSchema = exports.partialModestBenchConfigInputSchema = exports.reporterConfigSchema = exports.jsonReporterConfigSchema = void 0;
|
|
44
44
|
const z = __importStar(require("zod"));
|
|
45
45
|
const constants_js_1 = require("../constants.cjs");
|
|
46
|
+
const budget_resolver_js_1 = require("../services/budget-resolver.cjs");
|
|
46
47
|
const budget_schema_js_1 = require("./budget-schema.cjs");
|
|
48
|
+
/**
|
|
49
|
+
* Schema for JSON reporter configuration options
|
|
50
|
+
*/
|
|
51
|
+
exports.jsonReporterConfigSchema = z.object({
|
|
52
|
+
prettyPrint: z
|
|
53
|
+
.boolean()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe('Whether to pretty-print JSON output (default: false)'),
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Schema for reporter-specific configuration
|
|
59
|
+
*
|
|
60
|
+
* Allows typed configuration for known reporters while permitting unknown
|
|
61
|
+
* reporter configs via catchall.
|
|
62
|
+
*/
|
|
63
|
+
exports.reporterConfigSchema = z
|
|
64
|
+
.object({
|
|
65
|
+
json: exports.jsonReporterConfigSchema
|
|
66
|
+
.optional()
|
|
67
|
+
.describe('Configuration options for the JSON reporter'),
|
|
68
|
+
})
|
|
69
|
+
.catchall(z.unknown())
|
|
70
|
+
.describe('Configuration options specific to individual reporters, keyed by reporter name');
|
|
47
71
|
/**
|
|
48
72
|
* Schema for threshold configuration
|
|
49
73
|
*
|
|
@@ -88,11 +112,11 @@ const thresholdConfigSchema = z
|
|
|
88
112
|
title: 'Threshold Configuration',
|
|
89
113
|
});
|
|
90
114
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
115
|
+
* Input schema for budget values (before transformation)
|
|
116
|
+
*
|
|
117
|
+
* Accepts string values like "10ms" or "10%" for human-readable configuration.
|
|
94
118
|
*/
|
|
95
|
-
const
|
|
119
|
+
const budgetInputSchema = z
|
|
96
120
|
.object({
|
|
97
121
|
absolute: z
|
|
98
122
|
.object({
|
|
@@ -102,6 +126,7 @@ const budgetSchema = z
|
|
|
102
126
|
.describe('Maximum 99th percentile in nanoseconds or time string'),
|
|
103
127
|
maxTime: z
|
|
104
128
|
.union([z.number().positive(), z.string()])
|
|
129
|
+
.optional()
|
|
105
130
|
.describe('Maximum mean time in nanoseconds or time string (e.g., "10ms")'),
|
|
106
131
|
minOpsPerSec: z
|
|
107
132
|
.number()
|
|
@@ -123,13 +148,119 @@ const budgetSchema = z
|
|
|
123
148
|
})
|
|
124
149
|
.describe('Performance budget with absolute and/or relative thresholds');
|
|
125
150
|
/**
|
|
126
|
-
*
|
|
151
|
+
* Transform budget values (parse time/percentage strings to numbers)
|
|
127
152
|
*
|
|
128
|
-
*
|
|
129
|
-
* configuration from all sources (files, CLI args, defaults).
|
|
153
|
+
* Returns a Budget object with all string values converted to numbers.
|
|
130
154
|
*/
|
|
131
|
-
const
|
|
132
|
-
|
|
155
|
+
const transformBudgetValues = (budget) => {
|
|
156
|
+
return {
|
|
157
|
+
// Build absolute budget object if present
|
|
158
|
+
absolute: budget.absolute
|
|
159
|
+
? {
|
|
160
|
+
maxP99: budget.absolute.maxP99 !== undefined
|
|
161
|
+
? typeof budget.absolute.maxP99 === 'string'
|
|
162
|
+
? (0, budget_schema_js_1.parseTimeString)(budget.absolute.maxP99)
|
|
163
|
+
: budget.absolute.maxP99
|
|
164
|
+
: undefined,
|
|
165
|
+
maxTime: budget.absolute.maxTime !== undefined
|
|
166
|
+
? typeof budget.absolute.maxTime === 'string'
|
|
167
|
+
? (0, budget_schema_js_1.parseTimeString)(budget.absolute.maxTime)
|
|
168
|
+
: budget.absolute.maxTime
|
|
169
|
+
: undefined,
|
|
170
|
+
minOpsPerSec: budget.absolute.minOpsPerSec,
|
|
171
|
+
}
|
|
172
|
+
: undefined,
|
|
173
|
+
// Build relative budget object if present
|
|
174
|
+
relative: budget.relative
|
|
175
|
+
? {
|
|
176
|
+
maxRegression: budget.relative.maxRegression !== undefined
|
|
177
|
+
? typeof budget.relative.maxRegression === 'string'
|
|
178
|
+
? (0, budget_schema_js_1.parsePercentageString)(budget.relative.maxRegression)
|
|
179
|
+
: budget.relative.maxRegression
|
|
180
|
+
: undefined,
|
|
181
|
+
}
|
|
182
|
+
: undefined,
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Budget schema with transform for string-to-number conversion
|
|
187
|
+
*
|
|
188
|
+
* Input: Budget with string values like "10ms" or "10%" Output: Budget with
|
|
189
|
+
* numeric values only
|
|
190
|
+
*/
|
|
191
|
+
const budgetSchema = budgetInputSchema.transform(transformBudgetValues);
|
|
192
|
+
/**
|
|
193
|
+
* Input schema for budgets (nested file → suite → task → budget structure)
|
|
194
|
+
* without transforms - used for JSON Schema generation.
|
|
195
|
+
*/
|
|
196
|
+
const budgetsRawInputSchema = z.record(z.string(), z.record(z.string(), z.record(z.string(), budgetInputSchema)));
|
|
197
|
+
/**
|
|
198
|
+
* Input schema for budgets with individual budget transforms applied.
|
|
199
|
+
*
|
|
200
|
+
* Used to validate the human-readable nested format from config files.
|
|
201
|
+
*/
|
|
202
|
+
const budgetsInputSchema = z.record(z.string(), z.record(z.string(), z.record(z.string(), budgetSchema)));
|
|
203
|
+
/**
|
|
204
|
+
* Check if a suite or task name is a wildcard
|
|
205
|
+
*
|
|
206
|
+
* @param name - The suite or task name
|
|
207
|
+
* @returns True if the name is a wildcard (`*`)
|
|
208
|
+
*/
|
|
209
|
+
const isWildcard = (name) => name === '*';
|
|
210
|
+
/**
|
|
211
|
+
* Check if a budget entry contains any wildcards or glob patterns
|
|
212
|
+
*
|
|
213
|
+
* @param file - File pattern
|
|
214
|
+
* @param suite - Suite name or wildcard
|
|
215
|
+
* @param task - Task name or wildcard
|
|
216
|
+
* @returns True if any part contains wildcards
|
|
217
|
+
*/
|
|
218
|
+
const hasWildcards = (file, suite, task) => {
|
|
219
|
+
return (0, budget_resolver_js_1.isGlobPattern)(file) || isWildcard(suite) || isWildcard(task);
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* Transform nested budget structure to ResolvedBudgets with exact matches and
|
|
223
|
+
* patterns separated
|
|
224
|
+
*
|
|
225
|
+
* @param nested - Nested budgets structure (file → suite → task → budget)
|
|
226
|
+
* @returns ResolvedBudgets with exact matches and wildcard patterns
|
|
227
|
+
*/
|
|
228
|
+
const flattenBudgets = (nested) => {
|
|
229
|
+
const exact = {};
|
|
230
|
+
const patterns = [];
|
|
231
|
+
for (const [file, suites] of Object.entries(nested)) {
|
|
232
|
+
for (const [suite, tasks] of Object.entries(suites)) {
|
|
233
|
+
for (const [task, budget] of Object.entries(tasks)) {
|
|
234
|
+
if (hasWildcards(file, suite, task)) {
|
|
235
|
+
// This is a pattern budget
|
|
236
|
+
patterns.push((0, budget_resolver_js_1.createBudgetPattern)(file, suite, task, budget));
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
// This is an exact match
|
|
240
|
+
const taskId = `${file}/${suite}/${task}`;
|
|
241
|
+
exact[taskId] = budget;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// Sort patterns by specificity descending for consistent iteration order
|
|
247
|
+
patterns.sort((a, b) => b.specificity - a.specificity);
|
|
248
|
+
return { exact, patterns };
|
|
249
|
+
};
|
|
250
|
+
/**
|
|
251
|
+
* Budgets schema with transform for nested-to-ResolvedBudgets conversion
|
|
252
|
+
*
|
|
253
|
+
* Input: { [file]: { [suite]: { [task]: Budget } } } Output: ResolvedBudgets {
|
|
254
|
+
* exact: { [taskId]: Budget }, patterns: BudgetPattern[] }
|
|
255
|
+
*/
|
|
256
|
+
const budgetsSchema = budgetsInputSchema.transform(flattenBudgets);
|
|
257
|
+
/**
|
|
258
|
+
* Shared configuration properties (everything except budgets)
|
|
259
|
+
*
|
|
260
|
+
* These properties are identical between the runtime schema (with transforms)
|
|
261
|
+
* and the JSON Schema generation schema (without transforms).
|
|
262
|
+
*/
|
|
263
|
+
const baseConfigProperties = {
|
|
133
264
|
$schema: z
|
|
134
265
|
.string()
|
|
135
266
|
.optional()
|
|
@@ -143,10 +274,6 @@ const modestBenchConfigSchema = z
|
|
|
143
274
|
.enum(['fail', 'warn', 'report'])
|
|
144
275
|
.optional()
|
|
145
276
|
.describe('How to handle budget violations: "fail" exits with error (default), "warn" shows warnings, "report" includes in output without failing'),
|
|
146
|
-
budgets: z
|
|
147
|
-
.record(z.string(), z.record(z.string(), z.record(z.string(), budgetSchema)))
|
|
148
|
-
.optional()
|
|
149
|
-
.describe('Performance budgets organized by file → suite → task. Budgets define acceptable performance thresholds.'),
|
|
150
277
|
exclude: z
|
|
151
278
|
.array(z.string())
|
|
152
279
|
.describe('Glob patterns to exclude from benchmark file discovery (e.g., "node_modules/**", ".git/**")'),
|
|
@@ -214,9 +341,7 @@ const modestBenchConfigSchema = z
|
|
|
214
341
|
quiet: z
|
|
215
342
|
.boolean()
|
|
216
343
|
.describe('Run in quiet mode with minimal console output (only errors and final results)'),
|
|
217
|
-
reporterConfig:
|
|
218
|
-
.record(z.string(), z.unknown())
|
|
219
|
-
.describe('Configuration options specific to individual reporters, keyed by reporter name'),
|
|
344
|
+
reporterConfig: exports.reporterConfigSchema,
|
|
220
345
|
reporters: z
|
|
221
346
|
.array(z.string())
|
|
222
347
|
.min(1)
|
|
@@ -243,99 +368,68 @@ const modestBenchConfigSchema = z
|
|
|
243
368
|
.int()
|
|
244
369
|
.nonnegative()
|
|
245
370
|
.describe('Number of warmup iterations to run before measurement begins. Warmup helps stabilize performance by allowing JIT compilation and caching to occur.'),
|
|
371
|
+
};
|
|
372
|
+
/** Description for the budgets field */
|
|
373
|
+
const budgetsDescription = 'Performance budgets organized by file → suite → task. Budgets define acceptable performance thresholds. Supports wildcards (* for suite/task, glob patterns for files).';
|
|
374
|
+
/** Description and metadata for the config schema */
|
|
375
|
+
const configSchemaDescription = 'ModestBench configuration for controlling benchmark discovery, execution, and reporting';
|
|
376
|
+
const configSchemaMeta = { title: 'ModestBench Configuration' };
|
|
377
|
+
/**
|
|
378
|
+
* Schema for the main ModestBench configuration
|
|
379
|
+
*
|
|
380
|
+
* This is the complete configuration schema used for validating benchmark
|
|
381
|
+
* configuration from all sources (files, CLI args, defaults).
|
|
382
|
+
*
|
|
383
|
+
* The budgets field uses transforms to:
|
|
384
|
+
*
|
|
385
|
+
* 1. Parse string values like "10ms" or "10%" to numbers
|
|
386
|
+
* 2. Separate exact matches from wildcard patterns into ResolvedBudgets
|
|
387
|
+
*/
|
|
388
|
+
const modestBenchConfigSchema = z
|
|
389
|
+
.object({
|
|
390
|
+
...baseConfigProperties,
|
|
391
|
+
budgets: budgetsSchema.optional().describe(budgetsDescription),
|
|
246
392
|
})
|
|
247
393
|
.strict()
|
|
248
|
-
.describe(
|
|
249
|
-
.meta(
|
|
250
|
-
title: 'ModestBench Configuration',
|
|
251
|
-
});
|
|
394
|
+
.describe(configSchemaDescription)
|
|
395
|
+
.meta(configSchemaMeta);
|
|
252
396
|
/**
|
|
253
|
-
*
|
|
397
|
+
* Input schema for configuration (without transforms)
|
|
254
398
|
*
|
|
255
|
-
* This is used for
|
|
256
|
-
*
|
|
399
|
+
* This schema is used for JSON Schema generation. It validates the same input
|
|
400
|
+
* structure but without transforms, which can't be represented in JSON Schema
|
|
401
|
+
* format.
|
|
257
402
|
*/
|
|
258
|
-
|
|
403
|
+
const modestBenchConfigInputSchema = z
|
|
404
|
+
.object({
|
|
405
|
+
...baseConfigProperties,
|
|
406
|
+
budgets: budgetsRawInputSchema.optional().describe(budgetsDescription),
|
|
407
|
+
})
|
|
408
|
+
.strict()
|
|
409
|
+
.describe(configSchemaDescription)
|
|
410
|
+
.meta(configSchemaMeta);
|
|
259
411
|
/**
|
|
260
|
-
*
|
|
412
|
+
* Partial input schema for JSON Schema generation
|
|
413
|
+
*
|
|
414
|
+
* This is used for generating JSON Schema for IDE autocomplete in config files.
|
|
261
415
|
*/
|
|
262
|
-
|
|
263
|
-
const transformed = {};
|
|
264
|
-
if (budget.absolute) {
|
|
265
|
-
transformed.absolute = {};
|
|
266
|
-
// Copy minOpsPerSec as-is (already a number)
|
|
267
|
-
if (budget.absolute.minOpsPerSec !== undefined) {
|
|
268
|
-
transformed.absolute.minOpsPerSec = budget.absolute.minOpsPerSec;
|
|
269
|
-
}
|
|
270
|
-
// Parse time strings
|
|
271
|
-
if (budget.absolute.maxTime !== undefined) {
|
|
272
|
-
transformed.absolute.maxTime =
|
|
273
|
-
typeof budget.absolute.maxTime === 'string'
|
|
274
|
-
? (0, budget_schema_js_1.parseTimeString)(budget.absolute.maxTime)
|
|
275
|
-
: budget.absolute.maxTime;
|
|
276
|
-
}
|
|
277
|
-
if (budget.absolute.maxP99 !== undefined) {
|
|
278
|
-
transformed.absolute.maxP99 =
|
|
279
|
-
typeof budget.absolute.maxP99 === 'string'
|
|
280
|
-
? (0, budget_schema_js_1.parseTimeString)(budget.absolute.maxP99)
|
|
281
|
-
: budget.absolute.maxP99;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
if (budget.relative) {
|
|
285
|
-
transformed.relative = {};
|
|
286
|
-
// Parse percentage strings
|
|
287
|
-
if (budget.relative.maxRegression !== undefined) {
|
|
288
|
-
transformed.relative.maxRegression =
|
|
289
|
-
typeof budget.relative.maxRegression === 'string'
|
|
290
|
-
? (0, budget_schema_js_1.parsePercentageString)(budget.relative.maxRegression)
|
|
291
|
-
: budget.relative.maxRegression;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
return transformed;
|
|
295
|
-
};
|
|
416
|
+
exports.partialModestBenchConfigInputSchema = modestBenchConfigInputSchema.partial();
|
|
296
417
|
/**
|
|
297
|
-
*
|
|
298
|
-
* time and percentage strings
|
|
418
|
+
* Validate a partial configuration object
|
|
299
419
|
*
|
|
300
|
-
*
|
|
420
|
+
* This is used for validating configuration from files or CLI args before
|
|
421
|
+
* merging with defaults.
|
|
301
422
|
*/
|
|
302
|
-
|
|
303
|
-
if (!nested) {
|
|
304
|
-
return undefined;
|
|
305
|
-
}
|
|
306
|
-
const flat = {};
|
|
307
|
-
for (const [file, suites] of Object.entries(nested)) {
|
|
308
|
-
for (const [suite, tasks] of Object.entries(suites)) {
|
|
309
|
-
for (const [task, budget] of Object.entries(tasks)) {
|
|
310
|
-
const taskId = `${file}/${suite}/${task}`;
|
|
311
|
-
// Transform budget values (parse strings)
|
|
312
|
-
flat[taskId] = transformBudgetValues(budget);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
return flat;
|
|
317
|
-
};
|
|
423
|
+
exports.partialModestBenchConfigSchema = modestBenchConfigSchema.partial();
|
|
318
424
|
/**
|
|
319
|
-
* Safely parse and validate a partial configuration object
|
|
320
|
-
* transformation
|
|
425
|
+
* Safely parse and validate a partial configuration object
|
|
321
426
|
*
|
|
322
427
|
* @param config - The configuration object to validate
|
|
323
428
|
* @returns A result object with either success: true and data, or success:
|
|
324
429
|
* false and error
|
|
325
430
|
*/
|
|
326
431
|
const safeParsePartialConfig = (config) => {
|
|
327
|
-
|
|
328
|
-
// Transform nested budgets to flat structure after validation
|
|
329
|
-
if (result.success && result.data.budgets) {
|
|
330
|
-
return {
|
|
331
|
-
...result,
|
|
332
|
-
data: {
|
|
333
|
-
...result.data,
|
|
334
|
-
budgets: transformBudgets(result.data.budgets),
|
|
335
|
-
},
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
return result;
|
|
432
|
+
return exports.partialModestBenchConfigSchema.safeParse(config);
|
|
339
433
|
};
|
|
340
434
|
exports.safeParsePartialConfig = safeParsePartialConfig;
|
|
341
435
|
/**
|
|
@@ -346,18 +440,7 @@ exports.safeParsePartialConfig = safeParsePartialConfig;
|
|
|
346
440
|
* false and error
|
|
347
441
|
*/
|
|
348
442
|
const safeParseConfig = (config) => {
|
|
349
|
-
|
|
350
|
-
// Transform nested budgets to flat structure after validation
|
|
351
|
-
if (result.success && result.data.budgets) {
|
|
352
|
-
return {
|
|
353
|
-
...result,
|
|
354
|
-
data: {
|
|
355
|
-
...result.data,
|
|
356
|
-
budgets: transformBudgets(result.data.budgets),
|
|
357
|
-
},
|
|
358
|
-
};
|
|
359
|
-
}
|
|
360
|
-
return result;
|
|
443
|
+
return modestBenchConfigSchema.safeParse(config);
|
|
361
444
|
};
|
|
362
445
|
exports.safeParseConfig = safeParseConfig;
|
|
363
446
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|