modestbench 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +37 -4
  3. package/dist/adapters/types.d.cts +1 -1
  4. package/dist/adapters/types.d.cts.map +1 -1
  5. package/dist/adapters/types.d.ts +1 -1
  6. package/dist/adapters/types.d.ts.map +1 -1
  7. package/dist/cli/commands/run.cjs +93 -49
  8. package/dist/cli/commands/run.cjs.map +1 -1
  9. package/dist/cli/commands/run.d.cts +1 -0
  10. package/dist/cli/commands/run.d.cts.map +1 -1
  11. package/dist/cli/commands/run.d.ts +1 -0
  12. package/dist/cli/commands/run.d.ts.map +1 -1
  13. package/dist/cli/commands/run.js +95 -51
  14. package/dist/cli/commands/run.js.map +1 -1
  15. package/dist/cli/index.cjs +7 -1
  16. package/dist/cli/index.cjs.map +1 -1
  17. package/dist/cli/index.d.cts.map +1 -1
  18. package/dist/cli/index.d.ts.map +1 -1
  19. package/dist/cli/index.js +7 -1
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/{core → config}/benchmark-schema.cjs +1 -1
  22. package/dist/config/benchmark-schema.cjs.map +1 -0
  23. package/dist/config/benchmark-schema.d.cts +913 -0
  24. package/dist/config/benchmark-schema.d.cts.map +1 -0
  25. package/dist/config/benchmark-schema.d.ts +913 -0
  26. package/dist/config/benchmark-schema.d.ts.map +1 -0
  27. package/dist/{core → config}/benchmark-schema.js +1 -1
  28. package/dist/config/benchmark-schema.js.map +1 -0
  29. package/dist/config/schema.cjs +188 -105
  30. package/dist/config/schema.cjs.map +1 -1
  31. package/dist/config/schema.d.cts +208 -80
  32. package/dist/config/schema.d.cts.map +1 -1
  33. package/dist/config/schema.d.ts +208 -80
  34. package/dist/config/schema.d.ts.map +1 -1
  35. package/dist/config/schema.js +187 -104
  36. package/dist/config/schema.js.map +1 -1
  37. package/dist/constants.cjs +2 -0
  38. package/dist/constants.cjs.map +1 -1
  39. package/dist/constants.d.cts +2 -0
  40. package/dist/constants.d.cts.map +1 -1
  41. package/dist/constants.d.ts +2 -0
  42. package/dist/constants.d.ts.map +1 -1
  43. package/dist/constants.js +2 -0
  44. package/dist/constants.js.map +1 -1
  45. package/dist/core/engine.cjs +50 -45
  46. package/dist/core/engine.cjs.map +1 -1
  47. package/dist/core/engine.d.cts.map +1 -1
  48. package/dist/core/engine.d.ts.map +1 -1
  49. package/dist/core/engine.js +50 -45
  50. package/dist/core/engine.js.map +1 -1
  51. package/dist/core/output-path-resolver.cjs +15 -1
  52. package/dist/core/output-path-resolver.cjs.map +1 -1
  53. package/dist/core/output-path-resolver.d.cts +8 -0
  54. package/dist/core/output-path-resolver.d.cts.map +1 -1
  55. package/dist/core/output-path-resolver.d.ts +8 -0
  56. package/dist/core/output-path-resolver.d.ts.map +1 -1
  57. package/dist/core/output-path-resolver.js +13 -0
  58. package/dist/core/output-path-resolver.js.map +1 -1
  59. package/dist/errors/index.cjs +3 -1
  60. package/dist/errors/index.cjs.map +1 -1
  61. package/dist/errors/index.d.cts +1 -1
  62. package/dist/errors/index.d.cts.map +1 -1
  63. package/dist/errors/index.d.ts +1 -1
  64. package/dist/errors/index.d.ts.map +1 -1
  65. package/dist/errors/index.js +1 -1
  66. package/dist/errors/index.js.map +1 -1
  67. package/dist/errors/reporter.cjs +45 -1
  68. package/dist/errors/reporter.cjs.map +1 -1
  69. package/dist/errors/reporter.d.cts +32 -0
  70. package/dist/errors/reporter.d.cts.map +1 -1
  71. package/dist/errors/reporter.d.ts +32 -0
  72. package/dist/errors/reporter.d.ts.map +1 -1
  73. package/dist/errors/reporter.js +42 -0
  74. package/dist/errors/reporter.js.map +1 -1
  75. package/dist/index.cjs +16 -1
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.d.cts +3 -1
  78. package/dist/index.d.cts.map +1 -1
  79. package/dist/index.d.ts +3 -1
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +5 -1
  82. package/dist/index.js.map +1 -1
  83. package/dist/reporters/json.cjs +1 -1
  84. package/dist/reporters/json.cjs.map +1 -1
  85. package/dist/reporters/json.js +1 -1
  86. package/dist/reporters/json.js.map +1 -1
  87. package/dist/schema/modestbench-config.schema.json +94 -87
  88. package/dist/services/budget-evaluator.cjs +8 -6
  89. package/dist/services/budget-evaluator.cjs.map +1 -1
  90. package/dist/services/budget-evaluator.d.cts +2 -2
  91. package/dist/services/budget-evaluator.d.cts.map +1 -1
  92. package/dist/services/budget-evaluator.d.ts +2 -2
  93. package/dist/services/budget-evaluator.d.ts.map +1 -1
  94. package/dist/services/budget-evaluator.js +8 -6
  95. package/dist/services/budget-evaluator.js.map +1 -1
  96. package/dist/services/budget-resolver.cjs +214 -0
  97. package/dist/services/budget-resolver.cjs.map +1 -0
  98. package/dist/services/budget-resolver.d.cts +98 -0
  99. package/dist/services/budget-resolver.d.cts.map +1 -0
  100. package/dist/services/budget-resolver.d.ts +98 -0
  101. package/dist/services/budget-resolver.d.ts.map +1 -0
  102. package/dist/services/budget-resolver.js +203 -0
  103. package/dist/services/budget-resolver.js.map +1 -0
  104. package/dist/services/file-loader.cjs +1 -1
  105. package/dist/services/file-loader.cjs.map +1 -1
  106. package/dist/services/file-loader.js +1 -1
  107. package/dist/services/file-loader.js.map +1 -1
  108. package/dist/services/reporter-loader.cjs +281 -0
  109. package/dist/services/reporter-loader.cjs.map +1 -0
  110. package/dist/services/reporter-loader.d.cts +67 -0
  111. package/dist/services/reporter-loader.d.cts.map +1 -0
  112. package/dist/services/reporter-loader.d.ts +67 -0
  113. package/dist/services/reporter-loader.d.ts.map +1 -0
  114. package/dist/services/reporter-loader.js +241 -0
  115. package/dist/services/reporter-loader.js.map +1 -0
  116. package/dist/types/budgets.d.cts +31 -0
  117. package/dist/types/budgets.d.cts.map +1 -1
  118. package/dist/types/budgets.d.ts +31 -0
  119. package/dist/types/budgets.d.ts.map +1 -1
  120. package/dist/types/core.cjs.map +1 -1
  121. package/dist/types/core.d.cts +28 -75
  122. package/dist/types/core.d.cts.map +1 -1
  123. package/dist/types/core.d.ts +28 -75
  124. package/dist/types/core.d.ts.map +1 -1
  125. package/dist/types/core.js.map +1 -1
  126. package/dist/types/index.cjs.map +1 -1
  127. package/dist/types/index.d.cts +1 -0
  128. package/dist/types/index.d.cts.map +1 -1
  129. package/dist/types/index.d.ts +1 -0
  130. package/dist/types/index.d.ts.map +1 -1
  131. package/dist/types/index.js.map +1 -1
  132. package/dist/types/plugin.cjs +9 -0
  133. package/dist/types/plugin.cjs.map +1 -0
  134. package/dist/types/plugin.d.cts +179 -0
  135. package/dist/types/plugin.d.cts.map +1 -0
  136. package/dist/types/plugin.d.ts +179 -0
  137. package/dist/types/plugin.d.ts.map +1 -0
  138. package/dist/types/plugin.js +8 -0
  139. package/dist/types/plugin.js.map +1 -0
  140. package/dist/utils/package.cjs +66 -5
  141. package/dist/utils/package.cjs.map +1 -1
  142. package/dist/utils/package.d.cts +6 -0
  143. package/dist/utils/package.d.cts.map +1 -1
  144. package/dist/utils/package.d.ts +6 -0
  145. package/dist/utils/package.d.ts.map +1 -1
  146. package/dist/utils/package.js +31 -1
  147. package/dist/utils/package.js.map +1 -1
  148. package/dist/utils/reporter-utils.cjs +90 -0
  149. package/dist/utils/reporter-utils.cjs.map +1 -0
  150. package/dist/utils/reporter-utils.d.cts +42 -0
  151. package/dist/utils/reporter-utils.d.cts.map +1 -0
  152. package/dist/utils/reporter-utils.d.ts +42 -0
  153. package/dist/utils/reporter-utils.d.ts.map +1 -0
  154. package/dist/utils/reporter-utils.js +83 -0
  155. package/dist/utils/reporter-utils.js.map +1 -0
  156. package/package.json +20 -9
  157. package/src/adapters/types.ts +1 -1
  158. package/src/cli/commands/run.ts +140 -69
  159. package/src/cli/index.ts +8 -1
  160. package/src/{core → config}/benchmark-schema.ts +1 -1
  161. package/src/config/schema.ts +379 -302
  162. package/src/constants.ts +2 -0
  163. package/src/core/engine.ts +74 -69
  164. package/src/core/output-path-resolver.ts +14 -0
  165. package/src/errors/index.ts +2 -0
  166. package/src/errors/reporter.ts +55 -0
  167. package/src/index.ts +19 -1
  168. package/src/reporters/json.ts +1 -1
  169. package/src/services/budget-evaluator.ts +13 -9
  170. package/src/services/budget-resolver.ts +254 -0
  171. package/src/services/file-loader.ts +1 -1
  172. package/src/services/reporter-loader.ts +323 -0
  173. package/src/types/budgets.ts +38 -0
  174. package/src/types/core.ts +64 -99
  175. package/src/types/index.ts +3 -0
  176. package/src/types/plugin.ts +197 -0
  177. package/src/utils/package.ts +32 -1
  178. package/src/utils/reporter-utils.ts +85 -0
  179. package/dist/core/benchmark-schema.cjs.map +0 -1
  180. package/dist/core/benchmark-schema.d.cts +0 -139
  181. package/dist/core/benchmark-schema.d.cts.map +0 -1
  182. package/dist/core/benchmark-schema.d.ts +0 -139
  183. package/dist/core/benchmark-schema.d.ts.map +0 -1
  184. package/dist/core/benchmark-schema.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.0](https://github.com/boneskull/modestbench/compare/modestbench-v0.8.0...modestbench-v0.9.0) (2025-12-18)
4
+
5
+
6
+ ### Features
7
+
8
+ * **budgets:** add wildcard pattern support for budget configuration ([945fb87](https://github.com/boneskull/modestbench/commit/945fb8783e213a6ee9549765ada00ad17e4664f8))
9
+ * **json-reporter:** make compact output the default ([#197](https://github.com/boneskull/modestbench/issues/197)) ([9fe0dd6](https://github.com/boneskull/modestbench/commit/9fe0dd66a5a573211b549487809f12f4b05b7901))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **reporters:** use timestamped filenames for JSON/CSV output ([#200](https://github.com/boneskull/modestbench/issues/200)) ([89f3170](https://github.com/boneskull/modestbench/commit/89f3170f4cc25b6028849ff62bfd72df0e3ddb76))
15
+
16
+ ## [0.8.0](https://github.com/boneskull/modestbench/compare/modestbench-v0.7.0...modestbench-v0.8.0) (2025-12-15)
17
+
18
+
19
+ ### Features
20
+
21
+ * **reporters:** add third-party reporter plugin system ([53b24e3](https://github.com/boneskull/modestbench/commit/53b24e3a4741de04c0b7161030ffdc09e66a0759))
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **reporters:** address PR review feedback ([1c3eaf2](https://github.com/boneskull/modestbench/commit/1c3eaf27dcf2d928fa2dbef83352c48fdaec5327))
27
+
3
28
  ## [0.7.0](https://github.com/boneskull/modestbench/compare/modestbench-v0.6.0...modestbench-v0.7.0) (2025-12-13)
4
29
 
5
30
 
package/README.md CHANGED
@@ -324,10 +324,14 @@ Define budgets in your `modestbench.config.json`:
324
324
  {
325
325
  "budgetMode": "fail",
326
326
  "budgets": {
327
- "benchmarks/critical.bench.js/default/parseConfig": {
328
- "absolute": {
329
- "maxTime": "10ms",
330
- "minOpsPerSec": 100000
327
+ "benchmarks/critical.bench.js": {
328
+ "default": {
329
+ "parseConfig": {
330
+ "absolute": {
331
+ "maxTime": "10ms",
332
+ "minOpsPerSec": 100000
333
+ }
334
+ }
331
335
  }
332
336
  }
333
337
  }
@@ -344,6 +348,35 @@ Define budgets in your `modestbench.config.json`:
344
348
  - **Relative Budgets**: Comparison against baseline
345
349
  - `maxRegression` - Maximum performance degradation (e.g., `"10%"`, `0.1`)
346
350
 
351
+ #### Wildcard Patterns
352
+
353
+ Apply budgets broadly using wildcards:
354
+
355
+ ```json
356
+ {
357
+ "budgets": {
358
+ "**/*.bench.js": {
359
+ "*": {
360
+ "*": {
361
+ "relative": { "maxRegression": "15%" }
362
+ }
363
+ }
364
+ },
365
+ "benchmarks/critical.bench.js": {
366
+ "*": {
367
+ "*": {
368
+ "relative": { "maxRegression": "5%" }
369
+ }
370
+ }
371
+ }
372
+ }
373
+ }
374
+ ```
375
+
376
+ - **Files**: Use glob patterns (`**/*.bench.js`, `benchmarks/*.bench.js`)
377
+ - **Suites/Tasks**: Use `*` to match any name
378
+ - **Precedence**: Most specific pattern wins (exact matches override wildcards)
379
+
347
380
  **Budget Modes:**
348
381
 
349
382
  - `fail` (default) - Exit with error code if budgets fail
@@ -4,7 +4,7 @@
4
4
  * Shared types for capturing test definitions from various test frameworks
5
5
  * (Mocha, node:test, AVA) and converting them to modestbench benchmark format.
6
6
  */
7
- import type { BenchmarkDefinition, BenchmarkSuite } from "../core/benchmark-schema.cjs";
7
+ import type { BenchmarkDefinition, BenchmarkSuite } from "../config/benchmark-schema.cjs";
8
8
  /**
9
9
  * A captured test suite (describe block) from a test framework
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,qCAAoC;AAErC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnC,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,cAAc,EACd,YAAY,GAAG,OAAO,GAAG,UAAU,CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAErD,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,gBAAgB,KACzB,mBAuBF,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,uCAAsC;AAEvC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnC,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,cAAc,EACd,YAAY,GAAG,OAAO,GAAG,UAAU,CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAErD,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,gBAAgB,KACzB,mBAuBF,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Shared types for capturing test definitions from various test frameworks
5
5
  * (Mocha, node:test, AVA) and converting them to modestbench benchmark format.
6
6
  */
7
- import type { BenchmarkDefinition, BenchmarkSuite } from "../core/benchmark-schema.js";
7
+ import type { BenchmarkDefinition, BenchmarkSuite } from "../config/benchmark-schema.js";
8
8
  /**
9
9
  * A captured test suite (describe block) from a test framework
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,oCAAoC;AAErC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnC,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,cAAc,EACd,YAAY,GAAG,OAAO,GAAG,UAAU,CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAErD,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,gBAAgB,KACzB,mBAuBF,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,sCAAsC;AAEvC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnC,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,cAAc,EACd,YAAY,GAAG,OAAO,GAAG,UAAU,CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtD,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAErD,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,gBAAgB,KACzB,mBAuBF,CAAC"}
@@ -16,6 +16,7 @@ const human_js_1 = require("../../reporters/human.cjs");
16
16
  const json_js_1 = require("../../reporters/json.cjs");
17
17
  const nyan_js_1 = require("../../reporters/nyan.cjs");
18
18
  const simple_js_1 = require("../../reporters/simple.cjs");
19
+ const reporter_loader_js_1 = require("../../services/reporter-loader.cjs");
19
20
  const type_guards_js_1 = require("../../utils/type-guards.cjs");
20
21
  /**
21
22
  * Default values for the run command
@@ -61,7 +62,7 @@ const handleRunCommand = async (context, options) => {
61
62
  if (showCliMessages) {
62
63
  console.error('Setting up reporters...');
63
64
  }
64
- const reporters = setupReporters(context, config, verbose, showCliMessages, shouldBeQuiet, options.outputDir, options.outputFile, options.progress);
65
+ const reporters = await setupReporters(context, config, verbose, showCliMessages, shouldBeQuiet, options.outputDir, options.outputFile, options.progress, options.jsonPretty);
65
66
  // Step 3: Discovery phase
66
67
  if (showCliMessages) {
67
68
  console.error('Discovering benchmark files...');
@@ -264,8 +265,11 @@ const loadConfiguration = async (context, options) => {
264
265
  };
265
266
  /**
266
267
  * Setup and configure reporters based on configuration
268
+ *
269
+ * Supports built-in reporters, registry-based custom reporters, and external
270
+ * reporters loaded from file paths or npm packages.
267
271
  */
268
- const setupReporters = (context, config, isVerbose, showCliMessages, explicitQuiet, explicitOutputDir, explicitOutputFile, progressOption) => {
272
+ const setupReporters = async (context, config, isVerbose, showCliMessages, explicitQuiet, explicitOutputDir, explicitOutputFile, progressOption, explicitJsonPretty) => {
269
273
  try {
270
274
  const reporters = [];
271
275
  // Dedupe requested reporters
@@ -281,60 +285,98 @@ const setupReporters = (context, config, isVerbose, showCliMessages, explicitQui
281
285
  const builtInReporters = ['human', 'json', 'csv', 'nyan', 'simple'];
282
286
  for (const reporterName of requestedReporters) {
283
287
  let reporter;
284
- // Create reporter instances with output path configuration
285
- switch (reporterName) {
286
- case 'csv': {
287
- const outputPath = (0, output_path_resolver_js_1.resolveOutputPath)(outputDir, explicitOutputFile, 'results.csv');
288
- reporter = new csv_js_1.CsvReporter({
289
- includeHeaders: true,
290
- includeMetadata: true,
291
- ...(outputPath ? { outputPath } : {}),
292
- quiet: explicitQuiet, // Only applies explicit --quiet flag; CSV output can coexist with progress messages on different streams
293
- verbose: isVerbose,
294
- });
295
- break;
288
+ // Check if this is a built-in reporter
289
+ if ((0, reporter_loader_js_1.isBuiltInReporter)(reporterName)) {
290
+ // Create reporter instances with output path configuration
291
+ switch (reporterName) {
292
+ case 'csv': {
293
+ const outputPath = (0, output_path_resolver_js_1.resolveOutputPath)(outputDir, explicitOutputFile, (0, output_path_resolver_js_1.generateTimestampedFilename)('csv'));
294
+ reporter = new csv_js_1.CsvReporter({
295
+ includeHeaders: true,
296
+ includeMetadata: true,
297
+ ...(outputPath ? { outputPath } : {}),
298
+ quiet: explicitQuiet,
299
+ verbose: isVerbose,
300
+ });
301
+ break;
302
+ }
303
+ case 'human':
304
+ reporter = new human_js_1.HumanReporter({
305
+ color: true,
306
+ progress: progressOption ?? true,
307
+ quiet: explicitQuiet,
308
+ verbose: isVerbose,
309
+ });
310
+ break;
311
+ case 'json': {
312
+ const outputPath = (0, output_path_resolver_js_1.resolveOutputPath)(outputDir, explicitOutputFile, (0, output_path_resolver_js_1.generateTimestampedFilename)('json'));
313
+ // Precedence: CLI flag > config file > default (false)
314
+ const prettyPrint = explicitJsonPretty ??
315
+ config.reporterConfig?.json?.prettyPrint ??
316
+ false;
317
+ reporter = new json_js_1.JsonReporter({
318
+ ...(outputPath ? { outputPath } : {}),
319
+ prettyPrint,
320
+ });
321
+ break;
322
+ }
323
+ case 'nyan':
324
+ reporter = new nyan_js_1.NyanReporter({
325
+ color: true,
326
+ quiet: explicitQuiet,
327
+ });
328
+ break;
329
+ case 'simple':
330
+ reporter = new simple_js_1.SimpleReporter({
331
+ quiet: explicitQuiet,
332
+ verbose: isVerbose,
333
+ });
334
+ break;
335
+ default:
336
+ // TypeScript exhaustiveness check - should never reach here
337
+ throw new Error(`Unhandled built-in reporter: ${reporterName}`);
338
+ }
339
+ }
340
+ else if ((0, reporter_loader_js_1.isFilePath)(reporterName)) {
341
+ // External reporter from file path
342
+ const reporterOptions = config.reporterConfig?.[reporterName] ??
343
+ {};
344
+ if (showCliMessages) {
345
+ console.error(`Loading external reporter: ${reporterName}`);
296
346
  }
297
- case 'human':
298
- reporter = new human_js_1.HumanReporter({
299
- color: true,
300
- progress: progressOption ?? true,
301
- quiet: explicitQuiet, // Only applies explicit --quiet flag; JSON reporter forcing quiet mode does not affect HumanReporter progress output
302
- verbose: isVerbose,
303
- });
304
- break;
305
- case 'json': {
306
- const outputPath = (0, output_path_resolver_js_1.resolveOutputPath)(outputDir, explicitOutputFile, 'results.json');
307
- reporter = new json_js_1.JsonReporter({
308
- ...(outputPath ? { outputPath } : {}),
309
- prettyPrint: true,
310
- });
311
- break;
347
+ reporter = await (0, reporter_loader_js_1.loadReporter)(reporterName, reporterOptions);
348
+ }
349
+ else {
350
+ // Try registry first, then npm package
351
+ const registryReporter = context.reporterRegistry.get(reporterName);
352
+ if (registryReporter) {
353
+ reporter = registryReporter;
312
354
  }
313
- case 'nyan':
314
- reporter = new nyan_js_1.NyanReporter({
315
- color: true,
316
- quiet: explicitQuiet,
317
- });
318
- break;
319
- case 'simple':
320
- reporter = new simple_js_1.SimpleReporter({
321
- quiet: explicitQuiet,
322
- verbose: isVerbose,
323
- });
324
- break;
325
- default:
326
- // Fall back to registry for custom reporters
327
- reporter = context.reporterRegistry.get(reporterName);
328
- if (!reporter) {
329
- // Combine built-in reporters with registered custom reporters
355
+ else {
356
+ // Try loading as npm package
357
+ const reporterOptions = config.reporterConfig?.[reporterName] ?? {};
358
+ if (showCliMessages) {
359
+ console.error(`Loading reporter package: ${reporterName}`);
360
+ }
361
+ try {
362
+ reporter = await (0, reporter_loader_js_1.loadReporter)(reporterName, reporterOptions);
363
+ }
364
+ catch (error) {
365
+ // If loading fails and it's not a file path, provide helpful error
366
+ if (error instanceof index_js_1.ReporterLoadError ||
367
+ error instanceof index_js_1.ReporterValidationError) {
368
+ throw error;
369
+ }
370
+ // Combine built-in reporters with registered custom reporters for error message
330
371
  const registeredReporters = Object.keys(context.reporterRegistry.getAll());
331
372
  const availableReporters = [
332
373
  ...builtInReporters,
333
374
  ...registeredReporters,
334
375
  ];
335
- throw new index_js_1.UnknownReporterError(`Unknown reporter: ${reporterName}. Available: ${availableReporters.join(', ')}`);
376
+ throw new index_js_1.UnknownReporterError(`Unknown reporter: ${reporterName}. Available built-in reporters: ${availableReporters.join(', ')}. ` +
377
+ `For external reporters, use a file path (./my-reporter.js) or npm package name.`);
336
378
  }
337
- break;
379
+ }
338
380
  }
339
381
  reporters.push(reporter);
340
382
  }
@@ -346,7 +388,9 @@ const setupReporters = (context, config, isVerbose, showCliMessages, explicitQui
346
388
  catch (error) {
347
389
  // Re-throw our custom errors
348
390
  const errorCode = (0, type_guards_js_1.hasErrorCode)(error) ? error.code : undefined;
349
- if (errorCode === constants_js_1.ErrorCodes.REPORTER_UNKNOWN) {
391
+ if (errorCode === constants_js_1.ErrorCodes.REPORTER_UNKNOWN ||
392
+ errorCode === constants_js_1.ErrorCodes.REPORTER_LOAD_FAILED ||
393
+ errorCode === constants_js_1.ErrorCodes.REPORTER_INVALID) {
350
394
  throw error;
351
395
  }
352
396
  throw new index_js_1.InvalidArgumentError(`Reporter setup error: ${(0, type_guards_js_1.isError)(error) ? error.message : String(error)}`, { cause: error });
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ interface RunOptions {
30
30
  excludeTags?: string[] | undefined;
31
31
  iterations?: number | undefined;
32
32
  json?: boolean | undefined;
33
+ jsonPretty?: boolean | undefined;
33
34
  noColor?: boolean | undefined;
34
35
  outputDir?: string | undefined;
35
36
  outputFile?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAoB;AAgB9C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;CAKc,CAAC;AAEhD;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,UAAU,EACnB,SAAS,UAAU,KAClB,OAAO,CAAC,MAAM,CA2LhB,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAoB;AA0B9C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;CAKc,CAAC;AAEhD;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,UAAU,EACnB,SAAS,UAAU,KAClB,OAAO,CAAC,MAAM,CA4LhB,CAAC"}
@@ -30,6 +30,7 @@ interface RunOptions {
30
30
  excludeTags?: string[] | undefined;
31
31
  iterations?: number | undefined;
32
32
  json?: boolean | undefined;
33
+ jsonPretty?: boolean | undefined;
33
34
  noColor?: boolean | undefined;
34
35
  outputDir?: string | undefined;
35
36
  outputFile?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB;AAgB9C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;CAKc,CAAC;AAEhD;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,UAAU,EACnB,SAAS,UAAU,KAClB,OAAO,CAAC,MAAM,CA2LhB,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB;AA0B9C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;CAKc,CAAC;AAEhD;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,UAAU,EACnB,SAAS,UAAU,KAClB,OAAO,CAAC,MAAM,CA4LhB,CAAC"}
@@ -6,13 +6,14 @@
6
6
  */
7
7
  import { resolve } from 'node:path';
8
8
  import { ErrorCodes, ExitCodes } from "../../constants.js";
9
- import { resolveOutputPath } from "../../core/output-path-resolver.js";
10
- import { InvalidArgumentError, UnknownReporterError, } from "../../errors/index.js";
9
+ import { generateTimestampedFilename, resolveOutputPath, } from "../../core/output-path-resolver.js";
10
+ import { InvalidArgumentError, ReporterLoadError, ReporterValidationError, UnknownReporterError, } from "../../errors/index.js";
11
11
  import { CsvReporter } from "../../reporters/csv.js";
12
12
  import { HumanReporter } from "../../reporters/human.js";
13
13
  import { JsonReporter } from "../../reporters/json.js";
14
14
  import { NyanReporter } from "../../reporters/nyan.js";
15
15
  import { SimpleReporter } from "../../reporters/simple.js";
16
+ import { isBuiltInReporter, isFilePath, loadReporter, } from "../../services/reporter-loader.js";
16
17
  import { hasErrorCode, isError } from "../../utils/type-guards.js";
17
18
  /**
18
19
  * Default values for the run command
@@ -58,7 +59,7 @@ export const handleRunCommand = async (context, options) => {
58
59
  if (showCliMessages) {
59
60
  console.error('Setting up reporters...');
60
61
  }
61
- const reporters = setupReporters(context, config, verbose, showCliMessages, shouldBeQuiet, options.outputDir, options.outputFile, options.progress);
62
+ const reporters = await setupReporters(context, config, verbose, showCliMessages, shouldBeQuiet, options.outputDir, options.outputFile, options.progress, options.jsonPretty);
62
63
  // Step 3: Discovery phase
63
64
  if (showCliMessages) {
64
65
  console.error('Discovering benchmark files...');
@@ -260,8 +261,11 @@ const loadConfiguration = async (context, options) => {
260
261
  };
261
262
  /**
262
263
  * Setup and configure reporters based on configuration
264
+ *
265
+ * Supports built-in reporters, registry-based custom reporters, and external
266
+ * reporters loaded from file paths or npm packages.
263
267
  */
264
- const setupReporters = (context, config, isVerbose, showCliMessages, explicitQuiet, explicitOutputDir, explicitOutputFile, progressOption) => {
268
+ const setupReporters = async (context, config, isVerbose, showCliMessages, explicitQuiet, explicitOutputDir, explicitOutputFile, progressOption, explicitJsonPretty) => {
265
269
  try {
266
270
  const reporters = [];
267
271
  // Dedupe requested reporters
@@ -277,60 +281,98 @@ const setupReporters = (context, config, isVerbose, showCliMessages, explicitQui
277
281
  const builtInReporters = ['human', 'json', 'csv', 'nyan', 'simple'];
278
282
  for (const reporterName of requestedReporters) {
279
283
  let reporter;
280
- // Create reporter instances with output path configuration
281
- switch (reporterName) {
282
- case 'csv': {
283
- const outputPath = resolveOutputPath(outputDir, explicitOutputFile, 'results.csv');
284
- reporter = new CsvReporter({
285
- includeHeaders: true,
286
- includeMetadata: true,
287
- ...(outputPath ? { outputPath } : {}),
288
- quiet: explicitQuiet, // Only applies explicit --quiet flag; CSV output can coexist with progress messages on different streams
289
- verbose: isVerbose,
290
- });
291
- break;
284
+ // Check if this is a built-in reporter
285
+ if (isBuiltInReporter(reporterName)) {
286
+ // Create reporter instances with output path configuration
287
+ switch (reporterName) {
288
+ case 'csv': {
289
+ const outputPath = resolveOutputPath(outputDir, explicitOutputFile, generateTimestampedFilename('csv'));
290
+ reporter = new CsvReporter({
291
+ includeHeaders: true,
292
+ includeMetadata: true,
293
+ ...(outputPath ? { outputPath } : {}),
294
+ quiet: explicitQuiet,
295
+ verbose: isVerbose,
296
+ });
297
+ break;
298
+ }
299
+ case 'human':
300
+ reporter = new HumanReporter({
301
+ color: true,
302
+ progress: progressOption ?? true,
303
+ quiet: explicitQuiet,
304
+ verbose: isVerbose,
305
+ });
306
+ break;
307
+ case 'json': {
308
+ const outputPath = resolveOutputPath(outputDir, explicitOutputFile, generateTimestampedFilename('json'));
309
+ // Precedence: CLI flag > config file > default (false)
310
+ const prettyPrint = explicitJsonPretty ??
311
+ config.reporterConfig?.json?.prettyPrint ??
312
+ false;
313
+ reporter = new JsonReporter({
314
+ ...(outputPath ? { outputPath } : {}),
315
+ prettyPrint,
316
+ });
317
+ break;
318
+ }
319
+ case 'nyan':
320
+ reporter = new NyanReporter({
321
+ color: true,
322
+ quiet: explicitQuiet,
323
+ });
324
+ break;
325
+ case 'simple':
326
+ reporter = new SimpleReporter({
327
+ quiet: explicitQuiet,
328
+ verbose: isVerbose,
329
+ });
330
+ break;
331
+ default:
332
+ // TypeScript exhaustiveness check - should never reach here
333
+ throw new Error(`Unhandled built-in reporter: ${reporterName}`);
334
+ }
335
+ }
336
+ else if (isFilePath(reporterName)) {
337
+ // External reporter from file path
338
+ const reporterOptions = config.reporterConfig?.[reporterName] ??
339
+ {};
340
+ if (showCliMessages) {
341
+ console.error(`Loading external reporter: ${reporterName}`);
292
342
  }
293
- case 'human':
294
- reporter = new HumanReporter({
295
- color: true,
296
- progress: progressOption ?? true,
297
- quiet: explicitQuiet, // Only applies explicit --quiet flag; JSON reporter forcing quiet mode does not affect HumanReporter progress output
298
- verbose: isVerbose,
299
- });
300
- break;
301
- case 'json': {
302
- const outputPath = resolveOutputPath(outputDir, explicitOutputFile, 'results.json');
303
- reporter = new JsonReporter({
304
- ...(outputPath ? { outputPath } : {}),
305
- prettyPrint: true,
306
- });
307
- break;
343
+ reporter = await loadReporter(reporterName, reporterOptions);
344
+ }
345
+ else {
346
+ // Try registry first, then npm package
347
+ const registryReporter = context.reporterRegistry.get(reporterName);
348
+ if (registryReporter) {
349
+ reporter = registryReporter;
308
350
  }
309
- case 'nyan':
310
- reporter = new NyanReporter({
311
- color: true,
312
- quiet: explicitQuiet,
313
- });
314
- break;
315
- case 'simple':
316
- reporter = new SimpleReporter({
317
- quiet: explicitQuiet,
318
- verbose: isVerbose,
319
- });
320
- break;
321
- default:
322
- // Fall back to registry for custom reporters
323
- reporter = context.reporterRegistry.get(reporterName);
324
- if (!reporter) {
325
- // Combine built-in reporters with registered custom reporters
351
+ else {
352
+ // Try loading as npm package
353
+ const reporterOptions = config.reporterConfig?.[reporterName] ?? {};
354
+ if (showCliMessages) {
355
+ console.error(`Loading reporter package: ${reporterName}`);
356
+ }
357
+ try {
358
+ reporter = await loadReporter(reporterName, reporterOptions);
359
+ }
360
+ catch (error) {
361
+ // If loading fails and it's not a file path, provide helpful error
362
+ if (error instanceof ReporterLoadError ||
363
+ error instanceof ReporterValidationError) {
364
+ throw error;
365
+ }
366
+ // Combine built-in reporters with registered custom reporters for error message
326
367
  const registeredReporters = Object.keys(context.reporterRegistry.getAll());
327
368
  const availableReporters = [
328
369
  ...builtInReporters,
329
370
  ...registeredReporters,
330
371
  ];
331
- throw new UnknownReporterError(`Unknown reporter: ${reporterName}. Available: ${availableReporters.join(', ')}`);
372
+ throw new UnknownReporterError(`Unknown reporter: ${reporterName}. Available built-in reporters: ${availableReporters.join(', ')}. ` +
373
+ `For external reporters, use a file path (./my-reporter.js) or npm package name.`);
332
374
  }
333
- break;
375
+ }
334
376
  }
335
377
  reporters.push(reporter);
336
378
  }
@@ -342,7 +384,9 @@ const setupReporters = (context, config, isVerbose, showCliMessages, explicitQui
342
384
  catch (error) {
343
385
  // Re-throw our custom errors
344
386
  const errorCode = hasErrorCode(error) ? error.code : undefined;
345
- if (errorCode === ErrorCodes.REPORTER_UNKNOWN) {
387
+ if (errorCode === ErrorCodes.REPORTER_UNKNOWN ||
388
+ errorCode === ErrorCodes.REPORTER_LOAD_FAILED ||
389
+ errorCode === ErrorCodes.REPORTER_INVALID) {
346
390
  throw error;
347
391
  }
348
392
  throw new InvalidArgumentError(`Reporter setup error: ${isError(error) ? error.message : String(error)}`, { cause: error });