agent-ide 0.2.0 → 0.3.3

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 (575) hide show
  1. package/README.md +28 -355
  2. package/dist/application/events/event-bus.d.ts.map +1 -1
  3. package/dist/application/events/event-bus.js.map +1 -1
  4. package/dist/application/index.d.ts +3 -1
  5. package/dist/application/index.d.ts.map +1 -1
  6. package/dist/application/index.js +10 -5
  7. package/dist/application/index.js.map +1 -1
  8. package/dist/application/services/cache-coordinator.service.d.ts.map +1 -1
  9. package/dist/application/services/cache-coordinator.service.js.map +1 -1
  10. package/dist/application/services/error-handler.service.d.ts.map +1 -1
  11. package/dist/application/services/error-handler.service.js.map +1 -1
  12. package/dist/application/services/module-coordinator.service.d.ts +13 -2
  13. package/dist/application/services/module-coordinator.service.d.ts.map +1 -1
  14. package/dist/application/services/module-coordinator.service.js +63 -17
  15. package/dist/application/services/module-coordinator.service.js.map +1 -1
  16. package/dist/application/services/session-manager.service.d.ts.map +1 -1
  17. package/dist/application/services/session-manager.service.js.map +1 -1
  18. package/dist/application/services/workflow-engine.service.d.ts +1 -1
  19. package/dist/application/services/workflow-engine.service.d.ts.map +1 -1
  20. package/dist/application/services/workflow-engine.service.js.map +1 -1
  21. package/dist/application/state/state-manager.d.ts +3 -3
  22. package/dist/application/state/state-manager.d.ts.map +1 -1
  23. package/dist/application/state/state-manager.js +3 -3
  24. package/dist/application/state/state-manager.js.map +1 -1
  25. package/dist/application/types.d.ts.map +1 -1
  26. package/dist/application/workflows/analysis-workflow.d.ts +1 -1
  27. package/dist/application/workflows/analysis-workflow.d.ts.map +1 -1
  28. package/dist/application/workflows/analysis-workflow.js +1 -1
  29. package/dist/application/workflows/analysis-workflow.js.map +1 -1
  30. package/dist/application/workflows/base-workflow.d.ts.map +1 -1
  31. package/dist/application/workflows/base-workflow.js.map +1 -1
  32. package/dist/application/workflows/index.d.ts +2 -2
  33. package/dist/application/workflows/index.d.ts.map +1 -1
  34. package/dist/application/workflows/index.js +2 -2
  35. package/dist/application/workflows/index.js.map +1 -1
  36. package/dist/application/workflows/refactor-workflow.d.ts +1 -1
  37. package/dist/application/workflows/refactor-workflow.d.ts.map +1 -1
  38. package/dist/application/workflows/refactor-workflow.js +1 -1
  39. package/dist/application/workflows/refactor-workflow.js.map +1 -1
  40. package/dist/core/dependency/cycle-detector.d.ts +1 -1
  41. package/dist/core/dependency/cycle-detector.d.ts.map +1 -1
  42. package/dist/core/dependency/cycle-detector.js +1 -1
  43. package/dist/core/dependency/cycle-detector.js.map +1 -1
  44. package/dist/core/dependency/dependency-analyzer.d.ts +3 -1
  45. package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -1
  46. package/dist/core/dependency/dependency-analyzer.js +25 -24
  47. package/dist/core/dependency/dependency-analyzer.js.map +1 -1
  48. package/dist/core/dependency/types.d.ts.map +1 -1
  49. package/dist/core/indexing/file-index.d.ts.map +1 -1
  50. package/dist/core/indexing/file-index.js +1 -1
  51. package/dist/core/indexing/file-index.js.map +1 -1
  52. package/dist/core/indexing/file-watcher.d.ts +4 -2
  53. package/dist/core/indexing/file-watcher.d.ts.map +1 -1
  54. package/dist/core/indexing/file-watcher.js +10 -6
  55. package/dist/core/indexing/file-watcher.js.map +1 -1
  56. package/dist/core/indexing/index-engine.d.ts +3 -1
  57. package/dist/core/indexing/index-engine.d.ts.map +1 -1
  58. package/dist/core/indexing/index-engine.js +24 -15
  59. package/dist/core/indexing/index-engine.js.map +1 -1
  60. package/dist/core/indexing/symbol-index.d.ts.map +1 -1
  61. package/dist/core/indexing/types.d.ts.map +1 -1
  62. package/dist/core/search/engines/text-engine.d.ts +3 -0
  63. package/dist/core/search/engines/text-engine.d.ts.map +1 -1
  64. package/dist/core/search/engines/text-engine.js +7 -6
  65. package/dist/core/search/engines/text-engine.js.map +1 -1
  66. package/dist/core/search/service.d.ts +2 -1
  67. package/dist/core/search/service.d.ts.map +1 -1
  68. package/dist/core/search/service.js +3 -3
  69. package/dist/core/search/service.js.map +1 -1
  70. package/dist/core/search/types.d.ts.map +1 -1
  71. package/dist/core/snapshot/index.d.ts +3 -19
  72. package/dist/core/snapshot/index.d.ts.map +1 -1
  73. package/dist/core/snapshot/index.js +2 -23
  74. package/dist/core/snapshot/index.js.map +1 -1
  75. package/dist/core/snapshot/snapshot-generator.d.ts +66 -0
  76. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -0
  77. package/dist/core/snapshot/snapshot-generator.js +258 -0
  78. package/dist/core/snapshot/snapshot-generator.js.map +1 -0
  79. package/dist/core/snapshot/types.d.ts +41 -190
  80. package/dist/core/snapshot/types.d.ts.map +1 -1
  81. package/dist/core/snapshot/types.js +13 -67
  82. package/dist/core/snapshot/types.js.map +1 -1
  83. package/dist/core/transform/index.d.ts +10 -0
  84. package/dist/core/transform/index.d.ts.map +1 -0
  85. package/dist/core/transform/index.js +21 -0
  86. package/dist/core/transform/index.js.map +1 -0
  87. package/dist/core/transform/location/index.d.ts +8 -0
  88. package/dist/core/transform/location/index.d.ts.map +1 -0
  89. package/dist/core/transform/location/index.js +9 -0
  90. package/dist/core/transform/location/index.js.map +1 -0
  91. package/dist/core/{move → transform/location/move-file}/import-resolver.d.ts +1 -1
  92. package/dist/core/transform/location/move-file/import-resolver.d.ts.map +1 -0
  93. package/dist/core/{move → transform/location/move-file}/import-resolver.js +11 -12
  94. package/dist/core/transform/location/move-file/import-resolver.js.map +1 -0
  95. package/dist/core/{move → transform/location/move-file}/index.d.ts +2 -2
  96. package/dist/core/transform/location/move-file/index.d.ts.map +1 -0
  97. package/dist/core/{move → transform/location/move-file}/index.js +2 -2
  98. package/dist/core/transform/location/move-file/index.js.map +1 -0
  99. package/dist/core/{move → transform/location/move-file}/move-service.d.ts +5 -3
  100. package/dist/core/transform/location/move-file/move-service.d.ts.map +1 -0
  101. package/dist/core/{move → transform/location/move-file}/move-service.js +67 -85
  102. package/dist/core/transform/location/move-file/move-service.js.map +1 -0
  103. package/dist/core/{move → transform/location/move-file}/types.d.ts +1 -1
  104. package/dist/core/transform/location/move-file/types.d.ts.map +1 -0
  105. package/dist/core/transform/location/move-file/types.js.map +1 -0
  106. package/dist/core/transform/location/move-member/index.d.ts +10 -0
  107. package/dist/core/transform/location/move-member/index.d.ts.map +1 -0
  108. package/dist/core/transform/location/move-member/index.js +12 -0
  109. package/dist/core/transform/location/move-member/index.js.map +1 -0
  110. package/dist/core/transform/location/move-member/member-extractor.d.ts +96 -0
  111. package/dist/core/transform/location/move-member/member-extractor.d.ts.map +1 -0
  112. package/dist/core/transform/location/move-member/member-extractor.js +439 -0
  113. package/dist/core/transform/location/move-member/member-extractor.js.map +1 -0
  114. package/dist/core/transform/location/move-member/move-member-service.d.ts +87 -0
  115. package/dist/core/transform/location/move-member/move-member-service.d.ts.map +1 -0
  116. package/dist/core/transform/location/move-member/move-member-service.js +412 -0
  117. package/dist/core/transform/location/move-member/move-member-service.js.map +1 -0
  118. package/dist/core/transform/location/move-member/types.d.ts +182 -0
  119. package/dist/core/transform/location/move-member/types.d.ts.map +1 -0
  120. package/dist/core/transform/location/move-member/types.js +75 -0
  121. package/dist/core/transform/location/move-member/types.js.map +1 -0
  122. package/dist/core/transform/location/shift/file-generator.d.ts +45 -0
  123. package/dist/core/transform/location/shift/file-generator.d.ts.map +1 -0
  124. package/dist/core/transform/location/shift/file-generator.js +94 -0
  125. package/dist/core/transform/location/shift/file-generator.js.map +1 -0
  126. package/dist/core/transform/location/shift/index.d.ts +11 -0
  127. package/dist/core/transform/location/shift/index.d.ts.map +1 -0
  128. package/dist/core/transform/location/shift/index.js +13 -0
  129. package/dist/core/transform/location/shift/index.js.map +1 -0
  130. package/dist/core/transform/location/shift/line-extractor.d.ts +55 -0
  131. package/dist/core/transform/location/shift/line-extractor.d.ts.map +1 -0
  132. package/dist/core/transform/location/shift/line-extractor.js +123 -0
  133. package/dist/core/transform/location/shift/line-extractor.js.map +1 -0
  134. package/dist/core/transform/location/shift/shift-service.d.ts +57 -0
  135. package/dist/core/transform/location/shift/shift-service.d.ts.map +1 -0
  136. package/dist/core/transform/location/shift/shift-service.js +199 -0
  137. package/dist/core/transform/location/shift/shift-service.js.map +1 -0
  138. package/dist/core/transform/location/shift/types.d.ts +195 -0
  139. package/dist/core/transform/location/shift/types.d.ts.map +1 -0
  140. package/dist/core/transform/location/shift/types.js +89 -0
  141. package/dist/core/transform/location/shift/types.js.map +1 -0
  142. package/dist/core/transform/shared/code-editor.d.ts +70 -0
  143. package/dist/core/transform/shared/code-editor.d.ts.map +1 -0
  144. package/dist/core/transform/shared/code-editor.js +206 -0
  145. package/dist/core/transform/shared/code-editor.js.map +1 -0
  146. package/dist/core/transform/shared/index.d.ts +7 -0
  147. package/dist/core/transform/shared/index.d.ts.map +1 -0
  148. package/dist/core/transform/shared/index.js +7 -0
  149. package/dist/core/transform/shared/index.js.map +1 -0
  150. package/dist/core/transform/shared/symbol-finder.d.ts +154 -0
  151. package/dist/core/transform/shared/symbol-finder.d.ts.map +1 -0
  152. package/dist/core/transform/shared/symbol-finder.js +433 -0
  153. package/dist/core/transform/shared/symbol-finder.js.map +1 -0
  154. package/dist/core/transform/structure/extract/extract-function.d.ts.map +1 -0
  155. package/dist/core/{refactor → transform/structure/extract}/extract-function.js +1 -1
  156. package/dist/core/transform/structure/extract/extract-function.js.map +1 -0
  157. package/dist/core/transform/structure/extract/index.d.ts +7 -0
  158. package/dist/core/transform/structure/extract/index.d.ts.map +1 -0
  159. package/dist/core/transform/structure/extract/index.js +9 -0
  160. package/dist/core/transform/structure/extract/index.js.map +1 -0
  161. package/dist/core/transform/structure/extract/swift-extractor.d.ts.map +1 -0
  162. package/dist/core/transform/structure/extract/swift-extractor.js.map +1 -0
  163. package/dist/core/transform/structure/index.d.ts +8 -0
  164. package/dist/core/transform/structure/index.d.ts.map +1 -0
  165. package/dist/core/transform/structure/index.js +8 -0
  166. package/dist/core/transform/structure/index.js.map +1 -0
  167. package/dist/core/transform/structure/inline/index.d.ts +6 -0
  168. package/dist/core/transform/structure/inline/index.d.ts.map +1 -0
  169. package/dist/core/transform/structure/inline/index.js +6 -0
  170. package/dist/core/transform/structure/inline/index.js.map +1 -0
  171. package/dist/core/transform/structure/inline/inline-function.d.ts.map +1 -0
  172. package/dist/core/{refactor → transform/structure/inline}/inline-function.js +37 -26
  173. package/dist/core/transform/structure/inline/inline-function.js.map +1 -0
  174. package/dist/core/transform/structure/patterns/design-patterns.d.ts.map +1 -0
  175. package/dist/core/transform/structure/patterns/design-patterns.js.map +1 -0
  176. package/dist/core/transform/structure/patterns/index.d.ts +6 -0
  177. package/dist/core/transform/structure/patterns/index.d.ts.map +1 -0
  178. package/dist/core/transform/structure/patterns/index.js +6 -0
  179. package/dist/core/transform/structure/patterns/index.js.map +1 -0
  180. package/dist/core/transform/symbol/change-signature/change-signature-service.d.ts +94 -0
  181. package/dist/core/transform/symbol/change-signature/change-signature-service.d.ts.map +1 -0
  182. package/dist/core/transform/symbol/change-signature/change-signature-service.js +544 -0
  183. package/dist/core/transform/symbol/change-signature/change-signature-service.js.map +1 -0
  184. package/dist/core/transform/symbol/change-signature/index.d.ts +10 -0
  185. package/dist/core/transform/symbol/change-signature/index.d.ts.map +1 -0
  186. package/dist/core/transform/symbol/change-signature/index.js +12 -0
  187. package/dist/core/transform/symbol/change-signature/index.js.map +1 -0
  188. package/dist/core/transform/symbol/change-signature/signature-parser.d.ts +76 -0
  189. package/dist/core/transform/symbol/change-signature/signature-parser.d.ts.map +1 -0
  190. package/dist/core/transform/symbol/change-signature/signature-parser.js +387 -0
  191. package/dist/core/transform/symbol/change-signature/signature-parser.js.map +1 -0
  192. package/dist/core/transform/symbol/change-signature/types.d.ts +244 -0
  193. package/dist/core/transform/symbol/change-signature/types.d.ts.map +1 -0
  194. package/dist/core/transform/symbol/change-signature/types.js +73 -0
  195. package/dist/core/transform/symbol/change-signature/types.js.map +1 -0
  196. package/dist/core/transform/symbol/index.d.ts +7 -0
  197. package/dist/core/transform/symbol/index.d.ts.map +1 -0
  198. package/dist/core/transform/symbol/index.js +7 -0
  199. package/dist/core/transform/symbol/index.js.map +1 -0
  200. package/dist/core/transform/symbol/rename/index.d.ts +9 -0
  201. package/dist/core/transform/symbol/rename/index.d.ts.map +1 -0
  202. package/dist/core/{rename → transform/symbol/rename}/index.js +5 -3
  203. package/dist/core/transform/symbol/rename/index.js.map +1 -0
  204. package/dist/core/{rename → transform/symbol/rename}/reference-updater.d.ts +2 -2
  205. package/dist/core/transform/symbol/rename/reference-updater.d.ts.map +1 -0
  206. package/dist/core/transform/symbol/rename/reference-updater.js.map +1 -0
  207. package/dist/core/{rename → transform/symbol/rename}/rename-engine.d.ts +2 -2
  208. package/dist/core/transform/symbol/rename/rename-engine.d.ts.map +1 -0
  209. package/dist/core/{rename → transform/symbol/rename}/rename-engine.js +3 -3
  210. package/dist/core/transform/symbol/rename/rename-engine.js.map +1 -0
  211. package/dist/core/{rename → transform/symbol/rename}/scope-analyzer.d.ts +3 -3
  212. package/dist/core/transform/symbol/rename/scope-analyzer.d.ts.map +1 -0
  213. package/dist/core/{rename → transform/symbol/rename}/scope-analyzer.js +2 -2
  214. package/dist/core/transform/symbol/rename/scope-analyzer.js.map +1 -0
  215. package/dist/core/{rename → transform/symbol/rename}/types.d.ts +2 -2
  216. package/dist/core/transform/symbol/rename/types.d.ts.map +1 -0
  217. package/dist/core/transform/symbol/rename/types.js.map +1 -0
  218. package/dist/core/transform/types.d.ts +185 -0
  219. package/dist/core/transform/types.d.ts.map +1 -0
  220. package/dist/core/transform/types.js +150 -0
  221. package/dist/core/transform/types.js.map +1 -0
  222. package/dist/infrastructure/cache/cache-manager.d.ts +1 -1
  223. package/dist/infrastructure/cache/cache-manager.d.ts.map +1 -1
  224. package/dist/infrastructure/cache/cache-manager.js +1 -1
  225. package/dist/infrastructure/cache/cache-manager.js.map +1 -1
  226. package/dist/infrastructure/cache/memory-cache.js +1 -1
  227. package/dist/infrastructure/cache/memory-cache.js.map +1 -1
  228. package/dist/infrastructure/cache/strategies.d.ts +1 -1
  229. package/dist/infrastructure/cache/strategies.d.ts.map +1 -1
  230. package/dist/infrastructure/cache/strategies.js +1 -1
  231. package/dist/infrastructure/cache/strategies.js.map +1 -1
  232. package/dist/infrastructure/formatters/diff-generator.d.ts +11 -0
  233. package/dist/infrastructure/formatters/diff-generator.d.ts.map +1 -0
  234. package/dist/infrastructure/formatters/diff-generator.js +217 -0
  235. package/dist/infrastructure/formatters/diff-generator.js.map +1 -0
  236. package/dist/infrastructure/formatters/index.d.ts +11 -0
  237. package/dist/infrastructure/formatters/index.d.ts.map +1 -0
  238. package/dist/infrastructure/formatters/index.js +13 -0
  239. package/dist/infrastructure/formatters/index.js.map +1 -0
  240. package/dist/infrastructure/formatters/preview-converter.d.ts +85 -0
  241. package/dist/infrastructure/formatters/preview-converter.d.ts.map +1 -0
  242. package/dist/infrastructure/formatters/preview-converter.js +209 -0
  243. package/dist/infrastructure/formatters/preview-converter.js.map +1 -0
  244. package/dist/infrastructure/formatters/preview-formatter.d.ts +61 -0
  245. package/dist/infrastructure/formatters/preview-formatter.d.ts.map +1 -0
  246. package/dist/infrastructure/formatters/preview-formatter.js +208 -0
  247. package/dist/infrastructure/formatters/preview-formatter.js.map +1 -0
  248. package/dist/infrastructure/formatters/query-formatter.d.ts +63 -0
  249. package/dist/infrastructure/formatters/query-formatter.d.ts.map +1 -0
  250. package/dist/infrastructure/formatters/query-formatter.js +218 -0
  251. package/dist/infrastructure/formatters/query-formatter.js.map +1 -0
  252. package/dist/infrastructure/formatters/query-types.d.ts +165 -0
  253. package/dist/infrastructure/formatters/query-types.d.ts.map +1 -0
  254. package/dist/infrastructure/formatters/query-types.js +30 -0
  255. package/dist/infrastructure/formatters/query-types.js.map +1 -0
  256. package/dist/infrastructure/formatters/types.d.ts +153 -0
  257. package/dist/infrastructure/formatters/types.d.ts.map +1 -0
  258. package/dist/infrastructure/formatters/types.js +27 -0
  259. package/dist/infrastructure/formatters/types.js.map +1 -0
  260. package/dist/infrastructure/parser/base.d.ts +1 -1
  261. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  262. package/dist/infrastructure/parser/base.js +1 -1
  263. package/dist/infrastructure/parser/base.js.map +1 -1
  264. package/dist/infrastructure/parser/factory.d.ts +3 -3
  265. package/dist/infrastructure/parser/factory.d.ts.map +1 -1
  266. package/dist/infrastructure/parser/factory.js +1 -1
  267. package/dist/infrastructure/parser/factory.js.map +1 -1
  268. package/dist/infrastructure/parser/interface.d.ts +1 -1
  269. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  270. package/dist/infrastructure/parser/registry.d.ts +1 -1
  271. package/dist/infrastructure/parser/registry.d.ts.map +1 -1
  272. package/dist/infrastructure/parser/registry.js +1 -1
  273. package/dist/infrastructure/parser/registry.js.map +1 -1
  274. package/dist/infrastructure/parser/types.d.ts.map +1 -1
  275. package/dist/infrastructure/storage/file-system.d.ts +2 -1
  276. package/dist/infrastructure/storage/file-system.d.ts.map +1 -1
  277. package/dist/infrastructure/storage/file-system.interface.d.ts +69 -0
  278. package/dist/infrastructure/storage/file-system.interface.d.ts.map +1 -0
  279. package/dist/infrastructure/storage/file-system.interface.js +6 -0
  280. package/dist/infrastructure/storage/file-system.interface.js.map +1 -0
  281. package/dist/infrastructure/storage/file-system.js.map +1 -1
  282. package/dist/infrastructure/storage/index.d.ts +2 -2
  283. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  284. package/dist/infrastructure/storage/index.js +1 -6
  285. package/dist/infrastructure/storage/index.js.map +1 -1
  286. package/dist/infrastructure/storage/mem-file-system.d.ts +44 -0
  287. package/dist/infrastructure/storage/mem-file-system.d.ts.map +1 -0
  288. package/dist/infrastructure/storage/mem-file-system.js +105 -0
  289. package/dist/infrastructure/storage/mem-file-system.js.map +1 -0
  290. package/dist/infrastructure/storage/path-utils.d.ts +1 -1
  291. package/dist/infrastructure/storage/path-utils.d.ts.map +1 -1
  292. package/dist/interfaces/cli/cli.d.ts +13 -94
  293. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  294. package/dist/interfaces/cli/cli.js +53 -2450
  295. package/dist/interfaces/cli/cli.js.map +1 -1
  296. package/dist/interfaces/cli/commands/analyze.command.d.ts +11 -0
  297. package/dist/interfaces/cli/commands/analyze.command.d.ts.map +1 -0
  298. package/dist/interfaces/cli/commands/analyze.command.js +460 -0
  299. package/dist/interfaces/cli/commands/analyze.command.js.map +1 -0
  300. package/dist/interfaces/cli/commands/change-signature.command.d.ts +11 -0
  301. package/dist/interfaces/cli/commands/change-signature.command.d.ts.map +1 -0
  302. package/dist/interfaces/cli/commands/change-signature.command.js +299 -0
  303. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -0
  304. package/dist/interfaces/cli/commands/deps.command.d.ts +11 -0
  305. package/dist/interfaces/cli/commands/deps.command.d.ts.map +1 -0
  306. package/dist/interfaces/cli/commands/deps.command.js +143 -0
  307. package/dist/interfaces/cli/commands/deps.command.js.map +1 -0
  308. package/dist/interfaces/cli/commands/extract.command.d.ts +11 -0
  309. package/dist/interfaces/cli/commands/extract.command.d.ts.map +1 -0
  310. package/dist/interfaces/cli/commands/extract.command.js +314 -0
  311. package/dist/interfaces/cli/commands/extract.command.js.map +1 -0
  312. package/dist/interfaces/cli/commands/index.d.ts +16 -0
  313. package/dist/interfaces/cli/commands/index.d.ts.map +1 -0
  314. package/dist/interfaces/cli/commands/index.js +15 -0
  315. package/dist/interfaces/cli/commands/index.js.map +1 -0
  316. package/dist/interfaces/cli/commands/inline.command.d.ts +11 -0
  317. package/dist/interfaces/cli/commands/inline.command.d.ts.map +1 -0
  318. package/dist/interfaces/cli/commands/inline.command.js +208 -0
  319. package/dist/interfaces/cli/commands/inline.command.js.map +1 -0
  320. package/dist/interfaces/cli/commands/move-member.command.d.ts +11 -0
  321. package/dist/interfaces/cli/commands/move-member.command.d.ts.map +1 -0
  322. package/dist/interfaces/cli/commands/move-member.command.js +194 -0
  323. package/dist/interfaces/cli/commands/move-member.command.js.map +1 -0
  324. package/dist/interfaces/cli/commands/move.command.d.ts +11 -0
  325. package/dist/interfaces/cli/commands/move.command.d.ts.map +1 -0
  326. package/dist/interfaces/cli/commands/move.command.js +220 -0
  327. package/dist/interfaces/cli/commands/move.command.js.map +1 -0
  328. package/dist/interfaces/cli/commands/refactor.command.d.ts +11 -0
  329. package/dist/interfaces/cli/commands/refactor.command.d.ts.map +1 -0
  330. package/dist/interfaces/cli/commands/refactor.command.js +414 -0
  331. package/dist/interfaces/cli/commands/refactor.command.js.map +1 -0
  332. package/dist/interfaces/cli/commands/rename.command.d.ts +11 -0
  333. package/dist/interfaces/cli/commands/rename.command.d.ts.map +1 -0
  334. package/dist/interfaces/cli/commands/rename.command.js +272 -0
  335. package/dist/interfaces/cli/commands/rename.command.js.map +1 -0
  336. package/dist/interfaces/cli/commands/search.command.d.ts +11 -0
  337. package/dist/interfaces/cli/commands/search.command.d.ts.map +1 -0
  338. package/dist/interfaces/cli/commands/search.command.js +409 -0
  339. package/dist/interfaces/cli/commands/search.command.js.map +1 -0
  340. package/dist/interfaces/cli/commands/shift.command.d.ts +11 -0
  341. package/dist/interfaces/cli/commands/shift.command.d.ts.map +1 -0
  342. package/dist/interfaces/cli/commands/shift.command.js +143 -0
  343. package/dist/interfaces/cli/commands/shift.command.js.map +1 -0
  344. package/dist/interfaces/cli/commands/snapshot.command.d.ts +11 -0
  345. package/dist/interfaces/cli/commands/snapshot.command.d.ts.map +1 -0
  346. package/dist/interfaces/cli/commands/snapshot.command.js +68 -0
  347. package/dist/interfaces/cli/commands/snapshot.command.js.map +1 -0
  348. package/dist/interfaces/cli/commands/types.d.ts +18 -0
  349. package/dist/interfaces/cli/commands/types.d.ts.map +1 -0
  350. package/dist/interfaces/cli/commands/types.js +5 -0
  351. package/dist/interfaces/cli/commands/types.js.map +1 -0
  352. package/dist/interfaces/cli/index.d.ts +1 -1
  353. package/dist/interfaces/cli/index.d.ts.map +1 -1
  354. package/dist/interfaces/cli/index.js +1 -1
  355. package/dist/interfaces/cli/index.js.map +1 -1
  356. package/dist/interfaces/cli/preview-output-handler.d.ts +53 -0
  357. package/dist/interfaces/cli/preview-output-handler.d.ts.map +1 -0
  358. package/dist/interfaces/cli/preview-output-handler.js +73 -0
  359. package/dist/interfaces/cli/preview-output-handler.js.map +1 -0
  360. package/dist/interfaces/cli/unified-output-handler.d.ts +77 -0
  361. package/dist/interfaces/cli/unified-output-handler.d.ts.map +1 -0
  362. package/dist/interfaces/cli/unified-output-handler.js +140 -0
  363. package/dist/interfaces/cli/unified-output-handler.js.map +1 -0
  364. package/dist/plugins/javascript/index.d.ts +2 -2
  365. package/dist/plugins/javascript/index.d.ts.map +1 -1
  366. package/dist/plugins/javascript/index.js +1 -1
  367. package/dist/plugins/javascript/index.js.map +1 -1
  368. package/dist/plugins/javascript/types.d.ts.map +1 -1
  369. package/dist/plugins/javascript/types.js.map +1 -1
  370. package/dist/plugins/python/analyzers/complexity-analyzer.d.ts +50 -0
  371. package/dist/plugins/python/analyzers/complexity-analyzer.d.ts.map +1 -0
  372. package/dist/plugins/python/analyzers/complexity-analyzer.js +172 -0
  373. package/dist/plugins/python/analyzers/complexity-analyzer.js.map +1 -0
  374. package/dist/plugins/python/analyzers/duplication-detector.d.ts +39 -0
  375. package/dist/plugins/python/analyzers/duplication-detector.d.ts.map +1 -0
  376. package/dist/plugins/python/analyzers/duplication-detector.js +146 -0
  377. package/dist/plugins/python/analyzers/duplication-detector.js.map +1 -0
  378. package/dist/plugins/python/analyzers/error-handling-checker.d.ts +28 -0
  379. package/dist/plugins/python/analyzers/error-handling-checker.d.ts.map +1 -0
  380. package/dist/plugins/python/analyzers/error-handling-checker.js +143 -0
  381. package/dist/plugins/python/analyzers/error-handling-checker.js.map +1 -0
  382. package/dist/plugins/python/analyzers/naming-checker.d.ts +56 -0
  383. package/dist/plugins/python/analyzers/naming-checker.d.ts.map +1 -0
  384. package/dist/plugins/python/analyzers/naming-checker.js +220 -0
  385. package/dist/plugins/python/analyzers/naming-checker.js.map +1 -0
  386. package/dist/plugins/python/analyzers/pattern-detector.d.ts +44 -0
  387. package/dist/plugins/python/analyzers/pattern-detector.d.ts.map +1 -0
  388. package/dist/plugins/python/analyzers/pattern-detector.js +222 -0
  389. package/dist/plugins/python/analyzers/pattern-detector.js.map +1 -0
  390. package/dist/plugins/python/analyzers/security-checker.d.ts +56 -0
  391. package/dist/plugins/python/analyzers/security-checker.d.ts.map +1 -0
  392. package/dist/plugins/python/analyzers/security-checker.js +279 -0
  393. package/dist/plugins/python/analyzers/security-checker.js.map +1 -0
  394. package/dist/plugins/python/analyzers/type-safety-checker.d.ts +44 -0
  395. package/dist/plugins/python/analyzers/type-safety-checker.d.ts.map +1 -0
  396. package/dist/plugins/python/analyzers/type-safety-checker.js +177 -0
  397. package/dist/plugins/python/analyzers/type-safety-checker.js.map +1 -0
  398. package/dist/plugins/python/analyzers/unused-symbol-detector.d.ts +37 -0
  399. package/dist/plugins/python/analyzers/unused-symbol-detector.d.ts.map +1 -0
  400. package/dist/plugins/python/analyzers/unused-symbol-detector.js +141 -0
  401. package/dist/plugins/python/analyzers/unused-symbol-detector.js.map +1 -0
  402. package/dist/plugins/python/dependency-analyzer.d.ts +86 -0
  403. package/dist/plugins/python/dependency-analyzer.d.ts.map +1 -0
  404. package/dist/plugins/python/dependency-analyzer.js +252 -0
  405. package/dist/plugins/python/dependency-analyzer.js.map +1 -0
  406. package/dist/plugins/python/index.d.ts +17 -0
  407. package/dist/plugins/python/index.d.ts.map +1 -0
  408. package/dist/plugins/python/index.js +23 -0
  409. package/dist/plugins/python/index.js.map +1 -0
  410. package/dist/plugins/python/parser.d.ts +150 -0
  411. package/dist/plugins/python/parser.d.ts.map +1 -0
  412. package/dist/plugins/python/parser.js +476 -0
  413. package/dist/plugins/python/parser.js.map +1 -0
  414. package/dist/plugins/python/symbol-extractor.d.ts +108 -0
  415. package/dist/plugins/python/symbol-extractor.d.ts.map +1 -0
  416. package/dist/plugins/python/symbol-extractor.js +389 -0
  417. package/dist/plugins/python/symbol-extractor.js.map +1 -0
  418. package/dist/plugins/python/tree-sitter-bridge.d.ts +57 -0
  419. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +1 -0
  420. package/dist/plugins/python/tree-sitter-bridge.js +267 -0
  421. package/dist/plugins/python/tree-sitter-bridge.js.map +1 -0
  422. package/dist/plugins/python/types.d.ts +179 -0
  423. package/dist/plugins/python/types.d.ts.map +1 -0
  424. package/dist/plugins/python/types.js +252 -0
  425. package/dist/plugins/python/types.js.map +1 -0
  426. package/dist/plugins/swift/analyzers/complexity-analyzer.d.ts.map +1 -1
  427. package/dist/plugins/swift/analyzers/unused-symbol-detector.d.ts.map +1 -1
  428. package/dist/plugins/swift/dependency-analyzer.d.ts +1 -1
  429. package/dist/plugins/swift/dependency-analyzer.d.ts.map +1 -1
  430. package/dist/plugins/swift/dependency-analyzer.js +1 -1
  431. package/dist/plugins/swift/dependency-analyzer.js.map +1 -1
  432. package/dist/plugins/swift/parser.js +2 -2
  433. package/dist/plugins/swift/parser.js.map +1 -1
  434. package/dist/plugins/swift/symbol-extractor.d.ts +1 -1
  435. package/dist/plugins/swift/symbol-extractor.d.ts.map +1 -1
  436. package/dist/plugins/swift/symbol-extractor.js.map +1 -1
  437. package/dist/plugins/swift/types.d.ts.map +1 -1
  438. package/dist/plugins/swift/types.js.map +1 -1
  439. package/dist/plugins/typescript/analyzers/complexity-analyzer.d.ts +1 -1
  440. package/dist/plugins/typescript/analyzers/complexity-analyzer.d.ts.map +1 -1
  441. package/dist/plugins/typescript/analyzers/unused-symbol-detector.d.ts +1 -1
  442. package/dist/plugins/typescript/analyzers/unused-symbol-detector.d.ts.map +1 -1
  443. package/dist/plugins/typescript/analyzers/unused-symbol-detector.js.map +1 -1
  444. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  445. package/dist/plugins/typescript/parser.js +12 -3
  446. package/dist/plugins/typescript/parser.js.map +1 -1
  447. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  448. package/dist/plugins/typescript/symbol-extractor.js +12 -0
  449. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  450. package/dist/plugins/typescript/types.d.ts.map +1 -1
  451. package/dist/plugins/typescript/types.js +10 -0
  452. package/dist/plugins/typescript/types.js.map +1 -1
  453. package/dist/shared/errors/config-error.d.ts +1 -1
  454. package/dist/shared/errors/config-error.d.ts.map +1 -1
  455. package/dist/shared/errors/config-error.js +1 -1
  456. package/dist/shared/errors/config-error.js.map +1 -1
  457. package/dist/shared/errors/file-error.d.ts +1 -1
  458. package/dist/shared/errors/file-error.d.ts.map +1 -1
  459. package/dist/shared/errors/file-error.js +1 -1
  460. package/dist/shared/errors/file-error.js.map +1 -1
  461. package/dist/shared/errors/index.d.ts +1 -1
  462. package/dist/shared/errors/index.d.ts.map +1 -1
  463. package/dist/shared/errors/index.js +4 -4
  464. package/dist/shared/errors/index.js.map +1 -1
  465. package/dist/shared/errors/parser-error.d.ts +1 -1
  466. package/dist/shared/errors/parser-error.d.ts.map +1 -1
  467. package/dist/shared/errors/parser-error.js +1 -1
  468. package/dist/shared/errors/parser-error.js.map +1 -1
  469. package/dist/shared/errors/validation-error.d.ts +1 -1
  470. package/dist/shared/errors/validation-error.d.ts.map +1 -1
  471. package/dist/shared/errors/validation-error.js +1 -1
  472. package/dist/shared/errors/validation-error.js.map +1 -1
  473. package/dist/shared/types/ast.d.ts +1 -1
  474. package/dist/shared/types/ast.d.ts.map +1 -1
  475. package/dist/shared/types/ast.js +1 -1
  476. package/dist/shared/types/ast.js.map +1 -1
  477. package/dist/shared/types/symbol.d.ts +1 -1
  478. package/dist/shared/types/symbol.d.ts.map +1 -1
  479. package/dist/shared/utils/index.d.ts +5 -5
  480. package/dist/shared/utils/index.d.ts.map +1 -1
  481. package/dist/shared/utils/index.js +5 -5
  482. package/dist/shared/utils/index.js.map +1 -1
  483. package/package.json +8 -6
  484. package/dist/core/analysis/index.d.ts +0 -6
  485. package/dist/core/analysis/index.d.ts.map +0 -1
  486. package/dist/core/analysis/index.js +0 -7
  487. package/dist/core/analysis/index.js.map +0 -1
  488. package/dist/core/analysis/quality-metrics.d.ts +0 -158
  489. package/dist/core/analysis/quality-metrics.d.ts.map +0 -1
  490. package/dist/core/analysis/quality-metrics.js +0 -442
  491. package/dist/core/analysis/quality-metrics.js.map +0 -1
  492. package/dist/core/move/import-resolver.d.ts.map +0 -1
  493. package/dist/core/move/import-resolver.js.map +0 -1
  494. package/dist/core/move/index.d.ts.map +0 -1
  495. package/dist/core/move/index.js.map +0 -1
  496. package/dist/core/move/move-service.d.ts.map +0 -1
  497. package/dist/core/move/move-service.js.map +0 -1
  498. package/dist/core/move/types.d.ts.map +0 -1
  499. package/dist/core/move/types.js.map +0 -1
  500. package/dist/core/refactor/design-patterns.d.ts.map +0 -1
  501. package/dist/core/refactor/design-patterns.js.map +0 -1
  502. package/dist/core/refactor/extract-function.d.ts.map +0 -1
  503. package/dist/core/refactor/extract-function.js.map +0 -1
  504. package/dist/core/refactor/index.d.ts +0 -8
  505. package/dist/core/refactor/index.d.ts.map +0 -1
  506. package/dist/core/refactor/index.js +0 -11
  507. package/dist/core/refactor/index.js.map +0 -1
  508. package/dist/core/refactor/inline-function.d.ts.map +0 -1
  509. package/dist/core/refactor/inline-function.js.map +0 -1
  510. package/dist/core/refactor/swift-extractor.d.ts.map +0 -1
  511. package/dist/core/refactor/swift-extractor.js.map +0 -1
  512. package/dist/core/rename/index.d.ts +0 -9
  513. package/dist/core/rename/index.d.ts.map +0 -1
  514. package/dist/core/rename/index.js.map +0 -1
  515. package/dist/core/rename/reference-updater.d.ts.map +0 -1
  516. package/dist/core/rename/reference-updater.js.map +0 -1
  517. package/dist/core/rename/rename-engine.d.ts.map +0 -1
  518. package/dist/core/rename/rename-engine.js.map +0 -1
  519. package/dist/core/rename/scope-analyzer.d.ts.map +0 -1
  520. package/dist/core/rename/scope-analyzer.js.map +0 -1
  521. package/dist/core/rename/types.d.ts.map +0 -1
  522. package/dist/core/rename/types.js.map +0 -1
  523. package/dist/core/shit-score/grading.d.ts +0 -39
  524. package/dist/core/shit-score/grading.d.ts.map +0 -1
  525. package/dist/core/shit-score/grading.js +0 -253
  526. package/dist/core/shit-score/grading.js.map +0 -1
  527. package/dist/core/shit-score/index.d.ts +0 -9
  528. package/dist/core/shit-score/index.d.ts.map +0 -1
  529. package/dist/core/shit-score/index.js +0 -8
  530. package/dist/core/shit-score/index.js.map +0 -1
  531. package/dist/core/shit-score/score-calculator.d.ts +0 -75
  532. package/dist/core/shit-score/score-calculator.d.ts.map +0 -1
  533. package/dist/core/shit-score/score-calculator.js +0 -240
  534. package/dist/core/shit-score/score-calculator.js.map +0 -1
  535. package/dist/core/shit-score/shit-score-analyzer.d.ts +0 -84
  536. package/dist/core/shit-score/shit-score-analyzer.d.ts.map +0 -1
  537. package/dist/core/shit-score/shit-score-analyzer.js +0 -595
  538. package/dist/core/shit-score/shit-score-analyzer.js.map +0 -1
  539. package/dist/core/shit-score/types.d.ts +0 -231
  540. package/dist/core/shit-score/types.d.ts.map +0 -1
  541. package/dist/core/shit-score/types.js +0 -73
  542. package/dist/core/shit-score/types.js.map +0 -1
  543. package/dist/core/snapshot/code-compressor.d.ts +0 -39
  544. package/dist/core/snapshot/code-compressor.d.ts.map +0 -1
  545. package/dist/core/snapshot/code-compressor.js +0 -211
  546. package/dist/core/snapshot/code-compressor.js.map +0 -1
  547. package/dist/core/snapshot/config.d.ts +0 -60
  548. package/dist/core/snapshot/config.d.ts.map +0 -1
  549. package/dist/core/snapshot/config.js +0 -136
  550. package/dist/core/snapshot/config.js.map +0 -1
  551. package/dist/core/snapshot/snapshot-differ.d.ts +0 -54
  552. package/dist/core/snapshot/snapshot-differ.d.ts.map +0 -1
  553. package/dist/core/snapshot/snapshot-differ.js +0 -262
  554. package/dist/core/snapshot/snapshot-differ.js.map +0 -1
  555. package/dist/core/snapshot/snapshot-engine.d.ts +0 -94
  556. package/dist/core/snapshot/snapshot-engine.d.ts.map +0 -1
  557. package/dist/core/snapshot/snapshot-engine.js +0 -492
  558. package/dist/core/snapshot/snapshot-engine.js.map +0 -1
  559. package/dist/plugins/swift/analyzers/test-coverage-checker.d.ts +0 -26
  560. package/dist/plugins/swift/analyzers/test-coverage-checker.d.ts.map +0 -1
  561. package/dist/plugins/swift/analyzers/test-coverage-checker.js +0 -63
  562. package/dist/plugins/swift/analyzers/test-coverage-checker.js.map +0 -1
  563. package/dist/plugins/typescript/analyzers/test-coverage-checker.d.ts +0 -22
  564. package/dist/plugins/typescript/analyzers/test-coverage-checker.d.ts.map +0 -1
  565. package/dist/plugins/typescript/analyzers/test-coverage-checker.js +0 -62
  566. package/dist/plugins/typescript/analyzers/test-coverage-checker.js.map +0 -1
  567. /package/dist/core/{move → transform/location/move-file}/types.js +0 -0
  568. /package/dist/core/{refactor → transform/structure/extract}/extract-function.d.ts +0 -0
  569. /package/dist/core/{refactor → transform/structure/extract}/swift-extractor.d.ts +0 -0
  570. /package/dist/core/{refactor → transform/structure/extract}/swift-extractor.js +0 -0
  571. /package/dist/core/{refactor → transform/structure/inline}/inline-function.d.ts +0 -0
  572. /package/dist/core/{refactor → transform/structure/patterns}/design-patterns.d.ts +0 -0
  573. /package/dist/core/{refactor → transform/structure/patterns}/design-patterns.js +0 -0
  574. /package/dist/core/{rename → transform/symbol/rename}/reference-updater.js +0 -0
  575. /package/dist/core/{rename → transform/symbol/rename}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/snapshot/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/snapshot/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW;IACX,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,kCAAkC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErD,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3C,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,YAAY;IACZ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,aAAa;IACb,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC,gBAAgB;IAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,WAAW;IACX,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,eAAe,CAAC;AAE9D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,IAAI,eAAe,CAEnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,IAAI,cAAc,CAEjF"}
