@tsonic/frontend 0.0.61 → 0.0.63

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 (466) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/dependency-graph.d.ts +1 -1
  3. package/dist/dependency-graph.d.ts.map +1 -1
  4. package/dist/dependency-graph.js +1 -1
  5. package/dist/dependency-graph.js.map +1 -1
  6. package/dist/dotnet-metadata.d.ts +0 -12
  7. package/dist/dotnet-metadata.d.ts.map +1 -1
  8. package/dist/dotnet-metadata.js +3 -25
  9. package/dist/dotnet-metadata.js.map +1 -1
  10. package/dist/dotnet-metadata.test.js.map +1 -1
  11. package/dist/generic-function-values.d.ts +11 -0
  12. package/dist/generic-function-values.d.ts.map +1 -0
  13. package/dist/generic-function-values.js +243 -0
  14. package/dist/generic-function-values.js.map +1 -0
  15. package/dist/generic-function-values.test.d.ts +2 -0
  16. package/dist/generic-function-values.test.d.ts.map +1 -0
  17. package/dist/generic-function-values.test.js +256 -0
  18. package/dist/generic-function-values.test.js.map +1 -0
  19. package/dist/graph/extraction/imports.d.ts +5 -0
  20. package/dist/graph/extraction/imports.d.ts.map +1 -1
  21. package/dist/graph/extraction/imports.js +30 -0
  22. package/dist/graph/extraction/imports.js.map +1 -1
  23. package/dist/graph/extraction/index.d.ts +1 -1
  24. package/dist/graph/extraction/index.d.ts.map +1 -1
  25. package/dist/graph/extraction/index.js +1 -1
  26. package/dist/graph/extraction/index.js.map +1 -1
  27. package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
  28. package/dist/graph/extraction/orchestrator.js +16 -2
  29. package/dist/graph/extraction/orchestrator.js.map +1 -1
  30. package/dist/graph/extraction.d.ts +1 -1
  31. package/dist/graph/extraction.d.ts.map +1 -1
  32. package/dist/graph/extraction.js +1 -1
  33. package/dist/graph/extraction.js.map +1 -1
  34. package/dist/ir/binding/binding-factory.d.ts +17 -0
  35. package/dist/ir/binding/binding-factory.d.ts.map +1 -0
  36. package/dist/ir/binding/binding-factory.js +765 -0
  37. package/dist/ir/binding/binding-factory.js.map +1 -0
  38. package/dist/ir/binding/binding-helpers.d.ts +90 -0
  39. package/dist/ir/binding/binding-helpers.d.ts.map +1 -0
  40. package/dist/ir/binding/binding-helpers.js +387 -0
  41. package/dist/ir/binding/binding-helpers.js.map +1 -0
  42. package/dist/ir/binding/binding-types.d.ts +203 -0
  43. package/dist/ir/binding/binding-types.d.ts.map +1 -0
  44. package/dist/ir/binding/binding-types.js +9 -0
  45. package/dist/ir/binding/binding-types.js.map +1 -0
  46. package/dist/ir/binding/index.d.ts +4 -151
  47. package/dist/ir/binding/index.d.ts.map +1 -1
  48. package/dist/ir/binding/index.js +3 -1124
  49. package/dist/ir/binding/index.js.map +1 -1
  50. package/dist/ir/binding-resolution.test.js +4 -1
  51. package/dist/ir/binding-resolution.test.js.map +1 -1
  52. package/dist/ir/bindings-disambiguation.test.js.map +1 -1
  53. package/dist/ir/builder/imports.d.ts.map +1 -1
  54. package/dist/ir/builder/imports.js +91 -5
  55. package/dist/ir/builder/imports.js.map +1 -1
  56. package/dist/ir/builder.test.js +456 -24
  57. package/dist/ir/builder.test.js.map +1 -1
  58. package/dist/ir/converters/anonymous-synthesis.d.ts +3 -3
  59. package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -1
  60. package/dist/ir/converters/anonymous-synthesis.js +45 -8
  61. package/dist/ir/converters/anonymous-synthesis.js.map +1 -1
  62. package/dist/ir/converters/expressions/access/access-converter.d.ts +14 -0
  63. package/dist/ir/converters/expressions/access/access-converter.d.ts.map +1 -0
  64. package/dist/ir/converters/expressions/access/access-converter.js +141 -0
  65. package/dist/ir/converters/expressions/access/access-converter.js.map +1 -0
  66. package/dist/ir/converters/expressions/access/binding-resolution.d.ts +35 -0
  67. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -0
  68. package/dist/ir/converters/expressions/access/binding-resolution.js +384 -0
  69. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -0
  70. package/dist/ir/converters/expressions/access/member-resolution.d.ts +67 -0
  71. package/dist/ir/converters/expressions/access/member-resolution.d.ts.map +1 -0
  72. package/dist/ir/converters/expressions/access/member-resolution.js +262 -0
  73. package/dist/ir/converters/expressions/access/member-resolution.js.map +1 -0
  74. package/dist/ir/converters/expressions/access.d.ts +1 -7
  75. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  76. package/dist/ir/converters/expressions/access.js +1 -720
  77. package/dist/ir/converters/expressions/access.js.map +1 -1
  78. package/dist/ir/converters/expressions/calls/call-converter.d.ts +23 -0
  79. package/dist/ir/converters/expressions/calls/call-converter.d.ts.map +1 -0
  80. package/dist/ir/converters/expressions/calls/call-converter.js +526 -0
  81. package/dist/ir/converters/expressions/calls/call-converter.js.map +1 -0
  82. package/dist/ir/converters/expressions/calls/call-site-analysis.d.ts +53 -0
  83. package/dist/ir/converters/expressions/calls/call-site-analysis.d.ts.map +1 -0
  84. package/dist/ir/converters/expressions/calls/call-site-analysis.js +554 -0
  85. package/dist/ir/converters/expressions/calls/call-site-analysis.js.map +1 -0
  86. package/dist/ir/converters/expressions/calls/new-converter.d.ts +21 -0
  87. package/dist/ir/converters/expressions/calls/new-converter.d.ts.map +1 -0
  88. package/dist/ir/converters/expressions/calls/new-converter.js +182 -0
  89. package/dist/ir/converters/expressions/calls/new-converter.js.map +1 -0
  90. package/dist/ir/converters/expressions/calls.d.ts +2 -28
  91. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  92. package/dist/ir/converters/expressions/calls.js +2 -953
  93. package/dist/ir/converters/expressions/calls.js.map +1 -1
  94. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  95. package/dist/ir/converters/expressions/collections.js +56 -28
  96. package/dist/ir/converters/expressions/collections.js.map +1 -1
  97. package/dist/ir/converters/expressions/functions.js +3 -3
  98. package/dist/ir/converters/expressions/functions.js.map +1 -1
  99. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
  100. package/dist/ir/converters/expressions/helpers.js +1 -0
  101. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  102. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  103. package/dist/ir/converters/expressions/operators.js +1 -1
  104. package/dist/ir/converters/expressions/operators.js.map +1 -1
  105. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  106. package/dist/ir/converters/expressions/other.js +17 -2
  107. package/dist/ir/converters/expressions/other.js.map +1 -1
  108. package/dist/ir/converters/flow-narrowing.d.ts.map +1 -1
  109. package/dist/ir/converters/flow-narrowing.js +3 -2
  110. package/dist/ir/converters/flow-narrowing.js.map +1 -1
  111. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  112. package/dist/ir/converters/statements/control/loops.js +8 -2
  113. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  114. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -1
  115. package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -1
  116. package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -1
  117. package/dist/ir/converters/statements/declarations/classes/methods.js +71 -23
  118. package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -1
  119. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -1
  120. package/dist/ir/converters/statements/declarations/classes/orchestrator.js +10 -4
  121. package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -1
  122. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -1
  123. package/dist/ir/converters/statements/declarations/classes/override-detection.js +5 -1
  124. package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -1
  125. package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -1
  126. package/dist/ir/converters/statements/declarations/classes/properties.js +2 -1
  127. package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -1
  128. package/dist/ir/converters/statements/declarations/type-aliases.js +1 -1
  129. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  130. package/dist/ir/converters/statements/declarations/variables.d.ts +2 -2
  131. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
  132. package/dist/ir/converters/statements/declarations/variables.js +290 -3
  133. package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
  134. package/dist/ir/converters/statements/helpers.d.ts.map +1 -1
  135. package/dist/ir/converters/statements/helpers.js +10 -2
  136. package/dist/ir/converters/statements/helpers.js.map +1 -1
  137. package/dist/ir/converters/type-env.d.ts.map +1 -1
  138. package/dist/ir/converters/type-env.js.map +1 -1
  139. package/dist/ir/expression-converter.d.ts +0 -1
  140. package/dist/ir/expression-converter.d.ts.map +1 -1
  141. package/dist/ir/expression-converter.js +25 -4
  142. package/dist/ir/expression-converter.js.map +1 -1
  143. package/dist/ir/field-marker.test.js.map +1 -1
  144. package/dist/ir/generic-function-value-lowering.test.d.ts +2 -0
  145. package/dist/ir/generic-function-value-lowering.test.d.ts.map +1 -0
  146. package/dist/ir/generic-function-value-lowering.test.js +312 -0
  147. package/dist/ir/generic-function-value-lowering.test.js.map +1 -0
  148. package/dist/ir/generic-validator.d.ts +3 -4
  149. package/dist/ir/generic-validator.d.ts.map +1 -1
  150. package/dist/ir/generic-validator.js +3 -35
  151. package/dist/ir/generic-validator.js.map +1 -1
  152. package/dist/ir/program-context.d.ts +7 -0
  153. package/dist/ir/program-context.d.ts.map +1 -1
  154. package/dist/ir/program-context.js +7 -2
  155. package/dist/ir/program-context.js.map +1 -1
  156. package/dist/ir/statement-converter.d.ts +0 -2
  157. package/dist/ir/statement-converter.d.ts.map +1 -1
  158. package/dist/ir/statement-converter.js +0 -3
  159. package/dist/ir/statement-converter.js.map +1 -1
  160. package/dist/ir/type-system/internal/handle-types.d.ts +16 -16
  161. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
  162. package/dist/ir/type-system/internal/nominal-env.d.ts +0 -2
  163. package/dist/ir/type-system/internal/nominal-env.d.ts.map +1 -1
  164. package/dist/ir/type-system/internal/nominal-env.js +2 -6
  165. package/dist/ir/type-system/internal/nominal-env.js.map +1 -1
  166. package/dist/ir/type-system/internal/type-converter/converter.d.ts +3 -1
  167. package/dist/ir/type-system/internal/type-converter/converter.d.ts.map +1 -1
  168. package/dist/ir/type-system/internal/type-converter/converter.js +3 -1
  169. package/dist/ir/type-system/internal/type-converter/converter.js.map +1 -1
  170. package/dist/ir/type-system/internal/type-converter/objects.js +7 -1
  171. package/dist/ir/type-system/internal/type-converter/objects.js.map +1 -1
  172. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts +0 -2
  173. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  174. package/dist/ir/type-system/internal/type-converter/orchestrator.js +318 -24
  175. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  176. package/dist/ir/type-system/internal/type-converter/orchestrator.test.d.ts +2 -0
  177. package/dist/ir/type-system/internal/type-converter/orchestrator.test.d.ts.map +1 -0
  178. package/dist/ir/type-system/internal/type-converter/orchestrator.test.js +265 -0
  179. package/dist/ir/type-system/internal/type-converter/orchestrator.test.js.map +1 -0
  180. package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -1
  181. package/dist/ir/type-system/internal/type-converter/primitives.js +5 -0
  182. package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -1
  183. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  184. package/dist/ir/type-system/internal/type-converter/references.js +172 -26
  185. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  186. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts.map +1 -1
  187. package/dist/ir/type-system/internal/type-converter/utility-types.js +154 -4
  188. package/dist/ir/type-system/internal/type-converter/utility-types.js.map +1 -1
  189. package/dist/ir/type-system/internal/type-converter/utility-types.test.js +91 -1
  190. package/dist/ir/type-system/internal/type-converter/utility-types.test.js.map +1 -1
  191. package/dist/ir/type-system/internal/type-registry.d.ts +1 -1
  192. package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -1
  193. package/dist/ir/type-system/internal/type-registry.js +15 -11
  194. package/dist/ir/type-system/internal/type-registry.js.map +1 -1
  195. package/dist/ir/type-system/internal/universe/alias-table.d.ts +0 -14
  196. package/dist/ir/type-system/internal/universe/alias-table.d.ts.map +1 -1
  197. package/dist/ir/type-system/internal/universe/alias-table.js +0 -17
  198. package/dist/ir/type-system/internal/universe/alias-table.js.map +1 -1
  199. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts +3 -0
  200. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -1
  201. package/dist/ir/type-system/internal/universe/clr-catalog.js +4 -1027
  202. package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
  203. package/dist/ir/type-system/internal/universe/clr-entry-converter.d.ts +51 -0
  204. package/dist/ir/type-system/internal/universe/clr-entry-converter.d.ts.map +1 -0
  205. package/dist/ir/type-system/internal/universe/clr-entry-converter.js +657 -0
  206. package/dist/ir/type-system/internal/universe/clr-entry-converter.js.map +1 -0
  207. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts +52 -0
  208. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -0
  209. package/dist/ir/type-system/internal/universe/clr-type-parser.js +415 -0
  210. package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -0
  211. package/dist/ir/type-system/internal/universe/index.d.ts +1 -1
  212. package/dist/ir/type-system/internal/universe/index.d.ts.map +1 -1
  213. package/dist/ir/type-system/internal/universe/index.js +1 -3
  214. package/dist/ir/type-system/internal/universe/index.js.map +1 -1
  215. package/dist/ir/type-system/internal/universe/source-catalog.js +3 -1
  216. package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -1
  217. package/dist/ir/type-system/internal/universe/types.d.ts +7 -0
  218. package/dist/ir/type-system/internal/universe/types.d.ts.map +1 -1
  219. package/dist/ir/type-system/internal/universe/types.js.map +1 -1
  220. package/dist/ir/type-system/internal/universe/unified-universe.d.ts.map +1 -1
  221. package/dist/ir/type-system/internal/universe/unified-universe.js +16 -1
  222. package/dist/ir/type-system/internal/universe/unified-universe.js.map +1 -1
  223. package/dist/ir/type-system/internal/universe/unified-universe.test.d.ts +2 -0
  224. package/dist/ir/type-system/internal/universe/unified-universe.test.d.ts.map +1 -0
  225. package/dist/ir/type-system/internal/universe/unified-universe.test.js +89 -0
  226. package/dist/ir/type-system/internal/universe/unified-universe.test.js.map +1 -0
  227. package/dist/ir/type-system/type-system-call-resolution.d.ts +69 -0
  228. package/dist/ir/type-system/type-system-call-resolution.d.ts.map +1 -0
  229. package/dist/ir/type-system/type-system-call-resolution.js +1121 -0
  230. package/dist/ir/type-system/type-system-call-resolution.js.map +1 -0
  231. package/dist/ir/type-system/type-system-inference.d.ts +98 -0
  232. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -0
  233. package/dist/ir/type-system/type-system-inference.js +1083 -0
  234. package/dist/ir/type-system/type-system-inference.js.map +1 -0
  235. package/dist/ir/type-system/type-system-relations.d.ts +15 -0
  236. package/dist/ir/type-system/type-system-relations.d.ts.map +1 -0
  237. package/dist/ir/type-system/type-system-relations.js +152 -0
  238. package/dist/ir/type-system/type-system-relations.js.map +1 -0
  239. package/dist/ir/type-system/type-system-state.d.ts +436 -0
  240. package/dist/ir/type-system/type-system-state.d.ts.map +1 -0
  241. package/dist/ir/type-system/type-system-state.js +212 -0
  242. package/dist/ir/type-system/type-system-state.js.map +1 -0
  243. package/dist/ir/type-system/type-system-utilities.d.ts +56 -0
  244. package/dist/ir/type-system/type-system-utilities.d.ts.map +1 -0
  245. package/dist/ir/type-system/type-system-utilities.js +373 -0
  246. package/dist/ir/type-system/type-system-utilities.js.map +1 -0
  247. package/dist/ir/type-system/type-system.d.ts +17 -350
  248. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  249. package/dist/ir/type-system/type-system.js +67 -2764
  250. package/dist/ir/type-system/type-system.js.map +1 -1
  251. package/dist/ir/types/index.d.ts +1 -0
  252. package/dist/ir/types/index.d.ts.map +1 -1
  253. package/dist/ir/types/index.js +1 -0
  254. package/dist/ir/types/index.js.map +1 -1
  255. package/dist/ir/types/ir-substitution.js +1 -1
  256. package/dist/ir/types/ir-substitution.js.map +1 -1
  257. package/dist/ir/types/ir-types.d.ts.map +1 -1
  258. package/dist/ir/types/module.d.ts +11 -0
  259. package/dist/ir/types/module.d.ts.map +1 -1
  260. package/dist/ir/types/statements.d.ts +1 -1
  261. package/dist/ir/types/type-ops.d.ts +9 -0
  262. package/dist/ir/types/type-ops.d.ts.map +1 -0
  263. package/dist/ir/types/type-ops.js +134 -0
  264. package/dist/ir/types/type-ops.js.map +1 -0
  265. package/dist/ir/types/type-ops.test.d.ts +2 -0
  266. package/dist/ir/types/type-ops.test.d.ts.map +1 -0
  267. package/dist/ir/types/type-ops.test.js +73 -0
  268. package/dist/ir/types/type-ops.test.js.map +1 -0
  269. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  270. package/dist/ir/validation/anonymous-type-lowering-pass.js +101 -49
  271. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  272. package/dist/ir/validation/arrow-return-finalization-pass.js +13 -3
  273. package/dist/ir/validation/arrow-return-finalization-pass.js.map +1 -1
  274. package/dist/ir/validation/attribute-collection/arg-extractor.d.ts +58 -0
  275. package/dist/ir/validation/attribute-collection/arg-extractor.d.ts.map +1 -0
  276. package/dist/ir/validation/attribute-collection/arg-extractor.js +284 -0
  277. package/dist/ir/validation/attribute-collection/arg-extractor.js.map +1 -0
  278. package/dist/ir/validation/attribute-collection/marker-parser.d.ts +28 -0
  279. package/dist/ir/validation/attribute-collection/marker-parser.d.ts.map +1 -0
  280. package/dist/ir/validation/attribute-collection/marker-parser.js +404 -0
  281. package/dist/ir/validation/attribute-collection/marker-parser.js.map +1 -0
  282. package/dist/ir/validation/attribute-collection/orchestrator.d.ts +28 -0
  283. package/dist/ir/validation/attribute-collection/orchestrator.d.ts.map +1 -0
  284. package/dist/ir/validation/attribute-collection/orchestrator.js +332 -0
  285. package/dist/ir/validation/attribute-collection/orchestrator.js.map +1 -0
  286. package/dist/ir/validation/attribute-collection-pass.d.ts +1 -23
  287. package/dist/ir/validation/attribute-collection-pass.d.ts.map +1 -1
  288. package/dist/ir/validation/attribute-collection-pass.js +1 -953
  289. package/dist/ir/validation/attribute-collection-pass.js.map +1 -1
  290. package/dist/ir/validation/attribute-collection-pass.test.js +42 -19
  291. package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
  292. package/dist/ir/validation/char-validation-pass.d.ts.map +1 -1
  293. package/dist/ir/validation/char-validation-pass.js +6 -3
  294. package/dist/ir/validation/char-validation-pass.js.map +1 -1
  295. package/dist/ir/validation/numeric-coercion-pass.d.ts.map +1 -1
  296. package/dist/ir/validation/numeric-coercion-pass.js.map +1 -1
  297. package/dist/ir/validation/numeric-invariants.test.js +46 -0
  298. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  299. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  300. package/dist/ir/validation/numeric-proof-pass.js +68 -1
  301. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  302. package/dist/ir/validation/rest-type-synthesis-pass.js +1 -1
  303. package/dist/ir/validation/rest-type-synthesis-pass.js.map +1 -1
  304. package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
  305. package/dist/ir/validation/soundness-gate.js +8 -5
  306. package/dist/ir/validation/soundness-gate.js.map +1 -1
  307. package/dist/ir/validation/soundness-gate.test.js +158 -0
  308. package/dist/ir/validation/soundness-gate.test.js.map +1 -1
  309. package/dist/ir/validation/yield-lowering-pass.d.ts +11 -5
  310. package/dist/ir/validation/yield-lowering-pass.d.ts.map +1 -1
  311. package/dist/ir/validation/yield-lowering-pass.js +942 -48
  312. package/dist/ir/validation/yield-lowering-pass.js.map +1 -1
  313. package/dist/ir/validation/yield-lowering-pass.test.js +1333 -127
  314. package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -1
  315. package/dist/program/binding-loader.d.ts +37 -0
  316. package/dist/program/binding-loader.d.ts.map +1 -0
  317. package/dist/program/binding-loader.js +155 -0
  318. package/dist/program/binding-loader.js.map +1 -0
  319. package/dist/program/binding-registry.d.ts +106 -0
  320. package/dist/program/binding-registry.d.ts.map +1 -0
  321. package/dist/program/binding-registry.js +590 -0
  322. package/dist/program/binding-registry.js.map +1 -0
  323. package/dist/program/binding-types.d.ts +166 -0
  324. package/dist/program/binding-types.d.ts.map +1 -0
  325. package/dist/program/binding-types.js +57 -0
  326. package/dist/program/binding-types.js.map +1 -0
  327. package/dist/program/bindings.d.ts +6 -271
  328. package/dist/program/bindings.d.ts.map +1 -1
  329. package/dist/program/bindings.js +7 -781
  330. package/dist/program/bindings.js.map +1 -1
  331. package/dist/program/clr-bindings-discovery.d.ts +19 -0
  332. package/dist/program/clr-bindings-discovery.d.ts.map +1 -0
  333. package/dist/program/clr-bindings-discovery.js +150 -0
  334. package/dist/program/clr-bindings-discovery.js.map +1 -0
  335. package/dist/program/clr-bindings-discovery.test.d.ts +2 -0
  336. package/dist/program/clr-bindings-discovery.test.d.ts.map +1 -0
  337. package/dist/program/clr-bindings-discovery.test.js +119 -0
  338. package/dist/program/clr-bindings-discovery.test.js.map +1 -0
  339. package/dist/program/creation.d.ts.map +1 -1
  340. package/dist/program/creation.js +2 -1
  341. package/dist/program/creation.js.map +1 -1
  342. package/dist/program/creation.test.js.map +1 -1
  343. package/dist/program/dependency-graph.d.ts +2 -2
  344. package/dist/program/dependency-graph.d.ts.map +1 -1
  345. package/dist/program/dependency-graph.js +26 -42
  346. package/dist/program/dependency-graph.js.map +1 -1
  347. package/dist/resolver/clr-bindings-resolver.d.ts +0 -1
  348. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  349. package/dist/resolver/clr-bindings-resolver.js +22 -30
  350. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  351. package/dist/resolver/clr-bindings-resolver.test.js +0 -27
  352. package/dist/resolver/clr-bindings-resolver.test.js.map +1 -1
  353. package/dist/resolver/import-resolution.d.ts +1 -1
  354. package/dist/resolver/import-resolution.d.ts.map +1 -1
  355. package/dist/resolver/import-resolution.js +2 -7
  356. package/dist/resolver/import-resolution.js.map +1 -1
  357. package/dist/resolver/namespace.d.ts.map +1 -1
  358. package/dist/resolver/namespace.js +1 -3
  359. package/dist/resolver/namespace.js.map +1 -1
  360. package/dist/resolver/naming.d.ts.map +1 -1
  361. package/dist/resolver/naming.js +1 -0
  362. package/dist/resolver/naming.js.map +1 -1
  363. package/dist/tsbindgen/names.d.ts.map +1 -1
  364. package/dist/tsbindgen/names.js +4 -2
  365. package/dist/tsbindgen/names.js.map +1 -1
  366. package/dist/types/diagnostic.d.ts +1 -1
  367. package/dist/types/diagnostic.d.ts.map +1 -1
  368. package/dist/types/diagnostic.js.map +1 -1
  369. package/dist/validation/core-intrinsics.d.ts.map +1 -1
  370. package/dist/validation/core-intrinsics.js +3 -1
  371. package/dist/validation/core-intrinsics.js.map +1 -1
  372. package/dist/validation/extension-methods.d.ts.map +1 -1
  373. package/dist/validation/extension-methods.js.map +1 -1
  374. package/dist/validation/features.d.ts.map +1 -1
  375. package/dist/validation/features.js +38 -13
  376. package/dist/validation/features.js.map +1 -1
  377. package/dist/validation/features.test.d.ts +2 -0
  378. package/dist/validation/features.test.d.ts.map +1 -0
  379. package/dist/validation/features.test.js +273 -0
  380. package/dist/validation/features.test.js.map +1 -0
  381. package/dist/validation/generics.d.ts +1 -1
  382. package/dist/validation/generics.d.ts.map +1 -1
  383. package/dist/validation/generics.js +2 -26
  384. package/dist/validation/generics.js.map +1 -1
  385. package/dist/validation/imports.d.ts.map +1 -1
  386. package/dist/validation/imports.js +2 -1
  387. package/dist/validation/imports.js.map +1 -1
  388. package/dist/validation/imports.test.d.ts +2 -0
  389. package/dist/validation/imports.test.d.ts.map +1 -0
  390. package/dist/validation/imports.test.js +112 -0
  391. package/dist/validation/imports.test.js.map +1 -0
  392. package/dist/validation/static-safety.d.ts +6 -6
  393. package/dist/validation/static-safety.d.ts.map +1 -1
  394. package/dist/validation/static-safety.js +163 -94
  395. package/dist/validation/static-safety.js.map +1 -1
  396. package/dist/validation/unsupported-utility-types.d.ts +3 -3
  397. package/dist/validation/unsupported-utility-types.d.ts.map +1 -1
  398. package/dist/validation/unsupported-utility-types.js +4 -7
  399. package/dist/validation/unsupported-utility-types.js.map +1 -1
  400. package/dist/validator.maximus.test.d.ts +2 -0
  401. package/dist/validator.maximus.test.d.ts.map +1 -0
  402. package/dist/validator.maximus.test.js +1214 -0
  403. package/dist/validator.maximus.test.js.map +1 -0
  404. package/dist/validator.test.js +152 -18
  405. package/dist/validator.test.js.map +1 -1
  406. package/package.json +1 -1
  407. package/dist/ir/converters/statements/declarations/registry.d.ts +0 -96
  408. package/dist/ir/converters/statements/declarations/registry.d.ts.map +0 -1
  409. package/dist/ir/converters/statements/declarations/registry.js +0 -130
  410. package/dist/ir/converters/statements/declarations/registry.js.map +0 -1
  411. package/dist/ir/this-parameter-inference.test.d.ts +0 -13
  412. package/dist/ir/this-parameter-inference.test.d.ts.map +0 -1
  413. package/dist/ir/this-parameter-inference.test.js +0 -165
  414. package/dist/ir/this-parameter-inference.test.js.map +0 -1
  415. package/dist/metadata/bindings-loader.d.ts +0 -41
  416. package/dist/metadata/bindings-loader.d.ts.map +0 -1
  417. package/dist/metadata/bindings-loader.js +0 -308
  418. package/dist/metadata/bindings-loader.js.map +0 -1
  419. package/dist/metadata/bindings-loader.test.d.ts +0 -5
  420. package/dist/metadata/bindings-loader.test.d.ts.map +0 -1
  421. package/dist/metadata/bindings-loader.test.js +0 -117
  422. package/dist/metadata/bindings-loader.test.js.map +0 -1
  423. package/dist/metadata/index.d.ts +0 -8
  424. package/dist/metadata/index.d.ts.map +0 -1
  425. package/dist/metadata/index.js +0 -7
  426. package/dist/metadata/index.js.map +0 -1
  427. package/dist/metadata/library-loader.d.ts +0 -42
  428. package/dist/metadata/library-loader.d.ts.map +0 -1
  429. package/dist/metadata/library-loader.js +0 -126
  430. package/dist/metadata/library-loader.js.map +0 -1
  431. package/dist/metadata/loader.d.ts +0 -26
  432. package/dist/metadata/loader.d.ts.map +0 -1
  433. package/dist/metadata/loader.js +0 -333
  434. package/dist/metadata/loader.js.map +0 -1
  435. package/dist/metadata/loader.test.d.ts +0 -5
  436. package/dist/metadata/loader.test.d.ts.map +0 -1
  437. package/dist/metadata/loader.test.js +0 -119
  438. package/dist/metadata/loader.test.js.map +0 -1
  439. package/dist/resolver/naming-policy.d.ts +0 -20
  440. package/dist/resolver/naming-policy.d.ts.map +0 -1
  441. package/dist/resolver/naming-policy.js +0 -40
  442. package/dist/resolver/naming-policy.js.map +0 -1
  443. package/dist/types/bindings.d.ts +0 -153
  444. package/dist/types/bindings.d.ts.map +0 -1
  445. package/dist/types/bindings.js +0 -14
  446. package/dist/types/bindings.js.map +0 -1
  447. package/dist/types/metadata.d.ts +0 -196
  448. package/dist/types/metadata.d.ts.map +0 -1
  449. package/dist/types/metadata.js +0 -10
  450. package/dist/types/metadata.js.map +0 -1
  451. package/dist/types/nested-types.d.ts +0 -111
  452. package/dist/types/nested-types.d.ts.map +0 -1
  453. package/dist/types/nested-types.js +0 -176
  454. package/dist/types/nested-types.js.map +0 -1
  455. package/dist/types/nested-types.test.d.ts +0 -5
  456. package/dist/types/nested-types.test.d.ts.map +0 -1
  457. package/dist/types/nested-types.test.js +0 -135
  458. package/dist/types/nested-types.test.js.map +0 -1
  459. package/dist/types/ref-parameters.d.ts +0 -123
  460. package/dist/types/ref-parameters.d.ts.map +0 -1
  461. package/dist/types/ref-parameters.js +0 -203
  462. package/dist/types/ref-parameters.js.map +0 -1
  463. package/dist/types/ref-parameters.test.d.ts +0 -5
  464. package/dist/types/ref-parameters.test.d.ts.map +0 -1
  465. package/dist/types/ref-parameters.test.js +0 -147
  466. package/dist/types/ref-parameters.test.js.map +0 -1
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Binding Layer — Type Definitions
3
+ *
4
+ * Public and internal type definitions for the Binding layer.
5
+ * Contains Binding/BindingInternal interfaces and internal entry types
6
+ * used by the factory and handle registry.
7
+ */
8
+ import ts from "typescript";
9
+ import type { DeclId, SignatureId, MemberId, TypeSyntaxId } from "../type-system/types.js";
10
+ import type { DeclKind, ParameterNode, TypeParameterNode, SignatureTypePredicate, ClassMemberNames } from "../type-system/internal/handle-types.js";
11
+ /**
12
+ * Binding interface — wraps TS symbol resolution APIs.
13
+ *
14
+ * All methods return opaque handles. Use HandleRegistry to look up
15
+ * the underlying declaration/signature information.
16
+ */
17
+ export type Binding = {
18
+ /**
19
+ * Resolve an identifier to its declaration.
20
+ * Uses checker.getSymbolAtLocation + symbol.getDeclarations().
21
+ */
22
+ resolveIdentifier(node: ts.Identifier): DeclId | undefined;
23
+ /**
24
+ * Resolve a type reference to its declaration.
25
+ * For qualified names (A.B.C), resolves the rightmost symbol.
26
+ */
27
+ resolveTypeReference(node: ts.TypeReferenceNode): DeclId | undefined;
28
+ /**
29
+ * Resolve a property access to its member declaration.
30
+ */
31
+ resolvePropertyAccess(node: ts.PropertyAccessExpression): MemberId | undefined;
32
+ /**
33
+ * Resolve an element access to its member (for known keys).
34
+ */
35
+ resolveElementAccess(node: ts.ElementAccessExpression): MemberId | undefined;
36
+ /**
37
+ * Pick the correct overload for a call expression.
38
+ * Uses checker.getResolvedSignature to pick the overload.
39
+ */
40
+ resolveCallSignature(node: ts.CallExpression): SignatureId | undefined;
41
+ /**
42
+ * Return candidate overload signatures for a call expression, filtered by arity.
43
+ *
44
+ * This is used when TypeScript overload selection is ambiguous due to
45
+ * erased types in the TS layer (e.g., `char` is `string` in TypeScript).
46
+ *
47
+ * IMPORTANT: This returns *candidates*, not the final selection.
48
+ * The TypeSystem remains the authority for semantic selection.
49
+ */
50
+ resolveCallSignatureCandidates(node: ts.CallExpression): readonly SignatureId[] | undefined;
51
+ /**
52
+ * Resolve new expression constructor signature.
53
+ */
54
+ resolveConstructorSignature(node: ts.NewExpression): SignatureId | undefined;
55
+ /**
56
+ * Return candidate overload signatures for a constructor call, filtered by arity.
57
+ */
58
+ resolveConstructorSignatureCandidates(node: ts.NewExpression): readonly SignatureId[] | undefined;
59
+ /**
60
+ * Resolve an import specifier to its actual declaration.
61
+ * Uses checker.getAliasedSymbol to follow the import chain.
62
+ */
63
+ resolveImport(node: ts.ImportSpecifier): DeclId | undefined;
64
+ /**
65
+ * Resolve a shorthand property assignment to its declaration.
66
+ * For `{ foo }` syntax, resolves `foo` to its declaration.
67
+ */
68
+ resolveShorthandAssignment(node: ts.ShorthandPropertyAssignment): DeclId | undefined;
69
+ /**
70
+ * Get the declaring type name for a resolved member handle.
71
+ *
72
+ * This is used for features that depend on the syntactic container of a member
73
+ * declaration (e.g. tsbindgen extension-method interfaces like `__Ext_*`).
74
+ */
75
+ getDeclaringTypeNameOfMember(member: MemberId): string | undefined;
76
+ /**
77
+ * Get the absolute source file path where a resolved member is declared.
78
+ *
79
+ * Used to disambiguate tsbindgen bindings when multiple CLR types share the same
80
+ * TS alias (e.g., `Server.listen` exists on both `nodejs.Server` and `nodejs.Http.Server`).
81
+ */
82
+ getSourceFilePathOfMember(member: MemberId): string | undefined;
83
+ /**
84
+ * Get the fully-qualified name for a declaration.
85
+ * Used for override detection and .NET type identification.
86
+ */
87
+ getFullyQualifiedName(decl: DeclId): string | undefined;
88
+ /**
89
+ * Get the absolute source file path where a resolved declaration is declared.
90
+ *
91
+ * Used to map re-exported tsbindgen symbols back to their owning bindings.json
92
+ * namespace deterministically (airplane-grade).
93
+ */
94
+ getSourceFilePathOfDecl(decl: DeclId): string | undefined;
95
+ /**
96
+ * Get type predicate information from a signature.
97
+ * For functions with `x is T` return type.
98
+ */
99
+ getTypePredicateOfSignature(sig: SignatureId): TypePredicateInfo | undefined;
100
+ /**
101
+ * Get the TypeScript `this:` parameter type node for a signature (if present).
102
+ *
103
+ * Used for airplane-grade lowering of extension-method calls emitted as method-table
104
+ * members with explicit `this:` receiver constraints.
105
+ */
106
+ getThisTypeNodeOfSignature(sig: SignatureId): ts.TypeNode | undefined;
107
+ /**
108
+ * Get the declaring TypeScript type name for a resolved signature (if present).
109
+ *
110
+ * For extension methods, this is the declaring interface/type that owns the selected
111
+ * overload signature (e.g., `__TsonicExtMethods_Microsoft_EntityFrameworkCore`).
112
+ *
113
+ * This is critical for airplane-grade extension method binding when the same method name
114
+ * exists in multiple extension namespaces (e.g., `ToArrayAsync` in BCL async LINQ vs EF Core).
115
+ */
116
+ getDeclaringTypeNameOfSignature(sig: SignatureId): string | undefined;
117
+ /**
118
+ * Capture a type syntax node for later conversion.
119
+ *
120
+ * Used for inline type syntax that cannot be captured at catalog-build time:
121
+ * - `as Foo` type assertions
122
+ * - `satisfies Bar` expressions
123
+ * - Generic type arguments in expressions
124
+ *
125
+ * The captured syntax can be converted to IrType via TypeSystem.typeFromSyntax().
126
+ * This is NOT an escape hatch — it's the correct boundary for inline syntax.
127
+ */
128
+ captureTypeSyntax(node: ts.TypeNode): TypeSyntaxId;
129
+ /**
130
+ * Capture multiple type arguments.
131
+ *
132
+ * Convenience method for capturing generic type arguments like `Foo<A, B, C>`.
133
+ */
134
+ captureTypeArgs(nodes: readonly ts.TypeNode[]): readonly TypeSyntaxId[];
135
+ };
136
+ /**
137
+ * BindingInternal — extended interface for TypeSystem construction only.
138
+ *
139
+ * INVARIANT (Alice's spec): Only createTypeSystem() should access
140
+ * _getHandleRegistry(). All other code uses the TypeSystem API.
141
+ */
142
+ export type BindingInternal = Binding & {
143
+ /**
144
+ * Get the handle registry for TypeSystem construction.
145
+ *
146
+ * INTERNAL USE ONLY: This method is NOT part of the public Binding API.
147
+ * Only createTypeSystem() should call this to access declaration info.
148
+ * All other code should use TypeSystem queries instead.
149
+ */
150
+ _getHandleRegistry(): import("../type-system/internal/handle-types.js").HandleRegistry;
151
+ };
152
+ /**
153
+ * Type predicate information for `x is T` predicates.
154
+ */
155
+ export type TypePredicateInfo = {
156
+ readonly kind: "typePredicate";
157
+ readonly parameterIndex: number;
158
+ readonly typeNode?: ts.TypeNode;
159
+ };
160
+ export type DeclEntry = {
161
+ readonly symbol: ts.Symbol;
162
+ readonly decl?: ts.Declaration;
163
+ readonly typeDeclNode?: ts.Declaration;
164
+ readonly valueDeclNode?: ts.Declaration;
165
+ readonly typeNode?: ts.TypeNode;
166
+ readonly kind: DeclKind;
167
+ readonly fqName?: string;
168
+ readonly classMemberNames?: ClassMemberNames;
169
+ };
170
+ export type SignatureEntry = {
171
+ readonly signature: ts.Signature;
172
+ readonly decl?: ts.SignatureDeclaration;
173
+ readonly parameters: readonly ParameterNode[];
174
+ /** Type node of a TypeScript `this:` parameter (if present). Excluded from `parameters`. */
175
+ readonly thisTypeNode?: ts.TypeNode;
176
+ readonly returnTypeNode?: ts.TypeNode;
177
+ readonly typeParameters?: readonly TypeParameterNode[];
178
+ /**
179
+ * Declaring type simple TS name (e.g., "Box" not "Test.Box").
180
+ * TypeSystem uses UnifiedTypeCatalog.resolveTsName() to get CLR FQ name.
181
+ */
182
+ readonly declaringTypeTsName?: string;
183
+ /** Declaring member name (for inheritance substitution in resolveCall) */
184
+ readonly declaringMemberName?: string;
185
+ /** Type predicate extracted from return type (x is T) */
186
+ readonly typePredicate?: SignatureTypePredicate;
187
+ };
188
+ export type MemberEntry = {
189
+ readonly memberId: MemberId;
190
+ readonly symbol: ts.Symbol;
191
+ readonly decl?: ts.Declaration;
192
+ readonly name: string;
193
+ readonly typeNode?: ts.TypeNode;
194
+ readonly isOptional: boolean;
195
+ readonly isReadonly: boolean;
196
+ };
197
+ /**
198
+ * Entry for captured type syntax (Phase 2: TypeSyntaxId).
199
+ */
200
+ export type TypeSyntaxEntry = {
201
+ readonly typeNode: ts.TypeNode;
202
+ };
203
+ //# sourceMappingURL=binding-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-types.d.ts","sourceRoot":"","sources":["../../../src/ir/binding/binding-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Binding Layer — Type Definitions
3
+ *
4
+ * Public and internal type definitions for the Binding layer.
5
+ * Contains Binding/BindingInternal interfaces and internal entry types
6
+ * used by the factory and handle registry.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=binding-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-types.js","sourceRoot":"","sources":["../../../src/ir/binding/binding-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -16,157 +16,10 @@
16
16
  * - checker.getTypeOfSymbolAtLocation
