@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":"optimization.service.js","sourceRoot":"","sources":["../../../src/services/optimization/optimization.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Optimization Types
3
+ *
4
+ * Types for the optimization service including bug detection,
5
+ * performance analysis, and code smell detection.
6
+ */
7
+ /**
8
+ * Bug types that can be detected
9
+ */
10
+ export type BugType = 'memory-leak' | 'race-condition' | 'null-reference' | 'infinite-loop' | 'missing-error-handling' | 'sql-injection' | 'xss' | 'missing-validation' | 'unused-variable' | 'dead-code';
11
+ /**
12
+ * Severity levels for bugs and issues
13
+ */
14
+ export type Severity = 'critical' | 'high' | 'medium' | 'low';
15
+ /**
16
+ * Performance issue categories
17
+ */
18
+ export type PerfCategory = 'react-rendering' | 'api-efficiency' | 'database-queries' | 'bundle-size' | 'asset-optimization' | 'css-optimization' | 'memory-usage' | 'network-requests';
19
+ /**
20
+ * Code smell types
21
+ */
22
+ export type CodeSmellType = 'long-function' | 'deep-nesting' | 'magic-number' | 'god-object' | 'feature-envy' | 'inappropriate-intimacy' | 'duplicated-code' | 'complex-condition' | 'parameter-hell' | 'shotgun-surgery';
23
+ /**
24
+ * File location in the project
25
+ */
26
+ export interface Location {
27
+ /** File path relative to project root */
28
+ filePath: string;
29
+ /** Line number (1-based) */
30
+ line: number;
31
+ /** Column number (1-based) */
32
+ column?: number;
33
+ /** End line for multi-line issues */
34
+ endLine?: number;
35
+ /** End column for multi-line issues */
36
+ endColumn?: number;
37
+ }
38
+ /**
39
+ * A detected bug in the codebase
40
+ */
41
+ export interface DetectedBug {
42
+ /** Unique identifier for this bug */
43
+ id: string;
44
+ /** Type of bug */
45
+ type: BugType;
46
+ /** Severity level */
47
+ severity: Severity;
48
+ /** Human-readable description */
49
+ description: string;
50
+ /** Location in code */
51
+ location: Location;
52
+ /** Whether this bug can be auto-fixed */
53
+ fixable: boolean;
54
+ /** Suggested fix description or code */
55
+ suggestedFix: string;
56
+ /** Code snippet showing the issue */
57
+ codeSnippet?: string;
58
+ /** Related file paths (e.g., imports) */
59
+ relatedFiles?: string[];
60
+ }
61
+ /**
62
+ * A detected performance issue
63
+ */
64
+ export interface PerformanceIssue {
65
+ /** Unique identifier */
66
+ id: string;
67
+ /** Category of performance issue */
68
+ category: PerfCategory;
69
+ /** Impact level */
70
+ impact: Severity;
71
+ /** Human-readable description */
72
+ description: string;
73
+ /** Location in code */
74
+ location: Location;
75
+ /** Current metrics (if available) */
76
+ currentMetrics: Metric[];
77
+ /** Expected improvement description */
78
+ expectedImprovement: string;
79
+ /** Estimated performance gain percentage */
80
+ estimatedGain?: number;
81
+ }
82
+ /**
83
+ * A metric value for performance analysis
84
+ */
85
+ export interface Metric {
86
+ /** Metric name */
87
+ name: string;
88
+ /** Current value */
89
+ value: number;
90
+ /** Unit of measurement */
91
+ unit: string;
92
+ /** Target/optimal value */
93
+ target?: number;
94
+ }
95
+ /**
96
+ * A detected code smell
97
+ */
98
+ export interface CodeSmell {
99
+ /** Unique identifier */
100
+ id: string;
101
+ /** Type of code smell */
102
+ type: CodeSmellType;
103
+ /** Severity level */
104
+ severity: Severity;
105
+ /** Human-readable description */
106
+ description: string;
107
+ /** Location in code */
108
+ location: Location;
109
+ /** Why this is a problem */
110
+ reason: string;
111
+ /** Suggested refactoring */
112
+ suggestion: string;
113
+ /** Complexity score if applicable */
114
+ complexityScore?: number;
115
+ }
116
+ /**
117
+ * Complete optimization report for a project
118
+ */
119
+ export interface OptimizationReport {
120
+ /** Project path that was analyzed */
121
+ projectPath: string;
122
+ /** When the analysis was performed */
123
+ timestamp: Date;
124
+ /** All detected bugs */
125
+ bugs: DetectedBug[];
126
+ /** All performance issues */
127
+ performanceIssues: PerformanceIssue[];
128
+ /** All code smells */
129
+ codeSmells: CodeSmell[];
130
+ /** Total potential impact score (0-100) */
131
+ totalPotentialImpact: number;
132
+ /** Estimated time to fix all issues */
133
+ estimatedFixTime?: string;
134
+ /** Framework detected during analysis */
135
+ framework?: string;
136
+ /** Files analyzed */
137
+ filesAnalyzed: number;
138
+ /** Total lines of code */
139
+ linesOfCode: number;
140
+ }
141
+ /**
142
+ * An applied optimization change
143
+ */
144
+ export interface AppliedOptimization {
145
+ /** Unique identifier */
146
+ id: string;
147
+ /** Type of optimization applied */
148
+ type: 'bug-fix' | 'performance' | 'refactoring';
149
+ /** Description of what was done */
150
+ description: string;
151
+ /** Files that were modified */
152
+ modifiedFiles: string[];
153
+ /** Original code snippet */
154
+ originalCode: string;
155
+ /** Fixed code snippet */
156
+ fixedCode: string;
157
+ /** Location of change */
158
+ location: Location;
159
+ }
160
+ /**
161
+ * A suggestion that was not automatically applied
162
+ */
163
+ export interface Suggestion {
164
+ /** Unique identifier */
165
+ id: string;
166
+ /** Type of suggestion */
167
+ type: 'bug-fix' | 'performance' | 'refactoring';
168
+ /** Description */
169
+ description: string;
170
+ /** Why it couldn't be auto-applied */
171
+ reason: string;
172
+ /** Manual fix instructions */
173
+ manualFix: string;
174
+ /** Location */
175
+ location: Location;
176
+ }
177
+ /**
178
+ * Result of an optimization operation
179
+ */
180
+ export interface OptimizationResult {
181
+ /** The analysis report */
182
+ report: OptimizationReport;
183
+ /** Optimizations that were successfully applied */
184
+ appliedOptimizations: AppliedOptimization[];
185
+ /** Suggestions that need manual intervention */
186
+ remainingSuggestions: Suggestion[];
187
+ /** Estimated overall improvement */
188
+ estimatedImprovement: string;
189
+ /** Whether any errors occurred during optimization */
190
+ errors: OptimizationError[];
191
+ }
192
+ /**
193
+ * An error that occurred during optimization
194
+ */
195
+ export interface OptimizationError {
196
+ /** What was being optimized */
197
+ target: string;
198
+ /** Error message */
199
+ message: string;
200
+ /** Whether this is fatal */
201
+ fatal: boolean;
202
+ }
203
+ /**
204
+ * Options for detection operations
205
+ */
206
+ export interface DetectionOptions {
207
+ /** Which bug types to detect (all if empty) */
208
+ bugTypes?: BugType[];
209
+ /** Which performance categories to analyze */
210
+ perfCategories?: PerfCategory[];
211
+ /** Which code smells to detect */
212
+ codeSmellTypes?: CodeSmellType[];
213
+ /** Maximum number of issues to return per category */
214
+ maxIssues?: number;
215
+ /** Minimum severity level to report */
216
+ minSeverity?: Severity;
217
+ /** Whether to include code snippets */
218
+ includeSnippets?: boolean;
219
+ /** File patterns to include */
220
+ includePatterns?: string[];
221
+ /** File patterns to exclude */
222
+ excludePatterns?: string[];
223
+ }
224
+ /**
225
+ * Options for optimization operations
226
+ */
227
+ export interface OptimizationOptions {
228
+ /** Whether to apply fixes automatically */
229
+ autoFix?: boolean;
230
+ /** Create backup before modifying */
231
+ createBackup?: boolean;
232
+ /** Maximum number of fixes to apply */
233
+ maxFixes?: number;
234
+ /** Dry run - don't actually modify files */
235
+ dryRun?: boolean;
236
+ /** Only fix issues with specific severity or higher */
237
+ minSeverity?: Severity;
238
+ /** Whether to skip git-tracked files check */
239
+ skipGitCheck?: boolean;
240
+ }
241
+ /**
242
+ * Combined options for detectAndOptimize
243
+ */
244
+ export interface DetectAndOptimizeOptions extends DetectionOptions, OptimizationOptions {
245
+ /** Whether to run detection first */
246
+ detectOnly?: boolean;
247
+ /** Whether to generate report only */
248
+ reportOnly?: boolean;
249
+ }
250
+ /**
251
+ * Priority score for an issue
252
+ */
253
+ export interface PriorityScore {
254
+ /** Overall priority (0-100) */
255
+ score: number;
256
+ /** Severity factor */
257
+ severityFactor: number;
258
+ /** Impact factor */
259
+ impactFactor: number;
260
+ /** Effort factor (lower is easier) */
261
+ effortFactor: number;
262
+ }
263
+ /**
264
+ * Anti-pattern definition
265
+ */
266
+ export interface AntiPattern {
267
+ /** Pattern identifier */
268
+ id: string;
269
+ /** Pattern name */
270
+ name: string;
271
+ /** Category (bug/perf/smell) */
272
+ category: 'bug' | 'performance' | 'code-smell';
273
+ /** Description */
274
+ description: string;
275
+ /** Default severity */
276
+ severity: Severity;
277
+ /** Detection pattern (regex or AST pattern) */
278
+ pattern: string | RegExp | PatternMatcher;
279
+ /** Recommended fix */
280
+ fix: string;
281
+ /** Example of the anti-pattern */
282
+ badExample: string;
283
+ /** Example of the correct pattern */
284
+ goodExample: string;
285
+ /** Links to resources */
286
+ resources?: string[];
287
+ }
288
+ /**
289
+ * Pattern matcher function for AST-based detection
290
+ */
291
+ export interface PatternMatcher {
292
+ /** Match function */
293
+ match: (code: string, language: string) => boolean;
294
+ /** Extract function to get location */
295
+ extract?: (code: string, language: string) => Location[];
296
+ }
297
+ /**
298
+ * File analysis result
299
+ */
300
+ export interface FileAnalysis {
301
+ /** File path */
302
+ filePath: string;
303
+ /** Language detected */
304
+ language: string;
305
+ /** Lines of code */
306
+ linesOfCode: number;
307
+ /** Bugs found */
308
+ bugs: DetectedBug[];
309
+ /** Performance issues found */
310
+ performanceIssues: PerformanceIssue[];
311
+ /** Code smells found */
312
+ codeSmells: CodeSmell[];
313
+ /** Overall file health score (0-100) */
314
+ healthScore: number;
315
+ }
316
+ /**
317
+ * Statistics for the optimization service
318
+ */
319
+ export interface OptimizationStats {
320
+ /** Total projects analyzed */
321
+ totalProjects: number;
322
+ /** Total bugs found */
323
+ totalBugsFound: number;
324
+ /** Total bugs fixed */
325
+ totalBugsFixed: number;
326
+ /** Total performance issues found */
327
+ totalPerfIssuesFound: number;
328
+ /** Total optimizations applied */
329
+ totalOptimizationsApplied: number;
330
+ /** Average project health score */
331
+ avgHealthScore: number;
332
+ /** Most common bug types */
333
+ commonBugTypes: Array<{
334
+ type: BugType;
335
+ count: number;
336
+ }>;
337
+ /** Most common performance issues */
338
+ commonPerfIssues: Array<{
339
+ category: PerfCategory;
340
+ count: number;
341
+ }>;
342
+ }
343
+ //# sourceMappingURL=optimization.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimization.types.d.ts","sourceRoot":"","sources":["../../../src/services/optimization/optimization.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,OAAO,GACf,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,wBAAwB,GACxB,eAAe,GACf,KAAK,GACL,oBAAoB,GACpB,iBAAiB,GACjB,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,GACb,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,cAAc,GACd,cAAc,GACd,YAAY,GACZ,cAAc,GACd,wBAAwB,GACxB,iBAAiB,GACjB,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,QAAQ,EAAE,YAAY,CAAC;IACvB,mBAAmB;IACnB,MAAM,EAAE,QAAQ,CAAC;IACjB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,qCAAqC;IACrC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uCAAuC;IACvC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,IAAI,EAAE,aAAa,CAAC;IACpB,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,SAAS,EAAE,IAAI,CAAC;IAChB,wBAAwB;IACxB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,6BAA6B;IAC7B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,sBAAsB;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,2CAA2C;IAC3C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;IAChD,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;IAChD,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,mDAAmD;IACnD,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,gDAAgD;IAChD,oBAAoB,EAAE,UAAU,EAAE,CAAC;IACnC,oCAAoC;IACpC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,kCAAkC;IAClC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB,EAAE,mBAAmB;IACrF,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,QAAQ,EAAE,KAAK,GAAG,aAAa,GAAG,YAAY,CAAC;IAC/C,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC;IAC1C,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,+BAA+B;IAC/B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,wBAAwB;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,qCAAqC;IACrC,gBAAgB,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpE"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Optimization Types
3
+ *
4
+ * Types for the optimization service including bug detection,
5
+ * performance analysis, and code smell detection.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=optimization.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimization.types.js","sourceRoot":"","sources":["../../../src/services/optimization/optimization.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Code Optimizer
3
+ *
4
+ * Applies safe code optimizations including:
5
+ * - Extract constants
6
+ * - Simplify conditions
7
+ * - Reduce nesting
8
+ * - Combine similar functions
9
+ * - Apply safe refactors
10
+ */
11
+ import type { AppliedOptimization, OptimizationError } from '../optimization.types.js';
12
+ /** Optimizer configuration */
13
+ interface OptimizerConfig {
14
+ /** Create backup files before modifying */
15
+ createBackup?: boolean;
16
+ /** Backup directory */
17
+ backupDir?: string;
18
+ /** Maximum file size to process (bytes) */
19
+ maxFileSize?: number;
20
+ /** Dry run - don't actually modify files */
21
+ dryRun?: boolean;
22
+ }
23
+ /**
24
+ * Code Optimizer Service
25
+ */
26
+ export declare class CodeOptimizer {
27
+ private readonly logger;
28
+ private readonly config;
29
+ constructor(config?: OptimizerConfig);
30
+ /**
31
+ * Apply safe code optimizations to a file
32
+ */
33
+ optimizeFile(filePath: string, content: string): Promise<{
34
+ optimizedContent: string;
35
+ appliedOptimizations: AppliedOptimization[];
36
+ errors: OptimizationError[];
37
+ }>;
38
+ /**
39
+ * Extract magic numbers to constants
40
+ */
41
+ private extractConstants;
42
+ /**
43
+ * Simplify complex conditions using De Morgan's laws and early returns
44
+ */
45
+ private simplifyConditions;
46
+ /**
47
+ * Reduce nesting using early returns and guard clauses
48
+ */
49
+ private reduceNesting;
50
+ /**
51
+ * Remove unreachable dead code
52
+ */
53
+ private removeDeadCode;
54
+ /**
55
+ * Remove console.log statements (except in development)
56
+ */
57
+ private removeConsoleLogs;
58
+ /**
59
+ * Combine adjacent variable declarations
60
+ */
61
+ private combineAdjacentDeclarations;
62
+ /**
63
+ * Apply fixes to a file
64
+ */
65
+ applyFixes(filePath: string, fixes: AppliedOptimization[]): Promise<{
66
+ success: boolean;
67
+ errors: OptimizationError[];
68
+ }>;
69
+ /**
70
+ * Create backup of a file
71
+ */
72
+ private createBackup;
73
+ /**
74
+ * Find closing brace for a given opening brace position
75
+ */
76
+ private findClosingBrace;
77
+ /**
78
+ * Suggest a constant name based on value
79
+ */
80
+ private suggestConstantName;
81
+ /**
82
+ * Generate unique optimization ID
83
+ */
84
+ private generateOptId;
85
+ }
86
+ export {};
87
+ //# sourceMappingURL=code-optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-optimizer.d.ts","sourceRoot":"","sources":["../../../../src/services/optimization/optimizers/code-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EACV,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAGlC,8BAA8B;AAC9B,UAAU,eAAe;IACvB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,GAAE,eAAoB;IAWxC;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7D,gBAAgB,EAAE,MAAM,CAAC;QACzB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;QAC5C,MAAM,EAAE,iBAAiB,EAAE,CAAC;KAC7B,CAAC;IA+CF;;OAEG;YACW,gBAAgB;IA4D9B;;OAEG;YACW,kBAAkB;IA+ChC;;OAEG;YACW,aAAa;IAqD3B;;OAEG;YACW,cAAc;IA2C5B;;OAEG;YACW,iBAAiB;IAuC/B;;OAEG;YACW,2BAA2B;IA6DzC;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,mBAAmB,EAAE,GAC3B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAqC7D;;OAEG;YACW,YAAY;IAa1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}