@tsonic/frontend 0.0.14 → 0.0.15

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 (513) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/graph/builder.js +2 -2
  3. package/dist/graph/builder.js.map +1 -1
  4. package/dist/graph/extraction/imports.js +1 -1
  5. package/dist/graph/extraction/imports.js.map +1 -1
  6. package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
  7. package/dist/graph/extraction/orchestrator.js +1 -1
  8. package/dist/graph/extraction/orchestrator.js.map +1 -1
  9. package/dist/ir/binding/index.d.ts +134 -0
  10. package/dist/ir/binding/index.d.ts.map +1 -0
  11. package/dist/ir/binding/index.js +725 -0
  12. package/dist/ir/binding/index.js.map +1 -0
  13. package/dist/ir/binding-resolution.test.js +193 -52
  14. package/dist/ir/binding-resolution.test.js.map +1 -1
  15. package/dist/ir/builder/exports.d.ts +20 -2
  16. package/dist/ir/builder/exports.d.ts.map +1 -1
  17. package/dist/ir/builder/exports.js +65 -6
  18. package/dist/ir/builder/exports.js.map +1 -1
  19. package/dist/ir/builder/imports.d.ts +9 -5
  20. package/dist/ir/builder/imports.d.ts.map +1 -1
  21. package/dist/ir/builder/imports.js +20 -31
  22. package/dist/ir/builder/imports.js.map +1 -1
  23. package/dist/ir/builder/orchestrator.d.ts +10 -1
  24. package/dist/ir/builder/orchestrator.d.ts.map +1 -1
  25. package/dist/ir/builder/orchestrator.js +25 -14
  26. package/dist/ir/builder/orchestrator.js.map +1 -1
  27. package/dist/ir/builder/statements.d.ts +7 -1
  28. package/dist/ir/builder/statements.d.ts.map +1 -1
  29. package/dist/ir/builder/statements.js +7 -2
  30. package/dist/ir/builder/statements.js.map +1 -1
  31. package/dist/ir/builder/types.d.ts +3 -0
  32. package/dist/ir/builder/types.d.ts.map +1 -1
  33. package/dist/ir/builder/validation.d.ts +4 -1
  34. package/dist/ir/builder/validation.d.ts.map +1 -1
  35. package/dist/ir/builder/validation.js +37 -37
  36. package/dist/ir/builder/validation.js.map +1 -1
  37. package/dist/ir/builder.test.js +54 -111
  38. package/dist/ir/builder.test.js.map +1 -1
  39. package/dist/ir/clr-type-mappings.d.ts +42 -0
  40. package/dist/ir/clr-type-mappings.d.ts.map +1 -0
  41. package/dist/ir/clr-type-mappings.js +139 -0
  42. package/dist/ir/clr-type-mappings.js.map +1 -0
  43. package/dist/ir/converters/anonymous-synthesis.d.ts +30 -8
  44. package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -1
  45. package/dist/ir/converters/anonymous-synthesis.js +46 -55
  46. package/dist/ir/converters/anonymous-synthesis.js.map +1 -1
  47. package/dist/ir/converters/context.d.ts +40 -0
  48. package/dist/ir/converters/context.d.ts.map +1 -0
  49. package/dist/ir/converters/context.js +24 -0
  50. package/dist/ir/converters/context.js.map +1 -0
  51. package/dist/ir/converters/expressions/access.d.ts +6 -1
  52. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  53. package/dist/ir/converters/expressions/access.js +239 -15
  54. package/dist/ir/converters/expressions/access.js.map +1 -1
  55. package/dist/ir/converters/expressions/calls.d.ts +24 -3
  56. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  57. package/dist/ir/converters/expressions/calls.js +431 -391
  58. package/dist/ir/converters/expressions/calls.js.map +1 -1
  59. package/dist/ir/converters/expressions/collections.d.ts +16 -3
  60. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  61. package/dist/ir/converters/expressions/collections.js +300 -46
  62. package/dist/ir/converters/expressions/collections.js.map +1 -1
  63. package/dist/ir/converters/expressions/functions.d.ts +10 -3
  64. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  65. package/dist/ir/converters/expressions/functions.js +140 -32
  66. package/dist/ir/converters/expressions/functions.js.map +1 -1
  67. package/dist/ir/converters/expressions/helpers.d.ts +22 -23
  68. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
  69. package/dist/ir/converters/expressions/helpers.js +242 -239
  70. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  71. package/dist/ir/converters/expressions/index.d.ts +1 -1
  72. package/dist/ir/converters/expressions/index.d.ts.map +1 -1
  73. package/dist/ir/converters/expressions/index.js +1 -1
  74. package/dist/ir/converters/expressions/index.js.map +1 -1
  75. package/dist/ir/converters/expressions/literals.d.ts +12 -12
  76. package/dist/ir/converters/expressions/literals.d.ts.map +1 -1
  77. package/dist/ir/converters/expressions/literals.js +62 -17
  78. package/dist/ir/converters/expressions/literals.js.map +1 -1
  79. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts +5 -2
  80. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts.map +1 -1
  81. package/dist/ir/converters/expressions/numeric-recovery.test.js +62 -49
  82. package/dist/ir/converters/expressions/numeric-recovery.test.js.map +1 -1
  83. package/dist/ir/converters/expressions/operators.d.ts +13 -4
  84. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  85. package/dist/ir/converters/expressions/operators.js +179 -33
  86. package/dist/ir/converters/expressions/operators.js.map +1 -1
  87. package/dist/ir/converters/expressions/other.d.ts +11 -3
  88. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  89. package/dist/ir/converters/expressions/other.js +26 -10
  90. package/dist/ir/converters/expressions/other.js.map +1 -1
  91. package/dist/ir/converters/statements/control/blocks.d.ts +8 -2
  92. package/dist/ir/converters/statements/control/blocks.d.ts.map +1 -1
  93. package/dist/ir/converters/statements/control/blocks.js +7 -2
  94. package/dist/ir/converters/statements/control/blocks.js.map +1 -1
  95. package/dist/ir/converters/statements/control/conditionals.d.ts +14 -4
  96. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
  97. package/dist/ir/converters/statements/control/conditionals.js +19 -10
  98. package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
  99. package/dist/ir/converters/statements/control/exceptions.d.ts +10 -3
  100. package/dist/ir/converters/statements/control/exceptions.d.ts.map +1 -1
  101. package/dist/ir/converters/statements/control/exceptions.js +13 -7
  102. package/dist/ir/converters/statements/control/exceptions.js.map +1 -1
  103. package/dist/ir/converters/statements/control/loops.d.ts +16 -5
  104. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  105. package/dist/ir/converters/statements/control/loops.js +25 -15
  106. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  107. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts +3 -2
  108. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -1
  109. package/dist/ir/converters/statements/declarations/classes/constructors.js +11 -7
  110. package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -1
  111. package/dist/ir/converters/statements/declarations/classes/methods.d.ts +2 -1
  112. package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -1
  113. package/dist/ir/converters/statements/declarations/classes/methods.js +63 -11
  114. package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -1
  115. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts +2 -1
  116. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -1
  117. package/dist/ir/converters/statements/declarations/classes/orchestrator.js +60 -40
  118. package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -1
  119. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts +6 -2
  120. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -1
  121. package/dist/ir/converters/statements/declarations/classes/override-detection.js +49 -50
  122. package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -1
  123. package/dist/ir/converters/statements/declarations/classes/properties.d.ts +9 -1
  124. package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -1
  125. package/dist/ir/converters/statements/declarations/classes/properties.js +119 -16
  126. package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -1
  127. package/dist/ir/converters/statements/declarations/enums.d.ts +2 -1
  128. package/dist/ir/converters/statements/declarations/enums.d.ts.map +1 -1
  129. package/dist/ir/converters/statements/declarations/enums.js +8 -2
  130. package/dist/ir/converters/statements/declarations/enums.js.map +1 -1
  131. package/dist/ir/converters/statements/declarations/functions.d.ts +2 -1
  132. package/dist/ir/converters/statements/declarations/functions.d.ts.map +1 -1
  133. package/dist/ir/converters/statements/declarations/functions.js +11 -6
  134. package/dist/ir/converters/statements/declarations/functions.js.map +1 -1
  135. package/dist/ir/converters/statements/declarations/index.d.ts +3 -1
  136. package/dist/ir/converters/statements/declarations/index.d.ts.map +1 -1
  137. package/dist/ir/converters/statements/declarations/index.js +3 -1
  138. package/dist/ir/converters/statements/declarations/index.js.map +1 -1
  139. package/dist/ir/converters/statements/declarations/interfaces.d.ts +3 -2
  140. package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
  141. package/dist/ir/converters/statements/declarations/interfaces.js +26 -20
  142. package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
  143. package/dist/ir/converters/statements/declarations/registry.d.ts +72 -0
  144. package/dist/ir/converters/statements/declarations/registry.d.ts.map +1 -1
  145. package/dist/ir/converters/statements/declarations/registry.js +92 -0
  146. package/dist/ir/converters/statements/declarations/registry.js.map +1 -1
  147. package/dist/ir/converters/statements/declarations/type-aliases.d.ts +2 -1
  148. package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
  149. package/dist/ir/converters/statements/declarations/type-aliases.js +6 -4
  150. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  151. package/dist/ir/converters/statements/declarations/variables.d.ts +11 -1
  152. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
  153. package/dist/ir/converters/statements/declarations/variables.js +123 -19
  154. package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
  155. package/dist/ir/converters/statements/declarations.d.ts +4 -1
  156. package/dist/ir/converters/statements/declarations.d.ts.map +1 -1
  157. package/dist/ir/converters/statements/declarations.js +4 -1
  158. package/dist/ir/converters/statements/declarations.js.map +1 -1
  159. package/dist/ir/converters/statements/helpers.d.ts +4 -3
  160. package/dist/ir/converters/statements/helpers.d.ts.map +1 -1
  161. package/dist/ir/converters/statements/helpers.js +55 -31
  162. package/dist/ir/converters/statements/helpers.js.map +1 -1
  163. package/dist/ir/converters/statements/index.d.ts +1 -1
  164. package/dist/ir/converters/statements/index.d.ts.map +1 -1
  165. package/dist/ir/converters/statements/index.js +2 -1
  166. package/dist/ir/converters/statements/index.js.map +1 -1
  167. package/dist/ir/expression-converter.d.ts +10 -3
  168. package/dist/ir/expression-converter.d.ts.map +1 -1
  169. package/dist/ir/expression-converter.js +132 -57
  170. package/dist/ir/expression-converter.js.map +1 -1
  171. package/dist/ir/hierarchical-bindings-e2e.test.js +10 -6
  172. package/dist/ir/hierarchical-bindings-e2e.test.js.map +1 -1
  173. package/dist/ir/index.d.ts +5 -0
  174. package/dist/ir/index.d.ts.map +1 -1
  175. package/dist/ir/index.js +5 -0
  176. package/dist/ir/index.js.map +1 -1
  177. package/dist/ir/no-ts-type-inference.test.d.ts +17 -0
  178. package/dist/ir/no-ts-type-inference.test.d.ts.map +1 -0
  179. package/dist/ir/no-ts-type-inference.test.js +171 -0
  180. package/dist/ir/no-ts-type-inference.test.js.map +1 -0
  181. package/dist/ir/program-context.d.ts +74 -0
  182. package/dist/ir/program-context.d.ts.map +1 -0
  183. package/dist/ir/program-context.js +286 -0
  184. package/dist/ir/program-context.js.map +1 -0
  185. package/dist/ir/statement-converter.d.ts +14 -4
  186. package/dist/ir/statement-converter.d.ts.map +1 -1
  187. package/dist/ir/statement-converter.js +31 -21
  188. package/dist/ir/statement-converter.js.map +1 -1
  189. package/dist/ir/syntax/binding-patterns.d.ts +22 -0
  190. package/dist/ir/syntax/binding-patterns.d.ts.map +1 -0
  191. package/dist/ir/syntax/binding-patterns.js +92 -0
  192. package/dist/ir/syntax/binding-patterns.js.map +1 -0
  193. package/dist/ir/thisarg-inference.test.d.ts +8 -0
  194. package/dist/ir/thisarg-inference.test.d.ts.map +1 -0
  195. package/dist/ir/thisarg-inference.test.js +94 -0
  196. package/dist/ir/thisarg-inference.test.js.map +1 -0
  197. package/dist/ir/type-converter.d.ts +5 -2
  198. package/dist/ir/type-converter.d.ts.map +1 -1
  199. package/dist/ir/type-converter.js +5 -2
  200. package/dist/ir/type-converter.js.map +1 -1
  201. package/dist/ir/type-system/core.d.ts +29 -0
  202. package/dist/ir/type-system/core.d.ts.map +1 -0
  203. package/dist/ir/type-system/core.js +456 -0
  204. package/dist/ir/type-system/core.js.map +1 -0
  205. package/dist/ir/type-system/index.d.ts +21 -0
  206. package/dist/ir/type-system/index.d.ts.map +1 -0
  207. package/dist/ir/type-system/index.js +43 -0
  208. package/dist/ir/type-system/index.js.map +1 -0
  209. package/dist/ir/type-system/internal/handle-types.d.ts +98 -0
  210. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -0
  211. package/dist/ir/type-system/internal/handle-types.js +13 -0
  212. package/dist/ir/type-system/internal/handle-types.js.map +1 -0
  213. package/dist/ir/type-system/internal/nominal-env.d.ts +66 -0
  214. package/dist/ir/type-system/internal/nominal-env.d.ts.map +1 -0
  215. package/dist/ir/type-system/internal/nominal-env.js +301 -0
  216. package/dist/ir/type-system/internal/nominal-env.js.map +1 -0
  217. package/dist/ir/type-system/internal/type-converter/arrays.d.ts +11 -0
  218. package/dist/ir/type-system/internal/type-converter/arrays.d.ts.map +1 -0
  219. package/dist/ir/{type-converter → type-system/internal/type-converter}/arrays.js +2 -2
  220. package/dist/ir/type-system/internal/type-converter/arrays.js.map +1 -0
  221. package/dist/ir/type-system/internal/type-converter/converter.d.ts +17 -0
  222. package/dist/ir/type-system/internal/type-converter/converter.d.ts.map +1 -0
  223. package/dist/ir/type-system/internal/type-converter/converter.js +16 -0
  224. package/dist/ir/type-system/internal/type-converter/converter.js.map +1 -0
  225. package/dist/ir/type-system/internal/type-converter/functions.d.ts +14 -0
  226. package/dist/ir/type-system/internal/type-converter/functions.d.ts.map +1 -0
  227. package/dist/ir/type-system/internal/type-converter/functions.js +66 -0
  228. package/dist/ir/type-system/internal/type-converter/functions.js.map +1 -0
  229. package/dist/ir/type-system/internal/type-converter/index.d.ts +11 -0
  230. package/dist/ir/type-system/internal/type-converter/index.d.ts.map +1 -0
  231. package/dist/ir/type-system/internal/type-converter/index.js +11 -0
  232. package/dist/ir/type-system/internal/type-converter/index.js.map +1 -0
  233. package/dist/ir/type-system/internal/type-converter/inference.d.ts +37 -0
  234. package/dist/ir/type-system/internal/type-converter/inference.d.ts.map +1 -0
  235. package/dist/ir/type-system/internal/type-converter/inference.js +32 -0
  236. package/dist/ir/type-system/internal/type-converter/inference.js.map +1 -0
  237. package/dist/ir/{type-converter → type-system/internal/type-converter}/literals.d.ts +1 -1
  238. package/dist/ir/type-system/internal/type-converter/literals.d.ts.map +1 -0
  239. package/dist/ir/type-system/internal/type-converter/literals.js.map +1 -0
  240. package/dist/ir/type-system/internal/type-converter/objects.d.ts +20 -0
  241. package/dist/ir/type-system/internal/type-converter/objects.d.ts.map +1 -0
  242. package/dist/ir/{type-converter → type-system/internal/type-converter}/objects.js +56 -6
  243. package/dist/ir/type-system/internal/type-converter/objects.js.map +1 -0
  244. package/dist/ir/{type-converter → type-system/internal/type-converter}/orchestrator.d.ts +3 -2
  245. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -0
  246. package/dist/ir/{type-converter → type-system/internal/type-converter}/orchestrator.js +63 -21
  247. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -0
  248. package/dist/ir/type-system/internal/type-converter/patterns.d.ts +12 -0
  249. package/dist/ir/type-system/internal/type-converter/patterns.d.ts.map +1 -0
  250. package/dist/ir/{type-converter → type-system/internal/type-converter}/patterns.js +22 -6
  251. package/dist/ir/type-system/internal/type-converter/patterns.js.map +1 -0
  252. package/dist/ir/{type-converter → type-system/internal/type-converter}/primitives.d.ts +1 -1
  253. package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -0
  254. package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -0
  255. package/dist/ir/{type-converter → type-system/internal/type-converter}/references.d.ts +3 -2
  256. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -0
  257. package/dist/ir/type-system/internal/type-converter/references.js +551 -0
  258. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -0
  259. package/dist/ir/type-system/internal/type-converter/unions-intersections.d.ts +15 -0
  260. package/dist/ir/type-system/internal/type-converter/unions-intersections.d.ts.map +1 -0
  261. package/dist/ir/type-system/internal/type-converter/unions-intersections.js +22 -0
  262. package/dist/ir/type-system/internal/type-converter/unions-intersections.js.map +1 -0
  263. package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.d.ts +23 -36
  264. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts.map +1 -0
  265. package/dist/ir/type-system/internal/type-converter/utility-types.js +879 -0
  266. package/dist/ir/type-system/internal/type-converter/utility-types.js.map +1 -0
  267. package/dist/ir/type-system/internal/type-converter/utility-types.test.d.ts.map +1 -0
  268. package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.test.js +398 -120
  269. package/dist/ir/type-system/internal/type-converter/utility-types.test.js.map +1 -0
  270. package/dist/ir/type-system/internal/type-converter.d.ts +9 -0
  271. package/dist/ir/type-system/internal/type-converter.d.ts.map +1 -0
  272. package/dist/ir/type-system/internal/type-converter.js +9 -0
  273. package/dist/ir/type-system/internal/type-converter.js.map +1 -0
  274. package/dist/ir/type-system/internal/type-registry.d.ts +107 -0
  275. package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -0
  276. package/dist/ir/type-system/internal/type-registry.js +534 -0
  277. package/dist/ir/type-system/internal/type-registry.js.map +1 -0
  278. package/dist/ir/type-system/internal/universe/alias-table.d.ts +92 -0
  279. package/dist/ir/type-system/internal/universe/alias-table.d.ts.map +1 -0
  280. package/dist/ir/type-system/internal/universe/alias-table.js +222 -0
  281. package/dist/ir/type-system/internal/universe/alias-table.js.map +1 -0
  282. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts +44 -0
  283. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -0
  284. package/dist/ir/type-system/internal/universe/clr-catalog.js +1176 -0
  285. package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -0
  286. package/dist/ir/type-system/internal/universe/index.d.ts +26 -0
  287. package/dist/ir/type-system/internal/universe/index.d.ts.map +1 -0
  288. package/dist/ir/type-system/internal/universe/index.js +30 -0
  289. package/dist/ir/type-system/internal/universe/index.js.map +1 -0
  290. package/dist/ir/type-system/internal/universe/resolution.d.ts +115 -0
  291. package/dist/ir/type-system/internal/universe/resolution.d.ts.map +1 -0
  292. package/dist/ir/type-system/internal/universe/resolution.js +181 -0
  293. package/dist/ir/type-system/internal/universe/resolution.js.map +1 -0
  294. package/dist/ir/type-system/internal/universe/source-catalog.d.ts +62 -0
  295. package/dist/ir/type-system/internal/universe/source-catalog.d.ts.map +1 -0
  296. package/dist/ir/type-system/internal/universe/source-catalog.js +91 -0
  297. package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -0
  298. package/dist/ir/type-system/internal/universe/types.d.ts +436 -0
  299. package/dist/ir/type-system/internal/universe/types.d.ts.map +1 -0
  300. package/dist/ir/type-system/internal/universe/types.js +69 -0
  301. package/dist/ir/type-system/internal/universe/types.js.map +1 -0
  302. package/dist/ir/type-system/internal/universe/unified-universe.d.ts +70 -0
  303. package/dist/ir/type-system/internal/universe/unified-universe.d.ts.map +1 -0
  304. package/dist/ir/type-system/internal/universe/unified-universe.js +319 -0
  305. package/dist/ir/type-system/internal/universe/unified-universe.js.map +1 -0
  306. package/dist/ir/type-system/type-system.d.ts +617 -0
  307. package/dist/ir/type-system/type-system.d.ts.map +1 -0
  308. package/dist/ir/type-system/type-system.js +2420 -0
  309. package/dist/ir/type-system/type-system.js.map +1 -0
  310. package/dist/ir/type-system/types.d.ts +176 -0
  311. package/dist/ir/type-system/types.d.ts.map +1 -0
  312. package/dist/ir/type-system/types.js +80 -0
  313. package/dist/ir/type-system/types.js.map +1 -0
  314. package/dist/ir/type-universe/assembly-catalog.d.ts +44 -0
  315. package/dist/ir/type-universe/assembly-catalog.d.ts.map +1 -0
  316. package/dist/ir/type-universe/assembly-catalog.js +532 -0
  317. package/dist/ir/type-universe/assembly-catalog.js.map +1 -0
  318. package/dist/ir/type-universe/assembly-catalog.test.d.ts +7 -0
  319. package/dist/ir/type-universe/assembly-catalog.test.d.ts.map +1 -0
  320. package/dist/ir/type-universe/assembly-catalog.test.js +105 -0
  321. package/dist/ir/type-universe/assembly-catalog.test.js.map +1 -0
  322. package/dist/ir/type-universe/index.d.ts +19 -0
  323. package/dist/ir/type-universe/index.d.ts.map +1 -0
  324. package/dist/ir/type-universe/index.js +21 -0
  325. package/dist/ir/type-universe/index.js.map +1 -0
  326. package/dist/ir/type-universe/types.d.ts +436 -0
  327. package/dist/ir/type-universe/types.d.ts.map +1 -0
  328. package/dist/ir/type-universe/types.js +69 -0
  329. package/dist/ir/type-universe/types.js.map +1 -0
  330. package/dist/ir/type-universe/unified-catalog.d.ts +70 -0
  331. package/dist/ir/type-universe/unified-catalog.d.ts.map +1 -0
  332. package/dist/ir/type-universe/unified-catalog.js +319 -0
  333. package/dist/ir/type-universe/unified-catalog.js.map +1 -0
  334. package/dist/ir/type-universe/unified-catalog.test.d.ts +7 -0
  335. package/dist/ir/type-universe/unified-catalog.test.d.ts.map +1 -0
  336. package/dist/ir/type-universe/unified-catalog.test.js +135 -0
  337. package/dist/ir/type-universe/unified-catalog.test.js.map +1 -0
  338. package/dist/ir/types/expressions.d.ts +33 -7
  339. package/dist/ir/types/expressions.d.ts.map +1 -1
  340. package/dist/ir/types/helpers.d.ts +22 -2
  341. package/dist/ir/types/helpers.d.ts.map +1 -1
  342. package/dist/ir/types/index.d.ts +4 -2
  343. package/dist/ir/types/index.d.ts.map +1 -1
  344. package/dist/ir/types/index.js +1 -0
  345. package/dist/ir/types/index.js.map +1 -1
  346. package/dist/ir/types/ir-substitution.d.ts +144 -0
  347. package/dist/ir/types/ir-substitution.d.ts.map +1 -0
  348. package/dist/ir/types/ir-substitution.js +569 -0
  349. package/dist/ir/types/ir-substitution.js.map +1 -0
  350. package/dist/ir/types/ir-types.d.ts +9 -3
  351. package/dist/ir/types/ir-types.d.ts.map +1 -1
  352. package/dist/ir/types/numeric-helpers.d.ts +2 -1
  353. package/dist/ir/types/numeric-helpers.d.ts.map +1 -1
  354. package/dist/ir/types/numeric-helpers.js +9 -3
  355. package/dist/ir/types/numeric-helpers.js.map +1 -1
  356. package/dist/ir/types/statements.d.ts +13 -1
  357. package/dist/ir/types/statements.d.ts.map +1 -1
  358. package/dist/ir/types.d.ts +1 -1
  359. package/dist/ir/types.d.ts.map +1 -1
  360. package/dist/ir/types.js.map +1 -1
  361. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  362. package/dist/ir/validation/anonymous-type-lowering-pass.js +152 -8
  363. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  364. package/dist/ir/validation/arrow-return-finalization-pass.d.ts +28 -0
  365. package/dist/ir/validation/arrow-return-finalization-pass.d.ts.map +1 -0
  366. package/dist/ir/validation/arrow-return-finalization-pass.js +416 -0
  367. package/dist/ir/validation/arrow-return-finalization-pass.js.map +1 -0
  368. package/dist/ir/validation/attribute-collection-pass.d.ts.map +1 -1
  369. package/dist/ir/validation/attribute-collection-pass.js +40 -6
  370. package/dist/ir/validation/attribute-collection-pass.js.map +1 -1
  371. package/dist/ir/validation/attribute-collection-pass.test.js +43 -36
  372. package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
  373. package/dist/ir/validation/index.d.ts +3 -0
  374. package/dist/ir/validation/index.d.ts.map +1 -1
  375. package/dist/ir/validation/index.js +3 -0
  376. package/dist/ir/validation/index.js.map +1 -1
  377. package/dist/ir/validation/numeric-coercion-pass.d.ts +22 -16
  378. package/dist/ir/validation/numeric-coercion-pass.d.ts.map +1 -1
  379. package/dist/ir/validation/numeric-coercion-pass.js +159 -51
  380. package/dist/ir/validation/numeric-coercion-pass.js.map +1 -1
  381. package/dist/ir/validation/numeric-invariants.test.js +72 -108
  382. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  383. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  384. package/dist/ir/validation/numeric-proof-pass.js +71 -23
  385. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  386. package/dist/ir/validation/rest-type-synthesis-pass.d.ts +24 -0
  387. package/dist/ir/validation/rest-type-synthesis-pass.d.ts.map +1 -0
  388. package/dist/ir/validation/rest-type-synthesis-pass.js +417 -0
  389. package/dist/ir/validation/rest-type-synthesis-pass.js.map +1 -0
  390. package/dist/ir/validation/soundness-gate.d.ts +11 -1
  391. package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
  392. package/dist/ir/validation/soundness-gate.js +42 -10
  393. package/dist/ir/validation/soundness-gate.js.map +1 -1
  394. package/dist/ir/validation/soundness-gate.test.js +19 -2
  395. package/dist/ir/validation/soundness-gate.test.js.map +1 -1
  396. package/dist/ir/validation/virtual-marking-pass.d.ts +16 -0
  397. package/dist/ir/validation/virtual-marking-pass.d.ts.map +1 -0
  398. package/dist/ir/validation/virtual-marking-pass.js +77 -0
  399. package/dist/ir/validation/virtual-marking-pass.js.map +1 -0
  400. package/dist/ir/validation/yield-lowering-pass.test.js +2 -2
  401. package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -1
  402. package/dist/program/bindings.d.ts +28 -0
  403. package/dist/program/bindings.d.ts.map +1 -1
  404. package/dist/program/bindings.js +204 -2
  405. package/dist/program/bindings.js.map +1 -1
  406. package/dist/program/bindings.test.js +30 -0
  407. package/dist/program/bindings.test.js.map +1 -1
  408. package/dist/program/creation.d.ts.map +1 -1
  409. package/dist/program/creation.js +251 -4
  410. package/dist/program/creation.js.map +1 -1
  411. package/dist/program/dependency-graph.d.ts.map +1 -1
  412. package/dist/program/dependency-graph.js +25 -25
  413. package/dist/program/dependency-graph.js.map +1 -1
  414. package/dist/program/diagnostics.d.ts.map +1 -1
  415. package/dist/program/diagnostics.js +6 -0
  416. package/dist/program/diagnostics.js.map +1 -1
  417. package/dist/program/index.d.ts +1 -1
  418. package/dist/program/index.d.ts.map +1 -1
  419. package/dist/program/types.d.ts +8 -8
  420. package/dist/program/types.d.ts.map +1 -1
  421. package/dist/resolver/clr-bindings-resolver.d.ts +1 -0
  422. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  423. package/dist/resolver/clr-bindings-resolver.js +90 -34
  424. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  425. package/dist/resolver/import-resolution.d.ts +16 -1
  426. package/dist/resolver/import-resolution.d.ts.map +1 -1
  427. package/dist/resolver/import-resolution.js +29 -12
  428. package/dist/resolver/import-resolution.js.map +1 -1
  429. package/dist/resolver/naming.d.ts +1 -1
  430. package/dist/resolver/naming.d.ts.map +1 -1
  431. package/dist/resolver/naming.js +13 -2
  432. package/dist/resolver/naming.js.map +1 -1
  433. package/dist/resolver.test.js +4 -0
  434. package/dist/resolver.test.js.map +1 -1
  435. package/dist/symbol-table/builder.d.ts +3 -1
  436. package/dist/symbol-table/builder.d.ts.map +1 -1
  437. package/dist/symbol-table/builder.js +9 -8
  438. package/dist/symbol-table/builder.js.map +1 -1
  439. package/dist/symbol-table/types.d.ts +2 -2
  440. package/dist/symbol-table/types.d.ts.map +1 -1
  441. package/dist/types/diagnostic.d.ts +12 -2
  442. package/dist/types/diagnostic.d.ts.map +1 -1
  443. package/dist/types/diagnostic.js +5 -1
  444. package/dist/types/diagnostic.js.map +1 -1
  445. package/dist/validation/extension-methods.d.ts +17 -0
  446. package/dist/validation/extension-methods.d.ts.map +1 -0
  447. package/dist/validation/extension-methods.js +133 -0
  448. package/dist/validation/extension-methods.js.map +1 -0
  449. package/dist/validation/generics.d.ts.map +1 -1
  450. package/dist/validation/generics.js +1 -129
  451. package/dist/validation/generics.js.map +1 -1
  452. package/dist/validation/imports.js +1 -1
  453. package/dist/validation/imports.js.map +1 -1
  454. package/dist/validation/index.d.ts +1 -0
  455. package/dist/validation/index.d.ts.map +1 -1
  456. package/dist/validation/index.js +1 -0
  457. package/dist/validation/index.js.map +1 -1
  458. package/dist/validation/orchestrator.d.ts.map +1 -1
  459. package/dist/validation/orchestrator.js +2 -0
  460. package/dist/validation/orchestrator.js.map +1 -1
  461. package/dist/validation/static-safety.d.ts +1 -0
  462. package/dist/validation/static-safety.d.ts.map +1 -1
  463. package/dist/validation/static-safety.js +366 -96
  464. package/dist/validation/static-safety.js.map +1 -1
  465. package/dist/validator.test.js +77 -1
  466. package/dist/validator.test.js.map +1 -1
  467. package/package.json +2 -2
  468. package/dist/ir/type-converter/arrays.d.ts +0 -10
  469. package/dist/ir/type-converter/arrays.d.ts.map +0 -1
  470. package/dist/ir/type-converter/arrays.js.map +0 -1
  471. package/dist/ir/type-converter/converter.d.ts +0 -6
  472. package/dist/ir/type-converter/converter.d.ts.map +0 -1
  473. package/dist/ir/type-converter/converter.js +0 -6
  474. package/dist/ir/type-converter/converter.js.map +0 -1
  475. package/dist/ir/type-converter/functions.d.ts +0 -10
  476. package/dist/ir/type-converter/functions.d.ts.map +0 -1
  477. package/dist/ir/type-converter/functions.js +0 -15
  478. package/dist/ir/type-converter/functions.js.map +0 -1
  479. package/dist/ir/type-converter/index.d.ts +0 -7
  480. package/dist/ir/type-converter/index.d.ts.map +0 -1
  481. package/dist/ir/type-converter/index.js +0 -7
  482. package/dist/ir/type-converter/index.js.map +0 -1
  483. package/dist/ir/type-converter/inference.d.ts +0 -32
  484. package/dist/ir/type-converter/inference.d.ts.map +0 -1
  485. package/dist/ir/type-converter/inference.js +0 -297
  486. package/dist/ir/type-converter/inference.js.map +0 -1
  487. package/dist/ir/type-converter/literals.d.ts.map +0 -1
  488. package/dist/ir/type-converter/literals.js.map +0 -1
  489. package/dist/ir/type-converter/objects.d.ts +0 -16
  490. package/dist/ir/type-converter/objects.d.ts.map +0 -1
  491. package/dist/ir/type-converter/objects.js.map +0 -1
  492. package/dist/ir/type-converter/orchestrator.d.ts.map +0 -1
  493. package/dist/ir/type-converter/orchestrator.js.map +0 -1
  494. package/dist/ir/type-converter/patterns.d.ts +0 -10
  495. package/dist/ir/type-converter/patterns.d.ts.map +0 -1
  496. package/dist/ir/type-converter/patterns.js.map +0 -1
  497. package/dist/ir/type-converter/primitives.d.ts.map +0 -1
  498. package/dist/ir/type-converter/primitives.js.map +0 -1
  499. package/dist/ir/type-converter/references.d.ts.map +0 -1
  500. package/dist/ir/type-converter/references.js +0 -371
  501. package/dist/ir/type-converter/references.js.map +0 -1
  502. package/dist/ir/type-converter/unions-intersections.d.ts +0 -14
  503. package/dist/ir/type-converter/unions-intersections.d.ts.map +0 -1
  504. package/dist/ir/type-converter/unions-intersections.js +0 -22
  505. package/dist/ir/type-converter/unions-intersections.js.map +0 -1
  506. package/dist/ir/type-converter/utility-types.d.ts.map +0 -1
  507. package/dist/ir/type-converter/utility-types.js +0 -528
  508. package/dist/ir/type-converter/utility-types.js.map +0 -1
  509. package/dist/ir/type-converter/utility-types.test.d.ts.map +0 -1
  510. package/dist/ir/type-converter/utility-types.test.js.map +0 -1
  511. /package/dist/ir/{type-converter → type-system/internal/type-converter}/literals.js +0 -0
  512. /package/dist/ir/{type-converter → type-system/internal/type-converter}/primitives.js +0 -0
  513. /package/dist/ir/{type-converter → type-system/internal/type-converter}/utility-types.test.d.ts +0 -0
