@tsonic/frontend 0.0.1 → 0.0.2

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 (709) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/{src/dependency-graph.ts → dist/dependency-graph.d.ts} +3 -11
  3. package/dist/dependency-graph.d.ts.map +1 -0
  4. package/dist/dependency-graph.js +9 -0
  5. package/dist/dependency-graph.js.map +1 -0
  6. package/dist/dotnet-metadata.d.ts +71 -0
  7. package/dist/dotnet-metadata.d.ts.map +1 -0
  8. package/dist/dotnet-metadata.js +78 -0
  9. package/dist/dotnet-metadata.js.map +1 -0
  10. package/dist/graph/builder.d.ts +10 -0
  11. package/dist/graph/builder.d.ts.map +1 -0
  12. package/dist/graph/builder.js +54 -0
  13. package/dist/graph/builder.js.map +1 -0
  14. package/dist/graph/circular.d.ts +10 -0
  15. package/dist/graph/circular.d.ts.map +1 -0
  16. package/dist/graph/circular.js +40 -0
  17. package/dist/graph/circular.js.map +1 -0
  18. package/dist/graph/extraction/exports.d.ts +10 -0
  19. package/dist/graph/extraction/exports.d.ts.map +1 -0
  20. package/dist/graph/extraction/exports.js +46 -0
  21. package/dist/graph/extraction/exports.js.map +1 -0
  22. package/dist/graph/extraction/imports.d.ts +11 -0
  23. package/dist/graph/extraction/imports.d.ts.map +1 -0
  24. package/dist/graph/extraction/imports.js +63 -0
  25. package/dist/graph/extraction/imports.js.map +1 -0
  26. package/dist/graph/extraction/index.d.ts +7 -0
  27. package/dist/graph/extraction/index.d.ts.map +1 -0
  28. package/{src/graph/extraction/index.ts → dist/graph/extraction/index.js} +1 -1
  29. package/dist/graph/extraction/index.js.map +1 -0
  30. package/dist/graph/extraction/orchestrator.d.ts +11 -0
  31. package/dist/graph/extraction/orchestrator.d.ts.map +1 -0
  32. package/dist/graph/extraction/orchestrator.js +78 -0
  33. package/dist/graph/extraction/orchestrator.js.map +1 -0
  34. package/dist/graph/extraction.d.ts +6 -0
  35. package/dist/graph/extraction.d.ts.map +1 -0
  36. package/{src/graph/extraction.ts → dist/graph/extraction.js} +2 -6
  37. package/dist/graph/extraction.js.map +1 -0
  38. package/dist/graph/helpers.d.ts +17 -0
  39. package/dist/graph/helpers.d.ts.map +1 -0
  40. package/dist/graph/helpers.js +40 -0
  41. package/dist/graph/helpers.js.map +1 -0
  42. package/{src/graph/index.ts → dist/graph/index.d.ts} +3 -11
  43. package/dist/graph/index.d.ts.map +1 -0
  44. package/dist/graph/index.js +8 -0
  45. package/dist/graph/index.js.map +1 -0
  46. package/{src/graph/types.ts → dist/graph/types.d.ts} +4 -5
  47. package/dist/graph/types.d.ts.map +1 -0
  48. package/dist/graph/types.js +5 -0
  49. package/dist/graph/types.js.map +1 -0
  50. package/dist/index.d.ts +26 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +43 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/ir/binding-resolution.test.d.ts +5 -0
  55. package/dist/ir/binding-resolution.test.d.ts.map +1 -0
  56. package/dist/ir/binding-resolution.test.js +513 -0
  57. package/dist/ir/binding-resolution.test.js.map +1 -0
  58. package/dist/ir/builder/exports.d.ts +10 -0
  59. package/dist/ir/builder/exports.d.ts.map +1 -0
  60. package/dist/ir/builder/exports.js +75 -0
  61. package/dist/ir/builder/exports.js.map +1 -0
  62. package/dist/ir/builder/helpers.d.ts +13 -0
  63. package/dist/ir/builder/helpers.d.ts.map +1 -0
  64. package/dist/ir/builder/helpers.js +23 -0
  65. package/dist/ir/builder/helpers.js.map +1 -0
  66. package/dist/ir/builder/imports.d.ts +18 -0
  67. package/dist/ir/builder/imports.d.ts.map +1 -0
  68. package/dist/ir/builder/imports.js +121 -0
  69. package/dist/ir/builder/imports.js.map +1 -0
  70. package/{src/ir/builder/index.ts → dist/ir/builder/index.d.ts} +1 -1
  71. package/dist/ir/builder/index.d.ts.map +1 -0
  72. package/dist/ir/builder/index.js +9 -0
  73. package/dist/ir/builder/index.js.map +1 -0
  74. package/dist/ir/builder/orchestrator.d.ts +18 -0
  75. package/dist/ir/builder/orchestrator.d.ts.map +1 -0
  76. package/dist/ir/builder/orchestrator.js +121 -0
  77. package/dist/ir/builder/orchestrator.js.map +1 -0
  78. package/dist/ir/builder/statements.d.ts +14 -0
  79. package/dist/ir/builder/statements.d.ts.map +1 -0
  80. package/dist/ir/builder/statements.js +43 -0
  81. package/dist/ir/builder/statements.js.map +1 -0
  82. package/dist/ir/builder/types.d.ts +8 -0
  83. package/dist/ir/builder/types.d.ts.map +1 -0
  84. package/dist/ir/builder/types.js +5 -0
  85. package/dist/ir/builder/types.js.map +1 -0
  86. package/dist/ir/builder/validation.d.ts +10 -0
  87. package/dist/ir/builder/validation.d.ts.map +1 -0
  88. package/dist/ir/builder/validation.js +86 -0
  89. package/dist/ir/builder/validation.js.map +1 -0
  90. package/{src/ir/builder.ts → dist/ir/builder.d.ts} +2 -5
  91. package/dist/ir/builder.d.ts.map +1 -0
  92. package/dist/ir/builder.js +10 -0
  93. package/dist/ir/builder.js.map +1 -0
  94. package/dist/ir/builder.test.d.ts +5 -0
  95. package/dist/ir/builder.test.d.ts.map +1 -0
  96. package/dist/ir/builder.test.js +493 -0
  97. package/dist/ir/builder.test.js.map +1 -0
  98. package/dist/ir/converters/expressions/access.d.ts +10 -0
  99. package/dist/ir/converters/expressions/access.d.ts.map +1 -0
  100. package/dist/ir/converters/expressions/access.js +85 -0
  101. package/dist/ir/converters/expressions/access.js.map +1 -0
  102. package/dist/ir/converters/expressions/calls.d.ts +14 -0
  103. package/dist/ir/converters/expressions/calls.d.ts.map +1 -0
  104. package/dist/ir/converters/expressions/calls.js +104 -0
  105. package/dist/ir/converters/expressions/calls.js.map +1 -0
  106. package/dist/ir/converters/expressions/collections.d.ts +14 -0
  107. package/dist/ir/converters/expressions/collections.d.ts.map +1 -0
  108. package/dist/ir/converters/expressions/collections.js +70 -0
  109. package/dist/ir/converters/expressions/collections.js.map +1 -0
  110. package/dist/ir/converters/expressions/functions.d.ts +14 -0
  111. package/dist/ir/converters/expressions/functions.d.ts.map +1 -0
  112. package/dist/ir/converters/expressions/functions.js +42 -0
  113. package/dist/ir/converters/expressions/functions.js.map +1 -0
  114. package/dist/ir/converters/expressions/helpers.d.ts +43 -0
  115. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -0
  116. package/dist/ir/converters/expressions/helpers.js +210 -0
  117. package/dist/ir/converters/expressions/helpers.js.map +1 -0
  118. package/dist/ir/converters/expressions/index.d.ts +12 -0
  119. package/dist/ir/converters/expressions/index.d.ts.map +1 -0
  120. package/dist/ir/converters/expressions/index.js +20 -0
  121. package/dist/ir/converters/expressions/index.js.map +1 -0
  122. package/dist/ir/converters/expressions/literals.d.ts +10 -0
  123. package/dist/ir/converters/expressions/literals.d.ts.map +1 -0
  124. package/dist/ir/converters/expressions/literals.js +17 -0
  125. package/dist/ir/converters/expressions/literals.js.map +1 -0
  126. package/dist/ir/converters/expressions/operators.d.ts +18 -0
  127. package/dist/ir/converters/expressions/operators.d.ts.map +1 -0
  128. package/dist/ir/converters/expressions/operators.js +111 -0
  129. package/dist/ir/converters/expressions/operators.js.map +1 -0
  130. package/dist/ir/converters/expressions/other.d.ts +14 -0
  131. package/dist/ir/converters/expressions/other.d.ts.map +1 -0
  132. package/dist/ir/converters/expressions/other.js +44 -0
  133. package/dist/ir/converters/expressions/other.js.map +1 -0
  134. package/dist/ir/converters/statements/control/blocks.d.ts +10 -0
  135. package/dist/ir/converters/statements/control/blocks.d.ts.map +1 -0
  136. package/dist/ir/converters/statements/control/blocks.js +16 -0
  137. package/dist/ir/converters/statements/control/blocks.js.map +1 -0
  138. package/dist/ir/converters/statements/control/conditionals.d.ts +18 -0
  139. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -0
  140. package/dist/ir/converters/statements/control/conditionals.js +46 -0
  141. package/dist/ir/converters/statements/control/conditionals.js.map +1 -0
  142. package/dist/ir/converters/statements/control/exceptions.d.ts +14 -0
  143. package/dist/ir/converters/statements/control/exceptions.d.ts.map +1 -0
  144. package/dist/ir/converters/statements/control/exceptions.js +33 -0
  145. package/dist/ir/converters/statements/control/exceptions.js.map +1 -0
  146. package/dist/ir/converters/statements/control/index.d.ts +8 -0
  147. package/dist/ir/converters/statements/control/index.d.ts.map +1 -0
  148. package/dist/ir/converters/statements/control/index.js +8 -0
  149. package/dist/ir/converters/statements/control/index.js.map +1 -0
  150. package/dist/ir/converters/statements/control/loops.d.ts +22 -0
  151. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -0
  152. package/dist/ir/converters/statements/control/loops.js +75 -0
  153. package/dist/ir/converters/statements/control/loops.js.map +1 -0
  154. package/dist/ir/converters/statements/control.d.ts +6 -0
  155. package/dist/ir/converters/statements/control.d.ts.map +1 -0
  156. package/dist/ir/converters/statements/control.js +6 -0
  157. package/dist/ir/converters/statements/control.js.map +1 -0
  158. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts +14 -0
  159. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -0
  160. package/dist/ir/converters/statements/declarations/classes/constructors.js +91 -0
  161. package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -0
  162. package/{src/ir/converters/statements/declarations/classes/index.ts → dist/ir/converters/statements/declarations/classes/index.d.ts} +2 -5
  163. package/dist/ir/converters/statements/declarations/classes/index.d.ts.map +1 -0
  164. package/dist/ir/converters/statements/declarations/classes/index.js +9 -0
  165. package/dist/ir/converters/statements/declarations/classes/index.js.map +1 -0
  166. package/dist/ir/converters/statements/declarations/classes/methods.d.ts +10 -0
  167. package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -0
  168. package/dist/ir/converters/statements/declarations/classes/methods.js +39 -0
  169. package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -0
  170. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts +10 -0
  171. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -0
  172. package/dist/ir/converters/statements/declarations/classes/orchestrator.js +123 -0
  173. package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -0
  174. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts +13 -0
  175. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -0
  176. package/dist/ir/converters/statements/declarations/classes/override-detection.js +79 -0
  177. package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -0
  178. package/dist/ir/converters/statements/declarations/classes/properties.d.ts +10 -0
  179. package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -0
  180. package/dist/ir/converters/statements/declarations/classes/properties.js +42 -0
  181. package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -0
  182. package/dist/ir/converters/statements/declarations/classes.d.ts +6 -0
  183. package/dist/ir/converters/statements/declarations/classes.d.ts.map +1 -0
  184. package/{src/ir/converters/statements/declarations/classes.ts → dist/ir/converters/statements/declarations/classes.js} +1 -1
  185. package/dist/ir/converters/statements/declarations/classes.js.map +1 -0
  186. package/dist/ir/converters/statements/declarations/enums.d.ts +10 -0
  187. package/dist/ir/converters/statements/declarations/enums.d.ts.map +1 -0
  188. package/dist/ir/converters/statements/declarations/enums.js +24 -0
  189. package/dist/ir/converters/statements/declarations/enums.js.map +1 -0
  190. package/dist/ir/converters/statements/declarations/functions.d.ts +10 -0
  191. package/dist/ir/converters/statements/declarations/functions.d.ts.map +1 -0
  192. package/dist/ir/converters/statements/declarations/functions.js +28 -0
  193. package/dist/ir/converters/statements/declarations/functions.js.map +1 -0
  194. package/dist/ir/converters/statements/declarations/index.d.ts +11 -0
  195. package/dist/ir/converters/statements/declarations/index.d.ts.map +1 -0
  196. package/{src/ir/converters/statements/declarations/index.ts → dist/ir/converters/statements/declarations/index.js} +2 -5
  197. package/dist/ir/converters/statements/declarations/index.js.map +1 -0
  198. package/dist/ir/converters/statements/declarations/interfaces.d.ts +15 -0
  199. package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -0
  200. package/dist/ir/converters/statements/declarations/interfaces.js +96 -0
  201. package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -0
  202. package/dist/ir/converters/statements/declarations/registry.d.ts +24 -0
  203. package/dist/ir/converters/statements/declarations/registry.d.ts.map +1 -0
  204. package/{src/ir/converters/statements/declarations/registry.ts → dist/ir/converters/statements/declarations/registry.js} +9 -16
  205. package/dist/ir/converters/statements/declarations/registry.js.map +1 -0
  206. package/dist/ir/converters/statements/declarations/type-aliases.d.ts +10 -0
  207. package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -0
  208. package/dist/ir/converters/statements/declarations/type-aliases.js +19 -0
  209. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -0
  210. package/dist/ir/converters/statements/declarations/variables.d.ts +10 -0
  211. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -0
  212. package/dist/ir/converters/statements/declarations/variables.js +45 -0
  213. package/dist/ir/converters/statements/declarations/variables.js.map +1 -0
  214. package/dist/ir/converters/statements/declarations.d.ts +6 -0
  215. package/dist/ir/converters/statements/declarations.d.ts.map +1 -0
  216. package/dist/ir/converters/statements/declarations.js +6 -0
  217. package/dist/ir/converters/statements/declarations.js.map +1 -0
  218. package/dist/ir/converters/statements/helpers.d.ts +34 -0
  219. package/dist/ir/converters/statements/helpers.d.ts.map +1 -0
  220. package/dist/ir/converters/statements/helpers.js +137 -0
  221. package/dist/ir/converters/statements/helpers.js.map +1 -0
  222. package/dist/ir/converters/statements/index.d.ts +7 -0
  223. package/dist/ir/converters/statements/index.d.ts.map +1 -0
  224. package/dist/ir/converters/statements/index.js +10 -0
  225. package/dist/ir/converters/statements/index.js.map +1 -0
  226. package/dist/ir/expression-converter.d.ts +13 -0
  227. package/dist/ir/expression-converter.d.ts.map +1 -0
  228. package/dist/ir/expression-converter.js +167 -0
  229. package/dist/ir/expression-converter.js.map +1 -0
  230. package/dist/ir/generic-validator.d.ts +38 -0
  231. package/dist/ir/generic-validator.d.ts.map +1 -0
  232. package/dist/ir/generic-validator.js +69 -0
  233. package/dist/ir/generic-validator.js.map +1 -0
  234. package/dist/ir/hierarchical-bindings-e2e.test.d.ts +6 -0
  235. package/dist/ir/hierarchical-bindings-e2e.test.d.ts.map +1 -0
  236. package/dist/ir/hierarchical-bindings-e2e.test.js +124 -0
  237. package/dist/ir/hierarchical-bindings-e2e.test.js.map +1 -0
  238. package/{src/ir/index.ts → dist/ir/index.d.ts} +1 -1
  239. package/dist/ir/index.d.ts.map +1 -0
  240. package/dist/ir/index.js +6 -0
  241. package/dist/ir/index.js.map +1 -0
  242. package/dist/ir/statement-converter.d.ts +14 -0
  243. package/dist/ir/statement-converter.d.ts.map +1 -0
  244. package/dist/ir/statement-converter.js +100 -0
  245. package/dist/ir/statement-converter.js.map +1 -0
  246. package/dist/ir/type-converter/arrays.d.ts +10 -0
  247. package/dist/ir/type-converter/arrays.d.ts.map +1 -0
  248. package/dist/ir/type-converter/arrays.js +13 -0
  249. package/dist/ir/type-converter/arrays.js.map +1 -0
  250. package/dist/ir/type-converter/clr-type-resolver.d.ts +15 -0
  251. package/dist/ir/type-converter/clr-type-resolver.d.ts.map +1 -0
  252. package/dist/ir/type-converter/clr-type-resolver.js +120 -0
  253. package/dist/ir/type-converter/clr-type-resolver.js.map +1 -0
  254. package/dist/ir/type-converter/converter.d.ts +6 -0
  255. package/dist/ir/type-converter/converter.d.ts.map +1 -0
  256. package/dist/ir/type-converter/converter.js +6 -0
  257. package/dist/ir/type-converter/converter.js.map +1 -0
  258. package/dist/ir/type-converter/functions.d.ts +10 -0
  259. package/dist/ir/type-converter/functions.d.ts.map +1 -0
  260. package/dist/ir/type-converter/functions.js +15 -0
  261. package/dist/ir/type-converter/functions.js.map +1 -0
  262. package/dist/ir/type-converter/index.d.ts +7 -0
  263. package/dist/ir/type-converter/index.d.ts.map +1 -0
  264. package/{src/ir/type-converter/index.ts → dist/ir/type-converter/index.js} +2 -6
  265. package/dist/ir/type-converter/index.js.map +1 -0
  266. package/dist/ir/type-converter/inference.d.ts +20 -0
  267. package/dist/ir/type-converter/inference.d.ts.map +1 -0
  268. package/dist/ir/type-converter/inference.js +104 -0
  269. package/dist/ir/type-converter/inference.js.map +1 -0
  270. package/dist/ir/type-converter/literals.d.ts +10 -0
  271. package/dist/ir/type-converter/literals.d.ts.map +1 -0
  272. package/dist/ir/type-converter/literals.js +31 -0
  273. package/dist/ir/type-converter/literals.js.map +1 -0
  274. package/dist/ir/type-converter/objects.d.ts +16 -0
  275. package/dist/ir/type-converter/objects.d.ts.map +1 -0
  276. package/dist/ir/type-converter/objects.js +81 -0
  277. package/dist/ir/type-converter/objects.js.map +1 -0
  278. package/dist/ir/type-converter/orchestrator.d.ts +13 -0
  279. package/dist/ir/type-converter/orchestrator.d.ts.map +1 -0
  280. package/dist/ir/type-converter/orchestrator.js +59 -0
  281. package/dist/ir/type-converter/orchestrator.js.map +1 -0
  282. package/dist/ir/type-converter/patterns.d.ts +10 -0
  283. package/dist/ir/type-converter/patterns.d.ts.map +1 -0
  284. package/dist/ir/type-converter/patterns.js +66 -0
  285. package/dist/ir/type-converter/patterns.js.map +1 -0
  286. package/dist/ir/type-converter/primitives.d.ts +18 -0
  287. package/dist/ir/type-converter/primitives.d.ts.map +1 -0
  288. package/dist/ir/type-converter/primitives.js +47 -0
  289. package/dist/ir/type-converter/primitives.js.map +1 -0
  290. package/dist/ir/type-converter/references.d.ts +11 -0
  291. package/dist/ir/type-converter/references.d.ts.map +1 -0
  292. package/dist/ir/type-converter/references.js +51 -0
  293. package/dist/ir/type-converter/references.js.map +1 -0
  294. package/dist/ir/type-converter/unions-intersections.d.ts +14 -0
  295. package/dist/ir/type-converter/unions-intersections.d.ts.map +1 -0
  296. package/dist/ir/type-converter/unions-intersections.js +22 -0
  297. package/dist/ir/type-converter/unions-intersections.js.map +1 -0
  298. package/dist/ir/type-converter.d.ts +6 -0
  299. package/dist/ir/type-converter.d.ts.map +1 -0
  300. package/dist/ir/type-converter.js +6 -0
  301. package/dist/ir/type-converter.js.map +1 -0
  302. package/dist/ir/types/expressions.d.ts +164 -0
  303. package/dist/ir/types/expressions.d.ts.map +1 -0
  304. package/dist/ir/types/expressions.js +5 -0
  305. package/dist/ir/types/expressions.js.map +1 -0
  306. package/dist/ir/types/guards.d.ts +8 -0
  307. package/dist/ir/types/guards.d.ts.map +1 -0
  308. package/dist/ir/types/guards.js +31 -0
  309. package/dist/ir/types/guards.js.map +1 -0
  310. package/dist/ir/types/helpers.d.ts +65 -0
  311. package/dist/ir/types/helpers.d.ts.map +1 -0
  312. package/dist/ir/types/helpers.js +5 -0
  313. package/dist/ir/types/helpers.js.map +1 -0
  314. package/dist/ir/types/index.d.ts +11 -0
  315. package/dist/ir/types/index.d.ts.map +1 -0
  316. package/dist/ir/types/index.js +7 -0
  317. package/dist/ir/types/index.js.map +1 -0
  318. package/dist/ir/types/ir-types.d.ts +69 -0
  319. package/dist/ir/types/ir-types.d.ts.map +1 -0
  320. package/dist/ir/types/ir-types.js +5 -0
  321. package/dist/ir/types/ir-types.js.map +1 -0
  322. package/dist/ir/types/module.d.ts +56 -0
  323. package/dist/ir/types/module.d.ts.map +1 -0
  324. package/dist/ir/types/module.js +5 -0
  325. package/dist/ir/types/module.js.map +1 -0
  326. package/dist/ir/types/statements.d.ts +182 -0
  327. package/dist/ir/types/statements.d.ts.map +1 -0
  328. package/dist/ir/types/statements.js +5 -0
  329. package/dist/ir/types/statements.js.map +1 -0
  330. package/dist/ir/types.d.ts +7 -0
  331. package/dist/ir/types.d.ts.map +1 -0
  332. package/dist/ir/types.js +7 -0
  333. package/dist/ir/types.js.map +1 -0
  334. package/dist/metadata/bindings-loader.d.ts +41 -0
  335. package/dist/metadata/bindings-loader.d.ts.map +1 -0
  336. package/dist/metadata/bindings-loader.js +308 -0
  337. package/dist/metadata/bindings-loader.js.map +1 -0
  338. package/dist/metadata/bindings-loader.test.d.ts +5 -0
  339. package/dist/metadata/bindings-loader.test.d.ts.map +1 -0
  340. package/dist/metadata/bindings-loader.test.js +117 -0
  341. package/dist/metadata/bindings-loader.test.js.map +1 -0
  342. package/{src/metadata/index.ts → dist/metadata/index.d.ts} +2 -9
  343. package/dist/metadata/index.d.ts.map +1 -0
  344. package/dist/metadata/index.js +7 -0
  345. package/dist/metadata/index.js.map +1 -0
  346. package/dist/metadata/library-loader.d.ts +42 -0
  347. package/dist/metadata/library-loader.d.ts.map +1 -0
  348. package/dist/metadata/library-loader.js +126 -0
  349. package/dist/metadata/library-loader.js.map +1 -0
  350. package/dist/metadata/loader.d.ts +26 -0
  351. package/dist/metadata/loader.d.ts.map +1 -0
  352. package/dist/metadata/loader.js +333 -0
  353. package/dist/metadata/loader.js.map +1 -0
  354. package/dist/metadata/loader.test.d.ts +5 -0
  355. package/dist/metadata/loader.test.d.ts.map +1 -0
  356. package/dist/metadata/loader.test.js +119 -0
  357. package/dist/metadata/loader.test.js.map +1 -0
  358. package/dist/program/bindings.d.ts +111 -0
  359. package/dist/program/bindings.d.ts.map +1 -0
  360. package/dist/program/bindings.js +167 -0
  361. package/dist/program/bindings.js.map +1 -0
  362. package/dist/program/bindings.test.d.ts +5 -0
  363. package/dist/program/bindings.test.d.ts.map +1 -0
  364. package/dist/program/bindings.test.js +435 -0
  365. package/dist/program/bindings.test.js.map +1 -0
  366. package/dist/program/config.d.ts +9 -0
  367. package/dist/program/config.d.ts.map +1 -0
  368. package/dist/program/config.js +29 -0
  369. package/dist/program/config.js.map +1 -0
  370. package/dist/program/creation.d.ts +17 -0
  371. package/dist/program/creation.d.ts.map +1 -0
  372. package/dist/program/creation.js +180 -0
  373. package/dist/program/creation.js.map +1 -0
  374. package/dist/program/dependency-graph.d.ts +19 -0
  375. package/dist/program/dependency-graph.d.ts.map +1 -0
  376. package/dist/program/dependency-graph.js +166 -0
  377. package/dist/program/dependency-graph.js.map +1 -0
  378. package/dist/program/diagnostics.d.ts +23 -0
  379. package/dist/program/diagnostics.d.ts.map +1 -0
  380. package/dist/program/diagnostics.js +65 -0
  381. package/dist/program/diagnostics.js.map +1 -0
  382. package/{src/program/index.ts → dist/program/index.d.ts} +3 -10
  383. package/dist/program/index.d.ts.map +1 -0
  384. package/dist/program/index.js +11 -0
  385. package/dist/program/index.js.map +1 -0
  386. package/dist/program/metadata.d.ts +10 -0
  387. package/dist/program/metadata.d.ts.map +1 -0
  388. package/dist/program/metadata.js +56 -0
  389. package/dist/program/metadata.js.map +1 -0
  390. package/dist/program/queries.d.ts +10 -0
  391. package/dist/program/queries.d.ts.map +1 -0
  392. package/dist/program/queries.js +12 -0
  393. package/dist/program/queries.js.map +1 -0
  394. package/dist/program/types.d.ts +35 -0
  395. package/dist/program/types.d.ts.map +1 -0
  396. package/dist/program/types.js +5 -0
  397. package/dist/program/types.js.map +1 -0
  398. package/{src/program.ts → dist/program.d.ts} +2 -7
  399. package/dist/program.d.ts.map +1 -0
  400. package/dist/program.js +6 -0
  401. package/dist/program.js.map +1 -0
  402. package/dist/resolver/dotnet-import-resolver.d.ts +74 -0
  403. package/dist/resolver/dotnet-import-resolver.d.ts.map +1 -0
  404. package/dist/resolver/dotnet-import-resolver.js +183 -0
  405. package/dist/resolver/dotnet-import-resolver.js.map +1 -0
  406. package/dist/resolver/import-resolution.d.ts +20 -0
  407. package/dist/resolver/import-resolution.d.ts.map +1 -0
  408. package/dist/resolver/import-resolution.js +102 -0
  409. package/dist/resolver/import-resolution.js.map +1 -0
  410. package/dist/resolver/index.d.ts +10 -0
  411. package/dist/resolver/index.d.ts.map +1 -0
  412. package/dist/resolver/index.js +9 -0
  413. package/dist/resolver/index.js.map +1 -0
  414. package/dist/resolver/namespace.d.ts +20 -0
  415. package/dist/resolver/namespace.d.ts.map +1 -0
  416. package/dist/resolver/namespace.js +35 -0
  417. package/dist/resolver/namespace.js.map +1 -0
  418. package/dist/resolver/namespace.test.d.ts +2 -0
  419. package/dist/resolver/namespace.test.d.ts.map +1 -0
  420. package/dist/resolver/namespace.test.js +42 -0
  421. package/dist/resolver/namespace.test.js.map +1 -0
  422. package/dist/resolver/naming.d.ts +12 -0
  423. package/dist/resolver/naming.d.ts.map +1 -0
  424. package/dist/resolver/naming.js +30 -0
  425. package/dist/resolver/naming.js.map +1 -0
  426. package/dist/resolver/path-resolution.d.ts +8 -0
  427. package/dist/resolver/path-resolution.d.ts.map +1 -0
  428. package/dist/resolver/path-resolution.js +16 -0
  429. package/dist/resolver/path-resolution.js.map +1 -0
  430. package/dist/resolver/types.d.ts +13 -0
  431. package/dist/resolver/types.d.ts.map +1 -0
  432. package/dist/resolver/types.js +5 -0
  433. package/dist/resolver/types.js.map +1 -0
  434. package/dist/resolver.d.ts +7 -0
  435. package/dist/resolver.d.ts.map +1 -0
  436. package/dist/resolver.js +6 -0
  437. package/dist/resolver.js.map +1 -0
  438. package/dist/resolver.test.d.ts +5 -0
  439. package/dist/resolver.test.d.ts.map +1 -0
  440. package/dist/resolver.test.js +93 -0
  441. package/dist/resolver.test.js.map +1 -0
  442. package/dist/symbol-table/builder.d.ts +10 -0
  443. package/dist/symbol-table/builder.d.ts.map +1 -0
  444. package/dist/symbol-table/builder.js +105 -0
  445. package/dist/symbol-table/builder.js.map +1 -0
  446. package/dist/symbol-table/creation.d.ts +13 -0
  447. package/dist/symbol-table/creation.d.ts.map +1 -0
  448. package/dist/symbol-table/creation.js +36 -0
  449. package/dist/symbol-table/creation.js.map +1 -0
  450. package/dist/symbol-table/helpers.d.ts +9 -0
  451. package/dist/symbol-table/helpers.d.ts.map +1 -0
  452. package/dist/symbol-table/helpers.js +15 -0
  453. package/dist/symbol-table/helpers.js.map +1 -0
  454. package/{src/symbol-table/index.ts → dist/symbol-table/index.d.ts} +2 -6
  455. package/dist/symbol-table/index.d.ts.map +1 -0
  456. package/dist/symbol-table/index.js +8 -0
  457. package/dist/symbol-table/index.js.map +1 -0
  458. package/dist/symbol-table/queries.d.ts +17 -0
  459. package/dist/symbol-table/queries.d.ts.map +1 -0
  460. package/dist/symbol-table/queries.js +27 -0
  461. package/dist/symbol-table/queries.js.map +1 -0
  462. package/dist/symbol-table/types.d.ts +18 -0
  463. package/dist/symbol-table/types.d.ts.map +1 -0
  464. package/dist/symbol-table/types.js +5 -0
  465. package/dist/symbol-table/types.js.map +1 -0
  466. package/{src/symbol-table.ts → dist/symbol-table.d.ts} +2 -9
  467. package/dist/symbol-table.d.ts.map +1 -0
  468. package/dist/symbol-table.js +6 -0
  469. package/dist/symbol-table.js.map +1 -0
  470. package/dist/types/bindings.d.ts +153 -0
  471. package/dist/types/bindings.d.ts.map +1 -0
  472. package/dist/types/bindings.js +14 -0
  473. package/dist/types/bindings.js.map +1 -0
  474. package/dist/types/diagnostic.d.ts +30 -0
  475. package/dist/types/diagnostic.d.ts.map +1 -0
  476. package/dist/types/diagnostic.js +37 -0
  477. package/dist/types/diagnostic.js.map +1 -0
  478. package/dist/types/diagnostic.test.d.ts +5 -0
  479. package/dist/types/diagnostic.test.d.ts.map +1 -0
  480. package/dist/types/diagnostic.test.js +94 -0
  481. package/dist/types/diagnostic.test.js.map +1 -0
  482. package/dist/types/explicit-views.d.ts +97 -0
  483. package/dist/types/explicit-views.d.ts.map +1 -0
  484. package/dist/types/explicit-views.js +163 -0
  485. package/dist/types/explicit-views.js.map +1 -0
  486. package/dist/types/explicit-views.test.d.ts +5 -0
  487. package/dist/types/explicit-views.test.d.ts.map +1 -0
  488. package/dist/types/explicit-views.test.js +67 -0
  489. package/dist/types/explicit-views.test.js.map +1 -0
  490. package/dist/types/metadata.d.ts +196 -0
  491. package/dist/types/metadata.d.ts.map +1 -0
  492. package/dist/types/metadata.js +10 -0
  493. package/dist/types/metadata.js.map +1 -0
  494. package/dist/types/module.d.ts +51 -0
  495. package/dist/types/module.d.ts.map +1 -0
  496. package/dist/types/module.js +28 -0
  497. package/dist/types/module.js.map +1 -0
  498. package/dist/types/nested-types.d.ts +111 -0
  499. package/dist/types/nested-types.d.ts.map +1 -0
  500. package/dist/types/nested-types.js +176 -0
  501. package/dist/types/nested-types.js.map +1 -0
  502. package/dist/types/nested-types.test.d.ts +5 -0
  503. package/dist/types/nested-types.test.d.ts.map +1 -0
  504. package/dist/types/nested-types.test.js +135 -0
  505. package/dist/types/nested-types.test.js.map +1 -0
  506. package/dist/types/parameter-modifiers.d.ts +55 -0
  507. package/dist/types/parameter-modifiers.d.ts.map +1 -0
  508. package/dist/types/parameter-modifiers.js +144 -0
  509. package/dist/types/parameter-modifiers.js.map +1 -0
  510. package/dist/types/ref-parameters.d.ts +123 -0
  511. package/dist/types/ref-parameters.d.ts.map +1 -0
  512. package/dist/types/ref-parameters.js +203 -0
  513. package/dist/types/ref-parameters.js.map +1 -0
  514. package/dist/types/ref-parameters.test.d.ts +5 -0
  515. package/dist/types/ref-parameters.test.d.ts.map +1 -0
  516. package/dist/types/ref-parameters.test.js +147 -0
  517. package/dist/types/ref-parameters.test.js.map +1 -0
  518. package/dist/types/result.d.ts +26 -0
  519. package/dist/types/result.d.ts.map +1 -0
  520. package/dist/types/result.js +19 -0
  521. package/dist/types/result.js.map +1 -0
  522. package/dist/types/result.test.d.ts +5 -0
  523. package/dist/types/result.test.d.ts.map +1 -0
  524. package/dist/types/result.test.js +121 -0
  525. package/dist/types/result.test.js.map +1 -0
  526. package/dist/types/support-types.d.ts +103 -0
  527. package/dist/types/support-types.d.ts.map +1 -0
  528. package/dist/types/support-types.js +220 -0
  529. package/dist/types/support-types.js.map +1 -0
  530. package/dist/types/support-types.test.d.ts +5 -0
  531. package/dist/types/support-types.test.d.ts.map +1 -0
  532. package/dist/types/support-types.test.js +50 -0
  533. package/dist/types/support-types.test.js.map +1 -0
  534. package/dist/types/test-debug.d.ts.map +1 -0
  535. package/dist/types/test-debug.js.map +1 -0
  536. package/dist/types/test-harness.d.ts +34 -0
  537. package/dist/types/test-harness.d.ts.map +1 -0
  538. package/dist/types/test-harness.js +127 -0
  539. package/dist/types/test-harness.js.map +1 -0
  540. package/dist/validation/aot-safety.d.ts +24 -0
  541. package/dist/validation/aot-safety.d.ts.map +1 -0
  542. package/dist/validation/aot-safety.js +114 -0
  543. package/dist/validation/aot-safety.js.map +1 -0
  544. package/dist/validation/exports.d.ts +11 -0
  545. package/dist/validation/exports.d.ts.map +1 -0
  546. package/dist/validation/exports.js +56 -0
  547. package/dist/validation/exports.js.map +1 -0
  548. package/dist/validation/features.d.ts +11 -0
  549. package/dist/validation/features.d.ts.map +1 -0
  550. package/dist/validation/features.js +36 -0
  551. package/dist/validation/features.js.map +1 -0
  552. package/dist/validation/generics.d.ts +11 -0
  553. package/dist/validation/generics.d.ts.map +1 -0
  554. package/dist/validation/generics.js +31 -0
  555. package/dist/validation/generics.js.map +1 -0
  556. package/dist/validation/helpers.d.ts +15 -0
  557. package/dist/validation/helpers.d.ts.map +1 -0
  558. package/dist/validation/helpers.js +18 -0
  559. package/dist/validation/helpers.js.map +1 -0
  560. package/dist/validation/imports.d.ts +15 -0
  561. package/dist/validation/imports.d.ts.map +1 -0
  562. package/dist/validation/imports.js +42 -0
  563. package/dist/validation/imports.js.map +1 -0
  564. package/dist/validation/index.d.ts +11 -0
  565. package/dist/validation/index.d.ts.map +1 -0
  566. package/{src/validation/index.ts → dist/validation/index.js} +1 -1
  567. package/dist/validation/index.js.map +1 -0
  568. package/dist/validation/orchestrator.d.ts +15 -0
  569. package/dist/validation/orchestrator.d.ts.map +1 -0
  570. package/dist/validation/orchestrator.js +30 -0
  571. package/dist/validation/orchestrator.js.map +1 -0
  572. package/dist/validation/static-safety.d.ts +23 -0
  573. package/dist/validation/static-safety.d.ts.map +1 -0
  574. package/dist/validation/static-safety.js +165 -0
  575. package/dist/validation/static-safety.js.map +1 -0
  576. package/dist/validator.d.ts +6 -0
  577. package/dist/validator.d.ts.map +1 -0
  578. package/dist/validator.js +6 -0
  579. package/dist/validator.js.map +1 -0
  580. package/dist/validator.test.d.ts +11 -0
  581. package/dist/validator.test.d.ts.map +1 -0
  582. package/dist/validator.test.js +340 -0
  583. package/dist/validator.test.js.map +1 -0
  584. package/package.json +4 -1
  585. package/src/dotnet-metadata.ts +0 -121
  586. package/src/graph/builder.ts +0 -81
  587. package/src/graph/circular.ts +0 -58
  588. package/src/graph/extraction/exports.ts +0 -55
  589. package/src/graph/extraction/imports.ts +0 -81
  590. package/src/graph/extraction/orchestrator.ts +0 -99
  591. package/src/graph/helpers.ts +0 -51
  592. package/src/index.ts +0 -80
  593. package/src/ir/binding-resolution.test.ts +0 -585
  594. package/src/ir/builder/exports.ts +0 -78
  595. package/src/ir/builder/helpers.ts +0 -27
  596. package/src/ir/builder/imports.ts +0 -153
  597. package/src/ir/builder/orchestrator.ts +0 -178
  598. package/src/ir/builder/statements.ts +0 -55
  599. package/src/ir/builder/types.ts +0 -8
  600. package/src/ir/builder/validation.ts +0 -129
  601. package/src/ir/builder.test.ts +0 -581
  602. package/src/ir/converters/expressions/access.ts +0 -99
  603. package/src/ir/converters/expressions/calls.ts +0 -137
  604. package/src/ir/converters/expressions/collections.ts +0 -84
  605. package/src/ir/converters/expressions/functions.ts +0 -62
  606. package/src/ir/converters/expressions/helpers.ts +0 -264
  607. package/src/ir/converters/expressions/index.ts +0 -43
  608. package/src/ir/converters/expressions/literals.ts +0 -22
  609. package/src/ir/converters/expressions/operators.ts +0 -147
  610. package/src/ir/converters/expressions/other.ts +0 -60
  611. package/src/ir/converters/statements/control/blocks.ts +0 -22
  612. package/src/ir/converters/statements/control/conditionals.ts +0 -67
  613. package/src/ir/converters/statements/control/exceptions.ts +0 -43
  614. package/src/ir/converters/statements/control/index.ts +0 -17
  615. package/src/ir/converters/statements/control/loops.ts +0 -99
  616. package/src/ir/converters/statements/control.ts +0 -17
  617. package/src/ir/converters/statements/declarations/classes/constructors.ts +0 -120
  618. package/src/ir/converters/statements/declarations/classes/methods.ts +0 -61
  619. package/src/ir/converters/statements/declarations/classes/orchestrator.ts +0 -166
  620. package/src/ir/converters/statements/declarations/classes/override-detection.ts +0 -116
  621. package/src/ir/converters/statements/declarations/classes/properties.ts +0 -63
  622. package/src/ir/converters/statements/declarations/enums.ts +0 -29
  623. package/src/ir/converters/statements/declarations/functions.ts +0 -39
  624. package/src/ir/converters/statements/declarations/interfaces.ts +0 -131
  625. package/src/ir/converters/statements/declarations/type-aliases.ts +0 -25
  626. package/src/ir/converters/statements/declarations/variables.ts +0 -60
  627. package/src/ir/converters/statements/declarations.ts +0 -16
  628. package/src/ir/converters/statements/helpers.ts +0 -174
  629. package/src/ir/converters/statements/index.ts +0 -40
  630. package/src/ir/expression-converter.ts +0 -207
  631. package/src/ir/generic-validator.ts +0 -100
  632. package/src/ir/hierarchical-bindings-e2e.test.ts +0 -163
  633. package/src/ir/statement-converter.ts +0 -128
  634. package/src/ir/type-converter/arrays.ts +0 -20
  635. package/src/ir/type-converter/converter.ts +0 -10
  636. package/src/ir/type-converter/functions.ts +0 -22
  637. package/src/ir/type-converter/inference.ts +0 -122
  638. package/src/ir/type-converter/literals.ts +0 -40
  639. package/src/ir/type-converter/objects.ts +0 -107
  640. package/src/ir/type-converter/orchestrator.ts +0 -85
  641. package/src/ir/type-converter/patterns.ts +0 -73
  642. package/src/ir/type-converter/primitives.ts +0 -57
  643. package/src/ir/type-converter/references.ts +0 -64
  644. package/src/ir/type-converter/unions-intersections.ts +0 -34
  645. package/src/ir/type-converter.ts +0 -13
  646. package/src/ir/types/expressions.ts +0 -215
  647. package/src/ir/types/guards.ts +0 -39
  648. package/src/ir/types/helpers.ts +0 -135
  649. package/src/ir/types/index.ts +0 -108
  650. package/src/ir/types/ir-types.ts +0 -96
  651. package/src/ir/types/module.ts +0 -57
  652. package/src/ir/types/statements.ts +0 -238
  653. package/src/ir/types.ts +0 -97
  654. package/src/metadata/bindings-loader.test.ts +0 -144
  655. package/src/metadata/bindings-loader.ts +0 -357
  656. package/src/metadata/library-loader.ts +0 -153
  657. package/src/metadata/loader.test.ts +0 -156
  658. package/src/metadata/loader.ts +0 -382
  659. package/src/program/bindings.test.ts +0 -512
  660. package/src/program/bindings.ts +0 -253
  661. package/src/program/config.ts +0 -30
  662. package/src/program/creation.ts +0 -249
  663. package/src/program/dependency-graph.ts +0 -245
  664. package/src/program/diagnostics.ts +0 -103
  665. package/src/program/metadata.ts +0 -68
  666. package/src/program/queries.ts +0 -18
  667. package/src/program/types.ts +0 -38
  668. package/src/resolver/dotnet-import-resolver.ts +0 -226
  669. package/src/resolver/import-resolution.ts +0 -177
  670. package/src/resolver/index.ts +0 -18
  671. package/src/resolver/namespace.test.ts +0 -86
  672. package/src/resolver/namespace.ts +0 -42
  673. package/src/resolver/naming.ts +0 -38
  674. package/src/resolver/path-resolution.ts +0 -22
  675. package/src/resolver/types.ts +0 -15
  676. package/src/resolver.test.ts +0 -155
  677. package/src/resolver.ts +0 -14
  678. package/src/symbol-table/builder.ts +0 -114
  679. package/src/symbol-table/creation.ts +0 -42
  680. package/src/symbol-table/helpers.ts +0 -18
  681. package/src/symbol-table/queries.ts +0 -42
  682. package/src/symbol-table/types.ts +0 -28
  683. package/src/types/bindings.ts +0 -172
  684. package/src/types/diagnostic.test.ts +0 -164
  685. package/src/types/diagnostic.ts +0 -153
  686. package/src/types/explicit-views.test.ts +0 -113
  687. package/src/types/explicit-views.ts +0 -218
  688. package/src/types/metadata.ts +0 -229
  689. package/src/types/module.ts +0 -99
  690. package/src/types/nested-types.test.ts +0 -194
  691. package/src/types/nested-types.ts +0 -215
  692. package/src/types/parameter-modifiers.ts +0 -173
  693. package/src/types/ref-parameters.test.ts +0 -192
  694. package/src/types/ref-parameters.ts +0 -268
  695. package/src/types/result.test.ts +0 -157
  696. package/src/types/result.ts +0 -48
  697. package/src/types/support-types.test.ts +0 -81
  698. package/src/types/support-types.ts +0 -288
  699. package/src/types/test-harness.ts +0 -180
  700. package/src/validation/exports.ts +0 -98
  701. package/src/validation/features.ts +0 -89
  702. package/src/validation/generics.ts +0 -40
  703. package/src/validation/helpers.ts +0 -31
  704. package/src/validation/imports.ts +0 -97
  705. package/src/validation/orchestrator.ts +0 -51
  706. package/src/validation/static-safety.ts +0 -267
  707. package/src/validator.test.ts +0 -468
  708. package/src/validator.ts +0 -15
  709. package/tsconfig.json +0 -13
