@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
@@ -0,0 +1,29 @@
1
+ /**
2
+ * TypeScript compiler configuration
3
+ */
4
+ import * as ts from "typescript";
5
+ /**
6
+ * Default TypeScript compiler options for Tsonic
7
+ */
8
+ export const defaultTsConfig = {
9
+ target: ts.ScriptTarget.ES2022,
10
+ module: ts.ModuleKind.NodeNext,
11
+ moduleResolution: ts.ModuleResolutionKind.NodeNext,
12
+ // We use the globals from the BCL bindings directory instead of npm packages
13
+ // The BCL bindings include a globals.d.ts that provides minimal types
14
+ noLib: true,
15
+ types: [], // No npm packages - globals come from BCL bindings typeRoots
16
+ strict: false, // Disabled to allow .NET type usage
17
+ esModuleInterop: true,
18
+ skipLibCheck: true,
19
+ forceConsistentCasingInFileNames: true,
20
+ allowJs: false,
21
+ checkJs: false,
22
+ noEmit: true,
23
+ resolveJsonModule: false,
24
+ isolatedModules: true, // Re-enabled - safe now that DOM globals are gone
25
+ verbatimModuleSyntax: false, // Disabled to allow .NET type imports
26
+ noImplicitAny: false, // Allow any for .NET types
27
+ allowImportingTsExtensions: true, // ESM requires .ts/.js extensions
28
+ };
29
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/program/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAuB;IACjD,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;IAC9B,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ;IAC9B,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ;IAClD,6EAA6E;IAC7E,sEAAsE;IACtE,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE,EAAE,6DAA6D;IACxE,MAAM,EAAE,KAAK,EAAE,oCAAoC;IACnD,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,gCAAgC,EAAE,IAAI;IACtC,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,KAAK;IACxB,eAAe,EAAE,IAAI,EAAE,kDAAkD;IACzE,oBAAoB,EAAE,KAAK,EAAE,sCAAsC;IACnE,aAAa,EAAE,KAAK,EAAE,2BAA2B;IACjD,0BAA0B,EAAE,IAAI,EAAE,kCAAkC;CACrE,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Program creation
3
+ */
4
+ import * as ts from "typescript";
5
+ import { Result } from "../types/result.js";
6
+ import { DiagnosticsCollector } from "../types/diagnostic.js";
7
+ import { CompilerOptions, TsonicProgram } from "./types.js";
8
+ /**
9
+ * Create TypeScript compiler options from Tsonic options
10
+ * Exported for use by dependency graph builder
11
+ */
12
+ export declare const createCompilerOptions: (options: CompilerOptions) => ts.CompilerOptions;
13
+ /**
14
+ * Create a Tsonic program from TypeScript source files
15
+ */
16
+ export declare const createProgram: (filePaths: readonly string[], options: CompilerOptions) => Result<TsonicProgram, DiagnosticsCollector>;
17
+ //# sourceMappingURL=creation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creation.d.ts","sourceRoot":"","sources":["../../src/program/creation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,MAAM,EAAa,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA8B5D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,eAAe,KACvB,EAAE,CAAC,eAkBL,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,SAAS,MAAM,EAAE,EAC5B,SAAS,eAAe,KACvB,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAiL5C,CAAC"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Program creation
3
+ */
4
+ import * as ts from "typescript";
5
+ import * as path from "node:path";
6
+ import * as fs from "node:fs";
7
+ import { ok, error } from "../types/result.js";
8
+ import { defaultTsConfig } from "./config.js";
9
+ import { loadDotnetMetadata } from "./metadata.js";
10
+ import { loadBindings } from "./bindings.js";
11
+ import { collectTsDiagnostics } from "./diagnostics.js";
12
+ import { createDotNetImportResolver } from "../resolver/dotnet-import-resolver.js";
13
+ /**
14
+ * Recursively scan a directory for .d.ts files
15
+ */
16
+ const scanForDeclarationFiles = (dir) => {
17
+ if (!fs.existsSync(dir)) {
18
+ return [];
19
+ }
20
+ const results = [];
21
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
22
+ for (const entry of entries) {
23
+ const fullPath = path.join(dir, entry.name);
24
+ if (entry.isDirectory()) {
25
+ results.push(...scanForDeclarationFiles(fullPath));
26
+ }
27
+ else if (entry.name.endsWith(".d.ts")) {
28
+ results.push(fullPath);
29
+ }
30
+ }
31
+ return results;
32
+ };
33
+ /**
34
+ * Create TypeScript compiler options from Tsonic options
35
+ * Exported for use by dependency graph builder
36
+ */
37
+ export const createCompilerOptions = (options) => {
38
+ const baseConfig = {
39
+ ...defaultTsConfig,
40
+ strict: options.strict ?? true,
41
+ rootDir: options.sourceRoot,
42
+ };
43
+ // When useStandardLib is true, disable noLib to use TypeScript's built-in types
44
+ // This is useful for tests that don't have access to BCL bindings
45
+ if (options.useStandardLib) {
46
+ return {
47
+ ...baseConfig,
48
+ noLib: false,
49
+ types: undefined, // Use default type resolution
50
+ };
51
+ }
52
+ return baseConfig;
53
+ };
54
+ /**
55
+ * Create a Tsonic program from TypeScript source files
56
+ */
57
+ export const createProgram = (filePaths, options) => {
58
+ const absolutePaths = filePaths.map((fp) => path.resolve(fp));
59
+ // Get declaration files from type roots
60
+ const typeRoots = options.typeRoots ?? [
61
+ "node_modules/@tsonic/dotnet-types/types",
62
+ ];
63
+ // Debug log typeRoots
64
+ if (options.verbose && typeRoots.length > 0) {
65
+ console.log(`TypeRoots: ${typeRoots.join(", ")}`);
66
+ }
67
+ const declarationFiles = [];
68
+ for (const typeRoot of typeRoots) {
69
+ const absoluteRoot = path.resolve(typeRoot);
70
+ declarationFiles.push(...scanForDeclarationFiles(absoluteRoot));
71
+ }
72
+ // Add the main index.d.ts files for .NET namespaces directly to the file list
73
+ const namespaceIndexFiles = [];
74
+ for (const typeRoot of typeRoots) {
75
+ const absoluteRoot = path.resolve(typeRoot);
76
+ if (options.verbose) {
77
+ console.log(`Checking typeRoot: ${absoluteRoot}, exists: ${fs.existsSync(absoluteRoot)}`);
78
+ }
79
+ if (fs.existsSync(absoluteRoot)) {
80
+ const entries = fs.readdirSync(absoluteRoot, { withFileTypes: true });
81
+ for (const entry of entries) {
82
+ if (entry.isDirectory() &&
83
+ !entry.name.startsWith("_") &&
84
+ !entry.name.startsWith("internal")) {
85
+ const indexPath = path.join(absoluteRoot, entry.name, "index.d.ts");
86
+ if (fs.existsSync(indexPath)) {
87
+ namespaceIndexFiles.push(indexPath);
88
+ if (options.verbose) {
89
+ console.log(` Found namespace: ${entry.name} -> ${indexPath}`);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ // Combine source files, declaration files, and namespace index files
97
+ // Note: globals.d.ts should be in the BCL bindings directory (typeRoots)
98
+ const allFiles = [
99
+ ...absolutePaths,
100
+ ...declarationFiles,
101
+ ...namespaceIndexFiles,
102
+ ];
103
+ const tsOptions = createCompilerOptions(options);
104
+ // Create custom compiler host with virtual .NET module declarations
105
+ const host = ts.createCompilerHost(tsOptions);
106
+ // Map of .NET namespace names to their declaration file paths
107
+ const namespaceFiles = new Map();
108
+ for (const indexFile of namespaceIndexFiles) {
109
+ // Extract namespace name from path (e.g., /path/to/System/index.d.ts -> System)
110
+ const dirName = path.basename(path.dirname(indexFile));
111
+ namespaceFiles.set(dirName, indexFile);
112
+ }
113
+ // Log namespace mappings when verbose
114
+ if (options.verbose && namespaceFiles.size > 0) {
115
+ console.log(`Found ${namespaceFiles.size} .NET namespace declarations`);
116
+ for (const [ns, file] of namespaceFiles) {
117
+ console.log(` ${ns} -> ${file}`);
118
+ }
119
+ }
120
+ // Override getSourceFile to provide virtual module declarations
121
+ const originalGetSourceFile = host.getSourceFile;
122
+ host.getSourceFile = (fileName, languageVersion, onError, shouldCreateNewSourceFile) => {
123
+ // Check if this is a .NET namespace being imported
124
+ const baseName = path.basename(fileName, path.extname(fileName));
125
+ if (namespaceFiles.has(baseName) && fileName.endsWith(".ts")) {
126
+ // Create a virtual source file that exports from the actual declaration
127
+ const declarationPath = namespaceFiles.get(baseName);
128
+ const virtualContent = `export * from '${declarationPath.replace(/\.d\.ts$/, "")}';`;
129
+ return ts.createSourceFile(fileName, virtualContent, languageVersion, true);
130
+ }
131
+ return originalGetSourceFile.call(host, fileName, languageVersion, onError, shouldCreateNewSourceFile);
132
+ };
133
+ // Override resolveModuleNames to handle .NET imports
134
+ host.resolveModuleNames = (moduleNames, containingFile) => {
135
+ return moduleNames.map((moduleName) => {
136
+ // Debug log
137
+ if (options.verbose) {
138
+ console.log(`Resolving module: ${moduleName} from ${containingFile}`);
139
+ }
140
+ // Check if this is a .NET namespace
141
+ if (namespaceFiles.has(moduleName)) {
142
+ const resolvedFile = namespaceFiles.get(moduleName);
143
+ if (options.verbose) {
144
+ console.log(` Resolved .NET namespace ${moduleName} to ${resolvedFile}`);
145
+ }
146
+ return {
147
+ resolvedFileName: resolvedFile,
148
+ isExternalLibraryImport: true,
149
+ };
150
+ }
151
+ // Use default resolution for other modules
152
+ const result = ts.resolveModuleName(moduleName, containingFile, tsOptions, host);
153
+ return result.resolvedModule;
154
+ });
155
+ };
156
+ const program = ts.createProgram(allFiles, tsOptions, host);
157
+ const diagnostics = collectTsDiagnostics(program);
158
+ if (diagnostics.hasErrors) {
159
+ return error(diagnostics);
160
+ }
161
+ const sourceFiles = program
162
+ .getSourceFiles()
163
+ .filter((sf) => !sf.isDeclarationFile && absolutePaths.includes(sf.fileName));
164
+ // Load .NET metadata files
165
+ const metadata = loadDotnetMetadata(typeRoots);
166
+ // Load binding manifests (from typeRoots - for ambient globals)
167
+ const bindings = loadBindings(typeRoots);
168
+ // Create resolver for import-driven .NET namespace discovery
169
+ const dotnetResolver = createDotNetImportResolver(options.sourceRoot);
170
+ return ok({
171
+ program,
172
+ checker: program.getTypeChecker(),
173
+ options,
174
+ sourceFiles,
175
+ metadata,
176
+ bindings,
177
+ dotnetResolver,
178
+ });
179
+ };
180
+ //# sourceMappingURL=creation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creation.js","sourceRoot":"","sources":["../../src/program/creation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Dependency graph builder - Multi-file compilation
3
+ * Traverses local imports using ts.resolveModuleName()
4
+ */
5
+ import { Result } from "../types/result.js";
6
+ import { Diagnostic } from "../types/diagnostic.js";
7
+ import { IrModule } from "../ir/types.js";
8
+ import { CompilerOptions } from "./types.js";
9
+ export type ModuleDependencyGraphResult = {
10
+ readonly modules: readonly IrModule[];
11
+ readonly entryModule: IrModule;
12
+ };
13
+ /**
14
+ * Build complete module dependency graph from entry point
15
+ * Traverses all local imports and builds IR for all discovered modules
16
+ * Uses TypeScript's ts.resolveModuleName() for correct module resolution
17
+ */
18
+ export declare const buildModuleDependencyGraph: (entryFile: string, options: CompilerOptions) => Result<ModuleDependencyGraphResult, readonly Diagnostic[]>;
19
+ //# sourceMappingURL=dependency-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../src/program/dependency-graph.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,EAAa,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAoB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;CAChC,CAAC;AA2BF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,WAAW,MAAM,EACjB,SAAS,eAAe,KACvB,MAAM,CAAC,2BAA2B,EAAE,SAAS,UAAU,EAAE,CAgM3D,CAAC"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Dependency graph builder - Multi-file compilation
3
+ * Traverses local imports using ts.resolveModuleName()
4
+ */
5
+ import * as ts from "typescript";
6
+ import { relative, resolve } from "path";
7
+ import { ok, error } from "../types/result.js";
8
+ import { createDiagnostic } from "../types/diagnostic.js";
9
+ import { buildIrModule } from "../ir/builder/orchestrator.js";
10
+ import { createProgram, createCompilerOptions } from "./creation.js";
11
+ /**
12
+ * Extract module specifier from import or re-export declaration
13
+ * Returns the module specifier string literal, or null if not applicable
14
+ */
15
+ const getModuleSpecifier = (stmt) => {
16
+ // Handle: import { x } from "./module"
17
+ if (ts.isImportDeclaration(stmt) &&
18
+ ts.isStringLiteral(stmt.moduleSpecifier)) {
19
+ return stmt.moduleSpecifier;
20
+ }
21
+ // Handle: export { x } from "./module" (re-exports)
22
+ if (ts.isExportDeclaration(stmt) &&
23
+ stmt.moduleSpecifier &&
24
+ ts.isStringLiteral(stmt.moduleSpecifier)) {
25
+ return stmt.moduleSpecifier;
26
+ }
27
+ return null;
28
+ };
29
+ /**
30
+ * Build complete module dependency graph from entry point
31
+ * Traverses all local imports and builds IR for all discovered modules
32
+ * Uses TypeScript's ts.resolveModuleName() for correct module resolution
33
+ */
34
+ export const buildModuleDependencyGraph = (entryFile, options) => {
35
+ const diagnostics = [];
36
+ // Normalize entry file and source root to absolute paths
37
+ const entryAbs = resolve(entryFile);
38
+ const sourceRootAbs = resolve(options.sourceRoot);
39
+ // Get TypeScript compiler options for module resolution
40
+ const compilerOptions = createCompilerOptions(options);
41
+ // Track all discovered files for later type checking
42
+ const allDiscoveredFiles = [];
43
+ // BFS to discover all local imports
44
+ const visited = new Set();
45
+ const queue = [entryAbs];
46
+ // First pass: discover all files
47
+ while (queue.length > 0) {
48
+ const currentFile = queue.shift();
49
+ // Dedup by realpath (handles symlinks, relative paths)
50
+ const realPath = ts.sys.realpath?.(currentFile) ?? currentFile;
51
+ if (visited.has(realPath)) {
52
+ continue;
53
+ }
54
+ visited.add(realPath);
55
+ allDiscoveredFiles.push(realPath);
56
+ // Read source file directly from filesystem
57
+ const sourceText = ts.sys.readFile(currentFile);
58
+ if (!sourceText) {
59
+ // Missing file - add diagnostic but continue traversal
60
+ const relativeCurrent = relative(sourceRootAbs, currentFile);
61
+ diagnostics.push(createDiagnostic("TSN1002", "error", `Cannot find module '${relativeCurrent}'`, {
62
+ file: currentFile,
63
+ line: 1,
64
+ column: 1,
65
+ length: 1,
66
+ }));
67
+ continue;
68
+ }
69
+ // Parse source file to extract imports
70
+ const sourceFile = ts.createSourceFile(currentFile, sourceText, ts.ScriptTarget.Latest, true);
71
+ // Extract local imports and re-exports using TypeScript's resolution
72
+ for (const stmt of sourceFile.statements) {
73
+ // Handle import declarations: import { x } from "./module"
74
+ // Handle re-export declarations: export { x } from "./module"
75
+ const moduleSpecifier = getModuleSpecifier(stmt);
76
+ if (!moduleSpecifier) {
77
+ continue;
78
+ }
79
+ const importSpecifier = moduleSpecifier.text;
80
+ // Only process local imports (starts with . or /)
81
+ if (!importSpecifier.startsWith(".") &&
82
+ !importSpecifier.startsWith("/")) {
83
+ continue;
84
+ }
85
+ // Resolve using TypeScript's module resolution
86
+ const resolved = ts.resolveModuleName(importSpecifier, currentFile, compilerOptions, ts.sys);
87
+ if (resolved.resolvedModule?.resolvedFileName) {
88
+ const resolvedPath = resolved.resolvedModule.resolvedFileName;
89
+ // Only include .ts files (not .d.ts) within source root
90
+ if (resolvedPath.startsWith(sourceRootAbs) &&
91
+ resolvedPath.endsWith(".ts") &&
92
+ !resolvedPath.endsWith(".d.ts")) {
93
+ queue.push(resolvedPath);
94
+ }
95
+ }
96
+ else {
97
+ // Import resolution failed - add diagnostic with context
98
+ const relativeCurrent = relative(sourceRootAbs, currentFile);
99
+ diagnostics.push(createDiagnostic("TSN1002", "error", `Cannot resolve import '${importSpecifier}' from '${relativeCurrent}'`, {
100
+ file: currentFile,
101
+ line: stmt.getStart(sourceFile),
102
+ column: 1,
103
+ length: importSpecifier.length,
104
+ }));
105
+ }
106
+ }
107
+ }
108
+ // If any diagnostics from discovery, fail the build
109
+ if (diagnostics.length > 0) {
110
+ return error(diagnostics);
111
+ }
112
+ // Ensure we discovered at least the entry file
113
+ if (allDiscoveredFiles.length === 0) {
114
+ return error([
115
+ createDiagnostic("TSN1002", "error", `No modules found starting from entry point '${entryFile}'`, {
116
+ file: entryFile,
117
+ line: 1,
118
+ column: 1,
119
+ length: 1,
120
+ }),
121
+ ]);
122
+ }
123
+ // Second pass: Create TypeScript program with all discovered files for type checking
124
+ // Use absolute sourceRoot for consistency
125
+ const programResult = createProgram(allDiscoveredFiles, {
126
+ ...options,
127
+ sourceRoot: sourceRootAbs,
128
+ });
129
+ if (!programResult.ok) {
130
+ return error(programResult.error.diagnostics);
131
+ }
132
+ const tsonicProgram = programResult.value;
133
+ // Third pass: Build IR for all discovered modules
134
+ const modules = [];
135
+ for (const filePath of allDiscoveredFiles) {
136
+ const sourceFile = tsonicProgram.program.getSourceFile(filePath);
137
+ if (!sourceFile) {
138
+ // This shouldn't happen since we already verified files exist
139
+ continue;
140
+ }
141
+ const moduleResult = buildIrModule(sourceFile, tsonicProgram, {
142
+ sourceRoot: sourceRootAbs,
143
+ rootNamespace: options.rootNamespace,
144
+ });
145
+ if (!moduleResult.ok) {
146
+ diagnostics.push(moduleResult.error);
147
+ continue;
148
+ }
149
+ modules.push(moduleResult.value);
150
+ }
151
+ // If any diagnostics from IR building, fail the build
152
+ if (diagnostics.length > 0) {
153
+ return error(diagnostics);
154
+ }
155
+ // Sort modules by relative path for deterministic output
156
+ modules.sort((a, b) => a.filePath.localeCompare(b.filePath));
157
+ // Entry module is the first one (after sorting, it should be the entry file)
158
+ // But let's find it by matching the entry file path
159
+ const entryRelative = relative(sourceRootAbs, entryAbs).replace(/\\/g, "/");
160
+ const entryModule = modules.find((m) => m.filePath === entryRelative) ?? modules[0];
161
+ return ok({
162
+ modules,
163
+ entryModule,
164
+ });
165
+ };
166
+ //# sourceMappingURL=dependency-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-graph.js","sourceRoot":"","sources":["../../src/program/dependency-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * TypeScript diagnostics collection and conversion
3
+ */
4
+ import * as ts from "typescript";
5
+ import { Diagnostic, DiagnosticsCollector } from "../types/diagnostic.js";
6
+ /**
7
+ * Collect all TypeScript diagnostics from a program
8
+ */
9
+ export declare const collectTsDiagnostics: (program: ts.Program) => DiagnosticsCollector;
10
+ /**
11
+ * Convert TypeScript diagnostic to Tsonic diagnostic
12
+ */
13
+ export declare const convertTsDiagnostic: (tsDiag: ts.Diagnostic) => Diagnostic | null;
14
+ /**
15
+ * Get source location information from TypeScript source file
16
+ */
17
+ export declare const getSourceLocation: (file: ts.SourceFile, start: number, length: number) => {
18
+ readonly file: string;
19
+ readonly line: number;
20
+ readonly column: number;
21
+ readonly length: number;
22
+ };
23
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/program/diagnostics.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,UAAU,EACV,oBAAoB,EAIrB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,EAAE,CAAC,OAAO,KAClB,oBAaF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,EAAE,CAAC,UAAU,KACpB,UAAU,GAAG,IA0Cf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,EAAE,CAAC,UAAU,EACnB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CASzB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * TypeScript diagnostics collection and conversion
3
+ */
4
+ import * as ts from "typescript";
5
+ import { createDiagnosticsCollector, addDiagnostic, createDiagnostic, } from "../types/diagnostic.js";
6
+ /**
7
+ * Collect all TypeScript diagnostics from a program
8
+ */
9
+ export const collectTsDiagnostics = (program) => {
10
+ const tsDiagnostics = [
11
+ ...program.getConfigFileParsingDiagnostics(),
12
+ ...program.getOptionsDiagnostics(),
13
+ ...program.getSyntacticDiagnostics(),
14
+ ...program.getGlobalDiagnostics(),
15
+ ...program.getSemanticDiagnostics(),
16
+ ];
17
+ return tsDiagnostics.reduce((collector, tsDiag) => {
18
+ const diagnostic = convertTsDiagnostic(tsDiag);
19
+ return diagnostic ? addDiagnostic(collector, diagnostic) : collector;
20
+ }, createDiagnosticsCollector());
21
+ };
22
+ /**
23
+ * Convert TypeScript diagnostic to Tsonic diagnostic
24
+ */
25
+ export const convertTsDiagnostic = (tsDiag) => {
26
+ if (tsDiag.category === ts.DiagnosticCategory.Suggestion) {
27
+ return null; // Ignore suggestions
28
+ }
29
+ const message = ts.flattenDiagnosticMessageText(tsDiag.messageText, "\n");
30
+ // Ignore "type used as value" errors for .NET types
31
+ // These are handled by the Tsonic compiler
32
+ if (message.includes("only refers to a type, but is being used as a value") &&
33
+ tsDiag.file) {
34
+ // Check if this is a .NET import
35
+ const sourceText = tsDiag.file.getText();
36
+ if (sourceText.includes('from "System') ||
37
+ sourceText.includes('from "Microsoft') ||
38
+ sourceText.includes('from "Windows')) {
39
+ return null; // Ignore - will be handled by Tsonic
40
+ }
41
+ }
42
+ const severity = tsDiag.category === ts.DiagnosticCategory.Error
43
+ ? "error"
44
+ : tsDiag.category === ts.DiagnosticCategory.Warning
45
+ ? "warning"
46
+ : "info";
47
+ const location = tsDiag.file && tsDiag.start !== undefined
48
+ ? getSourceLocation(tsDiag.file, tsDiag.start, tsDiag.length ?? 1)
49
+ : undefined;
50
+ return createDiagnostic("TSN2001", // Generic TypeScript error
51
+ severity, message, location);
52
+ };
53
+ /**
54
+ * Get source location information from TypeScript source file
55
+ */
56
+ export const getSourceLocation = (file, start, length) => {
57
+ const { line, character } = file.getLineAndCharacterOfPosition(start);
58
+ return {
59
+ file: file.fileName,
60
+ line: line + 1,
61
+ column: character + 1,
62
+ length,
63
+ };
64
+ };
65
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/program/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,12 @@
1
1
  /**
2
2
  * Program - Public API
3
3
  */
4
-
5
4
  export type { CompilerOptions, TsonicProgram, RuntimeMode } from "./types.js";
6
5
  export { defaultTsConfig } from "./config.js";
7
6
  export { loadDotnetMetadata } from "./metadata.js";
8
7
  export { BindingRegistry, loadBindings } from "./bindings.js";
9
- export {
10
- collectTsDiagnostics,
11
- convertTsDiagnostic,
12
- getSourceLocation,
13
- } from "./diagnostics.js";
8
+ export { collectTsDiagnostics, convertTsDiagnostic, getSourceLocation, } from "./diagnostics.js";
14
9
  export { createProgram, createCompilerOptions } from "./creation.js";
15
10
  export { getSourceFile } from "./queries.js";
16
- export {
17
- buildModuleDependencyGraph,
18
- type ModuleDependencyGraphResult,
19
- } from "./dependency-graph.js";
11
+ export { buildModuleDependencyGraph, type ModuleDependencyGraphResult, } from "./dependency-graph.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/program/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,0BAA0B,EAC1B,KAAK,2BAA2B,GACjC,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Program - Public API
3
+ */
4
+ export { defaultTsConfig } from "./config.js";
5
+ export { loadDotnetMetadata } from "./metadata.js";
6
+ export { BindingRegistry, loadBindings } from "./bindings.js";
7
+ export { collectTsDiagnostics, convertTsDiagnostic, getSourceLocation, } from "./diagnostics.js";
8
+ export { createProgram, createCompilerOptions } from "./creation.js";
9
+ export { getSourceFile } from "./queries.js";
10
+ export { buildModuleDependencyGraph, } from "./dependency-graph.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/program/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,0BAA0B,GAE3B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * .NET metadata file loading
3
+ */
4
+ import { DotnetMetadataRegistry } from "../dotnet-metadata.js";
5
+ /**
6
+ * Load .NET metadata files from configured type roots
7
+ * Looks for *.metadata.json files alongside .d.ts files
8
+ */
9
+ export declare const loadDotnetMetadata: (typeRoots: readonly string[]) => DotnetMetadataRegistry;
10
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/program/metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,sBAAsB,EAEvB,MAAM,uBAAuB,CAAC;AAyB/B;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,MAAM,EAAE,KAC3B,sBA2BF,CAAC"}