agent-ide 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/dist/application/index.d.ts +1 -12
  2. package/dist/application/index.d.ts.map +1 -1
  3. package/dist/application/index.js +0 -16
  4. package/dist/application/index.js.map +1 -1
  5. package/dist/application/services/cache-coordinator.service.d.ts.map +1 -1
  6. package/dist/application/services/cache-coordinator.service.js.map +1 -1
  7. package/dist/application/services/module-coordinator.service.d.ts +3 -8
  8. package/dist/application/services/module-coordinator.service.d.ts.map +1 -1
  9. package/dist/application/services/module-coordinator.service.js +5 -139
  10. package/dist/application/services/module-coordinator.service.js.map +1 -1
  11. package/dist/application/types.d.ts +0 -63
  12. package/dist/application/types.d.ts.map +1 -1
  13. package/dist/application/types.js +1 -9
  14. package/dist/application/types.js.map +1 -1
  15. package/dist/core/call-hierarchy/call-hierarchy-analyzer.d.ts.map +1 -1
  16. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js +3 -5
  17. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js.map +1 -1
  18. package/dist/core/change-signature/call-site-updater.d.ts +108 -0
  19. package/dist/core/change-signature/call-site-updater.d.ts.map +1 -0
  20. package/dist/core/change-signature/call-site-updater.js +347 -0
  21. package/dist/core/change-signature/call-site-updater.js.map +1 -0
  22. package/dist/core/change-signature/change-signature-service.d.ts +11 -53
  23. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  24. package/dist/core/change-signature/change-signature-service.js +91 -475
  25. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  26. package/dist/core/change-signature/index.d.ts +4 -0
  27. package/dist/core/change-signature/index.d.ts.map +1 -1
  28. package/dist/core/change-signature/index.js +5 -0
  29. package/dist/core/change-signature/index.js.map +1 -1
  30. package/dist/core/change-signature/signature-parser.d.ts +46 -4
  31. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  32. package/dist/core/change-signature/signature-parser.js +180 -9
  33. package/dist/core/change-signature/signature-parser.js.map +1 -1
  34. package/dist/core/change-signature/signature-transformer.d.ts +20 -0
  35. package/dist/core/change-signature/signature-transformer.d.ts.map +1 -0
  36. package/dist/core/change-signature/signature-transformer.js +91 -0
  37. package/dist/core/change-signature/signature-transformer.js.map +1 -0
  38. package/dist/core/change-signature/signature-validator.d.ts +30 -0
  39. package/dist/core/change-signature/signature-validator.d.ts.map +1 -0
  40. package/dist/core/change-signature/signature-validator.js +152 -0
  41. package/dist/core/change-signature/signature-validator.js.map +1 -0
  42. package/dist/core/change-signature/utils.d.ts +19 -0
  43. package/dist/core/change-signature/utils.d.ts.map +1 -0
  44. package/dist/core/change-signature/utils.js +23 -0
  45. package/dist/core/change-signature/utils.js.map +1 -0
  46. package/dist/core/cycles/cycle-detector.d.ts.map +1 -1
  47. package/dist/core/cycles/cycle-detector.js +16 -8
  48. package/dist/core/cycles/cycle-detector.js.map +1 -1
  49. package/dist/core/cycles/index.d.ts +1 -1
  50. package/dist/core/cycles/index.d.ts.map +1 -1
  51. package/dist/core/cycles/index.js +1 -1
  52. package/dist/core/cycles/index.js.map +1 -1
  53. package/dist/core/cycles/types.d.ts +20 -4
  54. package/dist/core/cycles/types.d.ts.map +1 -1
  55. package/dist/core/cycles/types.js +22 -4
  56. package/dist/core/cycles/types.js.map +1 -1
  57. package/dist/core/deadcode/dead-code-detector.d.ts +22 -1
  58. package/dist/core/deadcode/dead-code-detector.d.ts.map +1 -1
  59. package/dist/core/deadcode/dead-code-detector.js +134 -61
  60. package/dist/core/deadcode/dead-code-detector.js.map +1 -1
  61. package/dist/core/deadcode/dead-code-remover.d.ts +11 -93
  62. package/dist/core/deadcode/dead-code-remover.d.ts.map +1 -1
  63. package/dist/core/deadcode/dead-code-remover.js +71 -690
  64. package/dist/core/deadcode/dead-code-remover.js.map +1 -1
  65. package/dist/core/deadcode/file-operations.d.ts +85 -0
  66. package/dist/core/deadcode/file-operations.d.ts.map +1 -0
  67. package/dist/core/deadcode/file-operations.js +263 -0
  68. package/dist/core/deadcode/file-operations.js.map +1 -0
  69. package/dist/core/deadcode/import-cleaner.d.ts +63 -0
  70. package/dist/core/deadcode/import-cleaner.d.ts.map +1 -0
  71. package/dist/core/deadcode/import-cleaner.js +229 -0
  72. package/dist/core/deadcode/import-cleaner.js.map +1 -0
  73. package/dist/core/deadcode/import-parser.d.ts +79 -0
  74. package/dist/core/deadcode/import-parser.d.ts.map +1 -0
  75. package/dist/core/deadcode/import-parser.js +229 -0
  76. package/dist/core/deadcode/import-parser.js.map +1 -0
  77. package/dist/core/deadcode/range-expander.d.ts +38 -0
  78. package/dist/core/deadcode/range-expander.d.ts.map +1 -0
  79. package/dist/core/deadcode/range-expander.js +175 -0
  80. package/dist/core/deadcode/range-expander.js.map +1 -0
  81. package/dist/core/deadcode/types.d.ts +2 -0
  82. package/dist/core/deadcode/types.d.ts.map +1 -1
  83. package/dist/core/deadcode/types.js.map +1 -1
  84. package/dist/core/find-references/index.d.ts +2 -2
  85. package/dist/core/find-references/index.d.ts.map +1 -1
  86. package/dist/core/find-references/index.js +1 -1
  87. package/dist/core/find-references/index.js.map +1 -1
  88. package/dist/core/impact/dependency-extractor.d.ts +25 -0
  89. package/dist/core/impact/dependency-extractor.d.ts.map +1 -0
  90. package/dist/core/impact/dependency-extractor.js +65 -0
  91. package/dist/core/impact/dependency-extractor.js.map +1 -0
  92. package/dist/core/impact/file-scanner.d.ts +52 -0
  93. package/dist/core/impact/file-scanner.d.ts.map +1 -0
  94. package/dist/core/impact/file-scanner.js +131 -0
  95. package/dist/core/impact/file-scanner.js.map +1 -0
  96. package/dist/core/impact/impact-analyzer.d.ts +3 -64
  97. package/dist/core/impact/impact-analyzer.d.ts.map +1 -1
  98. package/dist/core/impact/impact-analyzer.js +13 -312
  99. package/dist/core/impact/impact-analyzer.js.map +1 -1
  100. package/dist/core/impact/index.d.ts +3 -0
  101. package/dist/core/impact/index.d.ts.map +1 -1
  102. package/dist/core/impact/index.js +3 -0
  103. package/dist/core/impact/index.js.map +1 -1
  104. package/dist/core/impact/path-resolver.d.ts +35 -0
  105. package/dist/core/impact/path-resolver.d.ts.map +1 -0
  106. package/dist/core/impact/path-resolver.js +166 -0
  107. package/dist/core/impact/path-resolver.js.map +1 -0
  108. package/dist/core/move/file-scanner.d.ts +48 -0
  109. package/dist/core/move/file-scanner.d.ts.map +1 -0
  110. package/dist/core/move/file-scanner.js +137 -0
  111. package/dist/core/move/file-scanner.js.map +1 -0
  112. package/dist/core/move/import-resolver.d.ts +10 -0
  113. package/dist/core/move/import-resolver.d.ts.map +1 -1
  114. package/dist/core/move/import-resolver.js +31 -6
  115. package/dist/core/move/import-resolver.js.map +1 -1
  116. package/dist/core/move/index.d.ts +7 -3
  117. package/dist/core/move/index.d.ts.map +1 -1
  118. package/dist/core/move/index.js +7 -2
  119. package/dist/core/move/index.js.map +1 -1
  120. package/dist/core/move/move-service.d.ts +41 -52
  121. package/dist/core/move/move-service.d.ts.map +1 -1
  122. package/dist/core/move/move-service.js +189 -358
  123. package/dist/core/move/move-service.js.map +1 -1
  124. package/dist/core/move/path-calculator.d.ts +49 -0
  125. package/dist/core/move/path-calculator.d.ts.map +1 -0
  126. package/dist/core/move/path-calculator.js +158 -0
  127. package/dist/core/move/path-calculator.js.map +1 -0
  128. package/dist/core/move/path-parser.d.ts +33 -0
  129. package/dist/core/move/path-parser.d.ts.map +1 -0
  130. package/dist/core/move/path-parser.js +53 -0
  131. package/dist/core/move/path-parser.js.map +1 -0
  132. package/dist/core/move/path-utils.d.ts +70 -0
  133. package/dist/core/move/path-utils.d.ts.map +1 -0
  134. package/dist/core/move/path-utils.js +201 -0
  135. package/dist/core/move/path-utils.js.map +1 -0
  136. package/dist/core/move/types.d.ts +81 -18
  137. package/dist/core/move/types.d.ts.map +1 -1
  138. package/dist/core/move/types.js +73 -5
  139. package/dist/core/move/types.js.map +1 -1
  140. package/dist/core/move-member/change-applier.d.ts +23 -0
  141. package/dist/core/move-member/change-applier.d.ts.map +1 -0
  142. package/dist/core/move-member/change-applier.js +51 -0
  143. package/dist/core/move-member/change-applier.js.map +1 -0
  144. package/dist/core/move-member/file-change-preparer.d.ts +49 -0
  145. package/dist/core/move-member/file-change-preparer.d.ts.map +1 -0
  146. package/dist/core/move-member/file-change-preparer.js +340 -0
  147. package/dist/core/move-member/file-change-preparer.js.map +1 -0
  148. package/dist/core/move-member/index.d.ts +4 -1
  149. package/dist/core/move-member/index.d.ts.map +1 -1
  150. package/dist/core/move-member/index.js +3 -0
  151. package/dist/core/move-member/index.js.map +1 -1
  152. package/dist/core/move-member/member-extractor.d.ts +11 -0
  153. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  154. package/dist/core/move-member/member-extractor.js +116 -24
  155. package/dist/core/move-member/member-extractor.js.map +1 -1
  156. package/dist/core/move-member/move-member-service.d.ts +9 -78
  157. package/dist/core/move-member/move-member-service.d.ts.map +1 -1
  158. package/dist/core/move-member/move-member-service.js +86 -413
  159. package/dist/core/move-member/move-member-service.js.map +1 -1
  160. package/dist/core/move-member/reference-updater.d.ts +73 -0
  161. package/dist/core/move-member/reference-updater.d.ts.map +1 -0
  162. package/dist/core/move-member/reference-updater.js +286 -0
  163. package/dist/core/move-member/reference-updater.js.map +1 -0
  164. package/dist/core/move-member/types.d.ts +17 -2
  165. package/dist/core/move-member/types.d.ts.map +1 -1
  166. package/dist/core/move-member/types.js.map +1 -1
  167. package/dist/core/rename/reference-updater.d.ts +1 -35
  168. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  169. package/dist/core/rename/reference-updater.js +8 -251
  170. package/dist/core/rename/reference-updater.js.map +1 -1
  171. package/dist/core/rename/rename-engine.d.ts +16 -22
  172. package/dist/core/rename/rename-engine.d.ts.map +1 -1
  173. package/dist/core/rename/rename-engine.js +59 -208
  174. package/dist/core/rename/rename-engine.js.map +1 -1
  175. package/dist/core/rename/scope-analyzer.d.ts.map +1 -1
  176. package/dist/core/shared/index.d.ts +1 -1
  177. package/dist/core/shared/index.d.ts.map +1 -1
  178. package/dist/core/shared/index.js +1 -1
  179. package/dist/core/shared/index.js.map +1 -1
  180. package/dist/core/shared/indexing/index-engine.d.ts +1 -1
  181. package/dist/core/shared/indexing/index-engine.d.ts.map +1 -1
  182. package/dist/core/shared/indexing/index-engine.js +1 -1
  183. package/dist/core/shared/indexing/index-engine.js.map +1 -1
  184. package/dist/core/shared/symbol-finder/call-site-parser.d.ts +71 -0
  185. package/dist/core/shared/symbol-finder/call-site-parser.d.ts.map +1 -0
  186. package/dist/core/shared/symbol-finder/call-site-parser.js +369 -0
  187. package/dist/core/shared/symbol-finder/call-site-parser.js.map +1 -0
  188. package/dist/core/shared/symbol-finder/index.d.ts +9 -0
  189. package/dist/core/shared/symbol-finder/index.d.ts.map +1 -0
  190. package/dist/core/shared/symbol-finder/index.js +12 -0
  191. package/dist/core/shared/symbol-finder/index.js.map +1 -0
  192. package/dist/core/shared/{symbol-finder.d.ts → symbol-finder/symbol-finder.d.ts} +27 -133
  193. package/dist/core/shared/symbol-finder/symbol-finder.d.ts.map +1 -0
  194. package/dist/core/shared/symbol-finder/symbol-finder.js +552 -0
  195. package/dist/core/shared/symbol-finder/symbol-finder.js.map +1 -0
  196. package/dist/core/shared/symbol-finder/text-matcher.d.ts +45 -0
  197. package/dist/core/shared/symbol-finder/text-matcher.d.ts.map +1 -0
  198. package/dist/core/shared/symbol-finder/text-matcher.js +195 -0
  199. package/dist/core/shared/symbol-finder/text-matcher.js.map +1 -0
  200. package/dist/core/shared/symbol-finder/types.d.ts +108 -0
  201. package/dist/core/shared/symbol-finder/types.d.ts.map +1 -0
  202. package/dist/core/shared/symbol-finder/types.js +71 -0
  203. package/dist/core/shared/symbol-finder/types.js.map +1 -0
  204. package/dist/core/snapshot/snapshot-generator.d.ts +16 -4
  205. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -1
  206. package/dist/core/snapshot/snapshot-generator.js +91 -18
  207. package/dist/core/snapshot/snapshot-generator.js.map +1 -1
  208. package/dist/infrastructure/cache/cache-manager.d.ts.map +1 -1
  209. package/dist/infrastructure/cache/cache-manager.js +4 -0
  210. package/dist/infrastructure/cache/cache-manager.js.map +1 -1
  211. package/dist/infrastructure/cache/index.d.ts +15 -9
  212. package/dist/infrastructure/cache/index.d.ts.map +1 -1
  213. package/dist/infrastructure/cache/index.js +5 -5
  214. package/dist/infrastructure/cache/index.js.map +1 -1
  215. package/dist/infrastructure/cache/memory-cache.d.ts.map +1 -1
  216. package/dist/infrastructure/cache/memory-cache.js.map +1 -1
  217. package/dist/infrastructure/cache/strategies.d.ts.map +1 -1
  218. package/dist/infrastructure/cache/strategies.js +2 -1
  219. package/dist/infrastructure/cache/strategies.js.map +1 -1
  220. package/dist/infrastructure/cache/types.d.ts +4 -4
  221. package/dist/infrastructure/cache/types.d.ts.map +1 -1
  222. package/dist/infrastructure/changeset/change-applicator.d.ts +95 -0
  223. package/dist/infrastructure/changeset/change-applicator.d.ts.map +1 -0
  224. package/dist/infrastructure/changeset/change-applicator.js +467 -0
  225. package/dist/infrastructure/changeset/change-applicator.js.map +1 -0
  226. package/dist/infrastructure/changeset/changeset-builder.d.ts +107 -0
  227. package/dist/infrastructure/changeset/changeset-builder.d.ts.map +1 -0
  228. package/dist/infrastructure/changeset/changeset-builder.js +188 -0
  229. package/dist/infrastructure/changeset/changeset-builder.js.map +1 -0
  230. package/dist/infrastructure/changeset/changeset-converter.d.ts +15 -0
  231. package/dist/infrastructure/changeset/changeset-converter.d.ts.map +1 -0
  232. package/dist/infrastructure/changeset/changeset-converter.js +370 -0
  233. package/dist/infrastructure/changeset/changeset-converter.js.map +1 -0
  234. package/dist/infrastructure/changeset/index.d.ts +10 -0
  235. package/dist/infrastructure/changeset/index.d.ts.map +1 -0
  236. package/dist/infrastructure/changeset/index.js +13 -0
  237. package/dist/infrastructure/changeset/index.js.map +1 -0
  238. package/dist/infrastructure/changeset/types.d.ts +147 -0
  239. package/dist/infrastructure/changeset/types.d.ts.map +1 -0
  240. package/dist/infrastructure/changeset/types.js +46 -0
  241. package/dist/infrastructure/changeset/types.js.map +1 -0
  242. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  243. package/dist/infrastructure/parser/base.js +4 -3
  244. package/dist/infrastructure/parser/base.js.map +1 -1
  245. package/dist/infrastructure/parser/interface.d.ts +4 -2
  246. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  247. package/dist/infrastructure/parser/interface.js.map +1 -1
  248. package/dist/infrastructure/storage/file-system.d.ts.map +1 -1
  249. package/dist/infrastructure/storage/file-system.js +61 -54
  250. package/dist/infrastructure/storage/file-system.js.map +1 -1
  251. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  252. package/dist/interfaces/cli/cli.js +1 -2
  253. package/dist/interfaces/cli/cli.js.map +1 -1
  254. package/dist/interfaces/cli/commands/change-signature.command.d.ts.map +1 -1
  255. package/dist/interfaces/cli/commands/change-signature.command.js +31 -107
  256. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -1
  257. package/dist/interfaces/cli/commands/deadcode.command.js +51 -46
  258. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -1
  259. package/dist/interfaces/cli/commands/find-references.command.d.ts.map +1 -1
  260. package/dist/interfaces/cli/commands/find-references.command.js +18 -3
  261. package/dist/interfaces/cli/commands/find-references.command.js.map +1 -1
  262. package/dist/interfaces/cli/commands/index.d.ts +0 -1
  263. package/dist/interfaces/cli/commands/index.d.ts.map +1 -1
  264. package/dist/interfaces/cli/commands/index.js +0 -1
  265. package/dist/interfaces/cli/commands/index.js.map +1 -1
  266. package/dist/interfaces/cli/commands/move.command.d.ts +1 -0
  267. package/dist/interfaces/cli/commands/move.command.d.ts.map +1 -1
  268. package/dist/interfaces/cli/commands/move.command.js +170 -65
  269. package/dist/interfaces/cli/commands/move.command.js.map +1 -1
  270. package/dist/interfaces/cli/commands/rename.command.d.ts.map +1 -1
  271. package/dist/interfaces/cli/commands/rename.command.js +133 -59
  272. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  273. package/dist/interfaces/cli/output-formatter.d.ts +2 -2
  274. package/dist/interfaces/cli/output-formatter.d.ts.map +1 -1
  275. package/dist/interfaces/cli/output-formatter.js.map +1 -1
  276. package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -1
  277. package/dist/plugins/javascript/declaration-analyzer.js +9 -0
  278. package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
  279. package/dist/plugins/javascript/parser.d.ts +11 -10
  280. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  281. package/dist/plugins/javascript/parser.js +57 -53
  282. package/dist/plugins/javascript/parser.js.map +1 -1
  283. package/dist/plugins/javascript/pattern-analyzer.d.ts.map +1 -1
  284. package/dist/plugins/javascript/pattern-analyzer.js +4 -3
  285. package/dist/plugins/javascript/pattern-analyzer.js.map +1 -1
  286. package/dist/plugins/javascript/reference-finder.d.ts +21 -0
  287. package/dist/plugins/javascript/reference-finder.d.ts.map +1 -1
  288. package/dist/plugins/javascript/reference-finder.js +119 -76
  289. package/dist/plugins/javascript/reference-finder.js.map +1 -1
  290. package/dist/plugins/javascript/types.d.ts +4 -7
  291. package/dist/plugins/javascript/types.d.ts.map +1 -1
  292. package/dist/plugins/javascript/types.js +9 -9
  293. package/dist/plugins/javascript/types.js.map +1 -1
  294. package/dist/plugins/shared/parser-helpers.js.map +1 -1
  295. package/dist/{shared → plugins/shared}/utils/array.d.ts +6 -1
  296. package/dist/plugins/shared/utils/array.d.ts.map +1 -0
  297. package/dist/plugins/shared/utils/array.js.map +1 -0
  298. package/dist/{shared → plugins/shared}/utils/async.d.ts +1 -1
  299. package/dist/plugins/shared/utils/async.d.ts.map +1 -0
  300. package/dist/{shared → plugins/shared}/utils/async.js +2 -0
  301. package/dist/plugins/shared/utils/async.js.map +1 -0
  302. package/dist/{shared → plugins/shared}/utils/index.d.ts +0 -20
  303. package/dist/plugins/shared/utils/index.d.ts.map +1 -0
  304. package/dist/{shared → plugins/shared}/utils/index.js +0 -20
  305. package/dist/plugins/shared/utils/index.js.map +1 -0
  306. package/dist/plugins/shared/utils/memory-monitor.d.ts.map +1 -0
  307. package/dist/plugins/shared/utils/memory-monitor.js.map +1 -0
  308. package/dist/{shared → plugins/shared}/utils/object.d.ts +6 -6
  309. package/dist/plugins/shared/utils/object.d.ts.map +1 -0
  310. package/dist/{shared → plugins/shared}/utils/object.js +21 -3
  311. package/dist/plugins/shared/utils/object.js.map +1 -0
  312. package/dist/plugins/shared/utils/path.d.ts.map +1 -0
  313. package/dist/plugins/shared/utils/path.js.map +1 -0
  314. package/dist/{shared → plugins/shared}/utils/string.d.ts +1 -1
  315. package/dist/plugins/shared/utils/string.d.ts.map +1 -0
  316. package/dist/{shared → plugins/shared}/utils/string.js +7 -4
  317. package/dist/plugins/shared/utils/string.js.map +1 -0
  318. package/dist/plugins/typescript/declaration-analyzer.d.ts +4 -4
  319. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
  320. package/dist/plugins/typescript/declaration-analyzer.js +13 -6
  321. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
  322. package/dist/plugins/typescript/language-service.d.ts +1 -1
  323. package/dist/plugins/typescript/language-service.d.ts.map +1 -1
  324. package/dist/plugins/typescript/parser.d.ts +3 -2
  325. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  326. package/dist/plugins/typescript/parser.js +18 -13
  327. package/dist/plugins/typescript/parser.js.map +1 -1
  328. package/dist/plugins/typescript/reference-finder.d.ts +3 -0
  329. package/dist/plugins/typescript/reference-finder.d.ts.map +1 -1
  330. package/dist/plugins/typescript/reference-finder.js +16 -4
  331. package/dist/plugins/typescript/reference-finder.js.map +1 -1
  332. package/dist/plugins/typescript/symbol-extractor.d.ts +4 -0
  333. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  334. package/dist/plugins/typescript/symbol-extractor.js +24 -6
  335. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  336. package/dist/plugins/typescript/types.d.ts +0 -3
  337. package/dist/plugins/typescript/types.d.ts.map +1 -1
  338. package/dist/plugins/typescript/types.js +6 -9
  339. package/dist/plugins/typescript/types.js.map +1 -1
  340. package/dist/shared/errors/index.d.ts +1 -1
  341. package/dist/shared/errors/index.d.ts.map +1 -1
  342. package/dist/shared/errors/parser-error.js +5 -5
  343. package/dist/shared/errors/parser-error.js.map +1 -1
  344. package/dist/shared/errors/validation-error.d.ts +2 -2
  345. package/dist/shared/errors/validation-error.d.ts.map +1 -1
  346. package/dist/shared/errors/validation-error.js.map +1 -1
  347. package/dist/shared/types/ast.d.ts +4 -4
  348. package/dist/shared/types/ast.d.ts.map +1 -1
  349. package/dist/shared/types/ast.js.map +1 -1
  350. package/dist/shared/types/core.d.ts +1 -1
  351. package/dist/shared/types/core.d.ts.map +1 -1
  352. package/dist/shared/types/index.d.ts +1 -0
  353. package/dist/shared/types/index.d.ts.map +1 -1
  354. package/dist/shared/types/index.js +2 -0
  355. package/dist/shared/types/index.js.map +1 -1
  356. package/dist/shared/types/line-number.d.ts +22 -0
  357. package/dist/shared/types/line-number.d.ts.map +1 -0
  358. package/dist/shared/types/line-number.js +28 -0
  359. package/dist/shared/types/line-number.js.map +1 -0
  360. package/package.json +2 -2
  361. package/dist/application/services/workflow-engine.service.d.ts +0 -76
  362. package/dist/application/services/workflow-engine.service.d.ts.map +0 -1
  363. package/dist/application/services/workflow-engine.service.js +0 -405
  364. package/dist/application/services/workflow-engine.service.js.map +0 -1
  365. package/dist/application/workflows/analysis-workflow.d.ts +0 -239
  366. package/dist/application/workflows/analysis-workflow.d.ts.map +0 -1
  367. package/dist/application/workflows/analysis-workflow.js +0 -395
  368. package/dist/application/workflows/analysis-workflow.js.map +0 -1
  369. package/dist/application/workflows/base-workflow.d.ts +0 -108
  370. package/dist/application/workflows/base-workflow.d.ts.map +0 -1
  371. package/dist/application/workflows/base-workflow.js +0 -236
  372. package/dist/application/workflows/base-workflow.js.map +0 -1
  373. package/dist/application/workflows/index.d.ts +0 -115
  374. package/dist/application/workflows/index.d.ts.map +0 -1
  375. package/dist/application/workflows/index.js +0 -218
  376. package/dist/application/workflows/index.js.map +0 -1
  377. package/dist/application/workflows/refactor-workflow.d.ts +0 -107
  378. package/dist/application/workflows/refactor-workflow.d.ts.map +0 -1
  379. package/dist/application/workflows/refactor-workflow.js +0 -310
  380. package/dist/application/workflows/refactor-workflow.js.map +0 -1
  381. package/dist/core/shared/symbol-finder.d.ts.map +0 -1
  382. package/dist/core/shared/symbol-finder.js +0 -882
  383. package/dist/core/shared/symbol-finder.js.map +0 -1
  384. package/dist/interfaces/cli/commands/move-member.command.d.ts +0 -11
  385. package/dist/interfaces/cli/commands/move-member.command.d.ts.map +0 -1
  386. package/dist/interfaces/cli/commands/move-member.command.js +0 -211
  387. package/dist/interfaces/cli/commands/move-member.command.js.map +0 -1
  388. package/dist/plugins/javascript/code-analyzer.d.ts +0 -68
  389. package/dist/plugins/javascript/code-analyzer.d.ts.map +0 -1
  390. package/dist/plugins/javascript/code-analyzer.js +0 -302
  391. package/dist/plugins/javascript/code-analyzer.js.map +0 -1
  392. package/dist/plugins/javascript/index.d.ts +0 -12
  393. package/dist/plugins/javascript/index.d.ts.map +0 -1
  394. package/dist/plugins/javascript/index.js +0 -16
  395. package/dist/plugins/javascript/index.js.map +0 -1
  396. package/dist/plugins/typescript/index.d.ts +0 -14
  397. package/dist/plugins/typescript/index.d.ts.map +0 -1
  398. package/dist/plugins/typescript/index.js +0 -13
  399. package/dist/plugins/typescript/index.js.map +0 -1
  400. package/dist/shared/utils/array.d.ts.map +0 -1
  401. package/dist/shared/utils/array.js.map +0 -1
  402. package/dist/shared/utils/async.d.ts.map +0 -1
  403. package/dist/shared/utils/async.js.map +0 -1
  404. package/dist/shared/utils/index.d.ts.map +0 -1
  405. package/dist/shared/utils/index.js.map +0 -1
  406. package/dist/shared/utils/memory-monitor.d.ts.map +0 -1
  407. package/dist/shared/utils/memory-monitor.js.map +0 -1
  408. package/dist/shared/utils/object.d.ts.map +0 -1
  409. package/dist/shared/utils/object.js.map +0 -1
  410. package/dist/shared/utils/path.d.ts.map +0 -1
  411. package/dist/shared/utils/path.js.map +0 -1
  412. package/dist/shared/utils/string.d.ts.map +0 -1
  413. package/dist/shared/utils/string.js.map +0 -1
  414. /package/dist/{shared → plugins/shared}/utils/array.js +0 -0
  415. /package/dist/{shared → plugins/shared}/utils/memory-monitor.d.ts +0 -0
  416. /package/dist/{shared → plugins/shared}/utils/memory-monitor.js +0 -0
  417. /package/dist/{shared → plugins/shared}/utils/path.d.ts +0 -0
  418. /package/dist/{shared → plugins/shared}/utils/path.js +0 -0
