@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,456 @@
1
+ /**
2
+ * TypeSystem Core Implementation
3
+ *
4
+ * Implements the TypeSystem interface using TypeRegistry, NominalEnv,
5
+ * and HandleRegistry. This is the single source of truth for all type queries.
6
+ *
7
+ * INVARIANT INV-0: No ts.Type or computed type APIs are used here.
8
+ * All type information comes from:
9
+ * 1. HandleRegistry (declaration TypeNodes from Binding layer)
10
+ * 2. TypeRegistry (nominal type declarations)
11
+ * 3. NominalEnv (inheritance chain + substitution)
12
+ */
13
+ import { substituteIrType, typesEqual } from "../types/index.js";
14
+ import { typeOk, typeError, signatureOk, unknownType, voidType, } from "./types.js";
15
+ import { createDiagnostic } from "../../types/diagnostic.js";
16
+ /**
17
+ * Create a TypeSystem instance.
18
+ */
19
+ export const createTypeSystem = (config) => {
20
+ const { registry, nominalEnv, handleRegistry, convertTypeNode, binding } = config;
21
+ // ─────────────────────────────────────────────────────────────────────────
22
+ // CORE QUERIES
23
+ // ─────────────────────────────────────────────────────────────────────────
24
+ const getDeclType = (decl) => {
25
+ const info = handleRegistry.getDecl(decl);
26
+ if (!info) {
27
+ return typeError([
28
+ createDiagnostic("TSN5203", "error", "Cannot resolve declaration type"),
29
+ ]);
30
+ }
31
+ // If we have an explicit type annotation, convert it
32
+ if (info.typeNode) {
33
+ const irType = convertTypeNode(info.typeNode, binding);
34
+ return typeOk(irType);
35
+ }
36
+ // For declarations without explicit type, return unknownType with diagnostic
37
+ return typeError([
38
+ createDiagnostic("TSN5201", "error", `Declaration '${info.fqName ?? "unknown"}' requires explicit type annotation`),
39
+ ]);
40
+ };
41
+ const getSignature = (sig) => {
42
+ const info = handleRegistry.getSignature(sig);
43
+ if (!info) {
44
+ return {
45
+ parameters: [],
46
+ returnType: unknownType,
47
+ diagnostics: [
48
+ createDiagnostic("TSN5203", "error", "Cannot resolve signature"),
49
+ ],
50
+ };
51
+ }
52
+ // Convert parameters
53
+ const parameters = info.parameters.map((p) => ({
54
+ name: p.name,
55
+ type: p.typeNode
56
+ ? convertTypeNode(p.typeNode, binding)
57
+ : unknownType,
58
+ isOptional: p.isOptional,
59
+ isRest: p.isRest,
60
+ }));
61
+ // Convert return type
62
+ const returnType = info.returnTypeNode
63
+ ? convertTypeNode(info.returnTypeNode, binding)
64
+ : voidType;
65
+ // Convert type parameters
66
+ const typeParameters = info.typeParameters?.map((tp) => ({
67
+ name: tp.name,
68
+ constraint: tp.constraintNode
69
+ ? convertTypeNode(tp.constraintNode, binding)
70
+ : undefined,
71
+ defaultType: tp.defaultNode
72
+ ? convertTypeNode(tp.defaultNode, binding)
73
+ : undefined,
74
+ }));
75
+ return signatureOk(parameters, returnType, typeParameters);
76
+ };
77
+ const getMemberType = (_type, member) => {
78
+ const info = handleRegistry.getMember(member);
79
+ if (!info) {
80
+ return typeError([
81
+ createDiagnostic("TSN5203", "error", `Cannot resolve member '${member.name}'`),
82
+ ]);
83
+ }
84
+ if (!info.typeNode) {
85
+ return typeError([
86
+ createDiagnostic("TSN5201", "error", `Member '${member.name}' requires explicit type annotation`),
87
+ ]);
88
+ }
89
+ const irType = convertTypeNode(info.typeNode, binding);
90
+ return typeOk(irType);
91
+ };
92
+ const instantiate = (type, args) => {
93
+ if (type.kind !== "referenceType") {
94
+ return typeOk(type); // Non-reference types don't have type parameters
95
+ }
96
+ // Look up the type in registry to get its type parameters
97
+ const entry = registry.resolveBySimpleName(type.name);
98
+ if (!entry) {
99
+ // Type not in registry - just attach type arguments
100
+ return typeOk({
101
+ ...type,
102
+ typeArguments: args,
103
+ });
104
+ }
105
+ // Build substitution map
106
+ const subst = new Map();
107
+ entry.typeParameters.forEach((param, i) => {
108
+ const arg = args[i];
109
+ if (arg !== undefined) {
110
+ subst.set(param.name, arg);
111
+ }
112
+ });
113
+ // Substitute in structural members if present
114
+ const substitutedMembers = type.structuralMembers?.map((m) => substituteIrMember(m, subst));
115
+ return typeOk({
116
+ ...type,
117
+ typeArguments: args,
118
+ structuralMembers: substitutedMembers,
119
+ });
120
+ };
121
+ const getExpectedType = (_position) => {
122
+ // This is a simplified implementation
123
+ // The full implementation would walk up the AST to find contextual type
124
+ // For now, return unknownType - the actual implementation is in helpers.ts
125
+ return typeOk(unknownType);
126
+ };
127
+ // ─────────────────────────────────────────────────────────────────────────
128
+ // UTILITY TYPE EXPANSION
129
+ // ─────────────────────────────────────────────────────────────────────────
130
+ const expandUtilityType = (utilityName, typeArgs, _sourceTypeArgs) => {
131
+ const firstArg = typeArgs[0];
132
+ if (!firstArg) {
133
+ return typeError([
134
+ createDiagnostic("TSN7414", "error", `Utility type '${utilityName}' requires a type argument`),
135
+ ]);
136
+ }
137
+ switch (utilityName) {
138
+ case "NonNullable":
139
+ return expandNonNullable(firstArg);
140
+ case "Partial":
141
+ case "Required":
142
+ case "Readonly":
143
+ return expandMappedUtility(utilityName, firstArg);
144
+ default:
145
+ return typeError([
146
+ createDiagnostic("TSN7414", "error", `Utility type '${utilityName}' expansion not yet implemented in TypeSystem`),
147
+ ]);
148
+ }
149
+ };
150
+ // ─────────────────────────────────────────────────────────────────────────
151
+ // STRUCTURAL OPERATIONS
152
+ // ─────────────────────────────────────────────────────────────────────────
153
+ const getStructuralMembers = (type) => {
154
+ if (type.kind === "objectType") {
155
+ return type.members.map((m) => memberToResult(m, type));
156
+ }
157
+ if (type.kind === "referenceType" && type.structuralMembers) {
158
+ return type.structuralMembers.map((m) => memberToResult(m, type));
159
+ }
160
+ if (type.kind === "referenceType") {
161
+ // Look up in registry and get members
162
+ const entry = registry.resolveBySimpleName(type.name);
163
+ if (!entry)
164
+ return [];
165
+ const members = [];
166
+ entry.members.forEach((info, name) => {
167
+ if (info.kind === "property" && info.type) {
168
+ // MemberInfo.type is now pure IrType - no conversion needed
169
+ members.push({
170
+ name,
171
+ type: info.type,
172
+ isOptional: info.isOptional,
173
+ isReadonly: info.isReadonly,
174
+ declaringType: type,
175
+ });
176
+ }
177
+ });
178
+ // Include inherited members via NominalEnv
179
+ const fqName = registry.getFQName(type.name);
180
+ if (fqName) {
181
+ const chain = nominalEnv.getInheritanceChain(fqName);
182
+ for (const parentFqName of chain.slice(1)) {
183
+ const parentEntry = registry.resolveNominal(parentFqName);
184
+ if (!parentEntry)
185
+ continue;
186
+ // Get substitution for this parent
187
+ const subst = nominalEnv.getInstantiation(fqName, type.typeArguments ?? [], parentFqName);
188
+ parentEntry.members.forEach((info, name) => {
189
+ // Skip if already have this member (child overrides)
190
+ if (members.some((m) => m.name === name))
191
+ return;
192
+ if (info.kind === "property" && info.type) {
193
+ // MemberInfo.type is now pure IrType - apply substitution directly
194
+ const memberType = subst
195
+ ? substituteIrType(info.type, subst)
196
+ : info.type;
197
+ members.push({
198
+ name,
199
+ type: memberType,
200
+ isOptional: info.isOptional,
201
+ isReadonly: info.isReadonly,
202
+ declaringType: {
203
+ kind: "referenceType",
204
+ name: parentEntry.name,
205
+ },
206
+ });
207
+ }
208
+ });
209
+ }
210
+ }
211
+ return members;
212
+ }
213
+ return [];
214
+ };
215
+ const resolvePropertyAccess = (type, propertyName) => {
216
+ // Handle arrays
217
+ if (type.kind === "arrayType") {
218
+ if (propertyName === "length") {
219
+ return typeOk({ kind: "primitiveType", name: "int" });
220
+ }
221
+ return typeError([
222
+ createDiagnostic("TSN5203", "error", `Property '${propertyName}' not found on array type`),
223
+ ]);
224
+ }
225
+ // Handle tuples
226
+ if (type.kind === "tupleType") {
227
+ const index = parseInt(propertyName, 10);
228
+ const element = type.elementTypes[index];
229
+ if (!isNaN(index) && index >= 0 && element !== undefined) {
230
+ return typeOk(element);
231
+ }
232
+ if (propertyName === "length") {
233
+ return typeOk({
234
+ kind: "literalType",
235
+ value: type.elementTypes.length,
236
+ });
237
+ }
238
+ }
239
+ // Handle objects and references
240
+ const members = getStructuralMembers(type);
241
+ const member = members.find((m) => m.name === propertyName);
242
+ if (member) {
243
+ return typeOk(member.type);
244
+ }
245
+ return typeError([
246
+ createDiagnostic("TSN5203", "error", `Property '${propertyName}' not found on type`),
247
+ ]);
248
+ };
249
+ const synthesizeObjectType = (properties) => {
250
+ const members = properties.map((p) => ({
251
+ kind: "propertySignature",
252
+ name: p.name,
253
+ type: p.value,
254
+ isOptional: p.isOptional ?? false,
255
+ isReadonly: false,
256
+ }));
257
+ return typeOk({
258
+ kind: "objectType",
259
+ members,
260
+ });
261
+ };
262
+ // ─────────────────────────────────────────────────────────────────────────
263
+ // SUBSTITUTION & INHERITANCE
264
+ // ─────────────────────────────────────────────────────────────────────────
265
+ const substitute = (type, substitutions) => {
266
+ return substituteIrType(type, substitutions);
267
+ };
268
+ const getInheritanceChain = (type) => {
269
+ const fqName = registry.getFQName(type.name);
270
+ if (!fqName)
271
+ return [type];
272
+ const chain = nominalEnv.getInheritanceChain(fqName);
273
+ return chain.map((name) => {
274
+ const entry = registry.resolveNominal(name);
275
+ return {
276
+ kind: "referenceType",
277
+ name: entry?.name ?? name,
278
+ };
279
+ });
280
+ };
281
+ // ─────────────────────────────────────────────────────────────────────────
282
+ // TYPE COMPARISON
283
+ // ─────────────────────────────────────────────────────────────────────────
284
+ const typesEqualFn = (a, b) => {
285
+ return typesEqual(a, b);
286
+ };
287
+ const isAssignableTo = (source, target) => {
288
+ // Simple structural check for now
289
+ if (typesEqual(source, target))
290
+ return true;
291
+ // any is assignable to anything
292
+ if (source.kind === "anyType")
293
+ return true;
294
+ // anything is assignable to any
295
+ if (target.kind === "anyType")
296
+ return true;
297
+ // unknown accepts anything
298
+ if (target.kind === "unknownType")
299
+ return true;
300
+ // null/undefined assignable to optional types
301
+ if (source.kind === "primitiveType") {
302
+ if (source.name === "null" || source.name === "undefined") {
303
+ if (target.kind === "unionType") {
304
+ return target.types.some((t) => t.kind === "primitiveType" &&
305
+ (t.name === "null" || t.name === "undefined"));
306
+ }
307
+ }
308
+ }
309
+ // TODO: More complex subtype checks
310
+ return false;
311
+ };
312
+ return {
313
+ getDeclType,
314
+ getSignature,
315
+ getMemberType,
316
+ instantiate,
317
+ getExpectedType,
318
+ expandUtilityType,
319
+ getStructuralMembers,
320
+ resolvePropertyAccess,
321
+ synthesizeObjectType,
322
+ substitute,
323
+ getInheritanceChain,
324
+ typesEqual: typesEqualFn,
325
+ isAssignableTo,
326
+ };
327
+ };
328
+ // ═══════════════════════════════════════════════════════════════════════════
329
+ // HELPER FUNCTIONS
330
+ // ═══════════════════════════════════════════════════════════════════════════
331
+ const substituteIrMember = (member, subst) => {
332
+ if (member.kind === "propertySignature") {
333
+ return {
334
+ ...member,
335
+ type: substituteIrType(member.type, subst),
336
+ };
337
+ }
338
+ if (member.kind === "methodSignature") {
339
+ return {
340
+ ...member,
341
+ parameters: member.parameters.map((p) => ({
342
+ ...p,
343
+ type: p.type ? substituteIrType(p.type, subst) : undefined,
344
+ })),
345
+ returnType: member.returnType
346
+ ? substituteIrType(member.returnType, subst)
347
+ : undefined,
348
+ };
349
+ }
350
+ return member;
351
+ };
352
+ const memberToResult = (member, declaringType) => {
353
+ if (member.kind === "propertySignature") {
354
+ return {
355
+ name: member.name,
356
+ type: member.type,
357
+ isOptional: member.isOptional,
358
+ isReadonly: member.isReadonly,
359
+ declaringType,
360
+ };
361
+ }
362
+ // Method signature
363
+ return {
364
+ name: member.name,
365
+ type: getFunctionTypeForMethod(member),
366
+ isOptional: false,
367
+ isReadonly: false,
368
+ declaringType,
369
+ };
370
+ };
371
+ const getFunctionTypeForMethod = (method) => {
372
+ return {
373
+ kind: "functionType",
374
+ parameters: method.parameters.map((p) => ({
375
+ kind: "parameter",
376
+ pattern: {
377
+ kind: "identifierPattern",
378
+ name: getParameterName(p),
379
+ },
380
+ type: p.type,
381
+ isOptional: p.isOptional,
382
+ isRest: p.isRest,
383
+ passing: p.passing,
384
+ })),
385
+ returnType: method.returnType ?? voidType,
386
+ };
387
+ };
388
+ const getParameterName = (p) => {
389
+ if (p.pattern.kind === "identifierPattern" && p.pattern.name) {
390
+ return p.pattern.name;
391
+ }
392
+ return "param";
393
+ };
394
+ // ─────────────────────────────────────────────────────────────────────────
395
+ // UTILITY TYPE HELPERS
396
+ // ─────────────────────────────────────────────────────────────────────────
397
+ const expandNonNullable = (type) => {
398
+ if (type.kind !== "unionType") {
399
+ // Not a union, check if it's null/undefined directly
400
+ if (type.kind === "primitiveType") {
401
+ if (type.name === "null" || type.name === "undefined") {
402
+ return typeOk({ kind: "neverType" });
403
+ }
404
+ }
405
+ return typeOk(type);
406
+ }
407
+ // Filter out null and undefined from union
408
+ const filtered = type.types.filter((t) => {
409
+ if (t.kind === "primitiveType") {
410
+ return t.name !== "null" && t.name !== "undefined";
411
+ }
412
+ return true;
413
+ });
414
+ if (filtered.length === 0) {
415
+ return typeOk({ kind: "neverType" });
416
+ }
417
+ const first = filtered[0];
418
+ if (filtered.length === 1 && first !== undefined) {
419
+ return typeOk(first);
420
+ }
421
+ return typeOk({ kind: "unionType", types: filtered });
422
+ };
423
+ const expandMappedUtility = (utilityName, type) => {
424
+ // Only works on object/reference types
425
+ if (type.kind !== "objectType" && type.kind !== "referenceType") {
426
+ return typeError([
427
+ createDiagnostic("TSN7414", "error", `${utilityName} requires an object type argument`),
428
+ ]);
429
+ }
430
+ // For reference types without structural members, we can't expand
431
+ if (type.kind === "referenceType" && !type.structuralMembers) {
432
+ return typeError([
433
+ createDiagnostic("TSN7414", "error", `${utilityName} requires a concrete object type, not a type parameter`),
434
+ ]);
435
+ }
436
+ const members = type.kind === "objectType" ? type.members : (type.structuralMembers ?? []);
437
+ const transformedMembers = members.map((m) => {
438
+ if (m.kind !== "propertySignature")
439
+ return m;
440
+ const prop = m;
441
+ return {
442
+ ...prop,
443
+ isOptional: utilityName === "Partial"
444
+ ? true
445
+ : utilityName === "Required"
446
+ ? false
447
+ : prop.isOptional,
448
+ isReadonly: utilityName === "Readonly" ? true : prop.isReadonly,
449
+ };
450
+ });
451
+ return typeOk({
452
+ kind: "objectType",
453
+ members: transformedMembers,
454
+ });
455
+ };
456
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/ir/type-system/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * TypeAuthority — Single Source of Truth for All Type Queries
3
+ *
4
+ * ALICE'S SPEC (Phase 5): This is the ONLY public API for type operations.
5
+ * The public module is structurally incapable of supporting a parallel type system.
6
+ *
7
+ * INVARIANT: No ts.Type, ts.Symbol, or computed type APIs appear in this layer.
8
+ * INVARIANT: No raw structures (TypeNodes, declarations, registries) are exported.
9
+ * INVARIANT: All type information flows through semantic methods only.
10
+ *
11
+ * The Binding layer handles TS symbol resolution and produces opaque handles
12
+ * (DeclId, SignatureId, MemberId, TypeSyntaxId) that cross into this layer.
13
+ */
14
+ import type { DeclId, SignatureId, MemberId, TypeSyntaxId, TypeResult, SignatureResult, MemberResult, PropertyInit, SyntaxPosition, TypeSubstitution, UtilityTypeName, ParameterMode } from "./types.js";
15
+ export type { DeclId, SignatureId, MemberId, TypeSyntaxId };
16
+ export type { TypeId } from "./internal/universe/types.js";
17
+ export type { TypeResult, SignatureResult, MemberResult, PropertyInit, SyntaxPosition, TypeSubstitution, UtilityTypeName, ParameterMode, };
18
+ export type { TypeAuthority, MemberRef, CallQuery, ResolvedCall, Site, } from "./type-system.js";
19
+ export { makeDeclId, makeSignatureId, makeMemberId, makeTypeSyntaxId, typeOk, typeError, signatureOk, unknownType, neverType, voidType, anyType, } from "./types.js";
20
+ export { BUILTIN_NOMINALS, poisonedCall, createTypeSystem, } from "./type-system.js";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/type-system/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAC;AAMpB,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAG5D,YAAY,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAM3D,YAAY,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,GACd,CAAC;AAGF,YAAY,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,YAAY,EACZ,IAAI,GACL,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * TypeAuthority — Single Source of Truth for All Type Queries
3
+ *
4
+ * ALICE'S SPEC (Phase 5): This is the ONLY public API for type operations.
5
+ * The public module is structurally incapable of supporting a parallel type system.
6
+ *
7
+ * INVARIANT: No ts.Type, ts.Symbol, or computed type APIs appear in this layer.
8
+ * INVARIANT: No raw structures (TypeNodes, declarations, registries) are exported.
9
+ * INVARIANT: All type information flows through semantic methods only.
10
+ *
11
+ * The Binding layer handles TS symbol resolution and produces opaque handles
12
+ * (DeclId, SignatureId, MemberId, TypeSyntaxId) that cross into this layer.
13
+ */
14
+ // ═══════════════════════════════════════════════════════════════════════════════
15
+ // FACTORY FUNCTIONS — For handle creation and result construction
16
+ // ═══════════════════════════════════════════════════════════════════════════════
17
+ export { makeDeclId, makeSignatureId, makeMemberId, makeTypeSyntaxId, typeOk, typeError, signatureOk, unknownType, neverType, voidType, anyType, } from "./types.js";
18
+ export { BUILTIN_NOMINALS, poisonedCall, createTypeSystem, } from "./type-system.js";
19
+ // ═══════════════════════════════════════════════════════════════════════════════
20
+ // INTERNAL TYPES — NOT EXPORTED
21
+ // ═══════════════════════════════════════════════════════════════════════════════
22
+ //
23
+ // The following types are INTERNAL ONLY and must NOT be exported:
24
+ // - TypeSystemDeps
25
+ // - HandleRegistry
26
+ // - DeclInfo, SignatureInfo, MemberInfo, TypeSyntaxInfo
27
+ // - ParameterNode, TypeParameterNode
28
+ // - SignatureTypePredicate
29
+ // - DeclKind
30
+ // - TypeSystemConfig
31
+ // - TypeRegistryAPI, NominalEnvAPI
32
+ // - RawSignatureInfo
33
+ // - TypeSubstitutionMap (internal)
34
+ // - MemberLookupResult (internal)
35
+ //
36
+ // These are defined in type-system/internal/* and imported only by:
37
+ // - type-system implementation
38
+ // - binding implementation
39
+ //
40
+ // ALICE'S SPEC: The public module is structurally incapable of supporting
41
+ // a parallel type system. No raw structures. No escape hatches.
42
+ // ═══════════════════════════════════════════════════════════════════════════════
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/type-system/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkDH,kFAAkF;AAClF,kEAAkE;AAClE,kFAAkF;AAElF,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,kFAAkF;AAClF,gCAAgC;AAChC,kFAAkF;AAClF,EAAE;AACF,kEAAkE;AAClE,mBAAmB;AACnB,mBAAmB;AACnB,wDAAwD;AACxD,qCAAqC;AACrC,2BAA2B;AAC3B,aAAa;AACb,qBAAqB;AACrB,mCAAmC;AACnC,qBAAqB;AACrB,mCAAmC;AACnC,kCAAkC;AAClC,EAAE;AACF,oEAAoE;AACpE,+BAA+B;AAC/B,2BAA2B;AAC3B,EAAE;AACF,0EAA0E;AAC1E,gEAAgE;AAChE,kFAAkF"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Internal Handle Types — NOT FOR PUBLIC EXPORT
3
+ *
4
+ * ALICE'S SPEC: These types are INTERNAL ONLY.
5
+ * They may contain raw TypeNodes (as unknown) for internal use.
6
+ * They must NOT be exported from type-system/index.ts.
7
+ *
8
+ * Allowed importers:
9
+ * - ir/type-system/**
10
+ * - ir/binding/**
11
+ */
12
+ import type { DeclId, SignatureId, MemberId, TypeSyntaxId, ParameterMode } from "../types.js";
13
+ /**
14
+ * Handle registry — maps opaque handles to their underlying data.
15
+ *
16
+ * INTERNAL ONLY. Not exported from public API.
17
+ */
18
+ export interface HandleRegistry {
19
+ getDecl(id: DeclId): DeclInfo | undefined;
20
+ getSignature(id: SignatureId): SignatureInfo | undefined;
21
+ getMember(id: MemberId): MemberInfo | undefined;
22
+ getTypeSyntax(id: TypeSyntaxId): TypeSyntaxInfo | undefined;
23
+ }
24
+ /**
25
+ * Type syntax info stored in the handle registry.
26
+ */
27
+ export interface TypeSyntaxInfo {
28
+ readonly typeNode: unknown;
29
+ }
30
+ /**
31
+ * Captured class member names for override detection.
32
+ * Pure data — no TS nodes.
33
+ */
34
+ export interface ClassMemberNames {
35
+ readonly methods: ReadonlySet<string>;
36
+ readonly properties: ReadonlySet<string>;
37
+ }
38
+ /**
39
+ * Declaration info stored in the handle registry.
40
+ */
41
+ export interface DeclInfo {
42
+ readonly typeNode?: unknown;
43
+ readonly kind: DeclKind;
44
+ readonly fqName?: string;
45
+ readonly declNode?: unknown;
46
+ readonly classMemberNames?: ClassMemberNames;
47
+ }
48
+ export type DeclKind = "variable" | "function" | "class" | "interface" | "typeAlias" | "enum" | "parameter" | "property" | "method";
49
+ /**
50
+ * Signature info stored in the handle registry.
51
+ */
52
+ export interface SignatureInfo {
53
+ readonly parameters: readonly ParameterNode[];
54
+ readonly returnTypeNode?: unknown;
55
+ readonly typeParameters?: readonly TypeParameterNode[];
56
+ /**
57
+ * Declaring type simple TS name (e.g., "Box" not "Test.Box").
58
+ * TypeSystem uses UnifiedTypeCatalog.resolveTsName() to get CLR FQ name.
59
+ */
60
+ readonly declaringTypeTsName?: string;
61
+ readonly declaringMemberName?: string;
62
+ readonly typePredicate?: SignatureTypePredicate;
63
+ }
64
+ /**
65
+ * Type predicate extracted from signature's return type.
66
+ */
67
+ export type SignatureTypePredicate = {
68
+ readonly kind: "param";
69
+ readonly parameterName: string;
70
+ readonly parameterIndex: number;
71
+ readonly targetTypeNode: unknown;
72
+ } | {
73
+ readonly kind: "this";
74
+ readonly targetTypeNode: unknown;
75
+ };
76
+ export interface ParameterNode {
77
+ readonly name: string;
78
+ readonly typeNode?: unknown;
79
+ readonly isOptional: boolean;
80
+ readonly isRest: boolean;
81
+ readonly mode?: ParameterMode;
82
+ }
83
+ export interface TypeParameterNode {
84
+ readonly name: string;
85
+ readonly constraintNode?: unknown;
86
+ readonly defaultNode?: unknown;
87
+ }
88
+ /**
89
+ * Member info stored in the handle registry.
90
+ */
91
+ export interface MemberInfo {
92
+ readonly name: string;
93
+ readonly declNode?: unknown;
94
+ readonly typeNode?: unknown;
95
+ readonly isOptional: boolean;
96
+ readonly isReadonly: boolean;
97
+ }
98
+ //# sourceMappingURL=handle-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-types.d.ts","sourceRoot":"","sources":["../../../../src/ir/type-system/internal/handle-types.ts"],"names":[],"mappings":"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"}