@tsonic/frontend 0.0.74 → 0.0.75

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 (1782) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core-intrinsics/provenance.d.ts +7 -0
  3. package/dist/core-intrinsics/provenance.d.ts.map +1 -1
  4. package/dist/core-intrinsics/provenance.js +27 -4
  5. package/dist/core-intrinsics/provenance.js.map +1 -1
  6. package/dist/graph/extraction/imports.d.ts.map +1 -1
  7. package/dist/graph/extraction/imports.js +2 -0
  8. package/dist/graph/extraction/imports.js.map +1 -1
  9. package/dist/ir/binding/binding-call-resolution-calls.d.ts +11 -0
  10. package/dist/ir/binding/binding-call-resolution-calls.d.ts.map +1 -0
  11. package/dist/ir/binding/binding-call-resolution-calls.js +974 -0
  12. package/dist/ir/binding/binding-call-resolution-calls.js.map +1 -0
  13. package/dist/ir/binding/binding-call-resolution-candidates.d.ts +15 -0
  14. package/dist/ir/binding/binding-call-resolution-candidates.d.ts.map +1 -0
  15. package/dist/ir/binding/binding-call-resolution-candidates.js +178 -0
  16. package/dist/ir/binding/binding-call-resolution-candidates.js.map +1 -0
  17. package/dist/ir/binding/binding-call-resolution.d.ts +11 -0
  18. package/dist/ir/binding/binding-call-resolution.d.ts.map +1 -0
  19. package/dist/ir/binding/binding-call-resolution.js +11 -0
  20. package/dist/ir/binding/binding-call-resolution.js.map +1 -0
  21. package/dist/ir/binding/binding-factory.d.ts +7 -4
  22. package/dist/ir/binding/binding-factory.d.ts.map +1 -1
  23. package/dist/ir/binding/binding-factory.js +44 -829
  24. package/dist/ir/binding/binding-factory.js.map +1 -1
  25. package/dist/ir/binding/binding-helpers.d.ts +1 -0
  26. package/dist/ir/binding/binding-helpers.d.ts.map +1 -1
  27. package/dist/ir/binding/binding-helpers.js +37 -14
  28. package/dist/ir/binding/binding-helpers.js.map +1 -1
  29. package/dist/ir/binding/binding-registry.d.ts +52 -0
  30. package/dist/ir/binding/binding-registry.d.ts.map +1 -0
  31. package/dist/ir/binding/binding-registry.js +582 -0
  32. package/dist/ir/binding/binding-registry.js.map +1 -0
  33. package/dist/ir/binding/binding-types.d.ts +2 -0
  34. package/dist/ir/binding/binding-types.d.ts.map +1 -1
  35. package/dist/ir/binding-resolution-cases/extension-method-binding.test.d.ts +7 -0
  36. package/dist/ir/binding-resolution-cases/extension-method-binding.test.d.ts.map +1 -0
  37. package/dist/ir/binding-resolution-cases/extension-method-binding.test.js +463 -0
  38. package/dist/ir/binding-resolution-cases/extension-method-binding.test.js.map +1 -0
  39. package/dist/ir/binding-resolution-cases/extension-method-owner-resolution.test.d.ts +6 -0
  40. package/dist/ir/binding-resolution-cases/extension-method-owner-resolution.test.d.ts.map +1 -0
  41. package/dist/ir/binding-resolution-cases/extension-method-owner-resolution.test.js +252 -0
  42. package/dist/ir/binding-resolution-cases/extension-method-owner-resolution.test.js.map +1 -0
  43. package/dist/ir/binding-resolution-cases/extension-method-tsbindgen-modifiers.test.d.ts +6 -0
  44. package/dist/ir/binding-resolution-cases/extension-method-tsbindgen-modifiers.test.d.ts.map +1 -0
  45. package/dist/ir/binding-resolution-cases/extension-method-tsbindgen-modifiers.test.js +369 -0
  46. package/dist/ir/binding-resolution-cases/extension-method-tsbindgen-modifiers.test.js.map +1 -0
  47. package/dist/ir/binding-resolution-cases/extract-type-name.test.d.ts +5 -0
  48. package/dist/ir/binding-resolution-cases/extract-type-name.test.d.ts.map +1 -0
  49. package/dist/ir/binding-resolution-cases/extract-type-name.test.js +57 -0
  50. package/dist/ir/binding-resolution-cases/extract-type-name.test.js.map +1 -0
  51. package/dist/ir/binding-resolution-cases/global-binding-preferences.test.d.ts +5 -0
  52. package/dist/ir/binding-resolution-cases/global-binding-preferences.test.d.ts.map +1 -0
  53. package/dist/ir/binding-resolution-cases/global-binding-preferences.test.js +323 -0
  54. package/dist/ir/binding-resolution-cases/global-binding-preferences.test.js.map +1 -0
  55. package/dist/ir/binding-resolution-cases/global-identifier-resolution.test.d.ts +5 -0
  56. package/dist/ir/binding-resolution-cases/global-identifier-resolution.test.d.ts.map +1 -0
  57. package/dist/ir/binding-resolution-cases/global-identifier-resolution.test.js +1057 -0
  58. package/dist/ir/binding-resolution-cases/global-identifier-resolution.test.js.map +1 -0
  59. package/dist/ir/binding-resolution-cases/helpers.d.ts +38 -0
  60. package/dist/ir/binding-resolution-cases/helpers.d.ts.map +1 -0
  61. package/dist/ir/binding-resolution-cases/helpers.js +59 -0
  62. package/dist/ir/binding-resolution-cases/helpers.js.map +1 -0
  63. package/dist/ir/binding-resolution-cases/hierarchical-binding-resolution.test.d.ts +5 -0
  64. package/dist/ir/binding-resolution-cases/hierarchical-binding-resolution.test.d.ts.map +1 -0
  65. package/dist/ir/binding-resolution-cases/hierarchical-binding-resolution.test.js +259 -0
  66. package/dist/ir/binding-resolution-cases/hierarchical-binding-resolution.test.js.map +1 -0
  67. package/dist/ir/binding-resolution-cases/imported-globals-shadowing.test.d.ts +2 -0
  68. package/dist/ir/binding-resolution-cases/imported-globals-shadowing.test.d.ts.map +1 -0
  69. package/dist/ir/binding-resolution-cases/imported-globals-shadowing.test.js +566 -0
  70. package/dist/ir/binding-resolution-cases/imported-globals-shadowing.test.js.map +1 -0
  71. package/dist/ir/binding-resolution-cases/js-array-member-binding.test.d.ts +5 -0
  72. package/dist/ir/binding-resolution-cases/js-array-member-binding.test.d.ts.map +1 -0
  73. package/dist/ir/binding-resolution-cases/js-array-member-binding.test.js +186 -0
  74. package/dist/ir/binding-resolution-cases/js-array-member-binding.test.js.map +1 -0
  75. package/dist/ir/binding-resolution-cases/module-import-type-alias-renaming.test.d.ts +6 -0
  76. package/dist/ir/binding-resolution-cases/module-import-type-alias-renaming.test.d.ts.map +1 -0
  77. package/dist/ir/binding-resolution-cases/module-import-type-alias-renaming.test.js +198 -0
  78. package/dist/ir/binding-resolution-cases/module-import-type-alias-renaming.test.js.map +1 -0
  79. package/dist/ir/binding-resolution.test.d.ts +9 -4
  80. package/dist/ir/binding-resolution.test.d.ts.map +1 -1
  81. package/dist/ir/binding-resolution.test.js +9 -1428
  82. package/dist/ir/binding-resolution.test.js.map +1 -1
  83. package/dist/ir/bindings-disambiguation-cases/failure-disambiguation.test.d.ts +8 -0
  84. package/dist/ir/bindings-disambiguation-cases/failure-disambiguation.test.d.ts.map +1 -0
  85. package/dist/ir/bindings-disambiguation-cases/failure-disambiguation.test.js +255 -0
  86. package/dist/ir/bindings-disambiguation-cases/failure-disambiguation.test.js.map +1 -0
  87. package/dist/ir/bindings-disambiguation-cases/success-disambiguation.test.d.ts +11 -0
  88. package/dist/ir/bindings-disambiguation-cases/success-disambiguation.test.d.ts.map +1 -0
  89. package/dist/ir/bindings-disambiguation-cases/success-disambiguation.test.js +326 -0
  90. package/dist/ir/bindings-disambiguation-cases/success-disambiguation.test.js.map +1 -0
  91. package/dist/ir/bindings-disambiguation.test.d.ts +2 -10
  92. package/dist/ir/bindings-disambiguation.test.d.ts.map +1 -1
  93. package/dist/ir/bindings-disambiguation.test.js +2 -561
  94. package/dist/ir/bindings-disambiguation.test.js.map +1 -1
  95. package/dist/ir/builder/exports.d.ts +2 -2
  96. package/dist/ir/builder/exports.d.ts.map +1 -1
  97. package/dist/ir/builder/exports.js +6 -10
  98. package/dist/ir/builder/exports.js.map +1 -1
  99. package/dist/ir/builder/imports.d.ts.map +1 -1
  100. package/dist/ir/builder/imports.js +104 -58
  101. package/dist/ir/builder/imports.js.map +1 -1
  102. package/dist/ir/builder/orchestrator.d.ts.map +1 -1
  103. package/dist/ir/builder/orchestrator.js +7 -9
  104. package/dist/ir/builder/orchestrator.js.map +1 -1
  105. package/dist/ir/builder/statements.d.ts +5 -0
  106. package/dist/ir/builder/statements.d.ts.map +1 -1
  107. package/dist/ir/builder/statements.js +16 -5
  108. package/dist/ir/builder/statements.js.map +1 -1
  109. package/dist/ir/builder-cases/_test-helpers.d.ts +61 -0
  110. package/dist/ir/builder-cases/_test-helpers.d.ts.map +1 -0
  111. package/dist/ir/builder-cases/_test-helpers.js +123 -0
  112. package/dist/ir/builder-cases/_test-helpers.js.map +1 -0
  113. package/dist/ir/builder-cases/call-inference-generics/alias-cache.test.d.ts +2 -0
  114. package/dist/ir/builder-cases/call-inference-generics/alias-cache.test.d.ts.map +1 -0
  115. package/dist/ir/builder-cases/call-inference-generics/alias-cache.test.js +123 -0
  116. package/dist/ir/builder-cases/call-inference-generics/alias-cache.test.js.map +1 -0
  117. package/dist/ir/builder-cases/call-inference-generics/context-threading.test.d.ts +2 -0
  118. package/dist/ir/builder-cases/call-inference-generics/context-threading.test.d.ts.map +1 -0
  119. package/dist/ir/builder-cases/call-inference-generics/context-threading.test.js +839 -0
  120. package/dist/ir/builder-cases/call-inference-generics/context-threading.test.js.map +1 -0
  121. package/dist/ir/builder-cases/clr-identity.test.d.ts +5 -0
  122. package/dist/ir/builder-cases/clr-identity.test.d.ts.map +1 -0
  123. package/dist/ir/builder-cases/clr-identity.test.js +188 -0
  124. package/dist/ir/builder-cases/clr-identity.test.js.map +1 -0
  125. package/dist/ir/builder-cases/clr-iterable-overload-resolution.test.d.ts +2 -0
  126. package/dist/ir/builder-cases/clr-iterable-overload-resolution.test.d.ts.map +1 -0
  127. package/dist/ir/builder-cases/clr-iterable-overload-resolution.test.js +1436 -0
  128. package/dist/ir/builder-cases/clr-iterable-overload-resolution.test.js.map +1 -0
  129. package/dist/ir/builder-cases/conditional-narrowing.test.d.ts +5 -0
  130. package/dist/ir/builder-cases/conditional-narrowing.test.d.ts.map +1 -0
  131. package/dist/ir/builder-cases/conditional-narrowing.test.js +598 -0
  132. package/dist/ir/builder-cases/conditional-narrowing.test.js.map +1 -0
  133. package/dist/ir/builder-cases/contextual-typing-middleware.test.d.ts +5 -0
  134. package/dist/ir/builder-cases/contextual-typing-middleware.test.d.ts.map +1 -0
  135. package/dist/ir/builder-cases/contextual-typing-middleware.test.js +384 -0
  136. package/dist/ir/builder-cases/contextual-typing-middleware.test.js.map +1 -0
  137. package/dist/ir/builder-cases/expression-conversion.test.d.ts +5 -0
  138. package/dist/ir/builder-cases/expression-conversion.test.d.ts.map +1 -0
  139. package/dist/ir/builder-cases/expression-conversion.test.js +712 -0
  140. package/dist/ir/builder-cases/expression-conversion.test.js.map +1 -0
  141. package/dist/ir/builder-cases/fluent-and-nullable-params.test.d.ts +5 -0
  142. package/dist/ir/builder-cases/fluent-and-nullable-params.test.d.ts.map +1 -0
  143. package/dist/ir/builder-cases/fluent-and-nullable-params.test.js +170 -0
  144. package/dist/ir/builder-cases/fluent-and-nullable-params.test.js.map +1 -0
  145. package/dist/ir/builder-cases/for-of-loops.test.d.ts +5 -0
  146. package/dist/ir/builder-cases/for-of-loops.test.d.ts.map +1 -0
  147. package/dist/ir/builder-cases/for-of-loops.test.js +367 -0
  148. package/dist/ir/builder-cases/for-of-loops.test.js.map +1 -0
  149. package/dist/ir/builder-cases/generic-call-parameter-specialization.test.d.ts +2 -0
  150. package/dist/ir/builder-cases/generic-call-parameter-specialization.test.d.ts.map +1 -0
  151. package/dist/ir/builder-cases/generic-call-parameter-specialization.test.js +192 -0
  152. package/dist/ir/builder-cases/generic-call-parameter-specialization.test.js.map +1 -0
  153. package/dist/ir/builder-cases/implements-and-struct.test.d.ts +5 -0
  154. package/dist/ir/builder-cases/implements-and-struct.test.d.ts.map +1 -0
  155. package/dist/ir/builder-cases/implements-and-struct.test.js +145 -0
  156. package/dist/ir/builder-cases/implements-and-struct.test.js.map +1 -0
  157. package/dist/ir/builder-cases/import-extraction.test.d.ts +5 -0
  158. package/dist/ir/builder-cases/import-extraction.test.d.ts.map +1 -0
  159. package/dist/ir/builder-cases/import-extraction.test.js +852 -0
  160. package/dist/ir/builder-cases/import-extraction.test.js.map +1 -0
  161. package/dist/ir/builder-cases/imported-null-guard-assignments.test.d.ts +2 -0
  162. package/dist/ir/builder-cases/imported-null-guard-assignments.test.d.ts.map +1 -0
  163. package/dist/ir/builder-cases/imported-null-guard-assignments.test.js +185 -0
  164. package/dist/ir/builder-cases/imported-null-guard-assignments.test.js.map +1 -0
  165. package/dist/ir/builder-cases/imported-union-aliases.test.d.ts +2 -0
  166. package/dist/ir/builder-cases/imported-union-aliases.test.d.ts.map +1 -0
  167. package/dist/ir/builder-cases/imported-union-aliases.test.js +255 -0
  168. package/dist/ir/builder-cases/imported-union-aliases.test.js.map +1 -0
  169. package/dist/ir/builder-cases/installed-source-package-deterministic-typing.test.d.ts +2 -0
  170. package/dist/ir/builder-cases/installed-source-package-deterministic-typing.test.d.ts.map +1 -0
  171. package/dist/ir/builder-cases/installed-source-package-deterministic-typing.test.js +1267 -0
  172. package/dist/ir/builder-cases/installed-source-package-deterministic-typing.test.js.map +1 -0
  173. package/dist/ir/builder-cases/invocation-flow-assertions.test.d.ts +2 -0
  174. package/dist/ir/builder-cases/invocation-flow-assertions.test.d.ts.map +1 -0
  175. package/dist/ir/builder-cases/invocation-flow-assertions.test.js +198 -0
  176. package/dist/ir/builder-cases/invocation-flow-assertions.test.js.map +1 -0
  177. package/dist/ir/builder-cases/js-surface-helpers.test.d.ts +5 -0
  178. package/dist/ir/builder-cases/js-surface-helpers.test.d.ts.map +1 -0
  179. package/dist/ir/builder-cases/js-surface-helpers.test.js +1990 -0
  180. package/dist/ir/builder-cases/js-surface-helpers.test.js.map +1 -0
  181. package/dist/ir/builder-cases/module-structure-and-exports.test.d.ts +5 -0
  182. package/dist/ir/builder-cases/module-structure-and-exports.test.d.ts.map +1 -0
  183. package/dist/ir/builder-cases/module-structure-and-exports.test.js +97 -0
  184. package/dist/ir/builder-cases/module-structure-and-exports.test.js.map +1 -0
  185. package/dist/ir/builder-cases/namespace-imports-and-function-narrowing.test.d.ts +5 -0
  186. package/dist/ir/builder-cases/namespace-imports-and-function-narrowing.test.d.ts.map +1 -0
  187. package/dist/ir/builder-cases/namespace-imports-and-function-narrowing.test.js +511 -0
  188. package/dist/ir/builder-cases/namespace-imports-and-function-narrowing.test.js.map +1 -0
  189. package/dist/ir/builder-cases/narrowing-isarray-and-typeof.test.d.ts +5 -0
  190. package/dist/ir/builder-cases/narrowing-isarray-and-typeof.test.d.ts.map +1 -0
  191. package/dist/ir/builder-cases/narrowing-isarray-and-typeof.test.js +676 -0
  192. package/dist/ir/builder-cases/narrowing-isarray-and-typeof.test.js.map +1 -0
  193. package/dist/ir/builder-cases/object-exports-and-member-inference.test.d.ts +5 -0
  194. package/dist/ir/builder-cases/object-exports-and-member-inference.test.d.ts.map +1 -0
  195. package/dist/ir/builder-cases/object-exports-and-member-inference.test.js +159 -0
  196. package/dist/ir/builder-cases/object-exports-and-member-inference.test.js.map +1 -0
  197. package/dist/ir/builder-cases/object-synthesis-advanced.test.d.ts +5 -0
  198. package/dist/ir/builder-cases/object-synthesis-advanced.test.d.ts.map +1 -0
  199. package/dist/ir/builder-cases/object-synthesis-advanced.test.js +250 -0
  200. package/dist/ir/builder-cases/object-synthesis-advanced.test.js.map +1 -0
  201. package/dist/ir/builder-cases/object-synthesis.test.d.ts +5 -0
  202. package/dist/ir/builder-cases/object-synthesis.test.d.ts.map +1 -0
  203. package/dist/ir/builder-cases/object-synthesis.test.js +254 -0
  204. package/dist/ir/builder-cases/object-synthesis.test.js.map +1 -0
  205. package/dist/ir/builder-cases/overload-family-markers.test.d.ts +2 -0
  206. package/dist/ir/builder-cases/overload-family-markers.test.d.ts.map +1 -0
  207. package/dist/ir/builder-cases/overload-family-markers.test.js +264 -0
  208. package/dist/ir/builder-cases/overload-family-markers.test.js.map +1 -0
  209. package/dist/ir/builder-cases/overload-null-guard-selection.test.d.ts +2 -0
  210. package/dist/ir/builder-cases/overload-null-guard-selection.test.d.ts.map +1 -0
  211. package/dist/ir/builder-cases/overload-null-guard-selection.test.js +210 -0
  212. package/dist/ir/builder-cases/overload-null-guard-selection.test.js.map +1 -0
  213. package/dist/ir/builder-cases/overload-stub-typing.test.d.ts +2 -0
  214. package/dist/ir/builder-cases/overload-stub-typing.test.d.ts.map +1 -0
  215. package/dist/ir/builder-cases/overload-stub-typing.test.js +111 -0
  216. package/dist/ir/builder-cases/overload-stub-typing.test.js.map +1 -0
  217. package/dist/ir/builder-cases/private-members-and-instanceof.test.d.ts +5 -0
  218. package/dist/ir/builder-cases/private-members-and-instanceof.test.d.ts.map +1 -0
  219. package/dist/ir/builder-cases/private-members-and-instanceof.test.js +239 -0
  220. package/dist/ir/builder-cases/private-members-and-instanceof.test.js.map +1 -0
  221. package/dist/ir/builder-cases/promise-callback-typing.test.d.ts +5 -0
  222. package/dist/ir/builder-cases/promise-callback-typing.test.d.ts.map +1 -0
  223. package/dist/ir/builder-cases/promise-callback-typing.test.js +977 -0
  224. package/dist/ir/builder-cases/promise-callback-typing.test.js.map +1 -0
  225. package/dist/ir/builder-cases/recursive-aliases-and-flow-types.test.d.ts +5 -0
  226. package/dist/ir/builder-cases/recursive-aliases-and-flow-types.test.d.ts.map +1 -0
  227. package/dist/ir/builder-cases/recursive-aliases-and-flow-types.test.js +509 -0
  228. package/dist/ir/builder-cases/recursive-aliases-and-flow-types.test.js.map +1 -0
  229. package/dist/ir/builder-cases/statement-conversion.test.d.ts +5 -0
  230. package/dist/ir/builder-cases/statement-conversion.test.d.ts.map +1 -0
  231. package/dist/ir/builder-cases/statement-conversion.test.js +240 -0
  232. package/dist/ir/builder-cases/statement-conversion.test.js.map +1 -0
  233. package/dist/ir/builder-cases/type-access-and-records.test.d.ts +5 -0
  234. package/dist/ir/builder-cases/type-access-and-records.test.d.ts.map +1 -0
  235. package/dist/ir/builder-cases/type-access-and-records.test.js +420 -0
  236. package/dist/ir/builder-cases/type-access-and-records.test.js.map +1 -0
  237. package/dist/ir/builder-cases/typeof-narrowing-and-intrinsics.test.d.ts +5 -0
  238. package/dist/ir/builder-cases/typeof-narrowing-and-intrinsics.test.d.ts.map +1 -0
  239. package/dist/ir/builder-cases/typeof-narrowing-and-intrinsics.test.js +187 -0
  240. package/dist/ir/builder-cases/typeof-narrowing-and-intrinsics.test.js.map +1 -0
  241. package/dist/ir/builder.test.d.ts +27 -4
  242. package/dist/ir/builder.test.d.ts.map +1 -1
  243. package/dist/ir/builder.test.js +27 -3583
  244. package/dist/ir/builder.test.js.map +1 -1
  245. package/dist/ir/converters/access-paths.d.ts +20 -0
  246. package/dist/ir/converters/access-paths.d.ts.map +1 -0
  247. package/dist/ir/converters/access-paths.js +163 -0
  248. package/dist/ir/converters/access-paths.js.map +1 -0
  249. package/dist/ir/converters/array-type-guards.d.ts +7 -0
  250. package/dist/ir/converters/array-type-guards.d.ts.map +1 -0
  251. package/dist/ir/converters/array-type-guards.js +33 -0
  252. package/dist/ir/converters/array-type-guards.js.map +1 -0
  253. package/dist/ir/converters/assertion-wrapping.d.ts +4 -0
  254. package/dist/ir/converters/assertion-wrapping.d.ts.map +1 -0
  255. package/dist/ir/converters/assertion-wrapping.js +40 -0
  256. package/dist/ir/converters/assertion-wrapping.js.map +1 -0
  257. package/dist/ir/converters/expressions/access/access-converter.d.ts.map +1 -1
  258. package/dist/ir/converters/expressions/access/access-converter.js +104 -40
  259. package/dist/ir/converters/expressions/access/access-converter.js.map +1 -1
  260. package/dist/ir/converters/expressions/access/binding-resolution-hierarchical.d.ts +18 -0
  261. package/dist/ir/converters/expressions/access/binding-resolution-hierarchical.d.ts.map +1 -0
  262. package/dist/ir/converters/expressions/access/binding-resolution-hierarchical.js +347 -0
  263. package/dist/ir/converters/expressions/access/binding-resolution-hierarchical.js.map +1 -0
  264. package/dist/ir/converters/expressions/access/binding-resolution-memberid.d.ts +28 -0
  265. package/dist/ir/converters/expressions/access/binding-resolution-memberid.d.ts.map +1 -0
  266. package/dist/ir/converters/expressions/access/binding-resolution-memberid.js +522 -0
  267. package/dist/ir/converters/expressions/access/binding-resolution-memberid.js.map +1 -0
  268. package/dist/ir/converters/expressions/access/binding-resolution.d.ts +7 -31
  269. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
  270. package/dist/ir/converters/expressions/access/binding-resolution.js +7 -490
  271. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -1
  272. package/dist/ir/converters/expressions/access/member-resolution.d.ts +7 -6
  273. package/dist/ir/converters/expressions/access/member-resolution.d.ts.map +1 -1
  274. package/dist/ir/converters/expressions/access/member-resolution.js +323 -77
  275. package/dist/ir/converters/expressions/access/member-resolution.js.map +1 -1
  276. package/dist/ir/converters/expressions/ambient-global-source-owner.d.ts +5 -0
  277. package/dist/ir/converters/expressions/ambient-global-source-owner.d.ts.map +1 -0
  278. package/dist/ir/converters/expressions/ambient-global-source-owner.js +252 -0
  279. package/dist/ir/converters/expressions/ambient-global-source-owner.js.map +1 -0
  280. package/dist/ir/converters/expressions/array-literals.d.ts +25 -0
  281. package/dist/ir/converters/expressions/array-literals.d.ts.map +1 -0
  282. package/dist/ir/converters/expressions/array-literals.js +356 -0
  283. package/dist/ir/converters/expressions/array-literals.js.map +1 -0
  284. package/dist/ir/converters/expressions/calls/bound-global-call-parameters.d.ts +13 -0
  285. package/dist/ir/converters/expressions/calls/bound-global-call-parameters.d.ts.map +1 -0
  286. package/dist/ir/converters/expressions/calls/bound-global-call-parameters.js +56 -0
  287. package/dist/ir/converters/expressions/calls/bound-global-call-parameters.js.map +1 -0
  288. package/dist/ir/converters/expressions/calls/call-converter.d.ts +7 -17
  289. package/dist/ir/converters/expressions/calls/call-converter.d.ts.map +1 -1
  290. package/dist/ir/converters/expressions/calls/call-converter.js +7 -648
  291. package/dist/ir/converters/expressions/calls/call-converter.js.map +1 -1
  292. package/dist/ir/converters/expressions/calls/call-expression.d.ts +9 -0
  293. package/dist/ir/converters/expressions/calls/call-expression.d.ts.map +1 -0
  294. package/dist/ir/converters/expressions/calls/call-expression.js +9 -0
  295. package/dist/ir/converters/expressions/calls/call-expression.js.map +1 -0
  296. package/dist/ir/converters/expressions/calls/call-general.d.ts +25 -0
  297. package/dist/ir/converters/expressions/calls/call-general.d.ts.map +1 -0
  298. package/dist/ir/converters/expressions/calls/call-general.js +2237 -0
  299. package/dist/ir/converters/expressions/calls/call-general.js.map +1 -0
  300. package/dist/ir/converters/expressions/calls/call-intrinsics.d.ts +16 -0
  301. package/dist/ir/converters/expressions/calls/call-intrinsics.d.ts.map +1 -0
  302. package/dist/ir/converters/expressions/calls/call-intrinsics.js +308 -0
  303. package/dist/ir/converters/expressions/calls/call-intrinsics.js.map +1 -0
  304. package/dist/ir/converters/expressions/calls/call-resolution.d.ts +58 -0
  305. package/dist/ir/converters/expressions/calls/call-resolution.d.ts.map +1 -0
  306. package/dist/ir/converters/expressions/calls/call-resolution.js +293 -0
  307. package/dist/ir/converters/expressions/calls/call-resolution.js.map +1 -0
  308. package/dist/ir/converters/expressions/calls/call-site-analysis-argument-passing.d.ts +51 -0
  309. package/dist/ir/converters/expressions/calls/call-site-analysis-argument-passing.d.ts.map +1 -0
  310. package/dist/ir/converters/expressions/calls/call-site-analysis-argument-passing.js +313 -0
  311. package/dist/ir/converters/expressions/calls/call-site-analysis-argument-passing.js.map +1 -0
  312. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.d.ts +13 -0
  313. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.d.ts.map +1 -0
  314. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.js +251 -0
  315. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.js.map +1 -0
  316. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.test.d.ts +2 -0
  317. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.test.d.ts.map +1 -0
  318. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.test.js +18 -0
  319. package/dist/ir/converters/expressions/calls/call-site-analysis-unification.test.js.map +1 -0
  320. package/dist/ir/converters/expressions/calls/call-site-analysis.d.ts +12 -51
  321. package/dist/ir/converters/expressions/calls/call-site-analysis.d.ts.map +1 -1
  322. package/dist/ir/converters/expressions/calls/call-site-analysis.js +9 -526
  323. package/dist/ir/converters/expressions/calls/call-site-analysis.js.map +1 -1
  324. package/dist/ir/converters/expressions/calls/invocation-finalization.d.ts +56 -0
  325. package/dist/ir/converters/expressions/calls/invocation-finalization.d.ts.map +1 -0
  326. package/dist/ir/converters/expressions/calls/invocation-finalization.js +723 -0
  327. package/dist/ir/converters/expressions/calls/invocation-finalization.js.map +1 -0
  328. package/dist/ir/converters/expressions/calls/new-converter.d.ts.map +1 -1
  329. package/dist/ir/converters/expressions/calls/new-converter.js +78 -3
  330. package/dist/ir/converters/expressions/calls/new-converter.js.map +1 -1
  331. package/dist/ir/converters/expressions/calls/source-backed-constructor-metadata.d.ts +22 -0
  332. package/dist/ir/converters/expressions/calls/source-backed-constructor-metadata.d.ts.map +1 -0
  333. package/dist/ir/converters/expressions/calls/source-backed-constructor-metadata.js +257 -0
  334. package/dist/ir/converters/expressions/calls/source-backed-constructor-metadata.js.map +1 -0
  335. package/dist/ir/converters/expressions/collections.d.ts +5 -25
  336. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  337. package/dist/ir/converters/expressions/collections.js +5 -886
  338. package/dist/ir/converters/expressions/collections.js.map +1 -1
  339. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  340. package/dist/ir/converters/expressions/functions.js +80 -65
  341. package/dist/ir/converters/expressions/functions.js.map +1 -1
  342. package/dist/ir/converters/expressions/helpers.js +1 -1
  343. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  344. package/dist/ir/converters/expressions/import-meta.d.ts +3 -3
  345. package/dist/ir/converters/expressions/import-meta.d.ts.map +1 -1
  346. package/dist/ir/converters/expressions/import-meta.js +22 -8
  347. package/dist/ir/converters/expressions/import-meta.js.map +1 -1
  348. package/dist/ir/converters/expressions/literals.d.ts.map +1 -1
  349. package/dist/ir/converters/expressions/literals.js +31 -6
  350. package/dist/ir/converters/expressions/literals.js.map +1 -1
  351. package/dist/ir/converters/expressions/numeric-recovery-cases/call-return-and-intent.test.d.ts +9 -0
  352. package/dist/ir/converters/expressions/numeric-recovery-cases/call-return-and-intent.test.d.ts.map +1 -0
  353. package/dist/ir/converters/expressions/numeric-recovery-cases/call-return-and-intent.test.js +124 -0
  354. package/dist/ir/converters/expressions/numeric-recovery-cases/call-return-and-intent.test.js.map +1 -0
  355. package/dist/ir/converters/expressions/numeric-recovery-cases/e2e-integration.test.d.ts +8 -0
  356. package/dist/ir/converters/expressions/numeric-recovery-cases/e2e-integration.test.d.ts.map +1 -0
  357. package/dist/ir/converters/expressions/numeric-recovery-cases/e2e-integration.test.js +117 -0
  358. package/dist/ir/converters/expressions/numeric-recovery-cases/e2e-integration.test.js.map +1 -0
  359. package/dist/ir/converters/expressions/numeric-recovery-cases/property-access-recovery.test.d.ts +8 -0
  360. package/dist/ir/converters/expressions/numeric-recovery-cases/property-access-recovery.test.d.ts.map +1 -0
  361. package/dist/ir/converters/expressions/numeric-recovery-cases/property-access-recovery.test.js +170 -0
  362. package/dist/ir/converters/expressions/numeric-recovery-cases/property-access-recovery.test.js.map +1 -0
  363. package/dist/ir/converters/expressions/numeric-recovery-cases/test-helpers.d.ts +31 -0
  364. package/dist/ir/converters/expressions/numeric-recovery-cases/test-helpers.d.ts.map +1 -0
  365. package/dist/ir/converters/expressions/numeric-recovery-cases/test-helpers.js +183 -0
  366. package/dist/ir/converters/expressions/numeric-recovery-cases/test-helpers.js.map +1 -0
  367. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts +3 -16
  368. package/dist/ir/converters/expressions/numeric-recovery.test.d.ts.map +1 -1
  369. package/dist/ir/converters/expressions/numeric-recovery.test.js +3 -407
  370. package/dist/ir/converters/expressions/numeric-recovery.test.js.map +1 -1
  371. package/dist/ir/converters/expressions/object-literal-helpers.d.ts +12 -0
  372. package/dist/ir/converters/expressions/object-literal-helpers.d.ts.map +1 -0
  373. package/dist/ir/converters/expressions/object-literal-helpers.js +12 -0
  374. package/dist/ir/converters/expressions/object-literal-helpers.js.map +1 -0
  375. package/dist/ir/converters/expressions/object-literal-synthesis.d.ts +27 -0
  376. package/dist/ir/converters/expressions/object-literal-synthesis.d.ts.map +1 -0
  377. package/dist/ir/converters/expressions/object-literal-synthesis.js +459 -0
  378. package/dist/ir/converters/expressions/object-literal-synthesis.js.map +1 -0
  379. package/dist/ir/converters/expressions/object-literal-type-helpers.d.ts +27 -0
  380. package/dist/ir/converters/expressions/object-literal-type-helpers.d.ts.map +1 -0
  381. package/dist/ir/converters/expressions/object-literal-type-helpers.js +267 -0
  382. package/dist/ir/converters/expressions/object-literal-type-helpers.js.map +1 -0
  383. package/dist/ir/converters/expressions/object-literals.d.ts +16 -0
  384. package/dist/ir/converters/expressions/object-literals.d.ts.map +1 -0
  385. package/dist/ir/converters/expressions/object-literals.js +317 -0
  386. package/dist/ir/converters/expressions/object-literals.js.map +1 -0
  387. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  388. package/dist/ir/converters/expressions/operators.js +33 -19
  389. package/dist/ir/converters/expressions/operators.js.map +1 -1
  390. package/dist/ir/converters/expressions/other.d.ts +4 -2
  391. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  392. package/dist/ir/converters/expressions/other.js +32 -10
  393. package/dist/ir/converters/expressions/other.js.map +1 -1
  394. package/dist/ir/converters/flow-narrowing.d.ts +6 -25
  395. package/dist/ir/converters/flow-narrowing.d.ts.map +1 -1
  396. package/dist/ir/converters/flow-narrowing.js +5 -418
  397. package/dist/ir/converters/flow-narrowing.js.map +1 -1
  398. package/dist/ir/converters/heritage-reference-type.d.ts +5 -0
  399. package/dist/ir/converters/heritage-reference-type.d.ts.map +1 -0
  400. package/dist/ir/converters/heritage-reference-type.js +22 -0
  401. package/dist/ir/converters/heritage-reference-type.js.map +1 -0
  402. package/dist/ir/converters/narrowing-candidates.d.ts +7 -0
  403. package/dist/ir/converters/narrowing-candidates.d.ts.map +1 -0
  404. package/dist/ir/converters/narrowing-candidates.js +5 -0
  405. package/dist/ir/converters/narrowing-candidates.js.map +1 -0
  406. package/dist/ir/converters/narrowing-collection.d.ts +10 -0
  407. package/dist/ir/converters/narrowing-collection.d.ts.map +1 -0
  408. package/dist/ir/converters/narrowing-collection.js +10 -0
  409. package/dist/ir/converters/narrowing-collection.js.map +1 -0
  410. package/dist/ir/converters/narrowing-environment.d.ts +13 -0
  411. package/dist/ir/converters/narrowing-environment.d.ts.map +1 -0
  412. package/dist/ir/converters/narrowing-environment.js +83 -0
  413. package/dist/ir/converters/narrowing-environment.js.map +1 -0
  414. package/dist/ir/converters/narrowing-property-helpers.d.ts +8 -0
  415. package/dist/ir/converters/narrowing-property-helpers.d.ts.map +1 -0
  416. package/dist/ir/converters/narrowing-property-helpers.js +57 -0
  417. package/dist/ir/converters/narrowing-property-helpers.js.map +1 -0
  418. package/dist/ir/converters/narrowing-resolvers-equality.d.ts +22 -0
  419. package/dist/ir/converters/narrowing-resolvers-equality.d.ts.map +1 -0
  420. package/dist/ir/converters/narrowing-resolvers-equality.js +309 -0
  421. package/dist/ir/converters/narrowing-resolvers-equality.js.map +1 -0
  422. package/dist/ir/converters/narrowing-resolvers-equality.test.d.ts +2 -0
  423. package/dist/ir/converters/narrowing-resolvers-equality.test.d.ts.map +1 -0
  424. package/dist/ir/converters/narrowing-resolvers-equality.test.js +159 -0
  425. package/dist/ir/converters/narrowing-resolvers-equality.test.js.map +1 -0
  426. package/dist/ir/converters/narrowing-resolvers-typeof.d.ts +41 -0
  427. package/dist/ir/converters/narrowing-resolvers-typeof.d.ts.map +1 -0
  428. package/dist/ir/converters/narrowing-resolvers-typeof.js +251 -0
  429. package/dist/ir/converters/narrowing-resolvers-typeof.js.map +1 -0
  430. package/dist/ir/converters/narrowing-resolvers.d.ts +12 -0
  431. package/dist/ir/converters/narrowing-resolvers.d.ts.map +1 -0
  432. package/dist/ir/converters/narrowing-resolvers.js +10 -0
  433. package/dist/ir/converters/narrowing-resolvers.js.map +1 -0
  434. package/dist/ir/converters/narrowing-truthy.d.ts +19 -0
  435. package/dist/ir/converters/narrowing-truthy.d.ts.map +1 -0
  436. package/dist/ir/converters/narrowing-truthy.js +355 -0
  437. package/dist/ir/converters/narrowing-truthy.js.map +1 -0
  438. package/dist/ir/converters/reference-type-guards.d.ts +8 -0
  439. package/dist/ir/converters/reference-type-guards.d.ts.map +1 -0
  440. package/dist/ir/converters/reference-type-guards.js +51 -0
  441. package/dist/ir/converters/reference-type-guards.js.map +1 -0
  442. package/dist/ir/converters/reference-type-guards.test.d.ts +2 -0
  443. package/dist/ir/converters/reference-type-guards.test.d.ts.map +1 -0
  444. package/dist/ir/converters/reference-type-guards.test.js +51 -0
  445. package/dist/ir/converters/reference-type-guards.test.js.map +1 -0
  446. package/dist/ir/converters/return-expression-types.d.ts +3 -0
  447. package/dist/ir/converters/return-expression-types.d.ts.map +1 -0
  448. package/dist/ir/converters/return-expression-types.js +10 -0
  449. package/dist/ir/converters/return-expression-types.js.map +1 -0
  450. package/dist/ir/converters/statements/control/blocks.d.ts.map +1 -1
  451. package/dist/ir/converters/statements/control/blocks.js +72 -2
  452. package/dist/ir/converters/statements/control/blocks.js.map +1 -1
  453. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
  454. package/dist/ir/converters/statements/control/conditionals.js +2 -12
  455. package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
  456. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  457. package/dist/ir/converters/statements/control/loops.js +18 -4
  458. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  459. package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -1
  460. package/dist/ir/converters/statements/declarations/classes/constructors.js +36 -19
  461. package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -1
  462. package/dist/ir/converters/statements/declarations/classes/member-names.d.ts +5 -0
  463. package/dist/ir/converters/statements/declarations/classes/member-names.d.ts.map +1 -0
  464. package/dist/ir/converters/statements/declarations/classes/member-names.js +6 -0
  465. package/dist/ir/converters/statements/declarations/classes/member-names.js.map +1 -0
  466. package/dist/ir/converters/statements/declarations/classes/method-declaration.d.ts +11 -0
  467. package/dist/ir/converters/statements/declarations/classes/method-declaration.d.ts.map +1 -0
  468. package/dist/ir/converters/statements/declarations/classes/method-declaration.js +54 -0
  469. package/dist/ir/converters/statements/declarations/classes/method-declaration.js.map +1 -0
  470. package/dist/ir/converters/statements/declarations/classes/methods.d.ts +2 -15
  471. package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -1
  472. package/dist/ir/converters/statements/declarations/classes/methods.js +2 -810
  473. package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -1
  474. package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -1
  475. package/dist/ir/converters/statements/declarations/classes/orchestrator.js +15 -41
  476. package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -1
  477. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts +4 -1
  478. package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -1
  479. package/dist/ir/converters/statements/declarations/classes/override-detection.js +18 -10
  480. package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -1
  481. package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -1
  482. package/dist/ir/converters/statements/declarations/classes/properties.js +10 -3
  483. package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -1
  484. package/dist/ir/converters/statements/declarations/functions.d.ts.map +1 -1
  485. package/dist/ir/converters/statements/declarations/functions.js +8 -2
  486. package/dist/ir/converters/statements/declarations/functions.js.map +1 -1
  487. package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
  488. package/dist/ir/converters/statements/declarations/interfaces.js +67 -2
  489. package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
  490. package/dist/ir/converters/statements/declarations/overload-family-builders.d.ts +9 -0
  491. package/dist/ir/converters/statements/declarations/overload-family-builders.d.ts.map +1 -0
  492. package/dist/ir/converters/statements/declarations/overload-family-builders.js +21 -0
  493. package/dist/ir/converters/statements/declarations/overload-family-builders.js.map +1 -0
  494. package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
  495. package/dist/ir/converters/statements/declarations/type-aliases.js +12 -1
  496. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  497. package/dist/ir/converters/statements/declarations/variable-generic-lowering.d.ts +50 -0
  498. package/dist/ir/converters/statements/declarations/variable-generic-lowering.d.ts.map +1 -0
  499. package/dist/ir/converters/statements/declarations/variable-generic-lowering.js +281 -0
  500. package/dist/ir/converters/statements/declarations/variable-generic-lowering.js.map +1 -0
  501. package/dist/ir/converters/statements/declarations/variable-helpers.d.ts +29 -0
  502. package/dist/ir/converters/statements/declarations/variable-helpers.d.ts.map +1 -0
  503. package/dist/ir/converters/statements/declarations/variable-helpers.js +58 -0
  504. package/dist/ir/converters/statements/declarations/variable-helpers.js.map +1 -0
  505. package/dist/ir/converters/statements/declarations/variables-generic-function-values.d.ts +21 -0
  506. package/dist/ir/converters/statements/declarations/variables-generic-function-values.d.ts.map +1 -0
  507. package/dist/ir/converters/statements/declarations/variables-generic-function-values.js +263 -0
  508. package/dist/ir/converters/statements/declarations/variables-generic-function-values.js.map +1 -0
  509. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
  510. package/dist/ir/converters/statements/declarations/variables.js +3 -262
  511. package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
  512. package/dist/ir/converters/synthetic-types.d.ts.map +1 -1
  513. package/dist/ir/converters/synthetic-types.js +83 -4
  514. package/dist/ir/converters/synthetic-types.js.map +1 -1
  515. package/dist/ir/converters/type-env.d.ts +3 -1
  516. package/dist/ir/converters/type-env.d.ts.map +1 -1
  517. package/dist/ir/converters/type-env.js +52 -19
  518. package/dist/ir/converters/type-env.js.map +1 -1
  519. package/dist/ir/expression-converter-dispatch.d.ts +21 -0
  520. package/dist/ir/expression-converter-dispatch.d.ts.map +1 -0
  521. package/dist/ir/expression-converter-dispatch.js +550 -0
  522. package/dist/ir/expression-converter-dispatch.js.map +1 -0
  523. package/dist/ir/expression-converter-helpers.d.ts +27 -0
  524. package/dist/ir/expression-converter-helpers.d.ts.map +1 -0
  525. package/dist/ir/expression-converter-helpers.js +172 -0
  526. package/dist/ir/expression-converter-helpers.js.map +1 -0
  527. package/dist/ir/expression-converter.d.ts +5 -15
  528. package/dist/ir/expression-converter.d.ts.map +1 -1
  529. package/dist/ir/expression-converter.js +5 -410
  530. package/dist/ir/expression-converter.js.map +1 -1
  531. package/dist/ir/field-marker.test.js +1 -1
  532. package/dist/ir/field-marker.test.js.map +1 -1
  533. package/dist/ir/json-global-typing.test.d.ts +2 -0
  534. package/dist/ir/json-global-typing.test.d.ts.map +1 -0
  535. package/dist/ir/json-global-typing.test.js +80 -0
  536. package/dist/ir/json-global-typing.test.js.map +1 -0
  537. package/dist/ir/program-context-factory.d.ts +25 -0
  538. package/dist/ir/program-context-factory.d.ts.map +1 -0
  539. package/dist/ir/program-context-factory.js +196 -0
  540. package/dist/ir/program-context-factory.js.map +1 -0
  541. package/dist/ir/program-context-types.d.ts +147 -0
  542. package/dist/ir/program-context-types.d.ts.map +1 -0
  543. package/dist/ir/program-context-types.js +123 -0
  544. package/dist/ir/program-context-types.js.map +1 -0
  545. package/dist/ir/program-context.d.ts +6 -122
  546. package/dist/ir/program-context.d.ts.map +1 -1
  547. package/dist/ir/program-context.js +5 -347
  548. package/dist/ir/program-context.js.map +1 -1
  549. package/dist/ir/program-context.test.js +20 -0
  550. package/dist/ir/program-context.test.js.map +1 -1
  551. package/dist/ir/syntax/overload-stubs.d.ts +4 -0
  552. package/dist/ir/syntax/overload-stubs.d.ts.map +1 -0
  553. package/dist/ir/syntax/overload-stubs.js +32 -0
  554. package/dist/ir/syntax/overload-stubs.js.map +1 -0
  555. package/dist/ir/syntax/property-names.d.ts +6 -0
  556. package/dist/ir/syntax/property-names.d.ts.map +1 -0
  557. package/dist/ir/syntax/property-names.js +116 -0
  558. package/dist/ir/syntax/property-names.js.map +1 -0
  559. package/dist/ir/type-system/call-resolution-callable-types.d.ts +10 -0
  560. package/dist/ir/type-system/call-resolution-callable-types.d.ts.map +1 -0
  561. package/dist/ir/type-system/call-resolution-callable-types.js +288 -0
  562. package/dist/ir/type-system/call-resolution-callable-types.js.map +1 -0
  563. package/dist/ir/type-system/call-resolution-candidate-selection.d.ts +9 -0
  564. package/dist/ir/type-system/call-resolution-candidate-selection.d.ts.map +1 -0
  565. package/dist/ir/type-system/call-resolution-candidate-selection.js +413 -0
  566. package/dist/ir/type-system/call-resolution-candidate-selection.js.map +1 -0
  567. package/dist/ir/type-system/call-resolution-inference.d.ts +12 -0
  568. package/dist/ir/type-system/call-resolution-inference.d.ts.map +1 -0
  569. package/dist/ir/type-system/call-resolution-inference.js +12 -0
  570. package/dist/ir/type-system/call-resolution-inference.js.map +1 -0
  571. package/dist/ir/type-system/call-resolution-method-substitution.d.ts +12 -0
  572. package/dist/ir/type-system/call-resolution-method-substitution.d.ts.map +1 -0
  573. package/dist/ir/type-system/call-resolution-method-substitution.js +115 -0
  574. package/dist/ir/type-system/call-resolution-method-substitution.js.map +1 -0
  575. package/dist/ir/type-system/call-resolution-parameters.d.ts +30 -0
  576. package/dist/ir/type-system/call-resolution-parameters.d.ts.map +1 -0
  577. package/dist/ir/type-system/call-resolution-parameters.js +167 -0
  578. package/dist/ir/type-system/call-resolution-parameters.js.map +1 -0
  579. package/dist/ir/type-system/call-resolution-receiver-substitution.d.ts +12 -0
  580. package/dist/ir/type-system/call-resolution-receiver-substitution.d.ts.map +1 -0
  581. package/dist/ir/type-system/call-resolution-receiver-substitution.js +134 -0
  582. package/dist/ir/type-system/call-resolution-receiver-substitution.js.map +1 -0
  583. package/dist/ir/type-system/call-resolution-resolve.d.ts +12 -0
  584. package/dist/ir/type-system/call-resolution-resolve.d.ts.map +1 -0
  585. package/dist/ir/type-system/call-resolution-resolve.js +275 -0
  586. package/dist/ir/type-system/call-resolution-resolve.js.map +1 -0
  587. package/dist/ir/type-system/call-resolution-scoring.d.ts +18 -0
  588. package/dist/ir/type-system/call-resolution-scoring.d.ts.map +1 -0
  589. package/dist/ir/type-system/call-resolution-scoring.js +166 -0
  590. package/dist/ir/type-system/call-resolution-scoring.js.map +1 -0
  591. package/dist/ir/type-system/call-resolution-signatures-catalog.d.ts +19 -0
  592. package/dist/ir/type-system/call-resolution-signatures-catalog.d.ts.map +1 -0
  593. package/dist/ir/type-system/call-resolution-signatures-catalog.js +121 -0
  594. package/dist/ir/type-system/call-resolution-signatures-catalog.js.map +1 -0
  595. package/dist/ir/type-system/call-resolution-signatures-catalog.test.d.ts +2 -0
  596. package/dist/ir/type-system/call-resolution-signatures-catalog.test.d.ts.map +1 -0
  597. package/dist/ir/type-system/call-resolution-signatures-catalog.test.js +88 -0
  598. package/dist/ir/type-system/call-resolution-signatures-catalog.test.js.map +1 -0
  599. package/dist/ir/type-system/call-resolution-signatures-raw.d.ts +21 -0
  600. package/dist/ir/type-system/call-resolution-signatures-raw.d.ts.map +1 -0
  601. package/dist/ir/type-system/call-resolution-signatures-raw.js +242 -0
  602. package/dist/ir/type-system/call-resolution-signatures-raw.js.map +1 -0
  603. package/dist/ir/type-system/call-resolution-signatures.d.ts +10 -0
  604. package/dist/ir/type-system/call-resolution-signatures.d.ts.map +1 -0
  605. package/dist/ir/type-system/call-resolution-signatures.js +10 -0
  606. package/dist/ir/type-system/call-resolution-signatures.js.map +1 -0
  607. package/dist/ir/type-system/call-resolution-type-ids.d.ts +43 -0
  608. package/dist/ir/type-system/call-resolution-type-ids.d.ts.map +1 -0
  609. package/dist/ir/type-system/call-resolution-type-ids.js +465 -0
  610. package/dist/ir/type-system/call-resolution-type-ids.js.map +1 -0
  611. package/dist/ir/type-system/call-resolution-type-ids.test.d.ts +2 -0
  612. package/dist/ir/type-system/call-resolution-type-ids.test.d.ts.map +1 -0
  613. package/dist/ir/type-system/call-resolution-type-ids.test.js +63 -0
  614. package/dist/ir/type-system/call-resolution-type-ids.test.js.map +1 -0
  615. package/dist/ir/type-system/call-resolution-unification.d.ts +18 -0
  616. package/dist/ir/type-system/call-resolution-unification.d.ts.map +1 -0
  617. package/dist/ir/type-system/call-resolution-unification.js +637 -0
  618. package/dist/ir/type-system/call-resolution-unification.js.map +1 -0
  619. package/dist/ir/type-system/call-resolution-utilities.d.ts +11 -0
  620. package/dist/ir/type-system/call-resolution-utilities.d.ts.map +1 -0
  621. package/dist/ir/type-system/call-resolution-utilities.js +11 -0
  622. package/dist/ir/type-system/call-resolution-utilities.js.map +1 -0
  623. package/dist/ir/type-system/inference-declarations-overrides.d.ts +33 -0
  624. package/dist/ir/type-system/inference-declarations-overrides.d.ts.map +1 -0
  625. package/dist/ir/type-system/inference-declarations-overrides.js +241 -0
  626. package/dist/ir/type-system/inference-declarations-overrides.js.map +1 -0
  627. package/dist/ir/type-system/inference-declarations-types.d.ts +20 -0
  628. package/dist/ir/type-system/inference-declarations-types.d.ts.map +1 -0
  629. package/dist/ir/type-system/inference-declarations-types.js +475 -0
  630. package/dist/ir/type-system/inference-declarations-types.js.map +1 -0
  631. package/dist/ir/type-system/inference-declarations.d.ts +10 -0
  632. package/dist/ir/type-system/inference-declarations.d.ts.map +1 -0
  633. package/dist/ir/type-system/inference-declarations.js +10 -0
  634. package/dist/ir/type-system/inference-declarations.js.map +1 -0
  635. package/dist/ir/type-system/inference-expressions-infer.d.ts +25 -0
  636. package/dist/ir/type-system/inference-expressions-infer.d.ts.map +1 -0
  637. package/dist/ir/type-system/inference-expressions-infer.js +427 -0
  638. package/dist/ir/type-system/inference-expressions-infer.js.map +1 -0
  639. package/dist/ir/type-system/inference-expressions-lambda.d.ts +13 -0
  640. package/dist/ir/type-system/inference-expressions-lambda.d.ts.map +1 -0
  641. package/dist/ir/type-system/inference-expressions-lambda.js +101 -0
  642. package/dist/ir/type-system/inference-expressions-lambda.js.map +1 -0
  643. package/dist/ir/type-system/inference-expressions.d.ts +10 -0
  644. package/dist/ir/type-system/inference-expressions.d.ts.map +1 -0
  645. package/dist/ir/type-system/inference-expressions.js +10 -0
  646. package/dist/ir/type-system/inference-expressions.js.map +1 -0
  647. package/dist/ir/type-system/inference-initializers-call.d.ts +37 -0
  648. package/dist/ir/type-system/inference-initializers-call.d.ts.map +1 -0
  649. package/dist/ir/type-system/inference-initializers-call.js +242 -0
  650. package/dist/ir/type-system/inference-initializers-call.js.map +1 -0
  651. package/dist/ir/type-system/inference-initializers-variable.d.ts +14 -0
  652. package/dist/ir/type-system/inference-initializers-variable.d.ts.map +1 -0
  653. package/dist/ir/type-system/inference-initializers-variable.js +178 -0
  654. package/dist/ir/type-system/inference-initializers-variable.js.map +1 -0
  655. package/dist/ir/type-system/inference-initializers.d.ts +10 -0
  656. package/dist/ir/type-system/inference-initializers.d.ts.map +1 -0
  657. package/dist/ir/type-system/inference-initializers.js +10 -0
  658. package/dist/ir/type-system/inference-initializers.js.map +1 -0
  659. package/dist/ir/type-system/inference-member-id.d.ts +21 -0
  660. package/dist/ir/type-system/inference-member-id.d.ts.map +1 -0
  661. package/dist/ir/type-system/inference-member-id.js +402 -0
  662. package/dist/ir/type-system/inference-member-id.js.map +1 -0
  663. package/dist/ir/type-system/inference-member-lookup.d.ts +15 -0
  664. package/dist/ir/type-system/inference-member-lookup.d.ts.map +1 -0
  665. package/dist/ir/type-system/inference-member-lookup.js +567 -0
  666. package/dist/ir/type-system/inference-member-lookup.js.map +1 -0
  667. package/dist/ir/type-system/inference-member-resolution.d.ts +10 -0
  668. package/dist/ir/type-system/inference-member-resolution.d.ts.map +1 -0
  669. package/dist/ir/type-system/inference-member-resolution.js +10 -0
  670. package/dist/ir/type-system/inference-member-resolution.js.map +1 -0
  671. package/dist/ir/type-system/inference-type-preference.d.ts +9 -0
  672. package/dist/ir/type-system/inference-type-preference.d.ts.map +1 -0
  673. package/dist/ir/type-system/inference-type-preference.js +67 -0
  674. package/dist/ir/type-system/inference-type-preference.js.map +1 -0
  675. package/dist/ir/type-system/inference-utilities.d.ts +48 -0
  676. package/dist/ir/type-system/inference-utilities.d.ts.map +1 -0
  677. package/dist/ir/type-system/inference-utilities.js +182 -0
  678. package/dist/ir/type-system/inference-utilities.js.map +1 -0
  679. package/dist/ir/type-system/internal/handle-types.d.ts +12 -0
  680. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
  681. package/dist/ir/type-system/internal/nominal-env.d.ts +1 -1
  682. package/dist/ir/type-system/internal/nominal-env.d.ts.map +1 -1
  683. package/dist/ir/type-system/internal/nominal-env.js +12 -114
  684. package/dist/ir/type-system/internal/nominal-env.js.map +1 -1
  685. package/dist/ir/type-system/internal/registry-builder.d.ts +19 -0
  686. package/dist/ir/type-system/internal/registry-builder.d.ts.map +1 -0
  687. package/dist/ir/type-system/internal/registry-builder.js +292 -0
  688. package/dist/ir/type-system/internal/registry-builder.js.map +1 -0
  689. package/dist/ir/type-system/internal/registry-helpers-extraction.d.ts +69 -0
  690. package/dist/ir/type-system/internal/registry-helpers-extraction.d.ts.map +1 -0
  691. package/dist/ir/type-system/internal/registry-helpers-extraction.js +429 -0
  692. package/dist/ir/type-system/internal/registry-helpers-extraction.js.map +1 -0
  693. package/dist/ir/type-system/internal/registry-helpers-inference.d.ts +19 -0
  694. package/dist/ir/type-system/internal/registry-helpers-inference.d.ts.map +1 -0
  695. package/dist/ir/type-system/internal/registry-helpers-inference.js +237 -0
  696. package/dist/ir/type-system/internal/registry-helpers-inference.js.map +1 -0
  697. package/dist/ir/type-system/internal/registry-helpers.d.ts +12 -0
  698. package/dist/ir/type-system/internal/registry-helpers.d.ts.map +1 -0
  699. package/dist/ir/type-system/internal/registry-helpers.js +12 -0
  700. package/dist/ir/type-system/internal/registry-helpers.js.map +1 -0
  701. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-core.d.ts +53 -0
  702. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-core.d.ts.map +1 -0
  703. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-core.js +281 -0
  704. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-core.js.map +1 -0
  705. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-extract.d.ts +35 -0
  706. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-extract.d.ts.map +1 -0
  707. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-extract.js +308 -0
  708. package/dist/ir/type-system/internal/type-converter/conditional-utility-types-extract.js.map +1 -0
  709. package/dist/ir/type-system/internal/type-converter/conditional-utility-types.d.ts +23 -0
  710. package/dist/ir/type-system/internal/type-converter/conditional-utility-types.d.ts.map +1 -0
  711. package/dist/ir/type-system/internal/type-converter/conditional-utility-types.js +23 -0
  712. package/dist/ir/type-system/internal/type-converter/conditional-utility-types.js.map +1 -0
  713. package/dist/ir/type-system/internal/type-converter/direct-alias-expansion.d.ts +5 -0
  714. package/dist/ir/type-system/internal/type-converter/direct-alias-expansion.d.ts.map +1 -0
  715. package/dist/ir/type-system/internal/type-converter/direct-alias-expansion.js +232 -0
  716. package/dist/ir/type-system/internal/type-converter/direct-alias-expansion.js.map +1 -0
  717. package/dist/ir/type-system/internal/type-converter/functions.d.ts.map +1 -1
  718. package/dist/ir/type-system/internal/type-converter/functions.js +21 -0
  719. package/dist/ir/type-system/internal/type-converter/functions.js.map +1 -1
  720. package/dist/ir/type-system/internal/type-converter/mapped-utility-expansion.d.ts +37 -0
  721. package/dist/ir/type-system/internal/type-converter/mapped-utility-expansion.d.ts.map +1 -0
  722. package/dist/ir/type-system/internal/type-converter/mapped-utility-expansion.js +334 -0
  723. package/dist/ir/type-system/internal/type-converter/mapped-utility-expansion.js.map +1 -0
  724. package/dist/ir/type-system/internal/type-converter/mapped-utility-record.d.ts +27 -0
  725. package/dist/ir/type-system/internal/type-converter/mapped-utility-record.d.ts.map +1 -0
  726. package/dist/ir/type-system/internal/type-converter/mapped-utility-record.js +174 -0
  727. package/dist/ir/type-system/internal/type-converter/mapped-utility-record.js.map +1 -0
  728. package/dist/ir/type-system/internal/type-converter/mapped-utility-types.d.ts +10 -0
  729. package/dist/ir/type-system/internal/type-converter/mapped-utility-types.d.ts.map +1 -0
  730. package/dist/ir/type-system/internal/type-converter/mapped-utility-types.js +10 -0
  731. package/dist/ir/type-system/internal/type-converter/mapped-utility-types.js.map +1 -0
  732. package/dist/ir/type-system/internal/type-converter/objects.d.ts.map +1 -1
  733. package/dist/ir/type-system/internal/type-converter/objects.js +11 -6
  734. package/dist/ir/type-system/internal/type-converter/objects.js.map +1 -1
  735. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts +6 -5
  736. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  737. package/dist/ir/type-system/internal/type-converter/orchestrator.js +80 -463
  738. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  739. package/dist/ir/type-system/internal/type-converter/orchestrator.test.js +47 -57
  740. package/dist/ir/type-system/internal/type-converter/orchestrator.test.js.map +1 -1
  741. package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -1
  742. package/dist/ir/type-system/internal/type-converter/primitives.js +9 -1
  743. package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -1
  744. package/dist/ir/type-system/internal/type-converter/references-alias.d.ts +21 -0
  745. package/dist/ir/type-system/internal/type-converter/references-alias.d.ts.map +1 -0
  746. package/dist/ir/type-system/internal/type-converter/references-alias.js +267 -0
  747. package/dist/ir/type-system/internal/type-converter/references-alias.js.map +1 -0
  748. package/dist/ir/type-system/internal/type-converter/references-converter.d.ts +16 -0
  749. package/dist/ir/type-system/internal/type-converter/references-converter.d.ts.map +1 -0
  750. package/dist/ir/type-system/internal/type-converter/references-converter.js +203 -0
  751. package/dist/ir/type-system/internal/type-converter/references-converter.js.map +1 -0
  752. package/dist/ir/type-system/internal/type-converter/references-normalize.d.ts +49 -0
  753. package/dist/ir/type-system/internal/type-converter/references-normalize.d.ts.map +1 -0
  754. package/dist/ir/type-system/internal/type-converter/references-normalize.js +162 -0
  755. package/dist/ir/type-system/internal/type-converter/references-normalize.js.map +1 -0
  756. package/dist/ir/type-system/internal/type-converter/references-structural-bindings.d.ts +52 -0
  757. package/dist/ir/type-system/internal/type-converter/references-structural-bindings.d.ts.map +1 -0
  758. package/dist/ir/type-system/internal/type-converter/references-structural-bindings.js +295 -0
  759. package/dist/ir/type-system/internal/type-converter/references-structural-bindings.js.map +1 -0
  760. package/dist/ir/type-system/internal/type-converter/references-structural-members.d.ts +55 -0
  761. package/dist/ir/type-system/internal/type-converter/references-structural-members.d.ts.map +1 -0
  762. package/dist/ir/type-system/internal/type-converter/references-structural-members.js +334 -0
  763. package/dist/ir/type-system/internal/type-converter/references-structural-members.js.map +1 -0
  764. package/dist/ir/type-system/internal/type-converter/references-structural.d.ts +12 -0
  765. package/dist/ir/type-system/internal/type-converter/references-structural.d.ts.map +1 -0
  766. package/dist/ir/type-system/internal/type-converter/references-structural.js +12 -0
  767. package/dist/ir/type-system/internal/type-converter/references-structural.js.map +1 -0
  768. package/dist/ir/type-system/internal/type-converter/references.d.ts +8 -9
  769. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  770. package/dist/ir/type-system/internal/type-converter/references.js +7 -981
  771. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  772. package/dist/ir/type-system/internal/type-converter/type-operators.d.ts +16 -0
  773. package/dist/ir/type-system/internal/type-converter/type-operators.d.ts.map +1 -0
  774. package/dist/ir/type-system/internal/type-converter/type-operators.js +197 -0
  775. package/dist/ir/type-system/internal/type-converter/type-operators.js.map +1 -0
  776. package/dist/ir/type-system/internal/type-converter/unions-intersections.d.ts.map +1 -1
  777. package/dist/ir/type-system/internal/type-converter/unions-intersections.js +2 -4
  778. package/dist/ir/type-system/internal/type-converter/unions-intersections.js.map +1 -1
  779. package/dist/ir/type-system/internal/type-converter/utility-types-cases/comprehensive-expansion.test.d.ts +2 -0
  780. package/dist/ir/type-system/internal/type-converter/utility-types-cases/comprehensive-expansion.test.d.ts.map +1 -0
  781. package/dist/ir/type-system/internal/type-converter/utility-types-cases/comprehensive-expansion.test.js +246 -0
  782. package/dist/ir/type-system/internal/type-converter/utility-types-cases/comprehensive-expansion.test.js.map +1 -0
  783. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-awaited-constructor-instance.test.d.ts +2 -0
  784. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-awaited-constructor-instance.test.d.ts.map +1 -0
  785. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-awaited-constructor-instance.test.js +179 -0
  786. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-awaited-constructor-instance.test.js.map +1 -0
  787. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-nonnullable-exclude-extract.test.d.ts +2 -0
  788. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-nonnullable-exclude-extract.test.d.ts.map +1 -0
  789. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-nonnullable-exclude-extract.test.js +277 -0
  790. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-nonnullable-exclude-extract.test.js.map +1 -0
  791. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-return-params.test.d.ts +2 -0
  792. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-return-params.test.d.ts.map +1 -0
  793. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-return-params.test.js +163 -0
  794. package/dist/ir/type-system/internal/type-converter/utility-types-cases/conditional-return-params.test.js.map +1 -0
  795. package/dist/ir/type-system/internal/type-converter/utility-types-cases/expansion-safety.test.d.ts +2 -0
  796. package/dist/ir/type-system/internal/type-converter/utility-types-cases/expansion-safety.test.d.ts.map +1 -0
  797. package/dist/ir/type-system/internal/type-converter/utility-types-cases/expansion-safety.test.js +305 -0
  798. package/dist/ir/type-system/internal/type-converter/utility-types-cases/expansion-safety.test.js.map +1 -0
  799. package/dist/ir/type-system/internal/type-converter/utility-types-cases/helpers.d.ts +38 -0
  800. package/dist/ir/type-system/internal/type-converter/utility-types-cases/helpers.d.ts.map +1 -0
  801. package/dist/ir/type-system/internal/type-converter/utility-types-cases/helpers.js +127 -0
  802. package/dist/ir/type-system/internal/type-converter/utility-types-cases/helpers.js.map +1 -0
  803. package/dist/ir/type-system/internal/type-converter/utility-types-cases/record-expansion.test.d.ts +2 -0
  804. package/dist/ir/type-system/internal/type-converter/utility-types-cases/record-expansion.test.d.ts.map +1 -0
  805. package/dist/ir/type-system/internal/type-converter/utility-types-cases/record-expansion.test.js +145 -0
  806. package/dist/ir/type-system/internal/type-converter/utility-types-cases/record-expansion.test.js.map +1 -0
  807. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts +6 -76
  808. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts.map +1 -1
  809. package/dist/ir/type-system/internal/type-converter/utility-types.js +6 -1031
  810. package/dist/ir/type-system/internal/type-converter/utility-types.js.map +1 -1
  811. package/dist/ir/type-system/internal/type-converter/utility-types.test.d.ts +6 -9
  812. package/dist/ir/type-system/internal/type-converter/utility-types.test.d.ts.map +1 -1
  813. package/dist/ir/type-system/internal/type-converter/utility-types.test.js +6 -1416
  814. package/dist/ir/type-system/internal/type-converter/utility-types.test.js.map +1 -1
  815. package/dist/ir/type-system/internal/type-converter/value-inference.d.ts +13 -0
  816. package/dist/ir/type-system/internal/type-converter/value-inference.d.ts.map +1 -0
  817. package/dist/ir/type-system/internal/type-converter/value-inference.js +311 -0
  818. package/dist/ir/type-system/internal/type-converter/value-inference.js.map +1 -0
  819. package/dist/ir/type-system/internal/type-registry.d.ts +12 -12
  820. package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -1
  821. package/dist/ir/type-system/internal/type-registry.js +4 -529
  822. package/dist/ir/type-system/internal/type-registry.js.map +1 -1
  823. package/dist/ir/type-system/internal/universe/catalog-types.d.ts +260 -0
  824. package/dist/ir/type-system/internal/universe/catalog-types.d.ts.map +1 -0
  825. package/dist/ir/type-system/internal/universe/catalog-types.js +12 -0
  826. package/dist/ir/type-system/internal/universe/catalog-types.js.map +1 -0
  827. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts +7 -5
  828. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -1
  829. package/dist/ir/type-system/internal/universe/clr-catalog.js +160 -90
  830. package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
  831. package/dist/ir/type-system/internal/universe/clr-catalog.test.js +166 -72
  832. package/dist/ir/type-system/internal/universe/clr-catalog.test.js.map +1 -1
  833. package/dist/ir/type-system/internal/universe/clr-entry-converter.d.ts +7 -47
  834. package/dist/ir/type-system/internal/universe/clr-entry-converter.d.ts.map +1 -1
  835. package/dist/ir/type-system/internal/universe/clr-entry-converter.js +6 -695
  836. package/dist/ir/type-system/internal/universe/clr-entry-converter.js.map +1 -1
  837. package/dist/ir/type-system/internal/universe/clr-heritage-enrichment.d.ts +10 -0
  838. package/dist/ir/type-system/internal/universe/clr-heritage-enrichment.d.ts.map +1 -0
  839. package/dist/ir/type-system/internal/universe/clr-heritage-enrichment.js +168 -0
  840. package/dist/ir/type-system/internal/universe/clr-heritage-enrichment.js.map +1 -0
  841. package/dist/ir/type-system/internal/universe/clr-heritage-extraction.d.ts +28 -0
  842. package/dist/ir/type-system/internal/universe/clr-heritage-extraction.d.ts.map +1 -0
  843. package/dist/ir/type-system/internal/universe/clr-heritage-extraction.js +307 -0
  844. package/dist/ir/type-system/internal/universe/clr-heritage-extraction.js.map +1 -0
  845. package/dist/ir/type-system/internal/universe/clr-heritage-extractor.d.ts +11 -0
  846. package/dist/ir/type-system/internal/universe/clr-heritage-extractor.d.ts.map +1 -0
  847. package/dist/ir/type-system/internal/universe/clr-heritage-extractor.js +10 -0
  848. package/dist/ir/type-system/internal/universe/clr-heritage-extractor.js.map +1 -0
  849. package/dist/ir/type-system/internal/universe/clr-raw-converter.d.ts +41 -0
  850. package/dist/ir/type-system/internal/universe/clr-raw-converter.d.ts.map +1 -0
  851. package/dist/ir/type-system/internal/universe/clr-raw-converter.js +364 -0
  852. package/dist/ir/type-system/internal/universe/clr-raw-converter.js.map +1 -0
  853. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts +3 -41
  854. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -1
  855. package/dist/ir/type-system/internal/universe/clr-type-parser.js +3 -470
  856. package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -1
  857. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js +13 -2
  858. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js.map +1 -1
  859. package/dist/ir/type-system/internal/universe/clr-type-string-parsing.d.ts +28 -0
  860. package/dist/ir/type-system/internal/universe/clr-type-string-parsing.d.ts.map +1 -0
  861. package/dist/ir/type-system/internal/universe/clr-type-string-parsing.js +208 -0
  862. package/dist/ir/type-system/internal/universe/clr-type-string-parsing.js.map +1 -0
  863. package/dist/ir/type-system/internal/universe/dts-type-node-conversion.d.ts +28 -0
  864. package/dist/ir/type-system/internal/universe/dts-type-node-conversion.d.ts.map +1 -0
  865. package/dist/ir/type-system/internal/universe/dts-type-node-conversion.js +279 -0
  866. package/dist/ir/type-system/internal/universe/dts-type-node-conversion.js.map +1 -0
  867. package/dist/ir/type-system/internal/universe/index.d.ts +1 -1
  868. package/dist/ir/type-system/internal/universe/index.d.ts.map +1 -1
  869. package/dist/ir/type-system/internal/universe/index.js.map +1 -1
  870. package/dist/ir/type-system/internal/universe/raw-bindings-types.d.ts +167 -0
  871. package/dist/ir/type-system/internal/universe/raw-bindings-types.d.ts.map +1 -0
  872. package/dist/ir/type-system/internal/universe/raw-bindings-types.js +79 -0
  873. package/dist/ir/type-system/internal/universe/raw-bindings-types.js.map +1 -0
  874. package/dist/ir/type-system/internal/universe/source-catalog.d.ts +1 -1
  875. package/dist/ir/type-system/internal/universe/source-catalog.d.ts.map +1 -1
  876. package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -1
  877. package/dist/ir/type-system/internal/universe/types.d.ts +4 -388
  878. package/dist/ir/type-system/internal/universe/types.d.ts.map +1 -1
  879. package/dist/ir/type-system/internal/universe/types.js +2 -60
  880. package/dist/ir/type-system/internal/universe/types.js.map +1 -1
  881. package/dist/ir/type-system/internal/universe/unified-universe.d.ts +2 -2
  882. package/dist/ir/type-system/internal/universe/unified-universe.d.ts.map +1 -1
  883. package/dist/ir/type-system/internal/universe/unified-universe.js +467 -19
  884. package/dist/ir/type-system/internal/universe/unified-universe.js.map +1 -1
  885. package/dist/ir/type-system/internal/universe/unified-universe.test.js +7 -2
  886. package/dist/ir/type-system/internal/universe/unified-universe.test.js.map +1 -1
  887. package/dist/ir/type-system/iterable-type-shapes.d.ts +8 -0
  888. package/dist/ir/type-system/iterable-type-shapes.d.ts.map +1 -0
  889. package/dist/ir/type-system/iterable-type-shapes.js +229 -0
  890. package/dist/ir/type-system/iterable-type-shapes.js.map +1 -0
  891. package/dist/ir/type-system/type-alias-expansion.d.ts +4 -0
  892. package/dist/ir/type-system/type-alias-expansion.d.ts.map +1 -0
  893. package/dist/ir/type-system/type-alias-expansion.js +27 -0
  894. package/dist/ir/type-system/type-alias-expansion.js.map +1 -0
  895. package/dist/ir/type-system/type-system-call-resolution.d.ts +16 -68
  896. package/dist/ir/type-system/type-system-call-resolution.d.ts.map +1 -1
  897. package/dist/ir/type-system/type-system-call-resolution.js +17 -1407
  898. package/dist/ir/type-system/type-system-call-resolution.js.map +1 -1
  899. package/dist/ir/type-system/type-system-factory.d.ts +24 -0
  900. package/dist/ir/type-system/type-system-factory.d.ts.map +1 -0
  901. package/dist/ir/type-system/type-system-factory.js +145 -0
  902. package/dist/ir/type-system/type-system-factory.js.map +1 -0
  903. package/dist/ir/type-system/type-system-inference.d.ts +13 -92
  904. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -1
  905. package/dist/ir/type-system/type-system-inference.js +18 -1315
  906. package/dist/ir/type-system/type-system-inference.js.map +1 -1
  907. package/dist/ir/type-system/type-system-relations.d.ts +1 -0
  908. package/dist/ir/type-system/type-system-relations.d.ts.map +1 -1
  909. package/dist/ir/type-system/type-system-relations.js +332 -19
  910. package/dist/ir/type-system/type-system-relations.js.map +1 -1
  911. package/dist/ir/type-system/type-system-state-call-types.d.ts +62 -0
  912. package/dist/ir/type-system/type-system-state-call-types.d.ts.map +1 -0
  913. package/dist/ir/type-system/type-system-state-call-types.js +2 -0
  914. package/dist/ir/type-system/type-system-state-call-types.js.map +1 -0
  915. package/dist/ir/type-system/type-system-state-handle-types.d.ts +134 -0
  916. package/dist/ir/type-system/type-system-state-handle-types.d.ts.map +1 -0
  917. package/dist/ir/type-system/type-system-state-handle-types.js +2 -0
  918. package/dist/ir/type-system/type-system-state-handle-types.js.map +1 -0
  919. package/dist/ir/type-system/type-system-state-helpers.d.ts +56 -0
  920. package/dist/ir/type-system/type-system-state-helpers.d.ts.map +1 -0
  921. package/dist/ir/type-system/type-system-state-helpers.js +291 -0
  922. package/dist/ir/type-system/type-system-state-helpers.js.map +1 -0
  923. package/dist/ir/type-system/type-system-state-model.d.ts +33 -0
  924. package/dist/ir/type-system/type-system-state-model.d.ts.map +1 -0
  925. package/dist/ir/type-system/type-system-state-model.js +3 -0
  926. package/dist/ir/type-system/type-system-state-model.js.map +1 -0
  927. package/dist/ir/type-system/type-system-state-registry-types.d.ts +11 -0
  928. package/dist/ir/type-system/type-system-state-registry-types.d.ts.map +1 -0
  929. package/dist/ir/type-system/type-system-state-registry-types.js +17 -0
  930. package/dist/ir/type-system/type-system-state-registry-types.js.map +1 -0
  931. package/dist/ir/type-system/type-system-state-types.d.ts +4 -0
  932. package/dist/ir/type-system/type-system-state-types.d.ts.map +1 -0
  933. package/dist/ir/type-system/type-system-state-types.js +4 -0
  934. package/dist/ir/type-system/type-system-state-types.js.map +1 -0
  935. package/dist/ir/type-system/type-system-state.d.ts +4 -454
  936. package/dist/ir/type-system/type-system-state.d.ts.map +1 -1
  937. package/dist/ir/type-system/type-system-state.js +4 -228
  938. package/dist/ir/type-system/type-system-state.js.map +1 -1
  939. package/dist/ir/type-system/type-system-types-api.d.ts +341 -0
  940. package/dist/ir/type-system/type-system-types-api.d.ts.map +1 -0
  941. package/dist/ir/type-system/type-system-types-api.js +11 -0
  942. package/dist/ir/type-system/type-system-types-api.js.map +1 -0
  943. package/dist/ir/type-system/type-system-utilities.d.ts +4 -48
  944. package/dist/ir/type-system/type-system-utilities.d.ts.map +1 -1
  945. package/dist/ir/type-system/type-system-utilities.js +4 -349
  946. package/dist/ir/type-system/type-system-utilities.js.map +1 -1
  947. package/dist/ir/type-system/type-system.d.ts +8 -313
  948. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  949. package/dist/ir/type-system/type-system.js +7 -131
  950. package/dist/ir/type-system/type-system.js.map +1 -1
  951. package/dist/ir/type-system/types.d.ts +2 -0
  952. package/dist/ir/type-system/types.d.ts.map +1 -1
  953. package/dist/ir/type-system/types.js +5 -0
  954. package/dist/ir/type-system/types.js.map +1 -1
  955. package/dist/ir/type-system/utility-type-filter-helpers.d.ts +40 -0
  956. package/dist/ir/type-system/utility-type-filter-helpers.d.ts.map +1 -0
  957. package/dist/ir/type-system/utility-type-filter-helpers.js +142 -0
  958. package/dist/ir/type-system/utility-type-filter-helpers.js.map +1 -0
  959. package/dist/ir/type-system/utility-type-mapped-helpers.d.ts +34 -0
  960. package/dist/ir/type-system/utility-type-mapped-helpers.d.ts.map +1 -0
  961. package/dist/ir/type-system/utility-type-mapped-helpers.js +243 -0
  962. package/dist/ir/type-system/utility-type-mapped-helpers.js.map +1 -0
  963. package/dist/ir/types/expressions-core.d.ts +331 -0
  964. package/dist/ir/types/expressions-core.d.ts.map +1 -0
  965. package/dist/ir/types/expressions-core.js +5 -0
  966. package/dist/ir/types/expressions-core.js.map +1 -0
  967. package/dist/ir/types/expressions-extended.d.ts +232 -0
  968. package/dist/ir/types/expressions-extended.d.ts.map +1 -0
  969. package/dist/ir/types/expressions-extended.js +6 -0
  970. package/dist/ir/types/expressions-extended.js.map +1 -0
  971. package/dist/ir/types/expressions.d.ts +6 -480
  972. package/dist/ir/types/expressions.d.ts.map +1 -1
  973. package/dist/ir/types/expressions.js +5 -1
  974. package/dist/ir/types/expressions.js.map +1 -1
  975. package/dist/ir/types/helpers.d.ts +4 -0
  976. package/dist/ir/types/helpers.d.ts.map +1 -1
  977. package/dist/ir/types/index.d.ts +4 -2
  978. package/dist/ir/types/index.d.ts.map +1 -1
  979. package/dist/ir/types/index.js +2 -1
  980. package/dist/ir/types/index.js.map +1 -1
  981. package/dist/ir/types/ir-substitution-builders.d.ts +91 -0
  982. package/dist/ir/types/ir-substitution-builders.d.ts.map +1 -0
  983. package/dist/ir/types/ir-substitution-builders.js +340 -0
  984. package/dist/ir/types/ir-substitution-builders.js.map +1 -0
  985. package/dist/ir/types/ir-substitution-core.d.ts +55 -0
  986. package/dist/ir/types/ir-substitution-core.d.ts.map +1 -0
  987. package/dist/ir/types/ir-substitution-core.js +402 -0
  988. package/dist/ir/types/ir-substitution-core.js.map +1 -0
  989. package/dist/ir/types/ir-substitution.d.ts +13 -142
  990. package/dist/ir/types/ir-substitution.d.ts.map +1 -1
  991. package/dist/ir/types/ir-substitution.js +9 -565
  992. package/dist/ir/types/ir-substitution.js.map +1 -1
  993. package/dist/ir/types/ir-types.d.ts +80 -4
  994. package/dist/ir/types/ir-types.d.ts.map +1 -1
  995. package/dist/ir/types/overload-family.d.ts +36 -0
  996. package/dist/ir/types/overload-family.d.ts.map +1 -0
  997. package/dist/ir/types/overload-family.js +9 -0
  998. package/dist/ir/types/overload-family.js.map +1 -0
  999. package/dist/ir/types/statements.d.ts +8 -1
  1000. package/dist/ir/types/statements.d.ts.map +1 -1
  1001. package/dist/ir/types/type-ops.d.ts +41 -2
  1002. package/dist/ir/types/type-ops.d.ts.map +1 -1
  1003. package/dist/ir/types/type-ops.js +744 -45
  1004. package/dist/ir/types/type-ops.js.map +1 -1
  1005. package/dist/ir/types/type-ops.test.js +443 -1
  1006. package/dist/ir/types/type-ops.test.js.map +1 -1
  1007. package/dist/ir/types.d.ts +2 -2
  1008. package/dist/ir/types.d.ts.map +1 -1
  1009. package/dist/ir/types.js +1 -1
  1010. package/dist/ir/types.js.map +1 -1
  1011. package/dist/ir/validation/anon-type-declaration-synthesis.d.ts +11 -0
  1012. package/dist/ir/validation/anon-type-declaration-synthesis.d.ts.map +1 -0
  1013. package/dist/ir/validation/anon-type-declaration-synthesis.js +11 -0
  1014. package/dist/ir/validation/anon-type-declaration-synthesis.js.map +1 -0
  1015. package/dist/ir/validation/anon-type-ir-rewriting.d.ts +10 -0
  1016. package/dist/ir/validation/anon-type-ir-rewriting.d.ts.map +1 -0
  1017. package/dist/ir/validation/anon-type-ir-rewriting.js +3 -0
  1018. package/dist/ir/validation/anon-type-ir-rewriting.js.map +1 -0
  1019. package/dist/ir/validation/anon-type-lower-expressions.d.ts +10 -0
  1020. package/dist/ir/validation/anon-type-lower-expressions.d.ts.map +1 -0
  1021. package/dist/ir/validation/anon-type-lower-expressions.js +364 -0
  1022. package/dist/ir/validation/anon-type-lower-expressions.js.map +1 -0
  1023. package/dist/ir/validation/anon-type-lower-statements.d.ts +13 -0
  1024. package/dist/ir/validation/anon-type-lower-statements.d.ts.map +1 -0
  1025. package/dist/ir/validation/anon-type-lower-statements.js +270 -0
  1026. package/dist/ir/validation/anon-type-lower-statements.js.map +1 -0
  1027. package/dist/ir/validation/anon-type-lower-types.d.ts +60 -0
  1028. package/dist/ir/validation/anon-type-lower-types.d.ts.map +1 -0
  1029. package/dist/ir/validation/anon-type-lower-types.js +287 -0
  1030. package/dist/ir/validation/anon-type-lower-types.js.map +1 -0
  1031. package/dist/ir/validation/anon-type-naming.d.ts +20 -0
  1032. package/dist/ir/validation/anon-type-naming.d.ts.map +1 -0
  1033. package/dist/ir/validation/anon-type-naming.js +153 -0
  1034. package/dist/ir/validation/anon-type-naming.js.map +1 -0
  1035. package/dist/ir/validation/anon-type-shape-analysis.d.ts +13 -0
  1036. package/dist/ir/validation/anon-type-shape-analysis.d.ts.map +1 -0
  1037. package/dist/ir/validation/anon-type-shape-analysis.js +12 -0
  1038. package/dist/ir/validation/anon-type-shape-analysis.js.map +1 -0
  1039. package/dist/ir/validation/anon-type-shape-collectors.d.ts +39 -0
  1040. package/dist/ir/validation/anon-type-shape-collectors.d.ts.map +1 -0
  1041. package/dist/ir/validation/anon-type-shape-collectors.js +369 -0
  1042. package/dist/ir/validation/anon-type-shape-collectors.js.map +1 -0
  1043. package/dist/ir/validation/anon-type-shape-serialization.d.ts +38 -0
  1044. package/dist/ir/validation/anon-type-shape-serialization.d.ts.map +1 -0
  1045. package/dist/ir/validation/anon-type-shape-serialization.js +241 -0
  1046. package/dist/ir/validation/anon-type-shape-serialization.js.map +1 -0
  1047. package/dist/ir/validation/anon-type-template-inference.d.ts +12 -0
  1048. package/dist/ir/validation/anon-type-template-inference.d.ts.map +1 -0
  1049. package/dist/ir/validation/anon-type-template-inference.js +296 -0
  1050. package/dist/ir/validation/anon-type-template-inference.js.map +1 -0
  1051. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts +7 -1
  1052. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  1053. package/dist/ir/validation/anonymous-type-lowering-pass.js +315 -1166
  1054. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  1055. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/basic-lowering.test.d.ts +2 -0
  1056. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/basic-lowering.test.d.ts.map +1 -0
  1057. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/basic-lowering.test.js +332 -0
  1058. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/basic-lowering.test.js.map +1 -0
  1059. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/cross-module-reuse.test.d.ts +2 -0
  1060. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/cross-module-reuse.test.d.ts.map +1 -0
  1061. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/cross-module-reuse.test.js +255 -0
  1062. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/cross-module-reuse.test.js.map +1 -0
  1063. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/structural-references.test.d.ts +2 -0
  1064. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/structural-references.test.d.ts.map +1 -0
  1065. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/structural-references.test.js +715 -0
  1066. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/structural-references.test.js.map +1 -0
  1067. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/test-helpers.d.ts +4 -0
  1068. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/test-helpers.d.ts.map +1 -0
  1069. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/test-helpers.js +85 -0
  1070. package/dist/ir/validation/anonymous-type-lowering-regressions-cases/test-helpers.js.map +1 -0
  1071. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts +3 -1
  1072. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts.map +1 -1
  1073. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js +3 -120
  1074. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js.map +1 -1
  1075. package/dist/ir/validation/arrow-return-expression-walk.d.ts +13 -0
  1076. package/dist/ir/validation/arrow-return-expression-walk.d.ts.map +1 -0
  1077. package/dist/ir/validation/arrow-return-expression-walk.js +224 -0
  1078. package/dist/ir/validation/arrow-return-expression-walk.js.map +1 -0
  1079. package/dist/ir/validation/arrow-return-finalization-pass.d.ts +3 -17
  1080. package/dist/ir/validation/arrow-return-finalization-pass.d.ts.map +1 -1
  1081. package/dist/ir/validation/arrow-return-finalization-pass.js +2 -418
  1082. package/dist/ir/validation/arrow-return-finalization-pass.js.map +1 -1
  1083. package/dist/ir/validation/arrow-return-statement-walk.d.ts +27 -0
  1084. package/dist/ir/validation/arrow-return-statement-walk.d.ts.map +1 -0
  1085. package/dist/ir/validation/arrow-return-statement-walk.js +206 -0
  1086. package/dist/ir/validation/arrow-return-statement-walk.js.map +1 -0
  1087. package/dist/ir/validation/attribute-collection/arg-extractor.d.ts +8 -2
  1088. package/dist/ir/validation/attribute-collection/arg-extractor.d.ts.map +1 -1
  1089. package/dist/ir/validation/attribute-collection/arg-extractor.js.map +1 -1
  1090. package/dist/ir/validation/attribute-collection/marker-chain-parser.d.ts +21 -0
  1091. package/dist/ir/validation/attribute-collection/marker-chain-parser.d.ts.map +1 -0
  1092. package/dist/ir/validation/attribute-collection/marker-chain-parser.js +261 -0
  1093. package/dist/ir/validation/attribute-collection/marker-chain-parser.js.map +1 -0
  1094. package/dist/ir/validation/attribute-collection/marker-collection.d.ts +28 -0
  1095. package/dist/ir/validation/attribute-collection/marker-collection.d.ts.map +1 -0
  1096. package/dist/ir/validation/attribute-collection/marker-collection.js +343 -0
  1097. package/dist/ir/validation/attribute-collection/marker-collection.js.map +1 -0
  1098. package/dist/ir/validation/attribute-collection/marker-detection.d.ts +25 -0
  1099. package/dist/ir/validation/attribute-collection/marker-detection.d.ts.map +1 -0
  1100. package/dist/ir/validation/attribute-collection/marker-detection.js +214 -0
  1101. package/dist/ir/validation/attribute-collection/marker-detection.js.map +1 -0
  1102. package/dist/ir/validation/attribute-collection/marker-parser.d.ts +7 -24
  1103. package/dist/ir/validation/attribute-collection/marker-parser.d.ts.map +1 -1
  1104. package/dist/ir/validation/attribute-collection/marker-parser.js +7 -400
  1105. package/dist/ir/validation/attribute-collection/marker-parser.js.map +1 -1
  1106. package/dist/ir/validation/attribute-collection/module-rebuild.d.ts +28 -0
  1107. package/dist/ir/validation/attribute-collection/module-rebuild.d.ts.map +1 -0
  1108. package/dist/ir/validation/attribute-collection/module-rebuild.js +176 -0
  1109. package/dist/ir/validation/attribute-collection/module-rebuild.js.map +1 -0
  1110. package/dist/ir/validation/attribute-collection/orchestrator.d.ts +3 -19
  1111. package/dist/ir/validation/attribute-collection/orchestrator.d.ts.map +1 -1
  1112. package/dist/ir/validation/attribute-collection/orchestrator.js +2 -323
  1113. package/dist/ir/validation/attribute-collection/orchestrator.js.map +1 -1
  1114. package/dist/ir/validation/attribute-collection-cases/ctor-add.test.d.ts +5 -0
  1115. package/dist/ir/validation/attribute-collection-cases/ctor-add.test.d.ts.map +1 -0
  1116. package/dist/ir/validation/attribute-collection-cases/ctor-add.test.js +62 -0
  1117. package/dist/ir/validation/attribute-collection-cases/ctor-add.test.js.map +1 -0
  1118. package/dist/ir/validation/attribute-collection-cases/error-cases.test.d.ts +5 -0
  1119. package/dist/ir/validation/attribute-collection-cases/error-cases.test.d.ts.map +1 -0
  1120. package/dist/ir/validation/attribute-collection-cases/error-cases.test.js +246 -0
  1121. package/dist/ir/validation/attribute-collection-cases/error-cases.test.js.map +1 -0
  1122. package/dist/ir/validation/attribute-collection-cases/function-and-misc.test.d.ts +6 -0
  1123. package/dist/ir/validation/attribute-collection-cases/function-and-misc.test.d.ts.map +1 -0
  1124. package/dist/ir/validation/attribute-collection-cases/function-and-misc.test.js +77 -0
  1125. package/dist/ir/validation/attribute-collection-cases/function-and-misc.test.js.map +1 -0
  1126. package/dist/ir/validation/attribute-collection-cases/helpers.d.ts +186 -0
  1127. package/dist/ir/validation/attribute-collection-cases/helpers.d.ts.map +1 -0
  1128. package/dist/ir/validation/attribute-collection-cases/helpers.js +239 -0
  1129. package/dist/ir/validation/attribute-collection-cases/helpers.js.map +1 -0
  1130. package/dist/ir/validation/attribute-collection-cases/method-selector.test.d.ts +5 -0
  1131. package/dist/ir/validation/attribute-collection-cases/method-selector.test.d.ts.map +1 -0
  1132. package/dist/ir/validation/attribute-collection-cases/method-selector.test.js +371 -0
  1133. package/dist/ir/validation/attribute-collection-cases/method-selector.test.js.map +1 -0
  1134. package/dist/ir/validation/attribute-collection-cases/prop-selector.test.d.ts +5 -0
  1135. package/dist/ir/validation/attribute-collection-cases/prop-selector.test.d.ts.map +1 -0
  1136. package/dist/ir/validation/attribute-collection-cases/prop-selector.test.js +209 -0
  1137. package/dist/ir/validation/attribute-collection-cases/prop-selector.test.js.map +1 -0
  1138. package/dist/ir/validation/attribute-collection-cases/type-add.test.d.ts +5 -0
  1139. package/dist/ir/validation/attribute-collection-cases/type-add.test.d.ts.map +1 -0
  1140. package/dist/ir/validation/attribute-collection-cases/type-add.test.js +330 -0
  1141. package/dist/ir/validation/attribute-collection-cases/type-add.test.js.map +1 -0
  1142. package/dist/ir/validation/attribute-collection-pass.d.ts +5 -4
  1143. package/dist/ir/validation/attribute-collection-pass.d.ts.map +1 -1
  1144. package/dist/ir/validation/attribute-collection-pass.js +5 -4
  1145. package/dist/ir/validation/attribute-collection-pass.js.map +1 -1
  1146. package/dist/ir/validation/attribute-collection-pass.test.d.ts +8 -1
  1147. package/dist/ir/validation/attribute-collection-pass.test.d.ts.map +1 -1
  1148. package/dist/ir/validation/attribute-collection-pass.test.js +8 -1331
  1149. package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
  1150. package/dist/ir/validation/call-resolution-refresh-pass.d.ts +8 -0
  1151. package/dist/ir/validation/call-resolution-refresh-pass.d.ts.map +1 -0
  1152. package/dist/ir/validation/call-resolution-refresh-pass.js +616 -0
  1153. package/dist/ir/validation/call-resolution-refresh-pass.js.map +1 -0
  1154. package/dist/ir/validation/char-validation-expressions.d.ts +13 -0
  1155. package/dist/ir/validation/char-validation-expressions.d.ts.map +1 -0
  1156. package/dist/ir/validation/char-validation-expressions.js +362 -0
  1157. package/dist/ir/validation/char-validation-expressions.js.map +1 -0
  1158. package/dist/ir/validation/char-validation-pass.d.ts +7 -22
  1159. package/dist/ir/validation/char-validation-pass.d.ts.map +1 -1
  1160. package/dist/ir/validation/char-validation-pass.js +6 -504
  1161. package/dist/ir/validation/char-validation-pass.js.map +1 -1
  1162. package/dist/ir/validation/char-validation-types.d.ts +28 -0
  1163. package/dist/ir/validation/char-validation-types.d.ts.map +1 -0
  1164. package/dist/ir/validation/char-validation-types.js +144 -0
  1165. package/dist/ir/validation/char-validation-types.js.map +1 -0
  1166. package/dist/ir/validation/index.d.ts +3 -0
  1167. package/dist/ir/validation/index.d.ts.map +1 -1
  1168. package/dist/ir/validation/index.js +3 -0
  1169. package/dist/ir/validation/index.js.map +1 -1
  1170. package/dist/ir/validation/known-builtin-reference-types.d.ts +12 -0
  1171. package/dist/ir/validation/known-builtin-reference-types.d.ts.map +1 -0
  1172. package/dist/ir/validation/known-builtin-reference-types.js +29 -0
  1173. package/dist/ir/validation/known-builtin-reference-types.js.map +1 -0
  1174. package/dist/ir/validation/numeric-classification.d.ts +105 -0
  1175. package/dist/ir/validation/numeric-classification.d.ts.map +1 -0
  1176. package/dist/ir/validation/numeric-classification.js +368 -0
  1177. package/dist/ir/validation/numeric-classification.js.map +1 -0
  1178. package/dist/ir/validation/numeric-coercion-pass.d.ts +3 -50
  1179. package/dist/ir/validation/numeric-coercion-pass.d.ts.map +1 -1
  1180. package/dist/ir/validation/numeric-coercion-pass.js +3 -777
  1181. package/dist/ir/validation/numeric-coercion-pass.js.map +1 -1
  1182. package/dist/ir/validation/numeric-expression-validation.d.ts +26 -0
  1183. package/dist/ir/validation/numeric-expression-validation.d.ts.map +1 -0
  1184. package/dist/ir/validation/numeric-expression-validation.js +253 -0
  1185. package/dist/ir/validation/numeric-expression-validation.js.map +1 -0
  1186. package/dist/ir/validation/numeric-invariants-cases/array-index-proofs.test.d.ts +11 -0
  1187. package/dist/ir/validation/numeric-invariants-cases/array-index-proofs.test.d.ts.map +1 -0
  1188. package/dist/ir/validation/numeric-invariants-cases/array-index-proofs.test.js +185 -0
  1189. package/dist/ir/validation/numeric-invariants-cases/array-index-proofs.test.js.map +1 -0
  1190. package/dist/ir/validation/numeric-invariants-cases/arrow-function-proofs.test.d.ts +16 -0
  1191. package/dist/ir/validation/numeric-invariants-cases/arrow-function-proofs.test.d.ts.map +1 -0
  1192. package/dist/ir/validation/numeric-invariants-cases/arrow-function-proofs.test.js +364 -0
  1193. package/dist/ir/validation/numeric-invariants-cases/arrow-function-proofs.test.js.map +1 -0
  1194. package/dist/ir/validation/numeric-invariants-cases/binary-promotion.test.d.ts +9 -0
  1195. package/dist/ir/validation/numeric-invariants-cases/binary-promotion.test.d.ts.map +1 -0
  1196. package/dist/ir/validation/numeric-invariants-cases/binary-promotion.test.js +119 -0
  1197. package/dist/ir/validation/numeric-invariants-cases/binary-promotion.test.js.map +1 -0
  1198. package/dist/ir/validation/numeric-invariants-cases/helpers.d.ts +60 -0
  1199. package/dist/ir/validation/numeric-invariants-cases/helpers.d.ts.map +1 -0
  1200. package/dist/ir/validation/numeric-invariants-cases/helpers.js +163 -0
  1201. package/dist/ir/validation/numeric-invariants-cases/helpers.js.map +1 -0
  1202. package/dist/ir/validation/numeric-invariants-cases/literal-range-validation.test.d.ts +8 -0
  1203. package/dist/ir/validation/numeric-invariants-cases/literal-range-validation.test.d.ts.map +1 -0
  1204. package/dist/ir/validation/numeric-invariants-cases/literal-range-validation.test.js +110 -0
  1205. package/dist/ir/validation/numeric-invariants-cases/literal-range-validation.test.js.map +1 -0
  1206. package/dist/ir/validation/numeric-invariants-cases/narrowing-intent.test.d.ts +12 -0
  1207. package/dist/ir/validation/numeric-invariants-cases/narrowing-intent.test.d.ts.map +1 -0
  1208. package/dist/ir/validation/numeric-invariants-cases/narrowing-intent.test.js +188 -0
  1209. package/dist/ir/validation/numeric-invariants-cases/narrowing-intent.test.js.map +1 -0
  1210. package/dist/ir/validation/numeric-invariants.test.d.ts +5 -14
  1211. package/dist/ir/validation/numeric-invariants.test.d.ts.map +1 -1
  1212. package/dist/ir/validation/numeric-invariants.test.js +5 -932
  1213. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  1214. package/dist/ir/validation/numeric-proof-analysis.d.ts +9 -0
  1215. package/dist/ir/validation/numeric-proof-analysis.d.ts.map +1 -0
  1216. package/dist/ir/validation/numeric-proof-analysis.js +8 -0
  1217. package/dist/ir/validation/numeric-proof-analysis.js.map +1 -0
  1218. package/dist/ir/validation/numeric-proof-expression-walk.d.ts +18 -0
  1219. package/dist/ir/validation/numeric-proof-expression-walk.d.ts.map +1 -0
  1220. package/dist/ir/validation/numeric-proof-expression-walk.js +331 -0
  1221. package/dist/ir/validation/numeric-proof-expression-walk.js.map +1 -0
  1222. package/dist/ir/validation/numeric-proof-guard-facts.d.ts +29 -0
  1223. package/dist/ir/validation/numeric-proof-guard-facts.d.ts.map +1 -0
  1224. package/dist/ir/validation/numeric-proof-guard-facts.js +213 -0
  1225. package/dist/ir/validation/numeric-proof-guard-facts.js.map +1 -0
  1226. package/dist/ir/validation/numeric-proof-inference.d.ts +33 -0
  1227. package/dist/ir/validation/numeric-proof-inference.d.ts.map +1 -0
  1228. package/dist/ir/validation/numeric-proof-inference.js +222 -0
  1229. package/dist/ir/validation/numeric-proof-inference.js.map +1 -0
  1230. package/dist/ir/validation/numeric-proof-pass.d.ts +5 -25
  1231. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  1232. package/dist/ir/validation/numeric-proof-pass.js +5 -1165
  1233. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  1234. package/dist/ir/validation/numeric-proof-proving.d.ts +21 -0
  1235. package/dist/ir/validation/numeric-proof-proving.d.ts.map +1 -0
  1236. package/dist/ir/validation/numeric-proof-proving.js +261 -0
  1237. package/dist/ir/validation/numeric-proof-proving.js.map +1 -0
  1238. package/dist/ir/validation/numeric-proof-statement-walk.d.ts +37 -0
  1239. package/dist/ir/validation/numeric-proof-statement-walk.d.ts.map +1 -0
  1240. package/dist/ir/validation/numeric-proof-statement-walk.js +295 -0
  1241. package/dist/ir/validation/numeric-proof-statement-walk.js.map +1 -0
  1242. package/dist/ir/validation/numeric-proof-walk.d.ts +10 -0
  1243. package/dist/ir/validation/numeric-proof-walk.d.ts.map +1 -0
  1244. package/dist/ir/validation/numeric-proof-walk.js +9 -0
  1245. package/dist/ir/validation/numeric-proof-walk.js.map +1 -0
  1246. package/dist/ir/validation/numeric-statement-processing.d.ts +39 -0
  1247. package/dist/ir/validation/numeric-statement-processing.d.ts.map +1 -0
  1248. package/dist/ir/validation/numeric-statement-processing.js +229 -0
  1249. package/dist/ir/validation/numeric-statement-processing.js.map +1 -0
  1250. package/dist/ir/validation/numeric-validation.d.ts +13 -0
  1251. package/dist/ir/validation/numeric-validation.d.ts.map +1 -0
  1252. package/dist/ir/validation/numeric-validation.js +12 -0
  1253. package/dist/ir/validation/numeric-validation.js.map +1 -0
  1254. package/dist/ir/validation/overload-collection-cases/basic.test.d.ts +2 -0
  1255. package/dist/ir/validation/overload-collection-cases/basic.test.d.ts.map +1 -0
  1256. package/dist/ir/validation/overload-collection-cases/basic.test.js +103 -0
  1257. package/dist/ir/validation/overload-collection-cases/basic.test.js.map +1 -0
  1258. package/dist/ir/validation/overload-collection-cases/consistency.test.d.ts +2 -0
  1259. package/dist/ir/validation/overload-collection-cases/consistency.test.d.ts.map +1 -0
  1260. package/dist/ir/validation/overload-collection-cases/consistency.test.js +79 -0
  1261. package/dist/ir/validation/overload-collection-cases/consistency.test.js.map +1 -0
  1262. package/dist/ir/validation/overload-collection-cases/error-cases.test.d.ts +2 -0
  1263. package/dist/ir/validation/overload-collection-cases/error-cases.test.d.ts.map +1 -0
  1264. package/dist/ir/validation/overload-collection-cases/error-cases.test.js +24 -0
  1265. package/dist/ir/validation/overload-collection-cases/error-cases.test.js.map +1 -0
  1266. package/dist/ir/validation/overload-collection-cases/helpers.d.ts +107 -0
  1267. package/dist/ir/validation/overload-collection-cases/helpers.d.ts.map +1 -0
  1268. package/dist/ir/validation/overload-collection-cases/helpers.js +142 -0
  1269. package/dist/ir/validation/overload-collection-cases/helpers.js.map +1 -0
  1270. package/dist/ir/validation/overload-collection-pass.d.ts +16 -0
  1271. package/dist/ir/validation/overload-collection-pass.d.ts.map +1 -0
  1272. package/dist/ir/validation/overload-collection-pass.js +930 -0
  1273. package/dist/ir/validation/overload-collection-pass.js.map +1 -0
  1274. package/dist/ir/validation/overload-collection-pass.test.d.ts +4 -0
  1275. package/dist/ir/validation/overload-collection-pass.test.d.ts.map +1 -0
  1276. package/dist/ir/validation/overload-collection-pass.test.js +4 -0
  1277. package/dist/ir/validation/overload-collection-pass.test.js.map +1 -0
  1278. package/dist/ir/validation/overload-family-consistency-pass.d.ts +9 -0
  1279. package/dist/ir/validation/overload-family-consistency-pass.d.ts.map +1 -0
  1280. package/dist/ir/validation/overload-family-consistency-pass.js +161 -0
  1281. package/dist/ir/validation/overload-family-consistency-pass.js.map +1 -0
  1282. package/dist/ir/validation/rest-type-synthesis-helpers.d.ts +52 -0
  1283. package/dist/ir/validation/rest-type-synthesis-helpers.d.ts.map +1 -0
  1284. package/dist/ir/validation/rest-type-synthesis-helpers.js +250 -0
  1285. package/dist/ir/validation/rest-type-synthesis-helpers.js.map +1 -0
  1286. package/dist/ir/validation/rest-type-synthesis-pass.d.ts +6 -20
  1287. package/dist/ir/validation/rest-type-synthesis-pass.d.ts.map +1 -1
  1288. package/dist/ir/validation/rest-type-synthesis-pass.js +5 -461
  1289. package/dist/ir/validation/rest-type-synthesis-pass.js.map +1 -1
  1290. package/dist/ir/validation/rest-type-synthesis-processing.d.ts +14 -0
  1291. package/dist/ir/validation/rest-type-synthesis-processing.d.ts.map +1 -0
  1292. package/dist/ir/validation/rest-type-synthesis-processing.js +220 -0
  1293. package/dist/ir/validation/rest-type-synthesis-processing.js.map +1 -0
  1294. package/dist/ir/validation/soundness-gate-cases/any-type-and-primitives.test.d.ts +12 -0
  1295. package/dist/ir/validation/soundness-gate-cases/any-type-and-primitives.test.d.ts.map +1 -0
  1296. package/dist/ir/validation/soundness-gate-cases/any-type-and-primitives.test.js +99 -0
  1297. package/dist/ir/validation/soundness-gate-cases/any-type-and-primitives.test.js.map +1 -0
  1298. package/dist/ir/validation/soundness-gate-cases/computed-member-access.test.d.ts +10 -0
  1299. package/dist/ir/validation/soundness-gate-cases/computed-member-access.test.d.ts.map +1 -0
  1300. package/dist/ir/validation/soundness-gate-cases/computed-member-access.test.js +139 -0
  1301. package/dist/ir/validation/soundness-gate-cases/computed-member-access.test.js.map +1 -0
  1302. package/dist/ir/validation/soundness-gate-cases/inference-diagnostics.test.d.ts +10 -0
  1303. package/dist/ir/validation/soundness-gate-cases/inference-diagnostics.test.d.ts.map +1 -0
  1304. package/dist/ir/validation/soundness-gate-cases/inference-diagnostics.test.js +123 -0
  1305. package/dist/ir/validation/soundness-gate-cases/inference-diagnostics.test.js.map +1 -0
  1306. package/dist/ir/validation/soundness-gate-cases/reference-type-resolution.test.d.ts +15 -0
  1307. package/dist/ir/validation/soundness-gate-cases/reference-type-resolution.test.d.ts.map +1 -0
  1308. package/dist/ir/validation/soundness-gate-cases/reference-type-resolution.test.js +292 -0
  1309. package/dist/ir/validation/soundness-gate-cases/reference-type-resolution.test.js.map +1 -0
  1310. package/dist/ir/validation/soundness-gate-cases/test-helpers.d.ts +12 -0
  1311. package/dist/ir/validation/soundness-gate-cases/test-helpers.d.ts.map +1 -0
  1312. package/dist/ir/validation/soundness-gate-cases/test-helpers.js +36 -0
  1313. package/dist/ir/validation/soundness-gate-cases/test-helpers.js.map +1 -0
  1314. package/dist/ir/validation/soundness-gate-cases/type-params-and-intrinsics.test.d.ts +11 -0
  1315. package/dist/ir/validation/soundness-gate-cases/type-params-and-intrinsics.test.d.ts.map +1 -0
  1316. package/dist/ir/validation/soundness-gate-cases/type-params-and-intrinsics.test.js +249 -0
  1317. package/dist/ir/validation/soundness-gate-cases/type-params-and-intrinsics.test.js.map +1 -0
  1318. package/dist/ir/validation/soundness-gate-expression-validation.d.ts +3 -0
  1319. package/dist/ir/validation/soundness-gate-expression-validation.d.ts.map +1 -0
  1320. package/dist/ir/validation/soundness-gate-expression-validation.js +205 -0
  1321. package/dist/ir/validation/soundness-gate-expression-validation.js.map +1 -0
  1322. package/dist/ir/validation/soundness-gate-shared.d.ts +26 -0
  1323. package/dist/ir/validation/soundness-gate-shared.d.ts.map +1 -0
  1324. package/dist/ir/validation/soundness-gate-shared.js +46 -0
  1325. package/dist/ir/validation/soundness-gate-shared.js.map +1 -0
  1326. package/dist/ir/validation/soundness-gate-statement-validation.d.ts +5 -0
  1327. package/dist/ir/validation/soundness-gate-statement-validation.d.ts.map +1 -0
  1328. package/dist/ir/validation/soundness-gate-statement-validation.js +199 -0
  1329. package/dist/ir/validation/soundness-gate-statement-validation.js.map +1 -0
  1330. package/dist/ir/validation/soundness-gate-type-validation.d.ts +9 -0
  1331. package/dist/ir/validation/soundness-gate-type-validation.d.ts.map +1 -0
  1332. package/dist/ir/validation/soundness-gate-type-validation.js +149 -0
  1333. package/dist/ir/validation/soundness-gate-type-validation.js.map +1 -0
  1334. package/dist/ir/validation/soundness-gate.d.ts +2 -18
  1335. package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
  1336. package/dist/ir/validation/soundness-gate.js +15 -608
  1337. package/dist/ir/validation/soundness-gate.js.map +1 -1
  1338. package/dist/ir/validation/soundness-gate.test.d.ts +5 -12
  1339. package/dist/ir/validation/soundness-gate.test.d.ts.map +1 -1
  1340. package/dist/ir/validation/soundness-gate.test.js +5 -696
  1341. package/dist/ir/validation/soundness-gate.test.js.map +1 -1
  1342. package/dist/ir/validation/virtual-marking-pass.d.ts +10 -2
  1343. package/dist/ir/validation/virtual-marking-pass.d.ts.map +1 -1
  1344. package/dist/ir/validation/virtual-marking-pass.js +347 -59
  1345. package/dist/ir/validation/virtual-marking-pass.js.map +1 -1
  1346. package/dist/ir/validation/virtual-marking-pass.test.d.ts +2 -0
  1347. package/dist/ir/validation/virtual-marking-pass.test.d.ts.map +1 -0
  1348. package/dist/ir/validation/virtual-marking-pass.test.js +314 -0
  1349. package/dist/ir/validation/virtual-marking-pass.test.js.map +1 -0
  1350. package/dist/ir/validation/yield-expression-lowering.d.ts +13 -0
  1351. package/dist/ir/validation/yield-expression-lowering.d.ts.map +1 -0
  1352. package/dist/ir/validation/yield-expression-lowering.js +13 -0
  1353. package/dist/ir/validation/yield-expression-lowering.js.map +1 -0
  1354. package/dist/ir/validation/yield-lowering-cases/assignment-yield.test.d.ts +14 -0
  1355. package/dist/ir/validation/yield-lowering-cases/assignment-yield.test.d.ts.map +1 -0
  1356. package/dist/ir/validation/yield-lowering-cases/assignment-yield.test.js +383 -0
  1357. package/dist/ir/validation/yield-lowering-cases/assignment-yield.test.js.map +1 -0
  1358. package/dist/ir/validation/yield-lowering-cases/basic-yield.test.d.ts +12 -0
  1359. package/dist/ir/validation/yield-lowering-cases/basic-yield.test.d.ts.map +1 -0
  1360. package/dist/ir/validation/yield-lowering-cases/basic-yield.test.js +120 -0
  1361. package/dist/ir/validation/yield-lowering-cases/basic-yield.test.js.map +1 -0
  1362. package/dist/ir/validation/yield-lowering-cases/control-flow.test.d.ts +13 -0
  1363. package/dist/ir/validation/yield-lowering-cases/control-flow.test.d.ts.map +1 -0
  1364. package/dist/ir/validation/yield-lowering-cases/control-flow.test.js +284 -0
  1365. package/dist/ir/validation/yield-lowering-cases/control-flow.test.js.map +1 -0
  1366. package/dist/ir/validation/yield-lowering-cases/destructuring-and-unsupported.test.d.ts +13 -0
  1367. package/dist/ir/validation/yield-lowering-cases/destructuring-and-unsupported.test.d.ts.map +1 -0
  1368. package/dist/ir/validation/yield-lowering-cases/destructuring-and-unsupported.test.js +334 -0
  1369. package/dist/ir/validation/yield-lowering-cases/destructuring-and-unsupported.test.js.map +1 -0
  1370. package/dist/ir/validation/yield-lowering-cases/for-loop-initializer.test.d.ts +16 -0
  1371. package/dist/ir/validation/yield-lowering-cases/for-loop-initializer.test.d.ts.map +1 -0
  1372. package/dist/ir/validation/yield-lowering-cases/for-loop-initializer.test.js +321 -0
  1373. package/dist/ir/validation/yield-lowering-cases/for-loop-initializer.test.js.map +1 -0
  1374. package/dist/ir/validation/yield-lowering-cases/helpers.d.ts +32 -0
  1375. package/dist/ir/validation/yield-lowering-cases/helpers.d.ts.map +1 -0
  1376. package/dist/ir/validation/yield-lowering-cases/helpers.js +76 -0
  1377. package/dist/ir/validation/yield-lowering-cases/helpers.js.map +1 -0
  1378. package/dist/ir/validation/yield-lowering-cases/nested-yield-in-statements.test.d.ts +13 -0
  1379. package/dist/ir/validation/yield-lowering-cases/nested-yield-in-statements.test.d.ts.map +1 -0
  1380. package/dist/ir/validation/yield-lowering-cases/nested-yield-in-statements.test.js +221 -0
  1381. package/dist/ir/validation/yield-lowering-cases/nested-yield-in-statements.test.js.map +1 -0
  1382. package/dist/ir/validation/yield-lowering-cases/non-generator-and-modules.test.d.ts +11 -0
  1383. package/dist/ir/validation/yield-lowering-cases/non-generator-and-modules.test.d.ts.map +1 -0
  1384. package/dist/ir/validation/yield-lowering-cases/non-generator-and-modules.test.js +136 -0
  1385. package/dist/ir/validation/yield-lowering-cases/non-generator-and-modules.test.js.map +1 -0
  1386. package/dist/ir/validation/yield-lowering-cases/pipeline-contract-and-return.test.d.ts +14 -0
  1387. package/dist/ir/validation/yield-lowering-cases/pipeline-contract-and-return.test.d.ts.map +1 -0
  1388. package/dist/ir/validation/yield-lowering-cases/pipeline-contract-and-return.test.js +219 -0
  1389. package/dist/ir/validation/yield-lowering-cases/pipeline-contract-and-return.test.js.map +1 -0
  1390. package/dist/ir/validation/yield-lowering-helpers.d.ts +63 -0
  1391. package/dist/ir/validation/yield-lowering-helpers.d.ts.map +1 -0
  1392. package/dist/ir/validation/yield-lowering-helpers.js +240 -0
  1393. package/dist/ir/validation/yield-lowering-helpers.js.map +1 -0
  1394. package/dist/ir/validation/yield-lowering-pass.d.ts +7 -1
  1395. package/dist/ir/validation/yield-lowering-pass.d.ts.map +1 -1
  1396. package/dist/ir/validation/yield-lowering-pass.js +8 -1418
  1397. package/dist/ir/validation/yield-lowering-pass.js.map +1 -1
  1398. package/dist/ir/validation/yield-lowering-pass.test.d.ts +8 -11
  1399. package/dist/ir/validation/yield-lowering-pass.test.d.ts.map +1 -1
  1400. package/dist/ir/validation/yield-lowering-pass.test.js +8 -1975
  1401. package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -1
  1402. package/dist/ir/validation/yield-main-expression-lowering.d.ts +20 -0
  1403. package/dist/ir/validation/yield-main-expression-lowering.d.ts.map +1 -0
  1404. package/dist/ir/validation/yield-main-expression-lowering.js +381 -0
  1405. package/dist/ir/validation/yield-main-expression-lowering.js.map +1 -0
  1406. package/dist/ir/validation/yield-member-access-lowering.d.ts +21 -0
  1407. package/dist/ir/validation/yield-member-access-lowering.d.ts.map +1 -0
  1408. package/dist/ir/validation/yield-member-access-lowering.js +58 -0
  1409. package/dist/ir/validation/yield-member-access-lowering.js.map +1 -0
  1410. package/dist/ir/validation/yield-module-processing.d.ts +25 -0
  1411. package/dist/ir/validation/yield-module-processing.d.ts.map +1 -0
  1412. package/dist/ir/validation/yield-module-processing.js +180 -0
  1413. package/dist/ir/validation/yield-module-processing.js.map +1 -0
  1414. package/dist/ir/validation/yield-statement-loops.d.ts +51 -0
  1415. package/dist/ir/validation/yield-statement-loops.d.ts.map +1 -0
  1416. package/dist/ir/validation/yield-statement-loops.js +344 -0
  1417. package/dist/ir/validation/yield-statement-loops.js.map +1 -0
  1418. package/dist/ir/validation/yield-statement-lowering.d.ts +18 -0
  1419. package/dist/ir/validation/yield-statement-lowering.d.ts.map +1 -0
  1420. package/dist/ir/validation/yield-statement-lowering.js +48 -0
  1421. package/dist/ir/validation/yield-statement-lowering.js.map +1 -0
  1422. package/dist/ir/validation/yield-statement-simple.d.ts +33 -0
  1423. package/dist/ir/validation/yield-statement-simple.d.ts.map +1 -0
  1424. package/dist/ir/validation/yield-statement-simple.js +268 -0
  1425. package/dist/ir/validation/yield-statement-simple.js.map +1 -0
  1426. package/dist/program/binding-loader.d.ts.map +1 -1
  1427. package/dist/program/binding-loader.js +1099 -6
  1428. package/dist/program/binding-loader.js.map +1 -1
  1429. package/dist/program/binding-payload-invariants.test.d.ts +2 -0
  1430. package/dist/program/binding-payload-invariants.test.d.ts.map +1 -0
  1431. package/dist/program/binding-payload-invariants.test.js +55 -0
  1432. package/dist/program/binding-payload-invariants.test.js.map +1 -0
  1433. package/dist/program/binding-registry-loading.d.ts +51 -0
  1434. package/dist/program/binding-registry-loading.d.ts.map +1 -0
  1435. package/dist/program/binding-registry-loading.js +816 -0
  1436. package/dist/program/binding-registry-loading.js.map +1 -0
  1437. package/dist/program/binding-registry-resolution-extension.d.ts +26 -0
  1438. package/dist/program/binding-registry-resolution-extension.d.ts.map +1 -0
  1439. package/dist/program/binding-registry-resolution-extension.js +161 -0
  1440. package/dist/program/binding-registry-resolution-extension.js.map +1 -0
  1441. package/dist/program/binding-registry-resolution-member.d.ts +46 -0
  1442. package/dist/program/binding-registry-resolution-member.d.ts.map +1 -0
  1443. package/dist/program/binding-registry-resolution-member.js +252 -0
  1444. package/dist/program/binding-registry-resolution-member.js.map +1 -0
  1445. package/dist/program/binding-registry-resolution.d.ts +13 -0
  1446. package/dist/program/binding-registry-resolution.d.ts.map +1 -0
  1447. package/dist/program/binding-registry-resolution.js +12 -0
  1448. package/dist/program/binding-registry-resolution.js.map +1 -0
  1449. package/dist/program/binding-registry.d.ts +34 -22
  1450. package/dist/program/binding-registry.d.ts.map +1 -1
  1451. package/dist/program/binding-registry.js +111 -562
  1452. package/dist/program/binding-registry.js.map +1 -1
  1453. package/dist/program/binding-types.d.ts +34 -3
  1454. package/dist/program/binding-types.d.ts.map +1 -1
  1455. package/dist/program/binding-types.js +72 -2
  1456. package/dist/program/binding-types.js.map +1 -1
  1457. package/dist/program/bindings-cases/dotnet-payload-boundaries.test.d.ts +2 -0
  1458. package/dist/program/bindings-cases/dotnet-payload-boundaries.test.d.ts.map +1 -0
  1459. package/dist/program/bindings-cases/dotnet-payload-boundaries.test.js +115 -0
  1460. package/dist/program/bindings-cases/dotnet-payload-boundaries.test.js.map +1 -0
  1461. package/dist/program/bindings-cases/hierarchical-and-type-semantics.test.d.ts +6 -0
  1462. package/dist/program/bindings-cases/hierarchical-and-type-semantics.test.d.ts.map +1 -0
  1463. package/dist/program/bindings-cases/hierarchical-and-type-semantics.test.js +573 -0
  1464. package/dist/program/bindings-cases/hierarchical-and-type-semantics.test.js.map +1 -0
  1465. package/dist/program/bindings-cases/load-bindings.test.d.ts +7 -0
  1466. package/dist/program/bindings-cases/load-bindings.test.d.ts.map +1 -0
  1467. package/dist/program/bindings-cases/load-bindings.test.js +545 -0
  1468. package/dist/program/bindings-cases/load-bindings.test.js.map +1 -0
  1469. package/dist/program/bindings-cases/registry-basics.test.d.ts +6 -0
  1470. package/dist/program/bindings-cases/registry-basics.test.d.ts.map +1 -0
  1471. package/dist/program/bindings-cases/registry-basics.test.js +201 -0
  1472. package/dist/program/bindings-cases/registry-basics.test.js.map +1 -0
  1473. package/dist/program/bindings-cases/registry-member-resolution.test.d.ts +8 -0
  1474. package/dist/program/bindings-cases/registry-member-resolution.test.d.ts.map +1 -0
  1475. package/dist/program/bindings-cases/registry-member-resolution.test.js +301 -0
  1476. package/dist/program/bindings-cases/registry-member-resolution.test.js.map +1 -0
  1477. package/dist/program/bindings.d.ts +2 -1
  1478. package/dist/program/bindings.d.ts.map +1 -1
  1479. package/dist/program/bindings.js +1 -0
  1480. package/dist/program/bindings.js.map +1 -1
  1481. package/dist/program/bindings.test.d.ts +12 -2
  1482. package/dist/program/bindings.test.d.ts.map +1 -1
  1483. package/dist/program/bindings.test.js +12 -988
  1484. package/dist/program/bindings.test.js.map +1 -1
  1485. package/dist/program/core-declarations.d.ts +16 -0
  1486. package/dist/program/core-declarations.d.ts.map +1 -0
  1487. package/dist/program/core-declarations.js +126 -0
  1488. package/dist/program/core-declarations.js.map +1 -0
  1489. package/dist/program/creation-cases/authoritative-type-roots.test.d.ts +6 -0
  1490. package/dist/program/creation-cases/authoritative-type-roots.test.d.ts.map +1 -0
  1491. package/dist/program/creation-cases/authoritative-type-roots.test.js +136 -0
  1492. package/dist/program/creation-cases/authoritative-type-roots.test.js.map +1 -0
  1493. package/dist/program/creation-cases/compiler-options.test.d.ts +5 -0
  1494. package/dist/program/creation-cases/compiler-options.test.d.ts.map +1 -0
  1495. package/dist/program/creation-cases/compiler-options.test.js +77 -0
  1496. package/dist/program/creation-cases/compiler-options.test.js.map +1 -0
  1497. package/dist/program/creation-cases/core-type-checking.test.d.ts +6 -0
  1498. package/dist/program/creation-cases/core-type-checking.test.d.ts.map +1 -0
  1499. package/dist/program/creation-cases/core-type-checking.test.js +66 -0
  1500. package/dist/program/creation-cases/core-type-checking.test.js.map +1 -0
  1501. package/dist/program/creation-cases/js-surface-globals.test.d.ts +6 -0
  1502. package/dist/program/creation-cases/js-surface-globals.test.d.ts.map +1 -0
  1503. package/dist/program/creation-cases/js-surface-globals.test.js +236 -0
  1504. package/dist/program/creation-cases/js-surface-globals.test.js.map +1 -0
  1505. package/dist/program/creation-cases/module-bindings.test.d.ts +2 -0
  1506. package/dist/program/creation-cases/module-bindings.test.d.ts.map +1 -0
  1507. package/dist/program/creation-cases/module-bindings.test.js +253 -0
  1508. package/dist/program/creation-cases/module-bindings.test.js.map +1 -0
  1509. package/dist/program/creation-cases/package-resolution.test.d.ts +6 -0
  1510. package/dist/program/creation-cases/package-resolution.test.d.ts.map +1 -0
  1511. package/dist/program/creation-cases/package-resolution.test.js +116 -0
  1512. package/dist/program/creation-cases/package-resolution.test.js.map +1 -0
  1513. package/dist/program/creation-cases/surface-isolation.test.d.ts +6 -0
  1514. package/dist/program/creation-cases/surface-isolation.test.d.ts.map +1 -0
  1515. package/dist/program/creation-cases/surface-isolation.test.js +196 -0
  1516. package/dist/program/creation-cases/surface-isolation.test.js.map +1 -0
  1517. package/dist/program/creation-cases/test-package-helpers.d.ts +6 -0
  1518. package/dist/program/creation-cases/test-package-helpers.d.ts.map +1 -0
  1519. package/dist/program/creation-cases/test-package-helpers.js +26 -0
  1520. package/dist/program/creation-cases/test-package-helpers.js.map +1 -0
  1521. package/dist/program/creation.d.ts +3 -14
  1522. package/dist/program/creation.d.ts.map +1 -1
  1523. package/dist/program/creation.js +3 -780
  1524. package/dist/program/creation.js.map +1 -1
  1525. package/dist/program/creation.test.d.ts +10 -2
  1526. package/dist/program/creation.test.d.ts.map +1 -1
  1527. package/dist/program/creation.test.js +10 -929
  1528. package/dist/program/creation.test.js.map +1 -1
  1529. package/dist/program/declaration-module-aliases.d.ts +13 -0
  1530. package/dist/program/declaration-module-aliases.d.ts.map +1 -0
  1531. package/dist/program/declaration-module-aliases.js +144 -0
  1532. package/dist/program/declaration-module-aliases.js.map +1 -0
  1533. package/dist/program/dependency-graph.d.ts +3 -1
  1534. package/dist/program/dependency-graph.d.ts.map +1 -1
  1535. package/dist/program/dependency-graph.js +211 -23
  1536. package/dist/program/dependency-graph.js.map +1 -1
  1537. package/dist/program/dependency-graph.test.js +307 -85
  1538. package/dist/program/dependency-graph.test.js.map +1 -1
  1539. package/dist/program/diagnostics.d.ts +1 -1
  1540. package/dist/program/diagnostics.d.ts.map +1 -1
  1541. package/dist/program/diagnostics.js +2 -48
  1542. package/dist/program/diagnostics.js.map +1 -1
  1543. package/dist/program/diagnostics.test.js +9 -24
  1544. package/dist/program/diagnostics.test.js.map +1 -1
  1545. package/dist/program/dotnet-binding-payload.d.ts +12 -0
  1546. package/dist/program/dotnet-binding-payload.d.ts.map +1 -0
  1547. package/dist/program/dotnet-binding-payload.js +71 -0
  1548. package/dist/program/dotnet-binding-payload.js.map +1 -0
  1549. package/dist/program/fixture-fast-coverage.test.d.ts +2 -0
  1550. package/dist/program/fixture-fast-coverage.test.d.ts.map +1 -0
  1551. package/dist/program/fixture-fast-coverage.test.js +225 -0
  1552. package/dist/program/fixture-fast-coverage.test.js.map +1 -0
  1553. package/dist/program/index.d.ts +1 -1
  1554. package/dist/program/index.d.ts.map +1 -1
  1555. package/dist/program/index.js +1 -1
  1556. package/dist/program/index.js.map +1 -1
  1557. package/dist/program/json-deserialize-overload-resolution.test.d.ts +2 -0
  1558. package/dist/program/json-deserialize-overload-resolution.test.d.ts.map +1 -0
  1559. package/dist/program/json-deserialize-overload-resolution.test.js +57 -0
  1560. package/dist/program/json-deserialize-overload-resolution.test.js.map +1 -0
  1561. package/dist/program/metadata.d.ts.map +1 -1
  1562. package/dist/program/metadata.js +24 -8
  1563. package/dist/program/metadata.js.map +1 -1
  1564. package/dist/program/metadata.test.js +30 -82
  1565. package/dist/program/metadata.test.js.map +1 -1
  1566. package/dist/program/module-resolution.d.ts +29 -0
  1567. package/dist/program/module-resolution.d.ts.map +1 -0
  1568. package/dist/program/module-resolution.js +257 -0
  1569. package/dist/program/module-resolution.js.map +1 -0
  1570. package/dist/program/package-roots.d.ts +3 -1
  1571. package/dist/program/package-roots.d.ts.map +1 -1
  1572. package/dist/program/package-roots.js +159 -21
  1573. package/dist/program/package-roots.js.map +1 -1
  1574. package/dist/program/package-roots.test.js +81 -25
  1575. package/dist/program/package-roots.test.js.map +1 -1
  1576. package/dist/program/program-assembly.d.ts +12 -0
  1577. package/dist/program/program-assembly.d.ts.map +1 -0
  1578. package/dist/program/program-assembly.js +409 -0
  1579. package/dist/program/program-assembly.js.map +1 -0
  1580. package/dist/program/program-factory.d.ts +9 -0
  1581. package/dist/program/program-factory.d.ts.map +1 -0
  1582. package/dist/program/program-factory.js +9 -0
  1583. package/dist/program/program-factory.js.map +1 -0
  1584. package/dist/program/program-input-discovery.d.ts +19 -0
  1585. package/dist/program/program-input-discovery.d.ts.map +1 -0
  1586. package/dist/program/program-input-discovery.js +379 -0
  1587. package/dist/program/program-input-discovery.js.map +1 -0
  1588. package/dist/program/program-input-discovery.test.d.ts +2 -0
  1589. package/dist/program/program-input-discovery.test.d.ts.map +1 -0
  1590. package/dist/program/program-input-discovery.test.js +342 -0
  1591. package/dist/program/program-input-discovery.test.js.map +1 -0
  1592. package/dist/program/source-binding-imports.d.ts +7 -0
  1593. package/dist/program/source-binding-imports.d.ts.map +1 -0
  1594. package/dist/program/source-binding-imports.js +80 -0
  1595. package/dist/program/source-binding-imports.js.map +1 -0
  1596. package/dist/program/source-binding-imports.test.d.ts +2 -0
  1597. package/dist/program/source-binding-imports.test.d.ts.map +1 -0
  1598. package/dist/program/source-binding-imports.test.js +58 -0
  1599. package/dist/program/source-binding-imports.test.js.map +1 -0
  1600. package/dist/program/source-file-identity.d.ts +13 -0
  1601. package/dist/program/source-file-identity.d.ts.map +1 -0
  1602. package/dist/program/source-file-identity.js +127 -0
  1603. package/dist/program/source-file-identity.js.map +1 -0
  1604. package/dist/program/source-package-metadata.d.ts +14 -0
  1605. package/dist/program/source-package-metadata.d.ts.map +1 -0
  1606. package/dist/program/source-package-metadata.js +227 -0
  1607. package/dist/program/source-package-metadata.js.map +1 -0
  1608. package/dist/program/tsbindgen-instance-receiver-substitution.test.d.ts +2 -0
  1609. package/dist/program/tsbindgen-instance-receiver-substitution.test.d.ts.map +1 -0
  1610. package/dist/program/tsbindgen-instance-receiver-substitution.test.js +194 -0
  1611. package/dist/program/tsbindgen-instance-receiver-substitution.test.js.map +1 -0
  1612. package/dist/program/types.d.ts +3 -2
  1613. package/dist/program/types.d.ts.map +1 -1
  1614. package/dist/program/xunit-equal-overload-resolution.test.d.ts +2 -0
  1615. package/dist/program/xunit-equal-overload-resolution.test.d.ts.map +1 -0
  1616. package/dist/program/xunit-equal-overload-resolution.test.js +205 -0
  1617. package/dist/program/xunit-equal-overload-resolution.test.js.map +1 -0
  1618. package/dist/program.d.ts +1 -1
  1619. package/dist/program.d.ts.map +1 -1
  1620. package/dist/resolver/clr-bindings-package-resolution.d.ts +28 -0
  1621. package/dist/resolver/clr-bindings-package-resolution.d.ts.map +1 -0
  1622. package/dist/resolver/clr-bindings-package-resolution.js +120 -0
  1623. package/dist/resolver/clr-bindings-package-resolution.js.map +1 -0
  1624. package/dist/resolver/clr-bindings-resolve-logic.d.ts +40 -0
  1625. package/dist/resolver/clr-bindings-resolve-logic.d.ts.map +1 -0
  1626. package/dist/resolver/clr-bindings-resolve-logic.js +192 -0
  1627. package/dist/resolver/clr-bindings-resolve-logic.js.map +1 -0
  1628. package/dist/resolver/clr-bindings-resolver.d.ts +9 -69
  1629. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  1630. package/dist/resolver/clr-bindings-resolver.js +4 -436
  1631. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  1632. package/dist/resolver/import-resolution.d.ts +3 -0
  1633. package/dist/resolver/import-resolution.d.ts.map +1 -1
  1634. package/dist/resolver/import-resolution.js +120 -33
  1635. package/dist/resolver/import-resolution.js.map +1 -1
  1636. package/dist/resolver/source-package-resolution.d.ts +18 -0
  1637. package/dist/resolver/source-package-resolution.d.ts.map +1 -1
  1638. package/dist/resolver/source-package-resolution.js +141 -14
  1639. package/dist/resolver/source-package-resolution.js.map +1 -1
  1640. package/dist/resolver/source-package-resolution.test.js +27 -52
  1641. package/dist/resolver/source-package-resolution.test.js.map +1 -1
  1642. package/dist/resolver-cases/namespace-and-classname.test.d.ts +5 -0
  1643. package/dist/resolver-cases/namespace-and-classname.test.d.ts.map +1 -0
  1644. package/dist/resolver-cases/namespace-and-classname.test.js +32 -0
  1645. package/dist/resolver-cases/namespace-and-classname.test.js.map +1 -0
  1646. package/dist/resolver-cases/resolve-import.test.d.ts +5 -0
  1647. package/dist/resolver-cases/resolve-import.test.d.ts.map +1 -0
  1648. package/dist/resolver-cases/resolve-import.test.js +460 -0
  1649. package/dist/resolver-cases/resolve-import.test.js.map +1 -0
  1650. package/dist/resolver.test.d.ts +2 -4
  1651. package/dist/resolver.test.d.ts.map +1 -1
  1652. package/dist/resolver.test.js +2 -289
  1653. package/dist/resolver.test.js.map +1 -1
  1654. package/dist/surface/profiles.d.ts +1 -1
  1655. package/dist/surface/profiles.d.ts.map +1 -1
  1656. package/dist/surface/profiles.js +146 -53
  1657. package/dist/surface/profiles.js.map +1 -1
  1658. package/dist/surface/profiles.test.js +97 -108
  1659. package/dist/surface/profiles.test.js.map +1 -1
  1660. package/dist/testing/filesystem-fixtures.d.ts +7 -0
  1661. package/dist/testing/filesystem-fixtures.d.ts.map +1 -0
  1662. package/dist/testing/filesystem-fixtures.js +80 -0
  1663. package/dist/testing/filesystem-fixtures.js.map +1 -0
  1664. package/dist/types/diagnostic.d.ts +1 -1
  1665. package/dist/types/diagnostic.d.ts.map +1 -1
  1666. package/dist/types/diagnostic.js.map +1 -1
  1667. package/dist/validation/contextual-type-analysis.d.ts +12 -0
  1668. package/dist/validation/contextual-type-analysis.d.ts.map +1 -0
  1669. package/dist/validation/contextual-type-analysis.js +11 -0
  1670. package/dist/validation/contextual-type-analysis.js.map +1 -0
  1671. package/dist/validation/contextual-type-checks.d.ts +35 -0
  1672. package/dist/validation/contextual-type-checks.d.ts.map +1 -0
  1673. package/dist/validation/contextual-type-checks.js +214 -0
  1674. package/dist/validation/contextual-type-checks.js.map +1 -0
  1675. package/dist/validation/exports.d.ts.map +1 -1
  1676. package/dist/validation/exports.js +14 -15
  1677. package/dist/validation/exports.js.map +1 -1
  1678. package/dist/validation/features-cases/promise-chaining.test.d.ts +2 -0
  1679. package/dist/validation/features-cases/promise-chaining.test.d.ts.map +1 -0
  1680. package/dist/validation/features-cases/promise-chaining.test.js +113 -0
  1681. package/dist/validation/features-cases/promise-chaining.test.js.map +1 -0
  1682. package/dist/validation/features-cases/test-helpers.d.ts +11 -0
  1683. package/dist/validation/features-cases/test-helpers.d.ts.map +1 -0
  1684. package/dist/validation/features-cases/test-helpers.js +125 -0
  1685. package/dist/validation/features-cases/test-helpers.js.map +1 -0
  1686. package/dist/validation/features-cases/tsn2001-unsupported-syntax.test.d.ts +2 -0
  1687. package/dist/validation/features-cases/tsn2001-unsupported-syntax.test.d.ts.map +1 -0
  1688. package/dist/validation/features-cases/tsn2001-unsupported-syntax.test.js +158 -0
  1689. package/dist/validation/features-cases/tsn2001-unsupported-syntax.test.js.map +1 -0
  1690. package/dist/validation/features-cases/tsn5001-function-length.test.d.ts +2 -0
  1691. package/dist/validation/features-cases/tsn5001-function-length.test.d.ts.map +1 -0
  1692. package/dist/validation/features-cases/tsn5001-function-length.test.js +104 -0
  1693. package/dist/validation/features-cases/tsn5001-function-length.test.js.map +1 -0
  1694. package/dist/validation/features.d.ts.map +1 -1
  1695. package/dist/validation/features.js +223 -0
  1696. package/dist/validation/features.js.map +1 -1
  1697. package/dist/validation/features.test.d.ts +3 -1
  1698. package/dist/validation/features.test.d.ts.map +1 -1
  1699. package/dist/validation/features.test.js +3 -386
  1700. package/dist/validation/features.test.js.map +1 -1
  1701. package/dist/validation/imports.d.ts.map +1 -1
  1702. package/dist/validation/imports.js +37 -3
  1703. package/dist/validation/imports.js.map +1 -1
  1704. package/dist/validation/imports.test.js +45 -9
  1705. package/dist/validation/imports.test.js.map +1 -1
  1706. package/dist/validation/static-safety-arrow-rules.d.ts +11 -0
  1707. package/dist/validation/static-safety-arrow-rules.d.ts.map +1 -0
  1708. package/dist/validation/static-safety-arrow-rules.js +54 -0
  1709. package/dist/validation/static-safety-arrow-rules.js.map +1 -0
  1710. package/dist/validation/static-safety-dictionary-keys.d.ts +10 -0
  1711. package/dist/validation/static-safety-dictionary-keys.d.ts.map +1 -0
  1712. package/dist/validation/static-safety-dictionary-keys.js +32 -0
  1713. package/dist/validation/static-safety-dictionary-keys.js.map +1 -0
  1714. package/dist/validation/static-safety-rules.d.ts +27 -0
  1715. package/dist/validation/static-safety-rules.d.ts.map +1 -0
  1716. package/dist/validation/static-safety-rules.js +231 -0
  1717. package/dist/validation/static-safety-rules.js.map +1 -0
  1718. package/dist/validation/static-safety.d.ts +4 -7
  1719. package/dist/validation/static-safety.d.ts.map +1 -1
  1720. package/dist/validation/static-safety.js +3 -673
  1721. package/dist/validation/static-safety.js.map +1 -1
  1722. package/dist/validation/synthesis-eligibility.d.ts +31 -0
  1723. package/dist/validation/synthesis-eligibility.d.ts.map +1 -0
  1724. package/dist/validation/synthesis-eligibility.js +161 -0
  1725. package/dist/validation/synthesis-eligibility.js.map +1 -0
  1726. package/dist/validator-cases/any-and-object-literals.test.d.ts +10 -0
  1727. package/dist/validator-cases/any-and-object-literals.test.d.ts.map +1 -0
  1728. package/dist/validator-cases/any-and-object-literals.test.js +271 -0
  1729. package/dist/validator-cases/any-and-object-literals.test.js.map +1 -0
  1730. package/dist/validator-cases/generic-validation.test.d.ts +11 -0
  1731. package/dist/validator-cases/generic-validation.test.d.ts.map +1 -0
  1732. package/dist/validator-cases/generic-validation.test.js +282 -0
  1733. package/dist/validator-cases/generic-validation.test.js.map +1 -0
  1734. package/dist/validator-cases/helpers.d.ts +9 -0
  1735. package/dist/validator-cases/helpers.d.ts.map +1 -0
  1736. package/dist/validator-cases/helpers.js +46 -0
  1737. package/dist/validator-cases/helpers.js.map +1 -0
  1738. package/dist/validator-cases/parameters-and-dict-keys.test.d.ts +10 -0
  1739. package/dist/validator-cases/parameters-and-dict-keys.test.d.ts.map +1 -0
  1740. package/dist/validator-cases/parameters-and-dict-keys.test.js +280 -0
  1741. package/dist/validator-cases/parameters-and-dict-keys.test.js.map +1 -0
  1742. package/dist/validator-cases/utility-types.test.d.ts +12 -0
  1743. package/dist/validator-cases/utility-types.test.d.ts.map +1 -0
  1744. package/dist/validator-cases/utility-types.test.js +323 -0
  1745. package/dist/validator-cases/utility-types.test.js.map +1 -0
  1746. package/dist/validator-maximus-cases/array-and-literal-inference.test.d.ts +2 -0
  1747. package/dist/validator-maximus-cases/array-and-literal-inference.test.d.ts.map +1 -0
  1748. package/dist/validator-maximus-cases/array-and-literal-inference.test.js +221 -0
  1749. package/dist/validator-maximus-cases/array-and-literal-inference.test.js.map +1 -0
  1750. package/dist/validator-maximus-cases/deterministic-typing.test.d.ts +2 -0
  1751. package/dist/validator-maximus-cases/deterministic-typing.test.d.ts.map +1 -0
  1752. package/dist/validator-maximus-cases/deterministic-typing.test.js +432 -0
  1753. package/dist/validator-maximus-cases/deterministic-typing.test.js.map +1 -0
  1754. package/dist/validator-maximus-cases/dictionary-and-object-literal.test.d.ts +2 -0
  1755. package/dist/validator-maximus-cases/dictionary-and-object-literal.test.d.ts.map +1 -0
  1756. package/dist/validator-maximus-cases/dictionary-and-object-literal.test.js +273 -0
  1757. package/dist/validator-maximus-cases/dictionary-and-object-literal.test.js.map +1 -0
  1758. package/dist/validator-maximus-cases/feature-gating.test.d.ts +2 -0
  1759. package/dist/validator-maximus-cases/feature-gating.test.d.ts.map +1 -0
  1760. package/dist/validator-maximus-cases/feature-gating.test.js +181 -0
  1761. package/dist/validator-maximus-cases/feature-gating.test.js.map +1 -0
  1762. package/dist/validator-maximus-cases/generic-function-values.test.d.ts +2 -0
  1763. package/dist/validator-maximus-cases/generic-function-values.test.d.ts.map +1 -0
  1764. package/dist/validator-maximus-cases/generic-function-values.test.js +346 -0
  1765. package/dist/validator-maximus-cases/generic-function-values.test.js.map +1 -0
  1766. package/dist/validator-maximus-cases/helpers.d.ts +9 -0
  1767. package/dist/validator-maximus-cases/helpers.d.ts.map +1 -0
  1768. package/dist/validator-maximus-cases/helpers.js +113 -0
  1769. package/dist/validator-maximus-cases/helpers.js.map +1 -0
  1770. package/dist/validator-maximus-cases/type-syntax.test.d.ts +2 -0
  1771. package/dist/validator-maximus-cases/type-syntax.test.d.ts.map +1 -0
  1772. package/dist/validator-maximus-cases/type-syntax.test.js +157 -0
  1773. package/dist/validator-maximus-cases/type-syntax.test.js.map +1 -0
  1774. package/dist/validator.maximus.test.d.ts +6 -1
  1775. package/dist/validator.maximus.test.d.ts.map +1 -1
  1776. package/dist/validator.maximus.test.js +6 -1417
  1777. package/dist/validator.maximus.test.js.map +1 -1
  1778. package/dist/validator.test.d.ts +4 -10
  1779. package/dist/validator.test.d.ts.map +1 -1
  1780. package/dist/validator.test.js +4 -1086
  1781. package/dist/validator.test.js.map +1 -1
  1782. package/package.json +3 -3