@@ -1,42 +0,0 @@
1
- /**
2
- * Symbol table creation and modification
3
- */
4
-
5
- import { Symbol, SymbolTable } from "./types.js";
6
-
7
- /**
8
- * Create an empty symbol table
9
- */
10
- export const createSymbolTable = (): SymbolTable => ({
11
- symbols: new Map(),
12
- moduleSymbols: new Map(),
13
- exportedSymbols: new Map(),
14
- });
15
-
16
- /**
17
- * Add a symbol to the table (immutable)
18
- */
19
- export const addSymbol = (table: SymbolTable, symbol: Symbol): SymbolTable => {
20
- // Add to symbols map (by name)
21
- const symbolsByName = table.symbols.get(symbol.name) ?? [];
22
- const newSymbolsByName = new Map(table.symbols);
23
- newSymbolsByName.set(symbol.name, [...symbolsByName, symbol]);
24
-
25
- // Add to module symbols map
26
- const moduleSymbols = table.moduleSymbols.get(symbol.module) ?? [];
27
- const newModuleSymbols = new Map(table.moduleSymbols);
28
- newModuleSymbols.set(symbol.module, [...moduleSymbols, symbol]);
29
-
30
- // Add to exported symbols if exported
31
- let newExportedSymbols = new Map(table.exportedSymbols);
32
- if (symbol.isExported) {
33
- const exportedSymbols = table.exportedSymbols.get(symbol.module) ?? [];
34
- newExportedSymbols.set(symbol.module, [...exportedSymbols, symbol]);
35
- }
36
-
37
- return {
38
- symbols: newSymbolsByName,
39
- moduleSymbols: newModuleSymbols,
40
- exportedSymbols: newExportedSymbols,
41
- };
42
- };
@@ -1,18 +0,0 @@
1
- /**
2
- * Symbol table helper functions
3
- */
4
-
5
- import * as ts from "typescript";
6
-
7
- /**
8
- * Check if a node has an export modifier
9
- */
10
- export const hasExportModifier = (node: ts.Node): boolean => {
11
- if (!ts.canHaveModifiers(node)) {
12
- return false;
13
- }
14
- const modifiers = ts.getModifiers(node);
15
- return (
16
- modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) ?? false
17
- );
18
- };
@@ -1,42 +0,0 @@
1
- /**
2
- * Symbol table query functions
3
- */
4
-
5
- import { Symbol, SymbolTable } from "./types.js";
6
-
7
- /**
8
- * Find symbols by name, optionally filtered by module
9
- */
10
- export const findSymbol = (
11
- table: SymbolTable,
12
- name: string,
13
- module?: string
14
- ): readonly Symbol[] => {
15
- if (module) {
16
- const moduleSymbols = table.moduleSymbols.get(module) ?? [];
17
- return moduleSymbols.filter((s) => s.name === name);
18
- }
19
- return table.symbols.get(name) ?? [];
20
- };
21
-
22
- /**
23
- * Get all exported symbols from a module
24
- */
25
- export const getExportedSymbols = (
26
- table: SymbolTable,
27
- module: string
28
- ): readonly Symbol[] => {
29
- return table.exportedSymbols.get(module) ?? [];
30
- };
31
-
32
- /**
33
- * Check if a module exports a symbol with the given name
34
- */
35
- export const hasExportedSymbol = (
36
- table: SymbolTable,
37
- module: string,
38
- name: string
39
- ): boolean => {
40
- const exported = getExportedSymbols(table, module);
41
- return exported.some((s) => s.name === name);
42
- };
@@ -1,28 +0,0 @@
1
- /**
2
- * Symbol table type definitions
3
- */
4
-
5
- import * as ts from "typescript";
6
-
7
- export type SymbolKind =
8
- | "class"
9
- | "interface"
10
- | "function"
11
- | "variable"
12
- | "type"
13
- | "enum"
14
- | "namespace";
15
-
16
- export type Symbol = {
17
- readonly name: string;
18
- readonly kind: SymbolKind;
19
- readonly isExported: boolean;
20
- readonly module: string; // File path
21
- readonly tsSymbol?: ts.Symbol; // Optional reference to TypeScript symbol
22
- };
23
-
24
- export type SymbolTable = {
25
- readonly symbols: ReadonlyMap<string, readonly Symbol[]>; // Name to symbols
26
- readonly moduleSymbols: ReadonlyMap<string, readonly Symbol[]>; // Module path to symbols
27
- readonly exportedSymbols: ReadonlyMap<string, readonly Symbol[]>; // Module path to exported symbols
28
- };
@@ -1,172 +0,0 @@
1
- /**
2
- * Type definitions for .NET bindings.json files generated by tsbindgen.
3
- *
4
- * These types represent runtime binding information used for reflection-based dispatch.
5
- * All property names use camelCase (JavaScript convention).
6
- *
7
- * The bindings format uses a dual-version structure:
8
- * - V1 Definitions: Full method signatures for reference
9
- * - V2 Exposures: Lightweight binding info for runtime dispatch
10
- *
11
- * @see spec/bindings.md for complete schema documentation
12
- */
13
-
14
- /**
15
- * Root bindings file structure.
16
- * Represents a single namespace with all its type bindings.
17
- */
18
- export type BindingsFile = {
19
- readonly namespace: string;
20
- readonly types: TypeBinding[];
21
- };
22
-
23
- /**
24
- * Complete binding information for a CLR type.
25
- * Includes both V1 definitions and V2 exposures.
26
- */
27
- export type TypeBinding = {
28
- readonly clrName: string;
29
- readonly tsEmitName: string;
30
- readonly assemblyName: string;
31
- readonly metadataToken: number;
32
- readonly methods?: MethodBinding[]; // V1: Full signatures
33
- readonly properties?: PropertyBinding[]; // V1: Property info
34
- readonly fields?: FieldBinding[]; // V1: Field info
35
- readonly events?: EventBinding[]; // V1: Event info
36
- readonly exposedMethods?: ExposedMethodBinding[]; // V2: Runtime dispatch
37
- readonly exposedProperties?: ExposedPropertyBinding[]; // V2: Runtime access
38
- readonly exposedFields?: ExposedFieldBinding[]; // V2: Runtime access
39
- readonly exposedEvents?: ExposedEventBinding[]; // V2: Runtime access
40
- };
41
-
42
- /**
43
- * V1 Definition: Complete method signature.
44
- * Used for type checking and reference.
45
- */
46
- export type MethodBinding = {
47
- readonly name: string;
48
- readonly clrName: string;
49
- readonly tsEmitName: string;
50
- readonly isStatic: boolean;
51
- readonly arity: number;
52
- readonly parameters: ParameterBinding[];
53
- readonly returnType: string;
54
- readonly metadataToken: number;
55
- };
56
-
57
- /**
58
- * V1 Definition: Property information.
59
- */
60
- export type PropertyBinding = {
61
- readonly name: string;
62
- readonly clrName: string;
63
- readonly tsEmitName: string;
64
- readonly isStatic: boolean;
65
- readonly type: string;
66
- readonly hasGetter: boolean;
67
- readonly hasSetter: boolean;
68
- readonly getterToken?: number;
69
- readonly setterToken?: number;
70
- };
71
-
72
- /**
73
- * V1 Definition: Field information.
74
- */
75
- export type FieldBinding = {
76
- readonly name: string;
77
- readonly clrName: string;
78
- readonly tsEmitName: string;
79
- readonly isStatic: boolean;
80
- readonly type: string;
81
- readonly metadataToken: number;
82
- };
83
-
84
- /**
85
- * V1 Definition: Event information.
86
- */
87
- export type EventBinding = {
88
- readonly name: string;
89
- readonly clrName: string;
90
- readonly tsEmitName: string;
91
- readonly isStatic: boolean;
92
- readonly type: string;
93
- readonly adderToken: number;
94
- readonly removerToken: number;
95
- };
96
-
97
- /**
98
- * Parameter binding information.
99
- */
100
- export type ParameterBinding = {
101
- readonly name: string;
102
- readonly type: string;
103
- readonly isRef: boolean;
104
- readonly isOut: boolean;
105
- readonly isIn?: boolean;
106
- readonly isParams: boolean;
107
- };
108
-
109
- /**
110
- * V2 Exposure: Lightweight method binding for runtime dispatch.
111
- * Optimized format with minimal data for fast lookups.
112
- */
113
- export type ExposedMethodBinding = {
114
- readonly tsEmitName: string;
115
- readonly isStatic: boolean;
116
- readonly arity: number;
117
- readonly overloads: MethodOverloadBinding[];
118
- };
119
-
120
- /**
121
- * Method overload binding.
122
- * One entry per unique parameter count.
123
- */
124
- export type MethodOverloadBinding = {
125
- readonly parameterCount: number;
126
- readonly metadataToken: number;
127
- };
128
-
129
- /**
130
- * V2 Exposure: Lightweight property binding for runtime access.
131
- */
132
- export type ExposedPropertyBinding = {
133
- readonly tsEmitName: string;
134
- readonly isStatic: boolean;
135
- readonly getterToken?: number;
136
- readonly setterToken?: number;
137
- };
138
-
139
- /**
140
- * V2 Exposure: Lightweight field binding for runtime access.
141
- */
142
- export type ExposedFieldBinding = {
143
- readonly tsEmitName: string;
144
- readonly isStatic: boolean;
145
- readonly metadataToken: number;
146
- };
147
-
148
- /**
149
- * V2 Exposure: Lightweight event binding for runtime access.
150
- */
151
- export type ExposedEventBinding = {
152
- readonly tsEmitName: string;
153
- readonly isStatic: boolean;
154
- readonly adderToken: number;
155
- readonly removerToken: number;
156
- };
157
-
158
- /**
159
- * Helper type: Extract V1 definitions from a type binding.
160
- */
161
- export type V1Definitions = Pick<
162
- TypeBinding,
163
- "methods" | "properties" | "fields" | "events"
164
- >;
165
-
166
- /**
167
- * Helper type: Extract V2 exposures from a type binding.
168
- */
169
- export type V2Exposures = Pick<
170
- TypeBinding,
171
- "exposedMethods" | "exposedProperties" | "exposedFields" | "exposedEvents"
172
- >;
@@ -1,164 +0,0 @@
1
- /**
2
- * Tests for diagnostic types
3
- */
4
-
5
- import { describe, it } from "mocha";
6
- import { expect } from "chai";
7
- import {
8
- createDiagnostic,
9
- formatDiagnostic,
10
- createDiagnosticsCollector,
11
- addDiagnostic,
12
- mergeDiagnostics,
13
- isError,
14
- } from "./diagnostic.js";
15
-
16
- describe("Diagnostics", () => {
17
- describe("createDiagnostic", () => {
18
- it("should create a diagnostic with all fields", () => {
19
- const diagnostic = createDiagnostic(
20
- "TSN1001",
21
- "error",
22
- "Test error",
23
- {
24
- file: "test.ts",
25
- line: 10,
26
- column: 5,
27
- length: 10,
28
- },
29
- "Try this instead",
30
- []
31
- );
32
-
33
- expect(diagnostic.code).to.equal("TSN1001");
34
- expect(diagnostic.severity).to.equal("error");
35
- expect(diagnostic.message).to.equal("Test error");
36
- expect(diagnostic.location?.file).to.equal("test.ts");
37
- expect(diagnostic.hint).to.equal("Try this instead");
38
- });
39
-
40
- it("should create a diagnostic without optional fields", () => {
41
- const diagnostic = createDiagnostic("TSN1002", "warning", "Test warning");
42
-
43
- expect(diagnostic.code).to.equal("TSN1002");
44
- expect(diagnostic.severity).to.equal("warning");
45
- expect(diagnostic.location).to.equal(undefined);
46
- expect(diagnostic.hint).to.equal(undefined);
47
- });
48
- });
49
-
50
- describe("formatDiagnostic", () => {
51
- it("should format diagnostic with location", () => {
52
- const diagnostic = createDiagnostic(
53
- "TSN1001",
54
- "error",
55
- "Missing .ts extension",
56
- {
57
- file: "/src/index.ts",
58
- line: 5,
59
- column: 10,
60
- length: 15,
61
- }
62
- );
63
-
64
- const formatted = formatDiagnostic(diagnostic);
65
- expect(formatted).to.equal(
66
- "/src/index.ts:5:10 error TSN1001: Missing .ts extension"
67
- );
68
- });
69
-
70
- it("should format diagnostic without location", () => {
71
- const diagnostic = createDiagnostic(
72
- "TSN2001",
73
- "warning",
74
- "Generic warning"
75
- );
76
-
77
- const formatted = formatDiagnostic(diagnostic);
78
- expect(formatted).to.equal("warning TSN2001: Generic warning");
79
- });
80
-
81
- it("should include hint if present", () => {
82
- const diagnostic = createDiagnostic(
83
- "TSN1001",
84
- "error",
85
- "Missing extension",
86
- undefined,
87
- "Add .ts extension"
88
- );
89
-
90
- const formatted = formatDiagnostic(diagnostic);
91
- expect(formatted).to.include("Hint: Add .ts extension");
92
- });
93
- });
94
-
95
- describe("DiagnosticsCollector", () => {
96
- it("should start with empty diagnostics", () => {
97
- const collector = createDiagnosticsCollector();
98
- expect(collector.diagnostics).to.have.length(0);
99
- expect(collector.hasErrors).to.equal(false);
100
- });
101
-
102
- it("should add diagnostics immutably", () => {
103
- const collector1 = createDiagnosticsCollector();
104
- const diagnostic = createDiagnostic("TSN1001", "error", "Test");
105
-
106
- const collector2 = addDiagnostic(collector1, diagnostic);
107
-
108
- expect(collector1.diagnostics).to.have.length(0);
109
- expect(collector2.diagnostics).to.have.length(1);
110
- expect(collector2.hasErrors).to.equal(true);
111
- });
112
-
113
- it("should track hasErrors correctly", () => {
114
- let collector = createDiagnosticsCollector();
115
-
116
- collector = addDiagnostic(
117
- collector,
118
- createDiagnostic("TSN1001", "warning", "Warning")
119
- );
120
- expect(collector.hasErrors).to.equal(false);
121
-
122
- collector = addDiagnostic(
123
- collector,
124
- createDiagnostic("TSN1002", "error", "Error")
125
- );
126
- expect(collector.hasErrors).to.equal(true);
127
-
128
- collector = addDiagnostic(
129
- collector,
130
- createDiagnostic("TSN1003", "info", "Info")
131
- );
132
- expect(collector.hasErrors).to.equal(true); // Still has errors
133
- });
134
-
135
- it("should merge collectors", () => {
136
- const collector1 = addDiagnostic(
137
- createDiagnosticsCollector(),
138
- createDiagnostic("TSN1001", "error", "Error 1")
139
- );
140
-
141
- const collector2 = addDiagnostic(
142
- createDiagnosticsCollector(),
143
- createDiagnostic("TSN1002", "warning", "Warning 1")
144
- );
145
-
146
- const merged = mergeDiagnostics(collector1, collector2);
147
-
148
- expect(merged.diagnostics).to.have.length(2);
149
- expect(merged.hasErrors).to.equal(true);
150
- });
151
- });
152
-
153
- describe("isError", () => {
154
- it("should identify error diagnostics", () => {
155
- const error = createDiagnostic("TSN1001", "error", "Test");
156
- const warning = createDiagnostic("TSN1002", "warning", "Test");
157
- const info = createDiagnostic("TSN1003", "info", "Test");
158
-
159
- expect(isError(error)).to.equal(true);
160
- expect(isError(warning)).to.equal(false);
161
- expect(isError(info)).to.equal(false);
162
- });
163
- });
164
- });
@@ -1,153 +0,0 @@
1
- /**
2
- * Diagnostic types for Tsonic compiler
3
- */
4
-
5
- export type DiagnosticSeverity = "error" | "warning" | "info";
6
-
7
- export type DiagnosticCode =
8
- | "TSN1001" // Local import missing .ts extension
9
- | "TSN1002" // Circular dependency detected
10
- | "TSN1003" // Case mismatch in import path
11
- | "TSN1004" // Module not found
12
- | "TSN1005" // Conflicting exports
13
- | "TSN1006" // Invalid namespace
14
- | "TSN2001" // Unsupported TypeScript feature
15
- | "TSN2002" // Invalid type mapping
16
- | "TSN2003" // File name conflicts with exported member name
17
- | "TSN3001" // C# reserved keyword used
18
- | "TSN3002" // Invalid C# identifier
19
- | "TSN3011" // Promise chaining (.then/.catch/.finally) not supported
20
- | "TSN4001" // .NET interop error
21
- | "TSN4002" // Missing .NET type declaration
22
- | "TSN5001" // NativeAOT limitation
23
- | "TSN5002" // Runtime implementation missing
24
- | "TSN6001" // Internal compiler error
25
- | "TSN7101" // Recursive mapped types not supported
26
- | "TSN7102" // Conditional types using infer not supported
27
- | "TSN7103" // `this` typing not supported
28
- | "TSN7104" // Generic constructor constraints with rest parameters not supported
29
- | "TSN7105" // Cannot determine required type specialisations
30
- | "TSN7201" // Recursive structural alias not supported
31
- | "TSN7202" // Conditional alias cannot be resolved
32
- | "TSN7203" // Symbol keys not supported
33
- | "TSN7204" // Variadic generic interface not supported
34
- | "TSN7301" // Class cannot implement nominalized interface
35
- // Static/AOT safety errors (TSN7401-TSN7499)
36
- | "TSN7401" // 'any' type not supported - requires explicit type
37
- | "TSN7403" // Object literal requires contextual nominal type
38
- | "TSN7405" // Untyped lambda parameter - requires explicit type annotation
39
- | "TSN7413" // Dictionary key must be string type
40
- // Metadata loading errors (TSN9001-TSN9018)
41
- | "TSN9001" // Metadata file not found
42
- | "TSN9002" // Failed to read metadata file
43
- | "TSN9003" // Invalid JSON in metadata file
44
- | "TSN9004" // Metadata file must be an object
45
- | "TSN9005" // Missing or invalid 'namespace' field
46
- | "TSN9006" // Missing or invalid 'contributingAssemblies' field
47
- | "TSN9007" // All 'contributingAssemblies' must be strings
48
- | "TSN9008" // Missing or invalid 'types' field
49
- | "TSN9009" // Invalid type: must be an object
50
- | "TSN9010" // Invalid type: missing or invalid field
51
- | "TSN9011" // Invalid type: 'kind' must be one of ...
52
- | "TSN9012" // Invalid type: 'accessibility' must be one of ...
53
- | "TSN9013" // Invalid type: field must be a boolean
54
- | "TSN9014" // Invalid type: 'arity' must be a non-negative number
55
- | "TSN9015" // Invalid type: field must be an array
56
- | "TSN9016" // Metadata directory not found
57
- | "TSN9017" // Not a directory
58
- | "TSN9018" // No .metadata.json files found
59
- // Bindings loading errors (TSN9101-TSN9114)
60
- | "TSN9101" // Bindings file not found
61
- | "TSN9102" // Failed to read bindings file
62
- | "TSN9103" // Invalid JSON in bindings file
63
- | "TSN9104" // Bindings file must be an object
64
- | "TSN9105" // Missing or invalid 'namespace' field
65
- | "TSN9106" // Missing or invalid 'types' field
66
- | "TSN9107" // Invalid type binding: must be an object
67
- | "TSN9108" // Invalid type binding: missing or invalid field
68
- | "TSN9109" // Invalid type binding: 'metadataToken' must be a number
69
- | "TSN9110" // Invalid type binding: V1 field must be an array if present
70
- | "TSN9111" // Invalid type binding: V2 field must be an array if present
71
- | "TSN9112" // Bindings directory not found
72
- | "TSN9113" // Not a directory
73
- | "TSN9114"; // No .bindings.json files found
74
-
75
- export type SourceLocation = {
76
- readonly file: string;
77
- readonly line: number;
78
- readonly column: number;
79
- readonly length: number;
80
- };
81
-
82
- export type Diagnostic = {
83
- readonly code: DiagnosticCode;
84
- readonly severity: DiagnosticSeverity;
85
- readonly message: string;
86
- readonly location?: SourceLocation;
87
- readonly hint?: string;
88
- readonly relatedLocations?: readonly SourceLocation[];
89
- };
90
-
91
- export const createDiagnostic = (
92
- code: DiagnosticCode,
93
- severity: DiagnosticSeverity,
94
- message: string,
95
- location?: SourceLocation,
96
- hint?: string,
97
- relatedLocations?: readonly SourceLocation[]
98
- ): Diagnostic => ({
99
- code,
100
- severity,
101
- message,
102
- location,
103
- hint,
104
- relatedLocations,
105
- });
106
-
107
- export const isError = (diagnostic: Diagnostic): boolean =>
108
- diagnostic.severity === "error";
109
-
110
- export const formatDiagnostic = (diagnostic: Diagnostic): string => {
111
- const parts: string[] = [];
112
-
113
- if (diagnostic.location) {
114
- parts.push(
115
- `${diagnostic.location.file}:${diagnostic.location.line}:${diagnostic.location.column}`
116
- );
117
- }
118
-
119
- parts.push(`${diagnostic.severity} ${diagnostic.code}:`);
120
- parts.push(diagnostic.message);
121
-
122
- if (diagnostic.hint) {
123
- parts.push(`Hint: ${diagnostic.hint}`);
124
- }
125
-
126
- return parts.join(" ");
127
- };
128
-
129
- export type DiagnosticsCollector = {
130
- readonly diagnostics: readonly Diagnostic[];
131
- readonly hasErrors: boolean;
132
- };
133
-
134
- export const createDiagnosticsCollector = (): DiagnosticsCollector => ({
135
- diagnostics: [],
136
- hasErrors: false,
137
- });
138
-
139
- export const addDiagnostic = (
140
- collector: DiagnosticsCollector,
141
- diagnostic: Diagnostic
142
- ): DiagnosticsCollector => ({
143
- diagnostics: [...collector.diagnostics, diagnostic],
144
- hasErrors: collector.hasErrors || isError(diagnostic),
145
- });
146
-
147
- export const mergeDiagnostics = (
148
- collector1: DiagnosticsCollector,
149
- collector2: DiagnosticsCollector
150
- ): DiagnosticsCollector => ({
151
- diagnostics: [...collector1.diagnostics, ...collector2.diagnostics],
152
- hasErrors: collector1.hasErrors || collector2.hasErrors,
153
- });