modestbench 0.1.0 → 0.3.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 +31 -0
- package/README.md +162 -57
- package/dist/bootstrap.cjs +10 -10
- 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 -5
- package/dist/bootstrap.js.map +1 -1
- package/dist/cli/commands/analyze.cjs +60 -0
- package/dist/cli/commands/analyze.cjs.map +1 -0
- package/dist/cli/commands/analyze.d.cts +35 -0
- package/dist/cli/commands/analyze.d.cts.map +1 -0
- package/dist/cli/commands/analyze.d.ts +35 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +56 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/baseline.cjs +404 -0
- package/dist/cli/commands/baseline.cjs.map +1 -0
- package/dist/cli/commands/baseline.d.cts +72 -0
- package/dist/cli/commands/baseline.d.cts.map +1 -0
- package/dist/cli/commands/baseline.d.ts +72 -0
- package/dist/cli/commands/baseline.d.ts.map +1 -0
- package/dist/cli/commands/baseline.js +396 -0
- package/dist/cli/commands/baseline.js.map +1 -0
- package/dist/cli/commands/history.cjs +108 -266
- 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 -268
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/init.cjs +88 -155
- package/dist/cli/commands/init.cjs.map +1 -1
- package/dist/cli/commands/init.d.cts +4 -4
- package/dist/cli/commands/init.d.cts.map +1 -1
- package/dist/cli/commands/init.d.ts +4 -4
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +88 -155
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +143 -112
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.d.cts +17 -3
- package/dist/cli/commands/run.d.cts.map +1 -1
- package/dist/cli/commands/run.d.ts +17 -3
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +142 -78
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.cjs +671 -266
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +4 -16
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts +4 -16
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +664 -259
- package/dist/cli/index.js.map +1 -1
- package/dist/config/budget-schema.cjs +172 -0
- package/dist/config/budget-schema.cjs.map +1 -0
- package/dist/config/budget-schema.d.cts +59 -0
- package/dist/config/budget-schema.d.cts.map +1 -0
- package/dist/config/budget-schema.d.ts +59 -0
- package/dist/config/budget-schema.d.ts.map +1 -0
- package/dist/config/budget-schema.js +166 -0
- package/dist/config/budget-schema.js.map +1 -0
- package/dist/config/schema.cjs +182 -2
- package/dist/config/schema.cjs.map +1 -1
- package/dist/config/schema.d.cts +122 -3
- package/dist/config/schema.d.cts.map +1 -1
- package/dist/config/schema.d.ts +122 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +180 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/constants.cjs +45 -2
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +41 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +41 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +44 -1
- package/dist/constants.js.map +1 -1
- package/dist/core/engine.cjs +104 -15
- package/dist/core/engine.cjs.map +1 -1
- package/dist/core/engine.d.cts +7 -4
- package/dist/core/engine.d.cts.map +1 -1
- package/dist/core/engine.d.ts +7 -4
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +105 -16
- package/dist/core/engine.js.map +1 -1
- package/dist/core/output-path-resolver.cjs +41 -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 +37 -0
- package/dist/core/output-path-resolver.js.map +1 -0
- package/dist/errors/base.cjs +12 -3
- package/dist/errors/base.cjs.map +1 -1
- package/dist/errors/base.d.cts +7 -0
- package/dist/errors/base.d.cts.map +1 -1
- package/dist/errors/base.d.ts +7 -0
- package/dist/errors/base.d.ts.map +1 -1
- package/dist/errors/base.js +10 -2
- package/dist/errors/base.js.map +1 -1
- package/dist/errors/budget.cjs +37 -0
- package/dist/errors/budget.cjs.map +1 -0
- package/dist/errors/budget.d.cts +31 -0
- package/dist/errors/budget.d.cts.map +1 -0
- package/dist/errors/budget.d.ts +31 -0
- package/dist/errors/budget.d.ts.map +1 -0
- package/dist/errors/budget.js +33 -0
- package/dist/errors/budget.js.map +1 -0
- package/dist/errors/index.cjs +4 -1
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +1 -0
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -1
- 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 +27 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -5
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -9
- package/dist/index.js.map +1 -1
- package/dist/reporters/csv.cjs +39 -19
- package/dist/reporters/csv.cjs.map +1 -1
- package/dist/reporters/csv.d.cts +4 -7
- package/dist/reporters/csv.d.cts.map +1 -1
- package/dist/reporters/csv.d.ts +4 -7
- package/dist/reporters/csv.d.ts.map +1 -1
- package/dist/reporters/csv.js +38 -18
- package/dist/reporters/csv.js.map +1 -1
- package/dist/reporters/human.cjs +87 -99
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts +15 -14
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts +15 -14
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +68 -80
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/json.cjs +25 -50
- package/dist/reporters/json.cjs.map +1 -1
- package/dist/reporters/json.d.cts +3 -29
- package/dist/reporters/json.d.cts.map +1 -1
- package/dist/reporters/json.d.ts +3 -29
- package/dist/reporters/json.d.ts.map +1 -1
- package/dist/reporters/json.js +26 -51
- package/dist/reporters/json.js.map +1 -1
- package/dist/reporters/profile-human.cjs +149 -0
- package/dist/reporters/profile-human.cjs.map +1 -0
- package/dist/reporters/profile-human.d.cts +44 -0
- package/dist/reporters/profile-human.d.cts.map +1 -0
- package/dist/reporters/profile-human.d.ts +44 -0
- package/dist/reporters/profile-human.d.ts.map +1 -0
- package/dist/reporters/profile-human.js +142 -0
- package/dist/reporters/profile-human.js.map +1 -0
- package/dist/reporters/simple.cjs +66 -46
- package/dist/reporters/simple.cjs.map +1 -1
- package/dist/reporters/simple.d.cts +15 -15
- package/dist/reporters/simple.d.cts.map +1 -1
- package/dist/reporters/simple.d.ts +15 -15
- package/dist/reporters/simple.d.ts.map +1 -1
- package/dist/reporters/simple.js +65 -45
- package/dist/reporters/simple.js.map +1 -1
- package/dist/schema/modestbench-config.schema.json +153 -0
- package/dist/services/baseline-storage.cjs +151 -0
- package/dist/services/baseline-storage.cjs.map +1 -0
- package/dist/services/baseline-storage.d.cts +55 -0
- package/dist/services/baseline-storage.d.cts.map +1 -0
- package/dist/services/baseline-storage.d.ts +55 -0
- package/dist/services/baseline-storage.d.ts.map +1 -0
- package/dist/services/baseline-storage.js +147 -0
- package/dist/services/baseline-storage.js.map +1 -0
- package/dist/services/budget-evaluator.cjs +146 -0
- package/dist/services/budget-evaluator.cjs.map +1 -0
- package/dist/services/budget-evaluator.d.cts +29 -0
- package/dist/services/budget-evaluator.d.cts.map +1 -0
- package/dist/services/budget-evaluator.d.ts +29 -0
- package/dist/services/budget-evaluator.d.ts.map +1 -0
- package/dist/services/budget-evaluator.js +142 -0
- package/dist/services/budget-evaluator.js.map +1 -0
- package/dist/{config/manager.cjs → services/config-manager.cjs} +25 -11
- package/dist/services/config-manager.cjs.map +1 -0
- package/dist/{config/manager.d.cts → services/config-manager.d.cts} +7 -2
- package/dist/services/config-manager.d.cts.map +1 -0
- package/dist/{config/manager.d.ts → services/config-manager.d.ts} +7 -2
- package/dist/services/config-manager.d.ts.map +1 -0
- package/dist/{config/manager.js → services/config-manager.js} +25 -11
- package/dist/services/config-manager.js.map +1 -0
- package/dist/{core/loader.cjs → services/file-loader.cjs} +5 -8
- 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} +5 -8
- 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} +1 -1
- 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} +1 -1
- package/dist/services/history-storage.js.map +1 -0
- package/dist/services/profiler/profile-filter.cjs +113 -0
- package/dist/services/profiler/profile-filter.cjs.map +1 -0
- package/dist/services/profiler/profile-filter.d.cts +20 -0
- package/dist/services/profiler/profile-filter.d.cts.map +1 -0
- package/dist/services/profiler/profile-filter.d.ts +20 -0
- package/dist/services/profiler/profile-filter.d.ts.map +1 -0
- package/dist/services/profiler/profile-filter.js +109 -0
- package/dist/services/profiler/profile-filter.js.map +1 -0
- package/dist/services/profiler/profile-parser.cjs +139 -0
- package/dist/services/profiler/profile-parser.cjs.map +1 -0
- package/dist/services/profiler/profile-parser.d.cts +18 -0
- package/dist/services/profiler/profile-parser.d.cts.map +1 -0
- package/dist/services/profiler/profile-parser.d.ts +18 -0
- package/dist/services/profiler/profile-parser.d.ts.map +1 -0
- package/dist/services/profiler/profile-parser.js +132 -0
- package/dist/services/profiler/profile-parser.js.map +1 -0
- package/dist/services/profiler/profile-runner.cjs +90 -0
- package/dist/services/profiler/profile-runner.cjs.map +1 -0
- package/dist/services/profiler/profile-runner.d.cts +29 -0
- package/dist/services/profiler/profile-runner.d.cts.map +1 -0
- package/dist/services/profiler/profile-runner.d.ts +29 -0
- package/dist/services/profiler/profile-runner.d.ts.map +1 -0
- package/dist/services/profiler/profile-runner.js +86 -0
- package/dist/services/profiler/profile-runner.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} +19 -25
- package/dist/services/reporter-registry.cjs.map +1 -0
- package/dist/{reporters/registry.d.cts → services/reporter-registry.d.cts} +19 -41
- package/dist/services/reporter-registry.d.cts.map +1 -0
- package/dist/{reporters/registry.d.ts → services/reporter-registry.d.ts} +19 -41
- package/dist/services/reporter-registry.d.ts.map +1 -0
- package/dist/{reporters/registry.js → services/reporter-registry.js} +19 -25
- package/dist/services/reporter-registry.js.map +1 -0
- package/dist/types/budgets.cjs +8 -0
- package/dist/types/budgets.cjs.map +1 -0
- package/dist/types/budgets.d.cts +149 -0
- package/dist/types/budgets.d.cts.map +1 -0
- package/dist/types/budgets.d.ts +149 -0
- package/dist/types/budgets.d.ts.map +1 -0
- package/dist/types/budgets.js +7 -0
- package/dist/types/budgets.js.map +1 -0
- package/dist/types/cli.cjs +2 -11
- package/dist/types/cli.cjs.map +1 -1
- package/dist/types/cli.d.cts +3 -224
- package/dist/types/cli.d.cts.map +1 -1
- package/dist/types/cli.d.ts +3 -224
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/cli.js +2 -11
- package/dist/types/cli.js.map +1 -1
- package/dist/types/core.cjs +6 -1
- package/dist/types/core.cjs.map +1 -1
- package/dist/types/core.d.cts +13 -2
- package/dist/types/core.d.cts.map +1 -1
- package/dist/types/core.d.ts +13 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +2 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/index.cjs +5 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +2 -0
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/interfaces.d.cts +15 -8
- package/dist/types/interfaces.d.cts.map +1 -1
- package/dist/types/interfaces.d.ts +15 -8
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/types/profiler.cjs +11 -0
- package/dist/types/profiler.cjs.map +1 -0
- package/dist/types/profiler.d.cts +100 -0
- package/dist/types/profiler.d.cts.map +1 -0
- package/dist/types/profiler.d.ts +100 -0
- package/dist/types/profiler.d.ts.map +1 -0
- package/dist/types/profiler.js +10 -0
- package/dist/types/profiler.js.map +1 -0
- package/dist/types/utility.cjs.map +1 -1
- package/dist/types/utility.d.cts +0 -8
- package/dist/types/utility.d.cts.map +1 -1
- package/dist/types/utility.d.ts +0 -8
- package/dist/types/utility.d.ts.map +1 -1
- package/dist/types/utility.js.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/dist/utils/identifiers.cjs +32 -0
- package/dist/utils/identifiers.cjs.map +1 -0
- package/dist/utils/identifiers.d.cts +32 -0
- package/dist/utils/identifiers.d.cts.map +1 -0
- package/dist/utils/identifiers.d.ts +32 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/identifiers.js +27 -0
- package/dist/utils/identifiers.js.map +1 -0
- package/dist/utils/package.cjs +40 -0
- package/dist/utils/package.cjs.map +1 -0
- package/dist/utils/package.d.cts +15 -0
- package/dist/utils/package.d.cts.map +1 -0
- package/dist/utils/package.d.ts +15 -0
- package/dist/utils/package.d.ts.map +1 -0
- package/dist/utils/package.js +33 -0
- package/dist/utils/package.js.map +1 -0
- package/dist/utils/type-guards.cjs +48 -0
- package/dist/utils/type-guards.cjs.map +1 -0
- package/dist/utils/type-guards.d.cts +22 -0
- package/dist/utils/type-guards.d.cts.map +1 -0
- package/dist/utils/type-guards.d.ts +22 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +43 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +14 -13
- package/src/bootstrap.ts +5 -5
- package/src/cli/commands/analyze.ts +101 -0
- package/src/cli/commands/baseline.ts +577 -0
- package/src/cli/commands/history.ts +194 -342
- package/src/cli/commands/init.ts +105 -183
- package/src/cli/commands/run.ts +186 -88
- package/src/cli/index.ts +731 -234
- package/src/config/budget-schema.ts +189 -0
- package/src/config/schema.ts +260 -1
- package/src/constants.ts +53 -1
- package/src/core/engine.ts +153 -14
- package/src/core/output-path-resolver.ts +46 -0
- package/src/errors/base.ts +11 -2
- package/src/errors/budget.ts +38 -0
- package/src/errors/index.ts +3 -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 +17 -12
- package/src/reporters/csv.ts +55 -26
- package/src/reporters/human.ts +90 -89
- package/src/reporters/json.ts +27 -72
- package/src/reporters/profile-human.ts +204 -0
- package/src/reporters/simple.ts +85 -54
- package/src/services/baseline-storage.ts +199 -0
- package/src/services/budget-evaluator.ts +182 -0
- package/src/{config/manager.ts → services/config-manager.ts} +24 -9
- package/src/{core/loader.ts → services/file-loader.ts} +4 -7
- 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/services/profiler/profile-filter.ts +143 -0
- package/src/services/profiler/profile-parser.ts +194 -0
- package/src/services/profiler/profile-runner.ts +121 -0
- package/src/{reporters/registry.ts → services/reporter-registry.ts} +46 -81
- package/src/types/budgets.ts +180 -0
- package/src/types/cli.ts +5 -235
- package/src/types/core.ts +50 -10
- package/src/types/index.ts +5 -0
- package/src/types/interfaces.ts +16 -6
- package/src/types/profiler.ts +132 -0
- package/src/types/utility.ts +0 -10
- package/src/utils/ansi.ts +59 -0
- package/src/utils/identifiers.ts +58 -0
- package/src/utils/package.ts +35 -0
- package/src/utils/type-guards.ts +51 -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/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/{storage/history.ts → services/history-storage.ts} +0 -0
- /package/src/{progress/manager.ts → services/progress-manager.ts} +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ANSI Color Codes and Terminal Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared ANSI escape codes for colored terminal output. Used across reporters
|
|
5
|
+
* and CLI commands for consistent visual styling.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* ANSI color codes for terminal output
|
|
9
|
+
*/
|
|
10
|
+
export declare const colors: {
|
|
11
|
+
readonly bold: "\u001B[1m";
|
|
12
|
+
readonly brightBlue: "\u001B[94m";
|
|
13
|
+
readonly brightCyan: "\u001B[96m";
|
|
14
|
+
readonly brightMagenta: "\u001B[95m";
|
|
15
|
+
readonly brightRed: "\u001B[91m";
|
|
16
|
+
readonly brightWhite: "\u001B[97m";
|
|
17
|
+
readonly brightYellow: "\u001B[93m";
|
|
18
|
+
readonly cyan: "\u001B[36m";
|
|
19
|
+
readonly dim: "\u001B[2m";
|
|
20
|
+
readonly gray: "\u001B[90m";
|
|
21
|
+
readonly green: "\u001B[32m";
|
|
22
|
+
readonly magenta: "\u001B[35m";
|
|
23
|
+
readonly red: "\u001B[31m";
|
|
24
|
+
readonly reset: "\u001B[0m";
|
|
25
|
+
readonly underline: "\u001B[4m";
|
|
26
|
+
readonly white: "\u001B[37m";
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* CP437-inspired ANSI art characters
|
|
30
|
+
*/
|
|
31
|
+
export declare const ansiChars: {
|
|
32
|
+
readonly approx: "≈";
|
|
33
|
+
readonly block: {
|
|
34
|
+
readonly dark: "▓";
|
|
35
|
+
readonly full: "█";
|
|
36
|
+
readonly light: "░";
|
|
37
|
+
readonly medium: "▒";
|
|
38
|
+
};
|
|
39
|
+
readonly bullet: "•";
|
|
40
|
+
readonly checkmark: "√";
|
|
41
|
+
readonly cross: "×";
|
|
42
|
+
readonly plusMinus: "±";
|
|
43
|
+
readonly smallSquare: "▪";
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Apply ANSI color to text
|
|
47
|
+
*
|
|
48
|
+
* @param color - Color name from the colors object
|
|
49
|
+
* @param text - Text to colorize
|
|
50
|
+
* @returns Colorized text with reset code
|
|
51
|
+
*/
|
|
52
|
+
export declare const colorize: (color: keyof typeof colors, text: string) => string;
|
|
53
|
+
//# sourceMappingURL=ansi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/utils/ansi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;CAiBT,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;CAeZ,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,OAAO,MAAM,EAAE,MAAM,MAAM,KAAG,MAEnE,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ANSI Color Codes and Terminal Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared ANSI escape codes for colored terminal output. Used across reporters
|
|
5
|
+
* and CLI commands for consistent visual styling.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* ANSI color codes for terminal output
|
|
9
|
+
*/
|
|
10
|
+
export declare const colors: {
|
|
11
|
+
readonly bold: "\u001B[1m";
|
|
12
|
+
readonly brightBlue: "\u001B[94m";
|
|
13
|
+
readonly brightCyan: "\u001B[96m";
|
|
14
|
+
readonly brightMagenta: "\u001B[95m";
|
|
15
|
+
readonly brightRed: "\u001B[91m";
|
|
16
|
+
readonly brightWhite: "\u001B[97m";
|
|
17
|
+
readonly brightYellow: "\u001B[93m";
|
|
18
|
+
readonly cyan: "\u001B[36m";
|
|
19
|
+
readonly dim: "\u001B[2m";
|
|
20
|
+
readonly gray: "\u001B[90m";
|
|
21
|
+
readonly green: "\u001B[32m";
|
|
22
|
+
readonly magenta: "\u001B[35m";
|
|
23
|
+
readonly red: "\u001B[31m";
|
|
24
|
+
readonly reset: "\u001B[0m";
|
|
25
|
+
readonly underline: "\u001B[4m";
|
|
26
|
+
readonly white: "\u001B[37m";
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* CP437-inspired ANSI art characters
|
|
30
|
+
*/
|
|
31
|
+
export declare const ansiChars: {
|
|
32
|
+
readonly approx: "≈";
|
|
33
|
+
readonly block: {
|
|
34
|
+
readonly dark: "▓";
|
|
35
|
+
readonly full: "█";
|
|
36
|
+
readonly light: "░";
|
|
37
|
+
readonly medium: "▒";
|
|
38
|
+
};
|
|
39
|
+
readonly bullet: "•";
|
|
40
|
+
readonly checkmark: "√";
|
|
41
|
+
readonly cross: "×";
|
|
42
|
+
readonly plusMinus: "±";
|
|
43
|
+
readonly smallSquare: "▪";
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Apply ANSI color to text
|
|
47
|
+
*
|
|
48
|
+
* @param color - Color name from the colors object
|
|
49
|
+
* @param text - Text to colorize
|
|
50
|
+
* @returns Colorized text with reset code
|
|
51
|
+
*/
|
|
52
|
+
export declare const colorize: (color: keyof typeof colors, text: string) => string;
|
|
53
|
+
//# sourceMappingURL=ansi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/utils/ansi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;CAiBT,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;CAeZ,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,OAAO,MAAM,EAAE,MAAM,MAAM,KAAG,MAEnE,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ANSI Color Codes and Terminal Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared ANSI escape codes for colored terminal output. Used across reporters
|
|
5
|
+
* and CLI commands for consistent visual styling.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* ANSI color codes for terminal output
|
|
9
|
+
*/
|
|
10
|
+
export const colors = {
|
|
11
|
+
bold: '\x1b[1m',
|
|
12
|
+
brightBlue: '\x1b[94m',
|
|
13
|
+
brightCyan: '\x1b[96m',
|
|
14
|
+
brightMagenta: '\x1b[95m',
|
|
15
|
+
brightRed: '\x1b[91m',
|
|
16
|
+
brightWhite: '\x1b[97m',
|
|
17
|
+
brightYellow: '\x1b[93m',
|
|
18
|
+
cyan: '\x1b[36m',
|
|
19
|
+
dim: '\x1b[2m',
|
|
20
|
+
gray: '\x1b[90m',
|
|
21
|
+
green: '\x1b[32m',
|
|
22
|
+
magenta: '\x1b[35m',
|
|
23
|
+
red: '\x1b[31m',
|
|
24
|
+
reset: '\x1b[0m',
|
|
25
|
+
underline: '\x1b[4m',
|
|
26
|
+
white: '\x1b[37m',
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* CP437-inspired ANSI art characters
|
|
30
|
+
*/
|
|
31
|
+
export const ansiChars = {
|
|
32
|
+
approx: '≈',
|
|
33
|
+
// Block elements for gradients
|
|
34
|
+
block: {
|
|
35
|
+
dark: '▓',
|
|
36
|
+
full: '█',
|
|
37
|
+
light: '░',
|
|
38
|
+
medium: '▒',
|
|
39
|
+
},
|
|
40
|
+
bullet: '•',
|
|
41
|
+
// Symbols
|
|
42
|
+
checkmark: '√',
|
|
43
|
+
cross: '×',
|
|
44
|
+
plusMinus: '±',
|
|
45
|
+
smallSquare: '▪',
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Apply ANSI color to text
|
|
49
|
+
*
|
|
50
|
+
* @param color - Color name from the colors object
|
|
51
|
+
* @param text - Text to colorize
|
|
52
|
+
* @returns Colorized text with reset code
|
|
53
|
+
*/
|
|
54
|
+
export const colorize = (color, text) => {
|
|
55
|
+
return `${colors[color]}${text}${colors.reset}`;
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=ansi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/utils/ansi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,UAAU;IACzB,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,UAAU;IACnB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,UAAU;CACT,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,GAAG;IACX,+BAA+B;IAC/B,KAAK,EAAE;QACL,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;KACZ;IACD,MAAM,EAAE,GAAG;IACX,UAAU;IACV,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,GAAG;IACV,SAAS,EAAE,GAAG;IACd,WAAW,EAAE,GAAG;CACR,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAA0B,EAAE,IAAY,EAAU,EAAE;IAC3E,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Utility functions for creating branded identifier types
|
|
4
|
+
*
|
|
5
|
+
* @module utils/identifiers
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.createRunId = void 0;
|
|
9
|
+
exports.createTaskId = createTaskId;
|
|
10
|
+
/**
|
|
11
|
+
* Create a RunId from a string (validation should happen elsewhere)
|
|
12
|
+
*
|
|
13
|
+
* @param id - The run identifier string (typically 7 alphanumeric characters)
|
|
14
|
+
* @returns A branded RunId
|
|
15
|
+
*/
|
|
16
|
+
const createRunId = (id) => id;
|
|
17
|
+
exports.createRunId = createRunId;
|
|
18
|
+
/**
|
|
19
|
+
* Create a TaskId from file, suite, and task names
|
|
20
|
+
*
|
|
21
|
+
* @param filePath - Path to the benchmark file
|
|
22
|
+
* @param suiteName - Name of the test suite
|
|
23
|
+
* @param taskName - Name of the benchmark task
|
|
24
|
+
* @returns A branded TaskId in the format `{filePath}/{suiteName}/{taskName}`
|
|
25
|
+
*/
|
|
26
|
+
function createTaskId(filePath, suiteName, taskName) {
|
|
27
|
+
if (suiteName !== undefined && taskName !== undefined) {
|
|
28
|
+
return `${filePath}/${suiteName}/${taskName}`;
|
|
29
|
+
}
|
|
30
|
+
return filePath;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=identifiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/utils/identifiers.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA4CH,oCASC;AAjDD;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAC,EAAU,EAAS,EAAE,CAAC,EAAW,CAAC;AAAjD,QAAA,WAAW,eAAsC;AA0B9D;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,QAAgB,EAChB,SAAkB,EAClB,QAAiB;IAEjB,IAAI,SAAS,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,GAAG,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAY,CAAC;IAC1D,CAAC;IACD,OAAO,QAAkB,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for creating branded identifier types
|
|
3
|
+
*
|
|
4
|
+
* @module utils/identifiers
|
|
5
|
+
*/
|
|
6
|
+
import type { RunId, TaskId } from "../types/budgets.cjs";
|
|
7
|
+
/**
|
|
8
|
+
* Create a RunId from a string (validation should happen elsewhere)
|
|
9
|
+
*
|
|
10
|
+
* @param id - The run identifier string (typically 7 alphanumeric characters)
|
|
11
|
+
* @returns A branded RunId
|
|
12
|
+
*/
|
|
13
|
+
export declare const createRunId: (id: string) => RunId;
|
|
14
|
+
/**
|
|
15
|
+
* Create a TaskId from file, suite, and task names
|
|
16
|
+
*
|
|
17
|
+
* @param filePath - Path to the benchmark file
|
|
18
|
+
* @param suiteName - Name of the test suite
|
|
19
|
+
* @param taskName - Name of the benchmark task
|
|
20
|
+
* @returns A branded TaskId in the format `{filePath}/{suiteName}/{taskName}`
|
|
21
|
+
*/
|
|
22
|
+
export declare function createTaskId(filePath: string, suiteName: string, taskName: string): TaskId;
|
|
23
|
+
/**
|
|
24
|
+
* Create a TaskId from a single string
|
|
25
|
+
*
|
|
26
|
+
* @param filePath - Path to the benchmark file
|
|
27
|
+
* @param suiteName - Name of the test suite
|
|
28
|
+
* @param taskName - Name of the benchmark task
|
|
29
|
+
* @returns A branded TaskId in the format `{filePath}/{suiteName}/{taskName}`
|
|
30
|
+
*/
|
|
31
|
+
export declare function createTaskId(taskId: string): TaskId;
|
|
32
|
+
//# sourceMappingURL=identifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/utils/identifiers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA4B;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,KAAoB,CAAC;AAE9D;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC;AAEV;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for creating branded identifier types
|
|
3
|
+
*
|
|
4
|
+
* @module utils/identifiers
|
|
5
|
+
*/
|
|
6
|
+
import type { RunId, TaskId } from "../types/budgets.js";
|
|
7
|
+
/**
|
|
8
|
+
* Create a RunId from a string (validation should happen elsewhere)
|
|
9
|
+
*
|
|
10
|
+
* @param id - The run identifier string (typically 7 alphanumeric characters)
|
|
11
|
+
* @returns A branded RunId
|
|
12
|
+
*/
|
|
13
|
+
export declare const createRunId: (id: string) => RunId;
|
|
14
|
+
/**
|
|
15
|
+
* Create a TaskId from file, suite, and task names
|
|
16
|
+
*
|
|
17
|
+
* @param filePath - Path to the benchmark file
|
|
18
|
+
* @param suiteName - Name of the test suite
|
|
19
|
+
* @param taskName - Name of the benchmark task
|
|
20
|
+
* @returns A branded TaskId in the format `{filePath}/{suiteName}/{taskName}`
|
|
21
|
+
*/
|
|
22
|
+
export declare function createTaskId(filePath: string, suiteName: string, taskName: string): TaskId;
|
|
23
|
+
/**
|
|
24
|
+
* Create a TaskId from a single string
|
|
25
|
+
*
|
|
26
|
+
* @param filePath - Path to the benchmark file
|
|
27
|
+
* @param suiteName - Name of the test suite
|
|
28
|
+
* @param taskName - Name of the benchmark task
|
|
29
|
+
* @returns A branded TaskId in the format `{filePath}/{suiteName}/{taskName}`
|
|
30
|
+
*/
|
|
31
|
+
export declare function createTaskId(taskId: string): TaskId;
|
|
32
|
+
//# sourceMappingURL=identifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/utils/identifiers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,KAAoB,CAAC;AAE9D;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC;AAEV;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for creating branded identifier types
|
|
3
|
+
*
|
|
4
|
+
* @module utils/identifiers
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Create a RunId from a string (validation should happen elsewhere)
|
|
8
|
+
*
|
|
9
|
+
* @param id - The run identifier string (typically 7 alphanumeric characters)
|
|
10
|
+
* @returns A branded RunId
|
|
11
|
+
*/
|
|
12
|
+
export const createRunId = (id) => id;
|
|
13
|
+
/**
|
|
14
|
+
* Create a TaskId from file, suite, and task names
|
|
15
|
+
*
|
|
16
|
+
* @param filePath - Path to the benchmark file
|
|
17
|
+
* @param suiteName - Name of the test suite
|
|
18
|
+
* @param taskName - Name of the benchmark task
|
|
19
|
+
* @returns A branded TaskId in the format `{filePath}/{suiteName}/{taskName}`
|
|
20
|
+
*/
|
|
21
|
+
export function createTaskId(filePath, suiteName, taskName) {
|
|
22
|
+
if (suiteName !== undefined && taskName !== undefined) {
|
|
23
|
+
return `${filePath}/${suiteName}/${taskName}`;
|
|
24
|
+
}
|
|
25
|
+
return filePath;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=identifiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/utils/identifiers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAU,EAAS,EAAE,CAAC,EAAW,CAAC;AA0B9D;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,SAAkB,EAClB,QAAiB;IAEjB,IAAI,SAAS,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,GAAG,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAY,CAAC;IAC1D,CAAC;IACD,OAAO,QAAkB,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Package Utilities
|
|
4
|
+
*
|
|
5
|
+
* Utilities for working with package.json files and package structure.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.findPackageRoot = void 0;
|
|
14
|
+
const promises_1 = require("node:fs/promises");
|
|
15
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
+
/**
|
|
17
|
+
* Find the nearest package.json and return its directory
|
|
18
|
+
*
|
|
19
|
+
* @param startDir - Directory to start searching from
|
|
20
|
+
* @returns Path to directory containing package.json
|
|
21
|
+
*/
|
|
22
|
+
const findPackageRoot = async (startDir) => {
|
|
23
|
+
let currentDir = node_path_1.default.resolve(startDir);
|
|
24
|
+
const root = node_path_1.default.parse(currentDir).root;
|
|
25
|
+
while (currentDir !== root) {
|
|
26
|
+
try {
|
|
27
|
+
const packagePath = node_path_1.default.join(currentDir, 'package.json');
|
|
28
|
+
await (0, promises_1.readFile)(packagePath, 'utf-8');
|
|
29
|
+
return currentDir;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// package.json not found, go up one directory
|
|
33
|
+
currentDir = node_path_1.default.dirname(currentDir);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// No package.json found, return starting directory
|
|
37
|
+
return startDir;
|
|
38
|
+
};
|
|
39
|
+
exports.findPackageRoot = findPackageRoot;
|
|
40
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;AAEH,+CAA4C;AAC5C,0DAA6B;AAE7B;;;;;GAKG;AACI,MAAM,eAAe,GAAG,KAAK,EAAE,QAAgB,EAAmB,EAAE;IACzE,IAAI,UAAU,GAAG,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,mBAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAEzC,OAAO,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAC1D,MAAM,IAAA,mBAAQ,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACrC,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;YAC9C,UAAU,GAAG,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAjBW,QAAA,eAAe,mBAiB1B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for working with package.json files and package structure.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Find the nearest package.json and return its directory
|
|
10
|
+
*
|
|
11
|
+
* @param startDir - Directory to start searching from
|
|
12
|
+
* @returns Path to directory containing package.json
|
|
13
|
+
*/
|
|
14
|
+
export declare const findPackageRoot: (startDir: string) => Promise<string>;
|
|
15
|
+
//# sourceMappingURL=package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAiBtE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for working with package.json files and package structure.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Find the nearest package.json and return its directory
|
|
10
|
+
*
|
|
11
|
+
* @param startDir - Directory to start searching from
|
|
12
|
+
* @returns Path to directory containing package.json
|
|
13
|
+
*/
|
|
14
|
+
export declare const findPackageRoot: (startDir: string) => Promise<string>;
|
|
15
|
+
//# sourceMappingURL=package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAiBtE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for working with package.json files and package structure.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import { readFile } from 'node:fs/promises';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
/**
|
|
11
|
+
* Find the nearest package.json and return its directory
|
|
12
|
+
*
|
|
13
|
+
* @param startDir - Directory to start searching from
|
|
14
|
+
* @returns Path to directory containing package.json
|
|
15
|
+
*/
|
|
16
|
+
export const findPackageRoot = async (startDir) => {
|
|
17
|
+
let currentDir = path.resolve(startDir);
|
|
18
|
+
const root = path.parse(currentDir).root;
|
|
19
|
+
while (currentDir !== root) {
|
|
20
|
+
try {
|
|
21
|
+
const packagePath = path.join(currentDir, 'package.json');
|
|
22
|
+
await readFile(packagePath, 'utf-8');
|
|
23
|
+
return currentDir;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// package.json not found, go up one directory
|
|
27
|
+
currentDir = path.dirname(currentDir);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// No package.json found, return starting directory
|
|
31
|
+
return startDir;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAgB,EAAmB,EAAE;IACzE,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAEzC,OAAO,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAC1D,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACrC,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;YAC9C,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type Guard Utilities
|
|
4
|
+
*
|
|
5
|
+
* Reusable type guard functions for runtime type checking and narrowing.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.hasErrorCode = exports.isError = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* Type guard to check if a value is an object (not null or array)
|
|
11
|
+
*
|
|
12
|
+
* @param value - Value to check
|
|
13
|
+
* @returns True if value is a non-null object
|
|
14
|
+
*/
|
|
15
|
+
const isObject = (value) => {
|
|
16
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Type guard to check if a value is an Error instance
|
|
20
|
+
*
|
|
21
|
+
* @param value - Value to check
|
|
22
|
+
* @returns True if value is an Error
|
|
23
|
+
*/
|
|
24
|
+
const isError = (value) => {
|
|
25
|
+
return value instanceof Error;
|
|
26
|
+
};
|
|
27
|
+
exports.isError = isError;
|
|
28
|
+
/**
|
|
29
|
+
* Type guard to check if a value has a specific property
|
|
30
|
+
*
|
|
31
|
+
* @param value - Value to check
|
|
32
|
+
* @param property - Property name to check for
|
|
33
|
+
* @returns True if value is an object with the specified property
|
|
34
|
+
*/
|
|
35
|
+
const hasProperty = (value, property) => {
|
|
36
|
+
return isObject(value) && property in value;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Type guard to check if an error has a code property
|
|
40
|
+
*
|
|
41
|
+
* @param error - Error to check
|
|
42
|
+
* @returns True if error has a code property
|
|
43
|
+
*/
|
|
44
|
+
const hasErrorCode = (error) => {
|
|
45
|
+
return (0, exports.isError)(error) && hasProperty(error, 'code');
|
|
46
|
+
};
|
|
47
|
+
exports.hasErrorCode = hasErrorCode;
|
|
48
|
+
//# sourceMappingURL=type-guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../../src/utils/type-guards.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE;IACpE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF;;;;;GAKG;AACI,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE;IACxD,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,CAClB,KAAc,EACd,QAAW,EACkB,EAAE;IAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC9C,CAAC,CAAC;AAEF;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CAC1B,KAAc,EACqB,EAAE;IACrC,OAAO,IAAA,eAAO,EAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAC;AAJW,QAAA,YAAY,gBAIvB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Guard Utilities
|
|
3
|
+
*
|
|
4
|
+
* Reusable type guard functions for runtime type checking and narrowing.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Type guard to check if a value is an Error instance
|
|
8
|
+
*
|
|
9
|
+
* @param value - Value to check
|
|
10
|
+
* @returns True if value is an Error
|
|
11
|
+
*/
|
|
12
|
+
export declare const isError: (value: unknown) => value is Error;
|
|
13
|
+
/**
|
|
14
|
+
* Type guard to check if an error has a code property
|
|
15
|
+
*
|
|
16
|
+
* @param error - Error to check
|
|
17
|
+
* @returns True if error has a code property
|
|
18
|
+
*/
|
|
19
|
+
export declare const hasErrorCode: (error: unknown) => error is Error & {
|
|
20
|
+
code: string;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=type-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../../src/utils/type-guards.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAEjD,CAAC;AAgBF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,OAAO,KACb,KAAK,IAAI,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAEjC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Guard Utilities
|
|
3
|
+
*
|
|
4
|
+
* Reusable type guard functions for runtime type checking and narrowing.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Type guard to check if a value is an Error instance
|
|
8
|
+
*
|
|
9
|
+
* @param value - Value to check
|
|
10
|
+
* @returns True if value is an Error
|
|
11
|
+
*/
|
|
12
|
+
export declare const isError: (value: unknown) => value is Error;
|
|
13
|
+
/**
|
|
14
|
+
* Type guard to check if an error has a code property
|
|
15
|
+
*
|
|
16
|
+
* @param error - Error to check
|
|
17
|
+
* @returns True if error has a code property
|
|
18
|
+
*/
|
|
19
|
+
export declare const hasErrorCode: (error: unknown) => error is Error & {
|
|
20
|
+
code: string;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=type-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../../src/utils/type-guards.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAEjD,CAAC;AAgBF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,OAAO,KACb,KAAK,IAAI,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAEjC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Guard Utilities
|
|
3
|
+
*
|
|
4
|
+
* Reusable type guard functions for runtime type checking and narrowing.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Type guard to check if a value is an object (not null or array)
|
|
8
|
+
*
|
|
9
|
+
* @param value - Value to check
|
|
10
|
+
* @returns True if value is a non-null object
|
|
11
|
+
*/
|
|
12
|
+
const isObject = (value) => {
|
|
13
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Type guard to check if a value is an Error instance
|
|
17
|
+
*
|
|
18
|
+
* @param value - Value to check
|
|
19
|
+
* @returns True if value is an Error
|
|
20
|
+
*/
|
|
21
|
+
export const isError = (value) => {
|
|
22
|
+
return value instanceof Error;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Type guard to check if a value has a specific property
|
|
26
|
+
*
|
|
27
|
+
* @param value - Value to check
|
|
28
|
+
* @param property - Property name to check for
|
|
29
|
+
* @returns True if value is an object with the specified property
|
|
30
|
+
*/
|
|
31
|
+
const hasProperty = (value, property) => {
|
|
32
|
+
return isObject(value) && property in value;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Type guard to check if an error has a code property
|
|
36
|
+
*
|
|
37
|
+
* @param error - Error to check
|
|
38
|
+
* @returns True if error has a code property
|
|
39
|
+
*/
|
|
40
|
+
export const hasErrorCode = (error) => {
|
|
41
|
+
return isError(error) && hasProperty(error, 'code');
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=type-guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../../src/utils/type-guards.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE;IACpE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE;IACxD,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,GAAG,CAClB,KAAc,EACd,QAAW,EACkB,EAAE;IAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC9C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAc,EACqB,EAAE;IACrC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC,CAAC"}
|