@tsonic/frontend 0.0.13 → 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 +450 -385
  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 +150 -56
  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 +74 -2
  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 +165 -7
  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
@@ -1,371 +0,0 @@
1
- /**
2
- * Reference type conversion
3
- */
4
- import * as ts from "typescript";
5
- import { isPrimitiveTypeName, getPrimitiveType, isClrPrimitiveTypeName, getClrPrimitiveType, CLR_PRIMITIVE_TYPE_SET, } from "./primitives.js";
6
- import { isExpandableUtilityType, expandUtilityType, isExpandableConditionalUtilityType, expandConditionalUtilityType, expandRecordType, } from "./utility-types.js";
7
- /**
8
- * Cache for structural member extraction to prevent infinite recursion
9
- * on recursive types like `type Node = { next: Node }`.
10
- *
11
- * Key: ts.Type (by identity)
12
- * Value: extracted members, null (not extractable), or "in-progress" sentinel
13
- */
14
- const structuralMembersCache = new WeakMap();
15
- /**
16
- * Check if a type should have structural members extracted.
17
- *
18
- * Only extract for:
19
- * - Interfaces (InterfaceDeclaration)
20
- * - Type aliases to object types (TypeAliasDeclaration)
21
- *
22
- * Do NOT extract for:
23
- * - Classes (have implementation, not just shape)
24
- * - Enums, namespaces
25
- * - Library types (from node_modules or lib.*.d.ts)
26
- * - CLR interop types
27
- * - Union/intersection types (ambiguous property semantics)
28
- */
29
- const shouldExtractStructuralMembers = (resolvedType, _checker) => {
30
- // Don't extract for type parameters
31
- if (resolvedType.flags & ts.TypeFlags.TypeParameter) {
32
- return false;
33
- }
34
- // Don't extract for union types (ambiguous property semantics)
35
- if (resolvedType.isUnion()) {
36
- return false;
37
- }
38
- // Don't extract for intersection types (conservative)
39
- if (resolvedType.isIntersection()) {
40
- return false;
41
- }
42
- // Check the symbol to determine if this is a structural type we should extract
43
- const symbol = resolvedType.getSymbol();
44
- if (!symbol) {
45
- return false;
46
- }
47
- const declarations = symbol.getDeclarations();
48
- if (!declarations || declarations.length === 0) {
49
- return false;
50
- }
51
- // Check if ANY declaration is from a library file (node_modules or lib.*.d.ts)
52
- for (const decl of declarations) {
53
- const sourceFile = decl.getSourceFile();
54
- const fileName = sourceFile.fileName;
55
- // Skip library types
56
- if (fileName.includes("node_modules") ||
57
- fileName.includes("lib.") ||
58
- sourceFile.isDeclarationFile) {
59
- return false;
60
- }
61
- }
62
- // Check the first declaration to determine type
63
- const firstDecl = declarations[0];
64
- if (!firstDecl) {
65
- return false;
66
- }
67
- // Only extract for interfaces and type aliases
68
- if (ts.isInterfaceDeclaration(firstDecl)) {
69
- return true;
70
- }
71
- if (ts.isTypeAliasDeclaration(firstDecl)) {
72
- // Only extract if the alias resolves to an object-like type
73
- // (has properties, not a primitive/union/etc)
74
- const properties = resolvedType.getProperties();
75
- return properties !== undefined && properties.length > 0;
76
- }
77
- // TypeLiteral: When a type alias resolves to an object type like `type Config = { x: number }`,
78
- // TypeScript's getTypeAtLocation returns the underlying object type, whose declaration is TypeLiteral.
79
- // We need to extract structural members in this case too.
80
- if (ts.isTypeLiteralNode(firstDecl)) {
81
- const properties = resolvedType.getProperties();
82
- return properties !== undefined && properties.length > 0;
83
- }
84
- // Don't extract for classes, enums, etc.
85
- return false;
86
- };
87
- /**
88
- * Extract structural members from a resolved type.
89
- *
90
- * Used to populate structuralMembers on referenceType for interfaces and type aliases.
91
- * This enables TSN5110 validation for object literal properties against expected types.
92
- *
93
- * Safety guards:
94
- * - Only extracts for interfaces/type-aliases (not classes, enums, lib types)
95
- * - Uses cache to prevent infinite recursion on recursive types
96
- * - Skips unsupported keys instead of bailing entirely
97
- * - Returns undefined for union/intersection (conservative)
98
- * - Returns undefined for index signatures (can't fully represent)
99
- *
100
- * @param resolvedType - The resolved TypeScript type
101
- * @param node - The enclosing node for type-to-node conversion
102
- * @param checker - The TypeScript type checker
103
- * @param convertType - Function to convert nested types
104
- * @returns Structural members or undefined if extraction fails/skipped
105
- */
106
- const extractStructuralMembers = (resolvedType, node, checker, convertType) => {
107
- // Check cache first (handles recursion)
108
- const cached = structuralMembersCache.get(resolvedType);
109
- if (cached === "in-progress") {
110
- // Recursive reference - return undefined to break cycle
111
- return undefined;
112
- }
113
- if (cached !== undefined) {
114
- return cached === null ? undefined : cached;
115
- }
116
- // Gate: only extract for structural types we own
117
- if (!shouldExtractStructuralMembers(resolvedType, checker)) {
118
- structuralMembersCache.set(resolvedType, null);
119
- return undefined;
120
- }
121
- // Mark as in-progress before recursing.
122
- // IMPORTANT: Use try/finally to ensure cache is always settled.
123
- // If typeToTypeNode() or convertType() throws, we must not leave
124
- // "in-progress" in the cache (would cause future lookups to fail).
125
- structuralMembersCache.set(resolvedType, "in-progress");
126
- try {
127
- // Get properties
128
- const properties = resolvedType.getProperties();
129
- if (!properties || properties.length === 0) {
130
- structuralMembersCache.set(resolvedType, null);
131
- return undefined;
132
- }
133
- // Check for index signatures - can't fully represent these structurally
134
- const stringIndexType = checker.getIndexInfoOfType(resolvedType, ts.IndexKind.String);
135
- const numberIndexType = checker.getIndexInfoOfType(resolvedType, ts.IndexKind.Number);
136
- if (stringIndexType || numberIndexType) {
137
- structuralMembersCache.set(resolvedType, null);
138
- return undefined;
139
- }
140
- // Extract members
141
- const members = [];
142
- for (const prop of properties) {
143
- const propName = prop.getName();
144
- // Skip non-string keys (symbols, computed) - don't bail entirely
145
- if (propName.startsWith("__@") || propName.startsWith("[")) {
146
- continue; // Skip this property, keep extracting others
147
- }
148
- const propType = checker.getTypeOfSymbolAtLocation(prop, node);
149
- const declarations = prop.getDeclarations();
150
- // Check optional/readonly
151
- const isOptional = (prop.flags & ts.SymbolFlags.Optional) !== 0;
152
- const isReadonly = declarations?.some((decl) => {
153
- if (ts.isPropertySignature(decl) || ts.isPropertyDeclaration(decl)) {
154
- return (decl.modifiers?.some((m) => m.kind === ts.SyntaxKind.ReadonlyKeyword) ?? false);
155
- }
156
- return false;
157
- }) ?? false;
158
- // Check if it's a method
159
- const isMethod = declarations?.some((decl) => ts.isMethodSignature(decl) || ts.isMethodDeclaration(decl)) ?? false;
160
- // IMPORTANT: Check for CLR primitive type aliases BEFORE calling typeToTypeNode.
161
- // TypeScript eagerly resolves type aliases like `int` to their underlying type `number`
162
- // when converting to TypeNode. We need to preserve the alias identity for CLR primitives
163
- // so that TSN5110 correctly validates `int` properties accept `int` values.
164
- //
165
- // The propType.aliasSymbol approach doesn't work because getTypeOfSymbolAtLocation
166
- // returns the resolved type without alias info. Instead, we look at the property
167
- // declaration's type node directly to see the original type reference.
168
- //
169
- // Only preserve alias identity when:
170
- // 1. The type reference name is a known CLR primitive (e.g., "int")
171
- // 2. The type reference resolves to @tsonic/core (not a random user alias)
172
- const propDecl = declarations?.[0];
173
- if (propDecl &&
174
- (ts.isPropertySignature(propDecl) || ts.isPropertyDeclaration(propDecl))) {
175
- const declTypeNode = propDecl.type;
176
- // Check if the declared type is a type reference to a CLR primitive
177
- if (declTypeNode && ts.isTypeReferenceNode(declTypeNode)) {
178
- const typeName = ts.isIdentifier(declTypeNode.typeName)
179
- ? declTypeNode.typeName.text
180
- : undefined;
181
- if (typeName && CLR_PRIMITIVE_TYPE_SET.has(typeName)) {
182
- // Resolve the type reference to check it comes from @tsonic/core
183
- // For type aliases like `int`, we need to get the symbol from the type name identifier
184
- // and follow any aliases (imports) to the original declaration
185
- const typeNameNode = declTypeNode.typeName;
186
- const typeSymbolRaw = ts.isIdentifier(typeNameNode)
187
- ? checker.getSymbolAtLocation(typeNameNode)
188
- : undefined;
189
- // Follow alias chain to get the original symbol (handles re-exports/imports)
190
- const typeSymbol = typeSymbolRaw
191
- ? checker.getAliasedSymbol(typeSymbolRaw)
192
- : undefined;
193
- const refDecl = typeSymbol?.declarations?.[0];
194
- const refSourceFile = refDecl?.getSourceFile();
195
- if (refSourceFile?.fileName.includes("@tsonic/core") ||
196
- refSourceFile?.fileName.includes("@tsonic/types")) {
197
- // Directly emit the CLR primitive type, bypassing typeToTypeNode
198
- const propSig = {
199
- kind: "propertySignature",
200
- name: propName,
201
- type: getClrPrimitiveType(typeName),
202
- isOptional,
203
- isReadonly,
204
- };
205
- members.push(propSig);
206
- continue;
207
- }
208
- }
209
- }
210
- }
211
- const typeNodeFlags = ts.NodeBuilderFlags.NoTruncation;
212
- const propTypeNode = checker.typeToTypeNode(propType, node, typeNodeFlags);
213
- if (isMethod && propTypeNode && ts.isFunctionTypeNode(propTypeNode)) {
214
- // Method signature
215
- const methSig = {
216
- kind: "methodSignature",
217
- name: propName,
218
- parameters: propTypeNode.parameters.map((param, index) => ({
219
- kind: "parameter",
220
- pattern: {
221
- kind: "identifierPattern",
222
- name: ts.isIdentifier(param.name)
223
- ? param.name.text
224
- : `arg${index}`,
225
- },
226
- type: param.type ? convertType(param.type, checker) : undefined,
227
- isOptional: !!param.questionToken,
228
- isRest: !!param.dotDotDotToken,
229
- passing: "value",
230
- })),
231
- returnType: propTypeNode.type
232
- ? convertType(propTypeNode.type, checker)
233
- : undefined,
234
- };
235
- members.push(methSig);
236
- }
237
- else {
238
- // Property signature
239
- const propSig = {
240
- kind: "propertySignature",
241
- name: propName,
242
- type: propTypeNode
243
- ? convertType(propTypeNode, checker)
244
- : { kind: "anyType" },
245
- isOptional,
246
- isReadonly,
247
- };
248
- members.push(propSig);
249
- }
250
- }
251
- const result = members.length > 0 ? members : undefined;
252
- structuralMembersCache.set(resolvedType, result ?? null);
253
- return result;
254
- }
255
- catch {
256
- // On any error, settle cache to null (not extractable)
257
- structuralMembersCache.set(resolvedType, null);
258
- return undefined;
259
- }
260
- };
261
- /**
262
- * Convert TypeScript type reference to IR type
263
- * Handles both primitive type names and user-defined types
264
- */
265
- export const convertTypeReference = (node, checker, convertType) => {
266
- const typeName = ts.isIdentifier(node.typeName)
267
- ? node.typeName.text
268
- : node.typeName.getText();
269
- // Check for primitive type names
270
- if (isPrimitiveTypeName(typeName)) {
271
- return getPrimitiveType(typeName);
272
- }
273
- // Check for CLR primitive type names (e.g., int from @tsonic/core)
274
- // These are compiler-known types that map to distinct primitives, not referenceType
275
- if (isClrPrimitiveTypeName(typeName)) {
276
- return getClrPrimitiveType(typeName);
277
- }
278
- // Check for Array<T> utility type → convert to arrayType with explicit origin
279
- // This ensures Array<T> and T[] are treated identically
280
- const firstTypeArg = node.typeArguments?.[0];
281
- if (typeName === "Array" && firstTypeArg) {
282
- return {
283
- kind: "arrayType",
284
- elementType: convertType(firstTypeArg, checker),
285
- origin: "explicit",
286
- };
287
- }
288
- // Check for expandable conditional utility types (NonNullable, Exclude, Extract)
289
- // These are expanded at compile time by delegating to TypeScript's type checker
290
- if (isExpandableConditionalUtilityType(typeName) &&
291
- node.typeArguments?.length) {
292
- const expanded = expandConditionalUtilityType(node, typeName, checker, convertType);
293
- if (expanded)
294
- return expanded;
295
- // Fall through to referenceType if can't expand (e.g., type parameter)
296
- }
297
- // Check for Record<K, V> utility type
298
- // First try to expand to IrObjectType for finite literal keys
299
- // Falls back to IrDictionaryType ONLY for string/number keys (not type parameters)
300
- const typeArgsForRecord = node.typeArguments;
301
- const keyTypeNode = typeArgsForRecord?.[0];
302
- const valueTypeNode = typeArgsForRecord?.[1];
303
- if (typeName === "Record" && keyTypeNode && valueTypeNode) {
304
- // Try to expand to IrObjectType for finite literal keys
305
- const expandedRecord = expandRecordType(node, checker, convertType);
306
- if (expandedRecord)
307
- return expandedRecord;
308
- // Only create dictionary if K is exactly 'string' or 'number'
309
- // Type parameters should fall through to referenceType
310
- //
311
- // NOTE: We check SyntaxKind FIRST because getTypeAtLocation fails on synthesized nodes
312
- // (from typeToTypeNode). For synthesized nodes like NumberKeyword, getTypeAtLocation
313
- // returns `any` instead of the correct type. Checking SyntaxKind handles both cases.
314
- const isStringKey = keyTypeNode.kind === ts.SyntaxKind.StringKeyword ||
315
- !!(checker.getTypeAtLocation(keyTypeNode).flags & ts.TypeFlags.String);
316
- const isNumberKey = keyTypeNode.kind === ts.SyntaxKind.NumberKeyword ||
317
- !!(checker.getTypeAtLocation(keyTypeNode).flags & ts.TypeFlags.Number);
318
- if (isStringKey || isNumberKey) {
319
- const keyType = convertType(keyTypeNode, checker);
320
- const valueType = convertType(valueTypeNode, checker);
321
- return {
322
- kind: "dictionaryType",
323
- keyType,
324
- valueType,
325
- };
326
- }
327
- // Type parameter or other complex key type - fall through to referenceType
328
- }
329
- // Check for expandable utility types (Partial, Required, Readonly, Pick, Omit)
330
- // These are expanded to IrObjectType at compile time for concrete types
331
- if (isExpandableUtilityType(typeName) && node.typeArguments?.length) {
332
- const expanded = expandUtilityType(node, typeName, checker, convertType);
333
- if (expanded)
334
- return expanded;
335
- // Fall through to referenceType if can't expand (e.g., type parameter)
336
- }
337
- // Handle parameter passing modifiers: out<T>, ref<T>, inref<T>
338
- // These are type aliases that should NOT be resolved - we preserve them
339
- // so the emitter can detect `as out<T>` casts and emit the correct C# prefix.
340
- if ((typeName === "out" || typeName === "ref" || typeName === "inref") &&
341
- node.typeArguments &&
342
- node.typeArguments.length === 1) {
343
- // Safe: we checked length === 1 above
344
- const innerTypeArg = node.typeArguments[0];
345
- if (!innerTypeArg) {
346
- return { kind: "anyType" };
347
- }
348
- return {
349
- kind: "referenceType",
350
- name: typeName,
351
- typeArguments: [convertType(innerTypeArg, checker)],
352
- };
353
- }
354
- // Check if this is a type parameter reference (e.g., T in Container<T>)
355
- // Use the type checker to determine if the reference resolves to a type parameter
356
- const type = checker.getTypeAtLocation(node);
357
- if (type.flags & ts.TypeFlags.TypeParameter) {
358
- return { kind: "typeParameterType", name: typeName };
359
- }
360
- // Extract structural members for interfaces and type aliases.
361
- // This enables TSN5110 validation for object literal properties.
362
- const structuralMembers = extractStructuralMembers(type, node, checker, convertType);
363
- // Reference type (user-defined or library)
364
- return {
365
- kind: "referenceType",
366
- name: typeName,
367
- typeArguments: node.typeArguments?.map((t) => convertType(t, checker)),
368
- structuralMembers,
369
- };
370
- };
371
- //# sourceMappingURL=references.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"references.js","sourceRoot":"","sources":["../../../src/ir/type-converter/references.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAQjC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kCAAkC,EAClC,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAGvC,CAAC;AAEJ;;;;;;;;;;;;;GAaG;AACH,MAAM,8BAA8B,GAAG,CACrC,YAAqB,EACrB,QAAwB,EACf,EAAE;IACX,oCAAoC;IACpC,IAAI,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+DAA+D;IAC/D,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sDAAsD;IACtD,IAAI,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+EAA+E;IAC/E,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+EAA+E;IAC/E,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QAErC,qBAAqB;QACrB,IACE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;YACjC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzB,UAAU,CAAC,iBAAiB,EAC5B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+CAA+C;IAC/C,IAAI,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,4DAA4D;QAC5D,8CAA8C;QAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;QAChD,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,gGAAgG;IAChG,uGAAuG;IACvG,0DAA0D;IAC1D,IAAI,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;QAChD,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,yCAAyC;IACzC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,wBAAwB,GAAG,CAC/B,YAAqB,EACrB,IAAa,EACb,OAAuB,EACvB,WAAmE,EACzB,EAAE;IAC5C,wCAAwC;IACxC,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,wDAAwD;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,8BAA8B,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3D,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wCAAwC;IACxC,gEAAgE;IAChE,iEAAiE;IACjE,mEAAmE;IACnE,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAExD,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,wEAAwE;QACxE,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAChD,YAAY,EACZ,EAAE,CAAC,SAAS,CAAC,MAAM,CACpB,CAAC;QACF,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAChD,YAAY,EACZ,EAAE,CAAC,SAAS,CAAC,MAAM,CACpB,CAAC;QACF,IAAI,eAAe,IAAI,eAAe,EAAE,CAAC;YACvC,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAEhC,iEAAiE;YACjE,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3D,SAAS,CAAC,6CAA6C;YACzD,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAE5C,0BAA0B;YAC1B,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,UAAU,GACd,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnE,OAAO,CACL,IAAI,CAAC,SAAS,EAAE,IAAI,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,eAAe,CAChD,IAAI,KAAK,CACX,CAAC;gBACJ,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,IAAI,KAAK,CAAC;YAEd,yBAAyB;YACzB,MAAM,QAAQ,GACZ,YAAY,EAAE,IAAI,CAChB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CACrE,IAAI,KAAK,CAAC;YAEb,iFAAiF;YACjF,wFAAwF;YACxF,yFAAyF;YACzF,4EAA4E;YAC5E,EAAE;YACF,mFAAmF;YACnF,iFAAiF;YACjF,uEAAuE;YACvE,EAAE;YACF,qCAAqC;YACrC,oEAAoE;YACpE,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,IACE,QAAQ;gBACR,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,EACxE,CAAC;gBACD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACnC,oEAAoE;gBACpE,IAAI,YAAY,IAAI,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;oBACzD,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC;wBACrD,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI;wBAC5B,CAAC,CAAC,SAAS,CAAC;oBACd,IAAI,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrD,iEAAiE;wBACjE,uFAAuF;wBACvF,+DAA+D;wBAC/D,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC;wBAC3C,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;4BACjD,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC;4BAC3C,CAAC,CAAC,SAAS,CAAC;wBACd,6EAA6E;wBAC7E,MAAM,UAAU,GAAG,aAAa;4BAC9B,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC;4BACzC,CAAC,CAAC,SAAS,CAAC;wBACd,MAAM,OAAO,GAAG,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC9C,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,EAAE,CAAC;wBAC/C,IACE,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;4BAChD,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EACjD,CAAC;4BACD,iEAAiE;4BACjE,MAAM,OAAO,GAAwB;gCACnC,IAAI,EAAE,mBAAmB;gCACzB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,mBAAmB,CAAC,QAAiB,CAAC;gCAC5C,UAAU;gCACV,UAAU;6BACX,CAAC;4BACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACtB,SAAS;wBACX,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC;YACvD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CACzC,QAAQ,EACR,IAAI,EACJ,aAAa,CACd,CAAC;YAEF,IAAI,QAAQ,IAAI,YAAY,IAAI,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpE,mBAAmB;gBACnB,MAAM,OAAO,GAAsB;oBACjC,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBACzD,IAAI,EAAE,WAAoB;wBAC1B,OAAO,EAAE;4BACP,IAAI,EAAE,mBAA4B;4BAClC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;gCAC/B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;gCACjB,CAAC,CAAC,MAAM,KAAK,EAAE;yBAClB;wBACD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;wBAC/D,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa;wBACjC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc;wBAC9B,OAAO,EAAE,OAAgB;qBAC1B,CAAC,CAAC;oBACH,UAAU,EAAE,YAAY,CAAC,IAAI;wBAC3B,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;wBACzC,CAAC,CAAC,SAAS;iBACd,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,MAAM,OAAO,GAAwB;oBACnC,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,YAAY;wBAChB,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC;wBACpC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;oBACvB,UAAU;oBACV,UAAU;iBACX,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;QACvD,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAA0B,EAC1B,OAAuB,EACvB,WAAmE,EAC3D,EAAE;IACV,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7C,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;QACpB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAE5B,iCAAiC;IACjC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,mEAAmE;IACnE,oFAAoF;IACpF,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,8EAA8E;IAC9E,wDAAwD;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,OAAO,IAAI,YAAY,EAAE,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC;YAC/C,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,gFAAgF;IAChF,IACE,kCAAkC,CAAC,QAAQ,CAAC;QAC5C,IAAI,CAAC,aAAa,EAAE,MAAM,EAC1B,CAAC;QACD,MAAM,QAAQ,GAAG,4BAA4B,CAC3C,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,WAAW,CACZ,CAAC;QACF,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,uEAAuE;IACzE,CAAC;IAED,sCAAsC;IACtC,8DAA8D;IAC9D,mFAAmF;IACnF,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;IAC7C,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,QAAQ,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QAC1D,wDAAwD;QACxD,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACpE,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAE1C,8DAA8D;QAC9D,uDAAuD;QACvD,EAAE;QACF,uFAAuF;QACvF,qFAAqF;QACrF,qFAAqF;QACrF,MAAM,WAAW,GACf,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;YAChD,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,WAAW,GACf,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;YAChD,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEzE,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAEtD,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO;gBACP,SAAS;aACU,CAAC;QACxB,CAAC;QACD,2EAA2E;IAC7E,CAAC;IAED,+EAA+E;IAC/E,wEAAwE;IACxE,IAAI,uBAAuB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,uEAAuE;IACzE,CAAC;IAED,+DAA+D;IAC/D,wEAAwE;IACxE,8EAA8E;IAC9E,IACE,CAAC,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,OAAO,CAAC;QAClE,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;QACD,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACpD,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,kFAAkF;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACvD,CAAC;IAED,8DAA8D;IAC9D,iEAAiE;IACjE,MAAM,iBAAiB,GAAG,wBAAwB,CAChD,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,WAAW,CACZ,CAAC;IAEF,2CAA2C;IAC3C,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,QAAQ;QACd,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACtE,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Union and intersection type conversion
3
- */
4
- import * as ts from "typescript";
5
- import { IrType } from "../types.js";
6
- /**
7
- * Convert TypeScript union type to IR union type
8
- */
9
- export declare const convertUnionType: (node: ts.UnionTypeNode, checker: ts.TypeChecker, convertType: (node: ts.TypeNode, checker: ts.TypeChecker) => IrType) => IrType;
10
- /**
11
- * Convert TypeScript intersection type to IR intersection type
12
- */
13
- export declare const convertIntersectionType: (node: ts.IntersectionTypeNode, checker: ts.TypeChecker, convertType: (node: ts.TypeNode, checker: ts.TypeChecker) => IrType) => IrType;
14
- //# sourceMappingURL=unions-intersections.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unions-intersections.d.ts","sourceRoot":"","sources":["../../../src/ir/type-converter/unions-intersections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,EAAE,CAAC,aAAa,EACtB,SAAS,EAAE,CAAC,WAAW,EACvB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,KAAK,MAAM,KAClE,MAKF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,EAAE,CAAC,oBAAoB,EAC7B,SAAS,EAAE,CAAC,WAAW,EACvB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,KAAK,MAAM,KAClE,MAKF,CAAC"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Union and intersection type conversion
3
- */
4
- /**
5
- * Convert TypeScript union type to IR union type
6
- */
7
- export const convertUnionType = (node, checker, convertType) => {
8
- return {
9
- kind: "unionType",
10
- types: node.types.map((t) => convertType(t, checker)),
11
- };
12
- };
13
- /**
14
- * Convert TypeScript intersection type to IR intersection type
15
- */
16
- export const convertIntersectionType = (node, checker, convertType) => {
17
- return {
18
- kind: "intersectionType",
19
- types: node.types.map((t) => convertType(t, checker)),
20
- };
21
- };
22
- //# sourceMappingURL=unions-intersections.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unions-intersections.js","sourceRoot":"","sources":["../../../src/ir/type-converter/unions-intersections.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAsB,EACtB,OAAuB,EACvB,WAAmE,EAC3D,EAAE;IACV,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAA6B,EAC7B,OAAuB,EACvB,WAAmE,EAC3D,EAAE;IACV,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utility-types.d.ts","sourceRoot":"","sources":["../../../src/ir/type-converter/utility-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EACL,MAAM,EACN,YAAY,EAIb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,wBAAwB,aAMnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,OACnB,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,oCAAoC,aAO/C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kCAAkC,GAAI,MAAM,MAAM,KAAG,OAClB,CAAC;AAkJjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,EAAE,CAAC,iBAAiB,EAC1B,UAAU,MAAM,EAChB,SAAS,EAAE,CAAC,WAAW,EACvB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,KAAK,MAAM,KAClE,YAAY,GAAG,IAuIjB,CAAC;AA4BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,4BAA4B,GACvC,MAAM,EAAE,CAAC,iBAAiB,EAC1B,UAAU,MAAM,EAChB,SAAS,EAAE,CAAC,WAAW,EACvB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,KAAK,MAAM,KAClE,MAAM,GAAG,IA6DX,CAAC;AAwHF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,EAAE,CAAC,iBAAiB,EAC1B,SAAS,EAAE,CAAC,WAAW,EACvB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,KAAK,MAAM,KAClE,YAAY,GAAG,IAgDjB,CAAC"}