agent-ide 0.8.2 → 0.9.1

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 (405) hide show
  1. package/README.md +11 -11
  2. package/dist/core/call-hierarchy/call-hierarchy-analyzer.d.ts +1 -8
  3. package/dist/core/call-hierarchy/call-hierarchy-analyzer.d.ts.map +1 -1
  4. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js +9 -25
  5. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js.map +1 -1
  6. package/dist/core/change-signature/call-site-updater.d.ts +106 -0
  7. package/dist/core/change-signature/call-site-updater.d.ts.map +1 -0
  8. package/dist/core/change-signature/call-site-updater.js +338 -0
  9. package/dist/core/change-signature/call-site-updater.js.map +1 -0
  10. package/dist/core/change-signature/change-signature-service.d.ts +5 -63
  11. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  12. package/dist/core/change-signature/change-signature-service.js +27 -511
  13. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  14. package/dist/core/change-signature/index.d.ts +4 -0
  15. package/dist/core/change-signature/index.d.ts.map +1 -1
  16. package/dist/core/change-signature/index.js +5 -0
  17. package/dist/core/change-signature/index.js.map +1 -1
  18. package/dist/core/change-signature/signature-parser.d.ts +1 -8
  19. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  20. package/dist/core/change-signature/signature-parser.js +7 -23
  21. package/dist/core/change-signature/signature-parser.js.map +1 -1
  22. package/dist/core/change-signature/signature-transformer.d.ts +20 -0
  23. package/dist/core/change-signature/signature-transformer.d.ts.map +1 -0
  24. package/dist/core/change-signature/signature-transformer.js +91 -0
  25. package/dist/core/change-signature/signature-transformer.js.map +1 -0
  26. package/dist/core/change-signature/signature-validator.d.ts +30 -0
  27. package/dist/core/change-signature/signature-validator.d.ts.map +1 -0
  28. package/dist/core/change-signature/signature-validator.js +152 -0
  29. package/dist/core/change-signature/signature-validator.js.map +1 -0
  30. package/dist/core/change-signature/utils.d.ts +19 -0
  31. package/dist/core/change-signature/utils.d.ts.map +1 -0
  32. package/dist/core/change-signature/utils.js +23 -0
  33. package/dist/core/change-signature/utils.js.map +1 -0
  34. package/dist/core/cycles/cycle-detector.d.ts +1 -1
  35. package/dist/core/cycles/cycle-detector.d.ts.map +1 -1
  36. package/dist/core/cycles/cycle-detector.js +16 -8
  37. package/dist/core/cycles/cycle-detector.js.map +1 -1
  38. package/dist/core/cycles/index.d.ts +1 -1
  39. package/dist/core/cycles/index.d.ts.map +1 -1
  40. package/dist/core/cycles/index.js +1 -1
  41. package/dist/core/cycles/index.js.map +1 -1
  42. package/dist/core/cycles/types.d.ts +20 -4
  43. package/dist/core/cycles/types.d.ts.map +1 -1
  44. package/dist/core/cycles/types.js +22 -4
  45. package/dist/core/cycles/types.js.map +1 -1
  46. package/dist/core/deadcode/dead-code-detector.d.ts +2 -13
  47. package/dist/core/deadcode/dead-code-detector.d.ts.map +1 -1
  48. package/dist/core/deadcode/dead-code-detector.js +6 -29
  49. package/dist/core/deadcode/dead-code-detector.js.map +1 -1
  50. package/dist/core/deadcode/dead-code-remover.js +4 -4
  51. package/dist/core/deadcode/dead-code-remover.js.map +1 -1
  52. package/dist/core/deadcode/import-cleaner.js +1 -1
  53. package/dist/core/deadcode/import-cleaner.js.map +1 -1
  54. package/dist/core/deadcode/import-parser.d.ts +0 -4
  55. package/dist/core/deadcode/import-parser.d.ts.map +1 -1
  56. package/dist/core/deadcode/import-parser.js +4 -10
  57. package/dist/core/deadcode/import-parser.js.map +1 -1
  58. package/dist/core/deadcode/range-expander.d.ts +0 -4
  59. package/dist/core/deadcode/range-expander.d.ts.map +1 -1
  60. package/dist/core/deadcode/range-expander.js +14 -10
  61. package/dist/core/deadcode/range-expander.js.map +1 -1
  62. package/dist/core/find-references/index.d.ts +3 -3
  63. package/dist/core/find-references/index.d.ts.map +1 -1
  64. package/dist/core/find-references/index.js +2 -2
  65. package/dist/core/find-references/index.js.map +1 -1
  66. package/dist/core/foundations/dependency-graph/dependency-graph.d.ts.map +1 -0
  67. package/dist/core/foundations/dependency-graph/dependency-graph.js.map +1 -0
  68. package/dist/core/foundations/dependency-graph/index.d.ts.map +1 -0
  69. package/dist/core/foundations/dependency-graph/index.js.map +1 -0
  70. package/dist/core/foundations/dependency-graph/types.d.ts.map +1 -0
  71. package/dist/core/foundations/dependency-graph/types.js.map +1 -0
  72. package/dist/core/foundations/file-utils.d.ts +50 -0
  73. package/dist/core/foundations/file-utils.d.ts.map +1 -0
  74. package/dist/core/foundations/file-utils.js +75 -0
  75. package/dist/core/foundations/file-utils.js.map +1 -0
  76. package/dist/core/foundations/index.d.ts +13 -0
  77. package/dist/core/foundations/index.d.ts.map +1 -0
  78. package/dist/core/foundations/index.js +17 -0
  79. package/dist/core/foundations/index.js.map +1 -0
  80. package/dist/core/foundations/indexing/file-index.d.ts.map +1 -0
  81. package/dist/core/foundations/indexing/file-index.js.map +1 -0
  82. package/dist/core/foundations/indexing/index-engine.d.ts.map +1 -0
  83. package/dist/core/foundations/indexing/index-engine.js.map +1 -0
  84. package/dist/core/foundations/indexing/index.d.ts.map +1 -0
  85. package/dist/core/foundations/indexing/index.js.map +1 -0
  86. package/dist/core/foundations/indexing/symbol-index.d.ts.map +1 -0
  87. package/dist/core/foundations/indexing/symbol-index.js.map +1 -0
  88. package/dist/core/{shared → foundations}/indexing/types.d.ts +1 -1
  89. package/dist/core/foundations/indexing/types.d.ts.map +1 -0
  90. package/dist/core/{shared → foundations}/indexing/types.js +11 -1
  91. package/dist/core/foundations/indexing/types.js.map +1 -0
  92. package/dist/core/foundations/symbol-finder/call-site-parser.d.ts.map +1 -0
  93. package/dist/core/foundations/symbol-finder/call-site-parser.js.map +1 -0
  94. package/dist/core/foundations/symbol-finder/index.d.ts.map +1 -0
  95. package/dist/core/foundations/symbol-finder/index.js.map +1 -0
  96. package/dist/core/{shared → foundations}/symbol-finder/symbol-finder.d.ts +24 -10
  97. package/dist/core/foundations/symbol-finder/symbol-finder.d.ts.map +1 -0
  98. package/dist/core/{shared → foundations}/symbol-finder/symbol-finder.js +127 -149
  99. package/dist/core/foundations/symbol-finder/symbol-finder.js.map +1 -0
  100. package/dist/core/foundations/symbol-finder/text-matcher.d.ts.map +1 -0
  101. package/dist/core/foundations/symbol-finder/text-matcher.js.map +1 -0
  102. package/dist/core/foundations/symbol-finder/types.d.ts.map +1 -0
  103. package/dist/core/foundations/symbol-finder/types.js.map +1 -0
  104. package/dist/core/impact/dependency-extractor.d.ts +25 -0
  105. package/dist/core/impact/dependency-extractor.d.ts.map +1 -0
  106. package/dist/core/impact/dependency-extractor.js +65 -0
  107. package/dist/core/impact/dependency-extractor.js.map +1 -0
  108. package/dist/core/impact/file-scanner.d.ts +52 -0
  109. package/dist/core/impact/file-scanner.d.ts.map +1 -0
  110. package/dist/core/impact/file-scanner.js +131 -0
  111. package/dist/core/impact/file-scanner.js.map +1 -0
  112. package/dist/core/impact/impact-analyzer.d.ts +4 -65
  113. package/dist/core/impact/impact-analyzer.d.ts.map +1 -1
  114. package/dist/core/impact/impact-analyzer.js +14 -313
  115. package/dist/core/impact/impact-analyzer.js.map +1 -1
  116. package/dist/core/impact/index.d.ts +3 -0
  117. package/dist/core/impact/index.d.ts.map +1 -1
  118. package/dist/core/impact/index.js +3 -0
  119. package/dist/core/impact/index.js.map +1 -1
  120. package/dist/core/impact/path-resolver.d.ts +35 -0
  121. package/dist/core/impact/path-resolver.d.ts.map +1 -0
  122. package/dist/core/impact/path-resolver.js +166 -0
  123. package/dist/core/impact/path-resolver.js.map +1 -0
  124. package/dist/core/move/file-scanner.d.ts +48 -0
  125. package/dist/core/move/file-scanner.d.ts.map +1 -0
  126. package/dist/core/move/file-scanner.js +137 -0
  127. package/dist/core/move/file-scanner.js.map +1 -0
  128. package/dist/core/move/import-resolver.d.ts +5 -0
  129. package/dist/core/move/import-resolver.d.ts.map +1 -1
  130. package/dist/core/move/import-resolver.js +24 -6
  131. package/dist/core/move/import-resolver.js.map +1 -1
  132. package/dist/core/move/index.d.ts +7 -3
  133. package/dist/core/move/index.d.ts.map +1 -1
  134. package/dist/core/move/index.js +7 -2
  135. package/dist/core/move/index.js.map +1 -1
  136. package/dist/core/move/move-service.d.ts +11 -60
  137. package/dist/core/move/move-service.d.ts.map +1 -1
  138. package/dist/core/move/move-service.js +16 -352
  139. package/dist/core/move/move-service.js.map +1 -1
  140. package/dist/core/move/path-calculator.d.ts +49 -0
  141. package/dist/core/move/path-calculator.d.ts.map +1 -0
  142. package/dist/core/move/path-calculator.js +158 -0
  143. package/dist/core/move/path-calculator.js.map +1 -0
  144. package/dist/core/move/path-parser.d.ts +33 -0
  145. package/dist/core/move/path-parser.d.ts.map +1 -0
  146. package/dist/core/move/path-parser.js +53 -0
  147. package/dist/core/move/path-parser.js.map +1 -0
  148. package/dist/core/move/path-utils.d.ts +70 -0
  149. package/dist/core/move/path-utils.d.ts.map +1 -0
  150. package/dist/core/move/path-utils.js +201 -0
  151. package/dist/core/move/path-utils.js.map +1 -0
  152. package/dist/core/move/types.d.ts +81 -18
  153. package/dist/core/move/types.d.ts.map +1 -1
  154. package/dist/core/move/types.js +73 -5
  155. package/dist/core/move/types.js.map +1 -1
  156. package/dist/core/move-member/change-applier.d.ts +23 -0
  157. package/dist/core/move-member/change-applier.d.ts.map +1 -0
  158. package/dist/core/move-member/change-applier.js +51 -0
  159. package/dist/core/move-member/change-applier.js.map +1 -0
  160. package/dist/core/move-member/extractors/index.d.ts +7 -0
  161. package/dist/core/move-member/extractors/index.d.ts.map +1 -0
  162. package/dist/core/move-member/extractors/index.js +9 -0
  163. package/dist/core/move-member/extractors/index.js.map +1 -0
  164. package/dist/core/move-member/extractors/javascript-extractor.d.ts +29 -0
  165. package/dist/core/move-member/extractors/javascript-extractor.d.ts.map +1 -0
  166. package/dist/core/move-member/extractors/javascript-extractor.js +33 -0
  167. package/dist/core/move-member/extractors/javascript-extractor.js.map +1 -0
  168. package/dist/core/move-member/extractors/typescript-extractor.d.ts +40 -0
  169. package/dist/core/move-member/extractors/typescript-extractor.d.ts.map +1 -0
  170. package/dist/core/move-member/extractors/typescript-extractor.js +286 -0
  171. package/dist/core/move-member/extractors/typescript-extractor.js.map +1 -0
  172. package/dist/core/move-member/file-change-preparer.d.ts +49 -0
  173. package/dist/core/move-member/file-change-preparer.d.ts.map +1 -0
  174. package/dist/core/move-member/file-change-preparer.js +340 -0
  175. package/dist/core/move-member/file-change-preparer.js.map +1 -0
  176. package/dist/core/move-member/index.d.ts +4 -1
  177. package/dist/core/move-member/index.d.ts.map +1 -1
  178. package/dist/core/move-member/index.js +3 -0
  179. package/dist/core/move-member/index.js.map +1 -1
  180. package/dist/core/move-member/member-extractor.d.ts +21 -60
  181. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  182. package/dist/core/move-member/member-extractor.js +59 -335
  183. package/dist/core/move-member/member-extractor.js.map +1 -1
  184. package/dist/core/move-member/move-member-service.d.ts +3 -78
  185. package/dist/core/move-member/move-member-service.d.ts.map +1 -1
  186. package/dist/core/move-member/move-member-service.js +35 -419
  187. package/dist/core/move-member/move-member-service.js.map +1 -1
  188. package/dist/core/move-member/reference-updater.d.ts +73 -0
  189. package/dist/core/move-member/reference-updater.d.ts.map +1 -0
  190. package/dist/core/move-member/reference-updater.js +288 -0
  191. package/dist/core/move-member/reference-updater.js.map +1 -0
  192. package/dist/core/move-member/types.d.ts +17 -2
  193. package/dist/core/move-member/types.d.ts.map +1 -1
  194. package/dist/core/move-member/types.js.map +1 -1
  195. package/dist/core/move-member/utils/range-finder.d.ts +40 -0
  196. package/dist/core/move-member/utils/range-finder.d.ts.map +1 -0
  197. package/dist/core/move-member/utils/range-finder.js +101 -0
  198. package/dist/core/move-member/utils/range-finder.js.map +1 -0
  199. package/dist/core/rename/reference-updater.d.ts +5 -0
  200. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  201. package/dist/core/rename/reference-updater.js +21 -5
  202. package/dist/core/rename/reference-updater.js.map +1 -1
  203. package/dist/core/rename/rename-engine.d.ts +5 -3
  204. package/dist/core/rename/rename-engine.d.ts.map +1 -1
  205. package/dist/core/rename/rename-engine.js +29 -8
  206. package/dist/core/rename/rename-engine.js.map +1 -1
  207. package/dist/core/rename/types.d.ts.map +1 -1
  208. package/dist/core/snapshot/snapshot-generator.d.ts +0 -29
  209. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -1
  210. package/dist/core/snapshot/snapshot-generator.js +6 -183
  211. package/dist/core/snapshot/snapshot-generator.js.map +1 -1
  212. package/dist/core/snapshot/utils/bracket-balancer.d.ts +27 -0
  213. package/dist/core/snapshot/utils/bracket-balancer.d.ts.map +1 -0
  214. package/dist/core/snapshot/utils/bracket-balancer.js +70 -0
  215. package/dist/core/snapshot/utils/bracket-balancer.js.map +1 -0
  216. package/dist/core/snapshot/utils/factory-pattern-detector.d.ts +22 -0
  217. package/dist/core/snapshot/utils/factory-pattern-detector.d.ts.map +1 -0
  218. package/dist/core/snapshot/utils/factory-pattern-detector.js +70 -0
  219. package/dist/core/snapshot/utils/factory-pattern-detector.js.map +1 -0
  220. package/dist/core/snapshot/utils/index.d.ts +7 -0
  221. package/dist/core/snapshot/utils/index.d.ts.map +1 -0
  222. package/dist/core/snapshot/utils/index.js +7 -0
  223. package/dist/core/snapshot/utils/index.js.map +1 -0
  224. package/dist/core/snapshot/utils/symbol-formatter.d.ts +37 -0
  225. package/dist/core/snapshot/utils/symbol-formatter.d.ts.map +1 -0
  226. package/dist/core/snapshot/utils/symbol-formatter.js +89 -0
  227. package/dist/core/snapshot/utils/symbol-formatter.js.map +1 -0
  228. package/dist/infrastructure/changeset/change-applicator.d.ts +1 -1
  229. package/dist/infrastructure/changeset/change-applicator.d.ts.map +1 -1
  230. package/dist/infrastructure/changeset/change-applicator.js +22 -21
  231. package/dist/infrastructure/changeset/change-applicator.js.map +1 -1
  232. package/dist/infrastructure/changeset/changeset-builder.d.ts +2 -2
  233. package/dist/infrastructure/changeset/changeset-builder.d.ts.map +1 -1
  234. package/dist/infrastructure/changeset/changeset-builder.js +11 -6
  235. package/dist/infrastructure/changeset/changeset-builder.js.map +1 -1
  236. package/dist/infrastructure/changeset/changeset-converter.d.ts +1 -1
  237. package/dist/infrastructure/changeset/changeset-converter.d.ts.map +1 -1
  238. package/dist/infrastructure/changeset/changeset-converter.js +9 -8
  239. package/dist/infrastructure/changeset/changeset-converter.js.map +1 -1
  240. package/dist/infrastructure/changeset/index.d.ts +1 -0
  241. package/dist/infrastructure/changeset/index.d.ts.map +1 -1
  242. package/dist/infrastructure/changeset/index.js +2 -0
  243. package/dist/infrastructure/changeset/index.js.map +1 -1
  244. package/dist/infrastructure/changeset/types.d.ts +41 -4
  245. package/dist/infrastructure/changeset/types.d.ts.map +1 -1
  246. package/dist/infrastructure/changeset/types.js +41 -1
  247. package/dist/infrastructure/changeset/types.js.map +1 -1
  248. package/dist/infrastructure/formatters/query-formatter.d.ts +8 -62
  249. package/dist/infrastructure/formatters/query-formatter.d.ts.map +1 -1
  250. package/dist/infrastructure/formatters/query-formatter.js +29 -438
  251. package/dist/infrastructure/formatters/query-formatter.js.map +1 -1
  252. package/dist/infrastructure/formatters/strategies/analyze-formatter.d.ts +24 -0
  253. package/dist/infrastructure/formatters/strategies/analyze-formatter.d.ts.map +1 -0
  254. package/dist/infrastructure/formatters/strategies/analyze-formatter.js +107 -0
  255. package/dist/infrastructure/formatters/strategies/analyze-formatter.js.map +1 -0
  256. package/dist/infrastructure/formatters/strategies/base-formatter.d.ts +67 -0
  257. package/dist/infrastructure/formatters/strategies/base-formatter.d.ts.map +1 -0
  258. package/dist/infrastructure/formatters/strategies/base-formatter.js +75 -0
  259. package/dist/infrastructure/formatters/strategies/base-formatter.js.map +1 -0
  260. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.d.ts +19 -0
  261. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.d.ts.map +1 -0
  262. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.js +77 -0
  263. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.js.map +1 -0
  264. package/dist/infrastructure/formatters/strategies/deps-formatter.d.ts +15 -0
  265. package/dist/infrastructure/formatters/strategies/deps-formatter.d.ts.map +1 -0
  266. package/dist/infrastructure/formatters/strategies/deps-formatter.js +47 -0
  267. package/dist/infrastructure/formatters/strategies/deps-formatter.js.map +1 -0
  268. package/dist/infrastructure/formatters/strategies/find-references-formatter.d.ts +23 -0
  269. package/dist/infrastructure/formatters/strategies/find-references-formatter.d.ts.map +1 -0
  270. package/dist/infrastructure/formatters/strategies/find-references-formatter.js +71 -0
  271. package/dist/infrastructure/formatters/strategies/find-references-formatter.js.map +1 -0
  272. package/dist/infrastructure/formatters/strategies/index.d.ts +11 -0
  273. package/dist/infrastructure/formatters/strategies/index.d.ts.map +1 -0
  274. package/dist/infrastructure/formatters/strategies/index.js +11 -0
  275. package/dist/infrastructure/formatters/strategies/index.js.map +1 -0
  276. package/dist/infrastructure/formatters/strategies/search-formatter.d.ts +15 -0
  277. package/dist/infrastructure/formatters/strategies/search-formatter.d.ts.map +1 -0
  278. package/dist/infrastructure/formatters/strategies/search-formatter.js +32 -0
  279. package/dist/infrastructure/formatters/strategies/search-formatter.js.map +1 -0
  280. package/dist/infrastructure/formatters/strategies/snapshot-formatter.d.ts +20 -0
  281. package/dist/infrastructure/formatters/strategies/snapshot-formatter.d.ts.map +1 -0
  282. package/dist/infrastructure/formatters/strategies/snapshot-formatter.js +101 -0
  283. package/dist/infrastructure/formatters/strategies/snapshot-formatter.js.map +1 -0
  284. package/dist/infrastructure/parser/registry.js.map +1 -1
  285. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  286. package/dist/interfaces/cli/cli.js +1 -2
  287. package/dist/interfaces/cli/cli.js.map +1 -1
  288. package/dist/interfaces/cli/commands/call-hierarchy.command.js +1 -1
  289. package/dist/interfaces/cli/commands/call-hierarchy.command.js.map +1 -1
  290. package/dist/interfaces/cli/commands/change-signature.command.js +3 -2
  291. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -1
  292. package/dist/interfaces/cli/commands/deadcode.command.js +1 -1
  293. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -1
  294. package/dist/interfaces/cli/commands/find-references.command.js +2 -2
  295. package/dist/interfaces/cli/commands/find-references.command.js.map +1 -1
  296. package/dist/interfaces/cli/commands/index.d.ts +0 -1
  297. package/dist/interfaces/cli/commands/index.d.ts.map +1 -1
  298. package/dist/interfaces/cli/commands/index.js +0 -1
  299. package/dist/interfaces/cli/commands/index.js.map +1 -1
  300. package/dist/interfaces/cli/commands/move.command.d.ts +1 -0
  301. package/dist/interfaces/cli/commands/move.command.d.ts.map +1 -1
  302. package/dist/interfaces/cli/commands/move.command.js +127 -11
  303. package/dist/interfaces/cli/commands/move.command.js.map +1 -1
  304. package/dist/interfaces/cli/commands/rename.command.d.ts.map +1 -1
  305. package/dist/interfaces/cli/commands/rename.command.js +116 -8
  306. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  307. package/dist/interfaces/cli/preview-output-handler.d.ts.map +1 -1
  308. package/dist/interfaces/cli/preview-output-handler.js.map +1 -1
  309. package/dist/interfaces/cli/unified-output-handler.d.ts.map +1 -1
  310. package/dist/interfaces/cli/unified-output-handler.js.map +1 -1
  311. package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -1
  312. package/dist/plugins/javascript/declaration-analyzer.js +9 -0
  313. package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
  314. package/dist/plugins/javascript/parser.d.ts +0 -2
  315. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  316. package/dist/plugins/javascript/parser.js +3 -19
  317. package/dist/plugins/javascript/parser.js.map +1 -1
  318. package/dist/plugins/javascript/types.d.ts.map +1 -1
  319. package/dist/plugins/javascript/types.js.map +1 -1
  320. package/dist/plugins/shared/index.d.ts +1 -0
  321. package/dist/plugins/shared/index.d.ts.map +1 -1
  322. package/dist/plugins/shared/index.js +2 -0
  323. package/dist/plugins/shared/index.js.map +1 -1
  324. package/dist/plugins/shared/utils/async.d.ts.map +1 -1
  325. package/dist/plugins/shared/utils/async.js.map +1 -1
  326. package/dist/plugins/shared/utils/object.js +5 -5
  327. package/dist/plugins/shared/utils/object.js.map +1 -1
  328. package/dist/plugins/shared/validators.d.ts +15 -0
  329. package/dist/plugins/shared/validators.d.ts.map +1 -0
  330. package/dist/plugins/shared/validators.js +29 -0
  331. package/dist/plugins/shared/validators.js.map +1 -0
  332. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
  333. package/dist/plugins/typescript/declaration-analyzer.js +4 -0
  334. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
  335. package/dist/plugins/typescript/dependency-analyzer.d.ts.map +1 -1
  336. package/dist/plugins/typescript/dependency-analyzer.js.map +1 -1
  337. package/dist/plugins/typescript/parser.d.ts +0 -2
  338. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  339. package/dist/plugins/typescript/parser.js +3 -19
  340. package/dist/plugins/typescript/parser.js.map +1 -1
  341. package/dist/plugins/typescript/reference-finder.d.ts.map +1 -1
  342. package/dist/plugins/typescript/reference-finder.js +11 -2
  343. package/dist/plugins/typescript/reference-finder.js.map +1 -1
  344. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  345. package/dist/plugins/typescript/symbol-extractor.js +6 -2
  346. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  347. package/dist/plugins/typescript/types.d.ts.map +1 -1
  348. package/dist/plugins/typescript/types.js.map +1 -1
  349. package/package.json +1 -1
  350. package/dist/core/shared/dependency-graph/dependency-graph.d.ts.map +0 -1
  351. package/dist/core/shared/dependency-graph/dependency-graph.js.map +0 -1
  352. package/dist/core/shared/dependency-graph/index.d.ts.map +0 -1
  353. package/dist/core/shared/dependency-graph/index.js.map +0 -1
  354. package/dist/core/shared/dependency-graph/types.d.ts.map +0 -1
  355. package/dist/core/shared/dependency-graph/types.js.map +0 -1
  356. package/dist/core/shared/index.d.ts +0 -8
  357. package/dist/core/shared/index.d.ts.map +0 -1
  358. package/dist/core/shared/index.js +0 -11
  359. package/dist/core/shared/index.js.map +0 -1
  360. package/dist/core/shared/indexing/file-index.d.ts.map +0 -1
  361. package/dist/core/shared/indexing/file-index.js.map +0 -1
  362. package/dist/core/shared/indexing/index-engine.d.ts.map +0 -1
  363. package/dist/core/shared/indexing/index-engine.js.map +0 -1
  364. package/dist/core/shared/indexing/index.d.ts.map +0 -1
  365. package/dist/core/shared/indexing/index.js.map +0 -1
  366. package/dist/core/shared/indexing/symbol-index.d.ts.map +0 -1
  367. package/dist/core/shared/indexing/symbol-index.js.map +0 -1
  368. package/dist/core/shared/indexing/types.d.ts.map +0 -1
  369. package/dist/core/shared/indexing/types.js.map +0 -1
  370. package/dist/core/shared/symbol-finder/call-site-parser.d.ts.map +0 -1
  371. package/dist/core/shared/symbol-finder/call-site-parser.js.map +0 -1
  372. package/dist/core/shared/symbol-finder/index.d.ts.map +0 -1
  373. package/dist/core/shared/symbol-finder/index.js.map +0 -1
  374. package/dist/core/shared/symbol-finder/symbol-finder.d.ts.map +0 -1
  375. package/dist/core/shared/symbol-finder/symbol-finder.js.map +0 -1
  376. package/dist/core/shared/symbol-finder/text-matcher.d.ts.map +0 -1
  377. package/dist/core/shared/symbol-finder/text-matcher.js.map +0 -1
  378. package/dist/core/shared/symbol-finder/types.d.ts.map +0 -1
  379. package/dist/core/shared/symbol-finder/types.js.map +0 -1
  380. package/dist/interfaces/cli/commands/move-member.command.d.ts +0 -11
  381. package/dist/interfaces/cli/commands/move-member.command.d.ts.map +0 -1
  382. package/dist/interfaces/cli/commands/move-member.command.js +0 -140
  383. package/dist/interfaces/cli/commands/move-member.command.js.map +0 -1
  384. /package/dist/core/{shared → foundations}/dependency-graph/dependency-graph.d.ts +0 -0
  385. /package/dist/core/{shared → foundations}/dependency-graph/dependency-graph.js +0 -0
  386. /package/dist/core/{shared → foundations}/dependency-graph/index.d.ts +0 -0
  387. /package/dist/core/{shared → foundations}/dependency-graph/index.js +0 -0
  388. /package/dist/core/{shared → foundations}/dependency-graph/types.d.ts +0 -0
  389. /package/dist/core/{shared → foundations}/dependency-graph/types.js +0 -0
  390. /package/dist/core/{shared → foundations}/indexing/file-index.d.ts +0 -0
  391. /package/dist/core/{shared → foundations}/indexing/file-index.js +0 -0
  392. /package/dist/core/{shared → foundations}/indexing/index-engine.d.ts +0 -0
  393. /package/dist/core/{shared → foundations}/indexing/index-engine.js +0 -0
  394. /package/dist/core/{shared → foundations}/indexing/index.d.ts +0 -0
  395. /package/dist/core/{shared → foundations}/indexing/index.js +0 -0
  396. /package/dist/core/{shared → foundations}/indexing/symbol-index.d.ts +0 -0
  397. /package/dist/core/{shared → foundations}/indexing/symbol-index.js +0 -0
  398. /package/dist/core/{shared → foundations}/symbol-finder/call-site-parser.d.ts +0 -0
  399. /package/dist/core/{shared → foundations}/symbol-finder/call-site-parser.js +0 -0
  400. /package/dist/core/{shared → foundations}/symbol-finder/index.d.ts +0 -0
  401. /package/dist/core/{shared → foundations}/symbol-finder/index.js +0 -0
  402. /package/dist/core/{shared → foundations}/symbol-finder/text-matcher.d.ts +0 -0
  403. /package/dist/core/{shared → foundations}/symbol-finder/text-matcher.js +0 -0
  404. /package/dist/core/{shared → foundations}/symbol-finder/types.d.ts +0 -0
  405. /package/dist/core/{shared → foundations}/symbol-finder/types.js +0 -0
