agent-ide 0.1.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 (436) hide show
  1. package/README.md +678 -0
  2. package/bin/agent-ide.js +19 -0
  3. package/bin/mcp-server.js +20 -0
  4. package/dist/application/events/event-bus.d.ts +107 -0
  5. package/dist/application/events/event-bus.d.ts.map +1 -0
  6. package/dist/application/events/event-bus.js +364 -0
  7. package/dist/application/events/event-bus.js.map +1 -0
  8. package/dist/application/events/event-types.d.ts +195 -0
  9. package/dist/application/events/event-types.d.ts.map +1 -0
  10. package/dist/application/events/event-types.js +36 -0
  11. package/dist/application/events/event-types.js.map +1 -0
  12. package/dist/application/events/index.d.ts +6 -0
  13. package/dist/application/events/index.d.ts.map +1 -0
  14. package/dist/application/events/index.js +6 -0
  15. package/dist/application/events/index.js.map +1 -0
  16. package/dist/application/index.d.ts +85 -0
  17. package/dist/application/index.d.ts.map +1 -0
  18. package/dist/application/index.js +138 -0
  19. package/dist/application/index.js.map +1 -0
  20. package/dist/application/services/cache-coordinator.service.d.ts +69 -0
  21. package/dist/application/services/cache-coordinator.service.d.ts.map +1 -0
  22. package/dist/application/services/cache-coordinator.service.js +251 -0
  23. package/dist/application/services/cache-coordinator.service.js.map +1 -0
  24. package/dist/application/services/error-handler.service.d.ts +56 -0
  25. package/dist/application/services/error-handler.service.d.ts.map +1 -0
  26. package/dist/application/services/error-handler.service.js +273 -0
  27. package/dist/application/services/error-handler.service.js.map +1 -0
  28. package/dist/application/services/index.d.ts +8 -0
  29. package/dist/application/services/index.d.ts.map +1 -0
  30. package/dist/application/services/index.js +8 -0
  31. package/dist/application/services/index.js.map +1 -0
  32. package/dist/application/services/module-coordinator.service.d.ts +70 -0
  33. package/dist/application/services/module-coordinator.service.d.ts.map +1 -0
  34. package/dist/application/services/module-coordinator.service.js +418 -0
  35. package/dist/application/services/module-coordinator.service.js.map +1 -0
  36. package/dist/application/services/session-manager.service.d.ts +86 -0
  37. package/dist/application/services/session-manager.service.d.ts.map +1 -0
  38. package/dist/application/services/session-manager.service.js +318 -0
  39. package/dist/application/services/session-manager.service.js.map +1 -0
  40. package/dist/application/services/workflow-engine.service.d.ts +76 -0
  41. package/dist/application/services/workflow-engine.service.d.ts.map +1 -0
  42. package/dist/application/services/workflow-engine.service.js +405 -0
  43. package/dist/application/services/workflow-engine.service.js.map +1 -0
  44. package/dist/application/state/application-state.d.ts +164 -0
  45. package/dist/application/state/application-state.d.ts.map +1 -0
  46. package/dist/application/state/application-state.js +290 -0
  47. package/dist/application/state/application-state.js.map +1 -0
  48. package/dist/application/state/index.d.ts +15 -0
  49. package/dist/application/state/index.d.ts.map +1 -0
  50. package/dist/application/state/index.js +15 -0
  51. package/dist/application/state/index.js.map +1 -0
  52. package/dist/application/state/session-state.d.ts +114 -0
  53. package/dist/application/state/session-state.d.ts.map +1 -0
  54. package/dist/application/state/session-state.js +188 -0
  55. package/dist/application/state/session-state.js.map +1 -0
  56. package/dist/application/state/state-manager.d.ts +122 -0
  57. package/dist/application/state/state-manager.d.ts.map +1 -0
  58. package/dist/application/state/state-manager.js +234 -0
  59. package/dist/application/state/state-manager.js.map +1 -0
  60. package/dist/application/types.d.ts +280 -0
  61. package/dist/application/types.d.ts.map +1 -0
  62. package/dist/application/types.js +13 -0
  63. package/dist/application/types.js.map +1 -0
  64. package/dist/application/workflows/analysis-workflow.d.ts +239 -0
  65. package/dist/application/workflows/analysis-workflow.d.ts.map +1 -0
  66. package/dist/application/workflows/analysis-workflow.js +395 -0
  67. package/dist/application/workflows/analysis-workflow.js.map +1 -0
  68. package/dist/application/workflows/base-workflow.d.ts +108 -0
  69. package/dist/application/workflows/base-workflow.d.ts.map +1 -0
  70. package/dist/application/workflows/base-workflow.js +236 -0
  71. package/dist/application/workflows/base-workflow.js.map +1 -0
  72. package/dist/application/workflows/index.d.ts +115 -0
  73. package/dist/application/workflows/index.d.ts.map +1 -0
  74. package/dist/application/workflows/index.js +218 -0
  75. package/dist/application/workflows/index.js.map +1 -0
  76. package/dist/application/workflows/refactor-workflow.d.ts +107 -0
  77. package/dist/application/workflows/refactor-workflow.d.ts.map +1 -0
  78. package/dist/application/workflows/refactor-workflow.js +310 -0
  79. package/dist/application/workflows/refactor-workflow.js.map +1 -0
  80. package/dist/core/analysis/complexity-analyzer.d.ts +81 -0
  81. package/dist/core/analysis/complexity-analyzer.d.ts.map +1 -0
  82. package/dist/core/analysis/complexity-analyzer.js +254 -0
  83. package/dist/core/analysis/complexity-analyzer.js.map +1 -0
  84. package/dist/core/analysis/dead-code-detector.d.ts +123 -0
  85. package/dist/core/analysis/dead-code-detector.d.ts.map +1 -0
  86. package/dist/core/analysis/dead-code-detector.js +275 -0
  87. package/dist/core/analysis/dead-code-detector.js.map +1 -0
  88. package/dist/core/analysis/duplication-detector.d.ts +150 -0
  89. package/dist/core/analysis/duplication-detector.d.ts.map +1 -0
  90. package/dist/core/analysis/duplication-detector.js +433 -0
  91. package/dist/core/analysis/duplication-detector.js.map +1 -0
  92. package/dist/core/analysis/index.d.ts +9 -0
  93. package/dist/core/analysis/index.d.ts.map +1 -0
  94. package/dist/core/analysis/index.js +13 -0
  95. package/dist/core/analysis/index.js.map +1 -0
  96. package/dist/core/analysis/quality-metrics.d.ts +158 -0
  97. package/dist/core/analysis/quality-metrics.d.ts.map +1 -0
  98. package/dist/core/analysis/quality-metrics.js +442 -0
  99. package/dist/core/analysis/quality-metrics.js.map +1 -0
  100. package/dist/core/dependency/cycle-detector.d.ts +81 -0
  101. package/dist/core/dependency/cycle-detector.d.ts.map +1 -0
  102. package/dist/core/dependency/cycle-detector.js +300 -0
  103. package/dist/core/dependency/cycle-detector.js.map +1 -0
  104. package/dist/core/dependency/dependency-analyzer.d.ts +152 -0
  105. package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -0
  106. package/dist/core/dependency/dependency-analyzer.js +458 -0
  107. package/dist/core/dependency/dependency-analyzer.js.map +1 -0
  108. package/dist/core/dependency/dependency-graph.d.ts +156 -0
  109. package/dist/core/dependency/dependency-graph.d.ts.map +1 -0
  110. package/dist/core/dependency/dependency-graph.js +371 -0
  111. package/dist/core/dependency/dependency-graph.js.map +1 -0
  112. package/dist/core/dependency/index.d.ts +27 -0
  113. package/dist/core/dependency/index.d.ts.map +1 -0
  114. package/dist/core/dependency/index.js +36 -0
  115. package/dist/core/dependency/index.js.map +1 -0
  116. package/dist/core/dependency/types.d.ts +168 -0
  117. package/dist/core/dependency/types.d.ts.map +1 -0
  118. package/dist/core/dependency/types.js +103 -0
  119. package/dist/core/dependency/types.js.map +1 -0
  120. package/dist/core/indexing/file-index.d.ts +117 -0
  121. package/dist/core/indexing/file-index.d.ts.map +1 -0
  122. package/dist/core/indexing/file-index.js +302 -0
  123. package/dist/core/indexing/file-index.js.map +1 -0
  124. package/dist/core/indexing/file-watcher.d.ts +110 -0
  125. package/dist/core/indexing/file-watcher.d.ts.map +1 -0
  126. package/dist/core/indexing/file-watcher.js +280 -0
  127. package/dist/core/indexing/file-watcher.js.map +1 -0
  128. package/dist/core/indexing/index-engine.d.ts +120 -0
  129. package/dist/core/indexing/index-engine.d.ts.map +1 -0
  130. package/dist/core/indexing/index-engine.js +445 -0
  131. package/dist/core/indexing/index-engine.js.map +1 -0
  132. package/dist/core/indexing/index.d.ts +25 -0
  133. package/dist/core/indexing/index.d.ts.map +1 -0
  134. package/dist/core/indexing/index.js +36 -0
  135. package/dist/core/indexing/index.js.map +1 -0
  136. package/dist/core/indexing/symbol-index.d.ts +107 -0
  137. package/dist/core/indexing/symbol-index.d.ts.map +1 -0
  138. package/dist/core/indexing/symbol-index.js +352 -0
  139. package/dist/core/indexing/symbol-index.js.map +1 -0
  140. package/dist/core/indexing/types.d.ts +222 -0
  141. package/dist/core/indexing/types.d.ts.map +1 -0
  142. package/dist/core/indexing/types.js +143 -0
  143. package/dist/core/indexing/types.js.map +1 -0
  144. package/dist/core/move/import-resolver.d.ts +54 -0
  145. package/dist/core/move/import-resolver.d.ts.map +1 -0
  146. package/dist/core/move/import-resolver.js +268 -0
  147. package/dist/core/move/import-resolver.js.map +1 -0
  148. package/dist/core/move/index.d.ts +10 -0
  149. package/dist/core/move/index.d.ts.map +1 -0
  150. package/dist/core/move/index.js +12 -0
  151. package/dist/core/move/index.js.map +1 -0
  152. package/dist/core/move/move-service.d.ts +67 -0
  153. package/dist/core/move/move-service.d.ts.map +1 -0
  154. package/dist/core/move/move-service.js +400 -0
  155. package/dist/core/move/move-service.js.map +1 -0
  156. package/dist/core/move/types.d.ts +266 -0
  157. package/dist/core/move/types.d.ts.map +1 -0
  158. package/dist/core/move/types.js +101 -0
  159. package/dist/core/move/types.js.map +1 -0
  160. package/dist/core/performance/analyzer.d.ts +62 -0
  161. package/dist/core/performance/analyzer.d.ts.map +1 -0
  162. package/dist/core/performance/analyzer.js +378 -0
  163. package/dist/core/performance/analyzer.js.map +1 -0
  164. package/dist/core/performance/cache-manager.d.ts +161 -0
  165. package/dist/core/performance/cache-manager.d.ts.map +1 -0
  166. package/dist/core/performance/cache-manager.js +375 -0
  167. package/dist/core/performance/cache-manager.js.map +1 -0
  168. package/dist/core/performance/index.d.ts +14 -0
  169. package/dist/core/performance/index.d.ts.map +1 -0
  170. package/dist/core/performance/index.js +17 -0
  171. package/dist/core/performance/index.js.map +1 -0
  172. package/dist/core/performance/interfaces.d.ts +188 -0
  173. package/dist/core/performance/interfaces.d.ts.map +1 -0
  174. package/dist/core/performance/interfaces.js +17 -0
  175. package/dist/core/performance/interfaces.js.map +1 -0
  176. package/dist/core/performance/memory-manager.d.ts +176 -0
  177. package/dist/core/performance/memory-manager.d.ts.map +1 -0
  178. package/dist/core/performance/memory-manager.js +364 -0
  179. package/dist/core/performance/memory-manager.js.map +1 -0
  180. package/dist/core/performance/monitor.d.ts +92 -0
  181. package/dist/core/performance/monitor.d.ts.map +1 -0
  182. package/dist/core/performance/monitor.js +228 -0
  183. package/dist/core/performance/monitor.js.map +1 -0
  184. package/dist/core/refactor/design-patterns.d.ts +178 -0
  185. package/dist/core/refactor/design-patterns.d.ts.map +1 -0
  186. package/dist/core/refactor/design-patterns.js +656 -0
  187. package/dist/core/refactor/design-patterns.js.map +1 -0
  188. package/dist/core/refactor/extract-function.d.ts +175 -0
  189. package/dist/core/refactor/extract-function.d.ts.map +1 -0
  190. package/dist/core/refactor/extract-function.js +478 -0
  191. package/dist/core/refactor/extract-function.js.map +1 -0
  192. package/dist/core/refactor/index.d.ts +8 -0
  193. package/dist/core/refactor/index.d.ts.map +1 -0
  194. package/dist/core/refactor/index.js +11 -0
  195. package/dist/core/refactor/index.js.map +1 -0
  196. package/dist/core/refactor/inline-function.d.ts +175 -0
  197. package/dist/core/refactor/inline-function.d.ts.map +1 -0
  198. package/dist/core/refactor/inline-function.js +425 -0
  199. package/dist/core/refactor/inline-function.js.map +1 -0
  200. package/dist/core/rename/index.d.ts +9 -0
  201. package/dist/core/rename/index.d.ts.map +1 -0
  202. package/dist/core/rename/index.js +13 -0
  203. package/dist/core/rename/index.js.map +1 -0
  204. package/dist/core/rename/reference-updater.d.ts +77 -0
  205. package/dist/core/rename/reference-updater.d.ts.map +1 -0
  206. package/dist/core/rename/reference-updater.js +400 -0
  207. package/dist/core/rename/reference-updater.js.map +1 -0
  208. package/dist/core/rename/rename-engine.d.ts +69 -0
  209. package/dist/core/rename/rename-engine.d.ts.map +1 -0
  210. package/dist/core/rename/rename-engine.js +350 -0
  211. package/dist/core/rename/rename-engine.js.map +1 -0
  212. package/dist/core/rename/scope-analyzer.d.ts +75 -0
  213. package/dist/core/rename/scope-analyzer.d.ts.map +1 -0
  214. package/dist/core/rename/scope-analyzer.js +269 -0
  215. package/dist/core/rename/scope-analyzer.js.map +1 -0
  216. package/dist/core/rename/types.d.ts +163 -0
  217. package/dist/core/rename/types.d.ts.map +1 -0
  218. package/dist/core/rename/types.js +80 -0
  219. package/dist/core/rename/types.js.map +1 -0
  220. package/dist/core/search/engines/text-engine.d.ts +52 -0
  221. package/dist/core/search/engines/text-engine.d.ts.map +1 -0
  222. package/dist/core/search/engines/text-engine.js +376 -0
  223. package/dist/core/search/engines/text-engine.js.map +1 -0
  224. package/dist/core/search/index.d.ts +10 -0
  225. package/dist/core/search/index.d.ts.map +1 -0
  226. package/dist/core/search/index.js +11 -0
  227. package/dist/core/search/index.js.map +1 -0
  228. package/dist/core/search/service.d.ts +105 -0
  229. package/dist/core/search/service.d.ts.map +1 -0
  230. package/dist/core/search/service.js +384 -0
  231. package/dist/core/search/service.js.map +1 -0
  232. package/dist/core/search/types.d.ts +357 -0
  233. package/dist/core/search/types.d.ts.map +1 -0
  234. package/dist/core/search/types.js +47 -0
  235. package/dist/core/search/types.js.map +1 -0
  236. package/dist/infrastructure/cache/cache-manager.d.ts +113 -0
  237. package/dist/infrastructure/cache/cache-manager.d.ts.map +1 -0
  238. package/dist/infrastructure/cache/cache-manager.js +279 -0
  239. package/dist/infrastructure/cache/cache-manager.js.map +1 -0
  240. package/dist/infrastructure/cache/index.d.ts +138 -0
  241. package/dist/infrastructure/cache/index.d.ts.map +1 -0
  242. package/dist/infrastructure/cache/index.js +266 -0
  243. package/dist/infrastructure/cache/index.js.map +1 -0
  244. package/dist/infrastructure/cache/memory-cache.d.ts +94 -0
  245. package/dist/infrastructure/cache/memory-cache.d.ts.map +1 -0
  246. package/dist/infrastructure/cache/memory-cache.js +327 -0
  247. package/dist/infrastructure/cache/memory-cache.js.map +1 -0
  248. package/dist/infrastructure/cache/strategies.d.ts +99 -0
  249. package/dist/infrastructure/cache/strategies.d.ts.map +1 -0
  250. package/dist/infrastructure/cache/strategies.js +230 -0
  251. package/dist/infrastructure/cache/strategies.js.map +1 -0
  252. package/dist/infrastructure/cache/types.d.ts +220 -0
  253. package/dist/infrastructure/cache/types.d.ts.map +1 -0
  254. package/dist/infrastructure/cache/types.js +42 -0
  255. package/dist/infrastructure/cache/types.js.map +1 -0
  256. package/dist/infrastructure/parser/base.d.ts +126 -0
  257. package/dist/infrastructure/parser/base.d.ts.map +1 -0
  258. package/dist/infrastructure/parser/base.js +269 -0
  259. package/dist/infrastructure/parser/base.js.map +1 -0
  260. package/dist/infrastructure/parser/factory.d.ts +141 -0
  261. package/dist/infrastructure/parser/factory.d.ts.map +1 -0
  262. package/dist/infrastructure/parser/factory.js +306 -0
  263. package/dist/infrastructure/parser/factory.js.map +1 -0
  264. package/dist/infrastructure/parser/index.d.ts +12 -0
  265. package/dist/infrastructure/parser/index.d.ts.map +1 -0
  266. package/dist/infrastructure/parser/index.js +12 -0
  267. package/dist/infrastructure/parser/index.js.map +1 -0
  268. package/dist/infrastructure/parser/interface.d.ts +108 -0
  269. package/dist/infrastructure/parser/interface.d.ts.map +1 -0
  270. package/dist/infrastructure/parser/interface.js +72 -0
  271. package/dist/infrastructure/parser/interface.js.map +1 -0
  272. package/dist/infrastructure/parser/registry.d.ts +141 -0
  273. package/dist/infrastructure/parser/registry.d.ts.map +1 -0
  274. package/dist/infrastructure/parser/registry.js +289 -0
  275. package/dist/infrastructure/parser/registry.js.map +1 -0
  276. package/dist/infrastructure/parser/types.d.ts +172 -0
  277. package/dist/infrastructure/parser/types.d.ts.map +1 -0
  278. package/dist/infrastructure/parser/types.js +147 -0
  279. package/dist/infrastructure/parser/types.js.map +1 -0
  280. package/dist/infrastructure/storage/file-system.d.ts +74 -0
  281. package/dist/infrastructure/storage/file-system.d.ts.map +1 -0
  282. package/dist/infrastructure/storage/file-system.js +334 -0
  283. package/dist/infrastructure/storage/file-system.js.map +1 -0
  284. package/dist/infrastructure/storage/file-watcher.d.ts +84 -0
  285. package/dist/infrastructure/storage/file-watcher.d.ts.map +1 -0
  286. package/dist/infrastructure/storage/file-watcher.js +249 -0
  287. package/dist/infrastructure/storage/file-watcher.js.map +1 -0
  288. package/dist/infrastructure/storage/index.d.ts +11 -0
  289. package/dist/infrastructure/storage/index.d.ts.map +1 -0
  290. package/dist/infrastructure/storage/index.js +16 -0
  291. package/dist/infrastructure/storage/index.js.map +1 -0
  292. package/dist/infrastructure/storage/path-utils.d.ts +96 -0
  293. package/dist/infrastructure/storage/path-utils.d.ts.map +1 -0
  294. package/dist/infrastructure/storage/path-utils.js +272 -0
  295. package/dist/infrastructure/storage/path-utils.js.map +1 -0
  296. package/dist/infrastructure/storage/types.d.ts +106 -0
  297. package/dist/infrastructure/storage/types.d.ts.map +1 -0
  298. package/dist/infrastructure/storage/types.js +53 -0
  299. package/dist/infrastructure/storage/types.js.map +1 -0
  300. package/dist/interfaces/cli/cli.d.ts +70 -0
  301. package/dist/interfaces/cli/cli.d.ts.map +1 -0
  302. package/dist/interfaces/cli/cli.js +1054 -0
  303. package/dist/interfaces/cli/cli.js.map +1 -0
  304. package/dist/interfaces/cli/index.d.ts +7 -0
  305. package/dist/interfaces/cli/index.d.ts.map +1 -0
  306. package/dist/interfaces/cli/index.js +22 -0
  307. package/dist/interfaces/cli/index.js.map +1 -0
  308. package/dist/interfaces/mcp/index.d.ts +7 -0
  309. package/dist/interfaces/mcp/index.d.ts.map +1 -0
  310. package/dist/interfaces/mcp/index.js +6 -0
  311. package/dist/interfaces/mcp/index.js.map +1 -0
  312. package/dist/interfaces/mcp/mcp-server.d.ts +34 -0
  313. package/dist/interfaces/mcp/mcp-server.d.ts.map +1 -0
  314. package/dist/interfaces/mcp/mcp-server.js +154 -0
  315. package/dist/interfaces/mcp/mcp-server.js.map +1 -0
  316. package/dist/interfaces/mcp/mcp.d.ts +44 -0
  317. package/dist/interfaces/mcp/mcp.d.ts.map +1 -0
  318. package/dist/interfaces/mcp/mcp.js +559 -0
  319. package/dist/interfaces/mcp/mcp.js.map +1 -0
  320. package/dist/plugins/javascript/index.d.ts +12 -0
  321. package/dist/plugins/javascript/index.d.ts.map +1 -0
  322. package/dist/plugins/javascript/index.js +16 -0
  323. package/dist/plugins/javascript/index.js.map +1 -0
  324. package/dist/plugins/javascript/parser.d.ts +81 -0
  325. package/dist/plugins/javascript/parser.d.ts.map +1 -0
  326. package/dist/plugins/javascript/parser.js +457 -0
  327. package/dist/plugins/javascript/parser.js.map +1 -0
  328. package/dist/plugins/javascript/types.d.ts +131 -0
  329. package/dist/plugins/javascript/types.d.ts.map +1 -0
  330. package/dist/plugins/javascript/types.js +366 -0
  331. package/dist/plugins/javascript/types.js.map +1 -0
  332. package/dist/plugins/swift/index.d.ts +11 -0
  333. package/dist/plugins/swift/index.d.ts.map +1 -0
  334. package/dist/plugins/swift/index.js +15 -0
  335. package/dist/plugins/swift/index.js.map +1 -0
  336. package/dist/plugins/swift/parser.d.ts +98 -0
  337. package/dist/plugins/swift/parser.d.ts.map +1 -0
  338. package/dist/plugins/swift/parser.js +612 -0
  339. package/dist/plugins/swift/parser.js.map +1 -0
  340. package/dist/plugins/swift/types.d.ts +196 -0
  341. package/dist/plugins/swift/types.d.ts.map +1 -0
  342. package/dist/plugins/swift/types.js +268 -0
  343. package/dist/plugins/swift/types.js.map +1 -0
  344. package/dist/plugins/typescript/dependency-analyzer.d.ts +78 -0
  345. package/dist/plugins/typescript/dependency-analyzer.d.ts.map +1 -0
  346. package/dist/plugins/typescript/dependency-analyzer.js +305 -0
  347. package/dist/plugins/typescript/dependency-analyzer.js.map +1 -0
  348. package/dist/plugins/typescript/index.d.ts +9 -0
  349. package/dist/plugins/typescript/index.d.ts.map +1 -0
  350. package/dist/plugins/typescript/index.js +8 -0
  351. package/dist/plugins/typescript/index.js.map +1 -0
  352. package/dist/plugins/typescript/parser.d.ts +117 -0
  353. package/dist/plugins/typescript/parser.d.ts.map +1 -0
  354. package/dist/plugins/typescript/parser.js +888 -0
  355. package/dist/plugins/typescript/parser.js.map +1 -0
  356. package/dist/plugins/typescript/symbol-extractor.d.ts +76 -0
  357. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -0
  358. package/dist/plugins/typescript/symbol-extractor.js +339 -0
  359. package/dist/plugins/typescript/symbol-extractor.js.map +1 -0
  360. package/dist/plugins/typescript/types.d.ts +131 -0
  361. package/dist/plugins/typescript/types.d.ts.map +1 -0
  362. package/dist/plugins/typescript/types.js +331 -0
  363. package/dist/plugins/typescript/types.js.map +1 -0
  364. package/dist/shared/errors/base-error.d.ts +27 -0
  365. package/dist/shared/errors/base-error.d.ts.map +1 -0
  366. package/dist/shared/errors/base-error.js +58 -0
  367. package/dist/shared/errors/base-error.js.map +1 -0
  368. package/dist/shared/errors/config-error.d.ts +21 -0
  369. package/dist/shared/errors/config-error.d.ts.map +1 -0
  370. package/dist/shared/errors/config-error.js +34 -0
  371. package/dist/shared/errors/config-error.js.map +1 -0
  372. package/dist/shared/errors/file-error.d.ts +21 -0
  373. package/dist/shared/errors/file-error.d.ts.map +1 -0
  374. package/dist/shared/errors/file-error.js +34 -0
  375. package/dist/shared/errors/file-error.js.map +1 -0
  376. package/dist/shared/errors/index.d.ts +59 -0
  377. package/dist/shared/errors/index.d.ts.map +1 -0
  378. package/dist/shared/errors/index.js +114 -0
  379. package/dist/shared/errors/index.js.map +1 -0
  380. package/dist/shared/errors/parser-error.d.ts +72 -0
  381. package/dist/shared/errors/parser-error.d.ts.map +1 -0
  382. package/dist/shared/errors/parser-error.js +104 -0
  383. package/dist/shared/errors/parser-error.js.map +1 -0
  384. package/dist/shared/errors/validation-error.d.ts +21 -0
  385. package/dist/shared/errors/validation-error.d.ts.map +1 -0
  386. package/dist/shared/errors/validation-error.js +34 -0
  387. package/dist/shared/errors/validation-error.js.map +1 -0
  388. package/dist/shared/index.d.ts +11 -0
  389. package/dist/shared/index.d.ts.map +1 -0
  390. package/dist/shared/index.js +22 -0
  391. package/dist/shared/index.js.map +1 -0
  392. package/dist/shared/types/ast.d.ts +78 -0
  393. package/dist/shared/types/ast.d.ts.map +1 -0
  394. package/dist/shared/types/ast.js +215 -0
  395. package/dist/shared/types/ast.js.map +1 -0
  396. package/dist/shared/types/core.d.ts +65 -0
  397. package/dist/shared/types/core.d.ts.map +1 -0
  398. package/dist/shared/types/core.js +114 -0
  399. package/dist/shared/types/core.js.map +1 -0
  400. package/dist/shared/types/index.d.ts +11 -0
  401. package/dist/shared/types/index.d.ts.map +1 -0
  402. package/dist/shared/types/index.js +12 -0
  403. package/dist/shared/types/index.js.map +1 -0
  404. package/dist/shared/types/symbol.d.ts +119 -0
  405. package/dist/shared/types/symbol.d.ts.map +1 -0
  406. package/dist/shared/types/symbol.js +197 -0
  407. package/dist/shared/types/symbol.js.map +1 -0
  408. package/dist/shared/utils/array.d.ts +68 -0
  409. package/dist/shared/utils/array.d.ts.map +1 -0
  410. package/dist/shared/utils/array.js +165 -0
  411. package/dist/shared/utils/array.js.map +1 -0
  412. package/dist/shared/utils/async.d.ts +87 -0
  413. package/dist/shared/utils/async.d.ts.map +1 -0
  414. package/dist/shared/utils/async.js +185 -0
  415. package/dist/shared/utils/async.js.map +1 -0
  416. package/dist/shared/utils/index.d.ts +32 -0
  417. package/dist/shared/utils/index.d.ts.map +1 -0
  418. package/dist/shared/utils/index.js +37 -0
  419. package/dist/shared/utils/index.js.map +1 -0
  420. package/dist/shared/utils/memory-monitor.d.ts +83 -0
  421. package/dist/shared/utils/memory-monitor.d.ts.map +1 -0
  422. package/dist/shared/utils/memory-monitor.js +168 -0
  423. package/dist/shared/utils/memory-monitor.js.map +1 -0
  424. package/dist/shared/utils/object.d.ts +71 -0
  425. package/dist/shared/utils/object.d.ts.map +1 -0
  426. package/dist/shared/utils/object.js +284 -0
  427. package/dist/shared/utils/object.js.map +1 -0
  428. package/dist/shared/utils/path.d.ts +59 -0
  429. package/dist/shared/utils/path.d.ts.map +1 -0
  430. package/dist/shared/utils/path.js +201 -0
  431. package/dist/shared/utils/path.js.map +1 -0
  432. package/dist/shared/utils/string.d.ts +74 -0
  433. package/dist/shared/utils/string.d.ts.map +1 -0
  434. package/dist/shared/utils/string.js +201 -0
  435. package/dist/shared/utils/string.js.map +1 -0
  436. package/package.json +81 -0
