@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,64 +0,0 @@
1
- /**
2
- * Reference type conversion
3
- */
4
-
5
- import * as ts from "typescript";
6
- import { IrType, IrDictionaryType } from "../types.js";
7
- import { isPrimitiveTypeName, getPrimitiveType } from "./primitives.js";
8
- import { getParameterModifierRegistry } from "../../types/parameter-modifiers.js";
9
-
10
- /**
11
- * Convert TypeScript type reference to IR type
12
- * Handles both primitive type names and user-defined types
13
- */
14
- export const convertTypeReference = (
15
- node: ts.TypeReferenceNode,
16
- checker: ts.TypeChecker,
17
- convertType: (node: ts.TypeNode, checker: ts.TypeChecker) => IrType
18
- ): IrType => {
19
- const typeName = ts.isIdentifier(node.typeName)
20
- ? node.typeName.text
21
- : node.typeName.getText();
22
-
23
- // Check for primitive type names
24
- if (isPrimitiveTypeName(typeName)) {
25
- return getPrimitiveType(typeName);
26
- }
27
-
28
- // Check for Record<K, V> utility type → convert to IrDictionaryType
29
- if (typeName === "Record" && node.typeArguments?.length === 2) {
30
- const keyType = convertType(node.typeArguments[0]!, checker);
31
- const valueType = convertType(node.typeArguments[1]!, checker);
32
-
33
- return {
34
- kind: "dictionaryType",
35
- keyType,
36
- valueType,
37
- } as IrDictionaryType;
38
- }
39
-
40
- // Check if this is a parameter modifier type (ref/out/In) from @tsonic/types
41
- const registry = getParameterModifierRegistry();
42
- const modifierKind = registry.getParameterModifierKind(typeName);
43
-
44
- if (modifierKind && node.typeArguments && node.typeArguments.length > 0) {
45
- // This is ref<T>, out<T>, or In<T> from @tsonic/types
46
- // Convert it to a special IR type that preserves the modifier
47
- const wrappedType = convertType(node.typeArguments[0]!, checker);
48
-
49
- return {
50
- kind: "referenceType",
51
- name: typeName,
52
- typeArguments: [wrappedType],
53
- // Add metadata to indicate this is a parameter modifier
54
- parameterModifier: modifierKind,
55
- } as IrType & { parameterModifier?: "ref" | "out" | "in" };
56
- }
57
-
58
- // Reference type (user-defined or library)
59
- return {
60
- kind: "referenceType",
61
- name: typeName,
62
- typeArguments: node.typeArguments?.map((t) => convertType(t, checker)),
63
- };
64
- };
@@ -1,34 +0,0 @@
1
- /**
2
- * Union and intersection type conversion
3
- */
4
-
5
- import * as ts from "typescript";
6
- import { IrType } from "../types.js";
7
-
8
- /**
9
- * Convert TypeScript union type to IR union type
10
- */
11
- export const convertUnionType = (
12
- node: ts.UnionTypeNode,
13
- checker: ts.TypeChecker,
14
- convertType: (node: ts.TypeNode, checker: ts.TypeChecker) => IrType
15
- ): IrType => {
16
- return {
17
- kind: "unionType",
18
- types: node.types.map((t) => convertType(t, checker)),
19
- };
20
- };
21
-
22
- /**
23
- * Convert TypeScript intersection type to IR intersection type
24
- */
25
- export const convertIntersectionType = (
26
- node: ts.IntersectionTypeNode,
27
- checker: ts.TypeChecker,
28
- convertType: (node: ts.TypeNode, checker: ts.TypeChecker) => IrType
29
- ): IrType => {
30
- return {
31
- kind: "intersectionType",
32
- types: node.types.map((t) => convertType(t, checker)),
33
- };
34
- };
@@ -1,13 +0,0 @@
1
- /**
2
- * Type converter - TypeScript types to IR types
3
- * Main dispatcher - re-exports from type-converter/ subdirectory
4
- */
5
-
6
- export {
7
- convertType,
8
- convertFunctionType,
9
- convertObjectType,
10
- convertBindingName,
11
- inferType,
12
- convertTsTypeToIr,
13
- } from "./type-converter/index.js";
@@ -1,215 +0,0 @@
1
- /**
2
- * Expression types for IR
3
- */
4
-
5
- import { IrType } from "./ir-types.js";
6
- import {
7
- IrParameter,
8
- IrPattern,
9
- IrBinaryOperator,
10
- IrAssignmentOperator,
11
- } from "./helpers.js";
12
- import { IrBlockStatement } from "./statements.js";
13
-
14
- export type IrExpression =
15
- | IrLiteralExpression
16
- | IrIdentifierExpression
17
- | IrArrayExpression
18
- | IrObjectExpression
19
- | IrFunctionExpression
20
- | IrArrowFunctionExpression
21
- | IrMemberExpression
22
- | IrCallExpression
23
- | IrNewExpression
24
- | IrThisExpression
25
- | IrUpdateExpression
26
- | IrUnaryExpression
27
- | IrBinaryExpression
28
- | IrLogicalExpression
29
- | IrConditionalExpression
30
- | IrAssignmentExpression
31
- | IrTemplateLiteralExpression
32
- | IrSpreadExpression
33
- | IrAwaitExpression
34
- | IrYieldExpression;
35
-
36
- export type IrLiteralExpression = {
37
- readonly kind: "literal";
38
- readonly value: string | number | boolean | null | undefined;
39
- readonly raw?: string;
40
- readonly inferredType?: IrType;
41
- };
42
-
43
- export type IrIdentifierExpression = {
44
- readonly kind: "identifier";
45
- readonly name: string;
46
- readonly inferredType?: IrType;
47
- // Resolved binding for globals (console, Math, etc.)
48
- readonly resolvedClrType?: string; // e.g., "Tsonic.Runtime.console"
49
- readonly resolvedAssembly?: string; // e.g., "Tsonic.Runtime"
50
- readonly csharpName?: string; // Optional: renamed identifier in C# (from binding)
51
- // For imported symbols from local modules
52
- readonly importedFrom?: {
53
- readonly containerName: string; // e.g., "Math"
54
- readonly exportName: string; // e.g., "add" (may differ from local name if aliased)
55
- readonly namespace: string; // e.g., "MultiFileCheck.utils"
56
- };
57
- };
58
-
59
- export type IrArrayExpression = {
60
- readonly kind: "array";
61
- readonly elements: readonly (IrExpression | IrSpreadExpression | undefined)[]; // undefined for holes
62
- readonly inferredType?: IrType;
63
- };
64
-
65
- export type IrObjectExpression = {
66
- readonly kind: "object";
67
- readonly properties: readonly IrObjectProperty[];
68
- readonly inferredType?: IrType;
69
- /** Contextual type for object literals in typed positions (return, assignment, etc.) */
70
- readonly contextualType?: IrType;
71
- };
72
-
73
- export type IrObjectProperty =
74
- | {
75
- readonly kind: "property";
76
- readonly key: string | IrExpression;
77
- readonly value: IrExpression;
78
- readonly shorthand: boolean;
79
- }
80
- | { readonly kind: "spread"; readonly expression: IrExpression };
81
-
82
- export type IrFunctionExpression = {
83
- readonly kind: "functionExpression";
84
- readonly name?: string;
85
- readonly parameters: readonly IrParameter[];
86
- readonly returnType?: IrType;
87
- readonly body: IrBlockStatement;
88
- readonly isAsync: boolean;
89
- readonly isGenerator: boolean;
90
- readonly inferredType?: IrType;
91
- };
92
-
93
- export type IrArrowFunctionExpression = {
94
- readonly kind: "arrowFunction";
95
- readonly parameters: readonly IrParameter[];
96
- readonly returnType?: IrType;
97
- readonly body: IrBlockStatement | IrExpression;
98
- readonly isAsync: boolean;
99
- readonly inferredType?: IrType;
100
- };
101
-
102
- export type IrMemberExpression = {
103
- readonly kind: "memberAccess";
104
- readonly object: IrExpression;
105
- readonly property: IrExpression | string;
106
- readonly isComputed: boolean; // true for obj[prop], false for obj.prop
107
- readonly isOptional: boolean; // true for obj?.prop
108
- readonly inferredType?: IrType;
109
- // Hierarchical member binding (from bindings manifest)
110
- // When a member access like systemLinq.enumerable.selectMany is resolved,
111
- // this contains the full CLR binding info
112
- readonly memberBinding?: {
113
- readonly assembly: string; // e.g., "System.Linq"
114
- readonly type: string; // Full CLR type e.g., "System.Linq.Enumerable"
115
- readonly member: string; // CLR member name e.g., "SelectMany"
116
- };
117
- };
118
-
119
- export type IrCallExpression = {
120
- readonly kind: "call";
121
- readonly callee: IrExpression;
122
- readonly arguments: readonly (IrExpression | IrSpreadExpression)[];
123
- readonly isOptional: boolean; // true for func?.()
124
- readonly inferredType?: IrType;
125
- readonly typeArguments?: readonly IrType[]; // Explicit or inferred type arguments
126
- readonly requiresSpecialization?: boolean; // Flag for conditional/unsupported patterns
127
- readonly argumentPassing?: readonly ("value" | "ref" | "out" | "in")[]; // Passing mode for each argument
128
- };
129
-
130
- export type IrNewExpression = {
131
- readonly kind: "new";
132
- readonly callee: IrExpression;
133
- readonly arguments: readonly (IrExpression | IrSpreadExpression)[];
134
- readonly inferredType?: IrType;
135
- readonly typeArguments?: readonly IrType[]; // Explicit or inferred type arguments
136
- readonly requiresSpecialization?: boolean; // Flag for conditional/unsupported patterns
137
- };
138
-
139
- export type IrThisExpression = {
140
- readonly kind: "this";
141
- readonly inferredType?: IrType;
142
- };
143
-
144
- export type IrUpdateExpression = {
145
- readonly kind: "update";
146
- readonly operator: "++" | "--";
147
- readonly prefix: boolean;
148
- readonly expression: IrExpression;
149
- readonly inferredType?: IrType;
150
- };
151
-
152
- export type IrUnaryExpression = {
153
- readonly kind: "unary";
154
- readonly operator: "+" | "-" | "!" | "~" | "typeof" | "void" | "delete";
155
- readonly expression: IrExpression;
156
- readonly inferredType?: IrType;
157
- };
158
-
159
- export type IrBinaryExpression = {
160
- readonly kind: "binary";
161
- readonly operator: IrBinaryOperator;
162
- readonly left: IrExpression;
163
- readonly right: IrExpression;
164
- readonly inferredType?: IrType;
165
- };
166
-
167
- export type IrLogicalExpression = {
168
- readonly kind: "logical";
169
- readonly operator: "&&" | "||" | "??";
170
- readonly left: IrExpression;
171
- readonly right: IrExpression;
172
- readonly inferredType?: IrType;
173
- };
174
-
175
- export type IrConditionalExpression = {
176
- readonly kind: "conditional";
177
- readonly condition: IrExpression;
178
- readonly whenTrue: IrExpression;
179
- readonly whenFalse: IrExpression;
180
- readonly inferredType?: IrType;
181
- };
182
-
183
- export type IrAssignmentExpression = {
184
- readonly kind: "assignment";
185
- readonly operator: IrAssignmentOperator;
186
- readonly left: IrExpression | IrPattern;
187
- readonly right: IrExpression;
188
- readonly inferredType?: IrType;
189
- };
190
-
191
- export type IrTemplateLiteralExpression = {
192
- readonly kind: "templateLiteral";
193
- readonly quasis: readonly string[];
194
- readonly expressions: readonly IrExpression[];
195
- readonly inferredType?: IrType;
196
- };
197
-
198
- export type IrSpreadExpression = {
199
- readonly kind: "spread";
200
- readonly expression: IrExpression;
201
- readonly inferredType?: IrType;
202
- };
203
-
204
- export type IrAwaitExpression = {
205
- readonly kind: "await";
206
- readonly expression: IrExpression;
207
- readonly inferredType?: IrType;
208
- };
209
-
210
- export type IrYieldExpression = {
211
- readonly kind: "yield";
212
- readonly expression?: IrExpression; // Optional for bare `yield`
213
- readonly delegate: boolean; // true for `yield*`, false for `yield`
214
- readonly inferredType?: IrType;
215
- };
@@ -1,39 +0,0 @@
1
- /**
2
- * Type guard helper functions
3
- */
4
-
5
- import { IrStatement } from "./statements.js";
6
- import { IrExpression } from "./expressions.js";
7
-
8
- export const isStatement = (
9
- node: IrStatement | IrExpression
10
- ): node is IrStatement => {
11
- const statementKinds: string[] = [
12
- "variableDeclaration",
13
- "functionDeclaration",
14
- "classDeclaration",
15
- "interfaceDeclaration",
16
- "enumDeclaration",
17
- "typeAliasDeclaration",
18
- "expressionStatement",
19
- "returnStatement",
20
- "ifStatement",
21
- "whileStatement",
22
- "forStatement",
23
- "forOfStatement",
24
- "switchStatement",
25
- "throwStatement",
26
- "tryStatement",
27
- "blockStatement",
28
- "breakStatement",
29
- "continueStatement",
30
- "emptyStatement",
31
- ];
32
- return statementKinds.includes(node.kind);
33
- };
34
-
35
- export const isExpression = (
36
- node: IrStatement | IrExpression
37
- ): node is IrExpression => {
38
- return !isStatement(node);
39
- };
@@ -1,135 +0,0 @@
1
- /**
2
- * Supporting types (patterns, parameters, operators, accessibility, etc.)
3
- */
4
-
5
- import { IrType } from "./ir-types.js";
6
- import { IrExpression } from "./expressions.js";
7
-
8
- // ============================================================================
9
- // Patterns (for destructuring)
10
- // ============================================================================
11
-
12
- export type IrPattern = IrIdentifierPattern | IrArrayPattern | IrObjectPattern;
13
-
14
- export type IrIdentifierPattern = {
15
- readonly kind: "identifierPattern";
16
- readonly name: string;
17
- readonly type?: IrType;
18
- };
19
-
20
- export type IrArrayPattern = {
21
- readonly kind: "arrayPattern";
22
- readonly elements: readonly (IrPattern | undefined)[]; // undefined for holes
23
- };
24
-
25
- export type IrObjectPattern = {
26
- readonly kind: "objectPattern";
27
- readonly properties: readonly IrObjectPatternProperty[];
28
- };
29
-
30
- export type IrObjectPatternProperty =
31
- | {
32
- readonly kind: "property";
33
- readonly key: string;
34
- readonly value: IrPattern;
35
- readonly shorthand: boolean;
36
- }
37
- | { readonly kind: "rest"; readonly pattern: IrPattern };
38
-
39
- // ============================================================================
40
- // Type Parameters
41
- // ============================================================================
42
-
43
- export type IrTypeParameter = {
44
- readonly kind: "typeParameter";
45
- readonly name: string;
46
- readonly constraint?: IrType; // Can reference other type parameters (enables recursion)
47
- readonly default?: IrType;
48
- readonly variance?: "in" | "out"; // For covariance/contravariance
49
- readonly isStructuralConstraint?: boolean; // Flag for { id: number } style constraints
50
- readonly structuralMembers?: readonly IrInterfaceMember[]; // Properties for structural constraints
51
- };
52
-
53
- // ============================================================================
54
- // Parameters
55
- // ============================================================================
56
-
57
- export type IrParameter = {
58
- readonly kind: "parameter";
59
- readonly pattern: IrPattern;
60
- readonly type?: IrType;
61
- readonly initializer?: IrExpression;
62
- readonly isOptional: boolean;
63
- readonly isRest: boolean;
64
- readonly passing: "value" | "ref" | "out" | "in"; // C# parameter passing mode
65
- };
66
-
67
- // ============================================================================
68
- // Interface Members (used by interfaces and object types)
69
- // ============================================================================
70
-
71
- export type IrInterfaceMember = IrPropertySignature | IrMethodSignature;
72
-
73
- export type IrPropertySignature = {
74
- readonly kind: "propertySignature";
75
- readonly name: string;
76
- readonly type: IrType;
77
- readonly isOptional: boolean;
78
- readonly isReadonly: boolean;
79
- };
80
-
81
- export type IrMethodSignature = {
82
- readonly kind: "methodSignature";
83
- readonly name: string;
84
- readonly typeParameters?: readonly IrTypeParameter[];
85
- readonly parameters: readonly IrParameter[];
86
- readonly returnType?: IrType;
87
- };
88
-
89
- // ============================================================================
90
- // Accessibility and Operators
91
- // ============================================================================
92
-
93
- export type IrAccessibility = "public" | "private" | "protected";
94
-
95
- export type IrBinaryOperator =
96
- | "+"
97
- | "-"
98
- | "*"
99
- | "/"
100
- | "%"
101
- | "**"
102
- | "=="
103
- | "!="
104
- | "==="
105
- | "!=="
106
- | "<"
107
- | ">"
108
- | "<="
109
- | ">="
110
- | "<<"
111
- | ">>"
112
- | ">>>"
113
- | "&"
114
- | "|"
115
- | "^"
116
- | "in"
117
- | "instanceof";
118
-
119
- export type IrAssignmentOperator =
120
- | "="
121
- | "+="
122
- | "-="
123
- | "*="
124
- | "/="
125
- | "%="
126
- | "**="
127
- | "<<="
128
- | ">>="
129
- | ">>>="
130
- | "&="
131
- | "|="
132
- | "^="
133
- | "&&="
134
- | "||="
135
- | "??=";
@@ -1,108 +0,0 @@
1
- /**
2
- * IR types barrel exports
3
- * Intermediate Representation (IR) types for Tsonic compiler
4
- */
5
-
6
- // Module types
7
- export type {
8
- IrModule,
9
- IrImport,
10
- IrImportSpecifier,
11
- IrExport,
12
- } from "./module.js";
13
-
14
- // Statement types
15
- export type {
16
- IrStatement,
17
- IrVariableDeclaration,
18
- IrVariableDeclarator,
19
- IrFunctionDeclaration,
20
- IrClassDeclaration,
21
- IrClassMember,
22
- IrMethodDeclaration,
23
- IrPropertyDeclaration,
24
- IrConstructorDeclaration,
25
- IrInterfaceDeclaration,
26
- IrEnumDeclaration,
27
- IrEnumMember,
28
- IrTypeAliasDeclaration,
29
- IrExpressionStatement,
30
- IrReturnStatement,
31
- IrIfStatement,
32
- IrWhileStatement,
33
- IrForStatement,
34
- IrForOfStatement,
35
- IrSwitchStatement,
36
- IrSwitchCase,
37
- IrThrowStatement,
38
- IrTryStatement,
39
- IrCatchClause,
40
- IrBlockStatement,
41
- IrBreakStatement,
42
- IrContinueStatement,
43
- IrEmptyStatement,
44
- } from "./statements.js";
45
-
46
- // Expression types
47
- export type {
48
- IrExpression,
49
- IrLiteralExpression,
50
- IrIdentifierExpression,
51
- IrArrayExpression,
52
- IrObjectExpression,
53
- IrObjectProperty,
54
- IrFunctionExpression,
55
- IrArrowFunctionExpression,
56
- IrMemberExpression,
57
- IrCallExpression,
58
- IrNewExpression,
59
- IrThisExpression,
60
- IrUpdateExpression,
61
- IrUnaryExpression,
62
- IrBinaryExpression,
63
- IrLogicalExpression,
64
- IrConditionalExpression,
65
- IrAssignmentExpression,
66
- IrTemplateLiteralExpression,
67
- IrSpreadExpression,
68
- IrAwaitExpression,
69
- IrYieldExpression,
70
- } from "./expressions.js";
71
-
72
- // Type system types
73
- export type {
74
- IrType,
75
- IrPrimitiveType,
76
- IrReferenceType,
77
- IrArrayType,
78
- IrFunctionType,
79
- IrObjectType,
80
- IrDictionaryType,
81
- IrUnionType,
82
- IrIntersectionType,
83
- IrLiteralType,
84
- IrAnyType,
85
- IrUnknownType,
86
- IrVoidType,
87
- IrNeverType,
88
- } from "./ir-types.js";
89
-
90
- // Helper types
91
- export type {
92
- IrPattern,
93
- IrIdentifierPattern,
94
- IrArrayPattern,
95
- IrObjectPattern,
96
- IrObjectPatternProperty,
97
- IrTypeParameter,
98
- IrParameter,
99
- IrInterfaceMember,
100
- IrPropertySignature,
101
- IrMethodSignature,
102
- IrAccessibility,
103
- IrBinaryOperator,
104
- IrAssignmentOperator,
105
- } from "./helpers.js";
106
-
107
- // Type guards
108
- export { isStatement, isExpression } from "./guards.js";
@@ -1,96 +0,0 @@
1
- /**
2
- * Type system types for IR (IrType and its variants)
3
- */
4
-
5
- import { IrParameter, IrInterfaceMember } from "./helpers.js";
6
-
7
- export type IrType =
8
- | IrPrimitiveType
9
- | IrReferenceType
10
- | IrArrayType
11
- | IrFunctionType
12
- | IrObjectType
13
- | IrDictionaryType
14
- | IrUnionType
15
- | IrIntersectionType
16
- | IrLiteralType
17
- | IrAnyType
18
- | IrUnknownType
19
- | IrVoidType
20
- | IrNeverType;
21
-
22
- export type IrPrimitiveType = {
23
- readonly kind: "primitiveType";
24
- readonly name: "string" | "number" | "boolean" | "null" | "undefined";
25
- };
26
-
27
- export type IrReferenceType = {
28
- readonly kind: "referenceType";
29
- readonly name: string;
30
- readonly typeArguments?: readonly IrType[];
31
- /** Fully-qualified CLR type for imported types (e.g., "MyApp.models.User") */
32
- readonly resolvedClrType?: string;
33
- };
34
-
35
- export type IrArrayType = {
36
- readonly kind: "arrayType";
37
- readonly elementType: IrType;
38
- };
39
-
40
- export type IrFunctionType = {
41
- readonly kind: "functionType";
42
- readonly parameters: readonly IrParameter[];
43
- readonly returnType: IrType;
44
- };
45
-
46
- export type IrObjectType = {
47
- readonly kind: "objectType";
48
- readonly members: readonly IrInterfaceMember[];
49
- };
50
-
51
- /**
52
- * Dictionary/map type for index signatures and Record<K, V>
53
- *
54
- * Examples:
55
- * - `{ [k: string]: T }` → IrDictionaryType { keyType: string, valueType: T }
56
- * - `Record<string, T>` → IrDictionaryType { keyType: string, valueType: T }
57
- *
58
- * Emits to C# Dictionary<TKey, TValue>.
59
- * Access should be via indexer `d["key"]` (dot property access will fail in C#).
60
- */
61
- export type IrDictionaryType = {
62
- readonly kind: "dictionaryType";
63
- readonly keyType: IrType;
64
- readonly valueType: IrType;
65
- };
66
-
67
- export type IrUnionType = {
68
- readonly kind: "unionType";
69
- readonly types: readonly IrType[];
70
- };
71
-
72
- export type IrIntersectionType = {
73
- readonly kind: "intersectionType";
74
- readonly types: readonly IrType[];
75
- };
76
-
77
- export type IrLiteralType = {
78
- readonly kind: "literalType";
79
- readonly value: string | number | boolean;
80
- };
81
-
82
- export type IrAnyType = {
83
- readonly kind: "anyType";
84
- };
85
-
86
- export type IrUnknownType = {
87
- readonly kind: "unknownType";
88
- };
89
-
90
- export type IrVoidType = {
91
- readonly kind: "voidType";
92
- };
93
-
94
- export type IrNeverType = {
95
- readonly kind: "neverType";
96
- };