@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,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
- };