@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,113 +0,0 @@
1
- /**
2
- * Tests for explicit interface views handling
3
- */
4
-
5
- import { describe, it } from "mocha";
6
- import { strict as assert } from "assert";
7
- import {
8
- isExplicitViewProperty,
9
- extractInterfaceNameFromView,
10
- buildViewPropertyName,
11
- generateInterfaceCast,
12
- generateGenericInterfaceCast,
13
- } from "./explicit-views.js";
14
-
15
- describe("Explicit Interface Views", () => {
16
- describe("isExplicitViewProperty", () => {
17
- it("should detect As_IInterface pattern", () => {
18
- assert.ok(isExplicitViewProperty("As_ICollection"));
19
- assert.ok(isExplicitViewProperty("As_IEnumerable"));
20
- });
21
-
22
- it("should return false for non-view properties", () => {
23
- assert.ok(!isExplicitViewProperty("Length"));
24
- assert.ok(!isExplicitViewProperty("Count"));
25
- });
26
- });
27
-
28
- describe("extractInterfaceNameFromView", () => {
29
- it("should extract interface name from As_ prefix", () => {
30
- const name = extractInterfaceNameFromView("As_ICollection");
31
-
32
- assert.equal(name, "ICollection");
33
- });
34
-
35
- it("should handle generic interface names", () => {
36
- const name = extractInterfaceNameFromView("As_IEnumerable_1");
37
-
38
- assert.equal(name, "IEnumerable_1");
39
- });
40
-
41
- it("should return undefined for invalid pattern", () => {
42
- const name = extractInterfaceNameFromView("InvalidProperty");
43
-
44
- assert.equal(name, undefined);
45
- });
46
- });
47
-
48
- describe("buildViewPropertyName", () => {
49
- it("should build As_ property name from interface", () => {
50
- const name = buildViewPropertyName("ICollection");
51
-
52
- assert.equal(name, "As_ICollection");
53
- });
54
-
55
- it("should handle generic interfaces", () => {
56
- const name = buildViewPropertyName("IEnumerable_1");
57
-
58
- assert.equal(name, "As_IEnumerable_1");
59
- });
60
- });
61
-
62
- describe("generateInterfaceCast", () => {
63
- it("should generate C# cast expression", () => {
64
- const cast = generateInterfaceCast(
65
- "list",
66
- "System.Collections.ICollection"
67
- );
68
-
69
- assert.equal(cast, "((ICollection)list)");
70
- });
71
-
72
- it("should extract short name from qualified name", () => {
73
- const cast = generateInterfaceCast(
74
- "obj",
75
- "System.Collections.Generic.IEnumerable"
76
- );
77
-
78
- assert.equal(cast, "((IEnumerable)obj)");
79
- });
80
- });
81
-
82
- describe("generateGenericInterfaceCast", () => {
83
- it("should generate generic cast with type arguments", () => {
84
- const cast = generateGenericInterfaceCast(
85
- "list",
86
- "System.Collections.Generic.ICollection`1",
87
- ["string"]
88
- );
89
-
90
- assert.equal(cast, "((ICollection<string>)list)");
91
- });
92
-
93
- it("should handle multiple type arguments", () => {
94
- const cast = generateGenericInterfaceCast(
95
- "dict",
96
- "System.Collections.Generic.IDictionary`2",
97
- ["string", "int"]
98
- );
99
-
100
- assert.equal(cast, "((IDictionary<string, int>)dict)");
101
- });
102
-
103
- it("should handle empty type arguments", () => {
104
- const cast = generateGenericInterfaceCast(
105
- "obj",
106
- "System.Collections.ICollection",
107
- []
108
- );
109
-
110
- assert.equal(cast, "((ICollection)obj)");
111
- });
112
- });
113
- });
@@ -1,218 +0,0 @@
1
- /**
2
- * Explicit Interface Views - Handle As_IInterface pattern for explicit implementations.
3
- *
4
- * C# supports explicit interface implementation (EII), where a class implements
5
- * an interface member explicitly. TypeScript doesn't support EII, so tsbindgen
6
- * generates special As_IInterface properties that return views of the object.
7
- *
8
- * Example:
9
- * TypeScript: list.As_ICollection.CopyTo(array, 0)
10
- * C#: ((ICollection<T>)list).CopyTo(array, 0)
11
- *
12
- * @see spec/explicit-interface-views.md for complete documentation
13
- */
14
-
15
- import type { ExplicitView } from "./metadata.ts";
16
-
17
- /**
18
- * Pattern for explicit interface view property names.
19
- * Format: As_IInterfaceName
20
- */
21
- const VIEW_PROPERTY_PREFIX = "As_";
22
- const VIEW_PROPERTY_PATTERN = /^As_(.+)$/;
23
-
24
- /**
25
- * Check if a property name matches the explicit view pattern (As_IInterface).
26
- *
27
- * @param propertyName - Property name to check
28
- * @returns True if matches As_IInterface pattern
29
- */
30
- export const isExplicitViewProperty = (propertyName: string): boolean => {
31
- return propertyName.startsWith(VIEW_PROPERTY_PREFIX);
32
- };
33
-
34
- /**
35
- * Extract interface name from an explicit view property name.
36
- *
37
- * @param viewPropertyName - Property name (e.g., "As_ICollection")
38
- * @returns Interface name (e.g., "ICollection"), or undefined if not a view property
39
- */
40
- export const extractInterfaceNameFromView = (
41
- viewPropertyName: string
42
- ): string | undefined => {
43
- const match = viewPropertyName.match(VIEW_PROPERTY_PATTERN);
44
- if (!match) {
45
- return undefined;
46
- }
47
- return match[1];
48
- };
49
-
50
- /**
51
- * Build explicit view property name from interface name.
52
- *
53
- * @param interfaceName - Interface name (e.g., "ICollection")
54
- * @returns View property name (e.g., "As_ICollection")
55
- */
56
- export const buildViewPropertyName = (interfaceName: string): string => {
57
- return `${VIEW_PROPERTY_PREFIX}${interfaceName}`;
58
- };
59
-
60
- /**
61
- * Find explicit view for a given interface in type metadata.
62
- *
63
- * @param explicitViews - Array of explicit views from metadata
64
- * @param interfaceName - CLR interface name to find (e.g., "System.Collections.ICollection")
65
- * @returns Explicit view if found, undefined otherwise
66
- */
67
- export const findExplicitView = (
68
- explicitViews: readonly ExplicitView[] | undefined,
69
- interfaceName: string
70
- ): ExplicitView | undefined => {
71
- if (!explicitViews) {
72
- return undefined;
73
- }
74
-
75
- return explicitViews.find((view) => view.interfaceName === interfaceName);
76
- };
77
-
78
- /**
79
- * Check if a member is in an explicit view (view-only member).
80
- *
81
- * @param explicitViews - Array of explicit views from metadata
82
- * @param memberName - CLR member name to check
83
- * @returns True if member appears in any view
84
- */
85
- export const isMemberInExplicitView = (
86
- explicitViews: readonly ExplicitView[] | undefined,
87
- memberName: string
88
- ): boolean => {
89
- if (!explicitViews) {
90
- return false;
91
- }
92
-
93
- for (const view of explicitViews) {
94
- if (view.members.some((m) => m.clrName === memberName)) {
95
- return true;
96
- }
97
- }
98
-
99
- return false;
100
- };
101
-
102
- /**
103
- * Get all interface names that have explicit views.
104
- *
105
- * @param explicitViews - Array of explicit views from metadata
106
- * @returns Array of interface CLR names
107
- */
108
- export const getExplicitViewInterfaces = (
109
- explicitViews: readonly ExplicitView[] | undefined
110
- ): readonly string[] => {
111
- if (!explicitViews) {
112
- return [];
113
- }
114
-
115
- return explicitViews.map((view) => view.interfaceName);
116
- };
117
-
118
- /**
119
- * Information about an explicit view member access.
120
- */
121
- export type ExplicitViewAccess = {
122
- readonly interfaceName: string;
123
- readonly interfaceTsName: string;
124
- readonly memberName: string;
125
- readonly memberKind: "Method" | "Property" | "Event";
126
- };
127
-
128
- /**
129
- * Parse an explicit view member access expression.
130
- *
131
- * Example: obj.As_ICollection.CopyTo
132
- * Returns: { interfaceName: "ICollection", memberName: "CopyTo", ... }
133
- *
134
- * @param viewPropertyName - View property name (e.g., "As_ICollection")
135
- * @param memberName - Member being accessed (e.g., "CopyTo")
136
- * @param explicitViews - Array of explicit views from metadata
137
- * @returns View access info if valid, undefined if invalid
138
- */
139
- export const parseExplicitViewAccess = (
140
- viewPropertyName: string,
141
- memberName: string,
142
- explicitViews: readonly ExplicitView[] | undefined
143
- ): ExplicitViewAccess | undefined => {
144
- // Extract interface name from view property
145
- const interfaceTsName = extractInterfaceNameFromView(viewPropertyName);
146
- if (!interfaceTsName) {
147
- return undefined;
148
- }
149
-
150
- // Find the explicit view in metadata
151
- if (!explicitViews) {
152
- return undefined;
153
- }
154
-
155
- // Look for view that matches the property name
156
- const view = explicitViews.find((v) => v.tsPropertyName === viewPropertyName);
157
- if (!view) {
158
- return undefined;
159
- }
160
-
161
- // Find the member in the view
162
- const member = view.members.find((m) => m.name === memberName);
163
- if (!member) {
164
- return undefined;
165
- }
166
-
167
- return {
168
- interfaceName: view.interfaceName,
169
- interfaceTsName,
170
- memberName: member.name,
171
- memberKind: member.kind,
172
- };
173
- };
174
-
175
- /**
176
- * Generate C# interface cast expression for explicit view access.
177
- *
178
- * @param objectExpression - C# expression for the object
179
- * @param interfaceName - CLR interface name (e.g., "System.Collections.ICollection")
180
- * @returns C# cast expression (e.g., "((ICollection)obj)")
181
- */
182
- export const generateInterfaceCast = (
183
- objectExpression: string,
184
- interfaceName: string
185
- ): string => {
186
- // Extract short name from fully-qualified name
187
- const shortName = interfaceName.split(".").pop() || interfaceName;
188
-
189
- return `((${shortName})${objectExpression})`;
190
- };
191
-
192
- /**
193
- * Generate C# interface cast with generics.
194
- *
195
- * @param objectExpression - C# expression for the object
196
- * @param interfaceName - CLR interface name (e.g., "System.Collections.Generic.ICollection`1")
197
- * @param genericArguments - Generic type arguments in C# syntax (e.g., ["string"])
198
- * @returns C# cast expression (e.g., "((ICollection<string>)obj)")
199
- */
200
- export const generateGenericInterfaceCast = (
201
- objectExpression: string,
202
- interfaceName: string,
203
- genericArguments: readonly string[]
204
- ): string => {
205
- // Extract short name from fully-qualified name
206
- const shortName = interfaceName.split(".").pop() || interfaceName;
207
-
208
- // Remove generic arity suffix (`1, `2, etc.)
209
- const nameWithoutArity = shortName.replace(/`\d+$/, "");
210
-
211
- // Build generic type
212
- const genericType =
213
- genericArguments.length > 0
214
- ? `${nameWithoutArity}<${genericArguments.join(", ")}>`
215
- : nameWithoutArity;
216
-
217
- return `((${genericType})${objectExpression})`;
218
- };
@@ -1,229 +0,0 @@
1
- /**
2
- * Type definitions for .NET metadata.json files generated by tsbindgen.
3
- *
4
- * These types represent the CLR type system metadata in a TypeScript-friendly format.
5
- * All property names use camelCase (JavaScript convention).
6
- *
7
- * @see spec/metadata.md for complete schema documentation
8
- */
9
-
10
- /**
11
- * Root metadata file structure.
12
- * Represents a single namespace with all its types.
13
- */
14
- export type MetadataFile = {
15
- readonly namespace: string;
16
- readonly contributingAssemblies: string[];
17
- readonly types: TypeMetadata[];
18
- };
19
-
20
- /**
21
- * Type kind enumeration.
22
- * Represents the fundamental kind of CLR type.
23
- */
24
- export type TypeKind = "Class" | "Interface" | "Struct" | "Enum" | "Delegate";
25
-
26
- /**
27
- * Accessibility level enumeration.
28
- * Represents CLR accessibility modifiers.
29
- */
30
- export type Accessibility =
31
- | "Public"
32
- | "Internal"
33
- | "Protected"
34
- | "ProtectedInternal"
35
- | "PrivateProtected"
36
- | "Private";
37
-
38
- /**
39
- * Emit scope enumeration.
40
- * Determines where a member should be emitted in TypeScript declarations.
41
- */
42
- export type EmitScope =
43
- | "ClassSurface" // Emit on main class
44
- | "ViewOnly" // Emit only in explicit interface views
45
- | "Omitted"; // Don't emit (not accessible from TypeScript)
46
-
47
- /**
48
- * Provenance enumeration.
49
- * Tracks the origin of a member in the type hierarchy.
50
- */
51
- export type Provenance =
52
- | "Original" // Declared on this type
53
- | "Declared" // Explicitly declared (alias of Original)
54
- | "InlineFromInterface" // Implicit interface implementation
55
- | "InlineFromBase" // Inherited from base class
56
- | "SynthesizedViewOnly" // Generated for view-only access
57
- | "ExplicitView"; // Explicit interface implementation
58
-
59
- /**
60
- * Complete metadata for a CLR type.
61
- */
62
- export type TypeMetadata = {
63
- readonly clrName: string;
64
- readonly tsEmitName: string;
65
- readonly kind: TypeKind;
66
- readonly accessibility: Accessibility;
67
- readonly isAbstract: boolean;
68
- readonly isSealed: boolean;
69
- readonly isStatic: boolean;
70
- readonly arity: number;
71
- readonly baseType?: string | null;
72
- readonly interfaces?: string[];
73
- readonly isValueType?: boolean;
74
- readonly methods: MethodMetadata[];
75
- readonly properties: PropertyMetadata[];
76
- readonly fields: FieldMetadata[];
77
- readonly events: EventMetadata[];
78
- readonly constructors: ConstructorMetadata[];
79
- readonly intentionalOmissions?: IntentionalOmissions;
80
- readonly explicitViews?: ExplicitView[];
81
- };
82
-
83
- /**
84
- * Method metadata.
85
- */
86
- export type MethodMetadata = {
87
- readonly name: string;
88
- readonly clrName: string;
89
- readonly tsEmitName: string;
90
- readonly accessibility: Accessibility;
91
- readonly isStatic: boolean;
92
- readonly isAbstract: boolean;
93
- readonly isVirtual: boolean;
94
- readonly isFinal: boolean;
95
- readonly arity: number;
96
- readonly parameters: ParameterMetadata[];
97
- readonly returnType: string;
98
- readonly emitScope: EmitScope;
99
- readonly provenance: Provenance;
100
- };
101
-
102
- /**
103
- * Property metadata.
104
- */
105
- export type PropertyMetadata = {
106
- readonly name: string;
107
- readonly clrName: string;
108
- readonly tsEmitName: string;
109
- readonly accessibility: Accessibility;
110
- readonly isStatic: boolean;
111
- readonly type: string;
112
- readonly hasGetter: boolean;
113
- readonly hasSetter: boolean;
114
- readonly emitScope: EmitScope;
115
- readonly provenance: Provenance;
116
- };
117
-
118
- /**
119
- * Field metadata.
120
- */
121
- export type FieldMetadata = {
122
- readonly name: string;
123
- readonly clrName: string;
124
- readonly tsEmitName: string;
125
- readonly accessibility: Accessibility;
126
- readonly isStatic: boolean;
127
- readonly isReadonly: boolean;
128
- readonly type: string;
129
- readonly emitScope: EmitScope;
130
- readonly provenance: Provenance;
131
- };
132
-
133
- /**
134
- * Event metadata.
135
- */
136
- export type EventMetadata = {
137
- readonly name: string;
138
- readonly clrName: string;
139
- readonly tsEmitName: string;
140
- readonly accessibility: Accessibility;
141
- readonly isStatic: boolean;
142
- readonly type: string;
143
- readonly emitScope: EmitScope;
144
- readonly provenance: Provenance;
145
- };
146
-
147
- /**
148
- * Constructor metadata.
149
- */
150
- export type ConstructorMetadata = {
151
- readonly accessibility: Accessibility;
152
- readonly parameters: ParameterMetadata[];
153
- readonly emitScope: EmitScope;
154
- };
155
-
156
- /**
157
- * Parameter metadata.
158
- */
159
- export type ParameterMetadata = {
160
- readonly name: string;
161
- readonly type: string;
162
- readonly isRef: boolean;
163
- readonly isOut: boolean;
164
- readonly isIn?: boolean;
165
- readonly isParams: boolean;
166
- readonly defaultValue?: any | null;
167
- };
168
-
169
- /**
170
- * Intentional omissions from TypeScript declarations.
171
- * Tracks members that are deliberately not emitted.
172
- */
173
- export type IntentionalOmissions = {
174
- readonly methods?: OmittedMethod[];
175
- readonly properties?: OmittedProperty[];
176
- readonly fields?: OmittedField[];
177
- readonly events?: OmittedEvent[];
178
- };
179
-
180
- /**
181
- * Omitted method information.
182
- */
183
- export type OmittedMethod = {
184
- readonly name: string;
185
- readonly reason: string;
186
- };
187
-
188
- /**
189
- * Omitted property information.
190
- */
191
- export type OmittedProperty = {
192
- readonly name: string;
193
- readonly reason: string;
194
- };
195
-
196
- /**
197
- * Omitted field information.
198
- */
199
- export type OmittedField = {
200
- readonly name: string;
201
- readonly reason: string;
202
- };
203
-
204
- /**
205
- * Omitted event information.
206
- */
207
- export type OmittedEvent = {
208
- readonly name: string;
209
- readonly reason: string;
210
- };
211
-
212
- /**
213
- * Explicit interface view metadata.
214
- * Represents an As_IInterface property for explicit interface implementations.
215
- */
216
- export type ExplicitView = {
217
- readonly interfaceName: string;
218
- readonly tsPropertyName: string;
219
- readonly members: ExplicitViewMember[];
220
- };
221
-
222
- /**
223
- * Member within an explicit interface view.
224
- */
225
- export type ExplicitViewMember = {
226
- readonly kind: "Method" | "Property" | "Event";
227
- readonly name: string;
228
- readonly clrName: string;
229
- };
@@ -1,99 +0,0 @@
1
- /**
2
- * Module representation types for Tsonic compiler
3
- */
4
-
5
- export type ImportKind = "local" | "dotnet" | "node_module";
6
-
7
- export type Import = {
8
- readonly kind: ImportKind;
9
- readonly specifier: string; // Original import specifier
10
- readonly resolvedPath?: string; // Resolved file path for local imports
11
- readonly namespace?: string; // .NET namespace for dotnet imports
12
- readonly importedNames: readonly ImportedName[];
13
- };
14
-
15
- export type ImportedName = {
16
- readonly name: string;
17
- readonly alias?: string;
18
- };
19
-
20
- export type Export =
21
- | {
22
- readonly kind: "named";
23
- readonly name: string;
24
- readonly localName: string;
25
- }
26
- | { readonly kind: "default"; readonly localName: string }
27
- | {
28
- readonly kind: "namespace";
29
- readonly name: string;
30
- readonly localName: string;
31
- }
32
- | {
33
- readonly kind: "reexport";
34
- readonly fromModule: string;
35
- readonly exports: readonly ImportedName[];
36
- };
37
-
38
- export type ModuleInfo = {
39
- readonly filePath: string;
40
- readonly sourceText: string;
41
- readonly imports: readonly Import[];
42
- readonly exports: readonly Export[];
43
- readonly hasTopLevelCode: boolean;
44
- readonly namespace?: string; // Will be computed from directory structure
45
- readonly className?: string; // Will be computed from file name
46
- };
47
-
48
- export type ModuleGraph = {
49
- readonly modules: ReadonlyMap<string, ModuleInfo>;
50
- readonly dependencies: ReadonlyMap<string, readonly string[]>;
51
- readonly dependents: ReadonlyMap<string, readonly string[]>;
52
- readonly entryPoints: readonly string[];
53
- };
54
-
55
- export const createModuleInfo = (
56
- filePath: string,
57
- sourceText: string,
58
- imports: readonly Import[] = [],
59
- exports: readonly Export[] = [],
60
- hasTopLevelCode: boolean = false,
61
- namespace?: string,
62
- className?: string
63
- ): ModuleInfo => ({
64
- filePath,
65
- sourceText,
66
- imports,
67
- exports,
68
- hasTopLevelCode,
69
- namespace,
70
- className,
71
- });
72
-
73
- export const createModuleGraph = (
74
- modules: ReadonlyMap<string, ModuleInfo> = new Map(),
75
- dependencies: ReadonlyMap<string, readonly string[]> = new Map(),
76
- dependents: ReadonlyMap<string, readonly string[]> = new Map(),
77
- entryPoints: readonly string[] = []
78
- ): ModuleGraph => ({
79
- modules,
80
- dependencies,
81
- dependents,
82
- entryPoints,
83
- });
84
-
85
- export const addModule = (
86
- graph: ModuleGraph,
87
- module: ModuleInfo
88
- ): ModuleGraph => {
89
- const newModules = new Map(graph.modules);
90
- newModules.set(module.filePath, module);
91
-
92
- return {
93
- ...graph,
94
- modules: newModules,
95
- };
96
- };
97
-
98
- export const isLocalImport = (importSpec: string): boolean =>
99
- importSpec.startsWith(".") || importSpec.startsWith("/");