@@ -1,79 +1,25 @@
1
1
  /**
2
2
  * Snapshot 模組型別定義
3
- * 提供程式碼快照相關的型別和介面
3
+ * 定義模組快照的結構,供 AI 快速理解程式碼
4
4
  */
5
5
  /**
6
- * 壓縮層級
6
+ * 快照範圍
7
7
  */
8
- export var CompressionLevel;
9
- (function (CompressionLevel) {
10
- /** 最小化:只包含架構和符號索引 (~20K tokens) */
11
- CompressionLevel["Minimal"] = "minimal";
12
- /** 中等:包含符號和簡化的實作 (~35K tokens) */
13
- CompressionLevel["Medium"] = "medium";
14
- /** 完整:包含壓縮後的完整實作 (~50K tokens) */
15
- CompressionLevel["Full"] = "full";
16
- })(CompressionLevel || (CompressionLevel = {}));
8
+ export var SnapshotScope;
9
+ (function (SnapshotScope) {
10
+ SnapshotScope["Module"] = "module";
11
+ SnapshotScope["Project"] = "project";
12
+ })(SnapshotScope || (SnapshotScope = {}));
17
13
  /**
18
- * 檔案變更類型
14
+ * 型別守衛:是否為 ProjectSnapshot
19
15
  */
