modestbench 0.9.1 → 0.9.2
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 +8 -0
- package/dist/cli/builder.cjs +259 -0
- package/dist/cli/builder.cjs.map +1 -0
- package/dist/cli/builder.d.cts +37 -0
- package/dist/cli/builder.d.cts.map +1 -0
- package/dist/cli/builder.d.ts +37 -0
- package/dist/cli/builder.d.ts.map +1 -0
- package/dist/cli/builder.js +255 -0
- package/dist/cli/builder.js.map +1 -0
- package/dist/cli/commands/baseline.cjs +4 -33
- package/dist/cli/commands/baseline.cjs.map +1 -1
- package/dist/cli/commands/baseline.d.cts.map +1 -1
- package/dist/cli/commands/baseline.d.ts.map +1 -1
- package/dist/cli/commands/baseline.js +2 -31
- package/dist/cli/commands/baseline.js.map +1 -1
- package/dist/cli/commands/history.cjs +2 -14
- package/dist/cli/commands/history.cjs.map +1 -1
- package/dist/cli/commands/history.d.cts.map +1 -1
- package/dist/cli/commands/history.d.ts.map +1 -1
- package/dist/cli/commands/history.js +1 -13
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/context.cjs +60 -0
- package/dist/cli/context.cjs.map +1 -0
- package/dist/cli/context.d.cts +28 -0
- package/dist/cli/context.d.cts.map +1 -0
- package/dist/cli/context.d.ts +28 -0
- package/dist/cli/context.d.ts.map +1 -0
- package/dist/cli/context.js +56 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/handlers.cjs +74 -0
- package/dist/cli/handlers.cjs.map +1 -0
- package/dist/cli/handlers.d.cts +13 -0
- package/dist/cli/handlers.d.cts.map +1 -0
- package/dist/cli/handlers.d.ts +13 -0
- package/dist/cli/handlers.d.ts.map +1 -0
- package/dist/cli/handlers.js +70 -0
- package/dist/cli/handlers.js.map +1 -0
- package/dist/cli/index.cjs +12 -724
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +4 -39
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts +4 -39
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +9 -722
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/parsers/analyze.cjs +54 -0
- package/dist/cli/parsers/analyze.cjs.map +1 -0
- package/dist/cli/parsers/analyze.d.cts +37 -0
- package/dist/cli/parsers/analyze.d.cts.map +1 -0
- package/dist/cli/parsers/analyze.d.ts +37 -0
- package/dist/cli/parsers/analyze.d.ts.map +1 -0
- package/dist/cli/parsers/analyze.js +51 -0
- package/dist/cli/parsers/analyze.js.map +1 -0
- package/dist/cli/parsers/baseline.cjs +75 -0
- package/dist/cli/parsers/baseline.cjs.map +1 -0
- package/dist/cli/parsers/baseline.d.cts +59 -0
- package/dist/cli/parsers/baseline.d.cts.map +1 -0
- package/dist/cli/parsers/baseline.d.ts +59 -0
- package/dist/cli/parsers/baseline.d.ts.map +1 -0
- package/dist/cli/parsers/baseline.js +72 -0
- package/dist/cli/parsers/baseline.js.map +1 -0
- package/dist/cli/parsers/global.cjs +49 -0
- package/dist/cli/parsers/global.cjs.map +1 -0
- package/dist/cli/parsers/global.d.cts +45 -0
- package/dist/cli/parsers/global.d.cts.map +1 -0
- package/dist/cli/parsers/global.d.ts +45 -0
- package/dist/cli/parsers/global.d.ts.map +1 -0
- package/dist/cli/parsers/global.js +46 -0
- package/dist/cli/parsers/global.js.map +1 -0
- package/dist/cli/parsers/history.cjs +138 -0
- package/dist/cli/parsers/history.cjs.map +1 -0
- package/dist/cli/parsers/history.d.cts +108 -0
- package/dist/cli/parsers/history.d.cts.map +1 -0
- package/dist/cli/parsers/history.d.ts +108 -0
- package/dist/cli/parsers/history.d.ts.map +1 -0
- package/dist/cli/parsers/history.js +135 -0
- package/dist/cli/parsers/history.js.map +1 -0
- package/dist/cli/parsers/index.cjs +35 -0
- package/dist/cli/parsers/index.cjs.map +1 -0
- package/dist/cli/parsers/index.d.cts +15 -0
- package/dist/cli/parsers/index.d.cts.map +1 -0
- package/dist/cli/parsers/index.d.ts +15 -0
- package/dist/cli/parsers/index.d.ts.map +1 -0
- package/dist/cli/parsers/index.js +15 -0
- package/dist/cli/parsers/index.js.map +1 -0
- package/dist/cli/parsers/init.cjs +39 -0
- package/dist/cli/parsers/init.cjs.map +1 -0
- package/dist/cli/parsers/init.d.cts +32 -0
- package/dist/cli/parsers/init.d.cts.map +1 -0
- package/dist/cli/parsers/init.d.ts +32 -0
- package/dist/cli/parsers/init.d.ts.map +1 -0
- package/dist/cli/parsers/init.js +36 -0
- package/dist/cli/parsers/init.js.map +1 -0
- package/dist/cli/parsers/run.cjs +99 -0
- package/dist/cli/parsers/run.cjs.map +1 -0
- package/dist/cli/parsers/run.d.cts +62 -0
- package/dist/cli/parsers/run.d.cts.map +1 -0
- package/dist/cli/parsers/run.d.ts +62 -0
- package/dist/cli/parsers/run.d.ts.map +1 -0
- package/dist/cli/parsers/run.js +96 -0
- package/dist/cli/parsers/run.js.map +1 -0
- package/dist/cli/parsers/test.cjs +42 -0
- package/dist/cli/parsers/test.cjs.map +1 -0
- package/dist/cli/parsers/test.d.cts +31 -0
- package/dist/cli/parsers/test.d.cts.map +1 -0
- package/dist/cli/parsers/test.d.ts +31 -0
- package/dist/cli/parsers/test.d.ts.map +1 -0
- package/dist/cli/parsers/test.js +39 -0
- package/dist/cli/parsers/test.js.map +1 -0
- package/dist/cli/theme.cjs +35 -0
- package/dist/cli/theme.cjs.map +1 -0
- package/dist/cli/theme.d.cts +31 -0
- package/dist/cli/theme.d.cts.map +1 -0
- package/dist/cli/theme.d.ts +31 -0
- package/dist/cli/theme.d.ts.map +1 -0
- package/dist/cli/theme.js +32 -0
- package/dist/cli/theme.js.map +1 -0
- package/dist/errors/base.cjs +3 -12
- package/dist/errors/base.cjs.map +1 -1
- package/dist/errors/base.d.cts +0 -7
- package/dist/errors/base.d.cts.map +1 -1
- package/dist/errors/base.d.ts +0 -7
- package/dist/errors/base.d.ts.map +1 -1
- package/dist/errors/base.js +1 -9
- package/dist/errors/base.js.map +1 -1
- package/dist/services/profiler/profile-runner.cjs +11 -0
- package/dist/services/profiler/profile-runner.cjs.map +1 -1
- package/dist/services/profiler/profile-runner.d.cts +2 -0
- package/dist/services/profiler/profile-runner.d.cts.map +1 -1
- package/dist/services/profiler/profile-runner.d.ts +2 -0
- package/dist/services/profiler/profile-runner.d.ts.map +1 -1
- package/dist/services/profiler/profile-runner.js +11 -0
- package/dist/services/profiler/profile-runner.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/builder.ts +387 -0
- package/src/cli/commands/baseline.ts +7 -33
- package/src/cli/commands/history.ts +1 -16
- package/src/cli/context.ts +117 -0
- package/src/cli/handlers.ts +76 -0
- package/src/cli/index.ts +10 -1012
- package/src/cli/parsers/analyze.ts +61 -0
- package/src/cli/parsers/baseline.ts +92 -0
- package/src/cli/parsers/global.ts +51 -0
- package/src/cli/parsers/history.ts +168 -0
- package/src/cli/parsers/index.ts +28 -0
- package/src/cli/parsers/init.ts +45 -0
- package/src/cli/parsers/run.ts +118 -0
- package/src/cli/parsers/test.ts +46 -0
- package/src/cli/theme.ts +33 -0
- package/src/errors/base.ts +1 -10
- package/src/services/profiler/profile-runner.ts +15 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Command Parser
|
|
3
|
+
*
|
|
4
|
+
* Parser for the `test` command which runs test files as benchmarks.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parser for `test` command
|
|
10
|
+
*/
|
|
11
|
+
export declare const testParser: import("@boneskull/bargs").Parser<import("@boneskull/bargs").InferOptions<{
|
|
12
|
+
bail: import("@boneskull/bargs").BooleanOption & {
|
|
13
|
+
aliases: string[];
|
|
14
|
+
description: string;
|
|
15
|
+
};
|
|
16
|
+
iterations: import("@boneskull/bargs").NumberOption & {
|
|
17
|
+
aliases: string[];
|
|
18
|
+
default: number;
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
quiet: import("@boneskull/bargs").BooleanOption & {
|
|
22
|
+
aliases: string[];
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
warmup: import("@boneskull/bargs").NumberOption & {
|
|
26
|
+
aliases: string[];
|
|
27
|
+
default: number;
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
}> & object, readonly ["ava" | "jest" | "mocha" | "node-test", string[]]>;
|
|
31
|
+
//# sourceMappingURL=test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/cli/parsers/test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;yEAgCtB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Command Parser
|
|
3
|
+
*
|
|
4
|
+
* Parser for the `test` command which runs test files as benchmarks.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import { merge, opt, pos } from '@boneskull/bargs';
|
|
9
|
+
/**
|
|
10
|
+
* Parser for `test` command
|
|
11
|
+
*/
|
|
12
|
+
export const testParser = merge(opt.options({
|
|
13
|
+
bail: opt.boolean({
|
|
14
|
+
aliases: ['b'],
|
|
15
|
+
description: 'Stop on first failure',
|
|
16
|
+
}),
|
|
17
|
+
iterations: opt.number({
|
|
18
|
+
aliases: ['i'],
|
|
19
|
+
default: 100,
|
|
20
|
+
description: 'Number of iterations per test',
|
|
21
|
+
}),
|
|
22
|
+
quiet: opt.boolean({
|
|
23
|
+
aliases: ['q'],
|
|
24
|
+
description: 'Minimal output',
|
|
25
|
+
}),
|
|
26
|
+
warmup: opt.number({
|
|
27
|
+
aliases: ['w'],
|
|
28
|
+
default: 5,
|
|
29
|
+
description: 'Number of warmup iterations',
|
|
30
|
+
}),
|
|
31
|
+
}), pos.positionals(pos.enum(['ava', 'jest', 'mocha', 'node-test'], {
|
|
32
|
+
description: 'Test framework to use',
|
|
33
|
+
name: 'framework',
|
|
34
|
+
required: true,
|
|
35
|
+
}), pos.variadic('string', {
|
|
36
|
+
description: 'Test file paths or glob patterns',
|
|
37
|
+
name: 'files',
|
|
38
|
+
})));
|
|
39
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/parsers/test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAC7B,GAAG,CAAC,OAAO,CAAC;IACV,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;QAChB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EAAE,uBAAuB;KACrC,CAAC;IACF,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,+BAA+B;KAC7C,CAAC;IACF,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;QACjB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EAAE,gBAAgB;KAC9B,CAAC;IACF,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;QACjB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,6BAA6B;KAC3C,CAAC;CACH,CAAC,EACF,GAAG,CAAC,WAAW,CACb,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAU,EAAE;IACvD,WAAW,EAAE,uBAAuB;IACpC,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,IAAI;CACf,CAAC,EACF,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;IACrB,WAAW,EAAE,kCAAkC;IAC/C,IAAI,EAAE,OAAO;CACd,CAAC,CACH,CACF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI Theme Configuration
|
|
4
|
+
*
|
|
5
|
+
* Synthwave-inspired color theme for bargs help output, matching the retro
|
|
6
|
+
* aesthetic used throughout modestbench reporters.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.synthwaveTheme = void 0;
|
|
12
|
+
const bargs_1 = require("@boneskull/bargs");
|
|
13
|
+
/**
|
|
14
|
+
* Synthwave-inspired theme for CLI help output
|
|
15
|
+
*
|
|
16
|
+
* Matches the retro aesthetic used in modestbench reporters
|
|
17
|
+
*/
|
|
18
|
+
exports.synthwaveTheme = {
|
|
19
|
+
colors: {
|
|
20
|
+
command: bargs_1.ansi.brightMagenta,
|
|
21
|
+
defaultText: bargs_1.ansi.dim,
|
|
22
|
+
defaultValue: bargs_1.ansi.brightYellow,
|
|
23
|
+
description: bargs_1.ansi.brightWhite,
|
|
24
|
+
epilog: bargs_1.ansi.brightWhite,
|
|
25
|
+
example: bargs_1.ansi.cyan,
|
|
26
|
+
flag: bargs_1.ansi.brightCyan,
|
|
27
|
+
positional: bargs_1.ansi.brightMagenta,
|
|
28
|
+
scriptName: bargs_1.ansi.brightCyan + bargs_1.ansi.bold,
|
|
29
|
+
sectionHeader: bargs_1.ansi.magenta + bargs_1.ansi.bold,
|
|
30
|
+
type: bargs_1.ansi.brightWhite + bargs_1.ansi.dim,
|
|
31
|
+
url: bargs_1.ansi.brightCyan + bargs_1.ansi.underline,
|
|
32
|
+
usage: bargs_1.ansi.white,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/cli/theme.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,4CAAwC;AAExC;;;;GAIG;AACU,QAAA,cAAc,GAAG;IAC5B,MAAM,EAAE;QACN,OAAO,EAAE,YAAI,CAAC,aAAa;QAC3B,WAAW,EAAE,YAAI,CAAC,GAAG;QACrB,YAAY,EAAE,YAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,YAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,YAAI,CAAC,WAAW;QACxB,OAAO,EAAE,YAAI,CAAC,IAAI;QAClB,IAAI,EAAE,YAAI,CAAC,UAAU;QACrB,UAAU,EAAE,YAAI,CAAC,aAAa;QAC9B,UAAU,EAAE,YAAI,CAAC,UAAU,GAAG,YAAI,CAAC,IAAI;QACvC,aAAa,EAAE,YAAI,CAAC,OAAO,GAAG,YAAI,CAAC,IAAI;QACvC,IAAI,EAAE,YAAI,CAAC,WAAW,GAAG,YAAI,CAAC,GAAG;QACjC,GAAG,EAAE,YAAI,CAAC,UAAU,GAAG,YAAI,CAAC,SAAS;QACrC,KAAK,EAAE,YAAI,CAAC,KAAK;KAClB;CACF,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Theme Configuration
|
|
3
|
+
*
|
|
4
|
+
* Synthwave-inspired color theme for bargs help output, matching the retro
|
|
5
|
+
* aesthetic used throughout modestbench reporters.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Synthwave-inspired theme for CLI help output
|
|
11
|
+
*
|
|
12
|
+
* Matches the retro aesthetic used in modestbench reporters
|
|
13
|
+
*/
|
|
14
|
+
export declare const synthwaveTheme: {
|
|
15
|
+
colors: {
|
|
16
|
+
command: "\u001B[95m";
|
|
17
|
+
defaultText: "\u001B[2m";
|
|
18
|
+
defaultValue: "\u001B[93m";
|
|
19
|
+
description: "\u001B[97m";
|
|
20
|
+
epilog: "\u001B[97m";
|
|
21
|
+
example: "\u001B[36m";
|
|
22
|
+
flag: "\u001B[96m";
|
|
23
|
+
positional: "\u001B[95m";
|
|
24
|
+
scriptName: string;
|
|
25
|
+
sectionHeader: string;
|
|
26
|
+
type: string;
|
|
27
|
+
url: string;
|
|
28
|
+
usage: "\u001B[37m";
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/cli/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;CAgB1B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Theme Configuration
|
|
3
|
+
*
|
|
4
|
+
* Synthwave-inspired color theme for bargs help output, matching the retro
|
|
5
|
+
* aesthetic used throughout modestbench reporters.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Synthwave-inspired theme for CLI help output
|
|
11
|
+
*
|
|
12
|
+
* Matches the retro aesthetic used in modestbench reporters
|
|
13
|
+
*/
|
|
14
|
+
export declare const synthwaveTheme: {
|
|
15
|
+
colors: {
|
|
16
|
+
command: "\u001B[95m";
|
|
17
|
+
defaultText: "\u001B[2m";
|
|
18
|
+
defaultValue: "\u001B[93m";
|
|
19
|
+
description: "\u001B[97m";
|
|
20
|
+
epilog: "\u001B[97m";
|
|
21
|
+
example: "\u001B[36m";
|
|
22
|
+
flag: "\u001B[96m";
|
|
23
|
+
positional: "\u001B[95m";
|
|
24
|
+
scriptName: string;
|
|
25
|
+
sectionHeader: string;
|
|
26
|
+
type: string;
|
|
27
|
+
url: string;
|
|
28
|
+
usage: "\u001B[37m";
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/cli/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;CAgB1B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Theme Configuration
|
|
3
|
+
*
|
|
4
|
+
* Synthwave-inspired color theme for bargs help output, matching the retro
|
|
5
|
+
* aesthetic used throughout modestbench reporters.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import { ansi } from '@boneskull/bargs';
|
|
10
|
+
/**
|
|
11
|
+
* Synthwave-inspired theme for CLI help output
|
|
12
|
+
*
|
|
13
|
+
* Matches the retro aesthetic used in modestbench reporters
|
|
14
|
+
*/
|
|
15
|
+
export const synthwaveTheme = {
|
|
16
|
+
colors: {
|
|
17
|
+
command: ansi.brightMagenta,
|
|
18
|
+
defaultText: ansi.dim,
|
|
19
|
+
defaultValue: ansi.brightYellow,
|
|
20
|
+
description: ansi.brightWhite,
|
|
21
|
+
epilog: ansi.brightWhite,
|
|
22
|
+
example: ansi.cyan,
|
|
23
|
+
flag: ansi.brightCyan,
|
|
24
|
+
positional: ansi.brightMagenta,
|
|
25
|
+
scriptName: ansi.brightCyan + ansi.bold,
|
|
26
|
+
sectionHeader: ansi.magenta + ansi.bold,
|
|
27
|
+
type: ansi.brightWhite + ansi.dim,
|
|
28
|
+
url: ansi.brightCyan + ansi.underline,
|
|
29
|
+
usage: ansi.white,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/cli/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE;QACN,OAAO,EAAE,IAAI,CAAC,aAAa;QAC3B,WAAW,EAAE,IAAI,CAAC,GAAG;QACrB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,IAAI,CAAC,WAAW;QACxB,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,IAAI,EAAE,IAAI,CAAC,UAAU;QACrB,UAAU,EAAE,IAAI,CAAC,aAAa;QAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;QACvC,aAAa,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI;QACvC,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG;QACjC,GAAG,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB;CACF,CAAC"}
|
package/dist/errors/base.cjs
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
* documentation URLs, and consistent error display.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.isModestBenchError = exports.ModestBenchError = exports.ModestBenchAggregateError = void 0;
|
|
10
10
|
const constants_js_1 = require("../constants.cjs");
|
|
11
|
+
const type_guards_js_1 = require("../utils/type-guards.cjs");
|
|
11
12
|
/**
|
|
12
13
|
* Base URL for error documentation
|
|
13
14
|
*/
|
|
@@ -121,20 +122,10 @@ exports.ModestBenchError = ModestBenchError;
|
|
|
121
122
|
* @returns True if the error is a ModestBench error
|
|
122
123
|
*/
|
|
123
124
|
const isModestBenchError = (error) => {
|
|
124
|
-
return ((0,
|
|
125
|
+
return ((0, type_guards_js_1.isError)(error) &&
|
|
125
126
|
'code' in error &&
|
|
126
127
|
typeof error.code === 'string' &&
|
|
127
128
|
error.code.startsWith('ERR_MB_'));
|
|
128
129
|
};
|
|
129
130
|
exports.isModestBenchError = isModestBenchError;
|
|
130
|
-
/**
|
|
131
|
-
* Type guard to check if an error is a standard Error
|
|
132
|
-
*
|
|
133
|
-
* @param error - The error to check
|
|
134
|
-
* @returns `true` if the error is an `Error`
|
|
135
|
-
*/
|
|
136
|
-
const isError = (error) => {
|
|
137
|
-
return error instanceof Error;
|
|
138
|
-
};
|
|
139
|
-
exports.isError = isError;
|
|
140
131
|
//# sourceMappingURL=base.js.map
|
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,mDAA2C;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mDAA2C;AAC3C,6DAAkD;AAElD;;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,wBAAO,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"}
|
package/dist/errors/base.d.cts
CHANGED
|
@@ -94,11 +94,4 @@ export declare abstract class ModestBenchError extends Error {
|
|
|
94
94
|
* @returns True if the error is a ModestBench error
|
|
95
95
|
*/
|
|
96
96
|
export declare const isModestBenchError: (error: unknown) => error is ModestBenchError;
|
|
97
|
-
/**
|
|
98
|
-
* Type guard to check if an error is a standard Error
|
|
99
|
-
*
|
|
100
|
-
* @param error - The error to check
|
|
101
|
-
* @returns `true` if the error is an `Error`
|
|
102
|
-
*/
|
|
103
|
-
export declare const isError: (error: unknown) => error is Error;
|
|
104
97
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -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;AAUH;;;;;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"}
|
package/dist/errors/base.d.ts
CHANGED
|
@@ -94,11 +94,4 @@ export declare abstract class ModestBenchError extends Error {
|
|
|
94
94
|
* @returns True if the error is a ModestBench error
|
|
95
95
|
*/
|
|
96
96
|
export declare const isModestBenchError: (error: unknown) => error is ModestBenchError;
|
|
97
|
-
/**
|
|
98
|
-
* Type guard to check if an error is a standard Error
|
|
99
|
-
*
|
|
100
|
-
* @param error - The error to check
|
|
101
|
-
* @returns `true` if the error is an `Error`
|
|
102
|
-
*/
|
|
103
|
-
export declare const isError: (error: unknown) => error is Error;
|
|
104
97
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -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;AAUH;;;;;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"}
|
package/dist/errors/base.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* documentation URLs, and consistent error display.
|
|
6
6
|
*/
|
|
7
7
|
import { SITE_URL } from "../constants.js";
|
|
8
|
+
import { isError } from "../utils/type-guards.js";
|
|
8
9
|
/**
|
|
9
10
|
* Base URL for error documentation
|
|
10
11
|
*/
|
|
@@ -121,13 +122,4 @@ export const isModestBenchError = (error) => {
|
|
|
121
122
|
typeof error.code === 'string' &&
|
|
122
123
|
error.code.startsWith('ERR_MB_'));
|
|
123
124
|
};
|
|
124
|
-
/**
|
|
125
|
-
* Type guard to check if an error is a standard Error
|
|
126
|
-
*
|
|
127
|
-
* @param error - The error to check
|
|
128
|
-
* @returns `true` if the error is an `Error`
|
|
129
|
-
*/
|
|
130
|
-
export const isError = (error) => {
|
|
131
|
-
return error instanceof Error;
|
|
132
|
-
};
|
|
133
125
|
//# sourceMappingURL=base.js.map
|
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,OAAO,EAAE,QAAQ,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,wBAAwB;AAC3C,OAAO,EAAE,OAAO,EAAE,gCAAgC;AAElD;;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"}
|
|
@@ -13,14 +13,25 @@ const glob_1 = require("glob");
|
|
|
13
13
|
const node_child_process_1 = require("node:child_process");
|
|
14
14
|
const promises_1 = require("node:fs/promises");
|
|
15
15
|
const node_path_1 = require("node:path");
|
|
16
|
+
/**
|
|
17
|
+
* Node.js major version number
|
|
18
|
+
*/
|
|
19
|
+
const nodeMajorVersion = Number(process.versions.node.split('.')[0]);
|
|
16
20
|
/**
|
|
17
21
|
* Run a command with Node.js profiling enabled
|
|
18
22
|
*
|
|
19
23
|
* @param command - Command to run (e.g., "npm test")
|
|
20
24
|
* @param options - Execution options
|
|
21
25
|
* @returns Path to generated *.cpuprofile file
|
|
26
|
+
* @throws Error if running on Node.js 20 (--cpu-prof not allowed in
|
|
27
|
+
* NODE_OPTIONS)
|
|
22
28
|
*/
|
|
23
29
|
const runWithProfiling = async (command, options = {}) => {
|
|
30
|
+
// Node.js 20 blocks --cpu-prof in NODE_OPTIONS for security reasons
|
|
31
|
+
if (nodeMajorVersion === 20) {
|
|
32
|
+
throw new Error('CPU profiling requires Node.js 22 or later. ' +
|
|
33
|
+
'Node.js 20 blocks --cpu-prof in NODE_OPTIONS for security reasons.');
|
|
34
|
+
}
|
|
24
35
|
const cwd = options.cwd || process.cwd();
|
|
25
36
|
// Create profiles directory
|
|
26
37
|
const profilesDir = (0, node_path_1.join)(cwd, '.modestbench', 'profiles');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-runner.js","sourceRoot":"","sources":["../../../src/services/profiler/profile-runner.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,+BAA4B;AAC5B,2DAA2C;AAC3C,+CAA+C;AAC/C,yCAAiC;AAgBjC
|
|
1
|
+
{"version":3,"file":"profile-runner.js","sourceRoot":"","sources":["../../../src/services/profiler/profile-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,8 @@ interface RunOptions {
|
|
|
23
23
|
* @param command - Command to run (e.g., "npm test")
|
|
24
24
|
* @param options - Execution options
|
|
25
25
|
* @returns Path to generated *.cpuprofile file
|
|
26
|
+
* @throws Error if running on Node.js 20 (--cpu-prof not allowed in
|
|
27
|
+
* NODE_OPTIONS)
|
|
26
28
|
*/
|
|
27
29
|
export declare const runWithProfiling: (command: string, options?: RunOptions) => Promise<string>;
|
|
28
30
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-runner.d.ts","sourceRoot":"","sources":["../../../src/services/profiler/profile-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;GAEG;AACH,UAAU,UAAU;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAExB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"profile-runner.d.ts","sourceRoot":"","sources":["../../../src/services/profiler/profile-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;GAEG;AACH,UAAU,UAAU;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAExB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,EACf,UAAS,UAAe,KACvB,OAAO,CAAC,MAAM,CAoEhB,CAAC"}
|
|
@@ -23,6 +23,8 @@ interface RunOptions {
|
|
|
23
23
|
* @param command - Command to run (e.g., "npm test")
|
|
24
24
|
* @param options - Execution options
|
|
25
25
|
* @returns Path to generated *.cpuprofile file
|
|
26
|
+
* @throws Error if running on Node.js 20 (--cpu-prof not allowed in
|
|
27
|
+
* NODE_OPTIONS)
|
|
26
28
|
*/
|
|
27
29
|
export declare const runWithProfiling: (command: string, options?: RunOptions) => Promise<string>;
|
|
28
30
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-runner.d.ts","sourceRoot":"","sources":["../../../src/services/profiler/profile-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;GAEG;AACH,UAAU,UAAU;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAExB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"profile-runner.d.ts","sourceRoot":"","sources":["../../../src/services/profiler/profile-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;GAEG;AACH,UAAU,UAAU;IAClB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAExB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,EACf,UAAS,UAAe,KACvB,OAAO,CAAC,MAAM,CAoEhB,CAAC"}
|
|
@@ -10,14 +10,25 @@ import { glob } from 'glob';
|
|
|
10
10
|
import { spawn } from 'node:child_process';
|
|
11
11
|
import { mkdir, stat } from 'node:fs/promises';
|
|
12
12
|
import { join } from 'node:path';
|
|
13
|
+
/**
|
|
14
|
+
* Node.js major version number
|
|
15
|
+
*/
|
|
16
|
+
const nodeMajorVersion = Number(process.versions.node.split('.')[0]);
|
|
13
17
|
/**
|
|
14
18
|
* Run a command with Node.js profiling enabled
|
|
15
19
|
*
|
|
16
20
|
* @param command - Command to run (e.g., "npm test")
|
|
17
21
|
* @param options - Execution options
|
|
18
22
|
* @returns Path to generated *.cpuprofile file
|
|
23
|
+
* @throws Error if running on Node.js 20 (--cpu-prof not allowed in
|
|
24
|
+
* NODE_OPTIONS)
|
|
19
25
|
*/
|
|
20
26
|
export const runWithProfiling = async (command, options = {}) => {
|
|
27
|
+
// Node.js 20 blocks --cpu-prof in NODE_OPTIONS for security reasons
|
|
28
|
+
if (nodeMajorVersion === 20) {
|
|
29
|
+
throw new Error('CPU profiling requires Node.js 22 or later. ' +
|
|
30
|
+
'Node.js 20 blocks --cpu-prof in NODE_OPTIONS for security reasons.');
|
|
31
|
+
}
|
|
21
32
|
const cwd = options.cwd || process.cwd();
|
|
22
33
|
// Create profiles directory
|
|
23
34
|
const profilesDir = join(cwd, '.modestbench', 'profiles');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-runner.js","sourceRoot":"","sources":["../../../src/services/profiler/profile-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgBjC
|
|
1
|
+
{"version":3,"file":"profile-runner.js","sourceRoot":"","sources":["../../../src/services/profiler/profile-runner.ts"],"names":[],"mappings":"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"}
|