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 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/parser/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQnD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,WAAW;IACX,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAE5B,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,gBAAgB;IAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,aAAa;IACb,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAEhD,YAAY;IACZ,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAEtD,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IAEzD,uBAAuB;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmC;IAEhE,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAE/D,aAAa;IACb,OAAO,CAAC,WAAW,CAAS;IAE5B,aAAa;IACb,OAAO,CAAC,QAAQ,CAAS;IAEzB;;OAEG;IACH,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAS5B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,yBAA8B,GAAG,IAAI;IAyD7E;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA4CpC;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAOjD;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAO1D;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAOlD;;;OAGG;IACH,sBAAsB,IAAI,MAAM,EAAE;IAKlC;;;OAGG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAKjC;;;OAGG;IACH,WAAW,IAAI,UAAU,EAAE;IAO3B;;;;;OAKG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAc1D;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BjC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Parser 註冊中心實作
3
+ * 負責管理所有 Parser 插件的註冊、查詢和生命週期
4
+ */
5
+ import { isParserPlugin } from './interface.js';
6
+ import { DuplicateParserError, ParserNotFoundError, ParserInitializationError } from '../../shared/errors/index.js';
7
+ /**
8
+ * Parser 註冊中心
9
+ * 單例模式,管理所有 Parser 插件的註冊和查詢
10
+ */
11
+ export class ParserRegistry {
12
+ static instance = null;
13
+ /** 以 Parser 名稱為 key 的註冊表 */
14
+ parsers = new Map();
15
+ /** 以副檔名為 key 的快速查找表 */
16
+ extensionMap = new Map();
17
+ /** 以語言為 key 的快速查找表 */
18
+ languageMap = new Map();
19
+ /** 是否已初始化 */
20
+ initialized = false;
21
+ /** 是否已被清理 */
22
+ disposed = false;
23
+ /**
24
+ * 私有建構函式,確保單例模式
25
+ */
26
+ constructor() { }
27
+ /**
28
+ * 獲取單例實例
29
+ */
30
+ static getInstance() {
31
+ if (!ParserRegistry.instance) {
32
+ ParserRegistry.instance = new ParserRegistry();
33
+ }
34
+ return ParserRegistry.instance;
35
+ }
36
+ /**
37
+ * 重設單例實例(主要用於測試)
38
+ */
39
+ static resetInstance() {
40
+ if (ParserRegistry.instance) {
41
+ ParserRegistry.instance.dispose();
42
+ ParserRegistry.instance = null;
43
+ }
44
+ }
45
+ // ===== 註冊和管理 =====
46
+ /**
47
+ * 註冊 Parser 插件
48
+ * @param plugin Parser 插件實例
49
+ * @param options 註冊選項
50
+ */
51
+ register(plugin, options = {}) {
52
+ this.checkNotDisposed();
53
+ // 驗證插件
54
+ if (!isParserPlugin(plugin)) {
55
+ throw new Error('提供的物件不是有效的 ParserPlugin');
56
+ }
57
+ const { priority = 0, override = false } = options;
58
+ // 檢查重複註冊
59
+ if (!override && this.parsers.has(plugin.name)) {
60
+ throw new DuplicateParserError(plugin.name);
61
+ }
62
+ // 如果是覆蓋模式,先取消註冊舊的
63
+ if (override && this.parsers.has(plugin.name)) {
64
+ this.unregister(plugin.name);
65
+ }
66
+ // 建立 Parser 資訊
67
+ const parserInfo = {
68
+ plugin,
69
+ registeredAt: new Date(),
70
+ priority,
71
+ name: plugin.name,
72
+ version: plugin.version,
73
+ supportedExtensions: plugin.supportedExtensions,
74
+ supportedLanguages: plugin.supportedLanguages
75
+ };
76
+ // 註冊到主表
77
+ this.parsers.set(plugin.name, parserInfo);
78
+ // 建立副檔名索引
79
+ for (const extension of plugin.supportedExtensions) {
80
+ if (!this.extensionMap.has(extension)) {
81
+ this.extensionMap.set(extension, []);
82
+ }
83
+ const extensionParsers = this.extensionMap.get(extension);
84
+ extensionParsers.push(parserInfo);
85
+ // 按優先級排序(高優先級在前)
86
+ extensionParsers.sort((a, b) => b.priority - a.priority);
87
+ }
88
+ // 建立語言索引
89
+ for (const language of plugin.supportedLanguages) {
90
+ if (!this.languageMap.has(language)) {
91
+ this.languageMap.set(language, []);
92
+ }
93
+ const languageParsers = this.languageMap.get(language);
94
+ languageParsers.push(parserInfo);
95
+ // 按優先級排序(高優先級在前)
96
+ languageParsers.sort((a, b) => b.priority - a.priority);
97
+ }
98
+ }
99
+ /**
100
+ * 取消註冊 Parser 插件
101
+ * @param pluginName Parser 名稱
102
+ */
103
+ unregister(pluginName) {
104
+ this.checkNotDisposed();
105
+ const parserInfo = this.parsers.get(pluginName);
106
+ if (!parserInfo) {
107
+ throw new ParserNotFoundError(pluginName, 'name');
108
+ }
109
+ // 從主表移除
110
+ this.parsers.delete(pluginName);
111
+ // 從副檔名索引移除
112
+ for (const extension of parserInfo.supportedExtensions) {
113
+ const extensionParsers = this.extensionMap.get(extension);
114
+ if (extensionParsers) {
115
+ const index = extensionParsers.indexOf(parserInfo);
116
+ if (index !== -1) {
117
+ extensionParsers.splice(index, 1);
118
+ }
119
+ // 如果列表為空,移除該鍵
120
+ if (extensionParsers.length === 0) {
121
+ this.extensionMap.delete(extension);
122
+ }
123
+ }
124
+ }
125
+ // 從語言索引移除
126
+ for (const language of parserInfo.supportedLanguages) {
127
+ const languageParsers = this.languageMap.get(language);
128
+ if (languageParsers) {
129
+ const index = languageParsers.indexOf(parserInfo);
130
+ if (index !== -1) {
131
+ languageParsers.splice(index, 1);
132
+ }
133
+ // 如果列表為空,移除該鍵
134
+ if (languageParsers.length === 0) {
135
+ this.languageMap.delete(language);
136
+ }
137
+ }
138
+ }
139
+ }
140
+ // ===== 查詢功能 =====
141
+ /**
142
+ * 根據副檔名獲取最高優先級的 Parser
143
+ * @param extension 副檔名(包含點,如 '.ts')
144
+ * @returns Parser 插件實例或 null
145
+ */
146
+ getParser(extension) {
147
+ this.checkNotDisposed();
148
+ const parsers = this.extensionMap.get(extension);
149
+ return parsers && parsers.length > 0 ? parsers[0].plugin : null;
150
+ }
151
+ /**
152
+ * 根據語言獲取最高優先級的 Parser
153
+ * @param language 語言名稱
154
+ * @returns Parser 插件實例或 null
155
+ */
156
+ getParserByLanguage(language) {
157
+ this.checkNotDisposed();
158
+ const parsers = this.languageMap.get(language);
159
+ return parsers && parsers.length > 0 ? parsers[0].plugin : null;
160
+ }
161
+ /**
162
+ * 根據 Parser 名稱獲取 Parser
163
+ * @param name Parser 名稱
164
+ * @returns Parser 插件實例或 null
165
+ */
166
+ getParserByName(name) {
167
+ this.checkNotDisposed();
168
+ const parserInfo = this.parsers.get(name);
169
+ return parserInfo ? parserInfo.plugin : null;
170
+ }
171
+ /**
172
+ * 獲取所有支援的副檔名
173
+ * @returns 副檔名陣列
174
+ */
175
+ getSupportedExtensions() {
176
+ this.checkNotDisposed();
177
+ return Array.from(this.extensionMap.keys()).sort();
178
+ }
179
+ /**
180
+ * 獲取所有支援的語言
181
+ * @returns 語言陣列
182
+ */
183
+ getSupportedLanguages() {
184
+ this.checkNotDisposed();
185
+ return Array.from(this.languageMap.keys()).sort();
186
+ }
187
+ /**
188
+ * 列出所有已註冊的 Parser
189
+ * @returns Parser 資訊陣列
190
+ */
191
+ listParsers() {
192
+ this.checkNotDisposed();
193
+ return Array.from(this.parsers.values()).sort((a, b) => a.name.localeCompare(b.name));
194
+ }
195
+ // ===== 版本管理 =====
196
+ /**
197
+ * 檢查 Parser 版本相容性
198
+ * @param pluginName Parser 名稱
199
+ * @param version 期望版本
200
+ * @returns 是否相容
201
+ */
202
+ isCompatible(pluginName, version) {
203
+ this.checkNotDisposed();
204
+ const parserInfo = this.parsers.get(pluginName);
205
+ if (!parserInfo) {
206
+ return false;
207
+ }
208
+ // 這裡使用簡單的版本匹配,實際應用中可能需要更複雜的版本比較邏輯
209
+ return parserInfo.version === version;
210
+ }
211
+ // ===== 生命週期 =====
212
+ /**
213
+ * 初始化註冊中心
214
+ * 驗證所有已註冊的 Parser
215
+ */
216
+ async initialize() {
217
+ if (this.initialized) {
218
+ return;
219
+ }
220
+ this.checkNotDisposed();
221
+ const validationPromises = Array.from(this.parsers.values()).map(async (parserInfo) => {
222
+ try {
223
+ const result = await parserInfo.plugin.validate();
224
+ if (!result.valid) {
225
+ throw new ParserInitializationError(parserInfo.name, `驗證失敗: ${result.errors.map(e => e.message).join(', ')}`);
226
+ }
227
+ }
228
+ catch (error) {
229
+ throw new ParserInitializationError(parserInfo.name, `驗證異常: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
230
+ }
231
+ });
232
+ await Promise.all(validationPromises);
233
+ this.initialized = true;
234
+ }
235
+ /**
236
+ * 清理註冊中心
237
+ * 清理所有 Parser 並釋放資源
238
+ */
239
+ async dispose() {
240
+ if (this.disposed) {
241
+ return;
242
+ }
243
+ // 清理所有 Parser
244
+ const disposePromises = Array.from(this.parsers.values()).map(async (parserInfo) => {
245
+ try {
246
+ await parserInfo.plugin.dispose();
247
+ }
248
+ catch (error) {
249
+ // 記錄錯誤但不拋出,避免影響其他 Parser 的清理
250
+ console.warn(`清理 Parser ${parserInfo.name} 時發生錯誤:`, error);
251
+ }
252
+ });
253
+ await Promise.all(disposePromises);
254
+ // 清空所有映射表
255
+ this.parsers.clear();
256
+ this.extensionMap.clear();
257
+ this.languageMap.clear();
258
+ this.disposed = true;
259
+ this.initialized = false;
260
+ }
261
+ // ===== 內部工具方法 =====
262
+ /**
263
+ * 檢查註冊中心是否已被清理
264
+ */
265
+ checkNotDisposed() {
266
+ if (this.disposed) {
267
+ throw new Error('ParserRegistry 已被清理');
268
+ }
269
+ }
270
+ /**
271
+ * 獲取初始化狀態
272
+ */
273
+ get isInitialized() {
274
+ return this.initialized;
275
+ }
276
+ /**
277
+ * 獲取清理狀態
278
+ */
279
+ get isDisposed() {
280
+ return this.disposed;
281
+ }
282
+ /**
283
+ * 獲取已註冊 Parser 的數量
284
+ */
285
+ get size() {
286
+ return this.parsers.size;
287
+ }
288
+ }
289
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/infrastructure/parser/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Parser 插件相關型別定義
3
+ * 包含 Parser 插件系統所需的所有型別介面
4
+ */
5
+ import { Range, Location } from '../../shared/types/index.js';
6
+ /**
7
+ * 程式碼編輯操作
8
+ * 表示對程式碼的修改操作
9
+ */
10
+ export interface CodeEdit {
11
+ /** 檔案路徑 */
12
+ readonly filePath: string;
13
+ /** 編輯範圍 */
14
+ readonly range: Range;
15
+ /** 新的文字內容 */
16
+ readonly newText: string;
17
+ /** 編輯類型(可選) */
18
+ readonly editType?: 'rename' | 'extract' | 'inline' | 'format';
19
+ }
20
+ /**
21
+ * 定義類型
22
+ * 表示符號定義的種類
23
+ */
24
+ export type DefinitionKind = 'class' | 'interface' | 'function' | 'method' | 'variable' | 'constant' | 'type' | 'enum' | 'module' | 'namespace';
25
+ /**
26
+ * 定義位置資訊
27
+ * 表示符號定義的位置和相關資訊
28
+ */
29
+ export interface Definition {
30
+ /** 定義的位置 */
31
+ readonly location: Location;
32
+ /** 定義的種類 */
33
+ readonly kind: DefinitionKind;
34
+ /** 容器名稱(可選),如類名、模組名等 */
35
+ readonly containerName?: string;
36
+ }
37
+ /**
38
+ * 使用類型
39
+ * 表示符號使用的種類
40
+ */
41
+ export type UsageKind = 'read' | 'write' | 'call' | 'reference';
42
+ /**
43
+ * 使用位置資訊
44
+ * 表示符號使用的位置和相關資訊
45
+ */
46
+ export interface Usage {
47
+ /** 使用的位置 */
48
+ readonly location: Location;
49
+ /** 使用的種類 */
50
+ readonly kind: UsageKind;
51
+ }
52
+ /**
53
+ * 驗證錯誤
54
+ * 表示驗證過程中發現的錯誤
55
+ */
56
+ export interface ValidationError {
57
+ /** 錯誤代碼 */
58
+ readonly code: string;
59
+ /** 錯誤訊息 */
60
+ readonly message: string;
61
+ /** 錯誤位置 */
62
+ readonly location: Location;
63
+ /** 嚴重程度(可選) */
64
+ readonly severity?: 'error' | 'warning' | 'info';
65
+ }
66
+ /**
67
+ * 驗證警告(與錯誤結構相同)
68
+ */
69
+ export type ValidationWarning = ValidationError;
70
+ /**
71
+ * 驗證結果
72
+ * 表示 Parser 驗證的結果
73
+ */
74
+ export interface ValidationResult {
75
+ /** 是否驗證通過 */
76
+ readonly valid: boolean;
77
+ /** 驗證錯誤列表 */
78
+ readonly errors: readonly ValidationError[];
79
+ /** 驗證警告列表 */
80
+ readonly warnings: readonly ValidationWarning[];
81
+ }
82
+ /**
83
+ * Parser 配置選項
84
+ * 用於配置 Parser 的行為
85
+ */
86
+ export interface ParserOptions {
87
+ /** 是否使用嚴格模式 */
88
+ readonly strictMode?: boolean;
89
+ /** 是否允許實驗性功能 */
90
+ readonly allowExperimentalFeatures?: boolean;
91
+ /** 目標版本 */
92
+ readonly targetVersion?: string;
93
+ /** 自定義選項 */
94
+ readonly customOptions?: Record<string, any>;
95
+ }
96
+ /**
97
+ * Parser 能力聲明
98
+ * 聲明 Parser 支援的功能
99
+ */
100
+ export interface ParserCapabilities {
101
+ /** 是否支援重新命名 */
102
+ readonly supportsRename: boolean;
103
+ /** 是否支援提取函式 */
104
+ readonly supportsExtractFunction: boolean;
105
+ /** 是否支援跳轉到定義 */
106
+ readonly supportsGoToDefinition: boolean;
107
+ /** 是否支援查找使用 */
108
+ readonly supportsFindUsages: boolean;
109
+ /** 是否支援程式碼動作 */
110
+ readonly supportsCodeActions: boolean;
111
+ }
112
+ /**
113
+ * Parser 錯誤介面
114
+ * 擴展自標準 Error,包含位置資訊
115
+ */
116
+ export interface ParserError {
117
+ /** 錯誤名稱 */
118
+ readonly name: string;
119
+ /** 錯誤訊息 */
120
+ readonly message: string;
121
+ /** 錯誤代碼 */
122
+ readonly code: string;
123
+ /** 錯誤位置 */
124
+ readonly location: Location;
125
+ /** 語法元素(可選) */
126
+ readonly syntaxElement?: string;
127
+ }
128
+ /**
129
+ * 建立 CodeEdit 的工廠函式
130
+ */
131
+ export declare function createCodeEdit(filePath: string, range: Range, newText: string, editType?: CodeEdit['editType']): CodeEdit;
132
+ /**
133
+ * 建立 Definition 的工廠函式
134
+ */
135
+ export declare function createDefinition(location: Location, kind: DefinitionKind, containerName?: string): Definition;
136
+ /**
137
+ * 建立 Usage 的工廠函式
138
+ */
139
+ export declare function createUsage(location: Location, kind: UsageKind): Usage;
140
+ /**
141
+ * 建立 ValidationResult 的工廠函式
142
+ */
143
+ export declare function createValidationResult(valid: boolean, errors?: ValidationError[], warnings?: ValidationWarning[]): ValidationResult;
144
+ /**
145
+ * 建立成功的 ValidationResult
146
+ */
147
+ export declare function createValidationSuccess(): ValidationResult;
148
+ /**
149
+ * 建立失敗的 ValidationResult
150
+ */
151
+ export declare function createValidationFailure(errors: ValidationError[], warnings?: ValidationWarning[]): ValidationResult;
152
+ /**
153
+ * CodeEdit 型別守衛
154
+ */
155
+ export declare function isCodeEdit(value: unknown): value is CodeEdit;
156
+ /**
157
+ * Definition 型別守衛
158
+ */
159
+ export declare function isDefinition(value: unknown): value is Definition;
160
+ /**
161
+ * Usage 型別守衛
162
+ */
163
+ export declare function isUsage(value: unknown): value is Usage;
164
+ /**
165
+ * ValidationResult 型別守衛
166
+ */
167
+ export declare function isValidationResult(value: unknown): value is ValidationResult;
168
+ /**
169
+ * ParserCapabilities 型別守衛
170
+ */
171
+ export declare function isParserCapabilities(value: unknown): value is ParserCapabilities;
172
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/parser/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Parser 插件相關型別定義
3
+ * 包含 Parser 插件系統所需的所有型別介面
4
+ */
5
+ /**
6
+ * 建立 CodeEdit 的工廠函式
7
+ */
8
+ export function createCodeEdit(filePath, range, newText, editType) {
9
+ if (!filePath.trim()) {
10
+ throw new Error('檔案路徑不能為空');
11
+ }
12
+ if (editType !== undefined) {
13
+ return {
14
+ filePath,
15
+ range,
16
+ newText,
17
+ editType
18
+ };
19
+ }
20
+ else {
21
+ return {
22
+ filePath,
23
+ range,
24
+ newText
25
+ };
26
+ }
27
+ }
28
+ /**
29
+ * 建立 Definition 的工廠函式
30
+ */
31
+ export function createDefinition(location, kind, containerName) {
32
+ if (containerName !== undefined) {
33
+ return {
34
+ location,
35
+ kind,
36
+ containerName
37
+ };
38
+ }
39
+ else {
40
+ return {
41
+ location,
42
+ kind
43
+ };
44
+ }
45
+ }
46
+ /**
47
+ * 建立 Usage 的工廠函式
48
+ */
49
+ export function createUsage(location, kind) {
50
+ return {
51
+ location,
52
+ kind
53
+ };
54
+ }
55
+ /**
56
+ * 建立 ValidationResult 的工廠函式
57
+ */
58
+ export function createValidationResult(valid, errors = [], warnings = []) {
59
+ return {
60
+ valid,
61
+ errors: [...errors],
62
+ warnings: [...warnings]
63
+ };
64
+ }
65
+ /**
66
+ * 建立成功的 ValidationResult
67
+ */
68
+ export function createValidationSuccess() {
69
+ return createValidationResult(true);
70
+ }
71
+ /**
72
+ * 建立失敗的 ValidationResult
73
+ */
74
+ export function createValidationFailure(errors, warnings) {
75
+ return createValidationResult(false, errors, warnings);
76
+ }
77
+ /**
78
+ * CodeEdit 型別守衛
79
+ */
80
+ export function isCodeEdit(value) {
81
+ if (!value || typeof value !== 'object') {
82
+ return false;
83
+ }
84
+ const obj = value;
85
+ return (typeof obj.filePath === 'string' &&
86
+ obj.filePath.trim().length > 0 &&
87
+ obj.range && typeof obj.range === 'object' &&
88
+ typeof obj.newText === 'string' &&
89
+ (obj.editType === undefined || typeof obj.editType === 'string'));
90
+ }
91
+ /**
92
+ * Definition 型別守衛
93
+ */
94
+ export function isDefinition(value) {
95
+ if (!value || typeof value !== 'object') {
96
+ return false;
97
+ }
98
+ const obj = value;
99
+ const validKinds = [
100
+ 'class', 'interface', 'function', 'method', 'variable',
101
+ 'constant', 'type', 'enum', 'module', 'namespace'
102
+ ];
103
+ return (obj.location && typeof obj.location === 'object' &&
104
+ typeof obj.kind === 'string' &&
105
+ validKinds.includes(obj.kind) &&
106
+ (obj.containerName === undefined || typeof obj.containerName === 'string'));
107
+ }
108
+ /**
109
+ * Usage 型別守衛
110
+ */
111
+ export function isUsage(value) {
112
+ if (!value || typeof value !== 'object') {
113
+ return false;
114
+ }
115
+ const obj = value;
116
+ const validKinds = ['read', 'write', 'call', 'reference'];
117
+ return (obj.location && typeof obj.location === 'object' &&
118
+ typeof obj.kind === 'string' &&
119
+ validKinds.includes(obj.kind));
120
+ }
121
+ /**
122
+ * ValidationResult 型別守衛
123
+ */
124
+ export function isValidationResult(value) {
125
+ if (!value || typeof value !== 'object') {
126
+ return false;
127
+ }
128
+ const obj = value;
129
+ return (typeof obj.valid === 'boolean' &&
130
+ Array.isArray(obj.errors) &&
131
+ Array.isArray(obj.warnings));
132
+ }
133
+ /**
134
+ * ParserCapabilities 型別守衛
135
+ */
136
+ export function isParserCapabilities(value) {
137
+ if (!value || typeof value !== 'object') {
138
+ return false;
139
+ }
140
+ const obj = value;
141
+ return (typeof obj.supportsRename === 'boolean' &&
142
+ typeof obj.supportsExtractFunction === 'boolean' &&
143
+ typeof obj.supportsGoToDefinition === 'boolean' &&
144
+ typeof obj.supportsFindUsages === 'boolean' &&
145
+ typeof obj.supportsCodeActions === 'boolean');
146
+ }
147
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/infrastructure/parser/types.ts"],"names":[],"mappings":"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"}