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
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Changeset 建構器
3
+ * 提供流式 API 建構變更集
4
+ */
5
+ import { FileOperationType, ChangesetCommand } from './types.js';
6
+ /**
7
+ * Changeset 建構器 - 流式 API
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const changeset = createChangesetBuilder()
12
+ * .forCommand('rename')
13
+ * .withDescription('Rename foo to bar')
14
+ * .addTextChange('/path/to/file.ts', [
15
+ * { range: { start: { line: 1, column: 1 }, end: { line: 1, column: 4 } }, newText: 'bar' }
16
+ * ])
17
+ * .build();
18
+ * ```
19
+ */
20
+ export class ChangesetBuilder {
21
+ /** 文字變更列表 */
22
+ textChanges = [];
23
+ /** 檔案操作列表 */
24
+ fileOperations = [];
25
+ /** 變更描述 */
26
+ description = '';
27
+ /** 命令類型 */
28
+ command = ChangesetCommand.Rename;
29
+ /** 錯誤訊息列表 */
30
+ errors = [];
31
+ /** 警告訊息列表 */
32
+ warnings = [];
33
+ /**
34
+ * 設定命令類型
35
+ * @param command - 命令類型
36
+ * @returns this - 支援鏈式調用
37
+ */
38
+ forCommand(command) {
39
+ this.command = command;
40
+ return this;
41
+ }
42
+ /**
43
+ * 設定變更描述
44
+ * @param description - 變更描述
45
+ * @returns this - 支援鏈式調用
46
+ */
47
+ withDescription(description) {
48
+ this.description = description;
49
+ return this;
50
+ }
51
+ /**
52
+ * 新增檔案文字變更
53
+ * 如果同檔案已存在變更,自動合併 edits
54
+ *
55
+ * @param filePath - 檔案路徑
56
+ * @param edits - 文字編輯列表
57
+ * @param operationType - 操作類型(可選)
58
+ * @returns this - 支援鏈式調用
59
+ */
60
+ addTextChange(filePath, edits, operationType) {
61
+ const existing = this.textChanges.find(tc => tc.filePath === filePath);
62
+ if (existing) {
63
+ // 合併到現有的變更,去除重複的 edits(根據 range 比對)
64
+ const existingIndex = this.textChanges.indexOf(existing);
65
+ const deduplicatedEdits = edits.filter(newEdit => !existing.edits.some(existingEdit => existingEdit.range.start.line === newEdit.range.start.line
66
+ && existingEdit.range.start.column === newEdit.range.start.column
67
+ && existingEdit.range.end.line === newEdit.range.end.line
68
+ && existingEdit.range.end.column === newEdit.range.end.column));
69
+ this.textChanges[existingIndex] = {
70
+ ...existing,
71
+ edits: [...existing.edits, ...deduplicatedEdits],
72
+ operationType: operationType ?? existing.operationType
73
+ };
74
+ }
75
+ else {
76
+ // 新增變更
77
+ this.textChanges.push({
78
+ filePath,
79
+ edits,
80
+ operationType
81
+ });
82
+ }
83
+ return this;
84
+ }
85
+ /**
86
+ * 新增檔案建立操作
87
+ * @param filePath - 檔案路徑
88
+ * @param content - 檔案內容
89
+ * @returns this - 支援鏈式調用
90
+ */
91
+ addFileCreate(filePath, content) {
92
+ const existing = this.fileOperations.find(op => op.sourcePath === filePath);
93
+ if (existing) {
94
+ this.warnings.push(`重複的檔案操作: 已存在對 ${filePath} 的 ${existing.type} 操作`);
95
+ }
96
+ this.fileOperations.push({
97
+ type: FileOperationType.Create,
98
+ sourcePath: filePath,
99
+ targetPath: filePath,
100
+ content
101
+ });
102
+ return this;
103
+ }
104
+ /**
105
+ * 新增檔案刪除操作
106
+ * @param filePath - 檔案路徑
107
+ * @returns this - 支援鏈式調用
108
+ */
109
+ addFileDelete(filePath) {
110
+ const existing = this.fileOperations.find(op => op.sourcePath === filePath);
111
+ if (existing) {
112
+ this.warnings.push(`重複的檔案操作: 已存在對 ${filePath} 的 ${existing.type} 操作`);
113
+ }
114
+ this.fileOperations.push({
115
+ type: FileOperationType.Delete,
116
+ sourcePath: filePath
117
+ });
118
+ return this;
119
+ }
120
+ /**
121
+ * 新增檔案移動操作
122
+ * @param sourcePath - 來源路徑
123
+ * @param targetPath - 目標路徑
124
+ * @returns this - 支援鏈式調用
125
+ */
126
+ addFileMove(sourcePath, targetPath) {
127
+ const existing = this.fileOperations.find(op => op.sourcePath === sourcePath);
128
+ if (existing) {
129
+ this.warnings.push(`重複的檔案操作: 已存在對 ${sourcePath} 的 ${existing.type} 操作`);
130
+ }
131
+ this.fileOperations.push({
132
+ type: FileOperationType.Move,
133
+ sourcePath,
134
+ targetPath
135
+ });
136
+ return this;
137
+ }
138
+ /**
139
+ * 新增錯誤訊息
140
+ * @param error - 錯誤訊息
141
+ * @returns this - 支援鏈式調用
142
+ */
143
+ addError(error) {
144
+ this.errors.push(error);
145
+ return this;
146
+ }
147
+ /**
148
+ * 新增警告訊息
149
+ * @param warning - 警告訊息
150
+ * @returns this - 支援鏈式調用
151
+ */
152
+ addWarning(warning) {
153
+ this.warnings.push(warning);
154
+ return this;
155
+ }
156
+ /**
157
+ * 建構 Changeset
158
+ * @returns 完整的 Changeset 物件
159
+ */
160
+ build() {
161
+ return {
162
+ textChanges: this.textChanges,
163
+ fileOperations: this.fileOperations,
164
+ description: this.description,
165
+ command: this.command,
166
+ success: this.errors.length === 0,
167
+ errors: this.errors.length > 0 ? this.errors : undefined,
168
+ warnings: this.warnings.length > 0 ? this.warnings : undefined
169
+ };
170
+ }
171
+ }
172
+ /**
173
+ * 建立 ChangesetBuilder 實例
174
+ * @returns 新的 ChangesetBuilder 實例
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * const changeset = createChangesetBuilder()
179
+ * .forCommand('move')
180
+ * .withDescription('Move file to new location')
181
+ * .addFileMove('/old/path.ts', '/new/path.ts')
182
+ * .build();
183
+ * ```
184
+ */
185
+ export function createChangesetBuilder() {
186
+ return new ChangesetBuilder();
187
+ }
188
+ //# sourceMappingURL=changeset-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeset-builder.js","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAKjB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IAC3B,aAAa;IACL,WAAW,GAAqB,EAAE,CAAC;IAE3C,aAAa;IACL,cAAc,GAAoB,EAAE,CAAC;IAE7C,WAAW;IACH,WAAW,GAAG,EAAE,CAAC;IAEzB,WAAW;IACH,OAAO,GAAqB,gBAAgB,CAAC,MAAM,CAAC;IAE5D,aAAa;IACL,MAAM,GAAa,EAAE,CAAC;IAE9B,aAAa;IACL,QAAQ,GAAa,EAAE,CAAC;IAEhC;;;;OAIG;IACH,UAAU,CAAC,OAAyB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,WAAmB;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,aAAa,CACX,QAAgB,EAChB,KAAiB,EACjB,aAA+C;QAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAEvE,IAAI,QAAQ,EAAE,CAAC;YACb,oCAAoC;YACpC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAC/C,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAClC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;mBACvD,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;mBAC9D,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI;mBACtD,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAC9D,CACF,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG;gBAChC,GAAG,QAAQ;gBACX,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,iBAAiB,CAAC;gBAChD,aAAa,EAAE,aAAa,IAAI,QAAQ,CAAC,aAAa;aACvD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;YACP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,QAAQ;gBACR,KAAK;gBACL,aAAa;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,QAAgB,EAAE,OAAe;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACvC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,QAAQ,CACjC,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,iBAAiB,QAAQ,MAAM,QAAQ,CAAC,IAAI,KAAK,CAClD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,iBAAiB,CAAC,MAAM;YAC9B,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;YACpB,OAAO;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,QAAgB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACvC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,QAAQ,CACjC,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,iBAAiB,QAAQ,MAAM,QAAQ,CAAC,IAAI,KAAK,CAClD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,iBAAiB,CAAC,MAAM;YAC9B,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,UAAkB,EAAE,UAAkB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACvC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,KAAK,UAAU,CACnC,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,iBAAiB,UAAU,MAAM,QAAQ,CAAC,IAAI,KAAK,CACpD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,iBAAiB,CAAC,IAAI;YAC5B,UAAU;YACV,UAAU;SACX,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACxD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Changeset 轉換器
3
+ * 將 Changeset 轉換為 PreviewInput 格式,用於統一輸出
4
+ */
5
+ import { type Changeset } from './types.js';
6
+ import type { PreviewInput } from '../formatters/types.js';
7
+ import type { IFileSystem } from '../storage/file-system.interface.js';
8
+ /**
9
+ * 將 Changeset 轉換為 PreviewInput
10
+ * @param changeset - 變更集
11
+ * @param fileSystem - 檔案系統介面
12
+ * @returns PreviewInput 物件
13
+ */
14
+ export declare function convertChangesetToPreviewInput(changeset: Changeset, fileSystem: IFileSystem): Promise<PreviewInput>;
15
+ //# sourceMappingURL=changeset-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeset-converter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAuC,KAAK,SAAS,EAA0D,MAAM,YAAY,CAAC;AACzI,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAkZpF;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,GACtB,OAAO,CAAC,YAAY,CAAC,CA+BvB"}
@@ -0,0 +1,370 @@
1
+ /**
2
+ * Changeset 轉換器
3
+ * 將 Changeset 轉換為 PreviewInput 格式,用於統一輸出
4
+ */
5
+ import { ChangesetCommand, FileOperationType } from './types.js';
6
+ import { PreviewCommand } from '../formatters/types.js';
7
+ /**
8
+ * 建立修改行的 LineChange
9
+ * @param line - 1-based 行號
10
+ * @param oldContent - 原始內容
11
+ * @param newContent - 新內容
12
+ */
13
+ function createModifyLineChange(line, oldContent, newContent) {
14
+ return { line, oldContent, newContent };
15
+ }
16
+ /**
17
+ * 建立新增行的 LineChange
18
+ * @param line - 1-based 行號
19
+ * @param newContent - 新內容
20
+ */
21
+ function createInsertLineChange(line, newContent) {
22
+ return { line, oldContent: null, newContent };
23
+ }
24
+ /**
25
+ * 建立刪除行的 LineChange
26
+ * @param line - 1-based 行號
27
+ * @param oldContent - 原始內容
28
+ */
29
+ function createDeleteLineChange(line, oldContent) {
30
+ return { line, oldContent, newContent: null };
31
+ }
32
+ /**
33
+ * 將 Changeset 命令類型映射到 PreviewCommand
34
+ */
35
+ function mapCommandType(command) {
36
+ switch (command) {
37
+ case ChangesetCommand.Rename:
38
+ return PreviewCommand.Rename;
39
+ case ChangesetCommand.Move:
40
+ case ChangesetCommand.MoveMember:
41
+ return PreviewCommand.Move;
42
+ case ChangesetCommand.Deadcode:
43
+ return PreviewCommand.DeadCodeRemoval;
44
+ case ChangesetCommand.ChangeSignature:
45
+ return PreviewCommand.Refactor;
46
+ }
47
+ }
48
+ /**
49
+ * 讀取檔案原始內容
50
+ * @param filePath - 檔案路徑
51
+ * @param fileSystem - 檔案系統介面
52
+ * @returns 檔案內容,檔案不存在時回傳空字串
53
+ */
54
+ async function readOriginalContent(filePath, fileSystem) {
55
+ const exists = await fileSystem.exists(filePath);
56
+ if (!exists) {
57
+ return '';
58
+ }
59
+ const content = await fileSystem.readFile(filePath, 'utf-8');
60
+ return typeof content === 'string' ? content : content.toString('utf-8');
61
+ }
62
+ /**
63
+ * 應用單行的編輯操作,產生新內容
64
+ * @param originalLine - 原始行內容
65
+ * @param edits - 該行的編輯操作(已按列號排序)
66
+ * @returns 編輯後的行內容
67
+ */
68
+ function applyEditsToLine(originalLine, edits) {
69
+ // 按列號降序排序,從後往前應用避免偏移問題
70
+ const sortedEdits = [...edits].sort((a, b) => b.range.start.column - a.range.start.column);
71
+ let result = originalLine;
72
+ for (const edit of sortedEdits) {
73
+ const startCol = edit.range.start.column - 1; // 轉為 0-based
74
+ const endCol = edit.range.end.column - 1;
75
+ result = result.substring(0, startCol) + edit.newText + result.substring(endCol);
76
+ }
77
+ return result;
78
+ }
79
+ /**
80
+ * 處理單行編輯
81
+ * 將同一行的多個編輯操作合併後產生 LineChange
82
+ * @param lineNum - 1-based 行號
83
+ * @param lineEdits - 該行的編輯操作列表
84
+ * @param originalLines - 原始檔案各行
85
+ * @returns LineChange 或 null(內容未改變時)
86
+ */
87
+ function processSingleLineEdit(lineNum, lineEdits, originalLines) {
88
+ // 取得原始行內容(1-based 轉 0-based 索引)
89
+ const originalLine = originalLines[lineNum - 1] ?? '';
90
+ // 應用所有編輯產生新內容
91
+ const newLine = applyEditsToLine(originalLine, lineEdits);
92
+ // 內容未改變時不產生 change
93
+ if (originalLine === newLine) {
94
+ return null;
95
+ }
96
+ return createModifyLineChange(lineNum, originalLine, newLine);
97
+ }
98
+ /**
99
+ * 處理跨行編輯的起始行
100
+ * 保留 startCol 之前的部分,接上新內容
101
+ * @param lineNum - 1-based 行號
102
+ * @param lineContent - 原始行內容
103
+ * @param startCol - 1-based 起始列號
104
+ * @param newText - 要插入的新文字
105
+ * @returns 起始行的 LineChange 陣列(可能包含新增行)
106
+ */
107
+ function processMultiLineEditStart(lineNum, lineContent, startCol, newText) {
108
+ const changes = [];
109
+ // startCol 是 1-based,substring 是 0-based
110
+ // 範例:startCol=3 表示從第 3 列開始刪除,保留 0~2(即前 2 個字元)
111
+ const prefix = lineContent.substring(0, startCol - 1);
112
+ const newContent = prefix + newText;
113
+ // 起始行:原內容被替換為 prefix + newText 的第一行
114
+ const newLines = newContent.split('\n');
115
+ changes.push(createModifyLineChange(lineNum, lineContent, newLines[0] ?? ''));
116
+ // 若 newText 包含換行,後續行為新增行
117
+ for (let i = 1; i < newLines.length; i++) {
118
+ changes.push(createInsertLineChange(lineNum + i, newLines[i]));
119
+ }
120
+ return changes;
121
+ }
122
+ /**
123
+ * 處理跨行編輯的結束行
124
+ * 保留 endCol 之後的部分,附加到前一個 change
125
+ * @param lineNum - 1-based 行號
126
+ * @param lineContent - 原始行內容
127
+ * @param endCol - 1-based 結束列號(此列開始被刪除)
128
+ * @param changes - 累積的 changes 陣列(會原地修改)
129
+ */
130
+ function processMultiLineEditEnd(lineNum, lineContent, endCol, changes) {
131
+ // endCol 是 1-based,表示「從第 endCol 列開始被刪除」
132
+ // 範例:endCol=5 表示刪除第 5 列及之後,保留第 5 列之後的內容
133
+ // substring(endCol-1) = substring(4) 取得索引 4 開始的字元
134
+ // 但實際上 endCol 指向「被刪除範圍的結束位置」,該位置的字元應保留
135
+ // 因此 suffix = lineContent.substring(endCol - 1) 是正確的
136
+ const suffix = lineContent.substring(endCol - 1);
137
+ // 將 suffix 附加到最後一個有新內容的 change
138
+ if (suffix) {
139
+ const lastChange = changes[changes.length - 1];
140
+ if (lastChange && lastChange.newContent !== null) {
141
+ lastChange.newContent += suffix;
142
+ }
143
+ }
144
+ // 結束行本身被刪除(原內容消失)
145
+ changes.push(createDeleteLineChange(lineNum, lineContent));
146
+ }
147
+ /**
148
+ * 處理跨行編輯的中間行
149
+ * 完全刪除該行
150
+ * @param lineNum - 1-based 行號
151
+ * @param lineContent - 原始行內容
152
+ * @returns 刪除行的 LineChange
153
+ */
154
+ function processMultiLineEditMiddle(lineNum, lineContent) {
155
+ return createDeleteLineChange(lineNum, lineContent);
156
+ }
157
+ /**
158
+ * 處理跨行編輯
159
+ * 刪除多行並插入新內容
160
+ * @param edit - 跨行編輯操作
161
+ * @param originalLines - 原始檔案各行
162
+ * @param processedLines - 已處理的行號集合(會原地修改)
163
+ * @returns LineChange 陣列
164
+ */
165
+ function processMultiLineEdit(edit, originalLines, processedLines) {
166
+ const changes = [];
167
+ const { start, end } = edit.range;
168
+ // 跳過起始行已被單行編輯處理的情況
169
+ if (processedLines.has(start.line)) {
170
+ return [];
171
+ }
172
+ // 逐行處理:起始行 → 中間行 → 結束行
173
+ for (let lineNum = start.line; lineNum <= end.line && lineNum <= originalLines.length; lineNum++) {
174
+ const lineContent = originalLines[lineNum - 1] ?? '';
175
+ if (lineNum === start.line) {
176
+ // 起始行:保留 startCol 之前 + 新內容
177
+ const startChanges = processMultiLineEditStart(lineNum, lineContent, start.column, edit.newText);
178
+ changes.push(...startChanges);
179
+ }
180
+ else if (lineNum === end.line) {
181
+ // 結束行:保留 endCol 之後,附加到前一個 change
182
+ processMultiLineEditEnd(lineNum, lineContent, end.column, changes);
183
+ }
184
+ else {
185
+ // 中間行:完全刪除
186
+ changes.push(processMultiLineEditMiddle(lineNum, lineContent));
187
+ }
188
+ processedLines.add(lineNum);
189
+ }
190
+ return changes;
191
+ }
192
+ /**
193
+ * 將 TextEdit 列表轉換為 LineChange 列表
194
+ * @param originalContent - 原始檔案內容
195
+ * @param edits - 文字編輯操作列表
196
+ * @returns LineChange 陣列
197
+ */
198
+ function convertEditsToLineChanges(originalContent, edits) {
199
+ if (edits.length === 0) {
200
+ return [];
201
+ }
202
+ const originalLines = originalContent.split('\n');
203
+ const changes = [];
204
+ // 第一步:分類編輯 — 單行編輯按行號分組,跨行編輯獨立收集
205
+ const singleLineEditsByLine = new Map();
206
+ const multiLineEdits = [];
207
+ for (const edit of edits) {
208
+ const { line: startLine } = edit.range.start;
209
+ const { line: endLine } = edit.range.end;
210
+ if (startLine === endLine) {
211
+ // 單行編輯:同一行可能有多個編輯,按行號分組
212
+ if (!singleLineEditsByLine.has(startLine)) {
213
+ singleLineEditsByLine.set(startLine, []);
214
+ }
215
+ singleLineEditsByLine.get(startLine).push(edit);
216
+ }
217
+ else {
218
+ // 跨行編輯:需特殊處理起始/中間/結束行
219
+ multiLineEdits.push(edit);
220
+ }
221
+ }
222
+ // 第二步:處理單行編輯 — 同行多編輯合併處理
223
+ for (const [lineNum, lineEdits] of singleLineEditsByLine) {
224
+ const change = processSingleLineEdit(lineNum, lineEdits, originalLines);
225
+ if (change) {
226
+ changes.push(change);
227
+ }
228
+ }
229
+ // 第三步:處理跨行編輯 — 避免與已處理的單行編輯衝突
230
+ const processedLines = new Set(singleLineEditsByLine.keys());
231
+ for (const edit of multiLineEdits) {
232
+ const multiChanges = processMultiLineEdit(edit, originalLines, processedLines);
233
+ changes.push(...multiChanges);
234
+ }
235
+ // 按行號排序確保輸出順序一致
236
+ return changes.sort((a, b) => a.line - b.line);
237
+ }
238
+ /**
239
+ * 將檔案建立操作轉換為 LineChange(全部新增)
240
+ * @param content - 新檔案內容
241
+ * @returns LineChange 陣列
242
+ */
243
+ function convertCreateToLineChanges(content) {
244
+ const lines = content.split('\n');
245
+ return lines.map((line, index) => ({
246
+ line: index + 1,
247
+ oldContent: null,
248
+ newContent: line
249
+ }));
250
+ }
251
+ /**
252
+ * 將檔案刪除操作轉換為 LineChange(全部刪除)
253
+ * @param content - 原始檔案內容
254
+ * @returns LineChange 陣列
255
+ */
256
+ function convertDeleteToLineChanges(content) {
257
+ const lines = content.split('\n');
258
+ return lines.map((line, index) => ({
259
+ line: index + 1,
260
+ oldContent: line,
261
+ newContent: null
262
+ }));
263
+ }
264
+ /**
265
+ * 處理單一 FileTextChange 轉換為 FileChangeInput
266
+ */
267
+ async function convertFileTextChange(change, fileSystem) {
268
+ const originalContent = await readOriginalContent(change.filePath, fileSystem);
269
+ const lineChanges = convertEditsToLineChanges(originalContent, change.edits);
270
+ return {
271
+ filePath: change.filePath,
272
+ originalContent,
273
+ changes: lineChanges
274
+ };
275
+ }
276
+ /**
277
+ * 處理檔案操作轉換為 FileChangeInput
278
+ */
279
+ async function convertFileOperation(operation, fileSystem) {
280
+ switch (operation.type) {
281
+ case FileOperationType.Create: {
282
+ const content = operation.content ?? '';
283
+ return {
284
+ filePath: operation.targetPath ?? operation.sourcePath,
285
+ originalContent: '',
286
+ changes: convertCreateToLineChanges(content)
287
+ };
288
+ }
289
+ case FileOperationType.Delete: {
290
+ const originalContent = await readOriginalContent(operation.sourcePath, fileSystem);
291
+ return {
292
+ filePath: operation.sourcePath,
293
+ originalContent,
294
+ changes: convertDeleteToLineChanges(originalContent)
295
+ };
296
+ }
297
+ case FileOperationType.Move: {
298
+ // Move 操作由 CLI 層處理,這裡不轉換
299
+ return null;
300
+ }
301
+ }
302
+ }
303
+ /**
304
+ * 將 Changeset 的 warnings 轉換為 ConflictInfo 格式
305
+ * warnings 格式:type:message(如 "reserved_keyword:'function' 是保留字")
306
+ *
307
+ * 永遠返回陣列(可能為空),確保 JSON 輸出包含 conflicts 欄位
308
+ *
309
+ * @param warnings - 警告訊息列表
310
+ * @returns ConflictInfo 陣列(永遠不為 undefined)
311
+ */
312
+ function convertWarningsToConflicts(warnings) {
313
+ if (!warnings || warnings.length === 0) {
314
+ return [];
315
+ }
316
+ return warnings.map(warning => {
317
+ // 解析格式:type:message
318
+ const colonIndex = warning.indexOf(':');
319
+ if (colonIndex > 0) {
320
+ return {
321
+ type: warning.substring(0, colonIndex),
322
+ message: warning.substring(colonIndex + 1),
323
+ filePath: null,
324
+ line: null
325
+ };
326
+ }
327
+ // 無法解析時,使用 unknown 類型
328
+ return {
329
+ type: 'unknown',
330
+ message: warning,
331
+ filePath: null,
332
+ line: null
333
+ };
334
+ });
335
+ }
336
+ /**
337
+ * 將 Changeset 轉換為 PreviewInput
338
+ * @param changeset - 變更集
339
+ * @param fileSystem - 檔案系統介面
340
+ * @returns PreviewInput 物件
341
+ */
342
+ export async function convertChangesetToPreviewInput(changeset, fileSystem) {
343
+ const fileChanges = [];
344
+ // 轉換文字變更
345
+ for (const textChange of changeset.textChanges) {
346
+ const converted = await convertFileTextChange(textChange, fileSystem);
347
+ // 只加入有實際變更的檔案
348
+ if (converted.changes.length > 0) {
349
+ fileChanges.push(converted);
350
+ }
351
+ }
352
+ // 轉換檔案操作
353
+ for (const operation of changeset.fileOperations) {
354
+ const converted = await convertFileOperation(operation, fileSystem);
355
+ if (converted !== null && converted.changes.length > 0) {
356
+ fileChanges.push(converted);
357
+ }
358
+ }
359
+ // 轉換 warnings 為 conflicts
360
+ const conflicts = convertWarningsToConflicts(changeset.warnings);
361
+ return {
362
+ command: mapCommandType(changeset.command),
363
+ success: changeset.success,
364
+ fileChanges,
365
+ operationDescription: changeset.description,
366
+ conflicts,
367
+ errors: changeset.errors ? [...changeset.errors] : undefined
368
+ };
369
+ }
370
+ //# sourceMappingURL=changeset-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeset-converter.js","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Changeset 模組導出
3
+ * 提供統一的變更集管理和應用功能
4
+ */
5
+ export type { TextEdit, FileTextChange, FileOperation, Changeset, ApplyResult, ApplyOptions, BackupEntry } from './types.js';
6
+ export { TextEditOperationType, FileOperationType, ChangesetCommand, BackupType } from './types.js';
7
+ export { convertChangesetToPreviewInput } from './changeset-converter.js';
8
+ export { ChangesetBuilder, createChangesetBuilder } from './changeset-builder.js';
9
+ export { ChangeApplicator } from './change-applicator.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/changeset/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Changeset 模組導出
3
+ * 提供統一的變更集管理和應用功能
4
+ */
5
+ // Enum 定義
6
+ export { TextEditOperationType, FileOperationType, ChangesetCommand, BackupType } from './types.js';
7
+ // 轉換器
8
+ export { convertChangesetToPreviewInput } from './changeset-converter.js';
9
+ // 建構器
10
+ export { ChangesetBuilder, createChangesetBuilder } from './changeset-builder.js';
11
+ // 應用器
12
+ export { ChangeApplicator } from './change-applicator.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/changeset/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,UAAU;AACV,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,MAAM;AACN,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAE1E,MAAM;AACN,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAElF,MAAM;AACN,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}