@@ -3,9 +3,11 @@
3
3
  * 分析檔案變更的影響範圍,提供依賴追蹤和統計功能
4
4
  */
5
5
  import * as path from 'path';
6
- import { DependencyGraph } from '../shared/dependency-graph/index.js';
6
+ import { DependencyGraph } from '../foundations/dependency-graph/index.js';
7
7
  import { CycleDetector } from '../cycles/index.js';
8
- import { DependencyType } from '../../shared/types/index.js';
8
+ import { PathResolver } from './path-resolver.js';
9
+ import { FileScanner } from './file-scanner.js';
10
+ import { DependencyExtractor } from './dependency-extractor.js';
9
11
  /**
10
12
  * 影響分析器類別
11
13
  */
@@ -15,6 +17,9 @@ export class ImpactAnalyzer {
15
17
  cache;
16
18
  options;
17
19
  fileSystem;
20
+ pathResolver;
21
+ fileScanner;
22
+ dependencyExtractor;
18
23
  constructor(fileSystem, options) {
19
24
  this.graph = new DependencyGraph();
20
25
  this.cycleDetector = new CycleDetector();
@@ -23,6 +28,10 @@ export class ImpactAnalyzer {
23
28
  // 使用預設選項並合併使用者選項
24
29
  const defaultOptions = this.createDefaultAnalysisOptions();
25
30
  this.options = { ...defaultOptions, ...options };
31
+ // 初始化子模組
32
+ this.pathResolver = new PathResolver(fileSystem, this.options);
33
+ this.fileScanner = new FileScanner(fileSystem, this.options);
34
+ this.dependencyExtractor = new DependencyExtractor(this.options, this.pathResolver, this.fileScanner);
26
35
  }
27
36
  /**
28
37
  * 分析單個檔案的依賴關係
@@ -51,7 +60,7 @@ export class ImpactAnalyzer {
51
60
  try {
52
61
  const content = await this.fileSystem.readFile(normalizedPath, 'utf-8');
53
62
  const stat = await this.fileSystem.getStats(normalizedPath);
54
- const dependencies = await this.extractDependencies(content, normalizedPath);
63
+ const dependencies = await this.dependencyExtractor.extractDependencies(content, normalizedPath);
55
64
  const result = {
56
65
  filePath: normalizedPath,
57
66
  dependencies,
@@ -80,7 +89,7 @@ export class ImpactAnalyzer {
80
89
  */
81
90
  async analyzeProject(projectPath) {
82
91
  const normalizedProjectPath = path.resolve(projectPath);
83
- const files = await this.findSourceFiles(normalizedProjectPath);
92
+ const files = await this.fileScanner.findSourceFiles(normalizedProjectPath);
84
93
  const fileDependencies = [];
85
94
  // 並行分析檔案(根據 concurrency 設定)
86
95
  const concurrency = this.options.concurrency || 4;
@@ -170,7 +179,7 @@ export class ImpactAnalyzer {
170
179
  for (const affectedFile of allAffected) {
171
180
  // 找出直接測試此檔案的測試檔案
172
181
  const dependents = this.getDependents(affectedFile);
173
- const tests = dependents.filter(dep => this.isTestFile(dep));
182
+ const tests = dependents.filter(dep => this.fileScanner.isTestFile(dep));
174
183
  testFiles.push(...tests);
175
184
  }
176
185
  return [...new Set(testFiles)]; // 去重
@@ -207,200 +216,6 @@ export class ImpactAnalyzer {
207
216
  getGraph() {
208
217
  return this.graph;
209
218
  }
210
- /**
211
- * 從檔案內容中提取依賴關係
212
- * @param content 檔案內容
213
- * @param filePath 檔案路徑
214
- * @returns 依賴列表
215
- */
216
- async extractDependencies(content, filePath) {
217
- const dependencies = [];
218
- const fileExt = path.extname(filePath);
219
- try {
220
- // 簡單的正則表達式解析(實際應該使用 AST)
221
- let importRegex;
222
- switch (fileExt) {
223
- case '.ts':
224
- case '.tsx':
225
- case '.js':
226
- case '.jsx':
227
- // 支援 import type { ... } 語法
228
- importRegex = /import\s+(?:type\s+)?(?:{[^}]*}|\*\s+as\s+\w+|\w+)?\s*from\s+['"`]([^'"`]+)['"`]/g;
229
- break;
230
- default:
231
- return dependencies; // 不支援的檔案類型
232
- }
233
- let match;
234
- while ((match = importRegex.exec(content)) !== null) {
235
- const importPath = match[1];
236
- const resolvedPath = await this.resolvePath(importPath, filePath);
237
- if (resolvedPath && this.shouldIncludeDependency(resolvedPath.resolvedPath)) {
238
- dependencies.push({
239
- path: resolvedPath.resolvedPath, // 使用解析後的絕對路徑
240
- type: DependencyType.Import,
241
- isRelative: resolvedPath.isRelative,
242
- importedSymbols: [] // 簡化實作,實際應該解析 import 語句
243
- });
244
- }
245
- }
246
- }
247
- catch (error) {
248
- // 解析錯誤,回傳空陣列而不拋出錯誤
249
- if (this.options.verbose !== false) {
250
- console.warn(`解析檔案 ${filePath} 時發生錯誤:`, error);
251
- }
252
- }
253
- return dependencies;
254
- }
255
- /**
256
- * 解析路徑
257
- * @param importPath 匯入路徑
258
- * @param fromFile 來源檔案
259
- * @returns 解析結果
260
- */
261
- async resolvePath(importPath, fromFile) {
262
- const isRelative = importPath.startsWith('.') || importPath.startsWith('/');
263
- // 檢查是否為路徑別名
264
- const aliasResult = this.resolvePathAlias(importPath);
265
- if (aliasResult) {
266
- return this.resolveWithExtensions(aliasResult, false);
267
- }
268
- if (!isRelative && !this.options.includeNodeModules) {
269
- return null; // 忽略 node_modules
270
- }
271
- if (isRelative) {
272
- const dir = path.dirname(fromFile);
273
- const resolvedPath = path.resolve(dir, importPath);
274
- return this.resolveWithExtensions(resolvedPath, true);
275
- }
276
- else {
277
- // 非相對路徑(例如 npm 套件)
278
- return {
279
- resolvedPath: importPath,
280
- isRelative: false,
281
- exists: true, // 假設存在
282
- extension: ''
283
- };
284
- }
285
- }
286
- /**
287
- * 解析路徑別名
288
- * @param importPath 匯入路徑
289
- * @returns 解析後的絕對路徑,若非路徑別名則回傳 null
290
- */
291
- resolvePathAlias(importPath) {
292
- const pathAliases = this.options.pathAliases;
293
- if (!pathAliases || Object.keys(pathAliases).length === 0) {
294
- return null;
295
- }
296
- // 按別名長度降序排列,優先匹配較長的別名
297
- const sortedAliases = Object.keys(pathAliases).sort((a, b) => b.length - a.length);
298
- for (const alias of sortedAliases) {
299
- // 精確匹配別名(如 @/utils)
300
- if (importPath === alias) {
301
- return pathAliases[alias];
302
- }
303
- // 匹配別名前綴(如 @/utils/helper 匹配 @/)
304
- const aliasPrefix = alias.endsWith('/') ? alias : alias + '/';
305
- if (importPath.startsWith(aliasPrefix)) {
306
- const relativePart = importPath.slice(aliasPrefix.length);
307
- return path.join(pathAliases[alias], relativePart);
308
- }
309
- // 匹配別名前綴(如 @/utils 匹配 @)
310
- if (importPath.startsWith(alias + '/')) {
311
- const relativePart = importPath.slice(alias.length + 1);
312
- return path.join(pathAliases[alias], relativePart);
313
- }
314
- }
315
- return null;
316
- }
317
- /**
318
- * 嘗試常見副檔名解析路徑
319
- * @param basePath 基礎路徑
320
- * @param isRelative 是否為相對路徑
321
- * @returns 解析結果
322
- */
323
- async resolveWithExtensions(basePath, isRelative) {
324
- const extensions = ['.ts', '.tsx', '.js', '.jsx'];
325
- // 移除 .js/.jsx 副檔名(TypeScript 專案中 import './foo.js' 實際上指向 ./foo.ts)
326
- let normalizedPath = basePath;
327
- if (basePath.endsWith('.js') || basePath.endsWith('.jsx')) {
328
- normalizedPath = basePath.replace(/\.jsx?$/, '');
329
- }
330
- let finalPath = normalizedPath;
331
- let exists = false;
332
- // 先檢查原始路徑是否存在
333
- try {
334
- if (await this.fileSystem.exists(normalizedPath)) {
335
- // 如果是目錄,嘗試解析 index 檔案
336
- if (await this.fileSystem.isDirectory(normalizedPath)) {
337
- for (const ext of extensions) {
338
- const indexPath = path.join(normalizedPath, 'index' + ext);
339
- try {
340
- if (await this.fileSystem.exists(indexPath)) {
341
- return {
342
- resolvedPath: indexPath,
343
- isRelative,
344
- exists: true,
345
- extension: ext
346
- };
347
- }
348
- }
349
- catch {
350
- // 繼續嘗試
351
- }
352
- }
353
- }
354
- else {
355
- return {
356
- resolvedPath: normalizedPath,
357
- isRelative,
358
- exists: true,
359
- extension: path.extname(normalizedPath)
360
- };
361
- }
362
- }
363
- }
364
- catch {
365
- // 繼續嘗試副檔名
366
- }
367
- // 嘗試常見的副檔名
368
- for (const ext of extensions) {
369
- const pathWithExt = normalizedPath + ext;
370
- try {
371
- if (await this.fileSystem.exists(pathWithExt)) {
372
- finalPath = pathWithExt;
373
- exists = true;
374
- break;
375
- }
376
- }
377
- catch {
378
- // 繼續嘗試下個副檔名
379
- }
380
- }
381
- // 嘗試 index 檔案(針對目錄式匯入)
382
- if (!exists) {
383
- for (const ext of extensions) {
384
- const indexPath = path.join(normalizedPath, 'index' + ext);
385
- try {
386
- if (await this.fileSystem.exists(indexPath)) {
387
- finalPath = indexPath;
388
- exists = true;
389
- break;
390
- }
391
- }
392
- catch {
393
- // 繼續嘗試
394
- }
395
- }
396
- }
397
- return {
398
- resolvedPath: finalPath,
399
- isRelative,
400
- exists,
401
- extension: path.extname(finalPath)
402
- };
403
- }
404
219
  /**
405
220
  * 更新依賴圖
406
221
  * @param fileDependencies 檔案依賴資訊
@@ -420,120 +235,6 @@ export class ImpactAnalyzer {
420
235
  this.graph.addDependency(filePath, dep.path);
421
236
  }
422
237
  }
423
- /**
424
- * 找出專案中的原始檔案
425
- * @param projectPath 專案路徑(可以是檔案或目錄)
426
- * @returns 檔案路徑列表
427
- */
428
- async findSourceFiles(projectPath) {
429
- const files = [];
430
- // 檢查路徑是檔案還是目錄
431
- try {
432
- const stat = await this.fileSystem.getStats(projectPath);
433
- // 如果是檔案,直接返回該檔案
434
- if (stat.isFile) {
435
- if (this.isIncluded(projectPath)) {
436
- return [projectPath];
437
- }
438
- return [];
439
- }
440
- // 如果不是目錄也不是檔案,返回空陣列
441
- if (!stat.isDirectory) {
442
- return [];
443
- }
444
- }
445
- catch {
446
- // 路徑不存在或無法訪問
447
- return [];
448
- }
449
- const traverse = async (dir, depth = 0) => {
450
- if (depth > this.options.maxDepth) {
451
- return;
452
- }
453
- try {
454
- const entries = await this.fileSystem.readDirectory(dir);
455
- for (const entry of entries) {
456
- // 檢查排除模式
457
- if (this.isExcluded(entry.path)) {
458
- continue;
459
- }
460
- if (entry.isDirectory) {
461
- await traverse(entry.path, depth + 1);
462
- }
463
- else if (entry.isFile && this.isIncluded(entry.path)) {
464
- files.push(entry.path);
465
- }
466
- }
467
- }
468
- catch (error) {
469
- console.warn(`無法讀取目錄 ${dir}:`, error);
470
- }
471
- };
472
- await traverse(projectPath);
473
- return files;
474
- }
475
- /**
476
- * 檢查檔案是否應該被排除
477
- * @param filePath 檔案路徑
478
- * @returns 是否排除
479
- */
480
- isExcluded(filePath) {
481
- return this.options.excludePatterns.some(pattern => {
482
- return filePath.includes(pattern) || this.matchGlob(filePath, pattern);
483
- });
484
- }
485
- /**
486
- * 檢查檔案是否應該被包含
487
- * @param filePath 檔案路徑
488
- * @returns 是否包含
489
- */
490
- isIncluded(filePath) {
491
- return this.options.includePatterns.some(pattern => {
492
- return this.matchGlob(filePath, pattern);
493
- });
494
- }
495
- /**
496
- * 簡單的 glob 模式匹配
497
- * @param filePath 檔案路徑
498
- * @param pattern glob 模式
499
- * @returns 是否匹配
500
- */
501
- matchGlob(filePath, pattern) {
502
- // 將 ** 替換為特殊標記,避免與 * 衝突
503
- let regexPattern = pattern.replace(/\*\*/g, '<!DOUBLE_STAR!>');
504
- // 替換單個 *
505
- regexPattern = regexPattern.replace(/\*/g, '[^/]*');
506
- // 替換 **(之前的特殊標記)為匹配任意路徑
507
- regexPattern = regexPattern.replace(/<!DOUBLE_STAR!>/g, '.*');
508
- // 替換 ?
509
- regexPattern = regexPattern.replace(/\?/g, '.');
510
- const regex = new RegExp(`^${regexPattern}$`);
511
- return regex.test(filePath);
512
- }
513
- /**
514
- * 檢查是否應該包含此依賴
515
- * @param resolvedPath 解析後的路徑
516
- * @returns 是否包含
517
- */
518
- shouldIncludeDependency(resolvedPath) {
519
- if (!this.options.includeNodeModules && resolvedPath.includes('node_modules')) {
520
- return false;
521
- }
522
- return !this.isExcluded(resolvedPath);
523
- }
524
- /**
525
- * 檢查是否為測試檔案
526
- * @param filePath 檔案路徑
527
- * @returns 是否為測試檔案
528
- */
529
- isTestFile(filePath) {
530
- const fileName = path.basename(filePath);
531
- return fileName.includes('.test.') ||
532
- fileName.includes('.spec.') ||
533
- filePath.includes('__tests__') ||
534
- filePath.includes('/test/') ||
535
- filePath.includes('/tests/');
536
- }
537
238
  /**
538
239
  * 計算影響分數
539
240
  * @param directAffected 直接影響數量
@@ -1 +1 @@
1
- {"version":3,"file":"impact-analyzer.js","sourceRoot":"","sources":["../../../src/core/impact/impact-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"impact-analyzer.js","sourceRoot":"","sources":["../../../src/core/impact/impact-analyzer.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@ import { ImpactAnalyzer } from './impact-analyzer.js';
5
5
  import type { IFileSystem } from '../../infrastructure/storage/index.js';
6
6
  import type { ExtendedDependencyAnalysisOptions } from './types.js';
7
7
  export { ImpactAnalyzer };
8
+ export { PathResolver } from './path-resolver.js';
9
+ export { FileScanner } from './file-scanner.js';
10
+ export { DependencyExtractor } from './dependency-extractor.js';
8
11
  export type { FileDependencies, ProjectDependencies, DependencyStats, ImpactAnalysisResult, DependencyAnalysisOptions, DependencyQueryOptions, PathResolutionResult, ExtendedDependencyAnalysisOptions } from './types.js';
9
12
  export { createDefaultAnalysisOptions, createDefaultQueryOptions, isFileDependencies, isProjectDependencies } from './types.js';
10
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/impact/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,iCAAiC,EAClC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,WAAW,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,GACnD,cAAc,CAEhB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/impact/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,iCAAiC,EAClC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,WAAW,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,GACnD,cAAc,CAEhB"}
@@ -3,6 +3,9 @@
3
3
  */
4
4
  import { ImpactAnalyzer } from './impact-analyzer.js';
5
5
  export { ImpactAnalyzer };
6
+ export { PathResolver } from './path-resolver.js';
7
+ export { FileScanner } from './file-scanner.js';
8
+ export { DependencyExtractor } from './dependency-extractor.js';
6
9
  export { createDefaultAnalysisOptions, createDefaultQueryOptions, isFileDependencies, isProjectDependencies } from './types.js';
7
10
  /**
8
11
  * 建立影響分析器的便利函式
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/impact/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,CAAC;AAa1B,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAuB,EACvB,OAAoD;IAEpD,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/impact/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAahE,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAuB,EACvB,OAAoD;IAEpD,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 路徑解析器
3
+ * 負責解析 import 路徑,包含路徑別名和副檔名解析
4
+ */
5
+ import type { IFileSystem } from '../../infrastructure/storage/index.js';
6
+ import type { PathResolutionResult, ExtendedDependencyAnalysisOptions } from './types.js';
7
+ /**
8
+ * 路徑解析器類別
9
+ */
10
+ export declare class PathResolver {
11
+ private fileSystem;
12
+ private options;
13
+ constructor(fileSystem: IFileSystem, options: ExtendedDependencyAnalysisOptions);
14
+ /**
15
+ * 解析路徑
16
+ * @param importPath 匯入路徑
17
+ * @param fromFile 來源檔案
18
+ * @returns 解析結果
19
+ */
20
+ resolvePath(importPath: string, fromFile: string): Promise<PathResolutionResult | null>;
21
+ /**
22
+ * 解析路徑別名
23
+ * @param importPath 匯入路徑
24
+ * @returns 解析後的絕對路徑,若非路徑別名則回傳 null
25
+ */
26
+ private resolvePathAlias;
27
+ /**
28
+ * 嘗試常見副檔名解析路徑
29
+ * @param basePath 基礎路徑
30
+ * @param isRelative 是否為相對路徑
31
+ * @returns 解析結果
32
+ */
33
+ private resolveWithExtensions;
34
+ }
35
+ //# sourceMappingURL=path-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/impact/path-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAE1F;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAoC;gBAEvC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,iCAAiC;IAK/E;;;;;OAKG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IA4BvC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;;;;OAKG;YACW,qBAAqB;CAqFpC"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * 路徑解析器
3
+ * 負責解析 import 路徑,包含路徑別名和副檔名解析
4
+ */
5
+ import * as path from 'path';
6
+ /**
7
+ * 路徑解析器類別
8
+ */
9
+ export class PathResolver {
10
+ fileSystem;
11
+ options;
12
+ constructor(fileSystem, options) {
13
+ this.fileSystem = fileSystem;
14
+ this.options = options;
15
+ }
16
+ /**
17
+ * 解析路徑
18
+ * @param importPath 匯入路徑
19
+ * @param fromFile 來源檔案
20
+ * @returns 解析結果
21
+ */
22
+ async resolvePath(importPath, fromFile) {
23
+ const isRelative = importPath.startsWith('.') || importPath.startsWith('/');
24
+ // 檢查是否為路徑別名
25
+ const aliasResult = this.resolvePathAlias(importPath);
26
+ if (aliasResult) {
27
+ return this.resolveWithExtensions(aliasResult, false);
28
+ }
29
+ if (!isRelative && !this.options.includeNodeModules) {
30
+ return null; // 忽略 node_modules
31
+ }
32
+ if (isRelative) {
33
+ const dir = path.dirname(fromFile);
34
+ const resolvedPath = path.resolve(dir, importPath);
35
+ return this.resolveWithExtensions(resolvedPath, true);
36
+ }
37
+ else {
38
+ // 非相對路徑(例如 npm 套件)
39
+ return {
40
+ resolvedPath: importPath,
41
+ isRelative: false,
42
+ exists: true, // 假設存在
43
+ extension: ''
44
+ };
45
+ }
46
+ }
47
+ /**
48
+ * 解析路徑別名
49
+ * @param importPath 匯入路徑
50
+ * @returns 解析後的絕對路徑,若非路徑別名則回傳 null
51
+ */
52
+ resolvePathAlias(importPath) {
53
+ const pathAliases = this.options.pathAliases;
54
+ if (!pathAliases || Object.keys(pathAliases).length === 0) {
55
+ return null;
56
+ }
57
+ // 按別名長度降序排列,優先匹配較長的別名
58
+ const sortedAliases = Object.keys(pathAliases).sort((a, b) => b.length - a.length);
59
+ for (const alias of sortedAliases) {
60
+ // 精確匹配別名(如 @/utils)
61
+ if (importPath === alias) {
62
+ return pathAliases[alias];
63
+ }
64
+ // 匹配別名前綴(如 @/utils/helper 匹配 @/)
65
+ const aliasPrefix = alias.endsWith('/') ? alias : alias + '/';
66
+ if (importPath.startsWith(aliasPrefix)) {
67
+ const relativePart = importPath.slice(aliasPrefix.length);
68
+ return path.join(pathAliases[alias], relativePart);
69
+ }
70
+ // 匹配別名前綴(如 @/utils 匹配 @)
71
+ if (importPath.startsWith(alias + '/')) {
72
+ const relativePart = importPath.slice(alias.length + 1);
73
+ return path.join(pathAliases[alias], relativePart);
74
+ }
75
+ }
76
+ return null;
77
+ }
78
+ /**
79
+ * 嘗試常見副檔名解析路徑
80
+ * @param basePath 基礎路徑
81
+ * @param isRelative 是否為相對路徑
82
+ * @returns 解析結果
83
+ */
84
+ async resolveWithExtensions(basePath, isRelative) {
85
+ const extensions = ['.ts', '.tsx', '.js', '.jsx'];
86
+ // 移除 .js/.jsx 副檔名(TypeScript 專案中 import './foo.js' 實際上指向 ./foo.ts)
87
+ let normalizedPath = basePath;
88
+ if (basePath.endsWith('.js') || basePath.endsWith('.jsx')) {
89
+ normalizedPath = basePath.replace(/\.jsx?$/, '');
90
+ }
91
+ let finalPath = normalizedPath;
92
+ let exists = false;
93
+ // 先檢查原始路徑是否存在
94
+ try {
95
+ if (await this.fileSystem.exists(normalizedPath)) {
96
+ // 如果是目錄,嘗試解析 index 檔案
97
+ if (await this.fileSystem.isDirectory(normalizedPath)) {
98
+ for (const ext of extensions) {
99
+ const indexPath = path.join(normalizedPath, 'index' + ext);
100
+ try {
101
+ if (await this.fileSystem.exists(indexPath)) {
102
+ return {
103
+ resolvedPath: indexPath,
104
+ isRelative,
105
+ exists: true,
106
+ extension: ext
107
+ };
108
+ }
109
+ }
110
+ catch {
111
+ // 繼續嘗試
112
+ }
113
+ }
114
+ }
115
+ else {
116
+ return {
117
+ resolvedPath: normalizedPath,
118
+ isRelative,
119
+ exists: true,
120
+ extension: path.extname(normalizedPath)
121
+ };
122
+ }
123
+ }
124
+ }
125
+ catch {
126
+ // 繼續嘗試副檔名
127
+ }
128
+ // 嘗試常見的副檔名
129
+ for (const ext of extensions) {
130
+ const pathWithExt = normalizedPath + ext;
131
+ try {
132
+ if (await this.fileSystem.exists(pathWithExt)) {
133
+ finalPath = pathWithExt;
134
+ exists = true;
135
+ break;
136
+ }
137
+ }
138
+ catch {
139
+ // 繼續嘗試下個副檔名
140
+ }
141
+ }
142
+ // 嘗試 index 檔案(針對目錄式匯入)
143
+ if (!exists) {
144
+ for (const ext of extensions) {
145
+ const indexPath = path.join(normalizedPath, 'index' + ext);
146
+ try {
147
+ if (await this.fileSystem.exists(indexPath)) {
148
+ finalPath = indexPath;
149
+ exists = true;
150
+ break;
151
+ }
152
+ }
153
+ catch {
154
+ // 繼續嘗試
155
+ }
156
+ }
157
+ }
158
+ return {
159
+ resolvedPath: finalPath,
160
+ isRelative,
161
+ exists,
162
+ extension: path.extname(finalPath)
163
+ };
164
+ }
165
+ }
166
+ //# sourceMappingURL=path-resolver.js.map