modestbench 0.3.2 → 0.5.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 +44 -0
- package/README.md +45 -2
- package/dist/adapters/ava-adapter.cjs +421 -0
- package/dist/adapters/ava-adapter.cjs.map +1 -0
- package/dist/adapters/ava-adapter.d.cts +39 -0
- package/dist/adapters/ava-adapter.d.cts.map +1 -0
- package/dist/adapters/ava-adapter.d.ts +39 -0
- package/dist/adapters/ava-adapter.d.ts.map +1 -0
- package/dist/adapters/ava-adapter.js +384 -0
- package/dist/adapters/ava-adapter.js.map +1 -0
- package/dist/adapters/ava-hooks.cjs +66 -0
- package/dist/adapters/ava-hooks.cjs.map +1 -0
- package/dist/adapters/ava-hooks.d.cts +24 -0
- package/dist/adapters/ava-hooks.d.cts.map +1 -0
- package/dist/adapters/ava-hooks.d.ts +24 -0
- package/dist/adapters/ava-hooks.d.ts.map +1 -0
- package/dist/adapters/ava-hooks.js +61 -0
- package/dist/adapters/ava-hooks.js.map +1 -0
- package/dist/adapters/ava-register.cjs +16 -0
- package/dist/adapters/ava-register.cjs.map +1 -0
- package/dist/adapters/ava-register.d.cts +11 -0
- package/dist/adapters/ava-register.d.cts.map +1 -0
- package/dist/adapters/ava-register.d.ts +11 -0
- package/dist/adapters/ava-register.d.ts.map +1 -0
- package/dist/adapters/ava-register.js +14 -0
- package/dist/adapters/ava-register.js.map +1 -0
- package/dist/adapters/mocha-adapter.cjs +254 -0
- package/dist/adapters/mocha-adapter.cjs.map +1 -0
- package/dist/adapters/mocha-adapter.d.cts +26 -0
- package/dist/adapters/mocha-adapter.d.cts.map +1 -0
- package/dist/adapters/mocha-adapter.d.ts +26 -0
- package/dist/adapters/mocha-adapter.d.ts.map +1 -0
- package/dist/adapters/mocha-adapter.js +217 -0
- package/dist/adapters/mocha-adapter.js.map +1 -0
- package/dist/adapters/node-test-adapter.cjs +335 -0
- package/dist/adapters/node-test-adapter.cjs.map +1 -0
- package/dist/adapters/node-test-adapter.d.cts +41 -0
- package/dist/adapters/node-test-adapter.d.cts.map +1 -0
- package/dist/adapters/node-test-adapter.d.ts +41 -0
- package/dist/adapters/node-test-adapter.d.ts.map +1 -0
- package/dist/adapters/node-test-adapter.js +298 -0
- package/dist/adapters/node-test-adapter.js.map +1 -0
- package/dist/adapters/node-test-hooks.cjs +72 -0
- package/dist/adapters/node-test-hooks.cjs.map +1 -0
- package/dist/adapters/node-test-hooks.d.cts +24 -0
- package/dist/adapters/node-test-hooks.d.cts.map +1 -0
- package/dist/adapters/node-test-hooks.d.ts +24 -0
- package/dist/adapters/node-test-hooks.d.ts.map +1 -0
- package/dist/adapters/node-test-hooks.js +67 -0
- package/dist/adapters/node-test-hooks.js.map +1 -0
- package/dist/adapters/node-test-register.cjs +7 -0
- package/dist/adapters/node-test-register.cjs.map +1 -0
- package/dist/adapters/node-test-register.d.cts +2 -0
- package/dist/adapters/node-test-register.d.cts.map +1 -0
- package/dist/adapters/node-test-register.d.ts +2 -0
- package/dist/adapters/node-test-register.d.ts.map +1 -0
- package/dist/adapters/node-test-register.js +5 -0
- package/dist/adapters/node-test-register.js.map +1 -0
- package/dist/adapters/types.cjs +152 -0
- package/dist/adapters/types.cjs.map +1 -0
- package/dist/adapters/types.d.cts +112 -0
- package/dist/adapters/types.d.cts.map +1 -0
- package/dist/adapters/types.d.ts +112 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +148 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/cli/commands/init.cjs +21 -17
- package/dist/cli/commands/init.cjs.map +1 -1
- package/dist/cli/commands/init.d.cts.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +21 -17
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +6 -2
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.js +6 -2
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/test.cjs +392 -0
- package/dist/cli/commands/test.cjs.map +1 -0
- package/dist/cli/commands/test.d.cts +38 -0
- package/dist/cli/commands/test.d.cts.map +1 -0
- package/dist/cli/commands/test.d.ts +38 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +388 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/index.cjs +72 -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 +73 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/constants.cjs +13 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +12 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +12 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +12 -0
- package/dist/constants.js.map +1 -1
- package/dist/core/engine.cjs +4 -0
- 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 +4 -0
- package/dist/core/engine.js.map +1 -1
- package/dist/core/engines/tinybench-engine.cjs +163 -131
- package/dist/core/engines/tinybench-engine.cjs.map +1 -1
- package/dist/core/engines/tinybench-engine.d.cts +6 -0
- package/dist/core/engines/tinybench-engine.d.cts.map +1 -1
- package/dist/core/engines/tinybench-engine.d.ts +6 -0
- package/dist/core/engines/tinybench-engine.d.ts.map +1 -1
- package/dist/core/engines/tinybench-engine.js +163 -131
- package/dist/core/engines/tinybench-engine.js.map +1 -1
- package/dist/core/stats-utils.cjs +4 -2
- package/dist/core/stats-utils.cjs.map +1 -1
- package/dist/core/stats-utils.d.cts +1 -1
- package/dist/core/stats-utils.d.cts.map +1 -1
- package/dist/core/stats-utils.d.ts +1 -1
- package/dist/core/stats-utils.d.ts.map +1 -1
- package/dist/core/stats-utils.js +4 -2
- package/dist/core/stats-utils.js.map +1 -1
- package/dist/errors/base.cjs +2 -1
- package/dist/errors/base.cjs.map +1 -1
- package/dist/errors/base.d.cts.map +1 -1
- package/dist/errors/base.d.ts.map +1 -1
- package/dist/errors/base.js +2 -1
- package/dist/errors/base.js.map +1 -1
- package/dist/formatters/history/compare.cjs.map +1 -1
- package/dist/formatters/history/compare.d.cts.map +1 -1
- package/dist/formatters/history/compare.d.ts.map +1 -1
- package/dist/formatters/history/compare.js.map +1 -1
- package/dist/formatters/history/list.cjs.map +1 -1
- package/dist/formatters/history/list.d.cts.map +1 -1
- package/dist/formatters/history/list.d.ts.map +1 -1
- package/dist/formatters/history/list.js.map +1 -1
- package/dist/reporters/human.cjs +83 -27
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts +1 -0
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts +1 -0
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +83 -27
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/simple.cjs +68 -21
- package/dist/reporters/simple.cjs.map +1 -1
- package/dist/reporters/simple.d.cts +1 -0
- package/dist/reporters/simple.d.cts.map +1 -1
- package/dist/reporters/simple.d.ts +1 -0
- package/dist/reporters/simple.d.ts.map +1 -1
- package/dist/reporters/simple.js +68 -21
- package/dist/reporters/simple.js.map +1 -1
- package/dist/services/config-manager.cjs +1 -1
- package/dist/services/config-manager.cjs.map +1 -1
- package/dist/services/config-manager.d.cts.map +1 -1
- package/dist/services/config-manager.d.ts.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.map +1 -1
- package/dist/services/file-loader.d.cts.map +1 -1
- package/dist/services/file-loader.d.ts.map +1 -1
- package/dist/services/file-loader.js.map +1 -1
- package/package.json +63 -35
- package/src/adapters/ava-adapter.ts +553 -0
- package/src/adapters/ava-hooks.ts +65 -0
- package/src/adapters/ava-register.ts +15 -0
- package/src/adapters/mocha-adapter.ts +284 -0
- package/src/adapters/node-test-adapter.ts +391 -0
- package/src/adapters/node-test-hooks.ts +71 -0
- package/src/adapters/node-test-register.ts +5 -0
- package/src/adapters/types.ts +281 -0
- package/src/cli/commands/init.ts +25 -17
- package/src/cli/commands/run.ts +9 -2
- package/src/cli/commands/test.ts +546 -0
- package/src/cli/index.ts +81 -1
- package/src/constants.ts +15 -0
- package/src/core/engine.ts +5 -0
- package/src/core/engines/tinybench-engine.ts +213 -141
- package/src/core/stats-utils.ts +5 -3
- package/src/errors/base.ts +3 -2
- package/src/formatters/history/compare.ts +1 -3
- package/src/formatters/history/list.ts +1 -3
- package/src/reporters/human.ts +107 -36
- package/src/reporters/simple.ts +81 -22
- package/src/services/config-manager.ts +4 -5
- package/src/services/file-loader.ts +2 -3
|
@@ -53,6 +53,7 @@ export class TinybenchEngine extends ModestBenchEngine {
|
|
|
53
53
|
}
|
|
54
54
|
const bench = new Bench({
|
|
55
55
|
iterations: effectiveIterations,
|
|
56
|
+
retainSamples: true, // Required in tinybench v6+ to access samples for custom stats
|
|
56
57
|
time: effectiveTime,
|
|
57
58
|
warmupIterations: config.warmup,
|
|
58
59
|
warmupTime: config.warmup > 0 ? Math.min(config.warmup || 0, 500) : 0,
|
|
@@ -94,14 +95,12 @@ export class TinybenchEngine extends ModestBenchEngine {
|
|
|
94
95
|
}
|
|
95
96
|
const minimalBench = new Bench({
|
|
96
97
|
iterations: config.iterations,
|
|
98
|
+
retainSamples: true,
|
|
97
99
|
time: retryTime,
|
|
98
100
|
warmupIterations: config.warmup,
|
|
99
101
|
warmupTime: 0,
|
|
100
102
|
});
|
|
101
|
-
minimalBench.add(taskName, taskData.fn,
|
|
102
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
103
|
-
// @ts-ignore - Pending https://github.com/tinylibs/tinybench/pull/364
|
|
104
|
-
signal ? { signal } : undefined);
|
|
103
|
+
minimalBench.add(taskName, taskData.fn, signal ? { signal } : undefined);
|
|
105
104
|
try {
|
|
106
105
|
await minimalBench.run();
|
|
107
106
|
}
|
|
@@ -110,31 +109,19 @@ export class TinybenchEngine extends ModestBenchEngine {
|
|
|
110
109
|
throw new OperationTooFastError(`Benchmark operation is too fast to measure reliably (execution time < 1ns)`);
|
|
111
110
|
}
|
|
112
111
|
const minimalResults = minimalBench.results[0];
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
// Handle discriminated union: check state for error/completion
|
|
113
|
+
if (!minimalResults || minimalResults.state === 'errored') {
|
|
114
|
+
const errorMsg = minimalResults?.state === 'errored'
|
|
115
|
+
? minimalResults.error.message
|
|
116
|
+
: 'unknown error';
|
|
117
|
+
throw new OperationTooFastError(`Benchmark too fast to measure reliably: ${errorMsg}`);
|
|
115
118
|
}
|
|
116
|
-
//
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
cv: minimalStats.cv,
|
|
123
|
-
iterations: minimalCleanedSamples.length,
|
|
124
|
-
marginOfError: minimalStats.marginOfError,
|
|
125
|
-
max: minimalStats.max,
|
|
126
|
-
mean: minimalStats.mean,
|
|
127
|
-
metadata: taskData.metadata ?? {},
|
|
128
|
-
min: minimalStats.min,
|
|
129
|
-
name: taskName,
|
|
130
|
-
opsPerSecond: minimalResults.throughput.mean || 0,
|
|
131
|
-
p95: minimalStats.p95,
|
|
132
|
-
p99: minimalStats.p99,
|
|
133
|
-
stdDev: minimalStats.stdDev,
|
|
134
|
-
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
135
|
-
variance: minimalStats.variance,
|
|
136
|
-
};
|
|
137
|
-
return taskResult;
|
|
119
|
+
// Extract stats from completed result
|
|
120
|
+
const taskResultFromMinimal = this.extractTaskResultFromTinybenchResult(taskName, taskData, minimalResults);
|
|
121
|
+
if (taskResultFromMinimal) {
|
|
122
|
+
return taskResultFromMinimal;
|
|
123
|
+
}
|
|
124
|
+
throw new OperationTooFastError(`Benchmark too fast to measure reliably: no statistics available`);
|
|
138
125
|
}
|
|
139
126
|
throw error;
|
|
140
127
|
}
|
|
@@ -147,116 +134,108 @@ export class TinybenchEngine extends ModestBenchEngine {
|
|
|
147
134
|
if (!results) {
|
|
148
135
|
throw new BenchmarkExecutionError('No benchmark results returned');
|
|
149
136
|
}
|
|
150
|
-
//
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
? results.error.message
|
|
177
|
-
: String(results.error);
|
|
178
|
-
// Handle array length errors for extremely fast operations
|
|
179
|
-
if (errorMessage.includes('Invalid array length')) {
|
|
180
|
-
// Retry with minimal time for extremely fast operations
|
|
181
|
-
// Use same limiting logic but with minimal time for fast ops
|
|
182
|
-
let retryTime;
|
|
183
|
-
switch (config.limitBy) {
|
|
184
|
-
case 'all':
|
|
185
|
-
case 'any':
|
|
186
|
-
retryTime = 10;
|
|
187
|
-
break;
|
|
188
|
-
case 'iterations':
|
|
189
|
-
retryTime = 1;
|
|
190
|
-
break;
|
|
191
|
-
case 'time':
|
|
192
|
-
retryTime = 10;
|
|
193
|
-
break;
|
|
194
|
-
default:
|
|
195
|
-
retryTime = 1;
|
|
196
|
-
}
|
|
197
|
-
const minimalBench = new Bench({
|
|
198
|
-
iterations: config.iterations,
|
|
199
|
-
time: retryTime,
|
|
200
|
-
warmupIterations: config.warmup,
|
|
201
|
-
warmupTime: 0,
|
|
202
|
-
});
|
|
203
|
-
minimalBench.add(taskName, taskData.fn,
|
|
204
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
205
|
-
// @ts-ignore - Pending https://github.com/tinylibs/tinybench/pull/364
|
|
206
|
-
signal ? { signal } : undefined);
|
|
207
|
-
await minimalBench.run();
|
|
208
|
-
const minimalResults = minimalBench.results[0];
|
|
209
|
-
if (!minimalResults || minimalResults.error) {
|
|
210
|
-
// If retry also fails, just accept it failed
|
|
211
|
-
throw new OperationTooFastError(`Benchmark operation is too fast to measure reliably`);
|
|
137
|
+
// Handle discriminated union based on state
|
|
138
|
+
switch (results.state) {
|
|
139
|
+
case 'aborted':
|
|
140
|
+
// Task was aborted via signal - return minimal valid result marked as aborted
|
|
141
|
+
return {
|
|
142
|
+
aborted: true,
|
|
143
|
+
cv: 0,
|
|
144
|
+
iterations: 0,
|
|
145
|
+
marginOfError: 0,
|
|
146
|
+
max: 0,
|
|
147
|
+
mean: 0,
|
|
148
|
+
metadata: taskData.metadata ?? {},
|
|
149
|
+
min: 0,
|
|
150
|
+
name: taskName,
|
|
151
|
+
opsPerSecond: 0,
|
|
152
|
+
p95: 0,
|
|
153
|
+
p99: 0,
|
|
154
|
+
stdDev: 0,
|
|
155
|
+
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
156
|
+
variance: 0,
|
|
157
|
+
};
|
|
158
|
+
case 'aborted-with-statistics': {
|
|
159
|
+
// Aborted but has partial stats - use them
|
|
160
|
+
const taskResultFromAborted = this.extractTaskResultFromTinybenchResult(taskName, taskData, results);
|
|
161
|
+
if (taskResultFromAborted) {
|
|
162
|
+
return { ...taskResultFromAborted, aborted: true };
|
|
212
163
|
}
|
|
213
|
-
//
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
marginOfError: minimalStats2.marginOfError,
|
|
222
|
-
max: minimalStats2.max,
|
|
223
|
-
mean: minimalStats2.mean,
|
|
164
|
+
// Fall through to return minimal aborted result
|
|
165
|
+
return {
|
|
166
|
+
aborted: true,
|
|
167
|
+
cv: 0,
|
|
168
|
+
iterations: 0,
|
|
169
|
+
marginOfError: 0,
|
|
170
|
+
max: 0,
|
|
171
|
+
mean: 0,
|
|
224
172
|
metadata: taskData.metadata ?? {},
|
|
225
|
-
min:
|
|
173
|
+
min: 0,
|
|
226
174
|
name: taskName,
|
|
227
|
-
opsPerSecond:
|
|
228
|
-
p95:
|
|
229
|
-
p99:
|
|
230
|
-
stdDev:
|
|
175
|
+
opsPerSecond: 0,
|
|
176
|
+
p95: 0,
|
|
177
|
+
p99: 0,
|
|
178
|
+
stdDev: 0,
|
|
231
179
|
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
232
|
-
variance:
|
|
180
|
+
variance: 0,
|
|
233
181
|
};
|
|
234
|
-
return taskResult;
|
|
235
182
|
}
|
|
236
|
-
|
|
183
|
+
case 'errored': {
|
|
184
|
+
const errorMessage = results.error.message;
|
|
185
|
+
// Handle array length errors for extremely fast operations
|
|
186
|
+
if (errorMessage.includes('Invalid array length')) {
|
|
187
|
+
// Retry with minimal time for extremely fast operations
|
|
188
|
+
let retryTime;
|
|
189
|
+
switch (config.limitBy) {
|
|
190
|
+
case 'all':
|
|
191
|
+
case 'any':
|
|
192
|
+
retryTime = 10;
|
|
193
|
+
break;
|
|
194
|
+
case 'iterations':
|
|
195
|
+
retryTime = 1;
|
|
196
|
+
break;
|
|
197
|
+
case 'time':
|
|
198
|
+
retryTime = 10;
|
|
199
|
+
break;
|
|
200
|
+
default:
|
|
201
|
+
retryTime = 1;
|
|
202
|
+
}
|
|
203
|
+
const minimalBench = new Bench({
|
|
204
|
+
iterations: config.iterations,
|
|
205
|
+
retainSamples: true,
|
|
206
|
+
time: retryTime,
|
|
207
|
+
warmupIterations: config.warmup,
|
|
208
|
+
warmupTime: 0,
|
|
209
|
+
});
|
|
210
|
+
minimalBench.add(taskName, taskData.fn, signal ? { signal } : undefined);
|
|
211
|
+
await minimalBench.run();
|
|
212
|
+
const minimalResults = minimalBench.results[0];
|
|
213
|
+
if (!minimalResults || minimalResults.state === 'errored') {
|
|
214
|
+
throw new OperationTooFastError(`Benchmark operation is too fast to measure reliably`);
|
|
215
|
+
}
|
|
216
|
+
const retryTaskResult = this.extractTaskResultFromTinybenchResult(taskName, taskData, minimalResults);
|
|
217
|
+
if (retryTaskResult) {
|
|
218
|
+
return retryTaskResult;
|
|
219
|
+
}
|
|
220
|
+
throw new OperationTooFastError(`Benchmark operation is too fast to measure reliably`);
|
|
221
|
+
}
|
|
222
|
+
throw results.error;
|
|
223
|
+
}
|
|
224
|
+
case 'completed': {
|
|
225
|
+
// Normal completion - extract full stats
|
|
226
|
+
const taskResultFromCompleted = this.extractTaskResultFromTinybenchResult(taskName, taskData, results);
|
|
227
|
+
if (taskResultFromCompleted) {
|
|
228
|
+
return taskResultFromCompleted;
|
|
229
|
+
}
|
|
230
|
+
throw new BenchmarkExecutionError('Completed benchmark but no statistics available');
|
|
231
|
+
}
|
|
232
|
+
case 'not-started':
|
|
233
|
+
case 'started':
|
|
234
|
+
throw new BenchmarkExecutionError(`Unexpected benchmark state: ${results.state}`);
|
|
235
|
+
default:
|
|
236
|
+
// Exhaustiveness check
|
|
237
|
+
throw new BenchmarkExecutionError(`Unknown benchmark state: ${results.state}`);
|
|
237
238
|
}
|
|
238
|
-
// Apply IQR outlier removal to raw samples
|
|
239
|
-
const rawSamples = results.latency.samples || [];
|
|
240
|
-
const samplesInNs = rawSamples.map((s) => s * 1e6); // Convert ms to ns
|
|
241
|
-
const cleanedSamples = removeOutliersIQR(samplesInNs);
|
|
242
|
-
const stats = calculateStatistics(cleanedSamples);
|
|
243
|
-
const taskResult = {
|
|
244
|
-
cv: stats.cv,
|
|
245
|
-
iterations: cleanedSamples.length,
|
|
246
|
-
marginOfError: stats.marginOfError,
|
|
247
|
-
max: stats.max,
|
|
248
|
-
mean: stats.mean,
|
|
249
|
-
metadata: taskData.metadata ?? {},
|
|
250
|
-
min: stats.min,
|
|
251
|
-
name: taskName,
|
|
252
|
-
opsPerSecond: results.throughput.mean || 0, // Keep tinybench's ops/sec
|
|
253
|
-
p95: stats.p95,
|
|
254
|
-
p99: stats.p99,
|
|
255
|
-
stdDev: stats.stdDev,
|
|
256
|
-
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
257
|
-
variance: stats.variance,
|
|
258
|
-
};
|
|
259
|
-
return taskResult;
|
|
260
239
|
}
|
|
261
240
|
catch (error) {
|
|
262
241
|
const executionError = error instanceof Error ? error : new Error(String(error));
|
|
@@ -280,5 +259,58 @@ export class TinybenchEngine extends ModestBenchEngine {
|
|
|
280
259
|
return errorResult;
|
|
281
260
|
}
|
|
282
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Extract TaskResult from a tinybench result that has statistics
|
|
264
|
+
*
|
|
265
|
+
* Handles the discriminated union types from tinybench v6+
|
|
266
|
+
*/
|
|
267
|
+
extractTaskResultFromTinybenchResult(taskName, taskData, result) {
|
|
268
|
+
// Only states with statistics: 'completed' and 'aborted-with-statistics'
|
|
269
|
+
if (result.state !== 'completed' &&
|
|
270
|
+
result.state !== 'aborted-with-statistics') {
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
// Apply IQR outlier removal to raw samples
|
|
274
|
+
// Note: samples may be undefined if retainSamples wasn't enabled
|
|
275
|
+
const rawSamples = result.latency.samples ?? [];
|
|
276
|
+
if (rawSamples.length === 0) {
|
|
277
|
+
// Fall back to using tinybench's calculated stats directly
|
|
278
|
+
return {
|
|
279
|
+
cv: result.latency.rme, // Use relative margin of error as CV approximation
|
|
280
|
+
iterations: result.latency.samplesCount,
|
|
281
|
+
marginOfError: result.latency.rme, // rme is already a percentage
|
|
282
|
+
max: result.latency.max,
|
|
283
|
+
mean: result.latency.mean,
|
|
284
|
+
metadata: taskData.metadata ?? {},
|
|
285
|
+
min: result.latency.min,
|
|
286
|
+
name: taskName,
|
|
287
|
+
opsPerSecond: result.throughput.mean || 0,
|
|
288
|
+
p95: result.latency.p99, // tinybench v6 doesn't have p95, use p99
|
|
289
|
+
p99: result.latency.p99,
|
|
290
|
+
stdDev: result.latency.sd,
|
|
291
|
+
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
292
|
+
variance: result.latency.variance,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
const samplesInNs = rawSamples.map((s) => s * 1e6); // Convert ms to ns
|
|
296
|
+
const cleanedSamples = removeOutliersIQR(samplesInNs);
|
|
297
|
+
const stats = calculateStatistics(cleanedSamples);
|
|
298
|
+
return {
|
|
299
|
+
cv: stats.cv,
|
|
300
|
+
iterations: cleanedSamples.length,
|
|
301
|
+
marginOfError: stats.marginOfError,
|
|
302
|
+
max: stats.max,
|
|
303
|
+
mean: stats.mean,
|
|
304
|
+
metadata: taskData.metadata ?? {},
|
|
305
|
+
min: stats.min,
|
|
306
|
+
name: taskName,
|
|
307
|
+
opsPerSecond: result.throughput.mean || 0,
|
|
308
|
+
p95: stats.p95,
|
|
309
|
+
p99: stats.p99,
|
|
310
|
+
stdDev: stats.stdDev,
|
|
311
|
+
...(taskData.tags ? { tags: taskData.tags } : {}),
|
|
312
|
+
variance: stats.variance,
|
|
313
|
+
};
|
|
314
|
+
}
|
|
283
315
|
}
|
|
284
316
|
//# sourceMappingURL=tinybench-engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tinybench-engine.js","sourceRoot":"","sources":["../../../src/core/engines/tinybench-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"tinybench-engine.js","sourceRoot":"","sources":["../../../src/core/engines/tinybench-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,9 +48,11 @@ const calculateStatistics = (samples) => {
|
|
|
48
48
|
}
|
|
49
49
|
// Coefficient of Variation
|
|
50
50
|
const cv = mean === 0 || samples.length < 2 ? 0 : (stdDev / mean) * 100;
|
|
51
|
-
// Margin of Error (95% confidence)
|
|
51
|
+
// Relative Margin of Error (95% confidence) - as percentage
|
|
52
|
+
// Formula: (Z * stdDev / sqrt(n)) / mean * 100
|
|
52
53
|
const Z = 1.96;
|
|
53
|
-
const
|
|
54
|
+
const absoluteMoe = samples.length === 0 ? 0 : (Z * stdDev) / Math.sqrt(samples.length);
|
|
55
|
+
const marginOfError = mean === 0 ? 0 : (absoluteMoe / mean) * 100;
|
|
54
56
|
// Percentiles (using standard formula: floor((n-1) * p))
|
|
55
57
|
const p95 = samples[Math.floor((samples.length - 1) * 0.95)] ?? 0;
|
|
56
58
|
const p99 = samples[Math.floor((samples.length - 1) * 0.99)] ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-utils.js","sourceRoot":"","sources":["../../src/core/stats-utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA0BH;;;;;;;;GAQG;AACI,MAAM,mBAAmB,GAAG,CAAC,OAAiB,EAAoB,EAAE;IACzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,EAAE,EAAE,CAAC;YACL,aAAa,EAAE,CAAC;YAChB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAEzC,OAAO;IACP,MAAM,IAAI,GACR,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE;QACb,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC,CAAC,EACtD,CAAC,CACF,GAAG,OAAO,CAAC,MAAM,CAAC;IAEzB,kCAAkC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,QAAQ;YACN,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1D,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,2BAA2B;IAC3B,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAExE,
|
|
1
|
+
{"version":3,"file":"stats-utils.js","sourceRoot":"","sources":["../../src/core/stats-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export interface SampleStatistics {
|
|
11
11
|
/** Coefficient of variation (stdDev/mean × 100) */
|
|
12
12
|
readonly cv: number;
|
|
13
|
-
/**
|
|
13
|
+
/** Relative margin of error at 95% confidence (as percentage) */
|
|
14
14
|
readonly marginOfError: number;
|
|
15
15
|
/** Maximum value */
|
|
16
16
|
readonly max: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-utils.d.ts","sourceRoot":"","sources":["../../src/core/stats-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"stats-utils.d.ts","sourceRoot":"","sources":["../../src/core/stats-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,oBAAoB;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,eAAe;IACf,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,KAAG,gBAqDvD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,KAAG,MAAM,EAgC3D,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
export interface SampleStatistics {
|
|
11
11
|
/** Coefficient of variation (stdDev/mean × 100) */
|
|
12
12
|
readonly cv: number;
|
|
13
|
-
/**
|
|
13
|
+
/** Relative margin of error at 95% confidence (as percentage) */
|
|
14
14
|
readonly marginOfError: number;
|
|
15
15
|
/** Maximum value */
|
|
16
16
|
readonly max: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-utils.d.ts","sourceRoot":"","sources":["../../src/core/stats-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"stats-utils.d.ts","sourceRoot":"","sources":["../../src/core/stats-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,oBAAoB;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,eAAe;IACf,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,KAAG,gBAqDvD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,MAAM,EAAE,KAAG,MAAM,EAgC3D,CAAC"}
|
package/dist/core/stats-utils.js
CHANGED
|
@@ -45,9 +45,11 @@ export const calculateStatistics = (samples) => {
|
|
|
45
45
|
}
|
|
46
46
|
// Coefficient of Variation
|
|
47
47
|
const cv = mean === 0 || samples.length < 2 ? 0 : (stdDev / mean) * 100;
|
|
48
|
-
// Margin of Error (95% confidence)
|
|
48
|
+
// Relative Margin of Error (95% confidence) - as percentage
|
|
49
|
+
// Formula: (Z * stdDev / sqrt(n)) / mean * 100
|
|
49
50
|
const Z = 1.96;
|
|
50
|
-
const
|
|
51
|
+
const absoluteMoe = samples.length === 0 ? 0 : (Z * stdDev) / Math.sqrt(samples.length);
|
|
52
|
+
const marginOfError = mean === 0 ? 0 : (absoluteMoe / mean) * 100;
|
|
51
53
|
// Percentiles (using standard formula: floor((n-1) * p))
|
|
52
54
|
const p95 = samples[Math.floor((samples.length - 1) * 0.95)] ?? 0;
|
|
53
55
|
const p99 = samples[Math.floor((samples.length - 1) * 0.99)] ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-utils.js","sourceRoot":"","sources":["../../src/core/stats-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0BH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAiB,EAAoB,EAAE;IACzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,EAAE,EAAE,CAAC;YACL,aAAa,EAAE,CAAC;YAChB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAEzC,OAAO;IACP,MAAM,IAAI,GACR,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE;QACb,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC,CAAC,EACtD,CAAC,CACF,GAAG,OAAO,CAAC,MAAM,CAAC;IAEzB,kCAAkC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,QAAQ;YACN,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1D,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,2BAA2B;IAC3B,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAExE,
|
|
1
|
+
{"version":3,"file":"stats-utils.js","sourceRoot":"","sources":["../../src/core/stats-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/errors/base.cjs
CHANGED
|
@@ -7,10 +7,11 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.isError = exports.isModestBenchError = exports.ModestBenchError = exports.ModestBenchAggregateError = void 0;
|
|
10
|
+
const constants_js_1 = require("../constants.cjs");
|
|
10
11
|
/**
|
|
11
12
|
* Base URL for error documentation
|
|
12
13
|
*/
|
|
13
|
-
const ERROR_DOC_BASE_URL =
|
|
14
|
+
const ERROR_DOC_BASE_URL = `${constants_js_1.SITE_URL}/reference/errors`;
|
|
14
15
|
/**
|
|
15
16
|
* Abstract base class for ModestBench aggregate errors
|
|
16
17
|
*
|
package/dist/errors/base.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;GAEG;AACH,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mDAA2C;AAE3C;;GAEG;AACH,MAAM,kBAAkB,GAAG,GAAG,uBAAQ,mBAAmB,CAAC;AAE1D;;;;;GAKG;AACH,MAAsB,yBAA0B,SAAQ,cAAc;IAOpE;;OAEG;IACsB,IAAI,CAAS;IAEtC;;;;;;OAMG;IACH,YAAY,MAAiB,EAAE,OAAe,EAAE,OAAsB;QACpE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACP,iGAAiG;QACjG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,GAAG,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACM,QAAQ;QACf,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC;QAC9D,MAAM,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;QAEvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,cAAc,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAzDD,8DAyDC;AAED;;;;;;;;;GASG;AACH,MAAsB,gBAAiB,SAAQ,KAAK;IAOlD;;OAEG;IACsB,IAAI,CAAS;IAEtC;;;;;OAKG;IACH,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACP,iGAAiG;QACjG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,GAAG,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACM,QAAQ;QACf,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;IAClF,CAAC;CACF;AA7CD,4CA6CC;AAED;;;;;GAKG;AACI,MAAM,kBAAkB,GAAG,CAChC,KAAc,EACa,EAAE;IAC7B,OAAO,CACL,IAAA,eAAO,EAAC,KAAK,CAAC;QACd,MAAM,IAAI,KAAK;QACf,OAAQ,KAA2B,CAAC,IAAI,KAAK,QAAQ;QACpD,KAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CACvD,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEF;;;;;GAKG;AACI,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE;IACxD,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;;GAKG;AACH,8BAAsB,yBAA0B,SAAQ,cAAc;IACpE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC;;;;;;OAMG;gBACS,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAKtE;;;;;;;OAOG;IACH,SAAS,IAAI,MAAM;IAMnB;;;;OAIG;IACM,QAAQ,IAAI,MAAM;CAc5B;AAED;;;;;;;;;GASG;AACH,8BAAsB,gBAAiB,SAAQ,KAAK;IAClD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAKnD;;;;;;;OAOG;IACH,SAAS,IAAI,MAAM;IAMnB;;;;OAIG;IACM,QAAQ,IAAI,MAAM;CAG5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,KACb,KAAK,IAAI,gBAOX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAEjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;;GAKG;AACH,8BAAsB,yBAA0B,SAAQ,cAAc;IACpE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC;;;;;;OAMG;gBACS,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAKtE;;;;;;;OAOG;IACH,SAAS,IAAI,MAAM;IAMnB;;;;OAIG;IACM,QAAQ,IAAI,MAAM;CAc5B;AAED;;;;;;;;;GASG;AACH,8BAAsB,gBAAiB,SAAQ,KAAK;IAClD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;IAKnD;;;;;;;OAOG;IACH,SAAS,IAAI,MAAM;IAMnB;;;;OAIG;IACM,QAAQ,IAAI,MAAM;CAG5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,KACb,KAAK,IAAI,gBAOX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAEjD,CAAC"}
|
package/dist/errors/base.js
CHANGED
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
* Base error classes providing structured error handling with error codes,
|
|
5
5
|
* documentation URLs, and consistent error display.
|
|
6
6
|
*/
|
|
7
|
+
import { SITE_URL } from "../constants.js";
|
|
7
8
|
/**
|
|
8
9
|
* Base URL for error documentation
|
|
9
10
|
*/
|
|
10
|
-
const ERROR_DOC_BASE_URL =
|
|
11
|
+
const ERROR_DOC_BASE_URL = `${SITE_URL}/reference/errors`;
|
|
11
12
|
/**
|
|
12
13
|
* Abstract base class for ModestBench aggregate errors
|
|
13
14
|
*
|
package/dist/errors/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,wBAAwB;AAE3C;;GAEG;AACH,MAAM,kBAAkB,GAAG,GAAG,QAAQ,mBAAmB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,OAAgB,yBAA0B,SAAQ,cAAc;IAOpE;;OAEG;IACsB,IAAI,CAAS;IAEtC;;;;;;OAMG;IACH,YAAY,MAAiB,EAAE,OAAe,EAAE,OAAsB;QACpE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACP,iGAAiG;QACjG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,GAAG,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACM,QAAQ;QACf,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC;QAC9D,MAAM,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;QAEvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,cAAc,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,KAAK;IAOlD;;OAEG;IACsB,IAAI,CAAS;IAEtC;;;;;OAKG;IACH,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACP,iGAAiG;QACjG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,GAAG,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACM,QAAQ;QACf,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;IAClF,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAc,EACa,EAAE;IAC7B,OAAO,CACL,OAAO,CAAC,KAAK,CAAC;QACd,MAAM,IAAI,KAAK;QACf,OAAQ,KAA2B,CAAC,IAAI,KAAK,QAAQ;QACpD,KAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CACvD,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE;IACxD,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/formatters/history/compare.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAKH,kDAA+C;AAC/C,kDAAgD;AAEhD;;GAEG;AACH,MAAa,uBAAuB;
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/formatters/history/compare.ts"],"names":[],"mappings":"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"}
|