@@ -0,0 +1,436 @@
1
+ /**
2
+ * Type Universe Type Definitions
3
+ *
4
+ * This module defines the types for the unified type catalog that merges
5
+ * source-authored types (from TS AST) and assembly-authored types (from
6
+ * CLR metadata in bindings.json/metadata.json).
7
+ *
8
+ * INVARIANT INV-CLR: All nominal type identities come from ONE unified catalog.
9
+ * No type query is allowed to "fall back" to parallel logic or parallel stores.
10
+ *
11
+ * Key Types:
12
+ * - TypeId: Canonical identity for any nominal type
13
+ * - NominalEntry: Complete type information from either source or assembly
14
+ * - MemberEntry: Property/method/field information
15
+ * - MethodSignatureEntry: Full method signature with parameters
16
+ */
17
+ import type { IrType } from "../../../types/index.js";
18
+ /**
19
+ * Canonical identity for any nominal type.
20
+ *
21
+ * Uses stableId as the primary key:
22
+ * - Assembly types: "{assemblyName}:{clrName}" e.g., "System.Private.CoreLib:System.String"
23
+ * - Source types: "{projectName}:{fullyQualifiedName}" e.g., "myapp:MyApp.models.User"
24
+ *
25
+ * The distinction matters for:
26
+ * - Collisions across assemblies
27
+ * - Type-forwarding
28
+ * - Multiple assemblies declaring same namespace/type
29
+ */
30
+ export type TypeId = {
31
+ /** Primary key: e.g., "System.Private.CoreLib:System.String" */
32
+ readonly stableId: string;
33
+ /** CLR display name for emitter: e.g., "System.String" */
34
+ readonly clrName: string;
35
+ /** Assembly name: e.g., "System.Private.CoreLib" */
36
+ readonly assemblyName: string;
37
+ /** TS surface name for symbol binding: e.g., "String" */
38
+ readonly tsName: string;
39
+ };
40
+ /**
41
+ * Complete type information for a nominal type.
42
+ *
43
+ * This is the unified shape for both source and assembly types.
44
+ * All type queries go through this structure.
45
+ */
46
+ export type NominalEntry = {
47
+ /** Canonical identity */
48
+ readonly typeId: TypeId;
49
+ /** Type kind */
50
+ readonly kind: NominalKind;
51
+ /** Type parameters (for generic types) */
52
+ readonly typeParameters: readonly TypeParameterEntry[];
53
+ /** Inheritance edges (extends, implements) */
54
+ readonly heritage: readonly HeritageEdge[];
55
+ /** Members indexed by TS name */
56
+ readonly members: ReadonlyMap<string, MemberEntry>;
57
+ /** Where this type came from */
58
+ readonly origin: TypeOrigin;
59
+ /** Accessibility modifier */
60
+ readonly accessibility: "public" | "internal" | "private" | "protected";
61
+ /** Abstract class flag */
62
+ readonly isAbstract: boolean;
63
+ /** Sealed class flag */
64
+ readonly isSealed: boolean;
65
+ /** Static class flag */
66
+ readonly isStatic: boolean;
67
+ };
68
+ /**
69
+ * Type kind classification.
70
+ */
71
+ export type NominalKind = "class" | "interface" | "struct" | "enum" | "delegate";
72
+ /**
73
+ * Where a type originated.
74
+ */
75
+ export type TypeOrigin = "source" | "assembly";
76
+ /**
77
+ * Type parameter declaration on a generic type.
78
+ */
79
+ export type TypeParameterEntry = {
80
+ /** Parameter name (e.g., "T", "TKey") */
81
+ readonly name: string;
82
+ /** Constraint type (e.g., "where T : IComparable") */
83
+ readonly constraint?: IrType;
84
+ /** Default type (if any) */
85
+ readonly defaultType?: IrType;
86
+ };
87
+ /**
88
+ * Inheritance edge connecting types.
89
+ *
90
+ * For generic inheritance like `class MyList<T> extends List<T>`,
91
+ * the typeArguments capture the type parameter mappings.
92
+ */
93
+ export type HeritageEdge = {
94
+ /** "extends" for classes, "implements" for interfaces */
95
+ readonly kind: "extends" | "implements";
96
+ /** Target type's stableId */
97
+ readonly targetStableId: string;
98
+ /** Type arguments passed to the target type */
99
+ readonly typeArguments: readonly IrType[];
100
+ };
101
+ /**
102
+ * Member information for properties, methods, fields, and events.
103
+ */
104
+ export type MemberEntry = {
105
+ /** TS surface name (for symbol binding) */
106
+ readonly tsName: string;
107
+ /** CLR name (for emitter) */
108
+ readonly clrName: string;
109
+ /** Member kind */
110
+ readonly memberKind: MemberKind;
111
+ /** Type (for properties, fields); undefined for methods */
112
+ readonly type?: IrType;
113
+ /** Method signatures (for methods/overloads) */
114
+ readonly signatures?: readonly MethodSignatureEntry[];
115
+ /** Static member flag */
116
+ readonly isStatic: boolean;
117
+ /** Readonly property/field flag */
118
+ readonly isReadonly: boolean;
119
+ /** Abstract member flag */
120
+ readonly isAbstract: boolean;
121
+ /** Virtual member flag */
122
+ readonly isVirtual: boolean;
123
+ /** Override member flag */
124
+ readonly isOverride: boolean;
125
+ /** For properties: is this an indexer? */
126
+ readonly isIndexer: boolean;
127
+ /** For properties: has getter? */
128
+ readonly hasGetter: boolean;
129
+ /** For properties: has setter? */
130
+ readonly hasSetter: boolean;
131
+ /** Stable ID for this member */
132
+ readonly stableId: string;
133
+ };
134
+ /**
135
+ * Member kind classification.
136
+ */
137
+ export type MemberKind = "property" | "method" | "field" | "event";
138
+ /**
139
+ * Complete method signature information.
140
+ *
141
+ * For overloaded methods, each overload has its own entry.
142
+ */
143
+ export type MethodSignatureEntry = {
144
+ /** Stable ID for this specific signature */
145
+ readonly stableId: string;
146
+ /** Method parameters */
147
+ readonly parameters: readonly ParameterEntry[];
148
+ /** Return type */
149
+ readonly returnType: IrType;
150
+ /** Method-level type parameters */
151
+ readonly typeParameters: readonly TypeParameterEntry[];
152
+ /** Parameter count (for quick overload filtering) */
153
+ readonly parameterCount: number;
154
+ /** Static method flag */
155
+ readonly isStatic: boolean;
156
+ /** Extension method flag */
157
+ readonly isExtensionMethod: boolean;
158
+ /** Source interface for explicit interface implementations */
159
+ readonly sourceInterface?: string;
160
+ /** Normalized signature string for dedup */
161
+ readonly normalizedSignature: string;
162
+ };
163
+ /**
164
+ * Parameter information for method signatures.
165
+ */
166
+ export type ParameterEntry = {
167
+ /** Parameter name */
168
+ readonly name: string;
169
+ /** Parameter type */
170
+ readonly type: IrType;
171
+ /** Passing mode (value, ref, out, in) */
172
+ readonly mode: ParameterMode;
173
+ /** Optional parameter flag */
174
+ readonly isOptional: boolean;
175
+ /** Default value (for optional parameters) */
176
+ readonly defaultValue?: unknown;
177
+ /** Rest/params parameter flag */
178
+ readonly isRest: boolean;
179
+ };
180
+ /**
181
+ * Parameter passing mode for C# interop.
182
+ */
183
+ export type ParameterMode = "value" | "ref" | "out" | "in";
184
+ /**
185
+ * Constructor information.
186
+ */
187
+ export type ConstructorEntry = {
188
+ /** Normalized signature for dedup */
189
+ readonly normalizedSignature: string;
190
+ /** Constructor parameters */
191
+ readonly parameters: readonly ParameterEntry[];
192
+ /** Static constructor flag */
193
+ readonly isStatic: boolean;
194
+ /** Parameter count */
195
+ readonly parameterCount: number;
196
+ };
197
+ /**
198
+ * Field information from metadata.
199
+ */
200
+ export type FieldEntry = {
201
+ /** Stable ID */
202
+ readonly stableId: string;
203
+ /** CLR name */
204
+ readonly clrName: string;
205
+ /** TS surface name */
206
+ readonly tsName: string;
207
+ /** Static field flag */
208
+ readonly isStatic: boolean;
209
+ /** Readonly field flag */
210
+ readonly isReadonly: boolean;
211
+ /** Literal/const field flag */
212
+ readonly isLiteral: boolean;
213
+ /** Normalized signature for type extraction */
214
+ readonly normalizedSignature: string;
215
+ };
216
+ /**
217
+ * Complete catalog of types loaded from assembly metadata.
218
+ *
219
+ * This is the result of loading bindings.json + metadata.json files.
220
+ */
221
+ export type AssemblyTypeCatalog = {
222
+ /** All type entries, keyed by stableId */
223
+ readonly entries: ReadonlyMap<string, NominalEntry>;
224
+ /** TS name → TypeId mapping */
225
+ readonly tsNameToTypeId: ReadonlyMap<string, TypeId>;
226
+ /** CLR name → TypeId mapping */
227
+ readonly clrNameToTypeId: ReadonlyMap<string, TypeId>;
228
+ /** Namespace → TypeIds mapping */
229
+ readonly namespaceToTypeIds: ReadonlyMap<string, readonly TypeId[]>;
230
+ };
231
+ /**
232
+ * Unified catalog merging source and assembly types.
233
+ *
234
+ * This is THE source of truth for all type queries.
235
+ * No fallback paths allowed.
236
+ */
237
+ export type UnifiedTypeCatalog = {
238
+ /** Get entry by TypeId */
239
+ readonly getByTypeId: (typeId: TypeId) => NominalEntry | undefined;
240
+ /** Get entry by stableId string */
241
+ readonly getByStableId: (stableId: string) => NominalEntry | undefined;
242
+ /** Resolve TS name to TypeId */
243
+ readonly resolveTsName: (tsName: string) => TypeId | undefined;
244
+ /** Resolve CLR name to TypeId */
245
+ readonly resolveClrName: (clrName: string) => TypeId | undefined;
246
+ /** Get all members of a type */
247
+ readonly getMembers: (typeId: TypeId) => ReadonlyMap<string, MemberEntry>;
248
+ /** Get specific member by name */
249
+ readonly getMember: (typeId: TypeId, memberName: string) => MemberEntry | undefined;
250
+ /** Get heritage edges */
251
+ readonly getHeritage: (typeId: TypeId) => readonly HeritageEdge[];
252
+ /** Get type parameters */
253
+ readonly getTypeParameters: (typeId: TypeId) => readonly TypeParameterEntry[];
254
+ /** Check if type exists */
255
+ readonly hasType: (stableId: string) => boolean;
256
+ /** Get all type IDs */
257
+ readonly getAllTypeIds: () => readonly TypeId[];
258
+ };
259
+ /**
260
+ * Raw type entry from metadata.json.
261
+ * This matches the actual JSON structure.
262
+ */
263
+ export type RawMetadataType = {
264
+ readonly stableId: string;
265
+ readonly clrName: string;
266
+ readonly tsEmitName: string;
267
+ readonly kind: string;
268
+ readonly accessibility: string;
269
+ readonly isAbstract: boolean;
270
+ readonly isSealed: boolean;
271
+ readonly isStatic: boolean;
272
+ readonly arity: number;
273
+ readonly methods: readonly RawMetadataMethod[];
274
+ readonly properties: readonly RawMetadataProperty[];
275
+ readonly fields: readonly RawMetadataField[];
276
+ readonly events: readonly unknown[];
277
+ readonly constructors: readonly RawMetadataConstructor[];
278
+ readonly baseType?: string;
279
+ readonly interfaces?: readonly string[];
280
+ };
281
+ /**
282
+ * Raw method entry from metadata.json.
283
+ */
284
+ export type RawMetadataMethod = {
285
+ readonly stableId: string;
286
+ readonly clrName: string;
287
+ readonly tsEmitName: string;
288
+ readonly normalizedSignature: string;
289
+ readonly provenance: string;
290
+ readonly emitScope: string;
291
+ readonly isStatic: boolean;
292
+ readonly isAbstract: boolean;
293
+ readonly isVirtual: boolean;
294
+ readonly isOverride: boolean;
295
+ readonly isSealed: boolean;
296
+ readonly arity: number;
297
+ readonly parameterCount: number;
298
+ readonly isExtensionMethod: boolean;
299
+ readonly sourceInterface?: string;
300
+ };
301
+ /**
302
+ * Raw property entry from metadata.json.
303
+ */
304
+ export type RawMetadataProperty = {
305
+ readonly stableId: string;
306
+ readonly clrName: string;
307
+ readonly tsEmitName: string;
308
+ readonly normalizedSignature: string;
309
+ readonly provenance: string;
310
+ readonly emitScope: string;
311
+ readonly isStatic: boolean;
312
+ readonly isAbstract: boolean;
313
+ readonly isVirtual: boolean;
314
+ readonly isOverride: boolean;
315
+ readonly isIndexer: boolean;
316
+ readonly hasGetter: boolean;
317
+ readonly hasSetter: boolean;
318
+ };
319
+ /**
320
+ * Raw field entry from metadata.json.
321
+ */
322
+ export type RawMetadataField = {
323
+ readonly stableId: string;
324
+ readonly clrName: string;
325
+ readonly tsEmitName: string;
326
+ readonly normalizedSignature: string;
327
+ readonly isStatic: boolean;
328
+ readonly isReadOnly: boolean;
329
+ readonly isLiteral: boolean;
330
+ };
331
+ /**
332
+ * Raw constructor entry from metadata.json.
333
+ */
334
+ export type RawMetadataConstructor = {
335
+ readonly normalizedSignature: string;
336
+ readonly isStatic: boolean;
337
+ readonly parameterCount: number;
338
+ };
339
+ /**
340
+ * Raw metadata.json file structure.
341
+ */
342
+ export type RawMetadataFile = {
343
+ readonly namespace: string;
344
+ readonly contributingAssemblies: readonly string[];
345
+ readonly types: readonly RawMetadataType[];
346
+ };
347
+ /**
348
+ * Raw bindings.json type entry.
349
+ */
350
+ export type RawBindingType = {
351
+ readonly stableId: string;
352
+ readonly clrName: string;
353
+ readonly tsEmitName: string;
354
+ readonly assemblyName: string;
355
+ readonly metadataToken: number;
356
+ readonly methods: readonly RawBindingMethod[];
357
+ readonly properties: readonly RawBindingProperty[];
358
+ readonly fields: readonly RawBindingField[];
359
+ };
360
+ /**
361
+ * Raw bindings.json method entry.
362
+ */
363
+ export type RawBindingMethod = {
364
+ readonly stableId: string;
365
+ readonly clrName: string;
366
+ readonly tsEmitName: string;
367
+ readonly metadataToken: number;
368
+ readonly normalizedSignature: string;
369
+ readonly isStatic: boolean;
370
+ readonly declaringClrType: string;
371
+ readonly declaringAssemblyName: string;
372
+ readonly isExtensionMethod: boolean;
373
+ readonly parameterModifiers?: readonly {
374
+ readonly index: number;
375
+ readonly modifier: "ref" | "out" | "in";
376
+ }[];
377
+ };
378
+ /**
379
+ * Raw bindings.json property entry.
380
+ */
381
+ export type RawBindingProperty = {
382
+ readonly stableId: string;
383
+ readonly clrName: string;
384
+ readonly tsEmitName: string;
385
+ readonly metadataToken: number;
386
+ readonly normalizedSignature: string;
387
+ readonly isStatic: boolean;
388
+ readonly declaringClrType: string;
389
+ readonly declaringAssemblyName: string;
390
+ };
391
+ /**
392
+ * Raw bindings.json field entry.
393
+ */
394
+ export type RawBindingField = {
395
+ readonly stableId: string;
396
+ readonly clrName: string;
397
+ readonly tsEmitName: string;
398
+ readonly metadataToken: number;
399
+ readonly normalizedSignature: string;
400
+ readonly isStatic: boolean;
401
+ readonly isReadOnly: boolean;
402
+ readonly declaringClrType: string;
403
+ readonly declaringAssemblyName: string;
404
+ };
405
+ /**
406
+ * Raw bindings.json file structure.
407
+ */
408
+ export type RawBindingsFile = {
409
+ readonly namespace: string;
410
+ readonly types: readonly RawBindingType[];
411
+ };
412
+ /**
413
+ * Create a TypeId from components.
414
+ */
415
+ export declare const makeTypeId: (stableId: string, clrName: string, assemblyName: string, tsName: string) => TypeId;
416
+ /**
417
+ * Parse a stableId into assemblyName and clrName.
418
+ */
419
+ export declare const parseStableId: (stableId: string) => {
420
+ assemblyName: string;
421
+ clrName: string;
422
+ } | undefined;
423
+ /**
424
+ * Mapping from TS primitive type names to their CLR stableIds.
425
+ *
426
+ * This enables normalizing `primitiveType("string")` to the canonical
427
+ * `System.String` nominal type for member lookups.
428
+ */
429
+ export declare const PRIMITIVE_TO_STABLE_ID: ReadonlyMap<string, string>;
430
+ /**
431
+ * Mapping from CLR stableIds back to TS primitive type names.
432
+ *
433
+ * This enables the emitter to use primitive syntax when appropriate.
434
+ */
435
+ export declare const STABLE_ID_TO_PRIMITIVE: ReadonlyMap<string, string>;
436
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/universe/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAMtD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAMF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,cAAc,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvD,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnD,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,6BAA6B;IAC7B,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACxE,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,WAAW,GACX,QAAQ,GACR,MAAM,GACN,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAMF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;IACxC,6BAA6B;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kBAAkB;IAClB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,0BAA0B;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAMnE;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,kBAAkB;IAClB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mCAAmC;IACnC,QAAQ,CAAC,cAAc,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACvD,qDAAqD;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,yBAAyB;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,4CAA4C;IAC5C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAM3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAC/C,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sBAAsB;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,eAAe;IACf,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sBAAsB;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC,CAAC;AAMF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpD,+BAA+B;IAC/B,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,gCAAgC;IAChC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,kCAAkC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CACrE,CAAC;AAMF;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;IACnE,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;IACvE,gCAAgC;IAChC,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/D,iCAAiC;IACjC,QAAQ,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACjE,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1E,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,CAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,WAAW,GAAG,SAAS,CAAC;IAC7B,yBAAyB;IACzB,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,YAAY,EAAE,CAAC;IAClE,0BAA0B;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,kBAAkB,EAAE,CAAC;IAC9E,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,uBAAuB;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;CACjD,CAAC;AAMF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;CAC5C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;CAC7C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS;QACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;KACzC,EAAE,CAAC;CACL,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAC3C,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,UAAU,MAAM,EAChB,SAAS,MAAM,EACf,cAAc,MAAM,EACpB,QAAQ,MAAM,KACb,MAKD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,KACf;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAO9C,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAM7D,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAM7D,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Type Universe Type Definitions
3
+ *
4
+ * This module defines the types for the unified type catalog that merges
5
+ * source-authored types (from TS AST) and assembly-authored types (from
6
+ * CLR metadata in bindings.json/metadata.json).
7
+ *
8
+ * INVARIANT INV-CLR: All nominal type identities come from ONE unified catalog.
9
+ * No type query is allowed to "fall back" to parallel logic or parallel stores.
10
+ *
11
+ * Key Types:
12
+ * - TypeId: Canonical identity for any nominal type
13
+ * - NominalEntry: Complete type information from either source or assembly
14
+ * - MemberEntry: Property/method/field information
15
+ * - MethodSignatureEntry: Full method signature with parameters
16
+ */
17
+ // ═══════════════════════════════════════════════════════════════════════════
18
+ // FACTORY FUNCTIONS
19
+ // ═══════════════════════════════════════════════════════════════════════════
20
+ /**
21
+ * Create a TypeId from components.
22
+ */
23
+ export const makeTypeId = (stableId, clrName, assemblyName, tsName) => ({
24
+ stableId,
25
+ clrName,
26
+ assemblyName,
27
+ tsName,
28
+ });
29
+ /**
30
+ * Parse a stableId into assemblyName and clrName.
31
+ */
32
+ export const parseStableId = (stableId) => {
33
+ const colonIndex = stableId.indexOf(":");
34
+ if (colonIndex === -1)
35
+ return undefined;
36
+ return {
37
+ assemblyName: stableId.slice(0, colonIndex),
38
+ clrName: stableId.slice(colonIndex + 1),
39
+ };
40
+ };
41
+ // ═══════════════════════════════════════════════════════════════════════════
42
+ // PRIMITIVE ↔ NOMINAL MAPPINGS
43
+ // ═══════════════════════════════════════════════════════════════════════════
44
+ /**
45
+ * Mapping from TS primitive type names to their CLR stableIds.
46
+ *
47
+ * This enables normalizing `primitiveType("string")` to the canonical
48
+ * `System.String` nominal type for member lookups.
49
+ */
50
+ export const PRIMITIVE_TO_STABLE_ID = new Map([
51
+ ["string", "System.Private.CoreLib:System.String"],
52
+ ["number", "System.Private.CoreLib:System.Double"],
53
+ ["int", "System.Private.CoreLib:System.Int32"],
54
+ ["boolean", "System.Private.CoreLib:System.Boolean"],
55
+ ["char", "System.Private.CoreLib:System.Char"],
56
+ ]);
57
+ /**
58
+ * Mapping from CLR stableIds back to TS primitive type names.
59
+ *
60
+ * This enables the emitter to use primitive syntax when appropriate.
61
+ */
62
+ export const STABLE_ID_TO_PRIMITIVE = new Map([
63
+ ["System.Private.CoreLib:System.String", "string"],
64
+ ["System.Private.CoreLib:System.Double", "number"],
65
+ ["System.Private.CoreLib:System.Int32", "int"],
66
+ ["System.Private.CoreLib:System.Boolean", "boolean"],
67
+ ["System.Private.CoreLib:System.Char", "char"],
68
+ ]);
69
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/universe/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAwdH,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,QAAgB,EAChB,OAAe,EACf,YAAoB,EACpB,MAAc,EACN,EAAE,CAAC,CAAC;IACZ,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,MAAM;CACP,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,QAAgB,EACuC,EAAE;IACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QAC3C,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;KACxC,CAAC;AACJ,CAAC,CAAC;AAEF,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAgC,IAAI,GAAG,CAAC;IACzE,CAAC,QAAQ,EAAE,sCAAsC,CAAC;IAClD,CAAC,QAAQ,EAAE,sCAAsC,CAAC;IAClD,CAAC,KAAK,EAAE,qCAAqC,CAAC;IAC9C,CAAC,SAAS,EAAE,uCAAuC,CAAC;IACpD,CAAC,MAAM,EAAE,oCAAoC,CAAC;CAC/C,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAgC,IAAI,GAAG,CAAC;IACzE,CAAC,sCAAsC,EAAE,QAAQ,CAAC;IAClD,CAAC,sCAAsC,EAAE,QAAQ,CAAC;IAClD,CAAC,qCAAqC,EAAE,KAAK,CAAC;IAC9C,CAAC,uCAAuC,EAAE,SAAS,CAAC;IACpD,CAAC,oCAAoC,EAAE,MAAM,CAAC;CAC/C,CAAC,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Unified Type Universe
3
+ *
4
+ * Merges source-authored types (from TypeRegistry) and assembly-authored
5
+ * types (from ClrCatalog) into a single unified lookup table.
6
+ *
7
+ * INVARIANT INV-CLR: This is THE source of truth for all type queries.
8
+ * No fallback paths allowed. If a type isn't in this catalog, it doesn't exist.
9
+ *
10
+ * Design:
11
+ * - Source types get stableIds generated as "{projectName}:{fullyQualifiedName}"
12
+ * - Assembly types keep their original stableIds from metadata.json
13
+ * - Lookups by tsName, clrName, or stableId all work uniformly
14
+ */
15
+ import type { IrType } from "../../../types/index.js";
16
+ import type { TypeId, MemberEntry, AssemblyTypeCatalog, UnifiedTypeCatalog } from "./types.js";
17
+ import type { TypeRegistry } from "../type-registry.js";
18
+ /**
19
+ * Build a unified type catalog from source and assembly catalogs.
20
+ *
21
+ * @param sourceRegistry - TypeRegistry containing source-authored types
22
+ * @param assemblyCatalog - AssemblyTypeCatalog containing CLR metadata types
23
+ * @param projectName - Project name for generating source type stableIds
24
+ * @returns UnifiedTypeCatalog with merged type information
25
+ */
26
+ export declare const buildUnifiedUniverse: (sourceRegistry: TypeRegistry | undefined, assemblyCatalog: AssemblyTypeCatalog, projectName?: string) => UnifiedTypeCatalog;
27
+ /**
28
+ * Normalize a primitive IrType to its canonical nominal TypeId.
29
+ *
30
+ * This is the key function for unifying primitive types with their CLR counterparts:
31
+ * - primitiveType("string") → TypeId for System.String
32
+ * - primitiveType("int") → TypeId for System.Int32
33
+ * - primitiveType("number") → TypeId for System.Double
34
+ * - primitiveType("boolean") → TypeId for System.Boolean
35
+ *
36
+ * @param type - The IrType to normalize
37
+ * @param catalog - The unified catalog to look up TypeIds
38
+ * @returns The TypeId if this is a primitive that maps to a nominal, undefined otherwise
39
+ */
40
+ export declare const normalizePrimitiveToTypeId: (type: IrType, catalog: UnifiedTypeCatalog) => TypeId | undefined;
41
+ /**
42
+ * Get the TypeId for an IrType, normalizing primitives as needed.
43
+ *
44
+ * @param type - The IrType to get a TypeId for
45
+ * @param catalog - The unified catalog
46
+ * @returns The TypeId if this type has one, undefined for structural types
47
+ */
48
+ export declare const getTypeId: (type: IrType, catalog: UnifiedTypeCatalog) => TypeId | undefined;
49
+ /**
50
+ * Look up a member on a type, walking the inheritance chain if necessary.
51
+ *
52
+ * @param typeId - The type to start from
53
+ * @param memberName - The member name (TS name)
54
+ * @param catalog - The unified catalog
55
+ * @returns The member entry if found, undefined otherwise
56
+ */
57
+ export declare const lookupMemberWithInheritance: (typeId: TypeId, memberName: string, catalog: UnifiedTypeCatalog) => MemberEntry | undefined;
58
+ /**
59
+ * Get the declared type of a member, normalizing primitives.
60
+ *
61
+ * This is the primary entry point for type queries about members.
62
+ * Returns the IrType of the member, with primitives normalized.
63
+ *
64
+ * @param receiverType - The type of the receiver (object being accessed)
65
+ * @param memberName - The member name (TS name)
66
+ * @param catalog - The unified catalog
67
+ * @returns The member's IrType if found, undefined otherwise
68
+ */
69
+ export declare const getMemberDeclaredType: (receiverType: IrType, memberName: string, catalog: UnifiedTypeCatalog) => IrType | undefined;
70
+ //# sourceMappingURL=unified-universe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-universe.d.ts","sourceRoot":"","sources":["../../../../../src/ir/type-system/internal/universe/unified-universe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EACV,MAAM,EAGN,WAAW,EAGX,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,qBAAqB,CAAC;AA8L7B;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,gBAAgB,YAAY,GAAG,SAAS,EACxC,iBAAiB,mBAAmB,EACpC,cAAa,MAAkB,KAC9B,kBAmEF,CAAC;AAMF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,GACrC,MAAM,MAAM,EACZ,SAAS,kBAAkB,KAC1B,MAAM,GAAG,SAQX,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,EACZ,SAAS,kBAAkB,KAC1B,MAAM,GAAG,SAwBX,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GACtC,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,SAAS,kBAAkB,KAC1B,WAAW,GAAG,SAoBhB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAChC,cAAc,MAAM,EACpB,YAAY,MAAM,EAClB,SAAS,kBAAkB,KAC1B,MAAM,GAAG,SAUX,CAAC"}