modestbench 0.0.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +39 -31
  3. package/dist/bootstrap.cjs +10 -12
  4. package/dist/bootstrap.cjs.map +1 -1
  5. package/dist/bootstrap.d.cts.map +1 -1
  6. package/dist/bootstrap.d.ts.map +1 -1
  7. package/dist/bootstrap.js +5 -7
  8. package/dist/bootstrap.js.map +1 -1
  9. package/dist/cli/commands/history.cjs +108 -265
  10. package/dist/cli/commands/history.cjs.map +1 -1
  11. package/dist/cli/commands/history.d.cts +75 -12
  12. package/dist/cli/commands/history.d.cts.map +1 -1
  13. package/dist/cli/commands/history.d.ts +75 -12
  14. package/dist/cli/commands/history.d.ts.map +1 -1
  15. package/dist/cli/commands/history.js +105 -267
  16. package/dist/cli/commands/history.js.map +1 -1
  17. package/dist/cli/commands/init.cjs +5 -4
  18. package/dist/cli/commands/init.cjs.map +1 -1
  19. package/dist/cli/commands/init.d.cts.map +1 -1
  20. package/dist/cli/commands/init.d.ts.map +1 -1
  21. package/dist/cli/commands/init.js +5 -4
  22. package/dist/cli/commands/init.js.map +1 -1
  23. package/dist/cli/commands/run.cjs +32 -9
  24. package/dist/cli/commands/run.cjs.map +1 -1
  25. package/dist/cli/commands/run.d.cts +1 -0
  26. package/dist/cli/commands/run.d.cts.map +1 -1
  27. package/dist/cli/commands/run.d.ts +1 -0
  28. package/dist/cli/commands/run.d.ts.map +1 -1
  29. package/dist/cli/commands/run.js +32 -9
  30. package/dist/cli/commands/run.js.map +1 -1
  31. package/dist/cli/index.cjs +336 -103
  32. package/dist/cli/index.cjs.map +1 -1
  33. package/dist/cli/index.d.cts +1 -2
  34. package/dist/cli/index.d.cts.map +1 -1
  35. package/dist/cli/index.d.ts +1 -2
  36. package/dist/cli/index.d.ts.map +1 -1
  37. package/dist/cli/index.js +332 -99
  38. package/dist/cli/index.js.map +1 -1
  39. package/dist/constants.cjs +53 -1
  40. package/dist/constants.cjs.map +1 -1
  41. package/dist/constants.d.cts +36 -0
  42. package/dist/constants.d.cts.map +1 -1
  43. package/dist/constants.d.ts +36 -0
  44. package/dist/constants.d.ts.map +1 -1
  45. package/dist/constants.js +52 -0
  46. package/dist/constants.js.map +1 -1
  47. package/dist/core/engine.cjs +23 -43
  48. package/dist/core/engine.cjs.map +1 -1
  49. package/dist/core/engine.d.cts +4 -3
  50. package/dist/core/engine.d.cts.map +1 -1
  51. package/dist/core/engine.d.ts +4 -3
  52. package/dist/core/engine.d.ts.map +1 -1
  53. package/dist/core/engine.js +23 -43
  54. package/dist/core/engine.js.map +1 -1
  55. package/dist/core/engines/accurate-engine.cjs +2 -1
  56. package/dist/core/engines/accurate-engine.cjs.map +1 -1
  57. package/dist/core/engines/accurate-engine.d.cts.map +1 -1
  58. package/dist/core/engines/accurate-engine.d.ts.map +1 -1
  59. package/dist/core/engines/accurate-engine.js +2 -1
  60. package/dist/core/engines/accurate-engine.js.map +1 -1
  61. package/dist/core/engines/tinybench-engine.cjs +6 -5
  62. package/dist/core/engines/tinybench-engine.cjs.map +1 -1
  63. package/dist/core/engines/tinybench-engine.d.cts.map +1 -1
  64. package/dist/core/engines/tinybench-engine.d.ts.map +1 -1
  65. package/dist/core/engines/tinybench-engine.js +6 -5
  66. package/dist/core/engines/tinybench-engine.js.map +1 -1
  67. package/dist/core/output-path-resolver.cjs +34 -0
  68. package/dist/core/output-path-resolver.cjs.map +1 -0
  69. package/dist/core/output-path-resolver.d.cts +10 -0
  70. package/dist/core/output-path-resolver.d.cts.map +1 -0
  71. package/dist/core/output-path-resolver.d.ts +10 -0
  72. package/dist/core/output-path-resolver.d.ts.map +1 -0
  73. package/dist/core/output-path-resolver.js +30 -0
  74. package/dist/core/output-path-resolver.js.map +1 -0
  75. package/dist/errors/base.cjs +130 -0
  76. package/dist/errors/base.cjs.map +1 -0
  77. package/dist/errors/base.d.cts +97 -0
  78. package/dist/errors/base.d.cts.map +1 -0
  79. package/dist/errors/base.d.ts +97 -0
  80. package/dist/errors/base.d.ts.map +1 -0
  81. package/dist/errors/base.js +124 -0
  82. package/dist/errors/base.js.map +1 -0
  83. package/dist/errors/cli.cjs +58 -0
  84. package/dist/errors/cli.cjs.map +1 -0
  85. package/dist/errors/cli.d.cts +44 -0
  86. package/dist/errors/cli.d.cts.map +1 -0
  87. package/dist/errors/cli.d.ts +44 -0
  88. package/dist/errors/cli.d.ts.map +1 -0
  89. package/dist/errors/cli.js +52 -0
  90. package/dist/errors/cli.js.map +1 -0
  91. package/dist/errors/configuration.cjs +48 -0
  92. package/dist/errors/configuration.cjs.map +1 -0
  93. package/dist/errors/configuration.d.cts +41 -0
  94. package/dist/errors/configuration.d.cts.map +1 -0
  95. package/dist/errors/configuration.d.ts +41 -0
  96. package/dist/errors/configuration.d.ts.map +1 -0
  97. package/dist/errors/configuration.js +41 -0
  98. package/dist/errors/configuration.js.map +1 -0
  99. package/dist/errors/execution.cjs +65 -0
  100. package/dist/errors/execution.cjs.map +1 -0
  101. package/dist/errors/execution.d.cts +56 -0
  102. package/dist/errors/execution.d.cts.map +1 -0
  103. package/dist/errors/execution.d.ts +56 -0
  104. package/dist/errors/execution.d.ts.map +1 -0
  105. package/dist/errors/execution.js +56 -0
  106. package/dist/errors/execution.js.map +1 -0
  107. package/dist/errors/file.cjs +56 -0
  108. package/dist/errors/file.cjs.map +1 -0
  109. package/dist/errors/file.d.cts +48 -0
  110. package/dist/errors/file.d.cts.map +1 -0
  111. package/dist/errors/file.d.ts +48 -0
  112. package/dist/errors/file.d.ts.map +1 -0
  113. package/dist/errors/file.js +48 -0
  114. package/dist/errors/file.js.map +1 -0
  115. package/dist/errors/index.cjs +59 -0
  116. package/dist/errors/index.cjs.map +1 -0
  117. package/dist/errors/index.d.cts +16 -0
  118. package/dist/errors/index.d.cts.map +1 -0
  119. package/dist/errors/index.d.ts +16 -0
  120. package/dist/errors/index.d.ts.map +1 -0
  121. package/dist/errors/index.js +24 -0
  122. package/dist/errors/index.js.map +1 -0
  123. package/dist/errors/reporter.cjs +38 -0
  124. package/dist/errors/reporter.cjs.map +1 -0
  125. package/dist/errors/reporter.d.cts +32 -0
  126. package/dist/errors/reporter.d.cts.map +1 -0
  127. package/dist/errors/reporter.d.ts +32 -0
  128. package/dist/errors/reporter.d.ts.map +1 -0
  129. package/dist/errors/reporter.js +32 -0
  130. package/dist/errors/reporter.js.map +1 -0
  131. package/dist/errors/storage.cjs +55 -0
  132. package/dist/errors/storage.cjs.map +1 -0
  133. package/dist/errors/storage.d.cts +47 -0
  134. package/dist/errors/storage.d.cts.map +1 -0
  135. package/dist/errors/storage.d.ts +47 -0
  136. package/dist/errors/storage.d.ts.map +1 -0
  137. package/dist/errors/storage.js +47 -0
  138. package/dist/errors/storage.js.map +1 -0
  139. package/dist/errors/validation.cjs +38 -0
  140. package/dist/errors/validation.cjs.map +1 -0
  141. package/dist/errors/validation.d.cts +32 -0
  142. package/dist/errors/validation.d.cts.map +1 -0
  143. package/dist/errors/validation.d.ts +32 -0
  144. package/dist/errors/validation.d.ts.map +1 -0
  145. package/dist/errors/validation.js +32 -0
  146. package/dist/errors/validation.js.map +1 -0
  147. package/dist/formatters/history/base.cjs +9 -0
  148. package/dist/formatters/history/base.cjs.map +1 -0
  149. package/dist/formatters/history/base.d.cts +26 -0
  150. package/dist/formatters/history/base.d.cts.map +1 -0
  151. package/dist/formatters/history/base.d.ts +26 -0
  152. package/dist/formatters/history/base.d.ts.map +1 -0
  153. package/dist/formatters/history/base.js +8 -0
  154. package/dist/formatters/history/base.js.map +1 -0
  155. package/dist/formatters/history/compare.cjs +127 -0
  156. package/dist/formatters/history/compare.cjs.map +1 -0
  157. package/dist/formatters/history/compare.d.cts +21 -0
  158. package/dist/formatters/history/compare.d.cts.map +1 -0
  159. package/dist/formatters/history/compare.d.ts +21 -0
  160. package/dist/formatters/history/compare.d.ts.map +1 -0
  161. package/dist/formatters/history/compare.js +123 -0
  162. package/dist/formatters/history/compare.js.map +1 -0
  163. package/dist/formatters/history/list.cjs +74 -0
  164. package/dist/formatters/history/list.cjs.map +1 -0
  165. package/dist/formatters/history/list.d.cts +25 -0
  166. package/dist/formatters/history/list.d.cts.map +1 -0
  167. package/dist/formatters/history/list.d.ts +25 -0
  168. package/dist/formatters/history/list.d.ts.map +1 -0
  169. package/dist/formatters/history/list.js +70 -0
  170. package/dist/formatters/history/list.js.map +1 -0
  171. package/dist/formatters/history/show.cjs +98 -0
  172. package/dist/formatters/history/show.cjs.map +1 -0
  173. package/dist/formatters/history/show.d.cts +21 -0
  174. package/dist/formatters/history/show.d.cts.map +1 -0
  175. package/dist/formatters/history/show.d.ts +21 -0
  176. package/dist/formatters/history/show.d.ts.map +1 -0
  177. package/dist/formatters/history/show.js +94 -0
  178. package/dist/formatters/history/show.js.map +1 -0
  179. package/dist/formatters/history/trends.cjs +194 -0
  180. package/dist/formatters/history/trends.cjs.map +1 -0
  181. package/dist/formatters/history/trends.d.cts +22 -0
  182. package/dist/formatters/history/trends.d.cts.map +1 -0
  183. package/dist/formatters/history/trends.d.ts +22 -0
  184. package/dist/formatters/history/trends.d.ts.map +1 -0
  185. package/dist/formatters/history/trends.js +190 -0
  186. package/dist/formatters/history/trends.js.map +1 -0
  187. package/dist/formatters/history/visualization.cjs +79 -0
  188. package/dist/formatters/history/visualization.cjs.map +1 -0
  189. package/dist/formatters/history/visualization.d.cts +24 -0
  190. package/dist/formatters/history/visualization.d.cts.map +1 -0
  191. package/dist/formatters/history/visualization.d.ts +24 -0
  192. package/dist/formatters/history/visualization.d.ts.map +1 -0
  193. package/dist/formatters/history/visualization.js +74 -0
  194. package/dist/formatters/history/visualization.js.map +1 -0
  195. package/dist/index.cjs +17 -20
  196. package/dist/index.cjs.map +1 -1
  197. package/dist/index.d.cts +6 -6
  198. package/dist/index.d.cts.map +1 -1
  199. package/dist/index.d.ts +6 -6
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +9 -11
  202. package/dist/index.js.map +1 -1
  203. package/dist/reporters/csv.cjs +5 -4
  204. package/dist/reporters/csv.cjs.map +1 -1
  205. package/dist/reporters/csv.d.cts +1 -1
  206. package/dist/reporters/csv.d.cts.map +1 -1
  207. package/dist/reporters/csv.d.ts +1 -1
  208. package/dist/reporters/csv.d.ts.map +1 -1
  209. package/dist/reporters/csv.js +4 -3
  210. package/dist/reporters/csv.js.map +1 -1
  211. package/dist/reporters/human.cjs +24 -62
  212. package/dist/reporters/human.cjs.map +1 -1
  213. package/dist/reporters/human.d.cts +1 -1
  214. package/dist/reporters/human.d.cts.map +1 -1
  215. package/dist/reporters/human.d.ts +1 -1
  216. package/dist/reporters/human.d.ts.map +1 -1
  217. package/dist/reporters/human.js +3 -41
  218. package/dist/reporters/human.js.map +1 -1
  219. package/dist/reporters/json.cjs +5 -4
  220. package/dist/reporters/json.cjs.map +1 -1
  221. package/dist/reporters/json.d.cts +1 -1
  222. package/dist/reporters/json.d.cts.map +1 -1
  223. package/dist/reporters/json.d.ts +1 -1
  224. package/dist/reporters/json.d.ts.map +1 -1
  225. package/dist/reporters/json.js +4 -3
  226. package/dist/reporters/json.js.map +1 -1
  227. package/dist/reporters/simple.cjs +3 -3
  228. package/dist/reporters/simple.cjs.map +1 -1
  229. package/dist/reporters/simple.d.cts +1 -1
  230. package/dist/reporters/simple.d.cts.map +1 -1
  231. package/dist/reporters/simple.d.ts +1 -1
  232. package/dist/reporters/simple.d.ts.map +1 -1
  233. package/dist/reporters/simple.js +2 -2
  234. package/dist/reporters/simple.js.map +1 -1
  235. package/dist/{config/manager.cjs → services/config-manager.cjs} +10 -4
  236. package/dist/services/config-manager.cjs.map +1 -0
  237. package/dist/{config/manager.d.cts → services/config-manager.d.cts} +1 -1
  238. package/dist/services/config-manager.d.cts.map +1 -0
  239. package/dist/{config/manager.d.ts → services/config-manager.d.ts} +1 -1
  240. package/dist/services/config-manager.d.ts.map +1 -0
  241. package/dist/{config/manager.js → services/config-manager.js} +10 -4
  242. package/dist/services/config-manager.js.map +1 -0
  243. package/dist/{core/loader.cjs → services/file-loader.cjs} +18 -7
  244. package/dist/services/file-loader.cjs.map +1 -0
  245. package/dist/{core/loader.d.cts → services/file-loader.d.cts} +1 -1
  246. package/dist/services/file-loader.d.cts.map +1 -0
  247. package/dist/{core/loader.d.ts → services/file-loader.d.ts} +1 -1
  248. package/dist/services/file-loader.d.ts.map +1 -0
  249. package/dist/{core/loader.js → services/file-loader.js} +18 -7
  250. package/dist/services/file-loader.js.map +1 -0
  251. package/dist/services/history/comparison.cjs +124 -0
  252. package/dist/services/history/comparison.cjs.map +1 -0
  253. package/dist/services/history/comparison.d.cts +18 -0
  254. package/dist/services/history/comparison.d.cts.map +1 -0
  255. package/dist/services/history/comparison.d.ts +18 -0
  256. package/dist/services/history/comparison.d.ts.map +1 -0
  257. package/dist/services/history/comparison.js +120 -0
  258. package/dist/services/history/comparison.js.map +1 -0
  259. package/dist/services/history/models.cjs +9 -0
  260. package/dist/services/history/models.cjs.map +1 -0
  261. package/dist/services/history/models.d.cts +139 -0
  262. package/dist/services/history/models.d.cts.map +1 -0
  263. package/dist/services/history/models.d.ts +139 -0
  264. package/dist/services/history/models.d.ts.map +1 -0
  265. package/dist/services/history/models.js +8 -0
  266. package/dist/services/history/models.js.map +1 -0
  267. package/dist/services/history/query.cjs +97 -0
  268. package/dist/services/history/query.cjs.map +1 -0
  269. package/dist/services/history/query.d.cts +38 -0
  270. package/dist/services/history/query.d.cts.map +1 -0
  271. package/dist/services/history/query.d.ts +38 -0
  272. package/dist/services/history/query.d.ts.map +1 -0
  273. package/dist/services/history/query.js +92 -0
  274. package/dist/services/history/query.js.map +1 -0
  275. package/dist/services/history/trend-analysis.cjs +187 -0
  276. package/dist/services/history/trend-analysis.cjs.map +1 -0
  277. package/dist/services/history/trend-analysis.d.cts +34 -0
  278. package/dist/services/history/trend-analysis.d.cts.map +1 -0
  279. package/dist/services/history/trend-analysis.d.ts +34 -0
  280. package/dist/services/history/trend-analysis.d.ts.map +1 -0
  281. package/dist/services/history/trend-analysis.js +179 -0
  282. package/dist/services/history/trend-analysis.js.map +1 -0
  283. package/dist/{storage/history.cjs → services/history-storage.cjs} +33 -12
  284. package/dist/services/history-storage.cjs.map +1 -0
  285. package/dist/{storage/history.d.cts → services/history-storage.d.cts} +1 -1
  286. package/dist/services/history-storage.d.cts.map +1 -0
  287. package/dist/{storage/history.d.ts → services/history-storage.d.ts} +1 -1
  288. package/dist/services/history-storage.d.ts.map +1 -0
  289. package/dist/{storage/history.js → services/history-storage.js} +33 -12
  290. package/dist/services/history-storage.js.map +1 -0
  291. package/dist/{progress/manager.cjs → services/progress-manager.cjs} +1 -1
  292. package/dist/services/progress-manager.cjs.map +1 -0
  293. package/dist/{progress/manager.d.cts → services/progress-manager.d.cts} +1 -1
  294. package/dist/services/progress-manager.d.cts.map +1 -0
  295. package/dist/{progress/manager.d.ts → services/progress-manager.d.ts} +1 -1
  296. package/dist/services/progress-manager.d.ts.map +1 -0
  297. package/dist/{progress/manager.js → services/progress-manager.js} +1 -1
  298. package/dist/services/progress-manager.js.map +1 -0
  299. package/dist/{reporters/registry.cjs → services/reporter-registry.cjs} +4 -3
  300. package/dist/services/reporter-registry.cjs.map +1 -0
  301. package/dist/{reporters/registry.d.cts → services/reporter-registry.d.cts} +1 -1
  302. package/dist/services/reporter-registry.d.cts.map +1 -0
  303. package/dist/{reporters/registry.d.ts → services/reporter-registry.d.ts} +1 -1
  304. package/dist/services/reporter-registry.d.ts.map +1 -0
  305. package/dist/{reporters/registry.js → services/reporter-registry.js} +4 -3
  306. package/dist/services/reporter-registry.js.map +1 -0
  307. package/dist/types/cli.d.cts +3 -0
  308. package/dist/types/cli.d.cts.map +1 -1
  309. package/dist/types/cli.d.ts +3 -0
  310. package/dist/types/cli.d.ts.map +1 -1
  311. package/dist/types/interfaces.d.cts +1 -34
  312. package/dist/types/interfaces.d.cts.map +1 -1
  313. package/dist/types/interfaces.d.ts +1 -34
  314. package/dist/types/interfaces.d.ts.map +1 -1
  315. package/dist/utils/ansi.cjs +61 -0
  316. package/dist/utils/ansi.cjs.map +1 -0
  317. package/dist/utils/ansi.d.cts +53 -0
  318. package/dist/utils/ansi.d.cts.map +1 -0
  319. package/dist/utils/ansi.d.ts +53 -0
  320. package/dist/utils/ansi.d.ts.map +1 -0
  321. package/dist/utils/ansi.js +57 -0
  322. package/dist/utils/ansi.js.map +1 -0
  323. package/package.json +10 -8
  324. package/src/bootstrap.ts +5 -7
  325. package/src/cli/commands/history.ts +195 -341
  326. package/src/cli/commands/init.ts +14 -4
  327. package/src/cli/commands/run.ts +52 -7
  328. package/src/cli/index.ts +393 -119
  329. package/src/constants.ts +60 -0
  330. package/src/core/engine.ts +40 -48
  331. package/src/core/engines/accurate-engine.ts +4 -1
  332. package/src/core/engines/tinybench-engine.ts +12 -5
  333. package/src/core/output-path-resolver.ts +38 -0
  334. package/src/errors/base.ts +152 -0
  335. package/src/errors/cli.ts +59 -0
  336. package/src/errors/configuration.ts +45 -0
  337. package/src/errors/execution.ts +62 -0
  338. package/src/errors/file.ts +53 -0
  339. package/src/errors/index.ts +71 -0
  340. package/src/errors/reporter.ts +35 -0
  341. package/src/errors/storage.ts +52 -0
  342. package/src/errors/validation.ts +35 -0
  343. package/src/formatters/history/base.ts +28 -0
  344. package/src/formatters/history/compare.ts +186 -0
  345. package/src/formatters/history/list.ts +101 -0
  346. package/src/formatters/history/show.ts +155 -0
  347. package/src/formatters/history/trends.ts +281 -0
  348. package/src/formatters/history/visualization.ts +93 -0
  349. package/src/index.ts +10 -14
  350. package/src/reporters/csv.ts +5 -3
  351. package/src/reporters/human.ts +3 -43
  352. package/src/reporters/json.ts +5 -3
  353. package/src/reporters/simple.ts +2 -2
  354. package/src/{config/manager.ts → services/config-manager.ts} +13 -3
  355. package/src/{core/loader.ts → services/file-loader.ts} +28 -6
  356. package/src/services/history/comparison.ts +130 -0
  357. package/src/services/history/models.ts +148 -0
  358. package/src/services/history/query.ts +116 -0
  359. package/src/services/history/trend-analysis.ts +238 -0
  360. package/src/{storage/history.ts → services/history-storage.ts} +58 -11
  361. package/src/{reporters/registry.ts → services/reporter-registry.ts} +9 -2
  362. package/src/types/cli.ts +3 -0
  363. package/src/types/interfaces.ts +0 -43
  364. package/src/utils/ansi.ts +59 -0
  365. package/dist/config/manager.cjs.map +0 -1
  366. package/dist/config/manager.d.cts.map +0 -1
  367. package/dist/config/manager.d.ts.map +0 -1
  368. package/dist/config/manager.js.map +0 -1
  369. package/dist/core/error-manager.cjs +0 -303
  370. package/dist/core/error-manager.cjs.map +0 -1
  371. package/dist/core/error-manager.d.cts +0 -77
  372. package/dist/core/error-manager.d.cts.map +0 -1
  373. package/dist/core/error-manager.d.ts +0 -77
  374. package/dist/core/error-manager.d.ts.map +0 -1
  375. package/dist/core/error-manager.js +0 -299
  376. package/dist/core/error-manager.js.map +0 -1
  377. package/dist/core/loader.cjs.map +0 -1
  378. package/dist/core/loader.d.cts.map +0 -1
  379. package/dist/core/loader.d.ts.map +0 -1
  380. package/dist/core/loader.js.map +0 -1
  381. package/dist/progress/manager.cjs.map +0 -1
  382. package/dist/progress/manager.d.cts.map +0 -1
  383. package/dist/progress/manager.d.ts.map +0 -1
  384. package/dist/progress/manager.js.map +0 -1
  385. package/dist/reporters/registry.cjs.map +0 -1
  386. package/dist/reporters/registry.d.cts.map +0 -1
  387. package/dist/reporters/registry.d.ts.map +0 -1
  388. package/dist/reporters/registry.js.map +0 -1
  389. package/dist/storage/history.cjs.map +0 -1
  390. package/dist/storage/history.d.cts.map +0 -1
  391. package/dist/storage/history.d.ts.map +0 -1
  392. package/dist/storage/history.js.map +0 -1
  393. package/src/core/error-manager.ts +0 -372
  394. /package/src/{progress/manager.ts → services/progress-manager.ts} +0 -0
