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,215 @@
1
+ /**
2
+ * AST 相關型別定義
3
+ * 包含 ASTNode、ASTMetadata、AST 等型別
4
+ */
5
+ import { isPositionInRange } from './core.js';
6
+ /**
7
+ * 建立 ASTNode 的工廠函式
8
+ */
9
+ export function createASTNode(type, range, properties = {}, children = []) {
10
+ if (!type.trim()) {
11
+ throw new Error('ASTNode 類型不能為空');
12
+ }
13
+ // 驗證子節點範圍必須在父節點範圍內
14
+ for (const child of children) {
15
+ if (!isRangeContained(child.range, range)) {
16
+ throw new Error('子節點範圍必須在父節點範圍內');
17
+ }
18
+ }
19
+ // 先建立節點但不設定 parent
20
+ const childrenCopy = children.map(child => ({ ...child }));
21
+ const node = {
22
+ type,
23
+ range,
24
+ properties,
25
+ children: childrenCopy
26
+ };
27
+ // 然後遞歸設定所有子節點的 parent 關係
28
+ setParentRelationships(node);
29
+ return node;
30
+ }
31
+ /**
32
+ * 建立 ASTMetadata 的工廠函式
33
+ */
34
+ export function createASTMetadata(language, version, parserOptions = {}, parseTime = 0, nodeCount = 0) {
35
+ if (!language.trim()) {
36
+ throw new Error('語言名稱不能為空');
37
+ }
38
+ if (!version.trim()) {
39
+ throw new Error('版本號不能為空');
40
+ }
41
+ return {
42
+ language,
43
+ version,
44
+ parserOptions,
45
+ parseTime: parseTime || Date.now(),
46
+ nodeCount
47
+ };
48
+ }
49
+ /**
50
+ * 建立 AST 的工廠函式
51
+ */
52
+ export function createAST(sourceFile, root, metadata) {
53
+ if (!sourceFile.trim()) {
54
+ throw new Error('原始檔案名稱不能為空');
55
+ }
56
+ // 計算節點數量
57
+ const nodeCount = countNodes(root);
58
+ const updatedMetadata = { ...metadata, nodeCount };
59
+ return {
60
+ sourceFile,
61
+ root,
62
+ metadata: updatedMetadata
63
+ };
64
+ }
65
+ /**
66
+ * ASTNode 型別守衛
67
+ */
68
+ export function isASTNode(value) {
69
+ if (!value || typeof value !== 'object') {
70
+ return false;
71
+ }
72
+ const obj = value;
73
+ return (typeof obj.type === 'string' &&
74
+ obj.type.trim().length > 0 &&
75
+ obj.range && typeof obj.range === 'object' &&
76
+ obj.properties && typeof obj.properties === 'object' &&
77
+ Array.isArray(obj.children));
78
+ }
79
+ /**
80
+ * ASTMetadata 型別守衛
81
+ */
82
+ export function isASTMetadata(value) {
83
+ if (!value || typeof value !== 'object') {
84
+ return false;
85
+ }
86
+ const obj = value;
87
+ return (typeof obj.language === 'string' &&
88
+ obj.language.trim().length > 0 &&
89
+ typeof obj.version === 'string' &&
90
+ obj.version.trim().length > 0 &&
91
+ obj.parserOptions && typeof obj.parserOptions === 'object' &&
92
+ typeof obj.parseTime === 'number' &&
93
+ typeof obj.nodeCount === 'number');
94
+ }
95
+ /**
96
+ * AST 型別守衛
97
+ */
98
+ export function isAST(value) {
99
+ if (!value || typeof value !== 'object') {
100
+ return false;
101
+ }
102
+ const obj = value;
103
+ return (typeof obj.sourceFile === 'string' &&
104
+ obj.sourceFile.trim().length > 0 &&
105
+ isASTNode(obj.root) &&
106
+ isASTMetadata(obj.metadata));
107
+ }
108
+ /**
109
+ * 根據位置找到對應的 AST 節點
110
+ */
111
+ export function findNodeByPosition(ast, position) {
112
+ return findNodeByPositionRecursive(ast.root, position);
113
+ }
114
+ /**
115
+ * 根據類型找到所有匹配的 AST 節點
116
+ */
117
+ export function findNodesByType(ast, type) {
118
+ const result = [];
119
+ findNodesByTypeRecursive(ast.root, type, result);
120
+ return result;
121
+ }
122
+ /**
123
+ * 取得節點的路徑(從根節點到該節點的類型路徑)
124
+ */
125
+ export function getNodePath(node) {
126
+ const path = [];
127
+ let currentNode = node;
128
+ while (currentNode) {
129
+ path.unshift(currentNode.type);
130
+ currentNode = currentNode.parent;
131
+ }
132
+ return path;
133
+ }
134
+ /**
135
+ * 計算節點的深度
136
+ */
137
+ export function getNodeDepth(node) {
138
+ let depth = 0;
139
+ let currentNode = node.parent;
140
+ while (currentNode) {
141
+ depth++;
142
+ currentNode = currentNode.parent;
143
+ }
144
+ return depth;
145
+ }
146
+ /**
147
+ * 檢查一個節點是否是另一個節點的祖先
148
+ */
149
+ export function isNodeAncestorOf(ancestor, descendant) {
150
+ let currentNode = descendant.parent;
151
+ while (currentNode) {
152
+ if (currentNode === ancestor) {
153
+ return true;
154
+ }
155
+ currentNode = currentNode.parent;
156
+ }
157
+ return false;
158
+ }
159
+ // 輔助函式
160
+ /**
161
+ * 檢查一個範圍是否完全包含在另一個範圍內
162
+ */
163
+ function isRangeContained(inner, outer) {
164
+ return isPositionInRange(inner.start, outer) && isPositionInRange(inner.end, outer);
165
+ }
166
+ /**
167
+ * 遞歸計算節點數量
168
+ */
169
+ function countNodes(node) {
170
+ let count = 1; // 計算自己
171
+ for (const child of node.children) {
172
+ count += countNodes(child);
173
+ }
174
+ return count;
175
+ }
176
+ /**
177
+ * 遞歸搜尋位置對應的節點
178
+ */
179
+ function findNodeByPositionRecursive(node, position) {
180
+ if (!isPositionInRange(position, node.range)) {
181
+ return null;
182
+ }
183
+ // 先檢查子節點,找到最具體的節點
184
+ for (const child of node.children) {
185
+ const result = findNodeByPositionRecursive(child, position);
186
+ if (result) {
187
+ return result;
188
+ }
189
+ }
190
+ // 如果子節點中沒有找到,返回當前節點
191
+ return node;
192
+ }
193
+ /**
194
+ * 遞歸搜尋類型匹配的節點
195
+ */
196
+ function findNodesByTypeRecursive(node, type, result) {
197
+ if (node.type === type) {
198
+ result.push(node);
199
+ }
200
+ for (const child of node.children) {
201
+ findNodesByTypeRecursive(child, type, result);
202
+ }
203
+ }
204
+ /**
205
+ * 遞歸設定節點的 parent 關係
206
+ */
207
+ function setParentRelationships(node, parent) {
208
+ // 設定當前節點的 parent
209
+ node.parent = parent;
210
+ // 遞歸設定所有子節點的 parent
211
+ for (const child of node.children) {
212
+ setParentRelationships(child, node);
213
+ }
214
+ }
215
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/shared/types/ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * 核心型別定義
3
+ * 包含 Position、Range、Location 等基礎型別
4
+ */
5
+ /**
6
+ * 表示程式碼中的位置
7
+ */
8
+ export interface Position {
9
+ readonly line: number;
10
+ readonly column: number;
11
+ readonly offset: number | undefined;
12
+ }
13
+ /**
14
+ * 表示程式碼中的範圍
15
+ */
16
+ export interface Range {
17
+ readonly start: Position;
18
+ readonly end: Position;
19
+ }
20
+ /**
21
+ * 表示檔案中的位置
22
+ */
23
+ export interface Location {
24
+ readonly filePath: string;
25
+ readonly range: Range;
26
+ }
27
+ /**
28
+ * 建立 Position 的工廠函式
29
+ */
30
+ export declare function createPosition(line: number, column: number, offset?: number): Position;
31
+ /**
32
+ * 建立 Range 的工廠函式
33
+ */
34
+ export declare function createRange(start: Position, end: Position): Range;
35
+ /**
36
+ * 建立 Location 的工廠函式
37
+ */
38
+ export declare function createLocation(filePath: string, range: Range): Location;
39
+ /**
40
+ * Position 型別守衛
41
+ */
42
+ export declare function isPosition(value: unknown): value is Position;
43
+ /**
44
+ * Range 型別守衛
45
+ */
46
+ export declare function isRange(value: unknown): value is Range;
47
+ /**
48
+ * Location 型別守衛
49
+ */
50
+ export declare function isLocation(value: unknown): value is Location;
51
+ /**
52
+ * 比較兩個 Position 的先後順序
53
+ * @param pos1 第一個位置
54
+ * @param pos2 第二個位置
55
+ * @returns pos1 是否在 pos2 之前
56
+ */
57
+ export declare function isPositionBefore(pos1: Position, pos2: Position): boolean;
58
+ /**
59
+ * 檢查 Position 是否在 Range 範圍內(包含邊界)
60
+ * @param position 要檢查的位置
61
+ * @param range 範圍
62
+ * @returns 是否在範圍內
63
+ */
64
+ export declare function isPositionInRange(position: Position, range: Range): boolean;
65
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/shared/types/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAgBtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,KAAK,CASjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CASvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAc5D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAYtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAY5D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAKxE;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAK3E"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * 核心型別定義
3
+ * 包含 Position、Range、Location 等基礎型別
4
+ */
5
+ /**
6
+ * 建立 Position 的工廠函式
7
+ */
8
+ export function createPosition(line, column, offset) {
9
+ if (line < 1) {
10
+ throw new Error('Line 必須大於等於 1');
11
+ }
12
+ if (column < 1) {
13
+ throw new Error('Column 必須大於等於 1');
14
+ }
15
+ if (offset !== undefined && offset < 0) {
16
+ throw new Error('Offset 必須大於等於 0');
17
+ }
18
+ return {
19
+ line,
20
+ column,
21
+ offset: offset !== undefined ? offset : undefined
22
+ };
23
+ }
24
+ /**
25
+ * 建立 Range 的工廠函式
26
+ */
27
+ export function createRange(start, end) {
28
+ if (isPositionAfter(start, end)) {
29
+ throw new Error('Range 的 start 不能在 end 之後');
30
+ }
31
+ return {
32
+ start,
33
+ end
34
+ };
35
+ }
36
+ /**
37
+ * 建立 Location 的工廠函式
38
+ */
39
+ export function createLocation(filePath, range) {
40
+ if (!filePath.trim()) {
41
+ throw new Error('檔案路徑不能為空');
42
+ }
43
+ return {
44
+ filePath,
45
+ range
46
+ };
47
+ }
48
+ /**
49
+ * Position 型別守衛
50
+ */
51
+ export function isPosition(value) {
52
+ if (!value || typeof value !== 'object') {
53
+ return false;
54
+ }
55
+ const obj = value;
56
+ return (typeof obj.line === 'number' &&
57
+ obj.line >= 1 &&
58
+ typeof obj.column === 'number' &&
59
+ obj.column >= 1 &&
60
+ (obj.offset === undefined || (typeof obj.offset === 'number' && obj.offset >= 0)));
61
+ }
62
+ /**
63
+ * Range 型別守衛
64
+ */
65
+ export function isRange(value) {
66
+ if (!value || typeof value !== 'object') {
67
+ return false;
68
+ }
69
+ const obj = value;
70
+ return (isPosition(obj.start) &&
71
+ isPosition(obj.end) &&
72
+ !isPositionAfter(obj.start, obj.end));
73
+ }
74
+ /**
75
+ * Location 型別守衛
76
+ */
77
+ export function isLocation(value) {
78
+ if (!value || typeof value !== 'object') {
79
+ return false;
80
+ }
81
+ const obj = value;
82
+ return (typeof obj.filePath === 'string' &&
83
+ obj.filePath.trim().length > 0 &&
84
+ isRange(obj.range));
85
+ }
86
+ /**
87
+ * 比較兩個 Position 的先後順序
88
+ * @param pos1 第一個位置
89
+ * @param pos2 第二個位置
90
+ * @returns pos1 是否在 pos2 之前
91
+ */
92
+ export function isPositionBefore(pos1, pos2) {
93
+ if (pos1.line !== pos2.line) {
94
+ return pos1.line < pos2.line;
95
+ }
96
+ return pos1.column < pos2.column;
97
+ }
98
+ /**
99
+ * 檢查 pos1 是否在 pos2 之後
100
+ */
101
+ function isPositionAfter(pos1, pos2) {
102
+ return isPositionBefore(pos2, pos1);
103
+ }
104
+ /**
105
+ * 檢查 Position 是否在 Range 範圍內(包含邊界)
106
+ * @param position 要檢查的位置
107
+ * @param range 範圍
108
+ * @returns 是否在範圍內
109
+ */
110
+ export function isPositionInRange(position, range) {
111
+ return (!isPositionBefore(position, range.start) &&
112
+ !isPositionAfter(position, range.end));
113
+ }
114
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/shared/types/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 核心型別系統統一匯出
3
+ */
4
+ export * from './core.js';
5
+ export * from './symbol.js';
6
+ export * from './ast.js';
7
+ export type { Position, Range, Location } from './core.js';
8
+ export { SymbolType, ReferenceType, DependencyType } from './symbol.js';
9
+ export type { Scope, Symbol, Reference, Dependency } from './symbol.js';
10
+ export type { ASTNode, ASTMetadata, AST } from './ast.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,UAAU,CAAC;AAGzB,YAAY,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACT,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,OAAO,EACP,WAAW,EACX,GAAG,EACJ,MAAM,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * 核心型別系統統一匯出
3
+ */
4
+ // 核心型別
5
+ export * from './core.js';
6
+ // Symbol 相關型別
7
+ export * from './symbol.js';
8
+ // AST 相關型別
9
+ export * from './ast.js';
10
+ // enum 需要正常匯出
11
+ export { SymbolType, ReferenceType, DependencyType } from './symbol.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO;AACP,cAAc,WAAW,CAAC;AAE1B,cAAc;AACd,cAAc,aAAa,CAAC;AAE5B,WAAW;AACX,cAAc,UAAU,CAAC;AASzB,cAAc;AACd,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Symbol 相關型別定義
3
+ * 包含 SymbolType、Symbol、Reference、Dependency 等型別
4
+ */
5
+ import { Location } from './core.js';
6
+ /**
7
+ * Symbol 類型列舉
8
+ */
9
+ export declare enum SymbolType {
10
+ Class = "class",
11
+ Interface = "interface",
12
+ Function = "function",
13
+ Variable = "variable",
14
+ Constant = "constant",
15
+ Type = "type",
16
+ Enum = "enum",
17
+ Module = "module",
18
+ Namespace = "namespace"
19
+ }
20
+ /**
21
+ * Scope 類型
22
+ */
23
+ export type ScopeType = 'global' | 'module' | 'namespace' | 'class' | 'function' | 'block';
24
+ /**
25
+ * 表示程式碼作用域
26
+ */
27
+ export interface Scope {
28
+ readonly type: ScopeType;
29
+ readonly name: string | undefined;
30
+ readonly parent: Scope | undefined;
31
+ }
32
+ /**
33
+ * 表示程式碼符號
34
+ */
35
+ export interface Symbol {
36
+ readonly name: string;
37
+ readonly type: SymbolType;
38
+ readonly location: Location;
39
+ readonly scope: Scope | undefined;
40
+ readonly modifiers: readonly string[];
41
+ }
42
+ /**
43
+ * Reference 類型列舉
44
+ */
45
+ export declare enum ReferenceType {
46
+ Definition = "definition",
47
+ Usage = "usage",
48
+ Declaration = "declaration"
49
+ }
50
+ /**
51
+ * 表示符號引用
52
+ */
53
+ export interface Reference {
54
+ readonly symbol: Symbol;
55
+ readonly location: Location;
56
+ readonly type: ReferenceType;
57
+ }
58
+ /**
59
+ * Dependency 類型列舉
60
+ */
61
+ export declare enum DependencyType {
62
+ Import = "import",
63
+ Require = "require",
64
+ Include = "include"
65
+ }
66
+ /**
67
+ * 表示模組依賴
68
+ */
69
+ export interface Dependency {
70
+ readonly path: string;
71
+ readonly type: DependencyType;
72
+ readonly isRelative: boolean;
73
+ readonly importedSymbols: readonly string[];
74
+ }
75
+ /**
76
+ * 建立 Scope 的工廠函式
77
+ */
78
+ export declare function createScope(type: ScopeType, name?: string, parent?: Scope): Scope;
79
+ /**
80
+ * 建立 Symbol 的工廠函式
81
+ */
82
+ export declare function createSymbol(name: string, type: SymbolType, location: Location, scope?: Scope, modifiers?: string[]): Symbol;
83
+ /**
84
+ * 建立 Reference 的工廠函式
85
+ */
86
+ export declare function createReference(symbol: Symbol, location: Location, type: ReferenceType): Reference;
87
+ /**
88
+ * 建立 Dependency 的工廠函式
89
+ */
90
+ export declare function createDependency(path: string, type: DependencyType, isRelative: boolean, importedSymbols?: string[]): Dependency;
91
+ /**
92
+ * Scope 型別守衛
93
+ */
94
+ export declare function isScope(value: unknown): value is Scope;
95
+ /**
96
+ * Symbol 型別守衛
97
+ */
98
+ export declare function isSymbol(value: unknown): value is Symbol;
99
+ /**
100
+ * Reference 型別守衛
101
+ */
102
+ export declare function isReference(value: unknown): value is Reference;
103
+ /**
104
+ * Dependency 型別守衛
105
+ */
106
+ export declare function isDependency(value: unknown): value is Dependency;
107
+ /**
108
+ * 計算 Scope 的深度
109
+ */
110
+ export declare function getScopeDepth(scope: Scope): number;
111
+ /**
112
+ * 檢查兩個 Symbol 是否在同一 Scope
113
+ */
114
+ export declare function isSameScope(symbol1: Symbol, symbol2: Symbol): boolean;
115
+ /**
116
+ * 取得 Scope 的完整路徑
117
+ */
118
+ export declare function getScopePath(scope: Scope): string[];
119
+ //# sourceMappingURL=symbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../../src/shared/types/symbol.ts"],"names":[],"mappings":"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"}