@aroman22/codegraph-vba-darwin-arm64 1.5.2 → 1.6.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 (335) hide show
  1. package/bin/codegraph +5 -0
  2. package/lib/dist/bin/codegraph.d.ts +1 -1
  3. package/lib/dist/bin/codegraph.d.ts.map +1 -1
  4. package/lib/dist/bin/codegraph.js +307 -81
  5. package/lib/dist/bin/codegraph.js.map +1 -1
  6. package/lib/dist/bin/command-supervision.d.ts +38 -1
  7. package/lib/dist/bin/command-supervision.d.ts.map +1 -1
  8. package/lib/dist/bin/command-supervision.js +22 -3
  9. package/lib/dist/bin/command-supervision.js.map +1 -1
  10. package/lib/dist/db/index.d.ts +84 -5
  11. package/lib/dist/db/index.d.ts.map +1 -1
  12. package/lib/dist/db/index.js +209 -12
  13. package/lib/dist/db/index.js.map +1 -1
  14. package/lib/dist/db/migrations.d.ts +1 -1
  15. package/lib/dist/db/migrations.d.ts.map +1 -1
  16. package/lib/dist/db/migrations.js +80 -3
  17. package/lib/dist/db/migrations.js.map +1 -1
  18. package/lib/dist/db/queries.d.ts +116 -4
  19. package/lib/dist/db/queries.d.ts.map +1 -1
  20. package/lib/dist/db/queries.js +294 -7
  21. package/lib/dist/db/queries.js.map +1 -1
  22. package/lib/dist/db/schema.sql +43 -1
  23. package/lib/dist/db/wal-valve.d.ts +106 -0
  24. package/lib/dist/db/wal-valve.d.ts.map +1 -0
  25. package/lib/dist/db/wal-valve.js +208 -0
  26. package/lib/dist/db/wal-valve.js.map +1 -0
  27. package/lib/dist/directory.d.ts +9 -5
  28. package/lib/dist/directory.d.ts.map +1 -1
  29. package/lib/dist/directory.js +210 -19
  30. package/lib/dist/directory.js.map +1 -1
  31. package/lib/dist/extraction/cfml-extractor.d.ts +107 -0
  32. package/lib/dist/extraction/cfml-extractor.d.ts.map +1 -0
  33. package/lib/dist/extraction/cfml-extractor.js +494 -0
  34. package/lib/dist/extraction/cfml-extractor.js.map +1 -0
  35. package/lib/dist/extraction/grammars.d.ts +25 -1
  36. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  37. package/lib/dist/extraction/grammars.js +177 -23
  38. package/lib/dist/extraction/grammars.js.map +1 -1
  39. package/lib/dist/extraction/index.d.ts +47 -2
  40. package/lib/dist/extraction/index.d.ts.map +1 -1
  41. package/lib/dist/extraction/index.js +568 -51
  42. package/lib/dist/extraction/index.js.map +1 -1
  43. package/lib/dist/extraction/languages/arkts.d.ts +3 -0
  44. package/lib/dist/extraction/languages/arkts.d.ts.map +1 -0
  45. package/lib/dist/extraction/languages/arkts.js +127 -0
  46. package/lib/dist/extraction/languages/arkts.js.map +1 -0
  47. package/lib/dist/extraction/languages/c-cpp.d.ts +98 -0
  48. package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  49. package/lib/dist/extraction/languages/c-cpp.js +563 -1
  50. package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
  51. package/lib/dist/extraction/languages/cfquery.d.ts +12 -0
  52. package/lib/dist/extraction/languages/cfquery.d.ts.map +1 -0
  53. package/lib/dist/extraction/languages/cfquery.js +28 -0
  54. package/lib/dist/extraction/languages/cfquery.js.map +1 -0
  55. package/lib/dist/extraction/languages/cfscript.d.ts +3 -0
  56. package/lib/dist/extraction/languages/cfscript.d.ts.map +1 -0
  57. package/lib/dist/extraction/languages/cfscript.js +73 -0
  58. package/lib/dist/extraction/languages/cfscript.js.map +1 -0
  59. package/lib/dist/extraction/languages/cobol.d.ts +33 -0
  60. package/lib/dist/extraction/languages/cobol.d.ts.map +1 -0
  61. package/lib/dist/extraction/languages/cobol.js +499 -0
  62. package/lib/dist/extraction/languages/cobol.js.map +1 -0
  63. package/lib/dist/extraction/languages/erlang.d.ts +3 -0
  64. package/lib/dist/extraction/languages/erlang.d.ts.map +1 -0
  65. package/lib/dist/extraction/languages/erlang.js +350 -0
  66. package/lib/dist/extraction/languages/erlang.js.map +1 -0
  67. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  68. package/lib/dist/extraction/languages/index.js +18 -0
  69. package/lib/dist/extraction/languages/index.js.map +1 -1
  70. package/lib/dist/extraction/languages/nix.d.ts +3 -0
  71. package/lib/dist/extraction/languages/nix.d.ts.map +1 -0
  72. package/lib/dist/extraction/languages/nix.js +294 -0
  73. package/lib/dist/extraction/languages/nix.js.map +1 -0
  74. package/lib/dist/extraction/languages/solidity.d.ts +3 -0
  75. package/lib/dist/extraction/languages/solidity.d.ts.map +1 -0
  76. package/lib/dist/extraction/languages/solidity.js +293 -0
  77. package/lib/dist/extraction/languages/solidity.js.map +1 -0
  78. package/lib/dist/extraction/languages/terraform.d.ts +3 -0
  79. package/lib/dist/extraction/languages/terraform.d.ts.map +1 -0
  80. package/lib/dist/extraction/languages/terraform.js +641 -0
  81. package/lib/dist/extraction/languages/terraform.js.map +1 -0
  82. package/lib/dist/extraction/languages/vbnet.d.ts +11 -0
  83. package/lib/dist/extraction/languages/vbnet.d.ts.map +1 -0
  84. package/lib/dist/extraction/languages/vbnet.js +141 -0
  85. package/lib/dist/extraction/languages/vbnet.js.map +1 -0
  86. package/lib/dist/extraction/mybatis-extractor.d.ts +30 -10
  87. package/lib/dist/extraction/mybatis-extractor.d.ts.map +1 -1
  88. package/lib/dist/extraction/mybatis-extractor.js +140 -38
  89. package/lib/dist/extraction/mybatis-extractor.js.map +1 -1
  90. package/lib/dist/extraction/parse-pool.d.ts +28 -1
  91. package/lib/dist/extraction/parse-pool.d.ts.map +1 -1
  92. package/lib/dist/extraction/parse-pool.js +76 -7
  93. package/lib/dist/extraction/parse-pool.js.map +1 -1
  94. package/lib/dist/extraction/parse-worker.js +11 -4
  95. package/lib/dist/extraction/parse-worker.js.map +1 -1
  96. package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
  97. package/lib/dist/extraction/tree-sitter-helpers.js +1 -0
  98. package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
  99. package/lib/dist/extraction/tree-sitter-types.d.ts +20 -1
  100. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  101. package/lib/dist/extraction/tree-sitter.d.ts +60 -1
  102. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  103. package/lib/dist/extraction/tree-sitter.js +905 -20
  104. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  105. package/lib/dist/extraction/vba/call-sweep.d.ts +3 -0
  106. package/lib/dist/extraction/vba/call-sweep.d.ts.map +1 -0
  107. package/lib/dist/extraction/vba/call-sweep.js +206 -0
  108. package/lib/dist/extraction/vba/call-sweep.js.map +1 -0
  109. package/lib/dist/extraction/vba/calls.d.ts +55 -0
  110. package/lib/dist/extraction/vba/calls.d.ts.map +1 -0
  111. package/lib/dist/extraction/vba/calls.js +439 -0
  112. package/lib/dist/extraction/vba/calls.js.map +1 -0
  113. package/lib/dist/extraction/vba/constants.d.ts +42 -0
  114. package/lib/dist/extraction/vba/constants.d.ts.map +1 -0
  115. package/lib/dist/extraction/vba/constants.js +112 -0
  116. package/lib/dist/extraction/vba/constants.js.map +1 -0
  117. package/lib/dist/extraction/vba/context.d.ts +175 -0
  118. package/lib/dist/extraction/vba/context.d.ts.map +1 -0
  119. package/lib/dist/extraction/vba/context.js +268 -0
  120. package/lib/dist/extraction/vba/context.js.map +1 -0
  121. package/lib/dist/extraction/vba/controls.d.ts +24 -0
  122. package/lib/dist/extraction/vba/controls.d.ts.map +1 -0
  123. package/lib/dist/extraction/vba/controls.js +89 -0
  124. package/lib/dist/extraction/vba/controls.js.map +1 -0
  125. package/lib/dist/extraction/vba/declarations.d.ts +3 -0
  126. package/lib/dist/extraction/vba/declarations.d.ts.map +1 -0
  127. package/lib/dist/extraction/vba/declarations.js +154 -0
  128. package/lib/dist/extraction/vba/declarations.js.map +1 -0
  129. package/lib/dist/extraction/vba/dims.d.ts +3 -0
  130. package/lib/dist/extraction/vba/dims.d.ts.map +1 -0
  131. package/lib/dist/extraction/vba/dims.js +186 -0
  132. package/lib/dist/extraction/vba/dims.js.map +1 -0
  133. package/lib/dist/extraction/vba/docmd.d.ts +16 -0
  134. package/lib/dist/extraction/vba/docmd.d.ts.map +1 -0
  135. package/lib/dist/extraction/vba/docmd.js +179 -0
  136. package/lib/dist/extraction/vba/docmd.js.map +1 -0
  137. package/lib/dist/extraction/vba/enums-consts.d.ts +15 -0
  138. package/lib/dist/extraction/vba/enums-consts.d.ts.map +1 -0
  139. package/lib/dist/extraction/vba/enums-consts.js +178 -0
  140. package/lib/dist/extraction/vba/enums-consts.js.map +1 -0
  141. package/lib/dist/extraction/vba/implements.d.ts +3 -0
  142. package/lib/dist/extraction/vba/implements.d.ts.map +1 -0
  143. package/lib/dist/extraction/vba/implements.js +52 -0
  144. package/lib/dist/extraction/vba/implements.js.map +1 -0
  145. package/lib/dist/extraction/vba/procedures.d.ts +3 -0
  146. package/lib/dist/extraction/vba/procedures.d.ts.map +1 -0
  147. package/lib/dist/extraction/vba/procedures.js +239 -0
  148. package/lib/dist/extraction/vba/procedures.js.map +1 -0
  149. package/lib/dist/extraction/vba/sql-wrapper.d.ts +17 -0
  150. package/lib/dist/extraction/vba/sql-wrapper.d.ts.map +1 -0
  151. package/lib/dist/extraction/vba/sql-wrapper.js +212 -0
  152. package/lib/dist/extraction/vba/sql-wrapper.js.map +1 -0
  153. package/lib/dist/extraction/vba/tempvars.d.ts +10 -0
  154. package/lib/dist/extraction/vba/tempvars.d.ts.map +1 -0
  155. package/lib/dist/extraction/vba/tempvars.js +138 -0
  156. package/lib/dist/extraction/vba/tempvars.js.map +1 -0
  157. package/lib/dist/extraction/vba/text-utils.d.ts +73 -0
  158. package/lib/dist/extraction/vba/text-utils.d.ts.map +1 -0
  159. package/lib/dist/extraction/vba/text-utils.js +195 -0
  160. package/lib/dist/extraction/vba/text-utils.js.map +1 -0
  161. package/lib/dist/extraction/vba-extractor.d.ts +3 -951
  162. package/lib/dist/extraction/vba-extractor.d.ts.map +1 -1
  163. package/lib/dist/extraction/vba-extractor.js +46 -2934
  164. package/lib/dist/extraction/vba-extractor.js.map +1 -1
  165. package/lib/dist/extraction/vba-preprocess.d.ts +1 -1
  166. package/lib/dist/extraction/vba-preprocess.d.ts.map +1 -1
  167. package/lib/dist/extraction/vba-preprocess.js +300 -88
  168. package/lib/dist/extraction/vba-preprocess.js.map +1 -1
  169. package/lib/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
  170. package/lib/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
  171. package/lib/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
  172. package/lib/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
  173. package/lib/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
  174. package/lib/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
  175. package/lib/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
  176. package/lib/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
  177. package/lib/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
  178. package/lib/dist/graph/traversal.d.ts.map +1 -1
  179. package/lib/dist/graph/traversal.js +76 -17
  180. package/lib/dist/graph/traversal.js.map +1 -1
  181. package/lib/dist/index.d.ts +81 -1
  182. package/lib/dist/index.d.ts.map +1 -1
  183. package/lib/dist/index.js +460 -10
  184. package/lib/dist/index.js.map +1 -1
  185. package/lib/dist/installer/index.d.ts +42 -0
  186. package/lib/dist/installer/index.d.ts.map +1 -1
  187. package/lib/dist/installer/index.js +97 -2
  188. package/lib/dist/installer/index.js.map +1 -1
  189. package/lib/dist/mcp/daemon.d.ts +35 -3
  190. package/lib/dist/mcp/daemon.d.ts.map +1 -1
  191. package/lib/dist/mcp/daemon.js +101 -9
  192. package/lib/dist/mcp/daemon.js.map +1 -1
  193. package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
  194. package/lib/dist/mcp/dynamic-boundaries.js +2 -1
  195. package/lib/dist/mcp/dynamic-boundaries.js.map +1 -1
  196. package/lib/dist/mcp/early-ppid.d.ts +26 -0
  197. package/lib/dist/mcp/early-ppid.d.ts.map +1 -0
  198. package/lib/dist/mcp/early-ppid.js +29 -0
  199. package/lib/dist/mcp/early-ppid.js.map +1 -0
  200. package/lib/dist/mcp/index.d.ts.map +1 -1
  201. package/lib/dist/mcp/index.js +29 -4
  202. package/lib/dist/mcp/index.js.map +1 -1
  203. package/lib/dist/mcp/liveness-watchdog.d.ts +18 -1
  204. package/lib/dist/mcp/liveness-watchdog.d.ts.map +1 -1
  205. package/lib/dist/mcp/liveness-watchdog.js +73 -13
  206. package/lib/dist/mcp/liveness-watchdog.js.map +1 -1
  207. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  208. package/lib/dist/mcp/proxy.js +30 -4
  209. package/lib/dist/mcp/proxy.js.map +1 -1
  210. package/lib/dist/mcp/query-pool.d.ts +14 -0
  211. package/lib/dist/mcp/query-pool.d.ts.map +1 -1
  212. package/lib/dist/mcp/query-pool.js +18 -0
  213. package/lib/dist/mcp/query-pool.js.map +1 -1
  214. package/lib/dist/mcp/session.d.ts +14 -0
  215. package/lib/dist/mcp/session.d.ts.map +1 -1
  216. package/lib/dist/mcp/session.js +28 -1
  217. package/lib/dist/mcp/session.js.map +1 -1
  218. package/lib/dist/mcp/startup-handshake.d.ts +44 -0
  219. package/lib/dist/mcp/startup-handshake.d.ts.map +1 -0
  220. package/lib/dist/mcp/startup-handshake.js +73 -0
  221. package/lib/dist/mcp/startup-handshake.js.map +1 -0
  222. package/lib/dist/mcp/tools.d.ts +22 -0
  223. package/lib/dist/mcp/tools.d.ts.map +1 -1
  224. package/lib/dist/mcp/tools.js +289 -23
  225. package/lib/dist/mcp/tools.js.map +1 -1
  226. package/lib/dist/mcp/transport.d.ts.map +1 -1
  227. package/lib/dist/mcp/transport.js +18 -0
  228. package/lib/dist/mcp/transport.js.map +1 -1
  229. package/lib/dist/project-config.d.ts +44 -0
  230. package/lib/dist/project-config.d.ts.map +1 -1
  231. package/lib/dist/project-config.js +151 -2
  232. package/lib/dist/project-config.js.map +1 -1
  233. package/lib/dist/resolution/c-fnptr-synthesizer.d.ts +2 -1
  234. package/lib/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
  235. package/lib/dist/resolution/c-fnptr-synthesizer.js +170 -146
  236. package/lib/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
  237. package/lib/dist/resolution/callback-synthesizer.d.ts +1 -1
  238. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  239. package/lib/dist/resolution/callback-synthesizer.js +1109 -97
  240. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  241. package/lib/dist/resolution/cooperative-yield.d.ts +32 -0
  242. package/lib/dist/resolution/cooperative-yield.d.ts.map +1 -0
  243. package/lib/dist/resolution/cooperative-yield.js +42 -0
  244. package/lib/dist/resolution/cooperative-yield.js.map +1 -0
  245. package/lib/dist/resolution/frameworks/cics.d.ts +20 -0
  246. package/lib/dist/resolution/frameworks/cics.d.ts.map +1 -0
  247. package/lib/dist/resolution/frameworks/cics.js +90 -0
  248. package/lib/dist/resolution/frameworks/cics.js.map +1 -0
  249. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  250. package/lib/dist/resolution/frameworks/index.js +6 -0
  251. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  252. package/lib/dist/resolution/frameworks/java.d.ts.map +1 -1
  253. package/lib/dist/resolution/frameworks/java.js +14 -6
  254. package/lib/dist/resolution/frameworks/java.js.map +1 -1
  255. package/lib/dist/resolution/frameworks/terraform.d.ts +38 -0
  256. package/lib/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  257. package/lib/dist/resolution/frameworks/terraform.js +277 -0
  258. package/lib/dist/resolution/frameworks/terraform.js.map +1 -0
  259. package/lib/dist/resolution/goframe-synthesizer.d.ts +2 -1
  260. package/lib/dist/resolution/goframe-synthesizer.d.ts.map +1 -1
  261. package/lib/dist/resolution/goframe-synthesizer.js +8 -3
  262. package/lib/dist/resolution/goframe-synthesizer.js.map +1 -1
  263. package/lib/dist/resolution/import-resolver.d.ts +7 -0
  264. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  265. package/lib/dist/resolution/import-resolver.js +129 -4
  266. package/lib/dist/resolution/import-resolver.js.map +1 -1
  267. package/lib/dist/resolution/index.d.ts +64 -2
  268. package/lib/dist/resolution/index.d.ts.map +1 -1
  269. package/lib/dist/resolution/index.js +476 -58
  270. package/lib/dist/resolution/index.js.map +1 -1
  271. package/lib/dist/resolution/name-matcher.d.ts +22 -3
  272. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  273. package/lib/dist/resolution/name-matcher.js +613 -39
  274. package/lib/dist/resolution/name-matcher.js.map +1 -1
  275. package/lib/dist/resolution/strip-comments.d.ts +1 -1
  276. package/lib/dist/resolution/strip-comments.d.ts.map +1 -1
  277. package/lib/dist/resolution/strip-comments.js +49 -0
  278. package/lib/dist/resolution/strip-comments.js.map +1 -1
  279. package/lib/dist/resolution/types.d.ts +29 -0
  280. package/lib/dist/resolution/types.d.ts.map +1 -1
  281. package/lib/dist/resolution/workspace-packages.d.ts +10 -0
  282. package/lib/dist/resolution/workspace-packages.d.ts.map +1 -1
  283. package/lib/dist/resolution/workspace-packages.js +142 -4
  284. package/lib/dist/resolution/workspace-packages.js.map +1 -1
  285. package/lib/dist/search/identifier-segments.d.ts +60 -0
  286. package/lib/dist/search/identifier-segments.d.ts.map +1 -0
  287. package/lib/dist/search/identifier-segments.js +176 -0
  288. package/lib/dist/search/identifier-segments.js.map +1 -0
  289. package/lib/dist/sync/git-hooks.d.ts.map +1 -1
  290. package/lib/dist/sync/git-hooks.js +2 -0
  291. package/lib/dist/sync/git-hooks.js.map +1 -1
  292. package/lib/dist/sync/watcher.d.ts +10 -5
  293. package/lib/dist/sync/watcher.d.ts.map +1 -1
  294. package/lib/dist/sync/watcher.js +51 -14
  295. package/lib/dist/sync/watcher.js.map +1 -1
  296. package/lib/dist/sync/worktree.d.ts +9 -0
  297. package/lib/dist/sync/worktree.d.ts.map +1 -1
  298. package/lib/dist/sync/worktree.js +45 -0
  299. package/lib/dist/sync/worktree.js.map +1 -1
  300. package/lib/dist/types.d.ts +25 -2
  301. package/lib/dist/types.d.ts.map +1 -1
  302. package/lib/dist/types.js +10 -0
  303. package/lib/dist/types.js.map +1 -1
  304. package/lib/dist/upgrade/index.d.ts +32 -0
  305. package/lib/dist/upgrade/index.d.ts.map +1 -1
  306. package/lib/dist/upgrade/index.js +163 -14
  307. package/lib/dist/upgrade/index.js.map +1 -1
  308. package/lib/dist/upgrade/remove-binary.d.ts +87 -0
  309. package/lib/dist/upgrade/remove-binary.d.ts.map +1 -0
  310. package/lib/dist/upgrade/remove-binary.js +289 -0
  311. package/lib/dist/upgrade/remove-binary.js.map +1 -0
  312. package/lib/dist/upgrade/update-check.d.ts +92 -0
  313. package/lib/dist/upgrade/update-check.d.ts.map +1 -0
  314. package/lib/dist/upgrade/update-check.js +258 -0
  315. package/lib/dist/upgrade/update-check.js.map +1 -0
  316. package/lib/node_modules/.modules.yaml +1 -1
  317. package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
  318. package/lib/package.json +1 -1
  319. package/package.json +1 -1
  320. package/lib/dist/reasoning/config.d.ts +0 -45
  321. package/lib/dist/reasoning/config.d.ts.map +0 -1
  322. package/lib/dist/reasoning/config.js +0 -171
  323. package/lib/dist/reasoning/config.js.map +0 -1
  324. package/lib/dist/reasoning/credentials.d.ts +0 -5
  325. package/lib/dist/reasoning/credentials.d.ts.map +0 -1
  326. package/lib/dist/reasoning/credentials.js +0 -83
  327. package/lib/dist/reasoning/credentials.js.map +0 -1
  328. package/lib/dist/reasoning/login.d.ts +0 -21
  329. package/lib/dist/reasoning/login.d.ts.map +0 -1
  330. package/lib/dist/reasoning/login.js +0 -85
  331. package/lib/dist/reasoning/login.js.map +0 -1
  332. package/lib/dist/reasoning/reasoner.d.ts +0 -43
  333. package/lib/dist/reasoning/reasoner.d.ts.map +0 -1
  334. package/lib/dist/reasoning/reasoner.js +0 -308
  335. package/lib/dist/reasoning/reasoner.js.map +0 -1
