modestbench 0.0.3 → 0.2.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 +26 -0
- package/README.md +39 -31
- package/dist/bootstrap.cjs +10 -12
- package/dist/bootstrap.cjs.map +1 -1
- package/dist/bootstrap.d.cts.map +1 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +5 -7
- package/dist/bootstrap.js.map +1 -1
- package/dist/cli/commands/history.cjs +108 -265
- package/dist/cli/commands/history.cjs.map +1 -1
- package/dist/cli/commands/history.d.cts +75 -12
- package/dist/cli/commands/history.d.cts.map +1 -1
- package/dist/cli/commands/history.d.ts +75 -12
- package/dist/cli/commands/history.d.ts.map +1 -1
- package/dist/cli/commands/history.js +105 -267
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/init.cjs +5 -4
- 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 +5 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +32 -9
- 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 +32 -9
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.cjs +336 -103
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +1 -2
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts +1 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +332 -99
- package/dist/cli/index.js.map +1 -1
- package/dist/constants.cjs +53 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +36 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +36 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +52 -0
- package/dist/constants.js.map +1 -1
- package/dist/core/engine.cjs +23 -43
- package/dist/core/engine.cjs.map +1 -1
- package/dist/core/engine.d.cts +4 -3
- package/dist/core/engine.d.cts.map +1 -1
- package/dist/core/engine.d.ts +4 -3
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +23 -43
- package/dist/core/engine.js.map +1 -1
- package/dist/core/engines/accurate-engine.cjs +2 -1
- package/dist/core/engines/accurate-engine.cjs.map +1 -1
- package/dist/core/engines/accurate-engine.d.cts.map +1 -1
- package/dist/core/engines/accurate-engine.d.ts.map +1 -1
- package/dist/core/engines/accurate-engine.js +2 -1
- package/dist/core/engines/accurate-engine.js.map +1 -1
- package/dist/core/engines/tinybench-engine.cjs +6 -5
- package/dist/core/engines/tinybench-engine.cjs.map +1 -1
- package/dist/core/engines/tinybench-engine.d.cts.map +1 -1
- package/dist/core/engines/tinybench-engine.d.ts.map +1 -1
- package/dist/core/engines/tinybench-engine.js +6 -5
- package/dist/core/engines/tinybench-engine.js.map +1 -1
- package/dist/core/output-path-resolver.cjs +34 -0
- package/dist/core/output-path-resolver.cjs.map +1 -0
- package/dist/core/output-path-resolver.d.cts +10 -0
- package/dist/core/output-path-resolver.d.cts.map +1 -0
- package/dist/core/output-path-resolver.d.ts +10 -0
- package/dist/core/output-path-resolver.d.ts.map +1 -0
- package/dist/core/output-path-resolver.js +30 -0
- package/dist/core/output-path-resolver.js.map +1 -0
- package/dist/errors/base.cjs +130 -0
- package/dist/errors/base.cjs.map +1 -0
- package/dist/errors/base.d.cts +97 -0
- package/dist/errors/base.d.cts.map +1 -0
- package/dist/errors/base.d.ts +97 -0
- package/dist/errors/base.d.ts.map +1 -0
- package/dist/errors/base.js +124 -0
- package/dist/errors/base.js.map +1 -0
- package/dist/errors/cli.cjs +58 -0
- package/dist/errors/cli.cjs.map +1 -0
- package/dist/errors/cli.d.cts +44 -0
- package/dist/errors/cli.d.cts.map +1 -0
- package/dist/errors/cli.d.ts +44 -0
- package/dist/errors/cli.d.ts.map +1 -0
- package/dist/errors/cli.js +52 -0
- package/dist/errors/cli.js.map +1 -0
- package/dist/errors/configuration.cjs +48 -0
- package/dist/errors/configuration.cjs.map +1 -0
- package/dist/errors/configuration.d.cts +41 -0
- package/dist/errors/configuration.d.cts.map +1 -0
- package/dist/errors/configuration.d.ts +41 -0
- package/dist/errors/configuration.d.ts.map +1 -0
- package/dist/errors/configuration.js +41 -0
- package/dist/errors/configuration.js.map +1 -0
- package/dist/errors/execution.cjs +65 -0
- package/dist/errors/execution.cjs.map +1 -0
- package/dist/errors/execution.d.cts +56 -0
- package/dist/errors/execution.d.cts.map +1 -0
- package/dist/errors/execution.d.ts +56 -0
- package/dist/errors/execution.d.ts.map +1 -0
- package/dist/errors/execution.js +56 -0
- package/dist/errors/execution.js.map +1 -0
- package/dist/errors/file.cjs +56 -0
- package/dist/errors/file.cjs.map +1 -0
- package/dist/errors/file.d.cts +48 -0
- package/dist/errors/file.d.cts.map +1 -0
- package/dist/errors/file.d.ts +48 -0
- package/dist/errors/file.d.ts.map +1 -0
- package/dist/errors/file.js +48 -0
- package/dist/errors/file.js.map +1 -0
- package/dist/errors/index.cjs +59 -0
- package/dist/errors/index.cjs.map +1 -0
- package/dist/errors/index.d.cts +16 -0
- package/dist/errors/index.d.cts.map +1 -0
- package/dist/errors/index.d.ts +16 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +24 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/reporter.cjs +38 -0
- package/dist/errors/reporter.cjs.map +1 -0
- package/dist/errors/reporter.d.cts +32 -0
- package/dist/errors/reporter.d.cts.map +1 -0
- package/dist/errors/reporter.d.ts +32 -0
- package/dist/errors/reporter.d.ts.map +1 -0
- package/dist/errors/reporter.js +32 -0
- package/dist/errors/reporter.js.map +1 -0
- package/dist/errors/storage.cjs +55 -0
- package/dist/errors/storage.cjs.map +1 -0
- package/dist/errors/storage.d.cts +47 -0
- package/dist/errors/storage.d.cts.map +1 -0
- package/dist/errors/storage.d.ts +47 -0
- package/dist/errors/storage.d.ts.map +1 -0
- package/dist/errors/storage.js +47 -0
- package/dist/errors/storage.js.map +1 -0
- package/dist/errors/validation.cjs +38 -0
- package/dist/errors/validation.cjs.map +1 -0
- package/dist/errors/validation.d.cts +32 -0
- package/dist/errors/validation.d.cts.map +1 -0
- package/dist/errors/validation.d.ts +32 -0
- package/dist/errors/validation.d.ts.map +1 -0
- package/dist/errors/validation.js +32 -0
- package/dist/errors/validation.js.map +1 -0
- package/dist/formatters/history/base.cjs +9 -0
- package/dist/formatters/history/base.cjs.map +1 -0
- package/dist/formatters/history/base.d.cts +26 -0
- package/dist/formatters/history/base.d.cts.map +1 -0
- package/dist/formatters/history/base.d.ts +26 -0
- package/dist/formatters/history/base.d.ts.map +1 -0
- package/dist/formatters/history/base.js +8 -0
- package/dist/formatters/history/base.js.map +1 -0
- package/dist/formatters/history/compare.cjs +127 -0
- package/dist/formatters/history/compare.cjs.map +1 -0
- package/dist/formatters/history/compare.d.cts +21 -0
- package/dist/formatters/history/compare.d.cts.map +1 -0
- package/dist/formatters/history/compare.d.ts +21 -0
- package/dist/formatters/history/compare.d.ts.map +1 -0
- package/dist/formatters/history/compare.js +123 -0
- package/dist/formatters/history/compare.js.map +1 -0
- package/dist/formatters/history/list.cjs +74 -0
- package/dist/formatters/history/list.cjs.map +1 -0
- package/dist/formatters/history/list.d.cts +25 -0
- package/dist/formatters/history/list.d.cts.map +1 -0
- package/dist/formatters/history/list.d.ts +25 -0
- package/dist/formatters/history/list.d.ts.map +1 -0
- package/dist/formatters/history/list.js +70 -0
- package/dist/formatters/history/list.js.map +1 -0
- package/dist/formatters/history/show.cjs +98 -0
- package/dist/formatters/history/show.cjs.map +1 -0
- package/dist/formatters/history/show.d.cts +21 -0
- package/dist/formatters/history/show.d.cts.map +1 -0
- package/dist/formatters/history/show.d.ts +21 -0
- package/dist/formatters/history/show.d.ts.map +1 -0
- package/dist/formatters/history/show.js +94 -0
- package/dist/formatters/history/show.js.map +1 -0
- package/dist/formatters/history/trends.cjs +194 -0
- package/dist/formatters/history/trends.cjs.map +1 -0
- package/dist/formatters/history/trends.d.cts +22 -0
- package/dist/formatters/history/trends.d.cts.map +1 -0
- package/dist/formatters/history/trends.d.ts +22 -0
- package/dist/formatters/history/trends.d.ts.map +1 -0
- package/dist/formatters/history/trends.js +190 -0
- package/dist/formatters/history/trends.js.map +1 -0
- package/dist/formatters/history/visualization.cjs +79 -0
- package/dist/formatters/history/visualization.cjs.map +1 -0
- package/dist/formatters/history/visualization.d.cts +24 -0
- package/dist/formatters/history/visualization.d.cts.map +1 -0
- package/dist/formatters/history/visualization.d.ts +24 -0
- package/dist/formatters/history/visualization.d.ts.map +1 -0
- package/dist/formatters/history/visualization.js +74 -0
- package/dist/formatters/history/visualization.js.map +1 -0
- package/dist/index.cjs +17 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -11
- package/dist/index.js.map +1 -1
- package/dist/reporters/csv.cjs +5 -4
- package/dist/reporters/csv.cjs.map +1 -1
- package/dist/reporters/csv.d.cts +1 -1
- package/dist/reporters/csv.d.cts.map +1 -1
- package/dist/reporters/csv.d.ts +1 -1
- package/dist/reporters/csv.d.ts.map +1 -1
- package/dist/reporters/csv.js +4 -3
- package/dist/reporters/csv.js.map +1 -1
- package/dist/reporters/human.cjs +24 -62
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts +1 -1
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts +1 -1
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +3 -41
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/json.cjs +5 -4
- package/dist/reporters/json.cjs.map +1 -1
- package/dist/reporters/json.d.cts +1 -1
- package/dist/reporters/json.d.cts.map +1 -1
- package/dist/reporters/json.d.ts +1 -1
- package/dist/reporters/json.d.ts.map +1 -1
- package/dist/reporters/json.js +4 -3
- package/dist/reporters/json.js.map +1 -1
- package/dist/reporters/simple.cjs +3 -3
- package/dist/reporters/simple.cjs.map +1 -1
- package/dist/reporters/simple.d.cts +1 -1
- package/dist/reporters/simple.d.cts.map +1 -1
- package/dist/reporters/simple.d.ts +1 -1
- package/dist/reporters/simple.d.ts.map +1 -1
- package/dist/reporters/simple.js +2 -2
- package/dist/reporters/simple.js.map +1 -1
- package/dist/{config/manager.cjs → services/config-manager.cjs} +10 -4
- package/dist/services/config-manager.cjs.map +1 -0
- package/dist/{config/manager.d.cts → services/config-manager.d.cts} +1 -1
- package/dist/services/config-manager.d.cts.map +1 -0
- package/dist/{config/manager.d.ts → services/config-manager.d.ts} +1 -1
- package/dist/services/config-manager.d.ts.map +1 -0
- package/dist/{config/manager.js → services/config-manager.js} +10 -4
- package/dist/services/config-manager.js.map +1 -0
- package/dist/{core/loader.cjs → services/file-loader.cjs} +18 -7
- package/dist/services/file-loader.cjs.map +1 -0
- package/dist/{core/loader.d.cts → services/file-loader.d.cts} +1 -1
- package/dist/services/file-loader.d.cts.map +1 -0
- package/dist/{core/loader.d.ts → services/file-loader.d.ts} +1 -1
- package/dist/services/file-loader.d.ts.map +1 -0
- package/dist/{core/loader.js → services/file-loader.js} +18 -7
- package/dist/services/file-loader.js.map +1 -0
- package/dist/services/history/comparison.cjs +124 -0
- package/dist/services/history/comparison.cjs.map +1 -0
- package/dist/services/history/comparison.d.cts +18 -0
- package/dist/services/history/comparison.d.cts.map +1 -0
- package/dist/services/history/comparison.d.ts +18 -0
- package/dist/services/history/comparison.d.ts.map +1 -0
- package/dist/services/history/comparison.js +120 -0
- package/dist/services/history/comparison.js.map +1 -0
- package/dist/services/history/models.cjs +9 -0
- package/dist/services/history/models.cjs.map +1 -0
- package/dist/services/history/models.d.cts +139 -0
- package/dist/services/history/models.d.cts.map +1 -0
- package/dist/services/history/models.d.ts +139 -0
- package/dist/services/history/models.d.ts.map +1 -0
- package/dist/services/history/models.js +8 -0
- package/dist/services/history/models.js.map +1 -0
- package/dist/services/history/query.cjs +97 -0
- package/dist/services/history/query.cjs.map +1 -0
- package/dist/services/history/query.d.cts +38 -0
- package/dist/services/history/query.d.cts.map +1 -0
- package/dist/services/history/query.d.ts +38 -0
- package/dist/services/history/query.d.ts.map +1 -0
- package/dist/services/history/query.js +92 -0
- package/dist/services/history/query.js.map +1 -0
- package/dist/services/history/trend-analysis.cjs +187 -0
- package/dist/services/history/trend-analysis.cjs.map +1 -0
- package/dist/services/history/trend-analysis.d.cts +34 -0
- package/dist/services/history/trend-analysis.d.cts.map +1 -0
- package/dist/services/history/trend-analysis.d.ts +34 -0
- package/dist/services/history/trend-analysis.d.ts.map +1 -0
- package/dist/services/history/trend-analysis.js +179 -0
- package/dist/services/history/trend-analysis.js.map +1 -0
- package/dist/{storage/history.cjs → services/history-storage.cjs} +33 -12
- package/dist/services/history-storage.cjs.map +1 -0
- package/dist/{storage/history.d.cts → services/history-storage.d.cts} +1 -1
- package/dist/services/history-storage.d.cts.map +1 -0
- package/dist/{storage/history.d.ts → services/history-storage.d.ts} +1 -1
- package/dist/services/history-storage.d.ts.map +1 -0
- package/dist/{storage/history.js → services/history-storage.js} +33 -12
- package/dist/services/history-storage.js.map +1 -0
- package/dist/{progress/manager.cjs → services/progress-manager.cjs} +1 -1
- package/dist/services/progress-manager.cjs.map +1 -0
- package/dist/{progress/manager.d.cts → services/progress-manager.d.cts} +1 -1
- package/dist/services/progress-manager.d.cts.map +1 -0
- package/dist/{progress/manager.d.ts → services/progress-manager.d.ts} +1 -1
- package/dist/services/progress-manager.d.ts.map +1 -0
- package/dist/{progress/manager.js → services/progress-manager.js} +1 -1
- package/dist/services/progress-manager.js.map +1 -0
- package/dist/{reporters/registry.cjs → services/reporter-registry.cjs} +4 -3
- package/dist/services/reporter-registry.cjs.map +1 -0
- package/dist/{reporters/registry.d.cts → services/reporter-registry.d.cts} +1 -1
- package/dist/services/reporter-registry.d.cts.map +1 -0
- package/dist/{reporters/registry.d.ts → services/reporter-registry.d.ts} +1 -1
- package/dist/services/reporter-registry.d.ts.map +1 -0
- package/dist/{reporters/registry.js → services/reporter-registry.js} +4 -3
- package/dist/services/reporter-registry.js.map +1 -0
- package/dist/types/cli.d.cts +3 -0
- package/dist/types/cli.d.cts.map +1 -1
- package/dist/types/cli.d.ts +3 -0
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/interfaces.d.cts +1 -34
- package/dist/types/interfaces.d.cts.map +1 -1
- package/dist/types/interfaces.d.ts +1 -34
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/utils/ansi.cjs +61 -0
- package/dist/utils/ansi.cjs.map +1 -0
- package/dist/utils/ansi.d.cts +53 -0
- package/dist/utils/ansi.d.cts.map +1 -0
- package/dist/utils/ansi.d.ts +53 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +57 -0
- package/dist/utils/ansi.js.map +1 -0
- package/package.json +10 -8
- package/src/bootstrap.ts +5 -7
- package/src/cli/commands/history.ts +195 -341
- package/src/cli/commands/init.ts +14 -4
- package/src/cli/commands/run.ts +52 -7
- package/src/cli/index.ts +393 -119
- package/src/constants.ts +60 -0
- package/src/core/engine.ts +40 -48
- package/src/core/engines/accurate-engine.ts +4 -1
- package/src/core/engines/tinybench-engine.ts +12 -5
- package/src/core/output-path-resolver.ts +38 -0
- package/src/errors/base.ts +152 -0
- package/src/errors/cli.ts +59 -0
- package/src/errors/configuration.ts +45 -0
- package/src/errors/execution.ts +62 -0
- package/src/errors/file.ts +53 -0
- package/src/errors/index.ts +71 -0
- package/src/errors/reporter.ts +35 -0
- package/src/errors/storage.ts +52 -0
- package/src/errors/validation.ts +35 -0
- package/src/formatters/history/base.ts +28 -0
- package/src/formatters/history/compare.ts +186 -0
- package/src/formatters/history/list.ts +101 -0
- package/src/formatters/history/show.ts +155 -0
- package/src/formatters/history/trends.ts +281 -0
- package/src/formatters/history/visualization.ts +93 -0
- package/src/index.ts +10 -14
- package/src/reporters/csv.ts +5 -3
- package/src/reporters/human.ts +3 -43
- package/src/reporters/json.ts +5 -3
- package/src/reporters/simple.ts +2 -2
- package/src/{config/manager.ts → services/config-manager.ts} +13 -3
- package/src/{core/loader.ts → services/file-loader.ts} +28 -6
- package/src/services/history/comparison.ts +130 -0
- package/src/services/history/models.ts +148 -0
- package/src/services/history/query.ts +116 -0
- package/src/services/history/trend-analysis.ts +238 -0
- package/src/{storage/history.ts → services/history-storage.ts} +58 -11
- package/src/{reporters/registry.ts → services/reporter-registry.ts} +9 -2
- package/src/types/cli.ts +3 -0
- package/src/types/interfaces.ts +0 -43
- package/src/utils/ansi.ts +59 -0
- package/dist/config/manager.cjs.map +0 -1
- package/dist/config/manager.d.cts.map +0 -1
- package/dist/config/manager.d.ts.map +0 -1
- package/dist/config/manager.js.map +0 -1
- package/dist/core/error-manager.cjs +0 -303
- package/dist/core/error-manager.cjs.map +0 -1
- package/dist/core/error-manager.d.cts +0 -77
- package/dist/core/error-manager.d.cts.map +0 -1
- package/dist/core/error-manager.d.ts +0 -77
- package/dist/core/error-manager.d.ts.map +0 -1
- package/dist/core/error-manager.js +0 -299
- package/dist/core/error-manager.js.map +0 -1
- package/dist/core/loader.cjs.map +0 -1
- package/dist/core/loader.d.cts.map +0 -1
- package/dist/core/loader.d.ts.map +0 -1
- package/dist/core/loader.js.map +0 -1
- package/dist/progress/manager.cjs.map +0 -1
- package/dist/progress/manager.d.cts.map +0 -1
- package/dist/progress/manager.d.ts.map +0 -1
- package/dist/progress/manager.js.map +0 -1
- package/dist/reporters/registry.cjs.map +0 -1
- package/dist/reporters/registry.d.cts.map +0 -1
- package/dist/reporters/registry.d.ts.map +0 -1
- package/dist/reporters/registry.js.map +0 -1
- package/dist/storage/history.cjs.map +0 -1
- package/dist/storage/history.d.cts.map +0 -1
- package/dist/storage/history.d.ts.map +0 -1
- package/dist/storage/history.js.map +0 -1
- package/src/core/error-manager.ts +0 -372
- /package/src/{progress/manager.ts → services/progress-manager.ts} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveOutputPath = void 0;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
/**
|
|
6
|
+
* Resolves the final output path for a reporter
|
|
7
|
+
*
|
|
8
|
+
* @param outputDir - Optional output directory from --output flag
|
|
9
|
+
* @param outputFile - Optional output filename from --output-file flag
|
|
10
|
+
* @param defaultFilename - Default filename to use if none specified
|
|
11
|
+
* @returns Resolved output path, or undefined if no output to file requested
|
|
12
|
+
*/
|
|
13
|
+
const resolveOutputPath = (outputDir, outputFile, defaultFilename) => {
|
|
14
|
+
// If outputFile is provided
|
|
15
|
+
if (outputFile) {
|
|
16
|
+
// If outputFile is absolute, use as-is
|
|
17
|
+
if ((0, node_path_1.isAbsolute)(outputFile)) {
|
|
18
|
+
return outputFile;
|
|
19
|
+
}
|
|
20
|
+
// If outputDir specified, join them
|
|
21
|
+
if (outputDir) {
|
|
22
|
+
return (0, node_path_1.join)(outputDir, outputFile);
|
|
23
|
+
}
|
|
24
|
+
// Otherwise, resolve relative to cwd
|
|
25
|
+
return (0, node_path_1.resolve)(process.cwd(), outputFile);
|
|
26
|
+
}
|
|
27
|
+
// Fall back to default behavior
|
|
28
|
+
if (outputDir && defaultFilename) {
|
|
29
|
+
return (0, node_path_1.join)(outputDir, defaultFilename);
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
};
|
|
33
|
+
exports.resolveOutputPath = resolveOutputPath;
|
|
34
|
+
//# sourceMappingURL=output-path-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-path-resolver.js","sourceRoot":"","sources":["../../src/core/output-path-resolver.ts"],"names":[],"mappings":";;;AAAA,yCAAsD;AAEtD;;;;;;;GAOG;AACI,MAAM,iBAAiB,GAAG,CAC/B,SAAkB,EAClB,UAAmB,EACnB,eAAwB,EACJ,EAAE;IACtB,4BAA4B;IAC5B,IAAI,UAAU,EAAE,CAAC;QACf,uCAAuC;QACvC,IAAI,IAAA,sBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,oCAAoC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAA,gBAAI,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;QAED,qCAAqC;QACrC,OAAO,IAAA,mBAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;QACjC,OAAO,IAAA,gBAAI,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AA3BW,QAAA,iBAAiB,qBA2B5B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the final output path for a reporter
|
|
3
|
+
*
|
|
4
|
+
* @param outputDir - Optional output directory from --output flag
|
|
5
|
+
* @param outputFile - Optional output filename from --output-file flag
|
|
6
|
+
* @param defaultFilename - Default filename to use if none specified
|
|
7
|
+
* @returns Resolved output path, or undefined if no output to file requested
|
|
8
|
+
*/
|
|
9
|
+
export declare const resolveOutputPath: (outputDir?: string, outputFile?: string, defaultFilename?: string) => string | undefined;
|
|
10
|
+
//# sourceMappingURL=output-path-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-path-resolver.d.ts","sourceRoot":"","sources":["../../src/core/output-path-resolver.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,kBAAkB,MAAM,KACvB,MAAM,GAAG,SAuBX,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the final output path for a reporter
|
|
3
|
+
*
|
|
4
|
+
* @param outputDir - Optional output directory from --output flag
|
|
5
|
+
* @param outputFile - Optional output filename from --output-file flag
|
|
6
|
+
* @param defaultFilename - Default filename to use if none specified
|
|
7
|
+
* @returns Resolved output path, or undefined if no output to file requested
|
|
8
|
+
*/
|
|
9
|
+
export declare const resolveOutputPath: (outputDir?: string, outputFile?: string, defaultFilename?: string) => string | undefined;
|
|
10
|
+
//# sourceMappingURL=output-path-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-path-resolver.d.ts","sourceRoot":"","sources":["../../src/core/output-path-resolver.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,kBAAkB,MAAM,KACvB,MAAM,GAAG,SAuBX,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isAbsolute, join, resolve } from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the final output path for a reporter
|
|
4
|
+
*
|
|
5
|
+
* @param outputDir - Optional output directory from --output flag
|
|
6
|
+
* @param outputFile - Optional output filename from --output-file flag
|
|
7
|
+
* @param defaultFilename - Default filename to use if none specified
|
|
8
|
+
* @returns Resolved output path, or undefined if no output to file requested
|
|
9
|
+
*/
|
|
10
|
+
export const resolveOutputPath = (outputDir, outputFile, defaultFilename) => {
|
|
11
|
+
// If outputFile is provided
|
|
12
|
+
if (outputFile) {
|
|
13
|
+
// If outputFile is absolute, use as-is
|
|
14
|
+
if (isAbsolute(outputFile)) {
|
|
15
|
+
return outputFile;
|
|
16
|
+
}
|
|
17
|
+
// If outputDir specified, join them
|
|
18
|
+
if (outputDir) {
|
|
19
|
+
return join(outputDir, outputFile);
|
|
20
|
+
}
|
|
21
|
+
// Otherwise, resolve relative to cwd
|
|
22
|
+
return resolve(process.cwd(), outputFile);
|
|
23
|
+
}
|
|
24
|
+
// Fall back to default behavior
|
|
25
|
+
if (outputDir && defaultFilename) {
|
|
26
|
+
return join(outputDir, defaultFilename);
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=output-path-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-path-resolver.js","sourceRoot":"","sources":["../../src/core/output-path-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAkB,EAClB,UAAmB,EACnB,eAAwB,EACJ,EAAE;IACtB,4BAA4B;IAC5B,IAAI,UAAU,EAAE,CAAC;QACf,uCAAuC;QACvC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,oCAAoC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;QAED,qCAAqC;QACrC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ModestBench Custom Error System
|
|
4
|
+
*
|
|
5
|
+
* Base error classes providing structured error handling with error codes,
|
|
6
|
+
* documentation URLs, and consistent error display.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.isModestBenchError = exports.ModestBenchError = exports.ModestBenchAggregateError = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Base URL for error documentation
|
|
12
|
+
*/
|
|
13
|
+
const ERROR_DOC_BASE_URL = 'https://boneskull.github.io/modestbench/reference/errors';
|
|
14
|
+
/**
|
|
15
|
+
* Abstract base class for ModestBench aggregate errors
|
|
16
|
+
*
|
|
17
|
+
* Extends AggregateError to support multiple errors with ModestBench error
|
|
18
|
+
* system features.
|
|
19
|
+
*/
|
|
20
|
+
class ModestBenchAggregateError extends AggregateError {
|
|
21
|
+
/**
|
|
22
|
+
* Error name (matches class name)
|
|
23
|
+
*/
|
|
24
|
+
name;
|
|
25
|
+
/**
|
|
26
|
+
* Create a new ModestBench aggregate error
|
|
27
|
+
*
|
|
28
|
+
* @param errors - Array of errors that occurred
|
|
29
|
+
* @param message - Human-readable error message
|
|
30
|
+
* @param options - Optional Error options (e.g., cause)
|
|
31
|
+
*/
|
|
32
|
+
constructor(errors, message, options) {
|
|
33
|
+
super(errors, message, options);
|
|
34
|
+
this.name = this.constructor.name;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the documentation URL for this error
|
|
38
|
+
*
|
|
39
|
+
* Returns a URL to the error reference page with an anchor to the specific
|
|
40
|
+
* error.
|
|
41
|
+
*
|
|
42
|
+
* @returns Documentation URL
|
|
43
|
+
*/
|
|
44
|
+
getDocUrl() {
|
|
45
|
+
// Use the error class name as the anchor (e.g., ConfigValidationError -> #configvalidationerror)
|
|
46
|
+
const anchor = this.name.toLowerCase();
|
|
47
|
+
return `${ERROR_DOC_BASE_URL}#${anchor}`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Convert error to string with code, documentation URL, and nested errors
|
|
51
|
+
*
|
|
52
|
+
* @returns Formatted error string
|
|
53
|
+
*/
|
|
54
|
+
toString() {
|
|
55
|
+
let result = `${this.name} [${this.code}]: ${this.message}\n`;
|
|
56
|
+
result += `See: ${this.getDocUrl()}\n`;
|
|
57
|
+
if (this.errors.length > 0) {
|
|
58
|
+
result += `\nContains ${this.errors.length} error(s):\n`;
|
|
59
|
+
this.errors.forEach((err, index) => {
|
|
60
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
61
|
+
result += ` ${index + 1}. ${errMsg}\n`;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.ModestBenchAggregateError = ModestBenchAggregateError;
|
|
68
|
+
/**
|
|
69
|
+
* Abstract base class for all ModestBench errors
|
|
70
|
+
*
|
|
71
|
+
* Provides:
|
|
72
|
+
*
|
|
73
|
+
* - Unique error codes with ERR_MB_ prefix
|
|
74
|
+
* - Documentation URL generation
|
|
75
|
+
* - Consistent error display format
|
|
76
|
+
* - TypeScript type safety
|
|
77
|
+
*/
|
|
78
|
+
class ModestBenchError extends Error {
|
|
79
|
+
/**
|
|
80
|
+
* Error name (matches class name)
|
|
81
|
+
*/
|
|
82
|
+
name;
|
|
83
|
+
/**
|
|
84
|
+
* Create a new ModestBench error
|
|
85
|
+
*
|
|
86
|
+
* @param message - Human-readable error message
|
|
87
|
+
* @param options - Optional Error options (e.g., cause)
|
|
88
|
+
*/
|
|
89
|
+
constructor(message, options) {
|
|
90
|
+
super(message, options);
|
|
91
|
+
this.name = this.constructor.name;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get the documentation URL for this error
|
|
95
|
+
*
|
|
96
|
+
* Returns a URL to the error reference page with an anchor to the specific
|
|
97
|
+
* error.
|
|
98
|
+
*
|
|
99
|
+
* @returns Documentation URL
|
|
100
|
+
*/
|
|
101
|
+
getDocUrl() {
|
|
102
|
+
// Use the error class name as the anchor (e.g., ConfigValidationError -> #configvalidationerror)
|
|
103
|
+
const anchor = this.name.toLowerCase();
|
|
104
|
+
return `${ERROR_DOC_BASE_URL}#${anchor}`;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Convert error to string with code and documentation URL
|
|
108
|
+
*
|
|
109
|
+
* @returns Formatted error string
|
|
110
|
+
*/
|
|
111
|
+
toString() {
|
|
112
|
+
return `${this.name} [${this.code}]: ${this.message}\nSee: ${this.getDocUrl()}`;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.ModestBenchError = ModestBenchError;
|
|
116
|
+
/**
|
|
117
|
+
* Type guard to check if an error is a ModestBench error
|
|
118
|
+
*
|
|
119
|
+
* @param error - The error to check
|
|
120
|
+
* @returns True if the error is a ModestBench error
|
|
121
|
+
*/
|
|
122
|
+
const isModestBenchError = (error) => {
|
|
123
|
+
return (typeof error === 'object' &&
|
|
124
|
+
error !== null &&
|
|
125
|
+
'code' in error &&
|
|
126
|
+
typeof error.code === 'string' &&
|
|
127
|
+
error.code.startsWith('ERR_MB_'));
|
|
128
|
+
};
|
|
129
|
+
exports.isModestBenchError = isModestBenchError;
|
|
130
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;GAEG;AACH,MAAM,kBAAkB,GACtB,0DAA0D,CAAC;AAE7D;;;;;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,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;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;AAVW,QAAA,kBAAkB,sBAU7B"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModestBench Custom Error System
|
|
3
|
+
*
|
|
4
|
+
* Base error classes providing structured error handling with error codes,
|
|
5
|
+
* documentation URLs, and consistent error display.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Abstract base class for ModestBench aggregate errors
|
|
9
|
+
*
|
|
10
|
+
* Extends AggregateError to support multiple errors with ModestBench error
|
|
11
|
+
* system features.
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class ModestBenchAggregateError extends AggregateError {
|
|
14
|
+
/**
|
|
15
|
+
* Unique error code for this error type Must be in format:
|
|
16
|
+
* ERR_MB_CATEGORY_DESCRIPTION
|
|
17
|
+
*/
|
|
18
|
+
abstract readonly code: string;
|
|
19
|
+
/**
|
|
20
|
+
* Error name (matches class name)
|
|
21
|
+
*/
|
|
22
|
+
readonly name: string;
|
|
23
|
+
/**
|
|
24
|
+
* Create a new ModestBench aggregate error
|
|
25
|
+
*
|
|
26
|
+
* @param errors - Array of errors that occurred
|
|
27
|
+
* @param message - Human-readable error message
|
|
28
|
+
* @param options - Optional Error options (e.g., cause)
|
|
29
|
+
*/
|
|
30
|
+
constructor(errors: unknown[], message: string, options?: ErrorOptions);
|
|
31
|
+
/**
|
|
32
|
+
* Get the documentation URL for this error
|
|
33
|
+
*
|
|
34
|
+
* Returns a URL to the error reference page with an anchor to the specific
|
|
35
|
+
* error.
|
|
36
|
+
*
|
|
37
|
+
* @returns Documentation URL
|
|
38
|
+
*/
|
|
39
|
+
getDocUrl(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Convert error to string with code, documentation URL, and nested errors
|
|
42
|
+
*
|
|
43
|
+
* @returns Formatted error string
|
|
44
|
+
*/
|
|
45
|
+
toString(): string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Abstract base class for all ModestBench errors
|
|
49
|
+
*
|
|
50
|
+
* Provides:
|
|
51
|
+
*
|
|
52
|
+
* - Unique error codes with ERR_MB_ prefix
|
|
53
|
+
* - Documentation URL generation
|
|
54
|
+
* - Consistent error display format
|
|
55
|
+
* - TypeScript type safety
|
|
56
|
+
*/
|
|
57
|
+
export declare abstract class ModestBenchError extends Error {
|
|
58
|
+
/**
|
|
59
|
+
* Unique error code for this error type Must be in format:
|
|
60
|
+
* ERR_MB_CATEGORY_DESCRIPTION
|
|
61
|
+
*/
|
|
62
|
+
abstract readonly code: string;
|
|
63
|
+
/**
|
|
64
|
+
* Error name (matches class name)
|
|
65
|
+
*/
|
|
66
|
+
readonly name: string;
|
|
67
|
+
/**
|
|
68
|
+
* Create a new ModestBench error
|
|
69
|
+
*
|
|
70
|
+
* @param message - Human-readable error message
|
|
71
|
+
* @param options - Optional Error options (e.g., cause)
|
|
72
|
+
*/
|
|
73
|
+
constructor(message: string, options?: ErrorOptions);
|
|
74
|
+
/**
|
|
75
|
+
* Get the documentation URL for this error
|
|
76
|
+
*
|
|
77
|
+
* Returns a URL to the error reference page with an anchor to the specific
|
|
78
|
+
* error.
|
|
79
|
+
*
|
|
80
|
+
* @returns Documentation URL
|
|
81
|
+
*/
|
|
82
|
+
getDocUrl(): string;
|
|
83
|
+
/**
|
|
84
|
+
* Convert error to string with code and documentation URL
|
|
85
|
+
*
|
|
86
|
+
* @returns Formatted error string
|
|
87
|
+
*/
|
|
88
|
+
toString(): string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Type guard to check if an error is a ModestBench error
|
|
92
|
+
*
|
|
93
|
+
* @param error - The error to check
|
|
94
|
+
* @returns True if the error is a ModestBench error
|
|
95
|
+
*/
|
|
96
|
+
export declare const isModestBenchError: (error: unknown) => error is ModestBenchError;
|
|
97
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;;;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,gBAQX,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModestBench Custom Error System
|
|
3
|
+
*
|
|
4
|
+
* Base error classes providing structured error handling with error codes,
|
|
5
|
+
* documentation URLs, and consistent error display.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Abstract base class for ModestBench aggregate errors
|
|
9
|
+
*
|
|
10
|
+
* Extends AggregateError to support multiple errors with ModestBench error
|
|
11
|
+
* system features.
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class ModestBenchAggregateError extends AggregateError {
|
|
14
|
+
/**
|
|
15
|
+
* Unique error code for this error type Must be in format:
|
|
16
|
+
* ERR_MB_CATEGORY_DESCRIPTION
|
|
17
|
+
*/
|
|
18
|
+
abstract readonly code: string;
|
|
19
|
+
/**
|
|
20
|
+
* Error name (matches class name)
|
|
21
|
+
*/
|
|
22
|
+
readonly name: string;
|
|
23
|
+
/**
|
|
24
|
+
* Create a new ModestBench aggregate error
|
|
25
|
+
*
|
|
26
|
+
* @param errors - Array of errors that occurred
|
|
27
|
+
* @param message - Human-readable error message
|
|
28
|
+
* @param options - Optional Error options (e.g., cause)
|
|
29
|
+
*/
|
|
30
|
+
constructor(errors: unknown[], message: string, options?: ErrorOptions);
|
|
31
|
+
/**
|
|
32
|
+
* Get the documentation URL for this error
|
|
33
|
+
*
|
|
34
|
+
* Returns a URL to the error reference page with an anchor to the specific
|
|
35
|
+
* error.
|
|
36
|
+
*
|
|
37
|
+
* @returns Documentation URL
|
|
38
|
+
*/
|
|
39
|
+
getDocUrl(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Convert error to string with code, documentation URL, and nested errors
|
|
42
|
+
*
|
|
43
|
+
* @returns Formatted error string
|
|
44
|
+
*/
|
|
45
|
+
toString(): string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Abstract base class for all ModestBench errors
|
|
49
|
+
*
|
|
50
|
+
* Provides:
|
|
51
|
+
*
|
|
52
|
+
* - Unique error codes with ERR_MB_ prefix
|
|
53
|
+
* - Documentation URL generation
|
|
54
|
+
* - Consistent error display format
|
|
55
|
+
* - TypeScript type safety
|
|
56
|
+
*/
|
|
57
|
+
export declare abstract class ModestBenchError extends Error {
|
|
58
|
+
/**
|
|
59
|
+
* Unique error code for this error type Must be in format:
|
|
60
|
+
* ERR_MB_CATEGORY_DESCRIPTION
|
|
61
|
+
*/
|
|
62
|
+
abstract readonly code: string;
|
|
63
|
+
/**
|
|
64
|
+
* Error name (matches class name)
|
|
65
|
+
*/
|
|
66
|
+
readonly name: string;
|
|
67
|
+
/**
|
|
68
|
+
* Create a new ModestBench error
|
|
69
|
+
*
|
|
70
|
+
* @param message - Human-readable error message
|
|
71
|
+
* @param options - Optional Error options (e.g., cause)
|
|
72
|
+
*/
|
|
73
|
+
constructor(message: string, options?: ErrorOptions);
|
|
74
|
+
/**
|
|
75
|
+
* Get the documentation URL for this error
|
|
76
|
+
*
|
|
77
|
+
* Returns a URL to the error reference page with an anchor to the specific
|
|
78
|
+
* error.
|
|
79
|
+
*
|
|
80
|
+
* @returns Documentation URL
|
|
81
|
+
*/
|
|
82
|
+
getDocUrl(): string;
|
|
83
|
+
/**
|
|
84
|
+
* Convert error to string with code and documentation URL
|
|
85
|
+
*
|
|
86
|
+
* @returns Formatted error string
|
|
87
|
+
*/
|
|
88
|
+
toString(): string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Type guard to check if an error is a ModestBench error
|
|
92
|
+
*
|
|
93
|
+
* @param error - The error to check
|
|
94
|
+
* @returns True if the error is a ModestBench error
|
|
95
|
+
*/
|
|
96
|
+
export declare const isModestBenchError: (error: unknown) => error is ModestBenchError;
|
|
97
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;;;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,gBAQX,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModestBench Custom Error System
|
|
3
|
+
*
|
|
4
|
+
* Base error classes providing structured error handling with error codes,
|
|
5
|
+
* documentation URLs, and consistent error display.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base URL for error documentation
|
|
9
|
+
*/
|
|
10
|
+
const ERROR_DOC_BASE_URL = 'https://boneskull.github.io/modestbench/reference/errors';
|
|
11
|
+
/**
|
|
12
|
+
* Abstract base class for ModestBench aggregate errors
|
|
13
|
+
*
|
|
14
|
+
* Extends AggregateError to support multiple errors with ModestBench error
|
|
15
|
+
* system features.
|
|
16
|
+
*/
|
|
17
|
+
export class ModestBenchAggregateError extends AggregateError {
|
|
18
|
+
/**
|
|
19
|
+
* Error name (matches class name)
|
|
20
|
+
*/
|
|
21
|
+
name;
|
|
22
|
+
/**
|
|
23
|
+
* Create a new ModestBench aggregate error
|
|
24
|
+
*
|
|
25
|
+
* @param errors - Array of errors that occurred
|
|
26
|
+
* @param message - Human-readable error message
|
|
27
|
+
* @param options - Optional Error options (e.g., cause)
|
|
28
|
+
*/
|
|
29
|
+
constructor(errors, message, options) {
|
|
30
|
+
super(errors, message, options);
|
|
31
|
+
this.name = this.constructor.name;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get the documentation URL for this error
|
|
35
|
+
*
|
|
36
|
+
* Returns a URL to the error reference page with an anchor to the specific
|
|
37
|
+
* error.
|
|
38
|
+
*
|
|
39
|
+
* @returns Documentation URL
|
|
40
|
+
*/
|
|
41
|
+
getDocUrl() {
|
|
42
|
+
// Use the error class name as the anchor (e.g., ConfigValidationError -> #configvalidationerror)
|
|
43
|
+
const anchor = this.name.toLowerCase();
|
|
44
|
+
return `${ERROR_DOC_BASE_URL}#${anchor}`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Convert error to string with code, documentation URL, and nested errors
|
|
48
|
+
*
|
|
49
|
+
* @returns Formatted error string
|
|
50
|
+
*/
|
|
51
|
+
toString() {
|
|
52
|
+
let result = `${this.name} [${this.code}]: ${this.message}\n`;
|
|
53
|
+
result += `See: ${this.getDocUrl()}\n`;
|
|
54
|
+
if (this.errors.length > 0) {
|
|
55
|
+
result += `\nContains ${this.errors.length} error(s):\n`;
|
|
56
|
+
this.errors.forEach((err, index) => {
|
|
57
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
58
|
+
result += ` ${index + 1}. ${errMsg}\n`;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Abstract base class for all ModestBench errors
|
|
66
|
+
*
|
|
67
|
+
* Provides:
|
|
68
|
+
*
|
|
69
|
+
* - Unique error codes with ERR_MB_ prefix
|
|
70
|
+
* - Documentation URL generation
|
|
71
|
+
* - Consistent error display format
|
|
72
|
+
* - TypeScript type safety
|
|
73
|
+
*/
|
|
74
|
+
export class ModestBenchError extends Error {
|
|
75
|
+
/**
|
|
76
|
+
* Error name (matches class name)
|
|
77
|
+
*/
|
|
78
|
+
name;
|
|
79
|
+
/**
|
|
80
|
+
* Create a new ModestBench error
|
|
81
|
+
*
|
|
82
|
+
* @param message - Human-readable error message
|
|
83
|
+
* @param options - Optional Error options (e.g., cause)
|
|
84
|
+
*/
|
|
85
|
+
constructor(message, options) {
|
|
86
|
+
super(message, options);
|
|
87
|
+
this.name = this.constructor.name;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get the documentation URL for this error
|
|
91
|
+
*
|
|
92
|
+
* Returns a URL to the error reference page with an anchor to the specific
|
|
93
|
+
* error.
|
|
94
|
+
*
|
|
95
|
+
* @returns Documentation URL
|
|
96
|
+
*/
|
|
97
|
+
getDocUrl() {
|
|
98
|
+
// Use the error class name as the anchor (e.g., ConfigValidationError -> #configvalidationerror)
|
|
99
|
+
const anchor = this.name.toLowerCase();
|
|
100
|
+
return `${ERROR_DOC_BASE_URL}#${anchor}`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Convert error to string with code and documentation URL
|
|
104
|
+
*
|
|
105
|
+
* @returns Formatted error string
|
|
106
|
+
*/
|
|
107
|
+
toString() {
|
|
108
|
+
return `${this.name} [${this.code}]: ${this.message}\nSee: ${this.getDocUrl()}`;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Type guard to check if an error is a ModestBench error
|
|
113
|
+
*
|
|
114
|
+
* @param error - The error to check
|
|
115
|
+
* @returns True if the error is a ModestBench error
|
|
116
|
+
*/
|
|
117
|
+
export const isModestBenchError = (error) => {
|
|
118
|
+
return (typeof error === 'object' &&
|
|
119
|
+
error !== null &&
|
|
120
|
+
'code' in error &&
|
|
121
|
+
typeof error.code === 'string' &&
|
|
122
|
+
error.code.startsWith('ERR_MB_'));
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,kBAAkB,GACtB,0DAA0D,CAAC;AAE7D;;;;;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,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI-related errors
|
|
4
|
+
*
|
|
5
|
+
* Errors that occur during command-line interface operations.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.UnknownError = exports.InvalidDateFormatError = exports.InvalidArgumentError = void 0;
|
|
9
|
+
const base_js_1 = require("./base.cjs");
|
|
10
|
+
/**
|
|
11
|
+
* Invalid CLI argument
|
|
12
|
+
*
|
|
13
|
+
* Thrown when a CLI argument is invalid or cannot be parsed.
|
|
14
|
+
*/
|
|
15
|
+
class InvalidArgumentError extends base_js_1.ModestBenchError {
|
|
16
|
+
code = 'ERR_MB_CLI_INVALID_ARGUMENT';
|
|
17
|
+
}
|
|
18
|
+
exports.InvalidArgumentError = InvalidArgumentError;
|
|
19
|
+
/**
|
|
20
|
+
* Invalid date format
|
|
21
|
+
*
|
|
22
|
+
* Thrown when a date string cannot be parsed into a valid date.
|
|
23
|
+
*/
|
|
24
|
+
class InvalidDateFormatError extends base_js_1.ModestBenchError {
|
|
25
|
+
code = 'ERR_MB_CLI_INVALID_DATE_FORMAT';
|
|
26
|
+
}
|
|
27
|
+
exports.InvalidDateFormatError = InvalidDateFormatError;
|
|
28
|
+
/**
|
|
29
|
+
* Unknown error
|
|
30
|
+
*
|
|
31
|
+
* Thrown at the CLI boundary to wrap unexpected errors that are not ModestBench
|
|
32
|
+
* errors. This ensures all errors have proper structure and documentation
|
|
33
|
+
* links.
|
|
34
|
+
*/
|
|
35
|
+
class UnknownError extends base_js_1.ModestBenchError {
|
|
36
|
+
code = 'ERR_MB_UNKNOWN';
|
|
37
|
+
/**
|
|
38
|
+
* Create a new UnknownError wrapping an unexpected error
|
|
39
|
+
*
|
|
40
|
+
* @param message - The error message (typically from the original error)
|
|
41
|
+
* @param options - Error options with the original error as the cause
|
|
42
|
+
*/
|
|
43
|
+
constructor(message, options) {
|
|
44
|
+
super(message, options);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Override toString to show full details of the wrapped error
|
|
48
|
+
*/
|
|
49
|
+
toString() {
|
|
50
|
+
let result = super.toString();
|
|
51
|
+
if (this.cause instanceof Error && this.cause.stack) {
|
|
52
|
+
result += '\n\nOriginal error:\n' + this.cause.stack;
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.UnknownError = UnknownError;
|
|
58
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/errors/cli.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,wCAA6C;AAE7C;;;;GAIG;AACH,MAAa,oBAAqB,SAAQ,0BAAgB;IAC/C,IAAI,GAAG,6BAA6B,CAAC;CAC/C;AAFD,oDAEC;AAED;;;;GAIG;AACH,MAAa,sBAAuB,SAAQ,0BAAgB;IACjD,IAAI,GAAG,gCAAgC,CAAC;CAClD;AAFD,wDAEC;AAED;;;;;;GAMG;AACH,MAAa,YAAa,SAAQ,0BAAgB;IACvC,IAAI,GAAG,gBAAgB,CAAC;IAEjC;;;;;OAKG;IACH,YAAY,OAAe,EAAE,OAAqB;QAChD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACM,QAAQ;QACf,IAAI,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpD,MAAM,IAAI,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACvD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAzBD,oCAyBC"}
|