@@ -2,8 +2,28 @@
2
2
  * Dead Code 檢測器
3
3
  * 使用 find-references 判斷未使用的符號
4
4
  */
5
- import { createSymbolFinder, SymbolReferenceType } from '../shared/symbol-finder.js';
5
+ import { SymbolType } from '../../shared/types/symbol.js';
6
+ import { isSameLine } from '../../shared/types/index.js';
7
+ import { createSymbolFinder, SymbolReferenceType, symbolToKey, serializeSymbolKey } from '../shared/symbol-finder/index.js';
6
8
  import { DEFAULT_DEAD_CODE_OPTIONS } from './types.js';
9
+ /**
10
+ * SymbolType 對應的中文標籤
11
+ * 使用 Record<SymbolType, string> 確保型別安全
12
+ */
13
+ const SYMBOL_TYPE_LABELS = {
14
+ [SymbolType.Function]: '函式',
15
+ [SymbolType.Class]: '類別',
16
+ [SymbolType.Variable]: '變數',
17
+ [SymbolType.Interface]: '介面',
18
+ [SymbolType.Type]: '型別',
19
+ [SymbolType.Property]: '屬性',
20
+ [SymbolType.Enum]: '列舉',
21
+ [SymbolType.Constant]: '常數',
22
+ [SymbolType.Protocol]: '協定',
23
+ [SymbolType.Struct]: '結構',
24
+ [SymbolType.Module]: '模組',
25
+ [SymbolType.Namespace]: '命名空間'
26
+ };
7
27
  /**
8
28
  * Dead Code 檢測器
9
29
  */