@@ -0,0 +1,175 @@
1
+ /**
2
+ * VbaExtractorContext — the shared state + shared helpers threaded through
3
+ * every VBA extraction pass.
4
+ *
5
+ * It owns the node/edge/reference accumulators, the per-file lookup maps
6
+ * (`localProcs`, `functionNodeByName`, `localVarTypeMap`, `localConstants`,
7
+ * `localEvents`), the lazily-created module/class node, and the de-dup caches.
8
+ * The per-concern sweeps under `src/extraction/vba/*` are free functions that
9
+ * take a `VbaExtractorContext` and read/write this shared state; the handful
10
+ * of helpers that more than one sweep needs (`emitReference`,
11
+ * `pushContainsFromModule`, `findOrCreateFunctionNodeId`, the qualified-call
12
+ * gates, and the per-scope Const lookup) live here as methods.
13
+ */
14
+ import { Node, Edge, ExtractionError, UnresolvedReference } from '../../types';
15
+ export interface ProcInfo {
16
+ name: string;
17
+ qualifiedName: string;
18
+ kind: 'sub' | 'function' | 'property';
19
+ visibility: 'public' | 'private' | 'protected' | 'internal';
20
+ startLine: number;
21
+ }
22
+ export declare class VbaExtractorContext {
23
+ filePath: string;
24
+ nodes: Node[];
25
+ edges: Edge[];
26
+ errors: ExtractionError[];
27
+ unresolvedReferences: UnresolvedReference[];
28
+ moduleOrClassNode: Node | null;
29
+ /**
30
+ * Class-name prefix for `qualifiedName` composition.
31
+ *
32
+ * B3 (hueco 5): for `.cls` files every function node's `qualifiedName`
33
+ * is composed as `${className}.${procName}` (e.g. `Form_TestForm.Form_Load`)
34
+ * so cross-class callers can disambiguate which form each `Form_Load`
35
+ * belongs to. For `.bas` files this is `null` — module-scoped procs keep
36
+ * their bare-name `qualifiedName`. Resolved once per `extract()` from
37
+ * `isCls` + `vbName`; `sweepProcedures` reads it.
38
+ */
39
+ classNamePrefix: string | null;
40
+ /**
41
+ * Map of procedure name (within this file) → list of ProcInfo. The list
42
+ * (rather than a single value) is needed because VBA allows multiple
43
+ * Property accessors with the same name: `Property Get Foo`, `Property
44
+ * Let Foo`, and `Property Set Foo` all share the name `Foo`.
45
+ */
46
+ localProcs: Map<string, ProcInfo[]>;
47
+ /**
48
+ * Cache: procedure name → first matching function node emitted for that
49
+ * name (audit S2 — O(1) same-file call resolution).
50
+ */
51
+ functionNodeByName: Map<string, Node>;
52
+ /**
53
+ * Cache: startLine → function node emitted for that line. When Property
54
+ * Get/Let/Set share a name, we find the SPECIFIC accessor's node by its
55
+ * declaration line (Fix 1).
56
+ */
57
+ functionNodeByStartLine: Map<number, Node>;
58
+ /** Edges whose source needs to be set to the module/class id once it exists. */
59
+ pendingModuleOrClassSource: Edge[];
60
+ /** Cache so we don't re-emit the same proc function node per call site. */
61
+ procNodeIdCache: Map<string, string>;
62
+ callDedupe: Set<string>;
63
+ synthFunctionNodeIds: Set<string>;
64
+ /**
65
+ * B4 (hueco 6) extended by Issue #48: cache of stub node ids we've already
66
+ * emitted for a given (method, target name) pair in this file. Keyed by
67
+ * `${cacheKey}:${lowerName}` so the OpenForm and OpenReport de-dup buckets
68
+ * stay disjoint.
69
+ */
70
+ opensStubIdsByKey: Map<string, string>;
71
+ synthClassNodeIds: Set<string>;
72
+ /**
73
+ * Issue #50: TempVars placeholder-node de-dup cache. Keys are the
74
+ * deterministic node ids produced by `emitTempVarReference` — those ids
75
+ * intentionally use a synthetic `synthetic:tempvar/<key>` path so the SAME
76
+ * key referenced from Form_A.cls AND Form_B.cls collapses to ONE node.
77
+ */
78
+ synthTempVarNodeIds: Set<string>;
79
+ /**
80
+ * Maps `variableName.toLowerCase()` → declared type info.
81
+ * Built by `sweepDimsAndWithEvents`; consulted by the unified qualified-call
82
+ * gate (`shouldProcessQualifiedCall`) so declared project-class locals emit
83
+ * edges, declared primitive/external locals stay silent, and undeclared
84
+ * receivers remain module-name candidates for the resolver (Fix 2 / Issue #2).
85
+ */
86
+ localVarTypeMap: Map<string, {
87
+ outer: string;
88
+ qualified: boolean;
89
+ withEvents?: boolean;
90
+ variableName?: string;
91
+ assignedWithSet?: boolean;
92
+ }>;
93
+ /**
94
+ * Issue #52: Const resolution buckets, scoped per procedure. Key is
95
+ * `'module'` for module-level Consts, or the procedure's `startLine`
96
+ * (stringified) for proc-local Consts. Each bucket maps the lowercase
97
+ * constant name to its simple-literal value (used by `DoCmd.OpenForm` /
98
+ * `OpenReport` / `OpenQuery` argument resolution via `resolveLocalConst`).
99
+ */
100
+ localConstants: Map<'module' | string, Map<string, string>>;
101
+ /**
102
+ * Issue #52: the current Const-lookup scope. `'module'` when no procedure
103
+ * is open, otherwise the top-of-stack proc's `startLine` as a string. Both
104
+ * `sweepEnumsAndConsts` and `sweepCallsAndSql` keep this in sync with their
105
+ * per-line stack walk.
106
+ */
107
+ currentProcKey: 'module' | string;
108
+ /**
109
+ * Issue #52: per-extraction proc-stack shared between `sweepEnumsAndConsts`
110
+ * and `sweepCallsAndSql`. Each sweep clears it at the start so the file's
111
+ * mid-proc structural state never leaks across sweeps. Holds the `startLine`
112
+ * of every procedure whose `End` marker the sweep has not yet seen.
113
+ */
114
+ procStack: number[];
115
+ /** Local event name (lowercase) → event node for `RaiseEvent` edge emission. */
116
+ localEvents: Map<string, Node>;
117
+ constructor(filePath: string);
118
+ /**
119
+ * Emit a `contains` edge from the (lazily-created) module/class node to
120
+ * `targetId`. Mirrors the pending-source pattern the procedure and
121
+ * implements sweeps use: the module node doesn't exist yet, so the edge's
122
+ * source is rewritten once `extract()` creates it.
123
+ */
124
+ pushContainsFromModule(targetId: string): void;
125
+ /**
126
+ * Fix 2 (Issue #2): return true iff `receiverName` is a file-local variable
127
+ * (appears in `localVarTypeMap`) whose declared type is a SIMPLE (non-
128
+ * qualified, non-primitive) identifier — a candidate project-defined class.
129
+ * Qualified types (e.g. `DAO.Recordset`) and primitives (`String`, `Long`)
130
+ * return false so runtime/DAO calls are suppressed. Brackets are stripped
131
+ * from the lookup key defensively (Issue #54).
132
+ */
133
+ isLocalProjectClassVar(receiverName: string): boolean;
134
+ /**
135
+ * Qualified-call eligibility is intentionally shared by paren-form
136
+ * (`Receiver.Member(...)`) and statement-form (`Receiver.Member args`) scans:
137
+ * project-class locals are processed after type resolution, declared
138
+ * primitive/external locals are silent, and undeclared receivers remain
139
+ * candidate module names.
140
+ */
141
+ shouldProcessQualifiedCall(receiverName: string): boolean;
142
+ /**
143
+ * #12a: resolve the "receiver type" used to build a qualified call-stub's
144
+ * name/qualifiedName. When `receiverName` is a file-local variable typed
145
+ * as a candidate project class (`isLocalProjectClassVar`), returns the
146
+ * RESOLVED CLASS NAME from `localVarTypeMap` (e.g. `m_NCOp As NCOperaciones`
147
+ * → `'NCOperaciones'`) so the stub matches the real `.cls` method's
148
+ * `${className}.${proc}` shape. Otherwise returns `receiverName` unchanged
149
+ * (the `.bas`-qualified module call case).
150
+ */
151
+ resolveReceiverType(receiverName: string): string;
152
+ findOrCreateFunctionNodeId(proc: ProcInfo): string;
153
+ findFunctionNodeByName(name: string): Node | undefined;
154
+ /**
155
+ * Emit a `references` edge from the file's module/class node to a synthetic
156
+ * node named `targetName`. Used by Dim, WithEvents, Set-New, and SQL sweeps.
157
+ * Fix 5: the synthetic node id is keyed on (filePath, kind, name) WITHOUT
158
+ * lineNum so the same type/table referenced on N lines produces ONE node.
159
+ */
160
+ emitReference(targetName: string, lineNum: number, column: number, synthesizedBy: string): void;
161
+ /**
162
+ * Issue #52: shared lookup helper for `scanDoCmdOpenCalls` and
163
+ * `scanDoCmdOpenQuery`. The current scope is the procedure whose
164
+ * `startLine` is on top of `procStack` (or `'module'` when empty).
165
+ * Per-proc bucket first; module bucket is the fallback.
166
+ */
167
+ resolveLocalConst(name: string): string | undefined;
168
+ /**
169
+ * Issue #52: shared writer. `scopeKey` is `'module'` or the procedure's
170
+ * startLine-as-string. Creates the bucket lazily. Returns the bucket the
171
+ * value was written to (mostly useful for tests).
172
+ */
173
+ setLocalConstInScope(scopeKey: 'module' | string, name: string, value: string): Map<string, string>;
174
+ }
175
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;IACtC,UAAU,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,mBAAmB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAM;IACnB,KAAK,EAAE,IAAI,EAAE,CAAM;IACnB,MAAM,EAAE,eAAe,EAAE,CAAM;IAC/B,oBAAoB,EAAE,mBAAmB,EAAE,CAAM;IACjD,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE7C;;;;;;;;;OASG;IACI,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE7C;;;;;OAKG;IACI,UAAU,0BAAiC;IAElD;;;OAGG;IACI,kBAAkB,oBAA2B;IAEpD;;;;OAIG;IACI,uBAAuB,oBAA2B;IAEzD,gFAAgF;IACzE,0BAA0B,EAAE,IAAI,EAAE,CAAM;IAE/C,2EAA2E;IACpE,eAAe,sBAA6B;IAC5C,UAAU,cAAqB;IAC/B,oBAAoB,cAAqB;IAEhD;;;;;OAKG;IACI,iBAAiB,sBAA6B;IAE9C,iBAAiB,cAAqB;IAE7C;;;;;OAKG;IACI,mBAAmB,cAAqB;IAE/C;;;;;;OAMG;IACI,eAAe;eACb,MAAM;mBACF,OAAO;qBACL,OAAO;uBACL,MAAM;0BACH,OAAO;OACtB;IAEL;;;;;;OAMG;IACI,cAAc,EAAE,GAAG,CAAC,QAAQ,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAa;IAE/E;;;;;OAKG;IACI,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAY;IAEpD;;;;;OAKG;IACI,SAAS,EAAE,MAAM,EAAE,CAAM;IAEhC,gFAAgF;IACzE,WAAW,oBAA2B;gBAEjC,QAAQ,EAAE,MAAM;IAI5B;;;;;OAKG;IACI,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcrD;;;;;;;OAOG;IACI,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAU5D;;;;;;OAMG;IACI,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAKhE;;;;;;;;OAQG;IACI,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IASjD,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAsBlD,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAM7D;;;;;OAKG;IACI,aAAa,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,IAAI;IAuCP;;;;;OAKG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAW1D;;;;OAIG;IACI,oBAAoB,CACzB,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CASvB"}
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VbaExtractorContext = void 0;
4
+ const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
5
+ const constants_1 = require("./constants");
6
+ class VbaExtractorContext {
7
+ filePath;
8
+ nodes = [];
9
+ edges = [];
10
+ errors = [];
11
+ unresolvedReferences = [];
12
+ moduleOrClassNode = null;
13
+ /**
14
+ * Class-name prefix for `qualifiedName` composition.
15
+ *
16
+ * B3 (hueco 5): for `.cls` files every function node's `qualifiedName`
17
+ * is composed as `${className}.${procName}` (e.g. `Form_TestForm.Form_Load`)
18
+ * so cross-class callers can disambiguate which form each `Form_Load`
19
+ * belongs to. For `.bas` files this is `null` — module-scoped procs keep
20
+ * their bare-name `qualifiedName`. Resolved once per `extract()` from
21
+ * `isCls` + `vbName`; `sweepProcedures` reads it.
22
+ */
23
+ classNamePrefix = null;
24
+ /**
25
+ * Map of procedure name (within this file) → list of ProcInfo. The list
26
+ * (rather than a single value) is needed because VBA allows multiple
27
+ * Property accessors with the same name: `Property Get Foo`, `Property
28
+ * Let Foo`, and `Property Set Foo` all share the name `Foo`.
29
+ */
30
+ localProcs = new Map();
31
+ /**
32
+ * Cache: procedure name → first matching function node emitted for that
33
+ * name (audit S2 — O(1) same-file call resolution).
34
+ */
35
+ functionNodeByName = new Map();
36
+ /**
37
+ * Cache: startLine → function node emitted for that line. When Property
38
+ * Get/Let/Set share a name, we find the SPECIFIC accessor's node by its
39
+ * declaration line (Fix 1).
40
+ */
41
+ functionNodeByStartLine = new Map();
42
+ /** Edges whose source needs to be set to the module/class id once it exists. */
43
+ pendingModuleOrClassSource = [];
44
+ /** Cache so we don't re-emit the same proc function node per call site. */
45
+ procNodeIdCache = new Map();
46
+ callDedupe = new Set();
47
+ synthFunctionNodeIds = new Set();
48
+ /**
49
+ * B4 (hueco 6) extended by Issue #48: cache of stub node ids we've already
50
+ * emitted for a given (method, target name) pair in this file. Keyed by
51
+ * `${cacheKey}:${lowerName}` so the OpenForm and OpenReport de-dup buckets
52
+ * stay disjoint.
53
+ */
54
+ opensStubIdsByKey = new Map();
55
+ synthClassNodeIds = new Set();
56
+ /**
57
+ * Issue #50: TempVars placeholder-node de-dup cache. Keys are the
58
+ * deterministic node ids produced by `emitTempVarReference` — those ids
59
+ * intentionally use a synthetic `synthetic:tempvar/<key>` path so the SAME
60
+ * key referenced from Form_A.cls AND Form_B.cls collapses to ONE node.
61
+ */
62
+ synthTempVarNodeIds = new Set();
63
+ /**
64
+ * Maps `variableName.toLowerCase()` → declared type info.
65
+ * Built by `sweepDimsAndWithEvents`; consulted by the unified qualified-call
66
+ * gate (`shouldProcessQualifiedCall`) so declared project-class locals emit
67
+ * edges, declared primitive/external locals stay silent, and undeclared
68
+ * receivers remain module-name candidates for the resolver (Fix 2 / Issue #2).
69
+ */
70
+ localVarTypeMap = new Map();
71
+ /**
72
+ * Issue #52: Const resolution buckets, scoped per procedure. Key is
73
+ * `'module'` for module-level Consts, or the procedure's `startLine`
74
+ * (stringified) for proc-local Consts. Each bucket maps the lowercase
75
+ * constant name to its simple-literal value (used by `DoCmd.OpenForm` /
76
+ * `OpenReport` / `OpenQuery` argument resolution via `resolveLocalConst`).
77
+ */
78
+ localConstants = new Map();
79
+ /**
80
+ * Issue #52: the current Const-lookup scope. `'module'` when no procedure
81
+ * is open, otherwise the top-of-stack proc's `startLine` as a string. Both
82
+ * `sweepEnumsAndConsts` and `sweepCallsAndSql` keep this in sync with their
83
+ * per-line stack walk.
84
+ */
85
+ currentProcKey = 'module';
86
+ /**
87
+ * Issue #52: per-extraction proc-stack shared between `sweepEnumsAndConsts`
88
+ * and `sweepCallsAndSql`. Each sweep clears it at the start so the file's
89
+ * mid-proc structural state never leaks across sweeps. Holds the `startLine`
90
+ * of every procedure whose `End` marker the sweep has not yet seen.
91
+ */
92
+ procStack = [];
93
+ /** Local event name (lowercase) → event node for `RaiseEvent` edge emission. */
94
+ localEvents = new Map();
95
+ constructor(filePath) {
96
+ this.filePath = filePath;
97
+ }
98
+ /**
99
+ * Emit a `contains` edge from the (lazily-created) module/class node to
100
+ * `targetId`. Mirrors the pending-source pattern the procedure and
101
+ * implements sweeps use: the module node doesn't exist yet, so the edge's
102
+ * source is rewritten once `extract()` creates it.
103
+ */
104
+ pushContainsFromModule(targetId) {
105
+ if (this.moduleOrClassNode) {
106
+ this.edges.push({
107
+ source: this.moduleOrClassNode.id,
108
+ target: targetId,
109
+ kind: 'contains',
110
+ });
111
+ return;
112
+ }
113
+ const edge = { source: '', target: targetId, kind: 'contains' };
114
+ this.edges.push(edge);
115
+ this.pendingModuleOrClassSource.push(edge);
116
+ }
117
+ /**
118
+ * Fix 2 (Issue #2): return true iff `receiverName` is a file-local variable
119
+ * (appears in `localVarTypeMap`) whose declared type is a SIMPLE (non-
120
+ * qualified, non-primitive) identifier — a candidate project-defined class.
121
+ * Qualified types (e.g. `DAO.Recordset`) and primitives (`String`, `Long`)
122
+ * return false so runtime/DAO calls are suppressed. Brackets are stripped
123
+ * from the lookup key defensively (Issue #54).
124
+ */
125
+ isLocalProjectClassVar(receiverName) {
126
+ // Issue #54: strip a single leading `[` and/or trailing `]` if present.
127
+ const key = receiverName.replace(/^\[|\]$/g, '').toLowerCase();
128
+ const entry = this.localVarTypeMap.get(key);
129
+ if (!entry)
130
+ return false; // not declared in this file → silent
131
+ if (entry.qualified)
132
+ return false; // DAO.Recordset etc. → silent
133
+ if (constants_1.PRIMITIVE_TYPES.has(entry.outer.toLowerCase()))
134
+ return false;
135
+ return true;
136
+ }
137
+ /**
138
+ * Qualified-call eligibility is intentionally shared by paren-form
139
+ * (`Receiver.Member(...)`) and statement-form (`Receiver.Member args`) scans:
140
+ * project-class locals are processed after type resolution, declared
141
+ * primitive/external locals are silent, and undeclared receivers remain
142
+ * candidate module names.
143
+ */
144
+ shouldProcessQualifiedCall(receiverName) {
145
+ if (this.isLocalProjectClassVar(receiverName))
146
+ return true;
147
+ return !this.localVarTypeMap.has(receiverName.toLowerCase());
148
+ }
149
+ /**
150
+ * #12a: resolve the "receiver type" used to build a qualified call-stub's
151
+ * name/qualifiedName. When `receiverName` is a file-local variable typed
152
+ * as a candidate project class (`isLocalProjectClassVar`), returns the
153
+ * RESOLVED CLASS NAME from `localVarTypeMap` (e.g. `m_NCOp As NCOperaciones`
154
+ * → `'NCOperaciones'`) so the stub matches the real `.cls` method's
155
+ * `${className}.${proc}` shape. Otherwise returns `receiverName` unchanged
156
+ * (the `.bas`-qualified module call case).
157
+ */
158
+ resolveReceiverType(receiverName) {
159
+ if (this.isLocalProjectClassVar(receiverName)) {
160
+ const key = receiverName.replace(/^\[|\]$/g, '').toLowerCase();
161
+ const entry = this.localVarTypeMap.get(key);
162
+ if (entry)
163
+ return entry.outer;
164
+ }
165
+ return receiverName;
166
+ }
167
+ findOrCreateFunctionNodeId(proc) {
168
+ // Fix 1: key the cache by `name:startLine` so Property Get/Let/Set
169
+ // accessors with the same name each resolve to their own node.
170
+ const cacheKey = `${proc.name}:${proc.startLine}`;
171
+ const cached = this.procNodeIdCache.get(cacheKey);
172
+ if (cached)
173
+ return cached;
174
+ // Prefer the startLine-indexed lookup (O(1), correct for all three
175
+ // Property accessors). Fall back to the name-indexed cache for procs
176
+ // whose startLine wasn't recorded (should not happen in practice).
177
+ const fn = this.functionNodeByStartLine.get(proc.startLine) ??
178
+ this.findFunctionNodeByName(proc.name);
179
+ if (fn) {
180
+ this.procNodeIdCache.set(cacheKey, fn.id);
181
+ return fn.id;
182
+ }
183
+ // Fallback: synthesize a node id matching generateNodeId's input shape.
184
+ const id = (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, 'function', proc.name, proc.startLine);
185
+ this.procNodeIdCache.set(cacheKey, id);
186
+ return id;
187
+ }
188
+ findFunctionNodeByName(name) {
189
+ // O(1) via the cache populated as function nodes are emitted in
190
+ // `sweepProcedures` (audit S2 — replaced an O(n) linear scan per call site).
191
+ return this.functionNodeByName.get(name);
192
+ }
193
+ /**
194
+ * Emit a `references` edge from the file's module/class node to a synthetic
195
+ * node named `targetName`. Used by Dim, WithEvents, Set-New, and SQL sweeps.
196
+ * Fix 5: the synthetic node id is keyed on (filePath, kind, name) WITHOUT
197
+ * lineNum so the same type/table referenced on N lines produces ONE node.
198
+ */
199
+ emitReference(targetName, lineNum, column, synthesizedBy) {
200
+ if (!targetName)
201
+ return;
202
+ const targetId = (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, 'class', // placeholder kind; cross-file resolution will re-type at lookup
203
+ targetName, 0);
204
+ if (this.synthClassNodeIds.has(targetId)) {
205
+ // Node already emitted for this name — only add the edge below.
206
+ }
207
+ else {
208
+ this.synthClassNodeIds.add(targetId);
209
+ this.nodes.push({
210
+ id: targetId,
211
+ kind: 'class',
212
+ name: targetName,
213
+ qualifiedName: targetName,
214
+ filePath: this.filePath,
215
+ language: 'vba',
216
+ startLine: lineNum,
217
+ endLine: lineNum,
218
+ startColumn: column,
219
+ endColumn: column + targetName.length,
220
+ updatedAt: Date.now(),
221
+ });
222
+ }
223
+ const edge = {
224
+ source: '', // rewritten after module node exists
225
+ target: targetId,
226
+ kind: 'references',
227
+ provenance: 'heuristic',
228
+ metadata: { synthesizedBy },
229
+ line: lineNum,
230
+ column,
231
+ };
232
+ this.edges.push(edge);
233
+ this.pendingModuleOrClassSource.push(edge);
234
+ }
235
+ /**
236
+ * Issue #52: shared lookup helper for `scanDoCmdOpenCalls` and
237
+ * `scanDoCmdOpenQuery`. The current scope is the procedure whose
238
+ * `startLine` is on top of `procStack` (or `'module'` when empty).
239
+ * Per-proc bucket first; module bucket is the fallback.
240
+ */
241
+ resolveLocalConst(name) {
242
+ const lower = name.toLowerCase();
243
+ const procBucket = this.localConstants.get(this.currentProcKey);
244
+ if (procBucket) {
245
+ const v = procBucket.get(lower);
246
+ if (v !== undefined)
247
+ return v;
248
+ }
249
+ const moduleBucket = this.localConstants.get('module');
250
+ return moduleBucket?.get(lower);
251
+ }
252
+ /**
253
+ * Issue #52: shared writer. `scopeKey` is `'module'` or the procedure's
254
+ * startLine-as-string. Creates the bucket lazily. Returns the bucket the
255
+ * value was written to (mostly useful for tests).
256
+ */
257
+ setLocalConstInScope(scopeKey, name, value) {
258
+ let bucket = this.localConstants.get(scopeKey);
259
+ if (!bucket) {
260
+ bucket = new Map();
261
+ this.localConstants.set(scopeKey, bucket);
262
+ }
263
+ bucket.set(name.toLowerCase(), value);
264
+ return bucket;
265
+ }
266
+ }
267
+ exports.VbaExtractorContext = VbaExtractorContext;
268
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/extraction/vba/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Control-reference sweeps: `Me.<Control>` / `Me!<Control>` (hueco 1, issue
3
+ * #44) and cross-form `Forms!<Form>` / `Forms("<Form>")!<Ctl>` bang refs
4
+ * (issue #44). Both emit `UnresolvedReference`s (no synthetic `function`
5
+ * node) the resolver later binds to the form's controls.
6
+ */
7
+ import { VbaExtractorContext, ProcInfo } from './context';
8
+ /**
9
+ * Hueco 1: scan a line for `Me.<ControlName>` / `Me!<ControlName>`
10
+ * patterns and emit one UnresolvedReference per occurrence, tagged
11
+ * `metadata.synthesizedBy: 'vba-me-control'`. Operates on the masked
12
+ * `callScanLine`. The +3 column offset skips the 3-char `Me.` / `Me!`
13
+ * prefix (both are 3 chars).
14
+ */
15
+ export declare function scanMeControlReferences(ctx: VbaExtractorContext, line: string, from: ProcInfo, lineNum: number): void;
16
+ /**
17
+ * Issue #44: scan a line for cross-form bang references
18
+ * (`Forms!<FormName>[!<Ctl>]` and `Forms("<FormName>")!<Ctl>`) and
19
+ * emit ONE UnresolvedReference per match with `metadata.synthesizedBy
20
+ * = 'vba-forms-bang'`. Operates on the ORIGINAL (unmasked) line. The form
21
+ * identifier is unwrapped of surrounding `"` quotes and `[…]` brackets.
22
+ */
23
+ export declare function scanFormsBang(ctx: VbaExtractorContext, line: string, from: ProcInfo, lineNum: number): void;
24
+ //# sourceMappingURL=controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AA2B1D;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAiBN;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CA0BN"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scanMeControlReferences = scanMeControlReferences;
4
+ exports.scanFormsBang = scanFormsBang;
5
+ /**
6
+ * `Me.<ControlName>` / `Me!<ControlName>` reference capture — hole 1
7
+ * of VBA control-modeling. Issue #44 extended it from `Me\.` to `Me[.!]`
8
+ * so the bang form (default-collection shortcut) is captured
9
+ * byte-identically to the dot form. Only the FIRST identifier after
10
+ * `Me.`/`Me!` is captured; trailing `.Caption`/`.Value` are properties of
11
+ * the control, not new symbols. Provenance: `vba-me-control`.
12
+ */
13
+ const ME_CONTROL_RE = /\bMe[.!](\p{L}[\p{L}\p{N}_]*)/gu;
14
+ /**
15
+ * Issue #44: `Forms!<FormName>` / `Forms("<FormName>")!<Ctl>` cross-form
16
+ * reference capture — companion to `ME_CONTROL_RE`. `Forms` is in
17
+ * `RUNTIME_RECEIVER_BLACKLIST`, so the generic CALL_RE path skips it; this
18
+ * dedicated scanner surfaces the form → control binding as an
19
+ * `UnresolvedReference` (`vba-forms-bang`), with NO synthetic `function`
20
+ * node (W4 invariant). The bang alternative's `(?![.\w])` lookahead drops
21
+ * `Forms!FormX.Foo` (a property access on the form, not a control access).
22
+ *
23
+ * Operates on the ORIGINAL (unmasked) line — the paren form
24
+ * `Forms("FormX")!txtY` carries the form name INSIDE a string literal.
25
+ */
26
+ const FORMS_BANG_RE = /\b(?:Forms!(\p{L}[\p{L}\p{N}_]*|\[[^\]]+\])(?![.\w])|Forms\(\s*(?:"((?:[^"]|"")*)"|(\p{L}[\p{L}\p{N}_]*|\[[^\]]+\]))\s*\)\s*!\s*(?:\p{L}[\p{L}\p{N}_]*|\[[^\]]+\]))/gu;
27
+ /**
28
+ * Hueco 1: scan a line for `Me.<ControlName>` / `Me!<ControlName>`
29
+ * patterns and emit one UnresolvedReference per occurrence, tagged
30
+ * `metadata.synthesizedBy: 'vba-me-control'`. Operates on the masked
31
+ * `callScanLine`. The +3 column offset skips the 3-char `Me.` / `Me!`
32
+ * prefix (both are 3 chars).
33
+ */
34
+ function scanMeControlReferences(ctx, line, from, lineNum) {
35
+ ME_CONTROL_RE.lastIndex = 0;
36
+ let m;
37
+ while ((m = ME_CONTROL_RE.exec(line)) !== null) {
38
+ const controlName = m[1] ?? '';
39
+ if (!controlName)
40
+ continue;
41
+ ctx.unresolvedReferences.push({
42
+ fromNodeId: ctx.findOrCreateFunctionNodeId(from),
43
+ referenceName: controlName,
44
+ referenceKind: 'references',
45
+ line: lineNum,
46
+ column: m.index + 3, // +3 to skip the `Me.` / `Me!` prefix
47
+ filePath: ctx.filePath,
48
+ language: 'vba',
49
+ metadata: { synthesizedBy: 'vba-me-control' },
50
+ });
51
+ }
52
+ }
53
+ /**
54
+ * Issue #44: scan a line for cross-form bang references
55
+ * (`Forms!<FormName>[!<Ctl>]` and `Forms("<FormName>")!<Ctl>`) and
56
+ * emit ONE UnresolvedReference per match with `metadata.synthesizedBy
57
+ * = 'vba-forms-bang'`. Operates on the ORIGINAL (unmasked) line. The form
58
+ * identifier is unwrapped of surrounding `"` quotes and `[…]` brackets.
59
+ */
60
+ function scanFormsBang(ctx, line, from, lineNum) {
61
+ FORMS_BANG_RE.lastIndex = 0;
62
+ let m;
63
+ while ((m = FORMS_BANG_RE.exec(line)) !== null) {
64
+ // Group 1: bang form name (bare or `[bracketed]`); group 2: paren
65
+ // form name in `"quotes"`; group 3: paren form name bare or
66
+ // `[bracketed]`. Take whichever the regex alternative produced and
67
+ // strip the surrounding decoration so the public referenceName is
68
+ // the bare form identifier.
69
+ const raw = m[1] ?? m[2] ?? m[3] ?? '';
70
+ if (!raw)
71
+ continue;
72
+ const formName = raw
73
+ .replace(/^"|"$/g, '') // strip surrounding string-literal quotes
74
+ .replace(/^\[|\]$/g, ''); // strip surrounding bracket decoration (#54)
75
+ if (!formName)
76
+ continue;
77
+ ctx.unresolvedReferences.push({
78
+ fromNodeId: ctx.findOrCreateFunctionNodeId(from),
79
+ referenceName: formName,
80
+ referenceKind: 'references',
81
+ line: lineNum,
82
+ column: m.index, // start of the `Forms` keyword
83
+ filePath: ctx.filePath,
84
+ language: 'vba',
85
+ metadata: { synthesizedBy: 'vba-forms-bang' },
86
+ });
87
+ }
88
+ }
89
+ //# sourceMappingURL=controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":";;AAwCA,0DAsBC;AASD,sCA+BC;AA9FD;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,iCAAiC,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,MAAM,aAAa,GACjB,uKAAuK,CAAC;AAE1K;;;;;;GAMG;AACH,SAAgB,uBAAuB,CACrC,GAAwB,EACxB,IAAY,EACZ,IAAc,EACd,OAAe;IAEf,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC5B,UAAU,EAAE,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC;YAChD,aAAa,EAAE,WAAW;YAC1B,aAAa,EAAE,YAAY;YAC3B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,sCAAsC;YAC3D,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,GAAwB,EACxB,IAAY,EACZ,IAAc,EACd,OAAe;IAEf,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,kEAAkE;QAClE,4DAA4D;QAC5D,mEAAmE;QACnE,kEAAkE;QAClE,4BAA4B;QAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,QAAQ,GAAG,GAAG;aACjB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAG,0CAA0C;aAClE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,6CAA6C;QACzE,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC5B,UAAU,EAAE,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC;YAChD,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,YAAY;YAC3B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,+BAA+B;YAChD,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { VbaExtractorContext } from './context';
2
+ export declare function sweepEventsTypesAndDeclares(ctx: VbaExtractorContext, src: string): number;
3
+ //# sourceMappingURL=declarations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/declarations.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAqBhD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA2IzF"}