@oalacea/daemon 0.6.3 → 0.7.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 (289) hide show
  1. package/README.md +268 -58
  2. package/bin/Dockerfile +158 -16
  3. package/dist/cli/cli.d.ts.map +1 -1
  4. package/dist/cli/cli.js +22 -2
  5. package/dist/cli/cli.js.map +1 -1
  6. package/dist/cli/commands/command.types.d.ts +216 -0
  7. package/dist/cli/commands/command.types.d.ts.map +1 -0
  8. package/dist/cli/commands/command.types.js +64 -0
  9. package/dist/cli/commands/command.types.js.map +1 -0
  10. package/dist/cli/commands/history.command.d.ts +91 -0
  11. package/dist/cli/commands/history.command.d.ts.map +1 -0
  12. package/dist/cli/commands/history.command.js +336 -0
  13. package/dist/cli/commands/history.command.js.map +1 -0
  14. package/dist/cli/commands/index.d.ts +14 -3
  15. package/dist/cli/commands/index.d.ts.map +1 -1
  16. package/dist/cli/commands/index.js +7 -0
  17. package/dist/cli/commands/index.js.map +1 -1
  18. package/dist/cli/commands/init.command.d.ts +12 -14
  19. package/dist/cli/commands/init.command.d.ts.map +1 -1
  20. package/dist/cli/commands/init.command.js +278 -144
  21. package/dist/cli/commands/init.command.js.map +1 -1
  22. package/dist/cli/commands/optimize.command.d.ts +110 -0
  23. package/dist/cli/commands/optimize.command.d.ts.map +1 -0
  24. package/dist/cli/commands/optimize.command.js +497 -0
  25. package/dist/cli/commands/optimize.command.js.map +1 -0
  26. package/dist/cli/commands/report.command.d.ts +110 -0
  27. package/dist/cli/commands/report.command.d.ts.map +1 -0
  28. package/dist/cli/commands/report.command.js +532 -0
  29. package/dist/cli/commands/report.command.js.map +1 -0
  30. package/dist/cli/commands/review.command.d.ts +110 -0
  31. package/dist/cli/commands/review.command.d.ts.map +1 -0
  32. package/dist/cli/commands/review.command.js +520 -0
  33. package/dist/cli/commands/review.command.js.map +1 -0
  34. package/dist/cli/commands/score.command.d.ts +47 -0
  35. package/dist/cli/commands/score.command.d.ts.map +1 -0
  36. package/dist/cli/commands/score.command.js +261 -0
  37. package/dist/cli/commands/score.command.js.map +1 -0
  38. package/dist/cli/utils/index.d.ts +10 -0
  39. package/dist/cli/utils/index.d.ts.map +1 -0
  40. package/dist/cli/utils/index.js +10 -0
  41. package/dist/cli/utils/index.js.map +1 -0
  42. package/dist/cli/utils/output.d.ts +192 -0
  43. package/dist/cli/utils/output.d.ts.map +1 -0
  44. package/dist/cli/utils/output.js +411 -0
  45. package/dist/cli/utils/output.js.map +1 -0
  46. package/dist/cli/utils/progress.d.ts +204 -0
  47. package/dist/cli/utils/progress.d.ts.map +1 -0
  48. package/dist/cli/utils/progress.js +396 -0
  49. package/dist/cli/utils/progress.js.map +1 -0
  50. package/dist/core/types/index.d.ts +1 -0
  51. package/dist/core/types/index.d.ts.map +1 -1
  52. package/dist/core/types/project.types.d.ts +3 -3
  53. package/dist/core/types/project.types.d.ts.map +1 -1
  54. package/dist/core/types/scoring.types.d.ts +301 -0
  55. package/dist/core/types/scoring.types.d.ts.map +1 -0
  56. package/dist/core/types/scoring.types.js +8 -0
  57. package/dist/core/types/scoring.types.js.map +1 -0
  58. package/dist/services/detection/framework-detector.d.ts.map +1 -1
  59. package/dist/services/detection/framework-detector.js +74 -5
  60. package/dist/services/detection/framework-detector.js.map +1 -1
  61. package/dist/services/index.d.ts +12 -0
  62. package/dist/services/index.d.ts.map +1 -1
  63. package/dist/services/index.js +14 -0
  64. package/dist/services/index.js.map +1 -1
  65. package/dist/services/optimization/detectors/bug-detector.d.ts +82 -0
  66. package/dist/services/optimization/detectors/bug-detector.d.ts.map +1 -0
  67. package/dist/services/optimization/detectors/bug-detector.js +443 -0
  68. package/dist/services/optimization/detectors/bug-detector.js.map +1 -0
  69. package/dist/services/optimization/detectors/code-smell-detector.d.ts +108 -0
  70. package/dist/services/optimization/detectors/code-smell-detector.d.ts.map +1 -0
  71. package/dist/services/optimization/detectors/code-smell-detector.js +569 -0
  72. package/dist/services/optimization/detectors/code-smell-detector.js.map +1 -0
  73. package/dist/services/optimization/detectors/index.d.ts +7 -0
  74. package/dist/services/optimization/detectors/index.d.ts.map +1 -0
  75. package/dist/services/optimization/detectors/index.js +7 -0
  76. package/dist/services/optimization/detectors/index.js.map +1 -0
  77. package/dist/services/optimization/detectors/perf-detector.d.ts +80 -0
  78. package/dist/services/optimization/detectors/perf-detector.d.ts.map +1 -0
  79. package/dist/services/optimization/detectors/perf-detector.js +451 -0
  80. package/dist/services/optimization/detectors/perf-detector.js.map +1 -0
  81. package/dist/services/optimization/index.d.ts +61 -0
  82. package/dist/services/optimization/index.d.ts.map +1 -0
  83. package/dist/services/optimization/index.js +69 -0
  84. package/dist/services/optimization/index.js.map +1 -0
  85. package/dist/services/optimization/optimization.service.d.ts +65 -0
  86. package/dist/services/optimization/optimization.service.d.ts.map +1 -0
  87. package/dist/services/optimization/optimization.service.js +511 -0
  88. package/dist/services/optimization/optimization.service.js.map +1 -0
  89. package/dist/services/optimization/optimization.types.d.ts +343 -0
  90. package/dist/services/optimization/optimization.types.d.ts.map +1 -0
  91. package/dist/services/optimization/optimization.types.js +8 -0
  92. package/dist/services/optimization/optimization.types.js.map +1 -0
  93. package/dist/services/optimization/optimizers/code-optimizer.d.ts +87 -0
  94. package/dist/services/optimization/optimizers/code-optimizer.d.ts.map +1 -0
  95. package/dist/services/optimization/optimizers/code-optimizer.js +436 -0
  96. package/dist/services/optimization/optimizers/code-optimizer.js.map +1 -0
  97. package/dist/services/optimization/optimizers/index.d.ts +7 -0
  98. package/dist/services/optimization/optimizers/index.d.ts.map +1 -0
  99. package/dist/services/optimization/optimizers/index.js +7 -0
  100. package/dist/services/optimization/optimizers/index.js.map +1 -0
  101. package/dist/services/optimization/optimizers/perf-optimizer.d.ts +64 -0
  102. package/dist/services/optimization/optimizers/perf-optimizer.d.ts.map +1 -0
  103. package/dist/services/optimization/optimizers/perf-optimizer.js +330 -0
  104. package/dist/services/optimization/optimizers/perf-optimizer.js.map +1 -0
  105. package/dist/services/optimization/optimizers/refact-optimizer.d.ts +82 -0
  106. package/dist/services/optimization/optimizers/refact-optimizer.d.ts.map +1 -0
  107. package/dist/services/optimization/optimizers/refact-optimizer.js +354 -0
  108. package/dist/services/optimization/optimizers/refact-optimizer.js.map +1 -0
  109. package/dist/services/optimization/patterns/anti-patterns.d.ts +31 -0
  110. package/dist/services/optimization/patterns/anti-patterns.d.ts.map +1 -0
  111. package/dist/services/optimization/patterns/anti-patterns.js +501 -0
  112. package/dist/services/optimization/patterns/anti-patterns.js.map +1 -0
  113. package/dist/services/optimization/patterns/index.d.ts +5 -0
  114. package/dist/services/optimization/patterns/index.d.ts.map +1 -0
  115. package/dist/services/optimization/patterns/index.js +5 -0
  116. package/dist/services/optimization/patterns/index.js.map +1 -0
  117. package/dist/services/reporting/export/chart.exporter.d.ts +59 -0
  118. package/dist/services/reporting/export/chart.exporter.d.ts.map +1 -0
  119. package/dist/services/reporting/export/chart.exporter.js +350 -0
  120. package/dist/services/reporting/export/chart.exporter.js.map +1 -0
  121. package/dist/services/reporting/export/index.d.ts +9 -0
  122. package/dist/services/reporting/export/index.d.ts.map +1 -0
  123. package/dist/services/reporting/export/index.js +10 -0
  124. package/dist/services/reporting/export/index.js.map +1 -0
  125. package/dist/services/reporting/export/pdf.exporter.d.ts +133 -0
  126. package/dist/services/reporting/export/pdf.exporter.d.ts.map +1 -0
  127. package/dist/services/reporting/export/pdf.exporter.js +270 -0
  128. package/dist/services/reporting/export/pdf.exporter.js.map +1 -0
  129. package/dist/services/reporting/history.service.d.ts +93 -0
  130. package/dist/services/reporting/history.service.d.ts.map +1 -0
  131. package/dist/services/reporting/history.service.js +285 -0
  132. package/dist/services/reporting/history.service.js.map +1 -0
  133. package/dist/services/reporting/index.d.ts +15 -0
  134. package/dist/services/reporting/index.d.ts.map +1 -0
  135. package/dist/services/reporting/index.js +16 -0
  136. package/dist/services/reporting/index.js.map +1 -0
  137. package/dist/services/reporting/report.service.d.ts +102 -0
  138. package/dist/services/reporting/report.service.d.ts.map +1 -0
  139. package/dist/services/reporting/report.service.js +240 -0
  140. package/dist/services/reporting/report.service.js.map +1 -0
  141. package/dist/services/reporting/reporting.types.d.ts +329 -0
  142. package/dist/services/reporting/reporting.types.d.ts.map +1 -0
  143. package/dist/services/reporting/reporting.types.js +8 -0
  144. package/dist/services/reporting/reporting.types.js.map +1 -0
  145. package/dist/services/reporting/templates/html.template.d.ts +81 -0
  146. package/dist/services/reporting/templates/html.template.d.ts.map +1 -0
  147. package/dist/services/reporting/templates/html.template.js +741 -0
  148. package/dist/services/reporting/templates/html.template.js.map +1 -0
  149. package/dist/services/reporting/templates/json.template.d.ts +85 -0
  150. package/dist/services/reporting/templates/json.template.d.ts.map +1 -0
  151. package/dist/services/reporting/templates/json.template.js +308 -0
  152. package/dist/services/reporting/templates/json.template.js.map +1 -0
  153. package/dist/services/reporting/templates/markdown.template.d.ts +69 -0
  154. package/dist/services/reporting/templates/markdown.template.d.ts.map +1 -0
  155. package/dist/services/reporting/templates/markdown.template.js +311 -0
  156. package/dist/services/reporting/templates/markdown.template.js.map +1 -0
  157. package/dist/services/reporting/trend-analyzer.d.ts +73 -0
  158. package/dist/services/reporting/trend-analyzer.d.ts.map +1 -0
  159. package/dist/services/reporting/trend-analyzer.js +291 -0
  160. package/dist/services/reporting/trend-analyzer.js.map +1 -0
  161. package/dist/services/review/analyzers/dependency-analyzer.d.ts +87 -0
  162. package/dist/services/review/analyzers/dependency-analyzer.d.ts.map +1 -0
  163. package/dist/services/review/analyzers/dependency-analyzer.js +458 -0
  164. package/dist/services/review/analyzers/dependency-analyzer.js.map +1 -0
  165. package/dist/services/review/analyzers/index.d.ts +13 -0
  166. package/dist/services/review/analyzers/index.d.ts.map +1 -0
  167. package/dist/services/review/analyzers/index.js +13 -0
  168. package/dist/services/review/analyzers/index.js.map +1 -0
  169. package/dist/services/review/analyzers/nestjs-analyzer.d.ts +210 -0
  170. package/dist/services/review/analyzers/nestjs-analyzer.d.ts.map +1 -0
  171. package/dist/services/review/analyzers/nestjs-analyzer.js +571 -0
  172. package/dist/services/review/analyzers/nestjs-analyzer.js.map +1 -0
  173. package/dist/services/review/analyzers/performance-analyzer.d.ts +91 -0
  174. package/dist/services/review/analyzers/performance-analyzer.d.ts.map +1 -0
  175. package/dist/services/review/analyzers/performance-analyzer.js +589 -0
  176. package/dist/services/review/analyzers/performance-analyzer.js.map +1 -0
  177. package/dist/services/review/analyzers/security-analyzer.d.ts +96 -0
  178. package/dist/services/review/analyzers/security-analyzer.d.ts.map +1 -0
  179. package/dist/services/review/analyzers/security-analyzer.js +512 -0
  180. package/dist/services/review/analyzers/security-analyzer.js.map +1 -0
  181. package/dist/services/review/analyzers/static-analyzer.d.ts +90 -0
  182. package/dist/services/review/analyzers/static-analyzer.d.ts.map +1 -0
  183. package/dist/services/review/analyzers/static-analyzer.js +423 -0
  184. package/dist/services/review/analyzers/static-analyzer.js.map +1 -0
  185. package/dist/services/review/fixers/auto-fixer.d.ts +94 -0
  186. package/dist/services/review/fixers/auto-fixer.d.ts.map +1 -0
  187. package/dist/services/review/fixers/auto-fixer.js +404 -0
  188. package/dist/services/review/fixers/auto-fixer.js.map +1 -0
  189. package/dist/services/review/fixers/index.d.ts +11 -0
  190. package/dist/services/review/fixers/index.d.ts.map +1 -0
  191. package/dist/services/review/fixers/index.js +11 -0
  192. package/dist/services/review/fixers/index.js.map +1 -0
  193. package/dist/services/review/fixers/refactor-suggester.d.ts +100 -0
  194. package/dist/services/review/fixers/refactor-suggester.d.ts.map +1 -0
  195. package/dist/services/review/fixers/refactor-suggester.js +555 -0
  196. package/dist/services/review/fixers/refactor-suggester.js.map +1 -0
  197. package/dist/services/review/fixers/test-generator.d.ts +99 -0
  198. package/dist/services/review/fixers/test-generator.d.ts.map +1 -0
  199. package/dist/services/review/fixers/test-generator.js +458 -0
  200. package/dist/services/review/fixers/test-generator.js.map +1 -0
  201. package/dist/services/review/index.d.ts +14 -0
  202. package/dist/services/review/index.d.ts.map +1 -0
  203. package/dist/services/review/index.js +14 -0
  204. package/dist/services/review/index.js.map +1 -0
  205. package/dist/services/review/reporters/fix-reporter.d.ts +67 -0
  206. package/dist/services/review/reporters/fix-reporter.d.ts.map +1 -0
  207. package/dist/services/review/reporters/fix-reporter.js +437 -0
  208. package/dist/services/review/reporters/fix-reporter.js.map +1 -0
  209. package/dist/services/review/reporters/index.d.ts +10 -0
  210. package/dist/services/review/reporters/index.d.ts.map +1 -0
  211. package/dist/services/review/reporters/index.js +10 -0
  212. package/dist/services/review/reporters/index.js.map +1 -0
  213. package/dist/services/review/reporters/score-reporter.d.ts +84 -0
  214. package/dist/services/review/reporters/score-reporter.d.ts.map +1 -0
  215. package/dist/services/review/reporters/score-reporter.js +560 -0
  216. package/dist/services/review/reporters/score-reporter.js.map +1 -0
  217. package/dist/services/review/review.service.d.ts +129 -0
  218. package/dist/services/review/review.service.d.ts.map +1 -0
  219. package/dist/services/review/review.service.js +396 -0
  220. package/dist/services/review/review.service.js.map +1 -0
  221. package/dist/services/review/review.types.d.ts +443 -0
  222. package/dist/services/review/review.types.d.ts.map +1 -0
  223. package/dist/services/review/review.types.js +11 -0
  224. package/dist/services/review/review.types.js.map +1 -0
  225. package/dist/services/scoring/dimensions/accessibility.analyzer.d.ts +53 -0
  226. package/dist/services/scoring/dimensions/accessibility.analyzer.d.ts.map +1 -0
  227. package/dist/services/scoring/dimensions/accessibility.analyzer.js +260 -0
  228. package/dist/services/scoring/dimensions/accessibility.analyzer.js.map +1 -0
  229. package/dist/services/scoring/dimensions/backend-logic.analyzer.d.ts +138 -0
  230. package/dist/services/scoring/dimensions/backend-logic.analyzer.d.ts.map +1 -0
  231. package/dist/services/scoring/dimensions/backend-logic.analyzer.js +713 -0
  232. package/dist/services/scoring/dimensions/backend-logic.analyzer.js.map +1 -0
  233. package/dist/services/scoring/dimensions/business-logic.analyzer.d.ts +142 -0
  234. package/dist/services/scoring/dimensions/business-logic.analyzer.d.ts.map +1 -0
  235. package/dist/services/scoring/dimensions/business-logic.analyzer.js +747 -0
  236. package/dist/services/scoring/dimensions/business-logic.analyzer.js.map +1 -0
  237. package/dist/services/scoring/dimensions/code-quality.analyzer.d.ts +142 -0
  238. package/dist/services/scoring/dimensions/code-quality.analyzer.d.ts.map +1 -0
  239. package/dist/services/scoring/dimensions/code-quality.analyzer.js +685 -0
  240. package/dist/services/scoring/dimensions/code-quality.analyzer.js.map +1 -0
  241. package/dist/services/scoring/dimensions/index.d.ts +18 -0
  242. package/dist/services/scoring/dimensions/index.d.ts.map +1 -0
  243. package/dist/services/scoring/dimensions/index.js +27 -0
  244. package/dist/services/scoring/dimensions/index.js.map +1 -0
  245. package/dist/services/scoring/dimensions/performance.analyzer.d.ts +125 -0
  246. package/dist/services/scoring/dimensions/performance.analyzer.d.ts.map +1 -0
  247. package/dist/services/scoring/dimensions/performance.analyzer.js +615 -0
  248. package/dist/services/scoring/dimensions/performance.analyzer.js.map +1 -0
  249. package/dist/services/scoring/dimensions/security.analyzer.d.ts +53 -0
  250. package/dist/services/scoring/dimensions/security.analyzer.d.ts.map +1 -0
  251. package/dist/services/scoring/dimensions/security.analyzer.js +327 -0
  252. package/dist/services/scoring/dimensions/security.analyzer.js.map +1 -0
  253. package/dist/services/scoring/dimensions/seo.analyzer.d.ts +77 -0
  254. package/dist/services/scoring/dimensions/seo.analyzer.d.ts.map +1 -0
  255. package/dist/services/scoring/dimensions/seo.analyzer.js +502 -0
  256. package/dist/services/scoring/dimensions/seo.analyzer.js.map +1 -0
  257. package/dist/services/scoring/dimensions/test-coverage.analyzer.d.ts +106 -0
  258. package/dist/services/scoring/dimensions/test-coverage.analyzer.d.ts.map +1 -0
  259. package/dist/services/scoring/dimensions/test-coverage.analyzer.js +496 -0
  260. package/dist/services/scoring/dimensions/test-coverage.analyzer.js.map +1 -0
  261. package/dist/services/scoring/dimensions/ui-ux.analyzer.d.ts +126 -0
  262. package/dist/services/scoring/dimensions/ui-ux.analyzer.d.ts.map +1 -0
  263. package/dist/services/scoring/dimensions/ui-ux.analyzer.js +665 -0
  264. package/dist/services/scoring/dimensions/ui-ux.analyzer.js.map +1 -0
  265. package/dist/services/scoring/index.d.ts +10 -0
  266. package/dist/services/scoring/index.d.ts.map +1 -0
  267. package/dist/services/scoring/index.js +10 -0
  268. package/dist/services/scoring/index.js.map +1 -0
  269. package/dist/services/scoring/scoring-service.d.ts +222 -0
  270. package/dist/services/scoring/scoring-service.d.ts.map +1 -0
  271. package/dist/services/scoring/scoring-service.js +636 -0
  272. package/dist/services/scoring/scoring-service.js.map +1 -0
  273. package/package.json +11 -3
  274. package/templates/README.md +183 -0
  275. package/templates/nestjs/controller.spec.ts +203 -0
  276. package/templates/nestjs/e2e/api.e2e-spec.ts +451 -0
  277. package/templates/nestjs/e2e/auth.e2e-spec.ts +533 -0
  278. package/templates/nestjs/fixtures/test-module.ts +311 -0
  279. package/templates/nestjs/guard.spec.ts +314 -0
  280. package/templates/nestjs/interceptor.spec.ts +458 -0
  281. package/templates/nestjs/module.spec.ts +173 -0
  282. package/templates/nestjs/pipe.spec.ts +474 -0
  283. package/templates/nestjs/service.spec.ts +296 -0
  284. package/templates/rust/Cargo.toml +72 -0
  285. package/templates/rust/actix-controller.test.rs +114 -0
  286. package/templates/rust/axum-handler.test.rs +117 -0
  287. package/templates/rust/integration.test.rs +63 -0
  288. package/templates/rust/rocket-route.test.rs +106 -0
  289. package/templates/rust/unit.test.rs +38 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/reporting/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,UAAU,EACV,MAAM,EACN,cAAc,EACd,WAAW,EACX,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Reporting Service Barrel Export