@@ -28,37 +48,33 @@ export class DeadCodeDetector {
28
48
  const indexedFiles = this.indexEngine.getAllIndexedFiles();
29
49
  const filePaths = indexedFiles.map(f => f.filePath);
30
50
  // 收集所有符號
31
- const { symbols: allSymbols, skippedFiles } = await this.collectAllSymbols(filePaths);
51
+ const { symbols: allSymbols, skippedFiles, warnings } = await this.collectAllSymbols(filePaths);
32
52
  // 過濾要檢測的符號類型
33
53
  const targetSymbols = allSymbols.filter(s => this.options.symbolTypes.includes(s.type));
34
54
  // 建立 SymbolFinder
35
55
  const symbolFinder = createSymbolFinder(this.parserRegistry, this.fileSystem);
36
56
  // 過濾要檢測的符號(排除不需要的)
37
57
  const symbolsToCheck = targetSymbols.filter(s => !this.shouldExclude(s));
38
- // 收集所有符號名稱
39
- const symbolNames = new Set(symbolsToCheck.map(s => s.name));
40
- // 批次查找所有符號的引用
58
+ // 批次查找所有符號的引用(使用完整 Symbol 資訊,可區分同名符號)
41
59
  // 優化:M 次檔案讀取(一次遍歷 M 檔查找 N 符號),而非 N×M 次(N 符號各遍歷 M 檔)
42
- const allReferences = await symbolFinder.findReferencesMultiple(symbolNames, filePaths);
60
+ const allReferences = await symbolFinder.findReferencesMultiple(symbolsToCheck, filePaths);
43
61
  // 建立 class → members 映射,用於判斷 class 是否有成員被使用
44
62
  const classMembersMap = this.buildClassMembersMap(symbolsToCheck);
45
63
  // 第一輪:分析每個符號的使用情況
46
64
  const symbolUsageMap = new Map();
47
65
  for (const symbol of symbolsToCheck) {
48
- const references = allReferences.get(symbol.name) ?? [];
66
+ // 使用 SymbolKey 作為鍵,確保同名符號(如 Dog.bark vs Car.bark)不會合併
67
+ const symbolKey = serializeSymbolKey(symbolToKey(symbol));
68
+ const references = allReferences.get(symbolKey) ?? [];
49
69
  // 分析引用:過濾掉定義位置本身
50
70
  const symbolLine = symbol.location.range.start.line;
51
71
  const symbolFile = symbol.location.filePath;
52
72
  const usageRefs = references.filter(ref => {
53
73
  // 排除定義位置
54
- // 注意:symbol 使用 0-indexed 行號,但文字匹配降級方法可能使用 1-indexed
55
- // 因此同時檢查精確匹配和 +1 偏移
56
74
  const refLine = ref.location.range.start.line;
57
- // 定義位置過濾:同檔案、同行(考慮 0/1-indexed 差異)
58
- // 由於 symbol 位置指向宣告起點,而 reference 位置指向識別符,
59
- // 我們不比對 column,只比對行號
75
+ // 定義位置過濾:同檔案、同行(使用 isSameLine 處理 0/1-indexed 差異)
60
76
  const isDefinitionLine = ref.location.filePath === symbolFile
61
- && (refLine === symbolLine || refLine === symbolLine + 1);
77
+ && isSameLine(refLine, symbolLine);
62
78
  if (isDefinitionLine) {
63
79
  return false;
64
80
  }
@@ -71,14 +87,13 @@ export class DeadCodeDetector {
71
87
  // 第二輪:檢測每個符號是否為 dead code
72
88
  const deadItems = [];
73
89
  for (const symbol of symbolsToCheck) {
74
- const { usageRefs, hasExport } = symbolUsageMap.get(symbol);
90
+ const usageInfo = symbolUsageMap.get(symbol);
91
+ if (!usageInfo) {
92
+ continue;
93
+ }
94
+ const { usageRefs, hasExport } = usageInfo;
75
95
  // 判斷是否為 public class member(class 內的非 private/protected 成員)
76
- // 注意:class 本身不算 "class member",只有 method/property 才算
77
- // - 方法:scope.type === 'function' && scope.parent.type === 'class'
78
- // - 屬性:scope.type === 'class' && symbol.type !== 'class'(屬性在 class scope 內,但符號類型不是 class)
79
- const isClassMember = (symbol.scope?.parent?.type === 'class'
80
- || (symbol.scope?.type === 'class' && symbol.type !== 'class'));
81
- const isPublicClassMember = isClassMember
96
+ const isPublicClassMember = this.isClassMember(symbol)
82
97
  && !symbol.modifiers.includes('private')
83
98
  && !symbol.modifiers.includes('protected');
84
99
  // 判斷是否為 dead code
@@ -100,7 +115,8 @@ export class DeadCodeDetector {
100
115
  continue;
101
116
  }
102
117
  }
103
- const references = allReferences.get(symbol.name) ?? [];
118
+ const deadSymbolKey = serializeSymbolKey(symbolToKey(symbol));
119
+ const references = allReferences.get(deadSymbolKey) ?? [];
104
120
  deadItems.push({
105
121
  name: symbol.name,
106
122
  type: symbol.type,
@@ -114,7 +130,8 @@ export class DeadCodeDetector {
114
130
  return {
115
131
  success: true,
116
132
  items: deadItems,
117
- stats
133
+ stats,
134
+ warnings: warnings.length > 0 ? warnings : undefined
118
135
  };
119
136
  }
120
137
  catch (error) {
@@ -134,34 +151,52 @@ export class DeadCodeDetector {
134
151
  }
135
152
  }
136
153
  /**
137
- * 收集所有符號
154
+ * 收集所有符號(優先使用 IndexEngine 快取)
138
155
  */
139
156
  async collectAllSymbols(filePaths) {
140
- const allSymbols = [];
141
- let skippedFiles = 0;
142
- for (const filePath of filePaths) {
143
- const parser = this.getParser(filePath);
144
- if (!parser) {
145
- continue;
146
- }
157
+ const warnings = [];
158
+ // 平行處理所有檔案,收集符號或記錄錯誤
159
+ const results = await Promise.all(filePaths.map(async (filePath) => {
147
160
  try {
161
+ // 優先從 IndexEngine 的 symbolIndex 讀取(已在 indexProject 時建立)
162
+ const cachedSymbols = await this.indexEngine.getFileSymbols(filePath);
163
+ if (cachedSymbols.length > 0) {
164
+ return { symbols: [...cachedSymbols], error: false };
165
+ }
166
+ // Fallback:重新解析(用於 IndexEngine 無資料時)
167
+ const parser = this.getParser(filePath);
168
+ if (!parser) {
169
+ return { symbols: [], error: false };
170
+ }
148
171
  const content = await this.readFile(filePath);
149
172
  if (!content) {
150
- continue;
173
+ return { symbols: [], error: false };
151
174
  }
152
175
  const ast = await parser.parse(content, filePath);
153
176
  const symbols = await parser.extractSymbols(ast);
154
- allSymbols.push(...symbols);
177
+ return { symbols, error: false };
155
178
  }
156
179
  catch (error) {
157
- skippedFiles++;
158
- if (this.options.verbose) {
159
- const errorMessage = error instanceof Error ? error.message : String(error);
160
- console.warn(`⚠️ 跳過檔案 ${filePath}: ${errorMessage}`);
180
+ const errorMessage = error instanceof Error ? error.message : String(error);
181
+ return {
182
+ symbols: [],
183
+ error: true,
184
+ warning: `跳過檔案 ${filePath}: ${errorMessage}`
185
+ };
186
+ }
187
+ }));
188
+ // 聚合結果
189
+ const allSymbols = results.flatMap(r => r.symbols);
190
+ const skippedFiles = results.filter(r => r.error).length;
191
+ // 收集警告訊息(僅在 verbose 模式下記錄)
192
+ if (this.options.verbose) {
193
+ for (const result of results) {
194
+ if (result.warning) {
195
+ warnings.push(result.warning);
161
196
  }
162
197
  }
163
198
  }
164
- return { symbols: allSymbols, skippedFiles };
199
+ return { symbols: allSymbols, skippedFiles, warnings };
165
200
  }
166
201
  /**
167
202
  * 判斷是否應排除
@@ -176,6 +211,12 @@ export class DeadCodeDetector {
176
211
  if (this.isInterfaceOrTypeProperty(symbol)) {
177
212
  return true;
178
213
  }
214
+ // 排除函式內部的變數和參數
215
+ // 這些是局部變數,不應被 deadcode 檢測(可能是函式參數、arrow function 回呼參數、
216
+ // for 迴圈變數等)。它們的 scope.type 會是 'function' 或 'block'
217
+ if (this.isFunctionLocalVariable(symbol)) {
218
+ return true;
219
+ }
179
220
  // 排除名稱模式
180
221
  for (const pattern of this.options.excludePatterns) {
181
222
  if (symbol.name === pattern || symbol.name.toLowerCase() === pattern.toLowerCase()) {
@@ -191,6 +232,34 @@ export class DeadCodeDetector {
191
232
  }
192
233
  return false;
193
234
  }
235
+ /**
236
+ * 判斷符號是否為函式內部的變數或參數
237
+ * 函式參數、arrow function 回呼參數、for 迴圈變數等不應被 deadcode 檢測
238
+ *
239
+ * 注意:此方法遍歷 scope 鏈確認變數是否在 function scope 內,
240
+ * 避免誤過濾模組層級的 block scope 變數(如 if 區塊內的變數)
241
+ */
242
+ isFunctionLocalVariable(symbol) {
243
+ // 只處理變數類型
244
+ if (symbol.type !== 'variable' && symbol.type !== 'constant') {
245
+ return false;
246
+ }
247
+ // 遍歷 scope 鏈,確認是否有 function scope
248
+ // 只有在 scope 鏈中找到 function 時,才認定為函式內部變數
249
+ let scope = symbol.scope;
250
+ while (scope) {
251
+ if (scope.type === 'function') {
252
+ return true;
253
+ }
254
+ // 遇到 module, namespace, global, class 則停止,表示不在函式內
255
+ if (scope.type === 'module' || scope.type === 'namespace' ||
256
+ scope.type === 'global' || scope.type === 'class') {
257
+ return false;
258
+ }
259
+ scope = scope.parent;
260
+ }
261
+ return false;
262
+ }
194
263
  /**
195
264
  * 判斷符號是否為 interface 或 type 的屬性
196
265
  * Interface/Type 的屬性是型別定義的一部分,不應被獨立檢測為 dead code
@@ -217,27 +286,14 @@ export class DeadCodeDetector {
217
286
  * 取得類型標籤
218
287
  */
219
288
  getTypeLabel(type) {
220
- const labels = {
221
- function: '函式',
222
- class: '類別',
223
- variable: '變數',
224
- interface: '介面',
225
- type: '型別',
226
- property: '屬性',
227
- method: '方法',
228
- enum: '列舉',
229
- constant: '常數'
230
- };
231
- return labels[type] || type;
289
+ return SYMBOL_TYPE_LABELS[type] || type;
232
290
  }
233
291
  /**
234
292
  * 計算統計
235
293
  */
236
294
  calculateStats(totalSymbols, deadItems, startTime, skippedFiles) {
237
- const byType = {};
238
- for (const item of deadItems) {
239
- byType[item.type] = (byType[item.type] || 0) + 1;
240
- }
295
+ // 使用 reduce 聲明式計算各類型數量
296
+ const byType = deadItems.reduce((acc, item) => ({ ...acc, [item.type]: (acc[item.type] || 0) + 1 }), {});
241
297
  const filesAffected = new Set(deadItems.map(item => item.location.filePath)).size;
242
298
  return {
243
299
  totalSymbols,
@@ -288,14 +344,7 @@ export class DeadCodeDetector {
288
344
  }, new Map());
289
345
  // 第二步:將成員分配到對應的 class
290
346
  symbols.forEach(symbol => {
291
- // 判斷 parent class 名稱
292
- // - 方法:scope.parent.type === 'class'
293
- // - 屬性:scope.type === 'class' && symbol.type !== 'class'
294
- const parentClassName = symbol.scope?.parent?.type === 'class'
295
- ? symbol.scope.parent.name
296
- : (symbol.scope?.type === 'class' && symbol.type !== 'class')
297
- ? symbol.scope.name
298
- : null;
347
+ const parentClassName = this.getParentClassName(symbol);
299
348
  if (parentClassName) {
300
349
  const key = `${symbol.location.filePath}:${parentClassName}`;
301
350
  classMap.get(key)?.push(symbol);
@@ -314,6 +363,30 @@ export class DeadCodeDetector {
314
363
  return usageInfo && usageInfo.usageRefs.length > 0;
315
364
  });
316
365
  }
366
+ /**
367
+ * 判斷符號是否為 class member(方法或屬性)
368
+ * - 方法:scope.parent.type === 'class'
369
+ * - 屬性:scope.type === 'class' && symbol.type !== 'class'
370
+ *
371
+ * 注意:class 本身不算 "class member",只有 method/property 才算
372
+ */
373
+ isClassMember(symbol) {
374
+ return (symbol.scope?.parent?.type === 'class'
375
+ || (symbol.scope?.type === 'class' && symbol.type !== SymbolType.Class));
376
+ }
377
+ /**
378
+ * 取得 class member 的父 class 名稱
379
+ * @returns 父 class 名稱,若不是 class member 則返回 null
380
+ */
381
+ getParentClassName(symbol) {
382
+ if (symbol.scope?.parent?.type === 'class') {
383
+ return symbol.scope.parent.name ?? null;
384
+ }
385
+ if (symbol.scope?.type === 'class' && symbol.type !== SymbolType.Class) {
386
+ return symbol.scope.name ?? null;
387
+ }
388
+ return null;
389
+ }
317
390
  }
318
391
  /**
319
392
  * 建立 DeadCodeDetector 實例
@@ -1 +1 @@
1
- {"version":3,"file":"dead-code-detector.js","sourceRoot":"","sources":["../../../src/core/deadcode/dead-code-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dead-code-detector.js","sourceRoot":"","sources":["../../../src/core/deadcode/dead-code-detector.ts"],"names":[],"mappings":"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"}
@@ -4,21 +4,29 @@
4
4
  */
5
5
  import type { IFileSystem } from '../../infrastructure/storage/file-system.interface.js';
6
6
  import type { ParserRegistry } from '../../infrastructure/parser/registry.js';
7
+ import type { Changeset } from '../../infrastructure/changeset/index.js';
7
8
  import type { DeadCodeItem, DeadCodeRemovalOptions, DeadCodeRemovalPreview, DeadCodeRemovalResult } from './types.js';
8
9
  /**
9
10
  * Dead Code 刪除器
10
11
  */
11
12
  export declare class DeadCodeRemover {
12
13
  private readonly fileSystem;
13
- private readonly parserRegistry;
14
14
  private readonly options;
15
15
  private readonly fileCache;
16
- private readonly symbolFinder;
16
+ private readonly rangeExpander;
17
+ private readonly importCleaner;
18
+ private readonly fileOperations;
17
19
  constructor(fileSystem: IFileSystem, parserRegistry: ParserRegistry, options?: DeadCodeRemovalOptions);
18
20
  /**
19
21
  * 預覽刪除操作
20
22
  */
21
23
  preview(deadCodeItems: readonly DeadCodeItem[]): Promise<DeadCodeRemovalPreview>;
24
+ /**
25
+ * 生成死代碼刪除的 Changeset
26
+ * @param deadCodeItems 待刪除的死代碼項目
27
+ * @returns Changeset 變更集
28
+ */
29
+ generateChangeset(deadCodeItems: readonly DeadCodeItem[]): Promise<Changeset>;
22
30
  /**
23
31
  * 執行刪除(非 dry-run 時)
24
32
  */
@@ -31,93 +39,6 @@ export declare class DeadCodeRemover {
31
39
  * 產生刪除操作
32
40
  */
33
41
  private generateRemovalOperations;
34
- /**
35
- * 分析需要清理的 import
36
- * 支援部分清理:當 import { A, B, C } 中只有部分符號未使用時,保留其他符號
37
- */
38
- private analyzeImportCleanups;
39
- /**
40
- * 產生部分清理後的 import 語句
41
- * 支援:純 named import、混合 default + named import
42
- */
43
- private generatePartialImport;
44
- /**
45
- * 解析 import 語句(以語句為單位)
46
- * 優先使用 Parser 的 AST 解析(精確),fallback 到字串解析(向後相容)
47
- * @param content 檔案內容
48
- * @param filePath 檔案路徑(用於取得對應的 Parser)
49
- */
50
- private parseImportStatements;
51
- /**
52
- * 使用 Parser AST 解析 import 語句
53
- * @returns ImportStatementInfo[] 如果成功,null 如果 Parser 不支援或解析失敗
54
- */
55
- private parseImportStatementsWithParser;
56
- /**
57
- * 將 Parser 的 ImportDeclaration 轉換為內部的 ImportStatementInfo
58
- */
59
- private convertImportDeclaration;
60
- /**
61
- * Fallback:使用字串解析 import 語句
62
- * 保留原有邏輯以確保向後相容
63
- */
64
- private parseImportStatementsFallback;
65
- /**
66
- * 解析單行或合併後的 import 語句
67
- */
68
- private parseImportStatementLine;
69
- /**
70
- * 解析 named import 中的符號
71
- */
72
- private parseNamedSymbols;
73
- /**
74
- * 檢查 import 是否仍被使用
75
- * 使用 SymbolFinder.findReferencesInFile 進行語義分析
76
- */
77
- private isImportStillUsed;
78
- /**
79
- * 擴展範圍至完整宣告(包含前導註解和空行)
80
- * 優先使用 Parser 的 getFullDeclarationRange 方法(AST 精確解析)
81
- * 若 Parser 不支援或回傳 null,fallback 到字串匹配邏輯
82
- */
83
- private expandRangeToFullDeclaration;
84
- /**
85
- * 使用字串匹配邏輯擴展範圍(fallback 方法)
86
- * 使用清理後的內容進行括號匹配,避免字串/註解中的括號干擾
87
- */
88
- private expandRangeByStringMatching;
89
- /**
90
- * 從檔案路徑取得副檔名
91
- */
92
- private getFileExtension;
93
- /**
94
- * 移除單行中的註解和字串(用於括號匹配)
95
- */
96
- private removeCommentsAndStringsFromLine;
97
- /**
98
- * 提取程式碼
99
- */
100
- private extractCode;
101
- /**
102
- * 按檔案分組操作(去重相同 range)
103
- */
104
- private groupOperationsByFile;
105
- /**
106
- * 套用檔案操作
107
- */
108
- private applyFileOperations;
109
- /**
110
- * 清理連續空行
111
- */
112
- private cleanupEmptyLines;
113
- /**
114
- * 計算統計摘要
115
- */
116
- private calculateSummary;
117
- /**
118
- * 收集影響的檔案
119
- */
120
- private collectAffectedFiles;
121
42
  /**
122
43
  * 建立空的預覽結果
123
44
  */
@@ -128,12 +49,9 @@ export declare class DeadCodeRemover {
128
49
  private createEmptySummary;
129
50
  /**
130
51
  * 讀取檔案
52
+ * 檔案不存在時快取 null,避免重複讀取
131
53
  */
132
54
  private readFile;
133
- /**
134
- * 寫入檔案
135
- */
136
- private writeFile;
137
55
  /**
138
56
  * 檢查檔案路徑是否匹配排除模式
139
57
  * 支援 glob 模式(如 *.test.ts、**\/__tests__/**)和簡單字串匹配
@@ -1 +1 @@
1
- {"version":3,"file":"dead-code-remover.d.ts","sourceRoot":"","sources":["../../../src/core/deadcode/dead-code-remover.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EAKtB,MAAM,YAAY,CAAC;AA6CpB;;GAEG;AACH,qBAAa,eAAe;IAMxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IANjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAGzB,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,cAAc,EAC/C,OAAO,CAAC,EAAE,sBAAsB;IAMlC;;OAEG;IACG,OAAO,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+CtF;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkC9E;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;YACW,yBAAyB;IAoCvC;;;OAGG;YACW,qBAAqB;IA0EnC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAkD7B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAevC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8BhC;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAuDrC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgEhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;;OAGG;YACW,iBAAiB;IA2B/B;;;;OAIG;YACW,4BAA4B;IAsC1C;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA+GnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAsBxC;;OAEG;IACH,OAAO,CAAC,WAAW;IA0BnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;OAEG;YACW,mBAAmB;IAyEjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;YACW,QAAQ;IAiBtB;;OAEG;YACW,SAAS;IAKvB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,eAAe,CAEjB"}
1
+ {"version":3,"file":"dead-code-remover.d.ts","sourceRoot":"","sources":["../../../src/core/deadcode/dead-code-remover.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EAKtB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,qBAAa,eAAe;IAQxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAP7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAGpC,UAAU,EAAE,WAAW,EACxC,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,sBAAsB;IAQlC;;OAEG;IACG,OAAO,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+CtF;;;;OAIG;IACG,iBAAiB,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAkDnF;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkC9E;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;YACW,yBAAyB;IAoCvC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;OAGG;YACW,QAAQ;IAmBtB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,UAAU,IAAI,IAAI;CAKnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,WAAW,EACvB,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,eAAe,CAEjB"}