@@ -0,0 +1,175 @@
1
+ /**
2
+ * 內聯函式重構器
3
+ * 將函式呼叫替換為函式內容
4
+ */
5
+ export interface Range {
6
+ start: {
7
+ line: number;
8
+ column: number;
9
+ };
10
+ end: {
11
+ line: number;
12
+ column: number;
13
+ };
14
+ }
15
+ export interface CodeEdit {
16
+ range: Range;
17
+ newText: string;
18
+ type: 'replace' | 'insert' | 'delete';
19
+ }
20
+ export interface FunctionDefinition {
21
+ name: string;
22
+ parameters: string[];
23
+ body: string;
24
+ returnType?: string;
25
+ location: Range;
26
+ isArrow: boolean;
27
+ isAsync: boolean;
28
+ }
29
+ export interface FunctionCall {
30
+ name: string;
31
+ arguments: string[];
32
+ location: Range;
33
+ assignTo?: string;
34
+ isAwait: boolean;
35
+ }
36
+ export interface InlineResult {
37
+ success: boolean;
38
+ functionName: string;
39
+ edits: CodeEdit[];
40
+ inlinedCallsCount: number;
41
+ removedFunction: boolean;
42
+ errors: string[];
43
+ warnings: string[];
44
+ }
45
+ export interface InlineConfig {
46
+ removeFunction: boolean;
47
+ preserveComments: boolean;
48
+ validateInlining: boolean;
49
+ inlineAllCalls: boolean;
50
+ maxComplexity?: number;
51
+ }
52
+ export interface ASTNode {
53
+ type: string;
54
+ start: number;
55
+ end: number;
56
+ loc: {
57
+ start: {
58
+ line: number;
59
+ column: number;
60
+ };
61
+ end: {
62
+ line: number;
63
+ column: number;
64
+ };
65
+ };
66
+ children?: ASTNode[];
67
+ name?: string;
68
+ value?: any;
69
+ body?: ASTNode;
70
+ params?: ASTNode[];
71
+ arguments?: ASTNode[];
72
+ }
73
+ /**
74
+ * 內聯分析器
75
+ * 分析函式是否適合內聯
76
+ */
77
+ export declare class InlineAnalyzer {
78
+ /**
79
+ * 分析函式的可內聯性
80
+ */
81
+ analyze(functionDef: FunctionDefinition, calls: FunctionCall[]): {
82
+ canInline: boolean;
83
+ issues: string[];
84
+ complexity: number;
85
+ callsCount: number;
86
+ estimatedSizeIncrease: number;
87
+ };
88
+ /**
89
+ * 計算函式複雜度(簡化版)
90
+ */
91
+ private calculateComplexity;
92
+ /**
93
+ * 檢查內聯限制
94
+ */
95
+ private checkInlineConstraints;
96
+ /**
97
+ * 檢查呼叫相容性
98
+ */
99
+ private checkCallCompatibility;
100
+ /**
101
+ * 檢查是否為遞迴函式
102
+ */
103
+ private isRecursive;
104
+ /**
105
+ * 檢查是否使用 arguments
106
+ */
107
+ private usesArguments;
108
+ /**
109
+ * 檢查是否使用 this
110
+ */
111
+ private usesThis;
112
+ /**
113
+ * 找出名稱衝突
114
+ */
115
+ private findNameConflicts;
116
+ }
117
+ /**
118
+ * 函式內聯器主類
119
+ */
120
+ export declare class FunctionInliner {
121
+ private analyzer;
122
+ /**
123
+ * 內聯函式
124
+ */
125
+ inline(code: string, functionName: string, config?: InlineConfig): Promise<InlineResult>;
126
+ /**
127
+ * 找出函式定義
128
+ */
129
+ private findFunctionDefinition;
130
+ /**
131
+ * 找出函式呼叫
132
+ */
133
+ private findFunctionCalls;
134
+ /**
135
+ * 獲取匹配的位置資訊
136
+ */
137
+ private getMatchLocation;
138
+ /**
139
+ * 將偏移量轉換為行列位置
140
+ */
141
+ private offsetToPosition;
142
+ /**
143
+ * 生成內聯編輯操作
144
+ */
145
+ private generateInlineEdits;
146
+ /**
147
+ * 生成內聯程式碼
148
+ */
149
+ private generateInlinedCode;
150
+ /**
151
+ * 預覽內聯結果
152
+ */
153
+ preview(code: string, functionName: string, config?: InlineConfig): Promise<{
154
+ originalCode: string;
155
+ modifiedCode: string;
156
+ removedFunction: string;
157
+ changesCount: number;
158
+ }>;
159
+ /**
160
+ * 批次內聯多個函式
161
+ */
162
+ inlineMultiple(code: string, functionNames: string[], config?: InlineConfig): Promise<{
163
+ code: string;
164
+ results: InlineResult[];
165
+ }>;
166
+ /**
167
+ * 應用編輯操作
168
+ */
169
+ private applyEdit;
170
+ /**
171
+ * 將位置轉換為偏移量
172
+ */
173
+ private positionToOffset;
174
+ }
175
+ //# sourceMappingURL=inline-function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-function.d.ts","sourceRoot":"","sources":["../../../src/core/refactor/inline-function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,425 @@
1
+ /**
2
+ * 內聯函式重構器
3
+ * 將函式呼叫替換為函式內容
4
+ */
5
+ /**
6
+ * 內聯分析器
7
+ * 分析函式是否適合內聯
8
+ */
9
+ export class InlineAnalyzer {
10
+ /**
11
+ * 分析函式的可內聯性
12
+ */
13
+ analyze(functionDef, calls) {
14
+ const issues = [];
15
+ let complexity = 0;
16
+ // 基本驗證
17
+ if (!functionDef || !functionDef.body) {
18
+ issues.push('函式定義無效');
19
+ return { canInline: false, issues, complexity: 0, callsCount: 0, estimatedSizeIncrease: 0 };
20
+ }
21
+ if (calls.length === 0) {
22
+ issues.push('沒有找到函式呼叫');
23
+ return { canInline: false, issues, complexity: 0, callsCount: 0, estimatedSizeIncrease: 0 };
24
+ }
25
+ // 計算函式複雜度
26
+ complexity = this.calculateComplexity(functionDef.body);
27
+ // 檢查內聯限制
28
+ this.checkInlineConstraints(functionDef, issues);
29
+ // 檢查呼叫相容性
30
+ this.checkCallCompatibility(functionDef, calls, issues);
31
+ // 估算大小增長
32
+ const bodySize = functionDef.body.length;
33
+ const estimatedSizeIncrease = bodySize * (calls.length - 1); // -1 因為原函式會被移除
34
+ return {
35
+ canInline: issues.length === 0,
36
+ issues,
37
+ complexity,
38
+ callsCount: calls.length,
39
+ estimatedSizeIncrease
40
+ };
41
+ }
42
+ /**
43
+ * 計算函式複雜度(簡化版)
44
+ */
45
+ calculateComplexity(code) {
46
+ let complexity = 1; // 基礎複雜度
47
+ // 計算控制結構
48
+ const patterns = [
49
+ /\bif\b/g, // if 語句
50
+ /\belse\b/g, // else 語句
51
+ /\bfor\b/g, // for 迴圈
52
+ /\bwhile\b/g, // while 迴圈
53
+ /\bswitch\b/g, // switch 語句
54
+ /\bcatch\b/g, // catch 語句
55
+ /\b&&\b/g, // 邏輯 AND
56
+ /\b\|\|\b/g, // 邏輯 OR
57
+ /\?\s*.*?\s*:/g // 三元運算子
58
+ ];
59
+ for (const pattern of patterns) {
60
+ const matches = code.match(pattern);
61
+ if (matches) {
62
+ complexity += matches.length;
63
+ }
64
+ }
65
+ return complexity;
66
+ }
67
+ /**
68
+ * 檢查內聯限制
69
+ */
70
+ checkInlineConstraints(functionDef, issues) {
71
+ // 檢查遞迴調用
72
+ if (this.isRecursive(functionDef)) {
73
+ issues.push('函式包含遞迴調用,無法內聯');
74
+ }
75
+ // 檢查函式大小
76
+ if (functionDef.body.length > 200) {
77
+ issues.push('函式過大,內聯可能降低可讀性');
78
+ }
79
+ // 異步函式可以內聯,但會包裝為 IIFE
80
+ // 這裡不再阻止異步函式內聯
81
+ // 檢查 arguments 使用
82
+ if (this.usesArguments(functionDef.body)) {
83
+ issues.push('函式使用 arguments 對象,內聯可能有問題');
84
+ }
85
+ // 檢查 this 使用
86
+ if (this.usesThis(functionDef.body)) {
87
+ issues.push('函式使用 this,內聯可能改變上下文');
88
+ }
89
+ }
90
+ /**
91
+ * 檢查呼叫相容性
92
+ */
93
+ checkCallCompatibility(functionDef, calls, issues) {
94
+ for (const call of calls) {
95
+ // 檢查參數數量
96
+ if (call.arguments.length !== functionDef.parameters.length) {
97
+ issues.push(`函式呼叫參數數量不匹配: ${call.arguments.length} vs ${functionDef.parameters.length}`);
98
+ }
99
+ // 檢查異步匹配
100
+ if (functionDef.isAsync && !call.isAwait) {
101
+ issues.push('異步函式呼叫缺少 await');
102
+ }
103
+ // 檢查變數名稱衝突
104
+ const conflicts = this.findNameConflicts(functionDef, call);
105
+ if (conflicts.length > 0) {
106
+ issues.push(`變數名稱衝突: ${conflicts.join(', ')}`);
107
+ }
108
+ }
109
+ }
110
+ /**
111
+ * 檢查是否為遞迴函式
112
+ */
113
+ isRecursive(functionDef) {
114
+ return functionDef.body.includes(functionDef.name);
115
+ }
116
+ /**
117
+ * 檢查是否使用 arguments
118
+ */
119
+ usesArguments(code) {
120
+ return /\barguments\b/.test(code);
121
+ }
122
+ /**
123
+ * 檢查是否使用 this
124
+ */
125
+ usesThis(code) {
126
+ return /\bthis\b/.test(code);
127
+ }
128
+ /**
129
+ * 找出名稱衝突
130
+ */
131
+ findNameConflicts(functionDef, call) {
132
+ const conflicts = [];
133
+ // 簡化實作:實際需要進行詳細的作用域分析
134
+ return conflicts;
135
+ }
136
+ }
137
+ /**
138
+ * 函式內聯器主類
139
+ */
140
+ export class FunctionInliner {
141
+ analyzer = new InlineAnalyzer();
142
+ /**
143
+ * 內聯函式
144
+ */
145
+ async inline(code, functionName, config = {
146
+ removeFunction: true,
147
+ preserveComments: false,
148
+ validateInlining: true,
149
+ inlineAllCalls: true
150
+ }) {
151
+ // 輸入驗證
152
+ if (typeof code !== 'string' || code.trim().length === 0) {
153
+ throw new Error('程式碼不能為空');
154
+ }
155
+ if (!functionName || typeof functionName !== 'string') {
156
+ throw new Error('函式名稱無效');
157
+ }
158
+ // 找出函式定義
159
+ const functionDef = this.findFunctionDefinition(code, functionName);
160
+ if (!functionDef) {
161
+ return {
162
+ success: false,
163
+ functionName,
164
+ edits: [],
165
+ inlinedCallsCount: 0,
166
+ removedFunction: false,
167
+ errors: [`找不到函式定義: ${functionName}`],
168
+ warnings: []
169
+ };
170
+ }
171
+ // 找出所有函式呼叫
172
+ const calls = this.findFunctionCalls(code, functionName);
173
+ // 分析可內聯性
174
+ const analysis = this.analyzer.analyze(functionDef, calls);
175
+ if (!analysis.canInline) {
176
+ return {
177
+ success: false,
178
+ functionName,
179
+ edits: [],
180
+ inlinedCallsCount: 0,
181
+ removedFunction: false,
182
+ errors: analysis.issues,
183
+ warnings: []
184
+ };
185
+ }
186
+ // 生成編輯操作
187
+ const edits = this.generateInlineEdits(functionDef, calls, config);
188
+ return {
189
+ success: true,
190
+ functionName,
191
+ edits,
192
+ inlinedCallsCount: calls.length,
193
+ removedFunction: config.removeFunction,
194
+ errors: [],
195
+ warnings: analysis.estimatedSizeIncrease > 1000 ? ['內聯可能顯著增加程式碼大小'] : []
196
+ };
197
+ }
198
+ /**
199
+ * 找出函式定義
200
+ */
201
+ findFunctionDefinition(code, functionName) {
202
+ // 簡化實作:使用正則表達式找函式定義
203
+ const patterns = [
204
+ // 函式宣告: function name() {...}
205
+ new RegExp(`function\\s+${functionName}\\s*\\(([^)]*)\\)\\s*\\{([^}]*)\\}`, 'g'),
206
+ // 箭頭函式: const name = (...) => {...}
207
+ new RegExp(`const\\s+${functionName}\\s*=\\s*\\(([^)]*)\\)\\s*=>\\s*\\{([^}]*)\\}`, 'g'),
208
+ // 方法定義: name(...) {...}
209
+ new RegExp(`${functionName}\\s*\\(([^)]*)\\)\\s*\\{([^}]*)\\}`, 'g')
210
+ ];
211
+ for (const pattern of patterns) {
212
+ const match = pattern.exec(code);
213
+ if (match) {
214
+ const parameters = match[1] ? match[1].split(',').map(p => p.trim()) : [];
215
+ const body = match[2];
216
+ return {
217
+ name: functionName,
218
+ parameters,
219
+ body: body.trim(),
220
+ location: this.getMatchLocation(code, match),
221
+ isArrow: match[0].includes('=>'),
222
+ isAsync: match[0].includes('async')
223
+ };
224
+ }
225
+ }
226
+ return null;
227
+ }
228
+ /**
229
+ * 找出函式呼叫
230
+ */
231
+ findFunctionCalls(code, functionName) {
232
+ const calls = [];
233
+ // 簡化實作:使用正則表達式找函式呼叫
234
+ const patterns = [
235
+ // 一般呼叫: functionName(...)
236
+ new RegExp(`${functionName}\\s*\\(([^)]*)\\)`, 'g'),
237
+ // 賦值呼叫: var = functionName(...)
238
+ new RegExp(`(\\w+)\\s*=\\s*${functionName}\\s*\\(([^)]*)\\)`, 'g'),
239
+ // await 呼叫: await functionName(...)
240
+ new RegExp(`await\\s+${functionName}\\s*\\(([^)]*)\\)`, 'g')
241
+ ];
242
+ for (const pattern of patterns) {
243
+ let match;
244
+ while ((match = pattern.exec(code)) !== null) {
245
+ const args = match[match.length - 1] ?
246
+ match[match.length - 1].split(',').map(arg => arg.trim()) : [];
247
+ calls.push({
248
+ name: functionName,
249
+ arguments: args,
250
+ location: this.getMatchLocation(code, match),
251
+ assignTo: match.length > 2 && !match[0].includes('await') ? match[1] : undefined,
252
+ isAwait: match[0].includes('await')
253
+ });
254
+ }
255
+ }
256
+ return calls;
257
+ }
258
+ /**
259
+ * 獲取匹配的位置資訊
260
+ */
261
+ getMatchLocation(code, match) {
262
+ const start = match.index || 0;
263
+ const end = start + match[0].length;
264
+ const startPos = this.offsetToPosition(code, start);
265
+ const endPos = this.offsetToPosition(code, end);
266
+ return { start: startPos, end: endPos };
267
+ }
268
+ /**
269
+ * 將偏移量轉換為行列位置
270
+ */
271
+ offsetToPosition(code, offset) {
272
+ const lines = code.substring(0, offset).split('\n');
273
+ return {
274
+ line: lines.length,
275
+ column: lines[lines.length - 1].length
276
+ };
277
+ }
278
+ /**
279
+ * 生成內聯編輯操作
280
+ */
281
+ generateInlineEdits(functionDef, calls, config) {
282
+ const edits = [];
283
+ // 1. 替換所有函式呼叫
284
+ for (const call of calls) {
285
+ const inlinedCode = this.generateInlinedCode(functionDef, call);
286
+ edits.push({
287
+ range: call.location,
288
+ newText: inlinedCode,
289
+ type: 'replace'
290
+ });
291
+ }
292
+ // 2. 移除函式定義(如果配置允許)
293
+ if (config.removeFunction) {
294
+ edits.push({
295
+ range: functionDef.location,
296
+ newText: '',
297
+ type: 'delete'
298
+ });
299
+ }
300
+ // 按位置排序(從後往前,避免位置偏移)
301
+ edits.sort((a, b) => {
302
+ if (a.range.start.line !== b.range.start.line) {
303
+ return b.range.start.line - a.range.start.line;
304
+ }
305
+ return b.range.start.column - a.range.start.column;
306
+ });
307
+ return edits;
308
+ }
309
+ /**
310
+ * 生成內聯程式碼
311
+ */
312
+ generateInlinedCode(functionDef, call) {
313
+ let inlinedBody = functionDef.body;
314
+ // 替換參數
315
+ for (let i = 0; i < functionDef.parameters.length; i++) {
316
+ const param = functionDef.parameters[i];
317
+ const arg = call.arguments[i] || 'undefined';
318
+ // 簡化實作:全文替換參數名稱
319
+ const paramRegex = new RegExp(`\\b${param}\\b`, 'g');
320
+ inlinedBody = inlinedBody.replace(paramRegex, arg);
321
+ }
322
+ // 處理異步函式
323
+ if (functionDef.isAsync) {
324
+ // 異步函式需要包裝成立即執行的異步函式表達式
325
+ if (call.assignTo) {
326
+ // 如果有賦值,需要用 await
327
+ return `${call.assignTo} = await (async () => {\n ${inlinedBody}\n})()`;
328
+ }
329
+ else {
330
+ // 否則直接包裝
331
+ return `(async () => {\n ${inlinedBody}\n})()`;
332
+ }
333
+ }
334
+ // 處理同步函式的 return 語句
335
+ if (call.assignTo) {
336
+ // 如果有賦值,將 return 替換為賦值
337
+ inlinedBody = inlinedBody.replace(/return\s+([^;]+);?/g, `${call.assignTo} = $1;`);
338
+ }
339
+ else {
340
+ // 否則移除 return 語句
341
+ inlinedBody = inlinedBody.replace(/return\s+([^;]+);?/g, '$1');
342
+ }
343
+ // 處理函式體格式
344
+ if (inlinedBody.includes('\n')) {
345
+ // 多行函式體,使用區塊包裝
346
+ return `{\n${inlinedBody}\n}`;
347
+ }
348
+ else {
349
+ // 單行函式體,直接內聯
350
+ return inlinedBody.endsWith(';') ? inlinedBody : `${inlinedBody};`;
351
+ }
352
+ }
353
+ /**
354
+ * 預覽內聯結果
355
+ */
356
+ async preview(code, functionName, config) {
357
+ const result = await this.inline(code, functionName, config);
358
+ if (!result.success) {
359
+ throw new Error(`內聯預覽失敗: ${result.errors.join(', ')}`);
360
+ }
361
+ // 應用編輯操作
362
+ let modifiedCode = code;
363
+ for (const edit of result.edits) {
364
+ modifiedCode = this.applyEdit(modifiedCode, edit);
365
+ }
366
+ // 找出被移除的函式程式碼
367
+ const functionDef = this.findFunctionDefinition(code, functionName);
368
+ const removedFunction = functionDef ?
369
+ code.substring(this.positionToOffset(code, functionDef.location.start), this.positionToOffset(code, functionDef.location.end)) : '';
370
+ return {
371
+ originalCode: code,
372
+ modifiedCode,
373
+ removedFunction,
374
+ changesCount: result.inlinedCallsCount + (result.removedFunction ? 1 : 0)
375
+ };
376
+ }
377
+ /**
378
+ * 批次內聯多個函式
379
+ */
380
+ async inlineMultiple(code, functionNames, config) {
381
+ let workingCode = code;
382
+ const results = [];
383
+ for (const functionName of functionNames) {
384
+ const result = await this.inline(workingCode, functionName, config);
385
+ results.push(result);
386
+ if (result.success) {
387
+ // 應用變更到工作程式碼
388
+ for (const edit of result.edits) {
389
+ workingCode = this.applyEdit(workingCode, edit);
390
+ }
391
+ }
392
+ }
393
+ return { code: workingCode, results };
394
+ }
395
+ /**
396
+ * 應用編輯操作
397
+ */
398
+ applyEdit(code, edit) {
399
+ const startOffset = this.positionToOffset(code, edit.range.start);
400
+ const endOffset = this.positionToOffset(code, edit.range.end);
401
+ switch (edit.type) {
402
+ case 'replace':
403
+ return code.substring(0, startOffset) + edit.newText + code.substring(endOffset);
404
+ case 'insert':
405
+ return code.substring(0, startOffset) + edit.newText + code.substring(startOffset);
406
+ case 'delete':
407
+ return code.substring(0, startOffset) + code.substring(endOffset);
408
+ default:
409
+ return code;
410
+ }
411
+ }
412
+ /**
413
+ * 將位置轉換為偏移量
414
+ */
415
+ positionToOffset(code, position) {
416
+ const lines = code.split('\n');
417
+ let offset = 0;
418
+ for (let i = 0; i < position.line - 1 && i < lines.length; i++) {
419
+ offset += lines[i].length + 1; // +1 for newline
420
+ }
421
+ offset += position.column;
422
+ return Math.min(offset, code.length);
423
+ }
424
+ }
425
+ //# sourceMappingURL=inline-function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-function.js","sourceRoot":"","sources":["../../../src/core/refactor/inline-function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 重新命名模組匯出
3
+ * 統一匯出重新命名相關的類別和型別
4
+ */
5
+ export { RenameEngine } from './rename-engine.js';
6
+ export { ScopeAnalyzer } from './scope-analyzer.js';
7
+ export { ReferenceUpdater } from './reference-updater.js';
8
+ export { RenameOptions, RenameResult, RenameOperation, RenamePreview, ValidationResult, BatchRenameResult, ConflictInfo, ConflictType, RenameSummary, ScopeAnalysisResult, ShadowedVariable, ShadowInfo, UpdateResult, UpdatedFile, TextChange, SymbolReference, createRenameOptions, createRenameOperation, createConflictInfo, isRenameOptions } from './types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/rename/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,EAGf,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAGlB,eAAe,EAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 重新命名模組匯出
3
+ * 統一匯出重新命名相關的類別和型別
4
+ */
5
+ export { RenameEngine } from './rename-engine.js';
6
+ export { ScopeAnalyzer } from './scope-analyzer.js';
7
+ export { ReferenceUpdater } from './reference-updater.js';
8
+ export { ConflictType,
9
+ // 工廠函式
10
+ createRenameOptions, createRenameOperation, createConflictInfo,
11
+ // 型別守衛
12
+ isRenameOptions } from './types.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/rename/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EASL,YAAY;AAUZ,OAAO;AACP,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB;AAElB,OAAO;AACP,eAAe,EAChB,MAAM,YAAY,CAAC"}