3
+ *
4
+ * Central exports for the reporting and history system.
5
+ */
6
+ // Services
7
+ export { ReportService } from './report.service.js';
8
+ export { HistoryService } from './history.service.js';
9
+ export { TrendAnalyzer } from './trend-analyzer.js';
10
+ // Templates
11
+ export { HtmlTemplate } from './templates/html.template.js';
12
+ export { MarkdownTemplate } from './templates/markdown.template.js';
13
+ export { JsonTemplate } from './templates/json.template.js';
14
+ // Export
15
+ export { ChartExporter, PdfExporter, PrintPdfExporter } from './export/index.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/reporting/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Report Service
3
+ *
4
+ * Main service for generating reports in various formats.
5
+ */
6
+ import type { Report, ReportFormat, ExtendedProjectScore, ReportOptions, TrendAnalysis, TestResultForReport } from './reporting.types.js';
7
+ /**
8
+ * Report service for generating code quality reports
9
+ */
10
+ export declare class ReportService {
11
+ private historyService;
12
+ constructor();
13
+ /**
14
+ * Generate a report in the specified format
15
+ *
16
+ * @param score - Project score to report
17
+ * @param format - Report format
18
+ * @param options - Report generation options
19
+ * @returns Generated report
20
+ */
21
+ generateReport(score: ExtendedProjectScore, format: ReportFormat, options?: ReportOptions): Promise<Report>;
22
+ /**
23
+ * Generate an HTML report
24
+ *
25
+ * @param score - Project score to report
26
+ * @param trend - Optional trend analysis
27
+ * @param options - Report options
28
+ * @returns HTML string
29
+ */
30
+ generateHtmlReport(score: ExtendedProjectScore, trend?: TrendAnalysis, options?: ReportOptions): Promise<string>;
31
+ /**
32
+ * Generate a Markdown report
33
+ *
34
+ * @param score - Project score to report
35
+ * @param trend - Optional trend analysis
36
+ * @returns Markdown string
37
+ */
38
+ generateMarkdownReport(score: ExtendedProjectScore, trend?: TrendAnalysis): Promise<string>;
39
+ /**
40
+ * Generate a JSON report
41
+ *
42
+ * @param score - Project score to report
43
+ * @param trend - Optional trend analysis
44
+ * @returns JSON string
45
+ */
46
+ generateJsonReport(score: ExtendedProjectScore, trend?: TrendAnalysis): Promise<string>;
47
+ /**
48
+ * Generate a JUnit XML report
49
+ *
50
+ * @param results - Test results to convert
51
+ * @returns JUnit XML string
52
+ */
53
+ generateJUnitReport(results: TestResultForReport[]): Promise<string>;
54
+ /**
55
+ * Generate a summary report (compact format)
56
+ *
57
+ * @param score - Project score to summarize
58
+ * @returns Summary string
59
+ */
60
+ generateSummary(score: ExtendedProjectScore): Promise<string>;
61
+ /**
62
+ * Save report to file
63
+ *
64
+ * @param report - Report to save
65
+ * @param outputPath - File path to save to
66
+ * @returns Promise resolving when saved
67
+ */
68
+ saveReport(report: Report, outputPath: string): Promise<void>;
69
+ /**
70
+ * Generate report with automatic file naming
71
+ *
72
+ * @param score - Project score to report
73
+ * @param format - Report format
74
+ * @param outputDir - Output directory
75
+ * @param options - Report options
76
+ * @returns Path to generated report
77
+ */
78
+ generateReportToFile(score: ExtendedProjectScore, format: ReportFormat, outputDir: string, options?: ReportOptions): Promise<string>;
79
+ /**
80
+ * Generate multiple formats at once
81
+ *
82
+ * @param score - Project score to report
83
+ * @param formats - Array of formats to generate
84
+ * @param outputDir - Output directory
85
+ * @param options - Report options
86
+ * @returns Map of format to file path
87
+ */
88
+ generateMultipleReports(score: ExtendedProjectScore, formats: ReportFormat[], outputDir: string, options?: ReportOptions): Promise<Map<ReportFormat, string>>;
89
+ /**
90
+ * Get file extension for format
91
+ */
92
+ private getFileExtension;
93
+ /**
94
+ * Generate JUnit XML for a single test case
95
+ */
96
+ private generateJUnitTestCase;
97
+ /**
98
+ * Escape XML special characters
99
+ */
100
+ private escapeXml;
101
+ }
102
+ //# sourceMappingURL=report.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.service.d.ts","sourceRoot":"","sources":["../../../src/services/reporting/report.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAO9B;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,cAAc,CAAiB;;IAMvC;;;;;;;OAOG;IACG,cAAc,CAClB,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC;IAuClB;;;;;;;OAOG;IACG,kBAAkB,CACtB,KAAK,EAAE,oBAAoB,EAC3B,KAAK,CAAC,EAAE,aAAa,EACrB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC;IAKlB;;;;;;OAMG;IACG,sBAAsB,CAC1B,KAAK,EAAE,oBAAoB,EAC3B,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;;OAMG;IACG,kBAAkB,CACtB,KAAK,EAAE,oBAAoB,EAC3B,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;OAKG;IACG,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAqC1E;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAInE;;;;;;OAMG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnE;;;;;;;;OAQG;IACG,oBAAoB,CACxB,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC;IAelB;;;;;;;;OAQG;IACG,uBAAuB,CAC3B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAerC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,SAAS;CAQlB"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Report Service
3
+ *
4
+ * Main service for generating reports in various formats.
5
+ */
6
+ import { HtmlTemplate } from './templates/html.template.js';
7
+ import { MarkdownTemplate } from './templates/markdown.template.js';
8
+ import { JsonTemplate } from './templates/json.template.js';
9
+ import { HistoryService } from './history.service.js';
10
+ /**
11
+ * Report service for generating code quality reports
12
+ */
13
+ export class ReportService {
14
+ historyService;
15
+ constructor() {
16
+ this.historyService = new HistoryService();
17
+ }
18
+ /**
19
+ * Generate a report in the specified format
20
+ *
21
+ * @param score - Project score to report
22
+ * @param format - Report format
23
+ * @param options - Report generation options
24
+ * @returns Generated report
25
+ */
26
+ async generateReport(score, format, options = {}) {
27
+ const trend = options.includeTrend
28
+ ? await this.historyService.getFullAnalysis(score.projectPath)
29
+ : undefined;
30
+ let content;
31
+ switch (format) {
32
+ case 'html':
33
+ content = await this.generateHtmlReport(score, trend, options);
34
+ break;
35
+ case 'markdown':
36
+ content = await this.generateMarkdownReport(score, trend);
37
+ break;
38
+ case 'json':
39
+ content = await this.generateJsonReport(score, trend);
40
+ break;
41
+ case 'junit':
42
+ content = await this.generateJUnitReport(score.issues.map(i => ({
43
+ name: i.message,
44
+ file: i.file || 'unknown',
45
+ status: i.severity === 'critical' || i.severity === 'high' ? 'failed' : 'passed',
46
+ duration: 0,
47
+ })));
48
+ break;
49
+ default:
50
+ throw new Error(`Unsupported report format: ${format}`);
51
+ }
52
+ return {
53
+ format,
54
+ content,
55
+ timestamp: new Date(),
56
+ projectPath: score.projectPath,
57
+ score,
58
+ trend,
59
+ };
60
+ }
61
+ /**
62
+ * Generate an HTML report
63
+ *
64
+ * @param score - Project score to report
65
+ * @param trend - Optional trend analysis
66
+ * @param options - Report options
67
+ * @returns HTML string
68
+ */
69
+ async generateHtmlReport(score, trend, options = {}) {
70
+ const theme = options.theme ?? 'auto';
71
+ return HtmlTemplate.generate(score, trend, theme);
72
+ }
73
+ /**
74
+ * Generate a Markdown report
75
+ *
76
+ * @param score - Project score to report
77
+ * @param trend - Optional trend analysis
78
+ * @returns Markdown string
79
+ */
80
+ async generateMarkdownReport(score, trend) {
81
+ return MarkdownTemplate.generate(score, trend);
82
+ }
83
+ /**
84
+ * Generate a JSON report
85
+ *
86
+ * @param score - Project score to report
87
+ * @param trend - Optional trend analysis
88
+ * @returns JSON string
89
+ */
90
+ async generateJsonReport(score, trend) {
91
+ return JsonTemplate.generate(score, trend);
92
+ }
93
+ /**
94
+ * Generate a JUnit XML report
95
+ *
96
+ * @param results - Test results to convert
97
+ * @returns JUnit XML string
98
+ */
99
+ async generateJUnitReport(results) {
100
+ const now = new Date();
101
+ const total = results.length;
102
+ const failures = results.filter(r => r.status === 'failed').length;
103
+ const skipped = results.filter(r => r.status === 'skipped').length;
104
+ const errors = results.filter(r => r.status === 'timed-out').length;
105
+ // Group by file (test suite)
106
+ const suites = new Map();
107
+ for (const result of results) {
108
+ const file = result.file || 'default';
109
+ if (!suites.has(file)) {
110
+ suites.set(file, []);
111
+ }
112
+ suites.get(file).push(result);
113
+ }
114
+ const xmlLines = [
115
+ '<?xml version="1.0" encoding="UTF-8"?>',
116
+ `<testsuites name="Daemon" tests="${total}" failures="${failures}" errors="${errors}" skipped="${skipped}" time="${results.reduce((sum, r) => sum + r.duration, 0) / 1000}">`,
117
+ ];
118
+ // Add timezone attribute
119
+ xmlLines.push(` <testsuite name="Daemon" id="0" tests="${total}" failures="${failures}" errors="${errors}" skipped="${skipped}" time="${results.reduce((sum, r) => sum + r.duration, 0) / 1000}" timestamp="${now.toISOString()}">`);
120
+ // Generate test cases
121
+ for (const result of results) {
122
+ const testCase = this.generateJUnitTestCase(result);
123
+ xmlLines.push(` ${testCase}`);
124
+ }
125
+ xmlLines.push(' </testsuite>');
126
+ xmlLines.push('</testsuites>');
127
+ return xmlLines.join('\n');
128
+ }
129
+ /**
130
+ * Generate a summary report (compact format)
131
+ *
132
+ * @param score - Project score to summarize
133
+ * @returns Summary string
134
+ */
135
+ async generateSummary(score) {
136
+ return MarkdownTemplate.generateSummary(score);
137
+ }
138
+ /**
139
+ * Save report to file
140
+ *
141
+ * @param report - Report to save
142
+ * @param outputPath - File path to save to
143
+ * @returns Promise resolving when saved
144
+ */
145
+ async saveReport(report, outputPath) {
146
+ const { promises: fs } = await import('fs');
147
+ const { dirname } = await import('path');
148
+ // Ensure directory exists
149
+ await fs.mkdir(dirname(outputPath), { recursive: true });
150
+ // Write report
151
+ await fs.writeFile(outputPath, report.content, 'utf-8');
152
+ }
153
+ /**
154
+ * Generate report with automatic file naming
155
+ *
156
+ * @param score - Project score to report
157
+ * @param format - Report format
158
+ * @param outputDir - Output directory
159
+ * @param options - Report options
160
+ * @returns Path to generated report
161
+ */
162
+ async generateReportToFile(score, format, outputDir, options = {}) {
163
+ const report = await this.generateReport(score, format, options);
164
+ const extension = this.getFileExtension(format);
165
+ const timestamp = score.timestamp.toISOString().replace(/[:.]/g, '-');
166
+ const filename = options.title
167
+ ? `${options.title.replace(/\s+/g, '-').toLowerCase()}-${timestamp}.${extension}`
168
+ : `daemon-report-${timestamp}.${extension}`;
169
+ const outputPath = `${outputDir}/${filename}`;
170
+ await this.saveReport(report, outputPath);
171
+ return outputPath;
172
+ }
173
+ /**
174
+ * Generate multiple formats at once
175
+ *
176
+ * @param score - Project score to report
177
+ * @param formats - Array of formats to generate
178
+ * @param outputDir - Output directory
179
+ * @param options - Report options
180
+ * @returns Map of format to file path
181
+ */
182
+ async generateMultipleReports(score, formats, outputDir, options = {}) {
183
+ const results = new Map();
184
+ for (const format of formats) {
185
+ try {
186
+ const path = await this.generateReportToFile(score, format, outputDir, options);
187
+ results.set(format, path);
188
+ }
189
+ catch (error) {
190
+ console.error(`Failed to generate ${format} report:`, error);
191
+ }
192
+ }
193
+ return results;
194
+ }
195
+ /**
196
+ * Get file extension for format
197
+ */
198
+ getFileExtension(format) {
199
+ const extensions = {
200
+ html: 'html',
201
+ markdown: 'md',
202
+ json: 'json',
203
+ junit: 'xml',
204
+ };
205
+ return extensions[format];
206
+ }
207
+ /**
208
+ * Generate JUnit XML for a single test case
209
+ */
210
+ generateJUnitTestCase(result) {
211
+ const escapedName = this.escapeXml(result.name);
212
+ const className = result.file ? this.escapeXml(result.file) : 'Daemon.Test';
213
+ let testCase = `<testcase name="${escapedName}" classname="${className}" time="${result.duration / 1000}">`;
214
+ if (result.status === 'failed' || result.status === 'timed-out') {
215
+ const errorType = result.status === 'timed-out' ? 'error' : 'failure';
216
+ const message = this.escapeXml(result.error || result.name || 'Test failed');
217
+ const text = this.escapeXml(result.stack || result.error || result.name || '');
218
+ testCase += `\n <${errorType} message="${message}">`;
219
+ testCase += `\n <![CDATA[${text}]]>`;
220
+ testCase += `\n </${errorType}>`;
221
+ }
222
+ else if (result.status === 'skipped') {
223
+ testCase += `\n <skipped/>`;
224
+ }
225
+ testCase += '\n </testcase>';
226
+ return testCase;
227
+ }
228
+ /**
229
+ * Escape XML special characters
230
+ */
231
+ escapeXml(str) {
232
+ return str
233
+ .replace(/&/g, '&amp;')
234
+ .replace(/</g, '&lt;')
235
+ .replace(/>/g, '&gt;')
236
+ .replace(/"/g, '&quot;')
237
+ .replace(/'/g, '&apos;');
238
+ }
239
+ }
240
+ //# sourceMappingURL=report.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.service.js","sourceRoot":"","sources":["../../../src/services/reporting/report.service.ts"],"names":[],"mappings":"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"}