@@ -5,7 +5,7 @@
5
5
  * Command-line interface using yargs for command parsing and routing. Provides
6
6
  * global options, help generation, and dependency injection setup.
7
7
  */
8
- import type { BenchmarkEngine, ConfigurationManager, ErrorManager, HistoryStorage, ProgressManager, ReporterRegistry } from "../types/index.js";
8
+ import type { BenchmarkEngine, ConfigurationManager, HistoryStorage, ProgressManager, ReporterRegistry } from "../types/index.js";
9
9
  /**
10
10
  * CLI context with initialized services
11
11
  */
@@ -13,7 +13,6 @@ export interface CliContext {
13
13
  readonly abortController: AbortController;
14
14
  readonly configManager: ConfigurationManager;
15
15
  readonly engine: BenchmarkEngine;
16
- readonly errorManager: ErrorManager;
17
16
  readonly historyStorage: HistoryStorage;
18
17
  readonly options: GlobalOptions;
19
18
  readonly progressManager: ProgressManager;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AASH,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,0BAA0B;AAe3B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,GAAG,GAAI,OAAO,MAAM,EAAE,KAAG,IAOrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,GACf,OAAO,MAAM,EAAE,EACf,kBAAkB,eAAe,KAChC,OAAO,CAAC,IAAI,CAqad,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AASH,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,0BAA0B;AAuB3B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,GAAG,GAAI,OAAO,MAAM,EAAE,KAAG,IAOrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,GACf,OAAO,MAAM,EAAE,EACf,kBAAkB,eAAe,KAChC,OAAO,CAAC,IAAI,CA6pBd,CAAC"}
package/dist/cli/index.js CHANGED
@@ -11,9 +11,10 @@ import yargs from 'yargs';
11
11
  import { hideBin } from 'yargs/helpers';
12
12
  import { bootstrap } from "../bootstrap.js";
13
13
  import { AccurateEngine, TinybenchEngine } from "../core/engines/index.js";
14
+ import { isModestBenchError, UnknownError } from "../errors/index.js";
14
15
  import { CsvReporter, HumanReporter, JsonReporter, SimpleReporter, } from "../reporters/index.js";
15
16
  // Import commands
16
- import { handleHistoryCommand as historyCommand } from "./commands/history.js";
17
+ import { handleCleanCommand, handleCompareCommand, handleExportCommand, handleListCommand, handleShowCommand, handleTrendsCommand, } from "./commands/history.js";
17
18
  import { handleInitCommand as initCommand } from "./commands/init.js";
18
19
  import { handleRunCommand as runCommand } from "./commands/run.js";
19
20
  /**
@@ -48,6 +49,7 @@ export const main = async (argv, abortController) => {
48
49
  const cli = yargs(args);
49
50
  // Configure global options and commands
50
51
  await cli
52
+ .scriptName('modestbench')
51
53
  .option('config', {
52
54
  alias: 'c',
53
55
  description: 'Path to configuration file',
@@ -81,6 +83,7 @@ export const main = async (argv, abortController) => {
81
83
  })
82
84
  .option('cwd', {
83
85
  default: process.cwd(),
86
+ defaultDescription: '.',
84
87
  description: 'Working directory',
85
88
  global: true,
86
89
  type: 'string',
@@ -124,6 +127,12 @@ export const main = async (argv, abortController) => {
124
127
  alias: 'o',
125
128
  description: 'Output directory for reports',
126
129
  type: 'string',
130
+ })
131
+ .option('output-file', {
132
+ alias: 'of',
133
+ description: 'Custom filename for reporter output (use with single reporter only)',
134
+ requiresArg: true,
135
+ type: 'string',
127
136
  })
128
137
  .option('iterations', {
129
138
  alias: 'i',
@@ -226,6 +235,7 @@ export const main = async (argv, abortController) => {
226
235
  json: argv.json,
227
236
  noColor: argv.noColor,
228
237
  outputDir: argv.output,
238
+ outputFile: argv['output-file'],
229
239
  pattern: argv.pattern,
230
240
  progress: argv.progress,
231
241
  quiet: argv.quiet,
@@ -238,103 +248,310 @@ export const main = async (argv, abortController) => {
238
248
  });
239
249
  process.exit(exitCode);
240
250
  })
241
- .command('history <subcommand> [args..]', 'View and manage benchmark history', (yargs) => {
251
+ .command('history', 'View and manage benchmark history', (yargs) => {
242
252
  return yargs
243
- .positional('subcommand', {
244
- choices: [
245
- 'list',
246
- 'show',
247
- 'compare',
248
- 'trends',
249
- 'clean',
250
- 'export',
251
- ],
252
- demandOption: true,
253
- describe: 'History subcommand',
254
- type: 'string',
255
- })
256
- .positional('args', {
257
- array: true,
258
- describe: 'Additional arguments for the subcommand',
259
- type: 'string',
260
- })
261
- .option('since', {
262
- description: 'Show runs since date (ISO 8601 or relative like "1 week ago")',
263
- type: 'string',
264
- })
265
- .option('until', {
266
- description: 'Show runs until date (ISO 8601 or relative like "1 day ago")',
267
- type: 'string',
268
- })
269
- .option('pattern', {
270
- description: 'Filter by benchmark name pattern',
271
- type: 'string',
272
- })
273
- .option('tags', {
274
- description: 'Filter by tags',
275
- type: 'array',
276
- })
277
- .option('limit', {
278
- default: 10,
279
- description: 'Maximum number of results',
280
- type: 'number',
281
- })
282
- .option('format', {
283
- choices: ['human', 'json', 'csv'],
284
- default: 'human',
285
- description: 'Output format',
286
- type: 'string',
287
- })
288
- .option('maxAge', {
289
- description: 'Maximum age in days for cleanup',
290
- type: 'number',
291
- })
292
- .option('maxRuns', {
293
- description: 'Maximum number of runs to keep',
294
- type: 'number',
295
- })
296
- .option('maxSize', {
297
- description: 'Maximum storage size in bytes',
298
- type: 'number',
299
- })
300
- .option('confirm', {
301
- default: false,
302
- description: 'Confirm cleanup operations',
303
- type: 'boolean',
304
- })
305
- .option('output', {
306
- description: 'Output file path',
307
- type: 'string',
308
- })
253
+ .command('list', 'List recent benchmark runs', (yargs) => {
254
+ return yargs
255
+ .option('since', {
256
+ description: 'Show runs since date (ISO 8601 or relative like "1 week ago")',
257
+ type: 'string',
258
+ })
259
+ .option('until', {
260
+ description: 'Show runs until date (ISO 8601 or relative like "1 day ago")',
261
+ type: 'string',
262
+ })
263
+ .option('pattern', {
264
+ description: 'Filter by benchmark name pattern',
265
+ type: 'string',
266
+ })
267
+ .option('tags', {
268
+ description: 'Filter by tags (comma-separated)',
269
+ type: 'array',
270
+ })
271
+ .option('limit', {
272
+ default: 10,
273
+ description: 'Maximum number of results',
274
+ type: 'number',
275
+ })
276
+ .option('format', {
277
+ choices: ['human', 'json', 'csv'],
278
+ default: 'human',
279
+ description: 'Output format',
280
+ type: 'string',
281
+ })
282
+ .example([
283
+ ['$0 history list', 'List recent benchmark runs'],
284
+ [
285
+ '$0 history list --since "1 week ago"',
286
+ 'List runs from last week',
287
+ ],
288
+ ['$0 history list --limit 20', 'List 20 most recent runs'],
289
+ ['$0 history list --format json', 'List runs in JSON format'],
290
+ ]);
291
+ }, async (argv) => {
292
+ const context = await createCliContext(argv, abortController);
293
+ const exitCode = await handleListCommand(context, {
294
+ cwd: argv.cwd,
295
+ format: argv.format,
296
+ limit: argv.limit,
297
+ pattern: argv.pattern,
298
+ quiet: Boolean(argv.quiet),
299
+ since: argv.since,
300
+ tags: argv.tags,
301
+ until: argv.until,
302
+ verbose: argv.verbose,
303
+ });
304
+ process.exit(exitCode);
305
+ })
306
+ .command('show <run-id>', 'Show detailed results for a specific run', (yargs) => {
307
+ return yargs
308
+ .positional('run-id', {
309
+ describe: 'ID of the benchmark run to show',
310
+ type: 'string',
311
+ })
312
+ .option('format', {
313
+ choices: ['human', 'json', 'csv'],
314
+ default: 'human',
315
+ description: 'Output format',
316
+ type: 'string',
317
+ })
318
+ .example([
319
+ [
320
+ '$0 history show abc123',
321
+ 'Show detailed results for run abc123',
322
+ ],
323
+ [
324
+ '$0 history show abc123 --format json',
325
+ 'Show run in JSON format',
326
+ ],
327
+ ]);
328
+ }, async (argv) => {
329
+ const context = await createCliContext(argv, abortController);
330
+ const exitCode = await handleShowCommand(context, {
331
+ cwd: argv.cwd,
332
+ format: argv.format,
333
+ quiet: Boolean(argv.quiet),
334
+ runId: String(argv['run-id']),
335
+ verbose: argv.verbose,
336
+ });
337
+ process.exit(exitCode);
338
+ })
339
+ .command('compare <run-id1> <run-id2>', 'Compare two benchmark runs', (yargs) => {
340
+ return yargs
341
+ .positional('run-id1', {
342
+ describe: 'ID of the first benchmark run',
343
+ type: 'string',
344
+ })
345
+ .positional('run-id2', {
346
+ describe: 'ID of the second benchmark run',
347
+ type: 'string',
348
+ })
349
+ .option('format', {
350
+ choices: ['human', 'json'],
351
+ default: 'human',
352
+ description: 'Output format',
353
+ type: 'string',
354
+ })
355
+ .example([
356
+ ['$0 history compare abc123 def456', 'Compare two runs'],
357
+ [
358
+ '$0 history compare abc123 def456 --format json',
359
+ 'Compare in JSON format',
360
+ ],
361
+ ]);
362
+ }, async (argv) => {
363
+ const context = await createCliContext(argv, abortController);
364
+ const exitCode = await handleCompareCommand(context, {
365
+ cwd: argv.cwd,
366
+ format: argv.format,
367
+ quiet: Boolean(argv.quiet),
368
+ runId1: String(argv['run-id1']),
369
+ runId2: String(argv['run-id2']),
370
+ verbose: argv.verbose,
371
+ });
372
+ process.exit(exitCode);
373
+ })
374
+ .command('trends [pattern]', 'Show performance trends over time', (yargs) => {
375
+ return yargs
376
+ .positional('pattern', {
377
+ describe: 'Filter by benchmark name pattern',
378
+ type: 'string',
379
+ })
380
+ .option('since', {
381
+ description: 'Show trends since date (ISO 8601 or relative like "1 week ago")',
382
+ type: 'string',
383
+ })
384
+ .option('until', {
385
+ description: 'Show trends until date (ISO 8601 or relative like "1 day ago")',
386
+ type: 'string',
387
+ })
388
+ .option('tags', {
389
+ description: 'Filter by tags (comma-separated)',
390
+ type: 'array',
391
+ })
392
+ .option('limit', {
393
+ description: 'Maximum number of runs to analyze',
394
+ type: 'number',
395
+ })
396
+ .option('all', {
397
+ alias: 'a',
398
+ default: false,
399
+ description: 'Analyze all runs (ignore limit)',
400
+ type: 'boolean',
401
+ })
402
+ .option('format', {
403
+ choices: ['human', 'json'],
404
+ default: 'human',
405
+ description: 'Output format',
406
+ type: 'string',
407
+ })
408
+ .example([
409
+ [
410
+ '$0 history trends',
411
+ 'Show performance trends for all benchmarks',
412
+ ],
413
+ [
414
+ '$0 history trends --since "1 month ago"',
415
+ 'Show trends from last month',
416
+ ],
417
+ [
418
+ '$0 history trends "array-*"',
419
+ 'Show trends for array benchmarks',
420
+ ],
421
+ [
422
+ '$0 history trends --format json',
423
+ 'Output trends in JSON format',
424
+ ],
425
+ ]);
426
+ }, async (argv) => {
427
+ const context = await createCliContext(argv, abortController);
428
+ const exitCode = await handleTrendsCommand(context, {
429
+ all: Boolean(argv.all),
430
+ cwd: argv.cwd,
431
+ format: argv.format,
432
+ limit: argv.limit,
433
+ pattern: argv.pattern,
434
+ quiet: Boolean(argv.quiet),
435
+ since: argv.since,
436
+ tags: argv.tags,
437
+ until: argv.until,
438
+ verbose: argv.verbose,
439
+ });
440
+ process.exit(exitCode);
441
+ })
442
+ .command('clean', 'Clean up old benchmark history', (yargs) => {
443
+ return yargs
444
+ .option('max-age', {
445
+ description: 'Remove runs older than this many days',
446
+ type: 'number',
447
+ })
448
+ .option('max-runs', {
449
+ description: 'Keep only this many most recent runs',
450
+ type: 'number',
451
+ })
452
+ .option('max-size', {
453
+ description: 'Keep history under this size in bytes',
454
+ type: 'number',
455
+ })
456
+ .option('confirm', {
457
+ default: false,
458
+ description: 'Confirm cleanup without prompting',
459
+ type: 'boolean',
460
+ })
461
+ .check((argv) => {
462
+ if (!argv['max-age'] &&
463
+ !argv['max-runs'] &&
464
+ !argv['max-size']) {
465
+ throw new Error('At least one cleanup criterion must be specified (--max-age, --max-runs, or --max-size)');
466
+ }
467
+ return true;
468
+ })
469
+ .example([
470
+ [
471
+ '$0 history clean --max-runs 50 --confirm',
472
+ 'Keep only latest 50 runs',
473
+ ],
474
+ [
475
+ '$0 history clean --max-age 30',
476
+ 'Preview removing runs older than 30 days',
477
+ ],
478
+ [
479
+ '$0 history clean --max-size 10485760',
480
+ 'Keep history under 10MB',
481
+ ],
482
+ ]);
483
+ }, async (argv) => {
484
+ const context = await createCliContext(argv, abortController);
485
+ const exitCode = await handleCleanCommand(context, {
486
+ confirm: argv.confirm,
487
+ cwd: argv.cwd,
488
+ maxAge: argv['max-age'],
489
+ maxRuns: argv['max-runs'],
490
+ maxSize: argv['max-size'],
491
+ quiet: Boolean(argv.quiet),
492
+ verbose: argv.verbose,
493
+ });
494
+ process.exit(exitCode);
495
+ })
496
+ .command('export', 'Export benchmark history to a file', (yargs) => {
497
+ return yargs
498
+ .option('format', {
499
+ choices: ['json', 'csv'],
500
+ default: 'json',
501
+ description: 'Export format',
502
+ type: 'string',
503
+ })
504
+ .option('output', {
505
+ alias: 'o',
506
+ demandOption: true,
507
+ description: 'Output file path',
508
+ type: 'string',
509
+ })
510
+ .option('since', {
511
+ description: 'Export runs since date',
512
+ type: 'string',
513
+ })
514
+ .option('until', {
515
+ description: 'Export runs until date',
516
+ type: 'string',
517
+ })
518
+ .example([
519
+ [
520
+ '$0 history export -o history.json',
521
+ 'Export all history to JSON',
522
+ ],
523
+ [
524
+ '$0 history export -o history.csv --format csv',
525
+ 'Export to CSV',
526
+ ],
527
+ [
528
+ '$0 history export -o recent.json --since "1 week ago"',
529
+ 'Export recent runs',
530
+ ],
531
+ ]);
532
+ }, async (argv) => {
533
+ const context = await createCliContext(argv, abortController);
534
+ const exitCode = await handleExportCommand(context, {
535
+ cwd: argv.cwd,
536
+ format: argv.format,
537
+ outputPath: argv.output,
538
+ quiet: Boolean(argv.quiet),
539
+ since: argv.since,
540
+ until: argv.until,
541
+ verbose: argv.verbose,
542
+ });
543
+ process.exit(exitCode);
544
+ })
545
+ .demandCommand(1, 'You must specify a history subcommand')
546
+ .strict()
309
547
  .example([
310
548
  ['$0 history list', 'List recent benchmark runs'],
311
- ['$0 history show <run-id>', 'Show detailed results for run'],
549
+ ['$0 history show <run-id>', 'Show detailed results'],
312
550
  ['$0 history compare <run-id1> <run-id2>', 'Compare two runs'],
313
- ['$0 history trends [pattern]', 'Show performance trends'],
551
+ ['$0 history trends', 'Show performance trends'],
314
552
  ['$0 history clean --max-runs 50', 'Keep only latest 50 runs'],
315
- ['$0 history export --format csv', 'Export to CSV'],
553
+ ['$0 history export -o data.json', 'Export history'],
316
554
  ]);
317
- }, async (argv) => {
318
- const context = await createCliContext(argv, abortController);
319
- const exitCode = await historyCommand(context, {
320
- args: argv.args,
321
- confirm: argv.confirm,
322
- cwd: argv.cwd,
323
- format: argv.format,
324
- limit: argv.limit,
325
- maxAge: argv.maxAge,
326
- maxRuns: argv.maxRuns,
327
- maxSize: argv.maxSize,
328
- outputDir: argv.output,
329
- pattern: argv.pattern,
330
- quiet: Boolean(argv.quiet),
331
- since: argv.since,
332
- subcommand: argv.subcommand,
333
- tags: argv.tags,
334
- until: argv.until,
335
- verbose: argv.verbose,
336
- });
337
- process.exit(exitCode);
338
555
  })
339
556
  .command('init [type]', 'Initialize a new benchmark project', (yargs) => {
340
557
  return yargs
@@ -458,7 +675,6 @@ const createCliContext = async (options, abortController, engineType = 'tinybenc
458
675
  abortController,
459
676
  configManager: engine.configManager,
460
677
  engine,
461
- errorManager: engine.errorManager,
462
678
  historyStorage: engine.historyStorage,
463
679
  options,
464
680
  progressManager: engine.progressManager,
@@ -479,7 +695,7 @@ const setupSignalHandlers = (abortController) => {
479
695
  if (abortRequested) {
480
696
  // Second signal, force exit
481
697
  console.log(`\nReceived ${signal} again, forcing exit...`);
482
- process.exit(128 + (signal === 'SIGINT' ? 2 : signal === 'SIGQUIT' ? 3 : 15));
698
+ process.exit(computeExitCode(signal));
483
699
  }
484
700
  console.log(`\nReceived ${signal}, aborting benchmarks...`);
485
701
  abortRequested = true;
@@ -487,18 +703,26 @@ const setupSignalHandlers = (abortController) => {
487
703
  // Give a short grace period for cleanup, then exit
488
704
  setTimeout(() => {
489
705
  console.log('\nBenchmark aborted.');
490
- process.exit(128 + (signal === 'SIGINT' ? 2 : signal === 'SIGQUIT' ? 3 : 15));
706
+ process.exit(computeExitCode(signal));
491
707
  }, 100);
492
708
  };
493
709
  process.on('SIGINT', () => handleSignal('SIGINT'));
494
710
  process.on('SIGQUIT', () => handleSignal('SIGQUIT'));
495
711
  process.on('SIGTERM', () => handleSignal('SIGTERM'));
496
- process.on('uncaughtException', (error) => {
497
- console.error('Uncaught exception:', error);
712
+ process.once('uncaughtException', (error) => {
713
+ // Wrap non-ModestBench errors with UnknownError
714
+ const wrappedError = isModestBenchError(error)
715
+ ? error
716
+ : new UnknownError(error instanceof Error ? error.message : String(error), { cause: error });
717
+ console.error(wrappedError.toString());
498
718
  process.exit(ExitCodes.RUNTIME_ERROR);
499
719
  });
500
- process.on('unhandledRejection', (reason, promise) => {
501
- console.error('Unhandled rejection at:', promise, 'reason:', reason);
720
+ process.once('unhandledRejection', (reason) => {
721
+ // Wrap non-ModestBench errors with UnknownError
722
+ const wrappedError = isModestBenchError(reason)
723
+ ? reason
724
+ : new UnknownError(reason instanceof Error ? reason.message : String(reason), { cause: reason });
725
+ console.error(wrappedError.toString());
502
726
  process.exit(ExitCodes.RUNTIME_ERROR);
503
727
  });
504
728
  };
@@ -519,4 +743,13 @@ catch {
519
743
  cli();
520
744
  }
521
745
  }
746
+ /**
747
+ * Compute the exit code based on the signal
748
+ *
749
+ * @param signal - The signal that caused the exit
750
+ * @returns The exit code
751
+ */
752
+ const computeExitCode = (signal) => {
753
+ return 128 + (signal === 'SIGINT' ? 2 : signal === 'SIGQUIT' ? 3 : 15);
754
+ };
522
755
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}