20
- export var FileChangeType;
21
- (function (FileChangeType) {
22
- FileChangeType["Added"] = "added";
23
- FileChangeType["Modified"] = "modified";
24
- FileChangeType["Deleted"] = "deleted";
25
- })(FileChangeType || (FileChangeType = {}));
26
- /**
27
- * 建立預設的快照選項
28
- */
29
- export function createDefaultSnapshotOptions(projectPath) {
30
- return {
31
- projectPath,
32
- level: CompressionLevel.Full,
33
- incremental: false,
34
- exclude: [
35
- 'node_modules/**',
36
- 'dist/**',
37
- 'build/**',
38
- '*.test.*',
39
- '*.spec.*',
40
- '**/fixtures/**',
41
- '**/__tests__/**',
42
- '**/__mocks__/**',
43
- '.git/**',
44
- 'coverage/**'
45
- ],
46
- extensions: ['.ts', '.tsx', '.js', '.jsx', '.swift'],
47
- includeTests: false,
48
- multiLevel: false
49
- };
50
- }
51
- /**
52
- * 型別守衛:檢查是否為有效的快照
53
- */
54
- export function isSnapshot(value) {
55
- if (!value || typeof value !== 'object') {
56
- return false;
57
- }
58
- const obj = value;
59
- return (typeof obj.v === 'string' &&
60
- typeof obj.p === 'string' &&
61
- typeof obj.t === 'number' &&
62
- typeof obj.h === 'string' &&
63
- typeof obj.l === 'string' &&
64
- typeof obj.s === 'object' &&
65
- typeof obj.y === 'object' &&
66
- typeof obj.dp === 'object' &&
67
- typeof obj.c === 'object' &&
68
- typeof obj.q === 'object' &&
69
- typeof obj.md === 'object');
16
+ export function isProjectSnapshot(result) {
17
+ return 'modules' in result;
70
18
  }
71
19
  /**
72
- * 計算快照大小(估計 token 數)
20
+ * 型別守衛:是否為 ModuleSnapshot
73
21
  */
74
- export function estimateSnapshotTokens(snapshot) {
75
- const jsonStr = JSON.stringify(snapshot);
76
- // 粗略估計:每 4 個字元約等於 1 個 token
77
- return Math.ceil(jsonStr.length / 4);
22
+ export function isModuleSnapshot(result) {
23
+ return 'module' in result && !('modules' in result);
78
24
  }
79
25
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/snapshot/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,mCAAmC;IACnC,uCAAmB,CAAA;IAEnB,kCAAkC;IAClC,qCAAiB,CAAA;IAEjB,kCAAkC;IAClC,iCAAa,CAAA;AACf,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAkHD;;GAEG;AACH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAmID;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAAmB;IAC9D,OAAO;QACL,WAAW;QACX,KAAK,EAAE,gBAAgB,CAAC,IAAI;QAC5B,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE;YACP,iBAAiB;YACjB,SAAS;YACT,UAAU;YACV,UAAU;YACV,UAAU;YACV,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,SAAS;YACT,aAAa;SACd;QACD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;QACpD,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,OAAO,CACL,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;QAC1B,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ;QACzB,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAkB;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,4BAA4B;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/snapshot/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6CH;;GAEG;AACH,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAkBD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,OAAO,SAAS,IAAI,MAAM,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,OAAO,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Transform 模組統一匯出
3
+ * 整合 rename/move/shift/refactor 為統一的程式碼變換框架
4
+ */
5
+ export { TransformCategory, TransformType, TransformErrorCode, TransformWarningCode, type TransformValidation, type TransformError, type TransformWarning, type TransformPreview, type TransformSummary, type TransformResult, type FileChange, type TextChange, type TransformOperation, BaseTransformExecutor, isTextChange, isFileChange, isTransformResult } from './types.js';
6
+ export { CodeEditor, createCodeEditor, type PreviewedChange, SymbolFinder, createSymbolFinder, SymbolReferenceType, ClassMemberType, type CallSite, type CallSiteArgument, type ClassMember, type SymbolDefinition } from './shared/index.js';
7
+ export * from './symbol/index.js';
8
+ export * from './structure/index.js';
9
+ export * from './location/index.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/transform/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EAGpB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,kBAAkB,EAGvB,qBAAqB,EAGrB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,eAAe,EACpB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Transform 模組統一匯出
3
+ * 整合 rename/move/shift/refactor 為統一的程式碼變換框架
4
+ */
5
+ // 共用型別
6
+ export {
7
+ // Enum
8
+ TransformCategory, TransformType, TransformErrorCode, TransformWarningCode,
9
+ // Class
10
+ BaseTransformExecutor,
11
+ // Type Guard
12
+ isTextChange, isFileChange, isTransformResult } from './types.js';
13
+ // 共享元件(排除與 symbol/rename 衝突的型別)
14
+ export { CodeEditor, createCodeEditor, SymbolFinder, createSymbolFinder, SymbolReferenceType, ClassMemberType } from './shared/index.js';
15
+ // 符號變換
16
+ export * from './symbol/index.js';
17
+ // 結構變換
18
+ export * from './structure/index.js';
19
+ // 位置變換
20
+ export * from './location/index.js';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/transform/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO;AACP,OAAO;AACL,OAAO;AACP,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,oBAAoB;AAapB,QAAQ;AACR,qBAAqB;AAErB,aAAa;AACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,gCAAgC;AAChC,OAAO,EACL,UAAU,EACV,gBAAgB,EAEhB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EAKhB,MAAM,mBAAmB,CAAC;AAE3B,OAAO;AACP,cAAc,mBAAmB,CAAC;AAElC,OAAO;AACP,cAAc,sBAAsB,CAAC;AAErC,OAAO;AACP,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 位置變換子模組
3
+ * 包含 shift、move-file、move-member 等位置移動功能
4
+ */
5
+ export * from './shift/index.js';
6
+ export { MoveService, ImportResolver, MoveOperationType, MoveStatus, PathType, createFullMoveOperation, createValidationError, createMoveError, isFullMoveOperation, isImportStatement, type MoveOperation, type MoveOptions, type MoveResult, type PathUpdate, type FullMoveOperation, type BatchMoveResult, type MovePreview, type MoveImpact, type PathConflict, type ImportUpdate, type ImportUpdatePreview, type ImportStatement, type ValidationError as MoveValidationError, type ValidationWarning as MoveValidationWarning, type MoveError, type RollbackInfo, type RollbackOperation, type PathUpdateConfig, type MoveEngineConfig, type ImportResolverConfig, type MoveProgress, type PathCalculation } from './move-file/index.js';
7
+ export * from './move-member/index.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/transform/location/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,iBAAiB,IAAI,qBAAqB,EAC/C,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 位置變換子模組
3
+ * 包含 shift、move-file、move-member 等位置移動功能
4
+ */
5
+ export * from './shift/index.js';
6
+ // move-file(排除與 symbol/rename 衝突的 ValidationResult)
7
+ export { MoveService, ImportResolver, MoveOperationType, MoveStatus, PathType, createFullMoveOperation, createValidationError, createMoveError, isFullMoveOperation, isImportStatement } from './move-file/index.js';
8
+ export * from './move-member/index.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/transform/location/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC;AAEjC,oDAAoD;AACpD,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAuBlB,MAAM,sBAAsB,CAAC;AAE9B,cAAc,wBAAwB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Import 解析器
3
3
  * 負責解析和更新程式碼中的 import 語句
4
4
  */
5
- import { ImportStatement, ImportResolverConfig, ImportUpdate } from './types.js';
5
+ import { ImportStatement, ImportResolverConfig, ImportUpdate } from '../../../transform/location/move-file/types.js';
6
6
  export declare class ImportResolver {
7
7
  private readonly config;
8
8
  constructor(config: ImportResolverConfig);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/core/transform/location/move-file/import-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAY,oBAAoB,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAG5H,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,MAAM,EAAE,oBAAoB;IAIxC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAIjE;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IAgFxE;;OAEG;IACH,OAAO,CAAC,+BAA+B;IA2BvC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,gBAAgB,CACd,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,YAAY;IAyDf;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAsB3C;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAoB/D;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAmDhD;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAiB/C;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,aAAa;CAMtB"}
@@ -3,8 +3,8 @@
3
3
  * 負責解析和更新程式碼中的 import 語句
4
4
  */
5
5
  import * as path from 'path';
6
- import { PathType } from './types.js';
7
- import { createPosition, createRange } from '../../shared/types/core.js';
6
+ import { PathType } from '../../../transform/location/move-file/types.js';
7
+ import { createPosition, createRange } from '../../../../shared/types/core.js';
8
8
  export class ImportResolver {
9
9
  config;
10
10
  constructor(config) {
@@ -37,8 +37,8 @@ export class ImportResolver {
37
37
  // Swift 不需要路徑,因為它使用模組系統,但我們仍然記錄以供未來擴展
38
38
  continue; // 暫時跳過 Swift 模組 import,因為 Swift 使用模組系統而非檔案路徑
39
39
  }
40
- // 解析 ES6 import
41
- const importMatches = line.matchAll(/import\s+(?:(?:\{[^}]*\}|\w+|\*\s+as\s+\w+)(?:\s*,\s*(?:\{[^}]*\}|\w+|\*\s+as\s+\w+))*\s+from\s+)?['"`]([^'"`]+)['"`]/g);
40
+ // 解析 ES6 import(包含 import type 語法)
41
+ const importMatches = line.matchAll(/import\s+(?:type\s+)?(?:(?:\{[^}]*\}|\w+|\*\s+as\s+\w+)(?:\s*,\s*(?:\{[^}]*\}|\w+|\*\s+as\s+\w+))*\s+from\s+)?['"`]([^'"`]+)['"`]/g);
42
42
  for (const match of importMatches) {
43
43
  const importPath = match[1];
44
44
  const statement = this.createImportStatement('import', importPath, lineNumber, match.index || 0, line);
@@ -51,15 +51,14 @@ export class ImportResolver {
51
51
  // 收集多行 export 語句
52
52
  const exportStatement = this.collectMultilineExportStatement(lines, i);
53
53
  if (exportStatement) {
54
- const { statement: fullStatement, endLineIndex } = exportStatement;
55
- // 在完整語句中查找 from '...'
54
+ const { statement: fullStatement, endLineIndex, startLineIndex } = exportStatement;
55
+ // 在完整語句中查找 from '../../../move/...'
56
56
  const fromMatch = fullStatement.match(/from\s+['"`]([^'"`]+)['"`]/);
57
57
  if (fromMatch) {
58
58
  const importPath = fromMatch[1];
59
- // 使用 from 所在的行號
60
- const fromLineIndex = this.findFromLineIndex(lines, i, endLineIndex);
61
- const fromLine = lines[fromLineIndex];
62
- const statement = this.createImportStatement('export', importPath, fromLineIndex + 1, fromLine.indexOf('from'), fromLine);
59
+ // 使用起始行號和原始多行語句
60
+ const rawStatement = lines.slice(startLineIndex, endLineIndex + 1).join('\n');
61
+ const statement = this.createImportStatement('export', importPath, startLineIndex + 1, lines[startLineIndex].indexOf('export'), rawStatement);
63
62
  if (statement) {
64
63
  statements.push(statement);
65
64
  }
@@ -100,14 +99,14 @@ export class ImportResolver {
100
99
  }
101
100
  // 如果 export 和 from 在同一行,直接返回
102
101
  if (startLine.includes('from') && startLine.match(/from\s+['"`]/)) {
103
- return { statement: startLine, endLineIndex: startIndex };
102
+ return { statement: startLine, endLineIndex: startIndex, startLineIndex: startIndex };
104
103
  }
105
104
  // 收集多行直到找到 from
106
105
  let fullStatement = startLine;
107
106
  for (let i = startIndex + 1; i < lines.length; i++) {
108
107
  fullStatement += ' ' + lines[i].trim();
109
108
  if (lines[i].includes('from') && lines[i].match(/from\s+['"`]/)) {
110
- return { statement: fullStatement, endLineIndex: i };
109
+ return { statement: fullStatement, endLineIndex: i, startLineIndex: startIndex };
111
110
  }
112
111
  // 最多往後看 10 行
113
112
  if (i - startIndex > 10) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../../../../src/core/transform/location/move-file/import-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Move 模組入口點
3
- * 提供檔案和目錄移動功能,自動更新 import/export 路徑
2
+ * Move File 子模組
3
+ * 檔案移動 + import 路徑自動更新
4
4
  */
5
5
  export { MoveService } from './move-service.js';
6
6
  export { ImportResolver } from './import-resolver.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/transform/location/move-file/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,YAAY,EAEV,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,EAGV,iBAAiB,EAGjB,eAAe,EAGf,WAAW,EACX,UAAU,EACV,YAAY,EAGZ,YAAY,EACZ,mBAAmB,EACnB,eAAe,EAGf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EAGjB,SAAS,EACT,YAAY,EACZ,iBAAiB,EAGjB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EAGpB,YAAY,EACZ,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACT,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Move 模組入口點
3
- * 提供檔案和目錄移動功能,自動更新 import/export 路徑
2
+ * Move File 子模組
3
+ * 檔案移動 + import 路徑自動更新
4
4
  */
5
5
  // 核心服務
6
6
  export { MoveService } from './move-service.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/transform/location/move-file/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA8CtD,KAAK;AACL,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,OAAO;AACP,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,YAAY,CAAC"}
@@ -2,11 +2,13 @@
2
2
  * 檔案移動服務
3
3
  * 提供安全的檔案移動功能,自動更新所有相關的 import 路徑
4
4
  */
5
- import { ImportResolver } from './import-resolver.js';
6
- import { MoveOperation, MoveOptions, MoveResult, ImportResolverConfig } from './types.js';
5
+ import type { IFileSystem } from '../../../../infrastructure/storage/index.js';
6
+ import { ImportResolver } from '../../../transform/location/move-file/import-resolver.js';
7
+ import { MoveOperation, MoveOptions, MoveResult, ImportResolverConfig } from '../../../transform/location/move-file/types.js';
7
8
  export declare class MoveService {
9
+ private readonly fileSystem;
8
10
  private importResolver;
9
- constructor(config?: ImportResolverConfig, importResolver?: ImportResolver);
11
+ constructor(fileSystem: IFileSystem, config?: ImportResolverConfig, importResolver?: ImportResolver);
10
12
  /**
11
13
  * 移動檔案或目錄
12
14
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-service.d.ts","sourceRoot":"","sources":["../../../../../src/core/transform/location/move-file/move-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAc,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAEvI,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH7B,OAAO,CAAC,cAAc,CAAiB;gBAGpB,UAAU,EAAE,WAAW,EACxC,MAAM,CAAC,EAAE,oBAAoB,EAC7B,cAAc,CAAC,EAAE,cAAc;IAcjC;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAoGxF;;OAEG;YACW,aAAa;IAsB3B;;OAEG;YACW,WAAW;IASzB;;OAEG;YACW,iBAAiB;IAoB/B;;OAEG;YACW,kBAAkB;IAiChC;;OAEG;YACW,kBAAkB;IAwBhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACH,OAAO,CAAC,UAAU;IAyBlB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;YACW,oBAAoB;IAmDlC;;;OAGG;YACW,iCAAiC;IAgD/C;;OAEG;IACH,OAAO,CAAC,qCAAqC;IA6C7C;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmB9B;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;YACW,gBAAgB;IAiC9B;;OAEG;IACH,OAAO,CAAC,WAAW;CAGpB"}
@@ -2,12 +2,13 @@
2
2
  * 檔案移動服務
3
3
  * 提供安全的檔案移動功能,自動更新所有相關的 import 路徑
4
4
  */
5
- import * as fs from 'fs/promises';
6
5
  import * as path from 'path';
7
- import { ImportResolver } from './import-resolver.js';
6
+ import { ImportResolver } from '../../../transform/location/move-file/import-resolver.js';
8
7
  export class MoveService {
8
+ fileSystem;
9
9
  importResolver;
10
- constructor(config, importResolver) {
10
+ constructor(fileSystem, config, importResolver) {
11
+ this.fileSystem = fileSystem;
11
12
  if (importResolver) {
12
13
  this.importResolver = importResolver;
13
14
  }
@@ -74,7 +75,7 @@ export class MoveService {
74
75
  if (errorMessage.includes('更新檔案') || errorMessage.includes('Write permission') || errorMessage.includes('permission denied')) {
75
76
  // 回滾檔案移動(如果可能)
76
77
  try {
77
- await fs.rename(target, source);
78
+ await this.fileSystem.moveFile(target, source);
78
79
  fileMoved = false;
79
80
  }
80
81
  catch {
@@ -118,32 +119,22 @@ export class MoveService {
118
119
  */
119
120
  async validatePaths(source, target) {
120
121
  // 檢查來源是否存在
121
- try {
122
- await fs.access(source);
123
- }
124
- catch {
122
+ const sourceExists = await this.fileSystem.exists(source);
123
+ if (!sourceExists) {
125
124
  throw new Error(`來源路徑不存在: ${source}`);
126
125
  }
127
126
  // 檢查目標路徑的父目錄
128
127
  const targetDir = path.dirname(target);
129
- try {
130
- await fs.access(targetDir);
131
- }
132
- catch {
128
+ const targetDirExists = await this.fileSystem.exists(targetDir);
129
+ if (!targetDirExists) {
133
130
  // 嘗試建立父目錄
134
- await fs.mkdir(targetDir, { recursive: true });
131
+ await this.fileSystem.createDirectory(targetDir);
135
132
  }
136
133
  // 檢查目標是否已存在
137
- try {
138
- await fs.access(target);
134
+ const targetExists = await this.fileSystem.exists(target);
135
+ if (targetExists) {
139
136
  throw new Error(`目標路徑已存在: ${target}`);
140
137
  }
141
- catch (error) {
142
- // 如果是因為檔案不存在而拋出錯誤,這是預期的
143
- if (error.code !== 'ENOENT') {
144
- throw error;
145
- }
146
- }
147
138
  }
148
139
  /**
149
140
  * 執行實際的檔案移動
@@ -151,9 +142,9 @@ export class MoveService {
151
142
  async performMove(source, target) {
152
143
  // 確保目標目錄存在
153
144
  const targetDir = path.dirname(target);
154
- await fs.mkdir(targetDir, { recursive: true });
145
+ await this.fileSystem.createDirectory(targetDir);
155
146
  // 移動檔案或目錄
156
- await fs.rename(source, target);
147
+ await this.fileSystem.moveFile(source, target);
157
148
  }
158
149
  /**
159
150
  * 找出受影響的檔案
@@ -184,33 +175,19 @@ export class MoveService {
184
175
  const excludePatterns = ['node_modules', 'dist', '.git', 'coverage', '.build'];
185
176
  const walkDir = async (dir) => {
186
177
  try {
187
- const entries = await fs.readdir(dir, { withFileTypes: true });
178
+ const entries = await this.fileSystem.readDirectory(dir);
188
179
  for (const entry of entries) {
189
- const fullPath = path.join(dir, entry.name);
190
- // 處理 mock 和真實 entry 的不同
191
- let isDir = false;
192
- let isFile = false;
193
- // 處理 mock 物件
194
- if (typeof entry.isDirectory === 'function') {
195
- isDir = entry.isDirectory();
196
- isFile = typeof entry.isFile === 'function' ? entry.isFile() : !isDir;
197
- }
198
- else if (entry && typeof entry === 'object') {
199
- // 處理簡單的 mock 物件
200
- isDir = false;
201
- isFile = true;
202
- }
203
- if (isDir) {
180
+ if (entry.isDirectory) {
204
181
  // 跳過排除的目錄
205
182
  if (excludePatterns.some(pattern => entry.name.includes(pattern))) {
206
183
  continue;
207
184
  }
208
- await walkDir(fullPath);
185
+ await walkDir(entry.path);
209
186
  }
210
- else if (isFile) {
187
+ else if (entry.isFile) {
211
188
  // 只包含支援的副檔名
212
189
  if (allowedExtensions.some(ext => entry.name.endsWith(ext))) {
213
- files.push(fullPath);
190
+ files.push(entry.path);
214
191
  }
215
192
  }
216
193
  }
@@ -228,7 +205,7 @@ export class MoveService {
228
205
  */
229
206
  async fileReferencesPath(filePath, targetPath) {
230
207
  try {
231
- const content = await fs.readFile(filePath, 'utf-8');
208
+ const content = await this.fileSystem.readFile(filePath, 'utf-8');
232
209
  const imports = this.importResolver.parseImportStatements(content, filePath);
233
210
  for (const importStatement of imports) {
234
211
  // 跳過 node_modules
@@ -255,9 +232,9 @@ export class MoveService {
255
232
  return importPath; // Node 模組不處理
256
233
  }
257
234
  if (importPath.startsWith('.')) {
258
- // 相對路徑 - 使用 path.join 而不是 path.resolve 以避免依賴 cwd
259
- const fromDir = path.dirname(fromFile);
260
- const resolved = path.join(fromDir, importPath);
235
+ // 相對路徑 - 轉換為絕對路徑
236
+ const fromDir = path.dirname(path.isAbsolute(fromFile) ? fromFile : path.resolve(fromFile));
237
+ const resolved = path.resolve(fromDir, importPath);
261
238
  // 正規化路徑
262
239
  return path.normalize(resolved);
263
240
  }
@@ -270,9 +247,10 @@ export class MoveService {
270
247
  return path.normalize(resolved);
271
248
  }
272
249
  else if (resolved.startsWith('.')) {
273
- // 相對路徑需要加上 fromDir
274
- const fromDir = path.dirname(fromFile);
275
- return path.normalize(path.join(fromDir, resolved));
250
+ // 相對路徑需要轉換為絕對路徑
251
+ const fromDir = path.dirname(path.isAbsolute(fromFile) ? fromFile : path.resolve(fromFile));
252
+ const absoluteResolved = path.resolve(fromDir, resolved);
253
+ return path.normalize(absoluteResolved);
276
254
  }
277
255
  }
278
256
  return importPath;
@@ -281,29 +259,22 @@ export class MoveService {
281
259
  * 檢查兩個路徑是否指向同一個檔案
282
260
  */
283
261
  pathsMatch(path1, path2) {
284
- // 正規化路徑以便比較
285
- const normalized1 = path.normalize(path1);
286
- const normalized2 = path.normalize(path2);
287
- // 檢查完全匹配
288
- if (normalized1 === normalized2) {
289
- return true;
290
- }
291
- // 檢查去除副檔名後是否匹配(TypeScript/JavaScript 可以省略副檔名)
292
- const withoutExt1 = this.removeExtension(normalized1);
293
- const withoutExt2 = this.removeExtension(normalized2);
294
- if (withoutExt1 === withoutExt2) {
295
- return true;
296
- }
297
- // 檢查是否為相同的絕對路徑(處理相對路徑差異)
298
262
  try {
299
- const abs1 = path.isAbsolute(normalized1) ? normalized1 : path.resolve(normalized1);
300
- const abs2 = path.isAbsolute(normalized2) ? normalized2 : path.resolve(normalized2);
263
+ // 確保兩個路徑都是絕對路徑並正規化
264
+ const abs1 = path.isAbsolute(path1)
265
+ ? path.normalize(path1)
266
+ : path.normalize(path.resolve(path1));
267
+ const abs2 = path.isAbsolute(path2)
268
+ ? path.normalize(path2)
269
+ : path.normalize(path.resolve(path2));
270
+ // 檢查完全匹配
301
271
  if (abs1 === abs2) {
302
272
  return true;
303
273
  }
304
- const withoutExtAbs1 = this.removeExtension(abs1);
305
- const withoutExtAbs2 = this.removeExtension(abs2);
306
- return withoutExtAbs1 === withoutExtAbs2;
274
+ // 檢查去除副檔名後是否匹配(TypeScript/JavaScript 可以省略副檔名)
275
+ const withoutExt1 = this.removeExtension(abs1);
276
+ const withoutExt2 = this.removeExtension(abs2);
277
+ return withoutExt1 === withoutExt2;
307
278
  }
308
279
  catch {
309
280
  return false;
@@ -325,22 +296,29 @@ export class MoveService {
325
296
  async calculatePathUpdates(filePath, oldPath, newPath) {
326
297
  const updates = [];
327
298
  try {
328
- const content = await fs.readFile(filePath, 'utf-8');
299
+ const content = await this.fileSystem.readFile(filePath, 'utf-8');
329
300
  const imports = this.importResolver.parseImportStatements(content, filePath);
330
301
  for (const importStatement of imports) {
331
302
  // 跳過 node_modules
332
303
  if (this.importResolver.isNodeModuleImport(importStatement.path)) {
333
304
  continue;
334
305
  }
306
+ // 將 oldPath 規範化為絕對路徑以便比較
307
+ const normalizedOldPath = path.isAbsolute(oldPath)
308
+ ? path.normalize(oldPath)
309
+ : path.normalize(path.resolve(oldPath));
310
+ // 計算 import 指向的絕對路徑
335
311
  const resolvedPath = this.resolveImportPath(importStatement.path, filePath);
336
- if (this.pathsMatch(resolvedPath, oldPath)) {
312
+ // 使用 pathsMatch 檢查是否指向被移動的檔案
313
+ if (this.pathsMatch(resolvedPath, normalizedOldPath)) {
337
314
  // 計算新的 import 路徑,保留原始路徑類型(別名或相對路徑)
338
- const newImportPath = this.calculateNewImportPathPreservingStyle(importStatement.path, filePath, oldPath, newPath);
315
+ const newImportPath = this.calculateNewImportPathPreservingStyle(importStatement.path, filePath, normalizedOldPath, newPath);
316
+ const newImport = importStatement.rawStatement.replace(new RegExp(`(['"\`])${this.escapeRegex(importStatement.path)}\\1`), `$1${newImportPath}$1`);
339
317
  updates.push({
340
318
  filePath,
341
319
  line: importStatement.position.line,
342
320
  oldImport: importStatement.rawStatement,
343
- newImport: importStatement.rawStatement.replace(new RegExp(`(['"\`])${this.escapeRegex(importStatement.path)}\\1`), `$1${newImportPath}$1`)
321
+ newImport
344
322
  });
345
323
  }
346
324
  }
@@ -357,7 +335,7 @@ export class MoveService {
357
335
  async calculateMovedFileInternalUpdates(source, target) {
358
336
  const updates = [];
359
337
  try {
360
- const content = await fs.readFile(source, 'utf-8');
338
+ const content = await this.fileSystem.readFile(source, 'utf-8');
361
339
  const imports = this.importResolver.parseImportStatements(content, source);
362
340
  // 防禦性檢查:確保 imports 是陣列
363
341
  if (!imports || !Array.isArray(imports)) {
@@ -468,20 +446,24 @@ export class MoveService {
468
446
  */
469
447
  async applyFileUpdates(filePath, updates) {
470
448
  try {
471
- const content = await fs.readFile(filePath, 'utf-8');
472
- const lines = content.split('\n');
473
- // 按行號從高到低排序,避免行號偏移問題
474
- const sortedUpdates = updates.sort((a, b) => b.line - a.line);
475
- for (const update of sortedUpdates) {
476
- const lineIndex = update.line - 1;
477
- if (lineIndex >= 0 && lineIndex < lines.length) {
478
- const oldLine = lines[lineIndex];
479
- const newLine = oldLine.replace(update.oldImport, update.newImport);
480
- lines[lineIndex] = newLine;
449
+ const content = await this.fileSystem.readFile(filePath, 'utf-8');
450
+ let newContent = content;
451
+ // 對於多行語句,需要特別處理
452
+ for (const update of updates) {
453
+ // 直接使用字串替換,支援多行
454
+ newContent = newContent.replace(update.oldImport, update.newImport);
455
+ // 如果未找到完全匹配,嘗試規範化並再試一次
456
+ if (newContent.indexOf(update.oldImport) === -1) {
457
+ // 嘗試將多行 oldImport 規範化(移除額外的空格和換行)
458
+ const normalizedOldImport = update.oldImport.replace(/\s+/g, ' ').trim();
459
+ const contentNormalized = newContent.replace(/\s+/g, ' ');
460
+ if (contentNormalized.indexOf(normalizedOldImport) !== -1) {
461
+ newContent = content; // 重置
462
+ newContent = newContent.replace(new RegExp(this.escapeRegex(normalizedOldImport).replace(/\s+/g, '\\s+'), 'g'), update.newImport.replace(/\s+/g, ' ').trim());
463
+ }
481
464
  }
482
465
  }
483
- const newContent = lines.join('\n');
484
- await fs.writeFile(filePath, newContent, 'utf-8');
466
+ await this.fileSystem.writeFile(filePath, newContent);
485
467
  }
486
468
  catch (error) {
487
469
  throw new Error(`更新檔案 ${filePath} 失敗: ${error instanceof Error ? error.message : 'Unknown error'}`);