@tsonic/frontend 0.0.1 → 0.0.4

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 (698) 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 +518 -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 +123 -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 +498 -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 +132 -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 +217 -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 +129 -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/converter.d.ts +6 -0
  251. package/dist/ir/type-converter/converter.d.ts.map +1 -0
  252. package/dist/ir/type-converter/converter.js +6 -0
  253. package/dist/ir/type-converter/converter.js.map +1 -0
  254. package/dist/ir/type-converter/functions.d.ts +10 -0
  255. package/dist/ir/type-converter/functions.d.ts.map +1 -0
  256. package/dist/ir/type-converter/functions.js +15 -0
  257. package/dist/ir/type-converter/functions.js.map +1 -0
  258. package/dist/ir/type-converter/index.d.ts +7 -0
  259. package/dist/ir/type-converter/index.d.ts.map +1 -0
  260. package/{src/ir/type-converter/index.ts → dist/ir/type-converter/index.js} +2 -6
  261. package/dist/ir/type-converter/index.js.map +1 -0
  262. package/dist/ir/type-converter/inference.d.ts +20 -0
  263. package/dist/ir/type-converter/inference.d.ts.map +1 -0
  264. package/dist/ir/type-converter/inference.js +105 -0
  265. package/dist/ir/type-converter/inference.js.map +1 -0
  266. package/dist/ir/type-converter/literals.d.ts +10 -0
  267. package/dist/ir/type-converter/literals.d.ts.map +1 -0
  268. package/dist/ir/type-converter/literals.js +31 -0
  269. package/dist/ir/type-converter/literals.js.map +1 -0
  270. package/dist/ir/type-converter/objects.d.ts +16 -0
  271. package/dist/ir/type-converter/objects.d.ts.map +1 -0
  272. package/dist/ir/type-converter/objects.js +82 -0
  273. package/dist/ir/type-converter/objects.js.map +1 -0
  274. package/dist/ir/type-converter/orchestrator.d.ts +13 -0
  275. package/dist/ir/type-converter/orchestrator.d.ts.map +1 -0
  276. package/dist/ir/type-converter/orchestrator.js +59 -0
  277. package/dist/ir/type-converter/orchestrator.js.map +1 -0
  278. package/dist/ir/type-converter/patterns.d.ts +10 -0
  279. package/dist/ir/type-converter/patterns.d.ts.map +1 -0
  280. package/dist/ir/type-converter/patterns.js +66 -0
  281. package/dist/ir/type-converter/patterns.js.map +1 -0
  282. package/dist/ir/type-converter/primitives.d.ts +18 -0
  283. package/dist/ir/type-converter/primitives.d.ts.map +1 -0
  284. package/dist/ir/type-converter/primitives.js +47 -0
  285. package/dist/ir/type-converter/primitives.js.map +1 -0
  286. package/dist/ir/type-converter/references.d.ts +11 -0
  287. package/dist/ir/type-converter/references.d.ts.map +1 -0
  288. package/dist/ir/type-converter/references.js +62 -0
  289. package/dist/ir/type-converter/references.js.map +1 -0
  290. package/dist/ir/type-converter/unions-intersections.d.ts +14 -0
  291. package/dist/ir/type-converter/unions-intersections.d.ts.map +1 -0
  292. package/dist/ir/type-converter/unions-intersections.js +22 -0
  293. package/dist/ir/type-converter/unions-intersections.js.map +1 -0
  294. package/dist/ir/type-converter.d.ts +6 -0
  295. package/dist/ir/type-converter.d.ts.map +1 -0
  296. package/dist/ir/type-converter.js +6 -0
  297. package/dist/ir/type-converter.js.map +1 -0
  298. package/dist/ir/types/expressions.d.ts +164 -0
  299. package/dist/ir/types/expressions.d.ts.map +1 -0
  300. package/dist/ir/types/expressions.js +5 -0
  301. package/dist/ir/types/expressions.js.map +1 -0
  302. package/dist/ir/types/guards.d.ts +8 -0
  303. package/dist/ir/types/guards.d.ts.map +1 -0
  304. package/dist/ir/types/guards.js +31 -0
  305. package/dist/ir/types/guards.js.map +1 -0
  306. package/dist/ir/types/helpers.d.ts +65 -0
  307. package/dist/ir/types/helpers.d.ts.map +1 -0
  308. package/dist/ir/types/helpers.js +5 -0
  309. package/dist/ir/types/helpers.js.map +1 -0
  310. package/dist/ir/types/index.d.ts +11 -0
  311. package/dist/ir/types/index.d.ts.map +1 -0
  312. package/dist/ir/types/index.js +7 -0
  313. package/dist/ir/types/index.js.map +1 -0
  314. package/dist/ir/types/ir-types.d.ts +79 -0
  315. package/dist/ir/types/ir-types.d.ts.map +1 -0
  316. package/dist/ir/types/ir-types.js +5 -0
  317. package/dist/ir/types/ir-types.js.map +1 -0
  318. package/dist/ir/types/module.d.ts +56 -0
  319. package/dist/ir/types/module.d.ts.map +1 -0
  320. package/dist/ir/types/module.js +5 -0
  321. package/dist/ir/types/module.js.map +1 -0
  322. package/dist/ir/types/statements.d.ts +182 -0
  323. package/dist/ir/types/statements.d.ts.map +1 -0
  324. package/dist/ir/types/statements.js +5 -0
  325. package/dist/ir/types/statements.js.map +1 -0
  326. package/dist/ir/types.d.ts +7 -0
  327. package/dist/ir/types.d.ts.map +1 -0
  328. package/dist/ir/types.js +7 -0
  329. package/dist/ir/types.js.map +1 -0
  330. package/dist/metadata/bindings-loader.d.ts +41 -0
  331. package/dist/metadata/bindings-loader.d.ts.map +1 -0
  332. package/dist/metadata/bindings-loader.js +308 -0
  333. package/dist/metadata/bindings-loader.js.map +1 -0
  334. package/dist/metadata/bindings-loader.test.d.ts +5 -0
  335. package/dist/metadata/bindings-loader.test.d.ts.map +1 -0
  336. package/dist/metadata/bindings-loader.test.js +117 -0
  337. package/dist/metadata/bindings-loader.test.js.map +1 -0
  338. package/{src/metadata/index.ts → dist/metadata/index.d.ts} +2 -9
  339. package/dist/metadata/index.d.ts.map +1 -0
  340. package/dist/metadata/index.js +7 -0
  341. package/dist/metadata/index.js.map +1 -0
  342. package/dist/metadata/library-loader.d.ts +42 -0
  343. package/dist/metadata/library-loader.d.ts.map +1 -0
  344. package/dist/metadata/library-loader.js +126 -0
  345. package/dist/metadata/library-loader.js.map +1 -0
  346. package/dist/metadata/loader.d.ts +26 -0
  347. package/dist/metadata/loader.d.ts.map +1 -0
  348. package/dist/metadata/loader.js +333 -0
  349. package/dist/metadata/loader.js.map +1 -0
  350. package/dist/metadata/loader.test.d.ts +5 -0
  351. package/dist/metadata/loader.test.d.ts.map +1 -0
  352. package/dist/metadata/loader.test.js +119 -0
  353. package/dist/metadata/loader.test.js.map +1 -0
  354. package/dist/program/bindings.d.ts +159 -0
  355. package/dist/program/bindings.d.ts.map +1 -0
  356. package/dist/program/bindings.js +329 -0
  357. package/dist/program/bindings.js.map +1 -0
  358. package/dist/program/bindings.test.d.ts +5 -0
  359. package/dist/program/bindings.test.d.ts.map +1 -0
  360. package/dist/program/bindings.test.js +435 -0
  361. package/dist/program/bindings.test.js.map +1 -0
  362. package/dist/program/config.d.ts +9 -0
  363. package/dist/program/config.d.ts.map +1 -0
  364. package/dist/program/config.js +29 -0
  365. package/dist/program/config.js.map +1 -0
  366. package/dist/program/creation.d.ts +17 -0
  367. package/dist/program/creation.d.ts.map +1 -0
  368. package/dist/program/creation.js +182 -0
  369. package/dist/program/creation.js.map +1 -0
  370. package/dist/program/dependency-graph.d.ts +19 -0
  371. package/dist/program/dependency-graph.d.ts.map +1 -0
  372. package/dist/program/dependency-graph.js +230 -0
  373. package/dist/program/dependency-graph.js.map +1 -0
  374. package/dist/program/diagnostics.d.ts +23 -0
  375. package/dist/program/diagnostics.d.ts.map +1 -0
  376. package/dist/program/diagnostics.js +65 -0
  377. package/dist/program/diagnostics.js.map +1 -0
  378. package/{src/program/index.ts → dist/program/index.d.ts} +3 -10
  379. package/dist/program/index.d.ts.map +1 -0
  380. package/dist/program/index.js +11 -0
  381. package/dist/program/index.js.map +1 -0
  382. package/dist/program/metadata.d.ts +10 -0
  383. package/dist/program/metadata.d.ts.map +1 -0
  384. package/dist/program/metadata.js +56 -0
  385. package/dist/program/metadata.js.map +1 -0
  386. package/dist/program/queries.d.ts +10 -0
  387. package/dist/program/queries.d.ts.map +1 -0
  388. package/dist/program/queries.js +12 -0
  389. package/dist/program/queries.js.map +1 -0
  390. package/dist/program/types.d.ts +36 -0
  391. package/dist/program/types.d.ts.map +1 -0
  392. package/dist/program/types.js +5 -0
  393. package/dist/program/types.js.map +1 -0
  394. package/{src/program.ts → dist/program.d.ts} +2 -7
  395. package/dist/program.d.ts.map +1 -0
  396. package/dist/program.js +6 -0
  397. package/dist/program.js.map +1 -0
  398. package/dist/resolver/clr-bindings-resolver.d.ts +84 -0
  399. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -0
  400. package/dist/resolver/clr-bindings-resolver.js +224 -0
  401. package/dist/resolver/clr-bindings-resolver.js.map +1 -0
  402. package/dist/resolver/import-resolution.d.ts +20 -0
  403. package/dist/resolver/import-resolution.d.ts.map +1 -0
  404. package/dist/resolver/import-resolution.js +102 -0
  405. package/dist/resolver/import-resolution.js.map +1 -0
  406. package/{src/resolver/index.ts → dist/resolver/index.d.ts} +3 -11
  407. package/dist/resolver/index.d.ts.map +1 -0
  408. package/dist/resolver/index.js +9 -0
  409. package/dist/resolver/index.js.map +1 -0
  410. package/dist/resolver/namespace.d.ts +20 -0
  411. package/dist/resolver/namespace.d.ts.map +1 -0
  412. package/dist/resolver/namespace.js +35 -0
  413. package/dist/resolver/namespace.js.map +1 -0
  414. package/dist/resolver/namespace.test.d.ts +2 -0
  415. package/dist/resolver/namespace.test.d.ts.map +1 -0
  416. package/dist/resolver/namespace.test.js +42 -0
  417. package/dist/resolver/namespace.test.js.map +1 -0
  418. package/dist/resolver/naming.d.ts +12 -0
  419. package/dist/resolver/naming.d.ts.map +1 -0
  420. package/dist/resolver/naming.js +30 -0
  421. package/dist/resolver/naming.js.map +1 -0
  422. package/dist/resolver/path-resolution.d.ts +8 -0
  423. package/dist/resolver/path-resolution.d.ts.map +1 -0
  424. package/dist/resolver/path-resolution.js +16 -0
  425. package/dist/resolver/path-resolution.js.map +1 -0
  426. package/dist/resolver/types.d.ts +13 -0
  427. package/dist/resolver/types.d.ts.map +1 -0
  428. package/dist/resolver/types.js +5 -0
  429. package/dist/resolver/types.js.map +1 -0
  430. package/dist/resolver.d.ts +7 -0
  431. package/dist/resolver.d.ts.map +1 -0
  432. package/dist/resolver.js +6 -0
  433. package/dist/resolver.js.map +1 -0
  434. package/dist/resolver.test.d.ts +5 -0
  435. package/dist/resolver.test.d.ts.map +1 -0
  436. package/dist/resolver.test.js +93 -0
  437. package/dist/resolver.test.js.map +1 -0
  438. package/dist/symbol-table/builder.d.ts +10 -0
  439. package/dist/symbol-table/builder.d.ts.map +1 -0
  440. package/dist/symbol-table/builder.js +105 -0
  441. package/dist/symbol-table/builder.js.map +1 -0
  442. package/dist/symbol-table/creation.d.ts +13 -0
  443. package/dist/symbol-table/creation.d.ts.map +1 -0
  444. package/dist/symbol-table/creation.js +36 -0
  445. package/dist/symbol-table/creation.js.map +1 -0
  446. package/dist/symbol-table/helpers.d.ts +9 -0
  447. package/dist/symbol-table/helpers.d.ts.map +1 -0
  448. package/dist/symbol-table/helpers.js +15 -0
  449. package/dist/symbol-table/helpers.js.map +1 -0
  450. package/{src/symbol-table/index.ts → dist/symbol-table/index.d.ts} +2 -6
  451. package/dist/symbol-table/index.d.ts.map +1 -0
  452. package/dist/symbol-table/index.js +8 -0
  453. package/dist/symbol-table/index.js.map +1 -0
  454. package/dist/symbol-table/queries.d.ts +17 -0
  455. package/dist/symbol-table/queries.d.ts.map +1 -0
  456. package/dist/symbol-table/queries.js +27 -0
  457. package/dist/symbol-table/queries.js.map +1 -0
  458. package/dist/symbol-table/types.d.ts +18 -0
  459. package/dist/symbol-table/types.d.ts.map +1 -0
  460. package/dist/symbol-table/types.js +5 -0
  461. package/dist/symbol-table/types.js.map +1 -0
  462. package/{src/symbol-table.ts → dist/symbol-table.d.ts} +2 -9
  463. package/dist/symbol-table.d.ts.map +1 -0
  464. package/dist/symbol-table.js +6 -0
  465. package/dist/symbol-table.js.map +1 -0
  466. package/dist/types/bindings.d.ts +153 -0
  467. package/dist/types/bindings.d.ts.map +1 -0
  468. package/dist/types/bindings.js +14 -0
  469. package/dist/types/bindings.js.map +1 -0
  470. package/dist/types/diagnostic.d.ts +30 -0
  471. package/dist/types/diagnostic.d.ts.map +1 -0
  472. package/dist/types/diagnostic.js +37 -0
  473. package/dist/types/diagnostic.js.map +1 -0
  474. package/dist/types/diagnostic.test.d.ts +5 -0
  475. package/dist/types/diagnostic.test.d.ts.map +1 -0
  476. package/dist/types/diagnostic.test.js +94 -0
  477. package/dist/types/diagnostic.test.js.map +1 -0
  478. package/dist/types/explicit-views.d.ts +97 -0
  479. package/dist/types/explicit-views.d.ts.map +1 -0
  480. package/dist/types/explicit-views.js +163 -0
  481. package/dist/types/explicit-views.js.map +1 -0
  482. package/dist/types/explicit-views.test.d.ts +5 -0
  483. package/dist/types/explicit-views.test.d.ts.map +1 -0
  484. package/dist/types/explicit-views.test.js +67 -0
  485. package/dist/types/explicit-views.test.js.map +1 -0
  486. package/dist/types/metadata.d.ts +196 -0
  487. package/dist/types/metadata.d.ts.map +1 -0
  488. package/dist/types/metadata.js +10 -0
  489. package/dist/types/metadata.js.map +1 -0
  490. package/dist/types/module.d.ts +51 -0
  491. package/dist/types/module.d.ts.map +1 -0
  492. package/dist/types/module.js +28 -0
  493. package/dist/types/module.js.map +1 -0
  494. package/dist/types/nested-types.d.ts +111 -0
  495. package/dist/types/nested-types.d.ts.map +1 -0
  496. package/dist/types/nested-types.js +176 -0
  497. package/dist/types/nested-types.js.map +1 -0
  498. package/dist/types/nested-types.test.d.ts +5 -0
  499. package/dist/types/nested-types.test.d.ts.map +1 -0
  500. package/dist/types/nested-types.test.js +135 -0
  501. package/dist/types/nested-types.test.js.map +1 -0
  502. package/dist/types/parameter-modifiers.d.ts +55 -0
  503. package/dist/types/parameter-modifiers.d.ts.map +1 -0
  504. package/dist/types/parameter-modifiers.js +148 -0
  505. package/dist/types/parameter-modifiers.js.map +1 -0
  506. package/dist/types/ref-parameters.d.ts +123 -0
  507. package/dist/types/ref-parameters.d.ts.map +1 -0
  508. package/dist/types/ref-parameters.js +203 -0
  509. package/dist/types/ref-parameters.js.map +1 -0
  510. package/dist/types/ref-parameters.test.d.ts +5 -0
  511. package/dist/types/ref-parameters.test.d.ts.map +1 -0
  512. package/dist/types/ref-parameters.test.js +147 -0
  513. package/dist/types/ref-parameters.test.js.map +1 -0
  514. package/dist/types/result.d.ts +26 -0
  515. package/dist/types/result.d.ts.map +1 -0
  516. package/dist/types/result.js +19 -0
  517. package/dist/types/result.js.map +1 -0
  518. package/dist/types/result.test.d.ts +5 -0
  519. package/dist/types/result.test.d.ts.map +1 -0
  520. package/dist/types/result.test.js +121 -0
  521. package/dist/types/result.test.js.map +1 -0
  522. package/dist/types/support-types.d.ts +103 -0
  523. package/dist/types/support-types.d.ts.map +1 -0
  524. package/dist/types/support-types.js +220 -0
  525. package/dist/types/support-types.js.map +1 -0
  526. package/dist/types/support-types.test.d.ts +5 -0
  527. package/dist/types/support-types.test.d.ts.map +1 -0
  528. package/dist/types/support-types.test.js +53 -0
  529. package/dist/types/support-types.test.js.map +1 -0
  530. package/dist/types/test-harness.d.ts +34 -0
  531. package/dist/types/test-harness.d.ts.map +1 -0
  532. package/dist/types/test-harness.js +127 -0
  533. package/dist/types/test-harness.js.map +1 -0
  534. package/dist/validation/exports.d.ts +11 -0
  535. package/dist/validation/exports.d.ts.map +1 -0
  536. package/dist/validation/exports.js +56 -0
  537. package/dist/validation/exports.js.map +1 -0
  538. package/dist/validation/features.d.ts +11 -0
  539. package/dist/validation/features.d.ts.map +1 -0
  540. package/dist/validation/features.js +36 -0
  541. package/dist/validation/features.js.map +1 -0
  542. package/dist/validation/generics.d.ts +11 -0
  543. package/dist/validation/generics.d.ts.map +1 -0
  544. package/dist/validation/generics.js +31 -0
  545. package/dist/validation/generics.js.map +1 -0
  546. package/dist/validation/helpers.d.ts +15 -0
  547. package/dist/validation/helpers.d.ts.map +1 -0
  548. package/dist/validation/helpers.js +18 -0
  549. package/dist/validation/helpers.js.map +1 -0
  550. package/dist/validation/imports.d.ts +15 -0
  551. package/dist/validation/imports.d.ts.map +1 -0
  552. package/dist/validation/imports.js +42 -0
  553. package/dist/validation/imports.js.map +1 -0
  554. package/dist/validation/index.d.ts +11 -0
  555. package/dist/validation/index.d.ts.map +1 -0
  556. package/{src/validation/index.ts → dist/validation/index.js} +1 -1
  557. package/dist/validation/index.js.map +1 -0
  558. package/dist/validation/orchestrator.d.ts +15 -0
  559. package/dist/validation/orchestrator.d.ts.map +1 -0
  560. package/dist/validation/orchestrator.js +30 -0
  561. package/dist/validation/orchestrator.js.map +1 -0
  562. package/dist/validation/static-safety.d.ts +23 -0
  563. package/dist/validation/static-safety.d.ts.map +1 -0
  564. package/dist/validation/static-safety.js +165 -0
  565. package/dist/validation/static-safety.js.map +1 -0
  566. package/dist/validator.d.ts +6 -0
  567. package/dist/validator.d.ts.map +1 -0
  568. package/dist/validator.js +6 -0
  569. package/dist/validator.js.map +1 -0
  570. package/dist/validator.test.d.ts +11 -0
  571. package/dist/validator.test.d.ts.map +1 -0
  572. package/dist/validator.test.js +341 -0
  573. package/dist/validator.test.js.map +1 -0
  574. package/package.json +4 -1
  575. package/src/dotnet-metadata.ts +0 -121
  576. package/src/graph/builder.ts +0 -81
  577. package/src/graph/circular.ts +0 -58
  578. package/src/graph/extraction/exports.ts +0 -55
  579. package/src/graph/extraction/imports.ts +0 -81
  580. package/src/graph/extraction/orchestrator.ts +0 -99
  581. package/src/graph/helpers.ts +0 -51
  582. package/src/index.ts +0 -80
  583. package/src/ir/binding-resolution.test.ts +0 -585
  584. package/src/ir/builder/exports.ts +0 -78
  585. package/src/ir/builder/helpers.ts +0 -27
  586. package/src/ir/builder/imports.ts +0 -153
  587. package/src/ir/builder/orchestrator.ts +0 -178
  588. package/src/ir/builder/statements.ts +0 -55
  589. package/src/ir/builder/types.ts +0 -8
  590. package/src/ir/builder/validation.ts +0 -129
  591. package/src/ir/builder.test.ts +0 -581
  592. package/src/ir/converters/expressions/access.ts +0 -99
  593. package/src/ir/converters/expressions/calls.ts +0 -137
  594. package/src/ir/converters/expressions/collections.ts +0 -84
  595. package/src/ir/converters/expressions/functions.ts +0 -62
  596. package/src/ir/converters/expressions/helpers.ts +0 -264
  597. package/src/ir/converters/expressions/index.ts +0 -43
  598. package/src/ir/converters/expressions/literals.ts +0 -22
  599. package/src/ir/converters/expressions/operators.ts +0 -147
  600. package/src/ir/converters/expressions/other.ts +0 -60
  601. package/src/ir/converters/statements/control/blocks.ts +0 -22
  602. package/src/ir/converters/statements/control/conditionals.ts +0 -67
  603. package/src/ir/converters/statements/control/exceptions.ts +0 -43
  604. package/src/ir/converters/statements/control/index.ts +0 -17
  605. package/src/ir/converters/statements/control/loops.ts +0 -99
  606. package/src/ir/converters/statements/control.ts +0 -17
  607. package/src/ir/converters/statements/declarations/classes/constructors.ts +0 -120
  608. package/src/ir/converters/statements/declarations/classes/methods.ts +0 -61
  609. package/src/ir/converters/statements/declarations/classes/orchestrator.ts +0 -166
  610. package/src/ir/converters/statements/declarations/classes/override-detection.ts +0 -116
  611. package/src/ir/converters/statements/declarations/classes/properties.ts +0 -63
  612. package/src/ir/converters/statements/declarations/enums.ts +0 -29
  613. package/src/ir/converters/statements/declarations/functions.ts +0 -39
  614. package/src/ir/converters/statements/declarations/interfaces.ts +0 -131
  615. package/src/ir/converters/statements/declarations/type-aliases.ts +0 -25
  616. package/src/ir/converters/statements/declarations/variables.ts +0 -60
  617. package/src/ir/converters/statements/declarations.ts +0 -16
  618. package/src/ir/converters/statements/helpers.ts +0 -174
  619. package/src/ir/converters/statements/index.ts +0 -40
  620. package/src/ir/expression-converter.ts +0 -207
  621. package/src/ir/generic-validator.ts +0 -100
  622. package/src/ir/hierarchical-bindings-e2e.test.ts +0 -163
  623. package/src/ir/statement-converter.ts +0 -128
  624. package/src/ir/type-converter/arrays.ts +0 -20
  625. package/src/ir/type-converter/converter.ts +0 -10
  626. package/src/ir/type-converter/functions.ts +0 -22
  627. package/src/ir/type-converter/inference.ts +0 -122
  628. package/src/ir/type-converter/literals.ts +0 -40
  629. package/src/ir/type-converter/objects.ts +0 -107
  630. package/src/ir/type-converter/orchestrator.ts +0 -85
  631. package/src/ir/type-converter/patterns.ts +0 -73
  632. package/src/ir/type-converter/primitives.ts +0 -57
  633. package/src/ir/type-converter/references.ts +0 -64
  634. package/src/ir/type-converter/unions-intersections.ts +0 -34
  635. package/src/ir/type-converter.ts +0 -13
  636. package/src/ir/types/expressions.ts +0 -215
  637. package/src/ir/types/guards.ts +0 -39
  638. package/src/ir/types/helpers.ts +0 -135
  639. package/src/ir/types/index.ts +0 -108
  640. package/src/ir/types/ir-types.ts +0 -96
  641. package/src/ir/types/module.ts +0 -57
  642. package/src/ir/types/statements.ts +0 -238
  643. package/src/ir/types.ts +0 -97
  644. package/src/metadata/bindings-loader.test.ts +0 -144
  645. package/src/metadata/bindings-loader.ts +0 -357
  646. package/src/metadata/library-loader.ts +0 -153
  647. package/src/metadata/loader.test.ts +0 -156
  648. package/src/metadata/loader.ts +0 -382
  649. package/src/program/bindings.test.ts +0 -512
  650. package/src/program/bindings.ts +0 -253
  651. package/src/program/config.ts +0 -30
  652. package/src/program/creation.ts +0 -249
  653. package/src/program/dependency-graph.ts +0 -245
  654. package/src/program/diagnostics.ts +0 -103
  655. package/src/program/metadata.ts +0 -68
  656. package/src/program/queries.ts +0 -18
  657. package/src/program/types.ts +0 -38
  658. package/src/resolver/dotnet-import-resolver.ts +0 -226
  659. package/src/resolver/import-resolution.ts +0 -177
  660. package/src/resolver/namespace.test.ts +0 -86
  661. package/src/resolver/namespace.ts +0 -42
  662. package/src/resolver/naming.ts +0 -38
  663. package/src/resolver/path-resolution.ts +0 -22
  664. package/src/resolver/types.ts +0 -15
  665. package/src/resolver.test.ts +0 -155
  666. package/src/resolver.ts +0 -14
  667. package/src/symbol-table/builder.ts +0 -114
  668. package/src/symbol-table/creation.ts +0 -42
  669. package/src/symbol-table/helpers.ts +0 -18
  670. package/src/symbol-table/queries.ts +0 -42
  671. package/src/symbol-table/types.ts +0 -28
  672. package/src/types/bindings.ts +0 -172
  673. package/src/types/diagnostic.test.ts +0 -164
  674. package/src/types/diagnostic.ts +0 -153
  675. package/src/types/explicit-views.test.ts +0 -113
  676. package/src/types/explicit-views.ts +0 -218
  677. package/src/types/metadata.ts +0 -229
  678. package/src/types/module.ts +0 -99
  679. package/src/types/nested-types.test.ts +0 -194
  680. package/src/types/nested-types.ts +0 -215
  681. package/src/types/parameter-modifiers.ts +0 -173
  682. package/src/types/ref-parameters.test.ts +0 -192
  683. package/src/types/ref-parameters.ts +0 -268
  684. package/src/types/result.test.ts +0 -157
  685. package/src/types/result.ts +0 -48
  686. package/src/types/support-types.test.ts +0 -81
  687. package/src/types/support-types.ts +0 -288
  688. package/src/types/test-harness.ts +0 -180
  689. package/src/validation/exports.ts +0 -98
  690. package/src/validation/features.ts +0 -89
  691. package/src/validation/generics.ts +0 -40
  692. package/src/validation/helpers.ts +0 -31
  693. package/src/validation/imports.ts +0 -97
  694. package/src/validation/orchestrator.ts +0 -51
  695. package/src/validation/static-safety.ts +0 -267
  696. package/src/validator.test.ts +0 -468
  697. package/src/validator.ts +0 -15
  698. package/tsconfig.json +0 -13
