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,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Budget resolution service for matching budgets to tasks
|
|
3
|
+
*
|
|
4
|
+
* This module provides pattern-based budget resolution using:
|
|
5
|
+
*
|
|
6
|
+
* - Minimatch glob patterns for file matching
|
|
7
|
+
* - Simple `*` wildcards for suite/task matching
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
11
|
+
import { minimatch } from 'minimatch';
|
|
12
|
+
/**
|
|
13
|
+
* Check if a glob pattern contains wildcards
|
|
14
|
+
*
|
|
15
|
+
* @param pattern - The pattern to check
|
|
16
|
+
* @returns True if the pattern contains glob metacharacters
|
|
17
|
+
*/
|
|
18
|
+
export const isGlobPattern = (pattern) => {
|
|
19
|
+
return /[*?[\]]/.test(pattern);
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Check if a file path matches a glob pattern
|
|
23
|
+
*
|
|
24
|
+
* @param pattern - Minimatch glob pattern
|
|
25
|
+
* @param filePath - File path to match against
|
|
26
|
+
* @returns True if the pattern matches the file path
|
|
27
|
+
*/
|
|
28
|
+
export const matchesFile = (pattern, filePath) => {
|
|
29
|
+
// Exact match fast path
|
|
30
|
+
if (pattern === filePath) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
return minimatch(filePath, pattern, { matchBase: true });
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Check if a suite or task name matches a pattern
|
|
37
|
+
*
|
|
38
|
+
* @param pattern - Either an exact name or `*` for wildcard
|
|
39
|
+
* @param value - The value to match against
|
|
40
|
+
* @returns True if the pattern matches the value
|
|
41
|
+
*/
|
|
42
|
+
export const matchesSuiteOrTask = (pattern, value) => {
|
|
43
|
+
return pattern === '*' || pattern === value;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Calculate specificity score for a budget pattern
|
|
47
|
+
*
|
|
48
|
+
* Higher scores indicate more specific patterns. Scoring:
|
|
49
|
+
*
|
|
50
|
+
* - File: +2 for exact match, +1 for glob with specific parts, +0 for `**\/*`
|
|
51
|
+
* - Suite: +1 for exact match, +0 for `*`
|
|
52
|
+
* - Task: +1 for exact match, +0 for `*`
|
|
53
|
+
*
|
|
54
|
+
* @param pattern - The budget pattern to score
|
|
55
|
+
* @returns Specificity score (0-4)
|
|
56
|
+
*/
|
|
57
|
+
export const calculateSpecificity = (pattern) => {
|
|
58
|
+
let score = 0;
|
|
59
|
+
// File specificity
|
|
60
|
+
if (!isGlobPattern(pattern.filePattern)) {
|
|
61
|
+
// Exact file match
|
|
62
|
+
score += 2;
|
|
63
|
+
}
|
|
64
|
+
else if (pattern.filePattern !== '**/*' && pattern.filePattern !== '*') {
|
|
65
|
+
// Glob with some specificity (e.g., "**/api/**/*.bench.js")
|
|
66
|
+
score += 1;
|
|
67
|
+
}
|
|
68
|
+
// else: fully generic glob like "**/*" gets +0
|
|
69
|
+
// Suite specificity
|
|
70
|
+
if (pattern.suitePattern !== '*') {
|
|
71
|
+
score += 1;
|
|
72
|
+
}
|
|
73
|
+
// Task specificity
|
|
74
|
+
if (pattern.taskPattern !== '*') {
|
|
75
|
+
score += 1;
|
|
76
|
+
}
|
|
77
|
+
return score;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Parse a TaskId into its components
|
|
81
|
+
*
|
|
82
|
+
* TaskIds have the format: `{filePath}/{suiteName}/{taskName}` The file path
|
|
83
|
+
* can contain slashes, so we parse from the end.
|
|
84
|
+
*
|
|
85
|
+
* @param taskId - The TaskId to parse
|
|
86
|
+
* @returns Object with file, suite, and task components
|
|
87
|
+
*/
|
|
88
|
+
export const parseTaskId = (taskId) => {
|
|
89
|
+
const str = taskId;
|
|
90
|
+
const lastSlash = str.lastIndexOf('/');
|
|
91
|
+
const secondLastSlash = str.lastIndexOf('/', lastSlash - 1);
|
|
92
|
+
return {
|
|
93
|
+
file: str.substring(0, secondLastSlash),
|
|
94
|
+
suite: str.substring(secondLastSlash + 1, lastSlash),
|
|
95
|
+
task: str.substring(lastSlash + 1),
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Deep merge two budget objects
|
|
100
|
+
*
|
|
101
|
+
* More specific (second) budget values override less specific (first) values.
|
|
102
|
+
* Merges at the absolute/relative level.
|
|
103
|
+
*
|
|
104
|
+
* @param base - Base budget (less specific)
|
|
105
|
+
* @param override - Override budget (more specific)
|
|
106
|
+
* @returns Merged budget
|
|
107
|
+
*/
|
|
108
|
+
export const mergeBudgets = (base, override) => {
|
|
109
|
+
return {
|
|
110
|
+
...(base.absolute || override.absolute
|
|
111
|
+
? {
|
|
112
|
+
absolute: {
|
|
113
|
+
...base.absolute,
|
|
114
|
+
...override.absolute,
|
|
115
|
+
},
|
|
116
|
+
}
|
|
117
|
+
: {}),
|
|
118
|
+
...(base.relative || override.relative
|
|
119
|
+
? {
|
|
120
|
+
relative: {
|
|
121
|
+
...base.relative,
|
|
122
|
+
...override.relative,
|
|
123
|
+
},
|
|
124
|
+
}
|
|
125
|
+
: {}),
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Resolve the appropriate budget for a task
|
|
130
|
+
*
|
|
131
|
+
* Resolution order:
|
|
132
|
+
*
|
|
133
|
+
* 1. Check exact match in `exact` map (highest priority)
|
|
134
|
+
* 2. Find all matching patterns
|
|
135
|
+
* 3. Sort by specificity (ascending)
|
|
136
|
+
* 4. Merge matched budgets (more specific overrides less specific)
|
|
137
|
+
*
|
|
138
|
+
* @param taskId - The task identifier to resolve a budget for
|
|
139
|
+
* @param budgets - The resolved budgets structure
|
|
140
|
+
* @returns The resolved budget, or undefined if no budget matches
|
|
141
|
+
*/
|
|
142
|
+
export const resolveBudget = (taskId, budgets) => {
|
|
143
|
+
// Fast path: exact match
|
|
144
|
+
const exactMatch = budgets.exact[taskId];
|
|
145
|
+
if (exactMatch) {
|
|
146
|
+
// Still need to check patterns and merge if there are less-specific matches
|
|
147
|
+
const parsed = parseTaskId(taskId);
|
|
148
|
+
const matchingPatterns = budgets.patterns.filter((p) => matchesFile(p.filePattern, parsed.file) &&
|
|
149
|
+
matchesSuiteOrTask(p.suitePattern, parsed.suite) &&
|
|
150
|
+
matchesSuiteOrTask(p.taskPattern, parsed.task));
|
|
151
|
+
if (matchingPatterns.length === 0) {
|
|
152
|
+
return exactMatch;
|
|
153
|
+
}
|
|
154
|
+
// Sort by specificity ascending (least specific first, so more specific can override)
|
|
155
|
+
const sorted = [...matchingPatterns].sort((a, b) => a.specificity - b.specificity);
|
|
156
|
+
// Merge all patterns, then apply exact match last
|
|
157
|
+
let merged = sorted[0].budget;
|
|
158
|
+
for (let i = 1; i < sorted.length; i++) {
|
|
159
|
+
merged = mergeBudgets(merged, sorted[i].budget);
|
|
160
|
+
}
|
|
161
|
+
// Exact match has highest priority
|
|
162
|
+
return mergeBudgets(merged, exactMatch);
|
|
163
|
+
}
|
|
164
|
+
// Find all matching patterns
|
|
165
|
+
const parsed = parseTaskId(taskId);
|
|
166
|
+
const matchingPatterns = budgets.patterns.filter((p) => matchesFile(p.filePattern, parsed.file) &&
|
|
167
|
+
matchesSuiteOrTask(p.suitePattern, parsed.suite) &&
|
|
168
|
+
matchesSuiteOrTask(p.taskPattern, parsed.task));
|
|
169
|
+
if (matchingPatterns.length === 0) {
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
// Sort by specificity ascending (least specific first)
|
|
173
|
+
const sorted = [...matchingPatterns].sort((a, b) => a.specificity - b.specificity);
|
|
174
|
+
// Merge all matches (more specific overrides less specific)
|
|
175
|
+
let merged = sorted[0].budget;
|
|
176
|
+
for (let i = 1; i < sorted.length; i++) {
|
|
177
|
+
merged = mergeBudgets(merged, sorted[i].budget);
|
|
178
|
+
}
|
|
179
|
+
return merged;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Create a BudgetPattern from its components
|
|
183
|
+
*
|
|
184
|
+
* @param filePattern - Glob pattern for file matching
|
|
185
|
+
* @param suitePattern - Suite name or `*` for wildcard
|
|
186
|
+
* @param taskPattern - Task name or `*` for wildcard
|
|
187
|
+
* @param budget - The budget to apply
|
|
188
|
+
* @returns A BudgetPattern with computed specificity
|
|
189
|
+
*/
|
|
190
|
+
export const createBudgetPattern = (filePattern, suitePattern, taskPattern, budget) => {
|
|
191
|
+
return {
|
|
192
|
+
budget,
|
|
193
|
+
filePattern,
|
|
194
|
+
specificity: calculateSpecificity({
|
|
195
|
+
filePattern,
|
|
196
|
+
suitePattern,
|
|
197
|
+
taskPattern,
|
|
198
|
+
}),
|
|
199
|
+
suitePattern,
|
|
200
|
+
taskPattern,
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=budget-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-resolver.js","sourceRoot":"","sources":["../../src/services/budget-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,8 +51,8 @@ exports.BenchmarkFileLoader = void 0;
|
|
|
51
51
|
const glob_1 = require("glob");
|
|
52
52
|
const promises_1 = require("node:fs/promises");
|
|
53
53
|
const node_path_1 = require("node:path");
|
|
54
|
+
const benchmark_schema_js_1 = require("../config/benchmark-schema.cjs");
|
|
54
55
|
const constants_js_1 = require("../constants.cjs");
|
|
55
|
-
const benchmark_schema_js_1 = require("../core/benchmark-schema.cjs");
|
|
56
56
|
const index_js_1 = require("../errors/index.cjs");
|
|
57
57
|
/**
|
|
58
58
|
* Implementation of FileLoader for benchmark files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/services/file-loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+BAA4B;AAC5B,+CAA0D;AAC1D,yCAAoC;AAWpC,mDAGyB;AACzB,
|
|
1
|
+
{"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/services/file-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
15
15
|
import { glob } from 'glob';
|
|
16
16
|
import { access, readFile, stat } from 'node:fs/promises';
|
|
17
17
|
import { extname } from 'node:path';
|
|
18
|
+
import { benchmarkFileSchema } from "../config/benchmark-schema.js";
|
|
18
19
|
import { BENCHMARK_FILE_EXTENSIONS, BENCHMARK_FILE_PATTERN, } from "../constants.js";
|
|
19
|
-
import { benchmarkFileSchema } from "../core/benchmark-schema.js";
|
|
20
20
|
import { FileDiscoveryError, FileLoadError, StructureValidationError, } from "../errors/index.js";
|
|
21
21
|
/**
|
|
22
22
|
* Implementation of FileLoader for benchmark files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/services/file-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,wBAAwB;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/services/file-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ModestBench Reporter Loader
|
|
4
|
+
*
|
|
5
|
+
* Service for loading third-party reporter plugins from file paths or npm
|
|
6
|
+
* packages. Supports multiple export patterns: plain objects, classes, and
|
|
7
|
+
* factory functions (sync or async).
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
43
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
44
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
45
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return path;
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.loadReporter = exports.isFilePath = exports.isBuiltInReporter = exports.createReporterContext = exports.PLUGIN_API_VERSION = void 0;
|
|
52
|
+
const node_path_1 = require("node:path");
|
|
53
|
+
const node_url_1 = require("node:url");
|
|
54
|
+
const constants_js_1 = require("../constants.cjs");
|
|
55
|
+
const reporter_js_1 = require("../errors/reporter.cjs");
|
|
56
|
+
const package_js_1 = require("../utils/package.cjs");
|
|
57
|
+
const reporter_utils_js_1 = require("../utils/reporter-utils.cjs");
|
|
58
|
+
/**
|
|
59
|
+
* Current plugin API version
|
|
60
|
+
*
|
|
61
|
+
* Increment this when making breaking changes to the plugin API.
|
|
62
|
+
*/
|
|
63
|
+
exports.PLUGIN_API_VERSION = 1;
|
|
64
|
+
/**
|
|
65
|
+
* Set of built-in reporter names
|
|
66
|
+
*/
|
|
67
|
+
const BUILT_IN_REPORTERS = new Set(Object.values(constants_js_1.Reporters));
|
|
68
|
+
/**
|
|
69
|
+
* Required methods that all reporters must implement
|
|
70
|
+
*/
|
|
71
|
+
const REQUIRED_REPORTER_METHODS = [
|
|
72
|
+
'onStart',
|
|
73
|
+
'onEnd',
|
|
74
|
+
'onError',
|
|
75
|
+
'onTaskResult',
|
|
76
|
+
];
|
|
77
|
+
/**
|
|
78
|
+
* Default logger implementation using console
|
|
79
|
+
*
|
|
80
|
+
* This provides a simple console-based logger for reporter plugins.
|
|
81
|
+
*/
|
|
82
|
+
const defaultLogger = {
|
|
83
|
+
debug: (message, ...args) => console.debug(message, ...args),
|
|
84
|
+
error: (message, ...args) => console.error(message, ...args),
|
|
85
|
+
info: (message, ...args) => console.info(message, ...args),
|
|
86
|
+
trace: (message, ...args) => console.trace(message, ...args),
|
|
87
|
+
warn: (message, ...args) => console.warn(message, ...args),
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Create a ReporterContext for passing to plugins
|
|
91
|
+
*
|
|
92
|
+
* @param logger - Optional logger to use (defaults to console-based logger)
|
|
93
|
+
* @returns ReporterContext with version info and utilities
|
|
94
|
+
*/
|
|
95
|
+
const createReporterContext = (logger) => {
|
|
96
|
+
return {
|
|
97
|
+
logger: logger ?? defaultLogger,
|
|
98
|
+
pluginApiVersion: exports.PLUGIN_API_VERSION,
|
|
99
|
+
utils: reporter_utils_js_1.reporterUtils,
|
|
100
|
+
version: (0, package_js_1.getPackageVersion)(),
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
exports.createReporterContext = createReporterContext;
|
|
104
|
+
/**
|
|
105
|
+
* Get the list of missing required methods from a reporter object
|
|
106
|
+
*
|
|
107
|
+
* @param obj - Object to check
|
|
108
|
+
* @returns Array of missing method names
|
|
109
|
+
*/
|
|
110
|
+
const getMissingMethods = (obj) => {
|
|
111
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
112
|
+
return [...REQUIRED_REPORTER_METHODS];
|
|
113
|
+
}
|
|
114
|
+
return REQUIRED_REPORTER_METHODS.filter((method) => typeof obj[method] !== 'function');
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Check if a specifier refers to a built-in reporter
|
|
118
|
+
*
|
|
119
|
+
* @param specifier - Reporter name or path
|
|
120
|
+
* @returns True if the specifier is a built-in reporter name
|
|
121
|
+
*/
|
|
122
|
+
const isBuiltInReporter = (specifier) => {
|
|
123
|
+
return BUILT_IN_REPORTERS.has(specifier);
|
|
124
|
+
};
|
|
125
|
+
exports.isBuiltInReporter = isBuiltInReporter;
|
|
126
|
+
/**
|
|
127
|
+
* Check if a function is a class constructor
|
|
128
|
+
*
|
|
129
|
+
* Uses heuristics to distinguish classes from regular functions:
|
|
130
|
+
*
|
|
131
|
+
* - Classes have a non-writable prototype property
|
|
132
|
+
* - Class syntax produces different toString() output
|
|
133
|
+
*
|
|
134
|
+
* @param func - Function to check
|
|
135
|
+
* @returns True if the function appears to be a class constructor
|
|
136
|
+
*/
|
|
137
|
+
const isClass = (func) => {
|
|
138
|
+
if (typeof func !== 'function') {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
// Classes have a non-writable prototype
|
|
142
|
+
const protoDescriptor = Object.getOwnPropertyDescriptor(func, 'prototype');
|
|
143
|
+
if (!protoDescriptor || protoDescriptor.writable) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
// Check if it uses class syntax (handles both 'class Foo' and 'class{')
|
|
147
|
+
const funcStr = func.toString();
|
|
148
|
+
return /^class\b/.test(funcStr);
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Check if a specifier looks like a file path
|
|
152
|
+
*
|
|
153
|
+
* @param specifier - Reporter name or path
|
|
154
|
+
* @returns True if the specifier appears to be a file path
|
|
155
|
+
*/
|
|
156
|
+
const isFilePath = (specifier) => {
|
|
157
|
+
return (specifier.startsWith('.') ||
|
|
158
|
+
specifier.startsWith('/') ||
|
|
159
|
+
// isAbsolute handles Windows paths like 'C:\path\to\file.js'
|
|
160
|
+
(0, node_path_1.isAbsolute)(specifier));
|
|
161
|
+
};
|
|
162
|
+
exports.isFilePath = isFilePath;
|
|
163
|
+
/**
|
|
164
|
+
* Check if an object implements the Reporter interface
|
|
165
|
+
*
|
|
166
|
+
* Validates that all required methods are present and are functions.
|
|
167
|
+
*
|
|
168
|
+
* @param obj - Object to validate
|
|
169
|
+
* @returns True if the object has all required reporter methods
|
|
170
|
+
*/
|
|
171
|
+
const isReporterObject = (obj) => {
|
|
172
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
return REQUIRED_REPORTER_METHODS.every((method) => typeof obj[method] === 'function');
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Load a reporter from a file path or npm package name
|
|
179
|
+
*
|
|
180
|
+
* Supports multiple export patterns:
|
|
181
|
+
*
|
|
182
|
+
* 1. Plain Reporter object (simplest, no options support)
|
|
183
|
+
* 2. Class constructor (instantiated with options and context)
|
|
184
|
+
* 3. Factory function (called with options and context, can be async)
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
*
|
|
188
|
+
* ```typescript
|
|
189
|
+
* // Load from file path
|
|
190
|
+
* const reporter = await loadReporter('./my-reporter.js', {
|
|
191
|
+
* verbose: true,
|
|
192
|
+
* });
|
|
193
|
+
*
|
|
194
|
+
* // Load from npm package
|
|
195
|
+
* const reporter = await loadReporter('@company/custom-reporter', {
|
|
196
|
+
* apiKey: 'xxx',
|
|
197
|
+
* });
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* @param specifier - File path (relative or absolute) or npm package name
|
|
201
|
+
* @param options - Options to pass to the reporter factory/constructor
|
|
202
|
+
* @param cwd - Current working directory for resolving relative paths
|
|
203
|
+
* @returns Loaded reporter instance
|
|
204
|
+
* @throws ReporterLoadError if the module cannot be loaded
|
|
205
|
+
* @throws ReporterValidationError if the module doesn't implement Reporter
|
|
206
|
+
*/
|
|
207
|
+
const loadReporter = async (specifier, options = {}, cwd = process.cwd()) => {
|
|
208
|
+
const context = (0, exports.createReporterContext)();
|
|
209
|
+
const resolvedSpecifier = resolveSpecifier(specifier, cwd);
|
|
210
|
+
let module;
|
|
211
|
+
try {
|
|
212
|
+
module = await Promise.resolve(`${__rewriteRelativeImportExtension(resolvedSpecifier)}`).then(s => __importStar(require(s)));
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
216
|
+
throw new reporter_js_1.ReporterLoadError(message, specifier, { cause: error });
|
|
217
|
+
}
|
|
218
|
+
// Handle ESM/CJS interop - get default export if present
|
|
219
|
+
const exported = module.default ?? module;
|
|
220
|
+
// Case 1: Already a Reporter object (plain object export)
|
|
221
|
+
if (isReporterObject(exported)) {
|
|
222
|
+
return exported;
|
|
223
|
+
}
|
|
224
|
+
// Case 2: Class constructor
|
|
225
|
+
if (isClass(exported)) {
|
|
226
|
+
let instance;
|
|
227
|
+
try {
|
|
228
|
+
instance = new exported(options, context);
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
232
|
+
throw new reporter_js_1.ReporterLoadError(`Constructor threw error: ${message}`, specifier, { cause: error });
|
|
233
|
+
}
|
|
234
|
+
validateReporter(instance, specifier);
|
|
235
|
+
return instance;
|
|
236
|
+
}
|
|
237
|
+
// Case 3: Factory function (sync or async)
|
|
238
|
+
if (typeof exported === 'function') {
|
|
239
|
+
let result;
|
|
240
|
+
try {
|
|
241
|
+
result = await exported(options, context);
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
245
|
+
throw new reporter_js_1.ReporterLoadError(`Factory function threw error: ${message}`, specifier, { cause: error });
|
|
246
|
+
}
|
|
247
|
+
validateReporter(result, specifier);
|
|
248
|
+
return result;
|
|
249
|
+
}
|
|
250
|
+
// None of the above - could be an object with missing methods or invalid type
|
|
251
|
+
if (typeof exported === 'object' && exported !== null) {
|
|
252
|
+
// It's an object but missing required methods
|
|
253
|
+
const missing = getMissingMethods(exported);
|
|
254
|
+
throw new reporter_js_1.ReporterValidationError('Module does not implement Reporter interface.', specifier, missing);
|
|
255
|
+
}
|
|
256
|
+
// Completely invalid export type
|
|
257
|
+
throw new reporter_js_1.ReporterValidationError('Module must export a Reporter object, class, or factory function.', specifier);
|
|
258
|
+
};
|
|
259
|
+
exports.loadReporter = loadReporter;
|
|
260
|
+
/**
|
|
261
|
+
* Resolve a specifier to an importable URL or module name
|
|
262
|
+
*
|
|
263
|
+
* @param specifier - File path or npm package name
|
|
264
|
+
* @param cwd - Current working directory for resolving relative paths
|
|
265
|
+
* @returns Resolved module specifier
|
|
266
|
+
*/
|
|
267
|
+
const resolveSpecifier = (specifier, cwd) => {
|
|
268
|
+
if ((0, exports.isFilePath)(specifier)) {
|
|
269
|
+
const absolutePath = (0, node_path_1.resolve)(cwd, specifier);
|
|
270
|
+
return (0, node_url_1.pathToFileURL)(absolutePath).href;
|
|
271
|
+
}
|
|
272
|
+
// npm package name - return as-is for dynamic import
|
|
273
|
+
return specifier;
|
|
274
|
+
};
|
|
275
|
+
const validateReporter = (obj, specifier) => {
|
|
276
|
+
const missing = getMissingMethods(obj);
|
|
277
|
+
if (missing.length > 0) {
|
|
278
|
+
throw new reporter_js_1.ReporterValidationError('Module does not implement Reporter interface.', specifier, missing);
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
//# sourceMappingURL=reporter-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter-loader.js","sourceRoot":"","sources":["../../src/services/reporter-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModestBench Reporter Loader
|
|
3
|
+
*
|
|
4
|
+
* Service for loading third-party reporter plugins from file paths or npm
|
|
5
|
+
* packages. Supports multiple export patterns: plain objects, classes, and
|
|
6
|
+
* factory functions (sync or async).
|
|
7
|
+
*/
|
|
8
|
+
import type { Logger, Reporter, ReporterContext } from "../types/index.cjs";
|
|
9
|
+
/**
|
|
10
|
+
* Current plugin API version
|
|
11
|
+
*
|
|
12
|
+
* Increment this when making breaking changes to the plugin API.
|
|
13
|
+
*/
|
|
14
|
+
export declare const PLUGIN_API_VERSION = 1;
|
|
15
|
+
/**
|
|
16
|
+
* Create a ReporterContext for passing to plugins
|
|
17
|
+
*
|
|
18
|
+
* @param logger - Optional logger to use (defaults to console-based logger)
|
|
19
|
+
* @returns ReporterContext with version info and utilities
|
|
20
|
+
*/
|
|
21
|
+
export declare const createReporterContext: (logger?: Logger) => ReporterContext;
|
|
22
|
+
/**
|
|
23
|
+
* Check if a specifier refers to a built-in reporter
|
|
24
|
+
*
|
|
25
|
+
* @param specifier - Reporter name or path
|
|
26
|
+
* @returns True if the specifier is a built-in reporter name
|
|
27
|
+
*/
|
|
28
|
+
export declare const isBuiltInReporter: (specifier: string) => boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Check if a specifier looks like a file path
|
|
31
|
+
*
|
|
32
|
+
* @param specifier - Reporter name or path
|
|
33
|
+
* @returns True if the specifier appears to be a file path
|
|
34
|
+
*/
|
|
35
|
+
export declare const isFilePath: (specifier: string) => boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Load a reporter from a file path or npm package name
|
|
38
|
+
*
|
|
39
|
+
* Supports multiple export patterns:
|
|
40
|
+
*
|
|
41
|
+
* 1. Plain Reporter object (simplest, no options support)
|
|
42
|
+
* 2. Class constructor (instantiated with options and context)
|
|
43
|
+
* 3. Factory function (called with options and context, can be async)
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
*
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // Load from file path
|
|
49
|
+
* const reporter = await loadReporter('./my-reporter.js', {
|
|
50
|
+
* verbose: true,
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* // Load from npm package
|
|
54
|
+
* const reporter = await loadReporter('@company/custom-reporter', {
|
|
55
|
+
* apiKey: 'xxx',
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @param specifier - File path (relative or absolute) or npm package name
|
|
60
|
+
* @param options - Options to pass to the reporter factory/constructor
|
|
61
|
+
* @param cwd - Current working directory for resolving relative paths
|
|
62
|
+
* @returns Loaded reporter instance
|
|
63
|
+
* @throws ReporterLoadError if the module cannot be loaded
|
|
64
|
+
* @throws ReporterValidationError if the module doesn't implement Reporter
|
|
65
|
+
*/
|
|
66
|
+
export declare const loadReporter: (specifier: string, options?: Record<string, unknown>, cwd?: string) => Promise<Reporter>;
|
|
67
|
+
//# sourceMappingURL=reporter-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter-loader.d.ts","sourceRoot":"","sources":["../../src/services/reporter-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,2BAA0B;AAU3E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AA8BpC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,eAOvD,CAAC;AAkBF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,KAAG,OAIrD,CAAC;AA+BF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,KAAG,OAO9C,CAAC;AAoBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,YAAY,GACvB,WAAW,MAAM,EACjB,UAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,MAAK,MAAsB,KAC1B,OAAO,CAAC,QAAQ,CAmFlB,CAAC"}
|