@@ -6,9 +6,13 @@
6
6
  */
7
7
  import * as fs from "node:fs";
8
8
  import * as path from "node:path";
9
+ import * as ts from "typescript";
9
10
  import { validateBindingFile } from "./binding-types.js";
10
11
  import { BindingRegistry } from "./binding-registry.js";
11
12
  import { resolveDependencyPackageRoot } from "./package-roots.js";
13
+ import { getClassNameFromPath } from "../resolver/naming.js";
14
+ import { getNamespaceFromPath } from "../resolver/namespace.js";
15
+ import { readSourcePackageMetadata, } from "./source-package-metadata.js";
12
16
  /**
13
17
  * Recursively scan a directory for .d.ts files
14
18
  * Reuses the same helper as metadata loading
@@ -30,6 +34,1082 @@ export const scanForDeclarationFiles = (dir) => {
30
34
  }
31
35
  return results;
32
36
  };
37
+ const isExportedTopLevelStatement = (statement) => !!(ts.canHaveModifiers(statement)
38
+ ? ts
39
+ .getModifiers(statement)
40
+ ?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword)
41
+ : false);
42
+ const getSourcePackageNamespace = (metadata) => metadata.namespace;
43
+ const readSourceFile = (sourceFilePath) => {
44
+ if (!fs.existsSync(sourceFilePath)) {
45
+ return undefined;
46
+ }
47
+ return ts.createSourceFile(sourceFilePath, fs.readFileSync(sourceFilePath, "utf-8"), ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
48
+ };
49
+ const readAmbientSourceFiles = (metadata) => metadata.ambientPaths
50
+ .map((filePath) => {
51
+ const sourceFile = readSourceFile(filePath);
52
+ return sourceFile ? { filePath, sourceFile } : undefined;
53
+ })
54
+ .filter((entry) => entry !== undefined);
55
+ const resolveExplicitSourceExportPath = (metadata, exportSubpath) => {
56
+ const relativeTarget = metadata.exports[exportSubpath];
57
+ if (!relativeTarget) {
58
+ return undefined;
59
+ }
60
+ const sourceFilePath = path.resolve(metadata.packageRoot, relativeTarget);
61
+ return fs.existsSync(sourceFilePath) ? sourceFilePath : undefined;
62
+ };
63
+ const collectTopLevelSymbols = (sourceFile) => {
64
+ const symbols = new Map();
65
+ for (const statement of sourceFile.statements) {
66
+ if (ts.isClassDeclaration(statement) && statement.name?.text) {
67
+ symbols.set(statement.name.text, {
68
+ name: statement.name.text,
69
+ kind: "class",
70
+ node: statement,
71
+ });
72
+ continue;
73
+ }
74
+ if (ts.isEnumDeclaration(statement) && statement.name.text) {
75
+ symbols.set(statement.name.text, {
76
+ name: statement.name.text,
77
+ kind: "enum",
78
+ node: statement,
79
+ });
80
+ continue;
81
+ }
82
+ if (ts.isFunctionDeclaration(statement) && statement.name?.text) {
83
+ symbols.set(statement.name.text, {
84
+ name: statement.name.text,
85
+ kind: "function",
86
+ node: statement,
87
+ });
88
+ continue;
89
+ }
90
+ if (ts.isInterfaceDeclaration(statement) && statement.name.text) {
91
+ symbols.set(statement.name.text, {
92
+ name: statement.name.text,
93
+ kind: "interface",
94
+ node: statement,
95
+ });
96
+ continue;
97
+ }
98
+ if (!ts.isVariableStatement(statement)) {
99
+ continue;
100
+ }
101
+ for (const declaration of statement.declarationList.declarations) {
102
+ if (!ts.isIdentifier(declaration.name)) {
103
+ continue;
104
+ }
105
+ symbols.set(declaration.name.text, {
106
+ name: declaration.name.text,
107
+ kind: "variable",
108
+ node: declaration,
109
+ });
110
+ }
111
+ }
112
+ return symbols;
113
+ };
114
+ const collectExportedTopLevelSymbols = (sourceFile) => {
115
+ const topLevel = collectTopLevelSymbols(sourceFile);
116
+ const exported = [];
117
+ const seen = new Set();
118
+ const pushSymbol = (exportName, localName, symbol) => {
119
+ if (!symbol) {
120
+ return;
121
+ }
122
+ const key = `${exportName}::${localName}`;
123
+ if (seen.has(key)) {
124
+ return;
125
+ }
126
+ seen.add(key);
127
+ exported.push({
128
+ exportName,
129
+ localName,
130
+ kind: symbol.kind,
131
+ node: symbol.node,
132
+ });
133
+ };
134
+ for (const statement of sourceFile.statements) {
135
+ if (ts.isClassDeclaration(statement) &&
136
+ statement.name?.text &&
137
+ isExportedTopLevelStatement(statement)) {
138
+ pushSymbol(statement.name.text, statement.name.text, topLevel.get(statement.name.text));
139
+ continue;
140
+ }
141
+ if (ts.isEnumDeclaration(statement) &&
142
+ statement.name.text &&
143
+ isExportedTopLevelStatement(statement)) {
144
+ pushSymbol(statement.name.text, statement.name.text, topLevel.get(statement.name.text));
145
+ continue;
146
+ }
147
+ if (ts.isFunctionDeclaration(statement) &&
148
+ statement.name?.text &&
149
+ isExportedTopLevelStatement(statement)) {
150
+ pushSymbol(statement.name.text, statement.name.text, topLevel.get(statement.name.text));
151
+ continue;
152
+ }
153
+ if (ts.isInterfaceDeclaration(statement) &&
154
+ statement.name.text &&
155
+ isExportedTopLevelStatement(statement)) {
156
+ pushSymbol(statement.name.text, statement.name.text, topLevel.get(statement.name.text));
157
+ continue;
158
+ }
159
+ if (ts.isVariableStatement(statement) &&
160
+ isExportedTopLevelStatement(statement)) {
161
+ for (const declaration of statement.declarationList.declarations) {
162
+ if (!ts.isIdentifier(declaration.name)) {
163
+ continue;
164
+ }
165
+ pushSymbol(declaration.name.text, declaration.name.text, topLevel.get(declaration.name.text));
166
+ }
167
+ continue;
168
+ }
169
+ if (!ts.isExportDeclaration(statement) ||
170
+ !!statement.moduleSpecifier ||
171
+ !statement.exportClause ||
172
+ !ts.isNamedExports(statement.exportClause)) {
173
+ continue;
174
+ }
175
+ for (const element of statement.exportClause.elements) {
176
+ const localName = element.propertyName?.text ?? element.name.text;
177
+ pushSymbol(element.name.text, localName, topLevel.get(localName));
178
+ }
179
+ }
180
+ return exported;
181
+ };
182
+ const resolveTopLevelBindingHostType = (filePath, metadata, localName, kind) => {
183
+ const namespace = getNamespaceFromPath(filePath, metadata.sourceRoot, getSourcePackageNamespace(metadata));
184
+ if (kind === "class" || kind === "enum" || kind === "interface") {
185
+ return `${namespace}.${localName}`;
186
+ }
187
+ return `${namespace}.${getClassNameFromPath(filePath)}`;
188
+ };
189
+ const resolveTopLevelExportOwner = (filePath, metadata, localName, kind) => {
190
+ const namespace = getNamespaceFromPath(filePath, metadata.sourceRoot, getSourcePackageNamespace(metadata));
191
+ if (kind === "class" || kind === "enum" || kind === "interface") {
192
+ return `${namespace}.${localName}`;
193
+ }
194
+ return `${namespace}.${getClassNameFromPath(filePath)}.${localName}`;
195
+ };
196
+ const resolveExportOwnerType = (sourceFilePath, exportName, metadata) => {
197
+ const sourceFile = readSourceFile(sourceFilePath);
198
+ if (!sourceFile) {
199
+ return undefined;
200
+ }
201
+ const exportedSymbols = collectExportedTopLevelSymbols(sourceFile);
202
+ const symbol = exportedSymbols.find((candidate) => candidate.exportName === exportName);
203
+ if (!symbol) {
204
+ return undefined;
205
+ }
206
+ return resolveTopLevelExportOwner(sourceFilePath, metadata, symbol.localName, symbol.kind);
207
+ };
208
+ const collectSyntheticSourceMembers = (sourceFilePath) => {
209
+ const sourceFile = readSourceFile(sourceFilePath);
210
+ if (!sourceFile) {
211
+ return [];
212
+ }
213
+ const members = [];
214
+ for (const symbol of collectExportedTopLevelSymbols(sourceFile)) {
215
+ if (symbol.kind === "function") {
216
+ const declaration = symbol.node;
217
+ members.push({
218
+ alias: symbol.exportName,
219
+ kind: "method",
220
+ parameterCount: declaration.parameters.length,
221
+ });
222
+ continue;
223
+ }
224
+ if (symbol.kind !== "variable") {
225
+ continue;
226
+ }
227
+ const declaration = symbol.node;
228
+ const initializer = declaration.initializer;
229
+ if (initializer &&
230
+ (ts.isArrowFunction(initializer) || ts.isFunctionExpression(initializer))) {
231
+ members.push({
232
+ alias: symbol.exportName,
233
+ kind: "method",
234
+ parameterCount: initializer.parameters.length,
235
+ });
236
+ continue;
237
+ }
238
+ members.push({ alias: symbol.exportName, kind: "property" });
239
+ }
240
+ return members;
241
+ };
242
+ const readClassMemberName = (member) => {
243
+ const name = member.name;
244
+ if (!name) {
245
+ return undefined;
246
+ }
247
+ if (ts.isIdentifier(name) || ts.isStringLiteral(name)) {
248
+ return name.text;
249
+ }
250
+ return undefined;
251
+ };
252
+ const collectSyntheticClassMembers = (declaration, scope) => {
253
+ const members = [];
254
+ const matchesScope = (member) => {
255
+ const isStatic = ts.canHaveModifiers(member) &&
256
+ ts
257
+ .getModifiers(member)
258
+ ?.some((modifier) => modifier.kind === ts.SyntaxKind.StaticKeyword) ===
259
+ true;
260
+ return scope === "static" ? isStatic : !isStatic;
261
+ };
262
+ const isPubliclyAccessible = (member) => {
263
+ if (!ts.canHaveModifiers(member)) {
264
+ return true;
265
+ }
266
+ return !(ts
267
+ .getModifiers(member)
268
+ ?.some((modifier) => modifier.kind === ts.SyntaxKind.PrivateKeyword ||
269
+ modifier.kind === ts.SyntaxKind.ProtectedKeyword) ?? false);
270
+ };
271
+ for (const member of declaration.members) {
272
+ if (!matchesScope(member) || !isPubliclyAccessible(member)) {
273
+ continue;
274
+ }
275
+ const memberName = readClassMemberName(member);
276
+ if (ts.isMethodDeclaration(member) && memberName) {
277
+ members.push({
278
+ alias: memberName,
279
+ kind: "method",
280
+ parameterCount: member.parameters.length,
281
+ });
282
+ continue;
283
+ }
284
+ if ((ts.isPropertyDeclaration(member) ||
285
+ ts.isGetAccessorDeclaration(member) ||
286
+ ts.isSetAccessorDeclaration(member)) &&
287
+ memberName) {
288
+ members.push({
289
+ alias: memberName,
290
+ kind: "property",
291
+ });
292
+ }
293
+ }
294
+ return members;
295
+ };
296
+ const collectSyntheticInterfaceMembers = (declaration) => {
297
+ const members = [];
298
+ for (const member of declaration.members) {
299
+ const memberName = readClassMemberName(member);
300
+ if (ts.isMethodSignature(member) && memberName) {
301
+ members.push({
302
+ alias: memberName,
303
+ kind: "method",
304
+ parameterCount: member.parameters.length,
305
+ });
306
+ continue;
307
+ }
308
+ if (ts.isPropertySignature(member) && memberName) {
309
+ members.push({
310
+ alias: memberName,
311
+ kind: "property",
312
+ });
313
+ }
314
+ }
315
+ return members;
316
+ };
317
+ const getAmbientGlobalStatements = (sourceFile) => {
318
+ const declareGlobalStatements = sourceFile.statements.flatMap((statement) => {
319
+ if (ts.isModuleDeclaration(statement) &&
320
+ ts.isIdentifier(statement.name) &&
321
+ statement.name.text === "global" &&
322
+ statement.body &&
323
+ ts.isModuleBlock(statement.body)) {
324
+ return [...statement.body.statements];
325
+ }
326
+ return [];
327
+ });
328
+ return declareGlobalStatements.length > 0
329
+ ? declareGlobalStatements
330
+ : [...sourceFile.statements];
331
+ };
332
+ const findImportedTypeTarget = (sourceFile, localName) => {
333
+ for (const statement of sourceFile.statements) {
334
+ if (!ts.isImportDeclaration(statement) ||
335
+ !statement.importClause ||
336
+ !statement.moduleSpecifier ||
337
+ !ts.isStringLiteral(statement.moduleSpecifier)) {
338
+ continue;
339
+ }
340
+ const namedBindings = statement.importClause.namedBindings;
341
+ if (!namedBindings || !ts.isNamedImports(namedBindings)) {
342
+ continue;
343
+ }
344
+ for (const element of namedBindings.elements) {
345
+ if (element.name.text !== localName) {
346
+ continue;
347
+ }
348
+ return {
349
+ specifier: statement.moduleSpecifier.text,
350
+ exportName: element.propertyName?.text ?? element.name.text,
351
+ };
352
+ }
353
+ }
354
+ return undefined;
355
+ };
356
+ const hasExportedTypeLikeSymbol = (sourceFile, exportName) => {
357
+ for (const statement of sourceFile.statements) {
358
+ if ((ts.isClassDeclaration(statement) ||
359
+ ts.isEnumDeclaration(statement) ||
360
+ ts.isFunctionDeclaration(statement) ||
361
+ ts.isInterfaceDeclaration(statement) ||
362
+ ts.isTypeAliasDeclaration(statement)) &&
363
+ statement.name?.text === exportName &&
364
+ isExportedTopLevelStatement(statement)) {
365
+ return true;
366
+ }
367
+ if (ts.isVariableStatement(statement)) {
368
+ if (!isExportedTopLevelStatement(statement)) {
369
+ continue;
370
+ }
371
+ for (const declaration of statement.declarationList.declarations) {
372
+ if (ts.isIdentifier(declaration.name) &&
373
+ declaration.name.text === exportName) {
374
+ return true;
375
+ }
376
+ }
377
+ continue;
378
+ }
379
+ if (!ts.isExportDeclaration(statement) ||
380
+ !!statement.moduleSpecifier ||
381
+ !statement.exportClause ||
382
+ !ts.isNamedExports(statement.exportClause)) {
383
+ continue;
384
+ }
385
+ for (const element of statement.exportClause.elements) {
386
+ const local = element.propertyName?.text ?? element.name.text;
387
+ if (element.name.text === exportName || local === exportName) {
388
+ return true;
389
+ }
390
+ }
391
+ }
392
+ return false;
393
+ };
394
+ const listAmbientInterfaceOwnerMembers = (_metadata, ownerTarget) => {
395
+ const ownerFile = ownerTarget.filePath;
396
+ const ownerSourceFile = readSourceFile(ownerFile);
397
+ if (!ownerSourceFile) {
398
+ return [];
399
+ }
400
+ const exportedSymbol = collectExportedTopLevelSymbols(ownerSourceFile).find((symbol) => symbol.exportName === ownerTarget.exportName);
401
+ if (!exportedSymbol) {
402
+ return collectSyntheticSourceMembers(ownerFile);
403
+ }
404
+ if (exportedSymbol.kind === "class") {
405
+ const classDeclaration = exportedSymbol.node;
406
+ const instanceMembers = collectSyntheticClassMembers(classDeclaration, "instance");
407
+ if (instanceMembers.length > 0) {
408
+ return instanceMembers;
409
+ }
410
+ return collectSyntheticClassMembers(classDeclaration, "static")
411
+ .filter((member) => member.kind === "method")
412
+ .map((member) => ({
413
+ ...member,
414
+ parameterCount: typeof member.parameterCount === "number"
415
+ ? Math.max(0, member.parameterCount - 1)
416
+ : undefined,
417
+ }));
418
+ }
419
+ if (exportedSymbol.kind === "interface") {
420
+ return collectSyntheticInterfaceMembers(exportedSymbol.node);
421
+ }
422
+ return collectSyntheticSourceMembers(ownerFile);
423
+ };
424
+ const resolveAmbientInterfaceExplicitOwners = (metadata, interfaceName) => {
425
+ const sourceFilePath = resolveExplicitSourceExportPath(metadata, `./${interfaceName}.js`);
426
+ if (!sourceFilePath) {
427
+ return [];
428
+ }
429
+ return [
430
+ {
431
+ filePath: sourceFilePath,
432
+ exportName: interfaceName,
433
+ },
434
+ ];
435
+ };
436
+ const resolveAmbientInterfaceSourceOwners = (ambientFilePath, declaration) => {
437
+ const owners = [];
438
+ const seen = new Set();
439
+ for (const heritageClause of declaration.heritageClauses ?? []) {
440
+ if (heritageClause.token !== ts.SyntaxKind.ExtendsKeyword) {
441
+ continue;
442
+ }
443
+ for (const heritageType of heritageClause.types) {
444
+ if (!ts.isIdentifier(heritageType.expression)) {
445
+ continue;
446
+ }
447
+ const target = findImportedTypeTarget(declaration.getSourceFile(), heritageType.expression.text);
448
+ if (!target) {
449
+ continue;
450
+ }
451
+ const sourceFilePath = resolveSourceImportFilePath(ambientFilePath, target.specifier);
452
+ const ownerKey = `${sourceFilePath ?? ""}::${target.exportName}`;
453
+ if (!sourceFilePath || seen.has(ownerKey)) {
454
+ continue;
455
+ }
456
+ const sourceFile = readSourceFile(sourceFilePath);
457
+ if (!sourceFile ||
458
+ !hasExportedTypeLikeSymbol(sourceFile, target.exportName)) {
459
+ continue;
460
+ }
461
+ seen.add(ownerKey);
462
+ owners.push({
463
+ filePath: sourceFilePath,
464
+ exportName: target.exportName,
465
+ });
466
+ }
467
+ }
468
+ return owners;
469
+ };
470
+ const resolveAmbientInterfaceValueOwners = (ambientFilePath, interfaceName) => {
471
+ const ambientSourceFile = readSourceFile(ambientFilePath);
472
+ if (!ambientSourceFile) {
473
+ return [];
474
+ }
475
+ const owners = [];
476
+ const seen = new Set();
477
+ for (const statement of getAmbientGlobalStatements(ambientSourceFile)) {
478
+ if (!ts.isVariableStatement(statement)) {
479
+ continue;
480
+ }
481
+ for (const declaration of statement.declarationList.declarations) {
482
+ if (!ts.isIdentifier(declaration.name) ||
483
+ declaration.name.text !== interfaceName) {
484
+ continue;
485
+ }
486
+ for (const target of extractImportTypeTargets(declaration)) {
487
+ const sourceFilePath = resolveSourceImportFilePath(ambientFilePath, target.specifier);
488
+ const ownerKey = `${sourceFilePath ?? ""}::${target.exportName}`;
489
+ if (!sourceFilePath || seen.has(ownerKey)) {
490
+ continue;
491
+ }
492
+ seen.add(ownerKey);
493
+ owners.push({
494
+ filePath: sourceFilePath,
495
+ exportName: target.exportName,
496
+ });
497
+ }
498
+ }
499
+ }
500
+ return owners;
501
+ };
502
+ const resolveAmbientInterfaceOwnerMember = (metadata, ownerTarget, surfacedMember) => {
503
+ const ownerFile = ownerTarget.filePath;
504
+ const ownerSourceFile = readSourceFile(ownerFile);
505
+ if (!ownerSourceFile) {
506
+ return undefined;
507
+ }
508
+ const exportedSymbol = collectExportedTopLevelSymbols(ownerSourceFile).find((symbol) => symbol.exportName === ownerTarget.exportName);
509
+ const ownerType = exportedSymbol
510
+ ? resolveTopLevelBindingHostType(ownerFile, metadata, exportedSymbol.localName, exportedSymbol.kind)
511
+ : resolveTopLevelBindingHostType(ownerFile, metadata, getClassNameFromPath(ownerFile), "function");
512
+ const usesTypeLikeOwner = exportedSymbol?.kind === "class" ||
513
+ exportedSymbol?.kind === "interface" ||
514
+ exportedSymbol?.kind === "enum";
515
+ if (!usesTypeLikeOwner) {
516
+ const ownerMembers = collectSyntheticSourceMembers(ownerFile);
517
+ const ownerMember = ownerMembers.find((member) => member.alias === surfacedMember.alias);
518
+ if (!ownerMember) {
519
+ return undefined;
520
+ }
521
+ return {
522
+ bindingType: ownerType,
523
+ kind: ownerMember.kind,
524
+ parameterCount: ownerMember.kind === "method" &&
525
+ typeof ownerMember.parameterCount === "number"
526
+ ? Math.max(0, ownerMember.parameterCount - 1)
527
+ : ownerMember.parameterCount,
528
+ isExtensionMethod: ownerMember.kind === "method",
529
+ sourceFilePath: ownerFile,
530
+ exportName: ownerMember.alias,
531
+ memberName: ownerMember.alias,
532
+ };
533
+ }
534
+ if (exportedSymbol?.kind === "class") {
535
+ const classDeclaration = exportedSymbol.node;
536
+ const instanceMembers = collectSyntheticClassMembers(classDeclaration, "instance");
537
+ const instanceMember = instanceMembers.find((member) => member.alias === surfacedMember.alias);
538
+ if (instanceMember) {
539
+ return {
540
+ bindingType: ownerType,
541
+ kind: instanceMember.kind,
542
+ parameterCount: instanceMember.parameterCount,
543
+ isExtensionMethod: false,
544
+ sourceFilePath: ownerFile,
545
+ exportName: ownerTarget.exportName,
546
+ memberName: instanceMember.alias,
547
+ };
548
+ }
549
+ if (surfacedMember.kind === "method") {
550
+ const staticMembers = collectSyntheticClassMembers(classDeclaration, "static");
551
+ const staticExtensionMember = staticMembers.find((member) => member.alias === surfacedMember.alias &&
552
+ member.kind === "method" &&
553
+ typeof member.parameterCount === "number" &&
554
+ member.parameterCount === (surfacedMember.parameterCount ?? 0) + 1);
555
+ if (staticExtensionMember) {
556
+ return {
557
+ bindingType: ownerType,
558
+ kind: staticExtensionMember.kind,
559
+ parameterCount: typeof staticExtensionMember.parameterCount === "number"
560
+ ? Math.max(0, staticExtensionMember.parameterCount - 1)
561
+ : undefined,
562
+ isExtensionMethod: true,
563
+ sourceFilePath: ownerFile,
564
+ exportName: ownerTarget.exportName,
565
+ memberName: staticExtensionMember.alias,
566
+ };
567
+ }
568
+ }
569
+ return undefined;
570
+ }
571
+ if (exportedSymbol?.kind === "interface") {
572
+ const interfaceMembers = collectSyntheticInterfaceMembers(exportedSymbol.node);
573
+ const interfaceMember = interfaceMembers.find((member) => member.alias === surfacedMember.alias);
574
+ if (!interfaceMember) {
575
+ return undefined;
576
+ }
577
+ return {
578
+ bindingType: ownerType,
579
+ kind: interfaceMember.kind,
580
+ parameterCount: interfaceMember.parameterCount,
581
+ isExtensionMethod: false,
582
+ sourceFilePath: ownerFile,
583
+ exportName: ownerTarget.exportName,
584
+ memberName: interfaceMember.alias,
585
+ };
586
+ }
587
+ return undefined;
588
+ };
589
+ const collectAmbientTypeIdentityNames = (sourceFile) => {
590
+ const names = new Set();
591
+ for (const statement of getAmbientGlobalStatements(sourceFile)) {
592
+ if ((ts.isInterfaceDeclaration(statement) ||
593
+ ts.isClassDeclaration(statement) ||
594
+ ts.isEnumDeclaration(statement) ||
595
+ ts.isTypeAliasDeclaration(statement)) &&
596
+ statement.name) {
597
+ names.add(statement.name.text);
598
+ }
599
+ }
600
+ return names;
601
+ };
602
+ const createSyntheticAmbientInterfaceBindings = (metadata) => {
603
+ const ambientSources = readAmbientSourceFiles(metadata);
604
+ if (ambientSources.length === 0) {
605
+ return [];
606
+ }
607
+ const bindings = new Map();
608
+ const sourceNamespace = getSourcePackageNamespace(metadata);
609
+ for (const { filePath, sourceFile } of ambientSources) {
610
+ for (const statement of getAmbientGlobalStatements(sourceFile)) {
611
+ if (!ts.isInterfaceDeclaration(statement) || !statement.name.text) {
612
+ continue;
613
+ }
614
+ const declaredMembers = collectSyntheticInterfaceMembers(statement);
615
+ const ownerTargets = resolveAmbientInterfaceExplicitOwners(metadata, statement.name.text);
616
+ const explicitOrHeritageOwners = ownerTargets.length > 0
617
+ ? ownerTargets
618
+ : resolveAmbientInterfaceSourceOwners(filePath, statement);
619
+ const resolvedOwnerTargets = explicitOrHeritageOwners.length > 0
620
+ ? explicitOrHeritageOwners
621
+ : resolveAmbientInterfaceValueOwners(filePath, statement.name.text);
622
+ const alias = statement.name.text;
623
+ const existing = bindings.get(alias) ?? {
624
+ name: `${sourceNamespace}.${alias}`,
625
+ alias,
626
+ kind: "interface",
627
+ members: [],
628
+ };
629
+ const existingMembers = [...existing.members];
630
+ const seenMembers = new Set(existingMembers.map((member) => `${member.alias}::${member.binding.type}`));
631
+ if (resolvedOwnerTargets.length === 0) {
632
+ for (const member of declaredMembers) {
633
+ const key = `${member.alias}::${existing.name}`;
634
+ if (seenMembers.has(key)) {
635
+ continue;
636
+ }
637
+ seenMembers.add(key);
638
+ existingMembers.push({
639
+ kind: member.kind,
640
+ name: member.alias,
641
+ alias: member.alias,
642
+ parameterCount: member.parameterCount,
643
+ binding: {
644
+ assembly: sourceNamespace,
645
+ type: existing.name,
646
+ member: member.alias,
647
+ },
648
+ sourceOrigin: {
649
+ filePath,
650
+ exportName: alias,
651
+ memberName: member.alias,
652
+ },
653
+ });
654
+ }
655
+ if (existingMembers.length === 0) {
656
+ continue;
657
+ }
658
+ bindings.set(alias, {
659
+ ...existing,
660
+ members: existingMembers,
661
+ });
662
+ continue;
663
+ }
664
+ for (const ownerTarget of resolvedOwnerTargets) {
665
+ const surfacedMembers = declaredMembers.length > 0
666
+ ? declaredMembers
667
+ : listAmbientInterfaceOwnerMembers(metadata, ownerTarget);
668
+ for (const member of surfacedMembers) {
669
+ const resolvedOwnerMember = resolveAmbientInterfaceOwnerMember(metadata, ownerTarget, member);
670
+ if (!resolvedOwnerMember) {
671
+ continue;
672
+ }
673
+ const key = `${member.alias}::${resolvedOwnerMember.bindingType}`;
674
+ if (seenMembers.has(key)) {
675
+ continue;
676
+ }
677
+ seenMembers.add(key);
678
+ existingMembers.push({
679
+ kind: resolvedOwnerMember.kind,
680
+ name: resolvedOwnerMember.memberName,
681
+ alias: member.alias,
682
+ parameterCount: resolvedOwnerMember.parameterCount,
683
+ binding: {
684
+ assembly: sourceNamespace,
685
+ type: resolvedOwnerMember.bindingType,
686
+ member: resolvedOwnerMember.memberName,
687
+ },
688
+ isExtensionMethod: resolvedOwnerMember.isExtensionMethod
689
+ ? true
690
+ : undefined,
691
+ sourceOrigin: {
692
+ filePath: resolvedOwnerMember.sourceFilePath,
693
+ exportName: resolvedOwnerMember.exportName,
694
+ memberName: resolvedOwnerMember.memberName,
695
+ },
696
+ });
697
+ }
698
+ }
699
+ bindings.set(alias, {
700
+ ...existing,
701
+ members: existingMembers,
702
+ });
703
+ }
704
+ }
705
+ return [...bindings.values()];
706
+ };
707
+ const createSyntheticWrapperType = (metadata, typeAlias) => {
708
+ const sourceFilePath = resolveExplicitSourceExportPath(metadata, `./${typeAlias}.js`);
709
+ if (!sourceFilePath) {
710
+ return undefined;
711
+ }
712
+ const sourceFile = readSourceFile(sourceFilePath);
713
+ if (!sourceFile) {
714
+ return undefined;
715
+ }
716
+ const exportedSymbol = collectExportedTopLevelSymbols(sourceFile).find((symbol) => symbol.exportName === typeAlias);
717
+ const ownerType = exportedSymbol &&
718
+ (exportedSymbol.kind === "class" || exportedSymbol.kind === "enum")
719
+ ? resolveTopLevelBindingHostType(sourceFilePath, metadata, exportedSymbol.localName, exportedSymbol.kind)
720
+ : resolveTopLevelBindingHostType(sourceFilePath, metadata, getClassNameFromPath(sourceFilePath), "function");
721
+ const members = exportedSymbol?.kind === "class"
722
+ ? collectSyntheticClassMembers(exportedSymbol.node, "static")
723
+ : collectSyntheticSourceMembers(sourceFilePath);
724
+ if (members.length === 0) {
725
+ return undefined;
726
+ }
727
+ return {
728
+ name: ownerType,
729
+ alias: typeAlias,
730
+ kind: "class",
731
+ members: members.map((member) => ({
732
+ kind: member.kind,
733
+ name: member.alias,
734
+ alias: member.alias,
735
+ parameterCount: member.parameterCount,
736
+ binding: {
737
+ assembly: getSourcePackageNamespace(metadata),
738
+ type: ownerType,
739
+ member: member.alias,
740
+ },
741
+ sourceOrigin: {
742
+ filePath: sourceFilePath,
743
+ exportName: exportedSymbol?.kind === "class" ? typeAlias : member.alias,
744
+ memberName: exportedSymbol?.kind === "class" ? member.alias : undefined,
745
+ },
746
+ })),
747
+ };
748
+ };
749
+ const createSyntheticSourceTypeBindings = (metadata) => {
750
+ const types = [
751
+ ...createSyntheticAmbientInterfaceBindings(metadata),
752
+ ];
753
+ const usedAliases = new Set(types.map((type) => type.alias));
754
+ const explicitWrapperExports = new Set();
755
+ for (const wrapperAlias of ["String", "Number", "Boolean"]) {
756
+ const wrapper = createSyntheticWrapperType(metadata, wrapperAlias);
757
+ if (!wrapper) {
758
+ continue;
759
+ }
760
+ const registeredWrapper = usedAliases.has(wrapper.alias)
761
+ ? {
762
+ ...wrapper,
763
+ alias: `${wrapper.alias}$static`,
764
+ }
765
+ : wrapper;
766
+ types.push(registeredWrapper);
767
+ usedAliases.add(registeredWrapper.alias);
768
+ explicitWrapperExports.add(wrapperAlias);
769
+ }
770
+ for (const sourceFilePath of metadata.exportPaths) {
771
+ const sourceFile = readSourceFile(sourceFilePath);
772
+ if (!sourceFile) {
773
+ continue;
774
+ }
775
+ for (const symbol of collectExportedTopLevelSymbols(sourceFile)) {
776
+ if (symbol.kind !== "class" && symbol.kind !== "enum") {
777
+ continue;
778
+ }
779
+ if (explicitWrapperExports.has(symbol.exportName)) {
780
+ continue;
781
+ }
782
+ const ownerType = resolveTopLevelBindingHostType(sourceFilePath, metadata, symbol.localName, symbol.kind);
783
+ const alias = usedAliases.has(symbol.exportName)
784
+ ? `${symbol.exportName}$static`
785
+ : symbol.exportName;
786
+ usedAliases.add(alias);
787
+ types.push({
788
+ name: ownerType,
789
+ alias,
790
+ kind: symbol.kind === "enum" ? "enum" : "class",
791
+ members: symbol.kind === "class" && ts.isClassDeclaration(symbol.node)
792
+ ? collectSyntheticClassMembers(symbol.node, "static").map((member) => ({
793
+ kind: member.kind,
794
+ name: member.alias,
795
+ alias: member.alias,
796
+ parameterCount: member.parameterCount,
797
+ binding: {
798
+ assembly: getSourcePackageNamespace(metadata),
799
+ type: ownerType,
800
+ member: member.alias,
801
+ },
802
+ }))
803
+ : [],
804
+ });
805
+ }
806
+ }
807
+ return types;
808
+ };
809
+ const resolveSourceImportFilePath = (ambientFilePath, specifier) => {
810
+ const base = path.resolve(path.dirname(ambientFilePath), specifier);
811
+ const candidates = [
812
+ base,
813
+ base.replace(/\.js$/i, ".ts"),
814
+ base.replace(/\.mjs$/i, ".mts"),
815
+ `${base}.ts`,
816
+ ];
817
+ return candidates.find((candidate) => fs.existsSync(candidate));
818
+ };
819
+ const resolveSourceImportSpecifier = (metadata, sourceFilePath) => {
820
+ const normalizedFilePath = path.resolve(sourceFilePath);
821
+ const candidates = Object.entries(metadata.exports)
822
+ .filter(([, target]) => path.resolve(metadata.packageRoot, target) === normalizedFilePath)
823
+ .map(([exportKey]) => exportKey)
824
+ .sort((left, right) => {
825
+ if (left === ".")
826
+ return 1;
827
+ if (right === ".")
828
+ return -1;
829
+ return left.localeCompare(right);
830
+ });
831
+ const exportKey = candidates[0];
832
+ if (!exportKey) {
833
+ return undefined;
834
+ }
835
+ if (exportKey === ".") {
836
+ const explicitRoot = metadata.exports["./index.js"] ? "./index.js" : ".";
837
+ return explicitRoot === "."
838
+ ? metadata.packageName
839
+ : `${metadata.packageName}/${explicitRoot.slice(2)}`;
840
+ }
841
+ return `${metadata.packageName}/${exportKey.slice(2)}`;
842
+ };
843
+ const resolveGlobalOwnerByExportName = (metadata, exportName) => {
844
+ const candidatePaths = [...metadata.exportPaths].sort((left, right) => {
845
+ const leftBase = path.basename(left, path.extname(left)).toLowerCase();
846
+ const rightBase = path.basename(right, path.extname(right)).toLowerCase();
847
+ const target = exportName.toLowerCase();
848
+ const leftRank = leftBase === target ? 0 : leftBase.includes(target) ? 1 : 2;
849
+ const rightRank = rightBase === target ? 0 : rightBase.includes(target) ? 1 : 2;
850
+ if (leftRank !== rightRank) {
851
+ return leftRank - rightRank;
852
+ }
853
+ return left.localeCompare(right);
854
+ });
855
+ for (const sourceFilePath of candidatePaths) {
856
+ const ownerType = resolveExportOwnerType(sourceFilePath, exportName, metadata);
857
+ const sourceImport = resolveSourceImportSpecifier(metadata, sourceFilePath);
858
+ if (!ownerType || !sourceImport) {
859
+ continue;
860
+ }
861
+ return { ownerType, sourceImport };
862
+ }
863
+ return undefined;
864
+ };
865
+ const extractImportTypeTargetFromTypeNode = (typeNode, declaration) => {
866
+ if (ts.isImportTypeNode(typeNode) && typeNode.isTypeOf) {
867
+ const literal = ts.isLiteralTypeNode(typeNode.argument) &&
868
+ ts.isStringLiteral(typeNode.argument.literal)
869
+ ? typeNode.argument.literal
870
+ : undefined;
871
+ if (!literal || !typeNode.qualifier) {
872
+ return undefined;
873
+ }
874
+ const exportName = typeNode.qualifier.getText().trim();
875
+ if (exportName.length === 0) {
876
+ return undefined;
877
+ }
878
+ return {
879
+ specifier: literal.text,
880
+ exportName,
881
+ };
882
+ }
883
+ if (!ts.isTypeQueryNode(typeNode)) {
884
+ return undefined;
885
+ }
886
+ const exprName = typeNode.exprName;
887
+ const rootIdentifier = ts.isIdentifier(exprName)
888
+ ? exprName
889
+ : ts.isQualifiedName(exprName)
890
+ ? exprName.left
891
+ : undefined;
892
+ if (!rootIdentifier || !ts.isIdentifier(rootIdentifier)) {
893
+ return undefined;
894
+ }
895
+ const sourceFile = declaration.getSourceFile();
896
+ for (const statement of sourceFile.statements) {
897
+ if (!ts.isImportDeclaration(statement) ||
898
+ !statement.importClause ||
899
+ !statement.moduleSpecifier ||
900
+ !ts.isStringLiteral(statement.moduleSpecifier)) {
901
+ continue;
902
+ }
903
+ const namedBindings = statement.importClause.namedBindings;
904
+ if (namedBindings && ts.isNamedImports(namedBindings)) {
905
+ for (const element of namedBindings.elements) {
906
+ if (element.name.text !== rootIdentifier.text) {
907
+ continue;
908
+ }
909
+ return {
910
+ specifier: statement.moduleSpecifier.text,
911
+ exportName: element.propertyName?.text ?? element.name.text,
912
+ };
913
+ }
914
+ }
915
+ }
916
+ return undefined;
917
+ };
918
+ const extractImportTypeTargets = (declaration) => {
919
+ const seen = new Set();
920
+ const targets = [];
921
+ const pushTarget = (target) => {
922
+ if (!target) {
923
+ return;
924
+ }
925
+ const key = `${target.specifier}::${target.exportName}`;
926
+ if (seen.has(key)) {
927
+ return;
928
+ }
929
+ seen.add(key);
930
+ targets.push(target);
931
+ };
932
+ const visitTypeNode = (node) => {
933
+ if (!node) {
934
+ return;
935
+ }
936
+ if (ts.isIntersectionTypeNode(node)) {
937
+ for (const member of node.types) {
938
+ visitTypeNode(member);
939
+ }
940
+ return;
941
+ }
942
+ if (ts.isParenthesizedTypeNode(node)) {
943
+ visitTypeNode(node.type);
944
+ return;
945
+ }
946
+ if (ts.isImportTypeNode(node) || ts.isTypeQueryNode(node)) {
947
+ pushTarget(extractImportTypeTargetFromTypeNode(node, declaration));
948
+ }
949
+ };
950
+ visitTypeNode(declaration.type);
951
+ return targets;
952
+ };
953
+ const collectSyntheticSourceGlobals = (metadata) => {
954
+ const ambientSources = readAmbientSourceFiles(metadata);
955
+ if (ambientSources.length === 0) {
956
+ return undefined;
957
+ }
958
+ const bindings = {};
959
+ const sourceNamespace = getSourcePackageNamespace(metadata);
960
+ const ambientTypeIdentityNames = new Set();
961
+ const getTypeSemantics = (globalName) => ambientTypeIdentityNames.has(globalName)
962
+ ? { contributesTypeIdentity: true }
963
+ : undefined;
964
+ for (const { sourceFile } of ambientSources) {
965
+ for (const typeName of collectAmbientTypeIdentityNames(sourceFile)) {
966
+ ambientTypeIdentityNames.add(typeName);
967
+ }
968
+ }
969
+ const bindGlobalName = (globalName) => {
970
+ const inferred = resolveGlobalOwnerByExportName(metadata, globalName);
971
+ const ownerType = inferred?.ownerType;
972
+ const sourceImport = inferred?.sourceImport;
973
+ if (!ownerType || !sourceImport) {
974
+ return;
975
+ }
976
+ bindings[globalName] = {
977
+ kind: "global",
978
+ assembly: sourceNamespace,
979
+ type: ownerType,
980
+ staticType: ownerType,
981
+ sourceImport,
982
+ ...(getTypeSemantics(globalName)
983
+ ? { typeSemantics: getTypeSemantics(globalName) }
984
+ : {}),
985
+ };
986
+ };
987
+ for (const { filePath, sourceFile } of ambientSources) {
988
+ for (const globalStatement of getAmbientGlobalStatements(sourceFile)) {
989
+ if (ts.isVariableStatement(globalStatement)) {
990
+ for (const declaration of globalStatement.declarationList
991
+ .declarations) {
992
+ if (!ts.isIdentifier(declaration.name)) {
993
+ continue;
994
+ }
995
+ const explicitTargets = extractImportTypeTargets(declaration);
996
+ let ownerType;
997
+ let staticType;
998
+ let sourceImport;
999
+ if (explicitTargets.length > 0) {
1000
+ const resolvedOwners = explicitTargets
1001
+ .map((target) => {
1002
+ const sourceFilePath = resolveSourceImportFilePath(filePath, target.specifier);
1003
+ if (!sourceFilePath) {
1004
+ return undefined;
1005
+ }
1006
+ const resolvedOwnerType = resolveExportOwnerType(sourceFilePath, target.exportName, metadata);
1007
+ const resolvedSourceImport = resolveSourceImportSpecifier(metadata, sourceFilePath);
1008
+ if (!resolvedOwnerType || !resolvedSourceImport) {
1009
+ return undefined;
1010
+ }
1011
+ return {
1012
+ ownerType: resolvedOwnerType,
1013
+ sourceImport: resolvedSourceImport,
1014
+ };
1015
+ })
1016
+ .filter((entry) => entry !== undefined);
1017
+ const firstOwner = resolvedOwners[0];
1018
+ const lastOwner = resolvedOwners[resolvedOwners.length - 1];
1019
+ ownerType = firstOwner?.ownerType;
1020
+ staticType = lastOwner?.ownerType;
1021
+ const uniqueSourceImports = [
1022
+ ...new Set(resolvedOwners.map((entry) => entry.sourceImport)),
1023
+ ];
1024
+ if (uniqueSourceImports.length === 1) {
1025
+ sourceImport = uniqueSourceImports[0];
1026
+ }
1027
+ else if (metadata.exports["./index.js"]) {
1028
+ sourceImport = `${metadata.packageName}/index.js`;
1029
+ }
1030
+ else {
1031
+ sourceImport = firstOwner?.sourceImport;
1032
+ }
1033
+ }
1034
+ else {
1035
+ const inferred = resolveGlobalOwnerByExportName(metadata, declaration.name.text);
1036
+ ownerType = inferred?.ownerType;
1037
+ staticType = inferred?.ownerType;
1038
+ sourceImport = inferred?.sourceImport;
1039
+ }
1040
+ if (!ownerType || !staticType || !sourceImport) {
1041
+ continue;
1042
+ }
1043
+ bindings[declaration.name.text] = {
1044
+ kind: "global",
1045
+ assembly: sourceNamespace,
1046
+ type: ownerType,
1047
+ staticType,
1048
+ sourceImport,
1049
+ ...(getTypeSemantics(declaration.name.text)
1050
+ ? { typeSemantics: getTypeSemantics(declaration.name.text) }
1051
+ : {}),
1052
+ };
1053
+ }
1054
+ continue;
1055
+ }
1056
+ if (ts.isFunctionDeclaration(globalStatement) &&
1057
+ globalStatement.name?.text) {
1058
+ bindGlobalName(globalStatement.name.text);
1059
+ continue;
1060
+ }
1061
+ if (ts.isClassDeclaration(globalStatement) &&
1062
+ globalStatement.name?.text) {
1063
+ bindGlobalName(globalStatement.name.text);
1064
+ continue;
1065
+ }
1066
+ if (ts.isEnumDeclaration(globalStatement)) {
1067
+ bindGlobalName(globalStatement.name.text);
1068
+ continue;
1069
+ }
1070
+ if (ts.isVariableDeclaration(globalStatement)) {
1071
+ if (ts.isIdentifier(globalStatement.name)) {
1072
+ bindGlobalName(globalStatement.name.text);
1073
+ }
1074
+ continue;
1075
+ }
1076
+ if (ts.isModuleDeclaration(globalStatement)) {
1077
+ const body = globalStatement.body;
1078
+ if (!body || !ts.isModuleBlock(body)) {
1079
+ continue;
1080
+ }
1081
+ for (const nested of body.statements) {
1082
+ if (ts.isFunctionDeclaration(nested) && nested.name?.text) {
1083
+ bindGlobalName(nested.name.text);
1084
+ }
1085
+ }
1086
+ }
1087
+ }
1088
+ }
1089
+ return Object.keys(bindings).length > 0 ? { bindings } : undefined;
1090
+ };
1091
+ const addSyntheticSourcePackageBindings = (registry, metadata) => {
1092
+ const sourceNamespace = getSourcePackageNamespace(metadata);
1093
+ const syntheticTypes = createSyntheticSourceTypeBindings(metadata);
1094
+ if (syntheticTypes.length > 0) {
1095
+ const manifest = {
1096
+ assembly: sourceNamespace,
1097
+ namespaces: [
1098
+ {
1099
+ name: sourceNamespace,
1100
+ alias: sourceNamespace,
1101
+ types: syntheticTypes,
1102
+ },
1103
+ ],
1104
+ };
1105
+ registry.addBindings(`${metadata.packageRoot}::synthetic-source-types`, manifest);
1106
+ }
1107
+ const simpleGlobals = collectSyntheticSourceGlobals(metadata);
1108
+ if (simpleGlobals) {
1109
+ registry.addBindings(`${metadata.packageRoot}::synthetic-source-globals`, simpleGlobals);
1110
+ }
1111
+ };
1112
+ const preserveBindingPackageRootOrder = (packageRoots) => [...packageRoots];
33
1113
  /**
34
1114
  * Load bindings from a package directory and recursively from its dependencies.
35
1115
  *
@@ -50,14 +1130,21 @@ const loadBindingsFromPackage = (registry, packageRoot, visited, forceDependency
50
1130
  if (!fs.existsSync(absoluteRoot)) {
51
1131
  return;
52
1132
  }
1133
+ const sourcePackageMetadata = readSourcePackageMetadata(absoluteRoot);
1134
+ const sourcePackageRoot = sourcePackageMetadata !== null;
1135
+ if (sourcePackageMetadata) {
1136
+ addSyntheticSourcePackageBindings(registry, sourcePackageMetadata);
1137
+ }
53
1138
  const rootEntries = fs.readdirSync(absoluteRoot, { withFileTypes: true });
54
1139
  let discoveredBindingsInPackage = false;
55
1140
  // Strategy 1: root-level bindings.json (simple/global bindings)
56
1141
  const rootBindingsPath = path.join(absoluteRoot, "bindings.json");
57
- if (fs.existsSync(rootBindingsPath)) {
1142
+ if (!sourcePackageRoot && fs.existsSync(rootBindingsPath)) {
58
1143
  discoveredBindingsInPackage = true;
59
1144
  }
60
- loadBindingsFromPath(registry, rootBindingsPath);
1145
+ if (!sourcePackageRoot) {
1146
+ loadBindingsFromPath(registry, rootBindingsPath);
1147
+ }
61
1148
  // Strategy 2: Namespace/bindings.json for each Namespace.d.ts facade
62
1149
  const facadeFiles = rootEntries
63
1150
  .filter((e) => e.isFile() && e.name.endsWith(".d.ts"))
@@ -67,14 +1154,16 @@ const loadBindingsFromPackage = (registry, packageRoot, visited, forceDependency
67
1154
  const namespaceName = facadeFile.slice(0, -".d.ts".length);
68
1155
  const namespaceDir = path.join(absoluteRoot, namespaceName);
69
1156
  const bindingsPath = path.join(namespaceDir, "bindings.json");
70
- if (fs.existsSync(bindingsPath)) {
1157
+ if (!sourcePackageRoot && fs.existsSync(bindingsPath)) {
71
1158
  discoveredBindingsInPackage = true;
72
1159
  loadBindingsFromPath(registry, bindingsPath);
73
1160
  }
74
1161
  }
75
- const hasBindingsManifest = fs.existsSync(path.join(absoluteRoot, "tsonic.bindings.json"));
1162
+ const hasBindingsManifest = !sourcePackageRoot &&
1163
+ fs.existsSync(path.join(absoluteRoot, "tsonic.bindings.json"));
76
1164
  const hasSurfaceManifest = fs.existsSync(path.join(absoluteRoot, "tsonic.surface.json"));
77
1165
  const shouldTraverseDependencies = forceDependencyTraversal ||
1166
+ sourcePackageRoot ||
78
1167
  discoveredBindingsInPackage ||
79
1168
  hasBindingsManifest ||
80
1169
  hasSurfaceManifest;
@@ -101,12 +1190,16 @@ const loadBindingsFromPackage = (registry, packageRoot, visited, forceDependency
101
1190
  }
102
1191
  }
103
1192
  }
1193
+ const dependencyRoots = [];
104
1194
  for (const depName of dependencyNames) {
105
1195
  const dependencyRoot = resolveDependencyPackageRoot(absoluteRoot, depName);
106
1196
  if (dependencyRoot) {
107
- loadBindingsFromPackage(registry, dependencyRoot, visited, false);
1197
+ dependencyRoots.push(dependencyRoot);
108
1198
  }
109
1199
  }
1200
+ for (const dependencyRoot of preserveBindingPackageRootOrder(dependencyRoots)) {
1201
+ loadBindingsFromPackage(registry, dependencyRoot, visited, false);
1202
+ }
110
1203
  }
111
1204
  catch {
112
1205
  // Ignore JSON parse errors in package.json
@@ -125,7 +1218,7 @@ const loadBindingsFromPackage = (registry, packageRoot, visited, forceDependency
125
1218
  export const loadBindings = (typeRoots) => {
126
1219
  const registry = new BindingRegistry();
127
1220
  const visited = new Set();
128
- for (const typeRoot of typeRoots) {
1221
+ for (const typeRoot of preserveBindingPackageRootOrder(typeRoots)) {
129
1222
  loadBindingsFromPackage(registry, typeRoot, visited, true);
130
1223
  }
131
1224
  return registry;