@@ -1,253 +0,0 @@
1
- /**
2
- * Binding manifest loading - maps JS/TS names to CLR types/members
3
- * See spec/bindings.md for full manifest format
4
- */
5
-
6
- import * as fs from "node:fs";
7
- import * as path from "node:path";
8
-
9
- /**
10
- * Member binding (method/property level)
11
- */
12
- export type MemberBinding = {
13
- readonly kind: "method" | "property";
14
- readonly signature?: string; // Optional TS signature for diagnostics
15
- readonly name: string; // CLR member name (e.g., "SelectMany")
16
- readonly alias: string; // TS identifier (e.g., "selectMany")
17
- readonly binding: {
18
- readonly assembly: string;
19
- readonly type: string; // Full CLR type (e.g., "System.Linq.Enumerable")
20
- readonly member: string; // CLR member name
21
- };
22
- };
23
-
24
- /**
25
- * Type binding (class/interface/struct/enum level)
26
- */
27
- export type TypeBinding = {
28
- readonly name: string; // CLR type name (e.g., "Enumerable")
29
- readonly alias: string; // TS identifier (e.g., "enumerable")
30
- readonly kind: "class" | "interface" | "struct" | "enum";
31
- readonly members: readonly MemberBinding[];
32
- };
33
-
34
- /**
35
- * Namespace binding
36
- */
37
- export type NamespaceBinding = {
38
- readonly name: string; // CLR namespace (e.g., "System.Linq")
39
- readonly alias: string; // TS identifier (e.g., "systemLinq")
40
- readonly types: readonly TypeBinding[];
41
- };
42
-
43
- /**
44
- * Full binding manifest structure (new format from bindings.md)
45
- */
46
- export type FullBindingManifest = {
47
- readonly assembly: string;
48
- readonly namespaces: readonly NamespaceBinding[];
49
- };
50
-
51
- /**
52
- * Simple binding entry (legacy format for backwards compatibility)
53
- * Maps simple global/module identifiers to CLR types
54
- */
55
- export type SimpleBindingDescriptor = {
56
- readonly kind: "global" | "module";
57
- readonly assembly: string;
58
- readonly type: string;
59
- readonly csharpName?: string; // Optional: rename identifier in generated C#
60
- };
61
-
62
- /**
63
- * Legacy binding file structure (backwards compatible)
64
- */
65
- export type LegacyBindingFile = {
66
- readonly bindings: Readonly<Record<string, SimpleBindingDescriptor>>;
67
- };
68
-
69
- /**
70
- * Union type for both binding formats
71
- */
72
- export type BindingFile = FullBindingManifest | LegacyBindingFile;
73
-
74
- /**
75
- * Type guard to check if a manifest is the full format
76
- */
77
- const isFullBindingManifest = (
78
- manifest: BindingFile
79
- ): manifest is FullBindingManifest => {
80
- return "assembly" in manifest && "namespaces" in manifest;
81
- };
82
-
83
- /**
84
- * Registry of all loaded bindings
85
- * Supports both legacy (simple global/module) and new (hierarchical namespace/type/member) formats
86
- */
87
- export class BindingRegistry {
88
- // Legacy format: simple global/module bindings
89
- private readonly simpleBindings = new Map<string, SimpleBindingDescriptor>();
90
-
91
- // New format: hierarchical bindings
92
- private readonly namespaces = new Map<string, NamespaceBinding>();
93
- private readonly types = new Map<string, TypeBinding>(); // Flat lookup by TS name
94
- private readonly members = new Map<string, MemberBinding>(); // Flat lookup by "type.member"
95
-
96
- /**
97
- * Load a binding manifest file and add its bindings to the registry
98
- * Supports both legacy and new formats
99
- */
100
- addBindings(_filePath: string, manifest: BindingFile): void {
101
- if (isFullBindingManifest(manifest)) {
102
- // New format: hierarchical namespace/type/member structure
103
- // Index by alias (TS identifier) for quick lookup
104
- for (const ns of manifest.namespaces) {
105
- this.namespaces.set(ns.alias, ns);
106
-
107
- // Index types for quick lookup by TS alias
108
- for (const type of ns.types) {
109
- this.types.set(type.alias, type);
110
-
111
- // Index members for quick lookup (keyed by "typeAlias.memberAlias")
112
- for (const member of type.members) {
113
- const key = `${type.alias}.${member.alias}`;
114
- this.members.set(key, member);
115
- }
116
- }
117
- }
118
- } else {
119
- // Legacy format: simple global/module bindings
120
- for (const [name, descriptor] of Object.entries(manifest.bindings)) {
121
- this.simpleBindings.set(name, descriptor);
122
- }
123
- }
124
- }
125
-
126
- /**
127
- * Look up a simple global/module binding (legacy format)
128
- */
129
- getBinding(name: string): SimpleBindingDescriptor | undefined {
130
- return this.simpleBindings.get(name);
131
- }
132
-
133
- /**
134
- * Look up a namespace binding by TS alias
135
- */
136
- getNamespace(tsAlias: string): NamespaceBinding | undefined {
137
- return this.namespaces.get(tsAlias);
138
- }
139
-
140
- /**
141
- * Look up a type binding by TS alias
142
- */
143
- getType(tsAlias: string): TypeBinding | undefined {
144
- return this.types.get(tsAlias);
145
- }
146
-
147
- /**
148
- * Look up a member binding by TS type alias and member alias
149
- */
150
- getMember(typeAlias: string, memberAlias: string): MemberBinding | undefined {
151
- const key = `${typeAlias}.${memberAlias}`;
152
- return this.members.get(key);
153
- }
154
-
155
- /**
156
- * Get all loaded simple bindings (legacy)
157
- */
158
- getAllBindings(): readonly [string, SimpleBindingDescriptor][] {
159
- return Array.from(this.simpleBindings.entries());
160
- }
161
-
162
- /**
163
- * Get all loaded namespaces
164
- */
165
- getAllNamespaces(): readonly NamespaceBinding[] {
166
- return Array.from(this.namespaces.values());
167
- }
168
-
169
- /**
170
- * Clear all loaded bindings
171
- */
172
- clear(): void {
173
- this.simpleBindings.clear();
174
- this.namespaces.clear();
175
- this.types.clear();
176
- this.members.clear();
177
- }
178
- }
179
-
180
- /**
181
- * Recursively scan a directory for .d.ts files
182
- * Reuses the same helper as metadata loading
183
- */
184
- const scanForDeclarationFiles = (dir: string): readonly string[] => {
185
- if (!fs.existsSync(dir)) {
186
- return [];
187
- }
188
-
189
- const results: string[] = [];
190
- const entries = fs.readdirSync(dir, { withFileTypes: true });
191
-
192
- for (const entry of entries) {
193
- const fullPath = path.join(dir, entry.name);
194
- if (entry.isDirectory()) {
195
- results.push(...scanForDeclarationFiles(fullPath));
196
- } else if (entry.name.endsWith(".d.ts")) {
197
- results.push(fullPath);
198
- }
199
- }
200
-
201
- return results;
202
- };
203
-
204
- /**
205
- * Load binding manifests from configured type roots
206
- * Looks for *.bindings.json files alongside .d.ts files OR directly in typeRoot
207
- */
208
- export const loadBindings = (typeRoots: readonly string[]): BindingRegistry => {
209
- const registry = new BindingRegistry();
210
-
211
- for (const typeRoot of typeRoots) {
212
- const absoluteRoot = path.resolve(typeRoot);
213
-
214
- // Skip if directory doesn't exist
215
- if (!fs.existsSync(absoluteRoot)) {
216
- continue;
217
- }
218
-
219
- // Strategy 1: Look for manifest in the typeRoot itself
220
- const rootManifests = fs
221
- .readdirSync(absoluteRoot)
222
- .filter((f) => f.endsWith(".bindings.json"))
223
- .map((f) => path.join(absoluteRoot, f));
224
-
225
- for (const manifestPath of rootManifests) {
226
- try {
227
- const content = fs.readFileSync(manifestPath, "utf-8");
228
- const manifest = JSON.parse(content) as BindingFile;
229
- registry.addBindings(manifestPath, manifest);
230
- } catch (err) {
231
- console.warn(`Failed to load bindings from ${manifestPath}:`, err);
232
- }
233
- }
234
-
235
- // Strategy 2: Look for *.bindings.json next to each .d.ts file
236
- const declFiles = scanForDeclarationFiles(absoluteRoot);
237
- for (const declPath of declFiles) {
238
- const manifestPath = declPath.replace(/\.d\.ts$/, ".bindings.json");
239
-
240
- try {
241
- if (fs.existsSync(manifestPath)) {
242
- const content = fs.readFileSync(manifestPath, "utf-8");
243
- const manifest = JSON.parse(content) as BindingFile;
244
- registry.addBindings(manifestPath, manifest);
245
- }
246
- } catch (err) {
247
- console.warn(`Failed to load bindings from ${manifestPath}:`, err);
248
- }
249
- }
250
- }
251
-
252
- return registry;
253
- };
@@ -1,30 +0,0 @@
1
- /**
2
- * TypeScript compiler configuration
3
- */
4
-
5
- import * as ts from "typescript";
6
-
7
- /**
8
- * Default TypeScript compiler options for Tsonic
9
- */
10
- export const defaultTsConfig: ts.CompilerOptions = {
11
- target: ts.ScriptTarget.ES2022,
12
- module: ts.ModuleKind.NodeNext,
13
- moduleResolution: ts.ModuleResolutionKind.NodeNext,
14
- // We use the globals from the BCL bindings directory instead of npm packages
15
- // The BCL bindings include a globals.d.ts that provides minimal types
16
- noLib: true,
17
- types: [], // No npm packages - globals come from BCL bindings typeRoots
18
- strict: false, // Disabled to allow .NET type usage
19
- esModuleInterop: true,
20
- skipLibCheck: true,
21
- forceConsistentCasingInFileNames: true,
22
- allowJs: false,
23
- checkJs: false,
24
- noEmit: true,
25
- resolveJsonModule: false,
26
- isolatedModules: true, // Re-enabled - safe now that DOM globals are gone
27
- verbatimModuleSyntax: false, // Disabled to allow .NET type imports
28
- noImplicitAny: false, // Allow any for .NET types
29
- allowImportingTsExtensions: true, // ESM requires .ts/.js extensions
30
- };
@@ -1,249 +0,0 @@
1
- /**
2
- * Program creation
3
- */
4
-
5
- import * as ts from "typescript";
6
- import * as path from "node:path";
7
- import * as fs from "node:fs";
8
- import { Result, ok, error } from "../types/result.js";
9
- import { DiagnosticsCollector } from "../types/diagnostic.js";
10
- import { CompilerOptions, TsonicProgram } from "./types.js";
11
- import { defaultTsConfig } from "./config.js";
12
- import { loadDotnetMetadata } from "./metadata.js";
13
- import { loadBindings } from "./bindings.js";
14
- import { collectTsDiagnostics } from "./diagnostics.js";
15
- import { createDotNetImportResolver } from "../resolver/dotnet-import-resolver.js";
16
-
17
- /**
18
- * Recursively scan a directory for .d.ts files
19
- */
20
- const scanForDeclarationFiles = (dir: string): readonly string[] => {
21
- if (!fs.existsSync(dir)) {
22
- return [];
23
- }
24
-
25
- const results: string[] = [];
26
- const entries = fs.readdirSync(dir, { withFileTypes: true });
27
-
28
- for (const entry of entries) {
29
- const fullPath = path.join(dir, entry.name);
30
- if (entry.isDirectory()) {
31
- results.push(...scanForDeclarationFiles(fullPath));
32
- } else if (entry.name.endsWith(".d.ts")) {
33
- results.push(fullPath);
34
- }
35
- }
36
-
37
- return results;
38
- };
39
-
40
- /**
41
- * Create TypeScript compiler options from Tsonic options
42
- * Exported for use by dependency graph builder
43
- */
44
- export const createCompilerOptions = (
45
- options: CompilerOptions
46
- ): ts.CompilerOptions => {
47
- const baseConfig = {
48
- ...defaultTsConfig,
49
- strict: options.strict ?? true,
50
- rootDir: options.sourceRoot,
51
- };
52
-
53
- // When useStandardLib is true, disable noLib to use TypeScript's built-in types
54
- // This is useful for tests that don't have access to BCL bindings
55
- if (options.useStandardLib) {
56
- return {
57
- ...baseConfig,
58
- noLib: false,
59
- types: undefined, // Use default type resolution
60
- };
61
- }
62
-
63
- return baseConfig;
64
- };
65
-
66
- /**
67
- * Create a Tsonic program from TypeScript source files
68
- */
69
- export const createProgram = (
70
- filePaths: readonly string[],
71
- options: CompilerOptions
72
- ): Result<TsonicProgram, DiagnosticsCollector> => {
73
- const absolutePaths = filePaths.map((fp) => path.resolve(fp));
74
-
75
- // Get declaration files from type roots
76
- const typeRoots = options.typeRoots ?? [
77
- "node_modules/@tsonic/dotnet-types/types",
78
- ];
79
-
80
- // Debug log typeRoots
81
- if (options.verbose && typeRoots.length > 0) {
82
- console.log(`TypeRoots: ${typeRoots.join(", ")}`);
83
- }
84
-
85
- const declarationFiles: string[] = [];
86
-
87
- for (const typeRoot of typeRoots) {
88
- const absoluteRoot = path.resolve(typeRoot);
89
- declarationFiles.push(...scanForDeclarationFiles(absoluteRoot));
90
- }
91
-
92
- // Add the main index.d.ts files for .NET namespaces directly to the file list
93
- const namespaceIndexFiles: string[] = [];
94
- for (const typeRoot of typeRoots) {
95
- const absoluteRoot = path.resolve(typeRoot);
96
- if (options.verbose) {
97
- console.log(
98
- `Checking typeRoot: ${absoluteRoot}, exists: ${fs.existsSync(absoluteRoot)}`
99
- );
100
- }
101
- if (fs.existsSync(absoluteRoot)) {
102
- const entries = fs.readdirSync(absoluteRoot, { withFileTypes: true });
103
- for (const entry of entries) {
104
- if (
105
- entry.isDirectory() &&
106
- !entry.name.startsWith("_") &&
107
- !entry.name.startsWith("internal")
108
- ) {
109
- const indexPath = path.join(absoluteRoot, entry.name, "index.d.ts");
110
- if (fs.existsSync(indexPath)) {
111
- namespaceIndexFiles.push(indexPath);
112
- if (options.verbose) {
113
- console.log(` Found namespace: ${entry.name} -> ${indexPath}`);
114
- }
115
- }
116
- }
117
- }
118
- }
119
- }
120
-
121
- // Combine source files, declaration files, and namespace index files
122
- // Note: globals.d.ts should be in the BCL bindings directory (typeRoots)
123
- const allFiles = [
124
- ...absolutePaths,
125
- ...declarationFiles,
126
- ...namespaceIndexFiles,
127
- ];
128
-
129
- const tsOptions = createCompilerOptions(options);
130
-
131
- // Create custom compiler host with virtual .NET module declarations
132
- const host = ts.createCompilerHost(tsOptions);
133
-
134
- // Map of .NET namespace names to their declaration file paths
135
- const namespaceFiles = new Map<string, string>();
136
- for (const indexFile of namespaceIndexFiles) {
137
- // Extract namespace name from path (e.g., /path/to/System/index.d.ts -> System)
138
- const dirName = path.basename(path.dirname(indexFile));
139
- namespaceFiles.set(dirName, indexFile);
140
- }
141
-
142
- // Log namespace mappings when verbose
143
- if (options.verbose && namespaceFiles.size > 0) {
144
- console.log(`Found ${namespaceFiles.size} .NET namespace declarations`);
145
- for (const [ns, file] of namespaceFiles) {
146
- console.log(` ${ns} -> ${file}`);
147
- }
148
- }
149
-
150
- // Override getSourceFile to provide virtual module declarations
151
- const originalGetSourceFile = host.getSourceFile;
152
- host.getSourceFile = (
153
- fileName: string,
154
- languageVersion: ts.ScriptTarget,
155
- onError?: (message: string) => void,
156
- shouldCreateNewSourceFile?: boolean
157
- ): ts.SourceFile | undefined => {
158
- // Check if this is a .NET namespace being imported
159
- const baseName = path.basename(fileName, path.extname(fileName));
160
- if (namespaceFiles.has(baseName) && fileName.endsWith(".ts")) {
161
- // Create a virtual source file that exports from the actual declaration
162
- const declarationPath = namespaceFiles.get(baseName)!;
163
- const virtualContent = `export * from '${declarationPath.replace(/\.d\.ts$/, "")}';`;
164
- return ts.createSourceFile(
165
- fileName,
166
- virtualContent,
167
- languageVersion,
168
- true
169
- );
170
- }
171
-
172
- return originalGetSourceFile.call(
173
- host,
174
- fileName,
175
- languageVersion,
176
- onError,
177
- shouldCreateNewSourceFile
178
- );
179
- };
180
-
181
- // Override resolveModuleNames to handle .NET imports
182
- (host as any).resolveModuleNames = (
183
- moduleNames: string[],
184
- containingFile: string
185
- ): (ts.ResolvedModule | undefined)[] => {
186
- return moduleNames.map((moduleName) => {
187
- // Debug log
188
- if (options.verbose) {
189
- console.log(`Resolving module: ${moduleName} from ${containingFile}`);
190
- }
191
-
192
- // Check if this is a .NET namespace
193
- if (namespaceFiles.has(moduleName)) {
194
- const resolvedFile = namespaceFiles.get(moduleName)!;
195
- if (options.verbose) {
196
- console.log(
197
- ` Resolved .NET namespace ${moduleName} to ${resolvedFile}`
198
- );
199
- }
200
- return {
201
- resolvedFileName: resolvedFile,
202
- isExternalLibraryImport: true,
203
- };
204
- }
205
-
206
- // Use default resolution for other modules
207
- const result = ts.resolveModuleName(
208
- moduleName,
209
- containingFile,
210
- tsOptions,
211
- host
212
- );
213
- return result.resolvedModule;
214
- });
215
- };
216
-
217
- const program = ts.createProgram(allFiles, tsOptions, host);
218
-
219
- const diagnostics = collectTsDiagnostics(program);
220
-
221
- if (diagnostics.hasErrors) {
222
- return error(diagnostics);
223
- }
224
-
225
- const sourceFiles = program
226
- .getSourceFiles()
227
- .filter(
228
- (sf) => !sf.isDeclarationFile && absolutePaths.includes(sf.fileName)
229
- );
230
-
231
- // Load .NET metadata files
232
- const metadata = loadDotnetMetadata(typeRoots);
233
-
234
- // Load binding manifests (from typeRoots - for ambient globals)
235
- const bindings = loadBindings(typeRoots);
236
-
237
- // Create resolver for import-driven .NET namespace discovery
238
- const dotnetResolver = createDotNetImportResolver(options.sourceRoot);
239
-
240
- return ok({
241
- program,
242
- checker: program.getTypeChecker(),
243
- options,
244
- sourceFiles,
245
- metadata,
246
- bindings,
247
- dotnetResolver,
248
- });
249
- };