17
17
  * - checker.getContextualType
18
18
  * - checker.typeToTypeNode
19
- */
20
- import ts from "typescript";
21
- import { DeclId, SignatureId, MemberId, TypeSyntaxId } from "../type-system/types.js";
22
- import type { HandleRegistry } from "../type-system/internal/handle-types.js";
23
- /**
24
- * Binding interface — wraps TS symbol resolution APIs.
25
- *
26
- * All methods return opaque handles. Use HandleRegistry to look up
27
- * the underlying declaration/signature information.
28
- */
29
- export interface Binding {
30
- /**
31
- * Resolve an identifier to its declaration.
32
- * Uses checker.getSymbolAtLocation + symbol.getDeclarations().
33
- */
34
- resolveIdentifier(node: ts.Identifier): DeclId | undefined;
35
- /**
36
- * Resolve a type reference to its declaration.
37
- * For qualified names (A.B.C), resolves the rightmost symbol.
38
- */
39
- resolveTypeReference(node: ts.TypeReferenceNode): DeclId | undefined;
40
- /**
41
- * Resolve a property access to its member declaration.
42
- */
43
- resolvePropertyAccess(node: ts.PropertyAccessExpression): MemberId | undefined;
44
- /**
45
- * Resolve an element access to its member (for known keys).
46
- */
47
- resolveElementAccess(node: ts.ElementAccessExpression): MemberId | undefined;
48
- /**
49
- * Pick the correct overload for a call expression.
50
- * Uses checker.getResolvedSignature to pick the overload.
51
- */
52
- resolveCallSignature(node: ts.CallExpression): SignatureId | undefined;
53
- /**
54
- * Return candidate overload signatures for a call expression, filtered by arity.
55
- *
56
- * This is used when TypeScript overload selection is ambiguous due to
57
- * erased types in the TS layer (e.g., `char` is `string` in TypeScript).
58
- *
59
- * IMPORTANT: This returns *candidates*, not the final selection.
60
- * The TypeSystem remains the authority for semantic selection.
61
- */
62
- resolveCallSignatureCandidates(node: ts.CallExpression): readonly SignatureId[] | undefined;
63
- /**
64
- * Resolve new expression constructor signature.
65
- */
66
- resolveConstructorSignature(node: ts.NewExpression): SignatureId | undefined;
67
- /**
68
- * Return candidate overload signatures for a constructor call, filtered by arity.
69
- */
70
- resolveConstructorSignatureCandidates(node: ts.NewExpression): readonly SignatureId[] | undefined;
71
- /**
72
- * Resolve an import specifier to its actual declaration.
73
- * Uses checker.getAliasedSymbol to follow the import chain.
74
- */
75
- resolveImport(node: ts.ImportSpecifier): DeclId | undefined;
76
- /**
77
- * Resolve a shorthand property assignment to its declaration.
78
- * For `{ foo }` syntax, resolves `foo` to its declaration.
79
- */
80
- resolveShorthandAssignment(node: ts.ShorthandPropertyAssignment): DeclId | undefined;
81
- /**
82
- * Get the declaring type name for a resolved member handle.
83
- *
84
- * This is used for features that depend on the syntactic container of a member
85
- * declaration (e.g. tsbindgen extension-method interfaces like `__Ext_*`).
86
- */
87
- getDeclaringTypeNameOfMember(member: MemberId): string | undefined;
88
- /**
89
- * Get the absolute source file path where a resolved member is declared.
90
- *
91
- * Used to disambiguate tsbindgen bindings when multiple CLR types share the same
92
- * TS alias (e.g., `Server.listen` exists on both `nodejs.Server` and `nodejs.Http.Server`).
93
- */
94
- getSourceFilePathOfMember(member: MemberId): string | undefined;
95
- /**
96
- * Get the fully-qualified name for a declaration.
97
- * Used for override detection and .NET type identification.
98
- */
99
- getFullyQualifiedName(decl: DeclId): string | undefined;
100
- /**
101
- * Get type predicate information from a signature.
102
- * For functions with `x is T` return type.
103
- */
104
- getTypePredicateOfSignature(sig: SignatureId): TypePredicateInfo | undefined;
105
- /**
106
- * Get the TypeScript `this:` parameter type node for a signature (if present).
107
- *
108
- * Used for airplane-grade lowering of extension-method calls emitted as method-table
109
- * members with explicit `this:` receiver constraints.
110
- */
111
- getThisTypeNodeOfSignature(sig: SignatureId): ts.TypeNode | undefined;
112
- /**
113
- * Get the declaring TypeScript type name for a resolved signature (if present).
114
- *
115
- * For extension methods, this is the declaring interface/type that owns the selected
116
- * overload signature (e.g., `__TsonicExtMethods_Microsoft_EntityFrameworkCore`).
117
- *
118
- * This is critical for airplane-grade extension method binding when the same method name
119
- * exists in multiple extension namespaces (e.g., `ToArrayAsync` in BCL async LINQ vs EF Core).
120
- */
121
- getDeclaringTypeNameOfSignature(sig: SignatureId): string | undefined;
122
- /**
123
- * Capture a type syntax node for later conversion.
124
- *
125
- * Used for inline type syntax that cannot be captured at catalog-build time:
126
- * - `as Foo` type assertions
127
- * - `satisfies Bar` expressions
128
- * - Generic type arguments in expressions
129
- *
130
- * The captured syntax can be converted to IrType via TypeSystem.typeFromSyntax().
131
- * This is NOT an escape hatch — it's the correct boundary for inline syntax.
132
- */
133
- captureTypeSyntax(node: ts.TypeNode): TypeSyntaxId;
134
- /**
135
- * Capture multiple type arguments.
136
- *
137
- * Convenience method for capturing generic type arguments like `Foo<A, B, C>`.
138
- */
139
- captureTypeArgs(nodes: readonly ts.TypeNode[]): readonly TypeSyntaxId[];
140
- }
141
- /**
142
- * BindingInternal — extended interface for TypeSystem construction only.
143
- *
144
- * INVARIANT (Alice's spec): Only createTypeSystem() should access
145
- * _getHandleRegistry(). All other code uses the TypeSystem API.
146
- */
147
- export interface BindingInternal extends Binding {
148
- /**
149
- * Get the handle registry for TypeSystem construction.
150
- *
151
- * INTERNAL USE ONLY: This method is NOT part of the public Binding API.
152
- * Only createTypeSystem() should call this to access declaration info.
153
- * All other code should use TypeSystem queries instead.
154
- */
155
- _getHandleRegistry(): HandleRegistry;
156
- }
157
- /**
158
- * Type predicate information for `x is T` predicates.
159
- */
160
- export type TypePredicateInfo = {
161
- readonly kind: "typePredicate";
162
- readonly parameterIndex: number;
163
- readonly typeNode?: ts.TypeNode;
164
- };
165
- /**
166
- * Create a Binding instance for a TypeScript program.
167
19
  *
168
- * Returns BindingInternal which includes _getHandleRegistry() for TypeSystem.
169
- * Cast to Binding when passing to regular converters.
20
+ * Barrel re-export all public types and factory function are re-exported
21
+ * from their respective sub-modules.
170
22
  */
171
- export declare const createBinding: (checker: ts.TypeChecker) => BindingInternal;
23
+ export type { Binding, BindingInternal, TypePredicateInfo, } from "./binding-types.js";
24
+ export { createBinding } from "./binding-factory.js";
172
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/binding/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/binding/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,YAAY,EACV,OAAO,EACP,eAAe,EACf,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}