@tsonic/frontend 0.0.62 → 0.0.64

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 (439) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/dependency-graph.d.ts +1 -1
  3. package/dist/dependency-graph.d.ts.map +1 -1
  4. package/dist/dependency-graph.js +1 -1
  5. package/dist/dependency-graph.js.map +1 -1
  6. package/dist/dotnet-metadata.d.ts +0 -12
  7. package/dist/dotnet-metadata.d.ts.map +1 -1
  8. package/dist/dotnet-metadata.js +0 -24
  9. package/dist/dotnet-metadata.js.map +1 -1
  10. package/dist/generic-function-values.d.ts +11 -0
  11. package/dist/generic-function-values.d.ts.map +1 -0
  12. package/dist/generic-function-values.js +243 -0
  13. package/dist/generic-function-values.js.map +1 -0
  14. package/dist/generic-function-values.test.d.ts +2 -0
  15. package/dist/generic-function-values.test.d.ts.map +1 -0
  16. package/dist/generic-function-values.test.js +256 -0
  17. package/dist/generic-function-values.test.js.map +1 -0
  18. package/dist/graph/extraction/imports.d.ts +5 -0
  19. package/dist/graph/extraction/imports.d.ts.map +1 -1
  20. package/dist/graph/extraction/imports.js +39 -1
  21. package/dist/graph/extraction/imports.js.map +1 -1
  22. package/dist/graph/extraction/index.d.ts +1 -1
  23. package/dist/graph/extraction/index.d.ts.map +1 -1
  24. package/dist/graph/extraction/index.js +1 -1
  25. package/dist/graph/extraction/index.js.map +1 -1
  26. package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
  27. package/dist/graph/extraction/orchestrator.js +16 -2
  28. package/dist/graph/extraction/orchestrator.js.map +1 -1
  29. package/dist/graph/extraction.d.ts +1 -1
  30. package/dist/graph/extraction.d.ts.map +1 -1
  31. package/dist/graph/extraction.js +1 -1
  32. package/dist/graph/extraction.js.map +1 -1
  33. package/dist/ir/binding/binding-factory.d.ts +17 -0
  34. package/dist/ir/binding/binding-factory.d.ts.map +1 -0
  35. package/dist/ir/binding/binding-factory.js +765 -0
  36. package/dist/ir/binding/binding-factory.js.map +1 -0
  37. package/dist/ir/binding/binding-helpers.d.ts +90 -0
  38. package/dist/ir/binding/binding-helpers.d.ts.map +1 -0
  39. package/dist/ir/binding/binding-helpers.js +387 -0
  40. package/dist/ir/binding/binding-helpers.js.map +1 -0
  41. package/dist/ir/binding/binding-types.d.ts +203 -0
  42. package/dist/ir/binding/binding-types.d.ts.map +1 -0
  43. package/dist/ir/binding/binding-types.js +9 -0
  44. package/dist/ir/binding/binding-types.js.map +1 -0
  45. package/dist/ir/binding/index.d.ts +4 -158
  46. package/dist/ir/binding/index.d.ts.map +1 -1
  47. package/dist/ir/binding/index.js +3 -1134
  48. package/dist/ir/binding/index.js.map +1 -1
  49. package/dist/ir/binding-resolution.test.js +248 -0
  50. package/dist/ir/binding-resolution.test.js.map +1 -1
  51. package/dist/ir/builder/imports.d.ts.map +1 -1
  52. package/dist/ir/builder/imports.js +8 -1
  53. package/dist/ir/builder/imports.js.map +1 -1
  54. package/dist/ir/builder.test.js +360 -0
  55. package/dist/ir/builder.test.js.map +1 -1
  56. package/dist/ir/converters/anonymous-synthesis.d.ts +3 -3
  57. package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -1
  58. package/dist/ir/converters/anonymous-synthesis.js +45 -8
  59. package/dist/ir/converters/anonymous-synthesis.js.map +1 -1
  60. package/dist/ir/converters/expressions/access/access-converter.d.ts +14 -0
  61. package/dist/ir/converters/expressions/access/access-converter.d.ts.map +1 -0
  62. package/dist/ir/converters/expressions/access/access-converter.js +141 -0
  63. package/dist/ir/converters/expressions/access/access-converter.js.map +1 -0
  64. package/dist/ir/converters/expressions/access/binding-resolution.d.ts +35 -0
  65. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -0
  66. package/dist/ir/converters/expressions/access/binding-resolution.js +447 -0
  67. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -0
  68. package/dist/ir/converters/expressions/access/member-resolution.d.ts +67 -0
  69. package/dist/ir/converters/expressions/access/member-resolution.d.ts.map +1 -0
  70. package/dist/ir/converters/expressions/access/member-resolution.js +262 -0
  71. package/dist/ir/converters/expressions/access/member-resolution.js.map +1 -0
  72. package/dist/ir/converters/expressions/access.d.ts +1 -7
  73. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  74. package/dist/ir/converters/expressions/access.js +1 -720
  75. package/dist/ir/converters/expressions/access.js.map +1 -1
  76. package/dist/ir/converters/expressions/calls/call-converter.d.ts +23 -0
  77. package/dist/ir/converters/expressions/calls/call-converter.d.ts.map +1 -0
  78. package/dist/ir/converters/expressions/calls/call-converter.js +526 -0
  79. package/dist/ir/converters/expressions/calls/call-converter.js.map +1 -0
  80. package/dist/ir/converters/expressions/calls/call-site-analysis.d.ts +53 -0
  81. package/dist/ir/converters/expressions/calls/call-site-analysis.d.ts.map +1 -0
  82. package/dist/ir/converters/expressions/calls/call-site-analysis.js +554 -0
  83. package/dist/ir/converters/expressions/calls/call-site-analysis.js.map +1 -0
  84. package/dist/ir/converters/expressions/calls/new-converter.d.ts +21 -0
  85. package/dist/ir/converters/expressions/calls/new-converter.d.ts.map +1 -0
  86. package/dist/ir/converters/expressions/calls/new-converter.js +182 -0
  87. package/dist/ir/converters/expressions/calls/new-converter.js.map +1 -0
  88. package/dist/ir/converters/expressions/calls.d.ts +2 -28
  89. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  90. package/dist/ir/converters/expressions/calls.js +2 -1344
  91. package/dist/ir/converters/expressions/calls.js.map +1 -1
  92. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  93. package/dist/ir/converters/expressions/collections.js +37 -6
  94. package/dist/ir/converters/expressions/collections.js.map +1 -1
  95. package/dist/ir/converters/expressions/functions.js +1 -1
  96. package/dist/ir/converters/expressions/functions.js.map +1 -1
  97. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
  98. package/dist/ir/converters/expressions/helpers.js +1 -0
  99. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  100. package/dist/ir/converters/expressions/other.d.ts.map +1 -1
  101. package/dist/ir/converters/expressions/other.js +3 -2
  102. package/dist/ir/converters/expressions/other.js.map +1 -1
  103. package/dist/ir/converters/flow-narrowing.d.ts.map +1 -1
  104. package/dist/ir/converters/flow-narrowing.js +3 -2
  105. package/dist/ir/converters/flow-narrowing.js.map +1 -1
  106. package/dist/ir/converters/statements/declarations/classes/methods.js +1 -1
  107. package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -1
  108. package/dist/ir/converters/statements/declarations/type-aliases.js +1 -1
  109. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  110. package/dist/ir/converters/statements/declarations/variables.d.ts +2 -2
  111. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
  112. package/dist/ir/converters/statements/declarations/variables.js +289 -2
  113. package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
  114. package/dist/ir/expression-converter.d.ts +0 -1
  115. package/dist/ir/expression-converter.d.ts.map +1 -1
  116. package/dist/ir/expression-converter.js +0 -2
  117. package/dist/ir/expression-converter.js.map +1 -1
  118. package/dist/ir/generic-function-value-lowering.test.d.ts +2 -0
  119. package/dist/ir/generic-function-value-lowering.test.d.ts.map +1 -0
  120. package/dist/ir/generic-function-value-lowering.test.js +312 -0
  121. package/dist/ir/generic-function-value-lowering.test.js.map +1 -0
  122. package/dist/ir/generic-validator.d.ts +3 -4
  123. package/dist/ir/generic-validator.d.ts.map +1 -1
  124. package/dist/ir/generic-validator.js +3 -35
  125. package/dist/ir/generic-validator.js.map +1 -1
  126. package/dist/ir/program-context.d.ts +12 -0
  127. package/dist/ir/program-context.d.ts.map +1 -1
  128. package/dist/ir/program-context.js +2 -0
  129. package/dist/ir/program-context.js.map +1 -1
  130. package/dist/ir/statement-converter.d.ts +0 -2
  131. package/dist/ir/statement-converter.d.ts.map +1 -1
  132. package/dist/ir/statement-converter.js +0 -3
  133. package/dist/ir/statement-converter.js.map +1 -1
  134. package/dist/ir/type-system/internal/handle-types.d.ts +16 -16
  135. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
  136. package/dist/ir/type-system/internal/nominal-env.d.ts +0 -2
  137. package/dist/ir/type-system/internal/nominal-env.d.ts.map +1 -1
  138. package/dist/ir/type-system/internal/nominal-env.js +2 -6
  139. package/dist/ir/type-system/internal/nominal-env.js.map +1 -1
  140. package/dist/ir/type-system/internal/type-converter/converter.d.ts +3 -1
  141. package/dist/ir/type-system/internal/type-converter/converter.d.ts.map +1 -1
  142. package/dist/ir/type-system/internal/type-converter/converter.js +3 -1
  143. package/dist/ir/type-system/internal/type-converter/converter.js.map +1 -1
  144. package/dist/ir/type-system/internal/type-converter/objects.js +7 -1
  145. package/dist/ir/type-system/internal/type-converter/objects.js.map +1 -1
  146. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts +0 -2
  147. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  148. package/dist/ir/type-system/internal/type-converter/orchestrator.js +322 -23
  149. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  150. package/dist/ir/type-system/internal/type-converter/orchestrator.test.d.ts +2 -0
  151. package/dist/ir/type-system/internal/type-converter/orchestrator.test.d.ts.map +1 -0
  152. package/dist/ir/type-system/internal/type-converter/orchestrator.test.js +265 -0
  153. package/dist/ir/type-system/internal/type-converter/orchestrator.test.js.map +1 -0
  154. package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -1
  155. package/dist/ir/type-system/internal/type-converter/primitives.js +5 -0
  156. package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -1
  157. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  158. package/dist/ir/type-system/internal/type-converter/references.js +67 -29
  159. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  160. package/dist/ir/type-system/internal/type-converter/utility-types.d.ts.map +1 -1
  161. package/dist/ir/type-system/internal/type-converter/utility-types.js +145 -0
  162. package/dist/ir/type-system/internal/type-converter/utility-types.js.map +1 -1
  163. package/dist/ir/type-system/internal/type-converter/utility-types.test.js +91 -1
  164. package/dist/ir/type-system/internal/type-converter/utility-types.test.js.map +1 -1
  165. package/dist/ir/type-system/internal/type-registry.d.ts +1 -1
  166. package/dist/ir/type-system/internal/type-registry.js +7 -7
  167. package/dist/ir/type-system/internal/type-registry.js.map +1 -1
  168. package/dist/ir/type-system/internal/universe/alias-table.d.ts +0 -14
  169. package/dist/ir/type-system/internal/universe/alias-table.d.ts.map +1 -1
  170. package/dist/ir/type-system/internal/universe/alias-table.js +0 -17
  171. package/dist/ir/type-system/internal/universe/alias-table.js.map +1 -1
  172. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts +3 -0
  173. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -1
  174. package/dist/ir/type-system/internal/universe/clr-catalog.js +4 -1044
  175. package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
  176. package/dist/ir/type-system/internal/universe/clr-entry-converter.d.ts +51 -0
  177. package/dist/ir/type-system/internal/universe/clr-entry-converter.d.ts.map +1 -0
  178. package/dist/ir/type-system/internal/universe/clr-entry-converter.js +657 -0
  179. package/dist/ir/type-system/internal/universe/clr-entry-converter.js.map +1 -0
  180. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts +52 -0
  181. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -0
  182. package/dist/ir/type-system/internal/universe/clr-type-parser.js +481 -0
  183. package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -0
  184. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts +2 -0
  185. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts.map +1 -0
  186. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js +55 -0
  187. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js.map +1 -0
  188. package/dist/ir/type-system/internal/universe/index.d.ts +1 -1
  189. package/dist/ir/type-system/internal/universe/index.d.ts.map +1 -1
  190. package/dist/ir/type-system/internal/universe/index.js +1 -3
  191. package/dist/ir/type-system/internal/universe/index.js.map +1 -1
  192. package/dist/ir/type-system/internal/universe/unified-universe.test.js +2 -0
  193. package/dist/ir/type-system/internal/universe/unified-universe.test.js.map +1 -1
  194. package/dist/ir/type-system/type-system-call-resolution.d.ts +69 -0
  195. package/dist/ir/type-system/type-system-call-resolution.d.ts.map +1 -0
  196. package/dist/ir/type-system/type-system-call-resolution.js +1121 -0
  197. package/dist/ir/type-system/type-system-call-resolution.js.map +1 -0
  198. package/dist/ir/type-system/type-system-inference.d.ts +98 -0
  199. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -0
  200. package/dist/ir/type-system/type-system-inference.js +1121 -0
  201. package/dist/ir/type-system/type-system-inference.js.map +1 -0
  202. package/dist/ir/type-system/type-system-relations.d.ts +15 -0
  203. package/dist/ir/type-system/type-system-relations.d.ts.map +1 -0
  204. package/dist/ir/type-system/type-system-relations.js +152 -0
  205. package/dist/ir/type-system/type-system-relations.js.map +1 -0
  206. package/dist/ir/type-system/type-system-state.d.ts +436 -0
  207. package/dist/ir/type-system/type-system-state.d.ts.map +1 -0
  208. package/dist/ir/type-system/type-system-state.js +212 -0
  209. package/dist/ir/type-system/type-system-state.js.map +1 -0
  210. package/dist/ir/type-system/type-system-utilities.d.ts +56 -0
  211. package/dist/ir/type-system/type-system-utilities.d.ts.map +1 -0
  212. package/dist/ir/type-system/type-system-utilities.js +373 -0
  213. package/dist/ir/type-system/type-system-utilities.js.map +1 -0
  214. package/dist/ir/type-system/type-system.d.ts +17 -358
  215. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  216. package/dist/ir/type-system/type-system.js +67 -2945
  217. package/dist/ir/type-system/type-system.js.map +1 -1
  218. package/dist/ir/types/index.d.ts +1 -0
  219. package/dist/ir/types/index.d.ts.map +1 -1
  220. package/dist/ir/types/index.js +1 -0
  221. package/dist/ir/types/index.js.map +1 -1
  222. package/dist/ir/types/ir-substitution.js +1 -1
  223. package/dist/ir/types/ir-substitution.js.map +1 -1
  224. package/dist/ir/types/statements.d.ts +1 -1
  225. package/dist/ir/types/type-ops.d.ts +9 -0
  226. package/dist/ir/types/type-ops.d.ts.map +1 -0
  227. package/dist/ir/types/type-ops.js +134 -0
  228. package/dist/ir/types/type-ops.js.map +1 -0
  229. package/dist/ir/types/type-ops.test.d.ts +2 -0
  230. package/dist/ir/types/type-ops.test.d.ts.map +1 -0
  231. package/dist/ir/types/type-ops.test.js +73 -0
  232. package/dist/ir/types/type-ops.test.js.map +1 -0
  233. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  234. package/dist/ir/validation/anonymous-type-lowering-pass.js +34 -0
  235. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  236. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts +2 -0
  237. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts.map +1 -0
  238. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js +121 -0
  239. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js.map +1 -0
  240. package/dist/ir/validation/attribute-collection/arg-extractor.d.ts +58 -0
  241. package/dist/ir/validation/attribute-collection/arg-extractor.d.ts.map +1 -0
  242. package/dist/ir/validation/attribute-collection/arg-extractor.js +284 -0
  243. package/dist/ir/validation/attribute-collection/arg-extractor.js.map +1 -0
  244. package/dist/ir/validation/attribute-collection/marker-parser.d.ts +28 -0
  245. package/dist/ir/validation/attribute-collection/marker-parser.d.ts.map +1 -0
  246. package/dist/ir/validation/attribute-collection/marker-parser.js +404 -0
  247. package/dist/ir/validation/attribute-collection/marker-parser.js.map +1 -0
  248. package/dist/ir/validation/attribute-collection/orchestrator.d.ts +28 -0
  249. package/dist/ir/validation/attribute-collection/orchestrator.d.ts.map +1 -0
  250. package/dist/ir/validation/attribute-collection/orchestrator.js +332 -0
  251. package/dist/ir/validation/attribute-collection/orchestrator.js.map +1 -0
  252. package/dist/ir/validation/attribute-collection-pass.d.ts +1 -23
  253. package/dist/ir/validation/attribute-collection-pass.d.ts.map +1 -1
  254. package/dist/ir/validation/attribute-collection-pass.js +1 -961
  255. package/dist/ir/validation/attribute-collection-pass.js.map +1 -1
  256. package/dist/ir/validation/attribute-collection-pass.test.js +12 -6
  257. package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
  258. package/dist/ir/validation/numeric-invariants.test.js +29 -0
  259. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  260. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  261. package/dist/ir/validation/numeric-proof-pass.js +21 -0
  262. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  263. package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
  264. package/dist/ir/validation/soundness-gate.js +2 -1
  265. package/dist/ir/validation/soundness-gate.js.map +1 -1
  266. package/dist/ir/validation/soundness-gate.test.js +69 -0
  267. package/dist/ir/validation/soundness-gate.test.js.map +1 -1
  268. package/dist/ir/validation/yield-lowering-pass.d.ts +11 -5
  269. package/dist/ir/validation/yield-lowering-pass.d.ts.map +1 -1
  270. package/dist/ir/validation/yield-lowering-pass.js +942 -48
  271. package/dist/ir/validation/yield-lowering-pass.js.map +1 -1
  272. package/dist/ir/validation/yield-lowering-pass.test.js +1333 -127
  273. package/dist/ir/validation/yield-lowering-pass.test.js.map +1 -1
  274. package/dist/program/binding-loader.d.ts +37 -0
  275. package/dist/program/binding-loader.d.ts.map +1 -0
  276. package/dist/program/binding-loader.js +155 -0
  277. package/dist/program/binding-loader.js.map +1 -0
  278. package/dist/program/binding-registry.d.ts +106 -0
  279. package/dist/program/binding-registry.d.ts.map +1 -0
  280. package/dist/program/binding-registry.js +590 -0
  281. package/dist/program/binding-registry.js.map +1 -0
  282. package/dist/program/binding-types.d.ts +166 -0
  283. package/dist/program/binding-types.d.ts.map +1 -0
  284. package/dist/program/binding-types.js +57 -0
  285. package/dist/program/binding-types.js.map +1 -0
  286. package/dist/program/bindings.d.ts +6 -271
  287. package/dist/program/bindings.d.ts.map +1 -1
  288. package/dist/program/bindings.js +7 -781
  289. package/dist/program/bindings.js.map +1 -1
  290. package/dist/program/creation.d.ts.map +1 -1
  291. package/dist/program/creation.js +104 -13
  292. package/dist/program/creation.js.map +1 -1
  293. package/dist/program/creation.test.js +133 -1
  294. package/dist/program/creation.test.js.map +1 -1
  295. package/dist/program/diagnostics.d.ts +1 -1
  296. package/dist/program/diagnostics.d.ts.map +1 -1
  297. package/dist/program/diagnostics.js +47 -2
  298. package/dist/program/diagnostics.js.map +1 -1
  299. package/dist/program/diagnostics.test.d.ts +2 -0
  300. package/dist/program/diagnostics.test.d.ts.map +1 -0
  301. package/dist/program/diagnostics.test.js +58 -0
  302. package/dist/program/diagnostics.test.js.map +1 -0
  303. package/dist/program/types.d.ts +2 -0
  304. package/dist/program/types.d.ts.map +1 -1
  305. package/dist/resolver/clr-bindings-resolver.d.ts +0 -1
  306. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  307. package/dist/resolver/clr-bindings-resolver.js +22 -32
  308. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  309. package/dist/resolver/clr-bindings-resolver.test.js +0 -27
  310. package/dist/resolver/clr-bindings-resolver.test.js.map +1 -1
  311. package/dist/resolver/import-resolution.d.ts +3 -1
  312. package/dist/resolver/import-resolution.d.ts.map +1 -1
  313. package/dist/resolver/import-resolution.js +14 -11
  314. package/dist/resolver/import-resolution.js.map +1 -1
  315. package/dist/resolver/naming.d.ts.map +1 -1
  316. package/dist/resolver/naming.js +1 -0
  317. package/dist/resolver/naming.js.map +1 -1
  318. package/dist/resolver/node-module-aliases.d.ts +6 -0
  319. package/dist/resolver/node-module-aliases.d.ts.map +1 -0
  320. package/dist/resolver/node-module-aliases.js +164 -0
  321. package/dist/resolver/node-module-aliases.js.map +1 -0
  322. package/dist/resolver/node-module-aliases.test.d.ts +2 -0
  323. package/dist/resolver/node-module-aliases.test.d.ts.map +1 -0
  324. package/dist/resolver/node-module-aliases.test.js +64 -0
  325. package/dist/resolver/node-module-aliases.test.js.map +1 -0
  326. package/dist/resolver.test.js +103 -0
  327. package/dist/resolver.test.js.map +1 -1
  328. package/dist/surface/js-surface-shims.d.ts +3 -0
  329. package/dist/surface/js-surface-shims.d.ts.map +1 -0
  330. package/dist/surface/js-surface-shims.js +332 -0
  331. package/dist/surface/js-surface-shims.js.map +1 -0
  332. package/dist/surface/js-surface-shims.test.d.ts +2 -0
  333. package/dist/surface/js-surface-shims.test.d.ts.map +1 -0
  334. package/dist/surface/js-surface-shims.test.js +53 -0
  335. package/dist/surface/js-surface-shims.test.js.map +1 -0
  336. package/dist/surface/profiles.d.ts +10 -0
  337. package/dist/surface/profiles.d.ts.map +1 -0
  338. package/dist/surface/profiles.js +65 -0
  339. package/dist/surface/profiles.js.map +1 -0
  340. package/dist/surface/profiles.test.d.ts +2 -0
  341. package/dist/surface/profiles.test.d.ts.map +1 -0
  342. package/dist/surface/profiles.test.js +44 -0
  343. package/dist/surface/profiles.test.js.map +1 -0
  344. package/dist/types/diagnostic.d.ts +1 -1
  345. package/dist/types/diagnostic.d.ts.map +1 -1
  346. package/dist/types/diagnostic.js.map +1 -1
  347. package/dist/validation/features.d.ts.map +1 -1
  348. package/dist/validation/features.js +38 -13
  349. package/dist/validation/features.js.map +1 -1
  350. package/dist/validation/features.test.d.ts +2 -0
  351. package/dist/validation/features.test.d.ts.map +1 -0
  352. package/dist/validation/features.test.js +273 -0
  353. package/dist/validation/features.test.js.map +1 -0
  354. package/dist/validation/generics.d.ts +1 -1
  355. package/dist/validation/generics.d.ts.map +1 -1
  356. package/dist/validation/generics.js +2 -26
  357. package/dist/validation/generics.js.map +1 -1
  358. package/dist/validation/imports.d.ts.map +1 -1
  359. package/dist/validation/imports.js +29 -5
  360. package/dist/validation/imports.js.map +1 -1
  361. package/dist/validation/imports.test.d.ts +2 -0
  362. package/dist/validation/imports.test.d.ts.map +1 -0
  363. package/dist/validation/imports.test.js +211 -0
  364. package/dist/validation/imports.test.js.map +1 -0
  365. package/dist/validation/static-safety.d.ts +6 -6
  366. package/dist/validation/static-safety.d.ts.map +1 -1
  367. package/dist/validation/static-safety.js +163 -109
  368. package/dist/validation/static-safety.js.map +1 -1
  369. package/dist/validation/unsupported-utility-types.d.ts +3 -3
  370. package/dist/validation/unsupported-utility-types.d.ts.map +1 -1
  371. package/dist/validation/unsupported-utility-types.js +4 -7
  372. package/dist/validation/unsupported-utility-types.js.map +1 -1
  373. package/dist/validator.maximus.test.d.ts +2 -0
  374. package/dist/validator.maximus.test.d.ts.map +1 -0
  375. package/dist/validator.maximus.test.js +1214 -0
  376. package/dist/validator.maximus.test.js.map +1 -0
  377. package/dist/validator.test.js +152 -18
  378. package/dist/validator.test.js.map +1 -1
  379. package/package.json +1 -1
  380. package/dist/ir/converters/statements/declarations/registry.d.ts +0 -96
  381. package/dist/ir/converters/statements/declarations/registry.d.ts.map +0 -1
  382. package/dist/ir/converters/statements/declarations/registry.js +0 -130
  383. package/dist/ir/converters/statements/declarations/registry.js.map +0 -1
  384. package/dist/ir/this-parameter-inference.test.d.ts +0 -13
  385. package/dist/ir/this-parameter-inference.test.d.ts.map +0 -1
  386. package/dist/ir/this-parameter-inference.test.js +0 -165
  387. package/dist/ir/this-parameter-inference.test.js.map +0 -1
  388. package/dist/metadata/bindings-loader.d.ts +0 -41
  389. package/dist/metadata/bindings-loader.d.ts.map +0 -1
  390. package/dist/metadata/bindings-loader.js +0 -308
  391. package/dist/metadata/bindings-loader.js.map +0 -1
  392. package/dist/metadata/bindings-loader.test.d.ts +0 -5
  393. package/dist/metadata/bindings-loader.test.d.ts.map +0 -1
  394. package/dist/metadata/bindings-loader.test.js +0 -117
  395. package/dist/metadata/bindings-loader.test.js.map +0 -1
  396. package/dist/metadata/index.d.ts +0 -8
  397. package/dist/metadata/index.d.ts.map +0 -1
  398. package/dist/metadata/index.js +0 -7
  399. package/dist/metadata/index.js.map +0 -1
  400. package/dist/metadata/library-loader.d.ts +0 -42
  401. package/dist/metadata/library-loader.d.ts.map +0 -1
  402. package/dist/metadata/library-loader.js +0 -126
  403. package/dist/metadata/library-loader.js.map +0 -1
  404. package/dist/metadata/loader.d.ts +0 -26
  405. package/dist/metadata/loader.d.ts.map +0 -1
  406. package/dist/metadata/loader.js +0 -333
  407. package/dist/metadata/loader.js.map +0 -1
  408. package/dist/metadata/loader.test.d.ts +0 -5
  409. package/dist/metadata/loader.test.d.ts.map +0 -1
  410. package/dist/metadata/loader.test.js +0 -119
  411. package/dist/metadata/loader.test.js.map +0 -1
  412. package/dist/resolver/naming-policy.d.ts +0 -20
  413. package/dist/resolver/naming-policy.d.ts.map +0 -1
  414. package/dist/resolver/naming-policy.js +0 -40
  415. package/dist/resolver/naming-policy.js.map +0 -1
  416. package/dist/types/bindings.d.ts +0 -153
  417. package/dist/types/bindings.d.ts.map +0 -1
  418. package/dist/types/bindings.js +0 -14
  419. package/dist/types/bindings.js.map +0 -1
  420. package/dist/types/metadata.d.ts +0 -196
  421. package/dist/types/metadata.d.ts.map +0 -1
  422. package/dist/types/metadata.js +0 -10
  423. package/dist/types/metadata.js.map +0 -1
  424. package/dist/types/nested-types.d.ts +0 -111
  425. package/dist/types/nested-types.d.ts.map +0 -1
  426. package/dist/types/nested-types.js +0 -176
  427. package/dist/types/nested-types.js.map +0 -1
  428. package/dist/types/nested-types.test.d.ts +0 -5
  429. package/dist/types/nested-types.test.d.ts.map +0 -1
  430. package/dist/types/nested-types.test.js +0 -135
  431. package/dist/types/nested-types.test.js.map +0 -1
  432. package/dist/types/ref-parameters.d.ts +0 -123
  433. package/dist/types/ref-parameters.d.ts.map +0 -1
  434. package/dist/types/ref-parameters.js +0 -203
  435. package/dist/types/ref-parameters.js.map +0 -1
  436. package/dist/types/ref-parameters.test.d.ts +0 -5
  437. package/dist/types/ref-parameters.test.d.ts.map +0 -1
  438. package/dist/types/ref-parameters.test.js +0 -147
  439. package/dist/types/ref-parameters.test.js.map +0 -1
@@ -1,153 +0,0 @@
1
- /**
2
- * Type definitions for .NET bindings.json files generated by tsbindgen.
3
- *
4
- * These types represent runtime binding information used for reflection-based dispatch.
5
- * All property names use camelCase (JavaScript convention).
6
- *
7
- * The bindings format uses a dual-version structure:
8
- * - V1 Definitions: Full method signatures for reference
9
- * - V2 Exposures: Lightweight binding info for runtime dispatch
10
- *
11
- * @see spec/bindings.md for complete schema documentation
12
- */
13
- /**
14
- * Root bindings file structure.
15
- * Represents a single namespace with all its type bindings.
16
- */
17
- export type BindingsFile = {
18
- readonly namespace: string;
19
- readonly types: TypeBinding[];
20
- };
21
- /**
22
- * Complete binding information for a CLR type.
23
- * Includes both V1 definitions and V2 exposures.
24
- */
25
- export type TypeBinding = {
26
- readonly clrName: string;
27
- readonly tsEmitName: string;
28
- readonly assemblyName: string;
29
- readonly metadataToken: number;
30
- readonly methods?: MethodBinding[];
31
- readonly properties?: PropertyBinding[];
32
- readonly fields?: FieldBinding[];
33
- readonly events?: EventBinding[];
34
- readonly exposedMethods?: ExposedMethodBinding[];
35
- readonly exposedProperties?: ExposedPropertyBinding[];
36
- readonly exposedFields?: ExposedFieldBinding[];
37
- readonly exposedEvents?: ExposedEventBinding[];
38
- };
39
- /**
40
- * V1 Definition: Complete method signature.
41
- * Used for type checking and reference.
42
- */
43
- export type MethodBinding = {
44
- readonly name: string;
45
- readonly clrName: string;
46
- readonly tsEmitName: string;
47
- readonly isStatic: boolean;
48
- readonly arity: number;
49
- readonly parameters: ParameterBinding[];
50
- readonly returnType: string;
51
- readonly metadataToken: number;
52
- };
53
- /**
54
- * V1 Definition: Property information.
55
- */
56
- export type PropertyBinding = {
57
- readonly name: string;
58
- readonly clrName: string;
59
- readonly tsEmitName: string;
60
- readonly isStatic: boolean;
61
- readonly type: string;
62
- readonly hasGetter: boolean;
63
- readonly hasSetter: boolean;
64
- readonly getterToken?: number;
65
- readonly setterToken?: number;
66
- };
67
- /**
68
- * V1 Definition: Field information.
69
- */
70
- export type FieldBinding = {
71
- readonly name: string;
72
- readonly clrName: string;
73
- readonly tsEmitName: string;
74
- readonly isStatic: boolean;
75
- readonly type: string;
76
- readonly metadataToken: number;
77
- };
78
- /**
79
- * V1 Definition: Event information.
80
- */
81
- export type EventBinding = {
82
- readonly name: string;
83
- readonly clrName: string;
84
- readonly tsEmitName: string;
85
- readonly isStatic: boolean;
86
- readonly type: string;
87
- readonly adderToken: number;
88
- readonly removerToken: number;
89
- };
90
- /**
91
- * Parameter binding information.
92
- */
93
- export type ParameterBinding = {
94
- readonly name: string;
95
- readonly type: string;
96
- readonly isRef: boolean;
97
- readonly isOut: boolean;
98
- readonly isIn?: boolean;
99
- readonly isParams: boolean;
100
- };
101
- /**
102
- * V2 Exposure: Lightweight method binding for runtime dispatch.
103
- * Optimized format with minimal data for fast lookups.
104
- */
105
- export type ExposedMethodBinding = {
106
- readonly tsEmitName: string;
107
- readonly isStatic: boolean;
108
- readonly arity: number;
109
- readonly overloads: MethodOverloadBinding[];
110
- };
111
- /**
112
- * Method overload binding.
113
- * One entry per unique parameter count.
114
- */
115
- export type MethodOverloadBinding = {
116
- readonly parameterCount: number;
117
- readonly metadataToken: number;
118
- };
119
- /**
120
- * V2 Exposure: Lightweight property binding for runtime access.
121
- */
122
- export type ExposedPropertyBinding = {
123
- readonly tsEmitName: string;
124
- readonly isStatic: boolean;
125
- readonly getterToken?: number;
126
- readonly setterToken?: number;
127
- };
128
- /**
129
- * V2 Exposure: Lightweight field binding for runtime access.
130
- */
131
- export type ExposedFieldBinding = {
132
- readonly tsEmitName: string;
133
- readonly isStatic: boolean;
134
- readonly metadataToken: number;
135
- };
136
- /**
137
- * V2 Exposure: Lightweight event binding for runtime access.
138
- */
139
- export type ExposedEventBinding = {
140
- readonly tsEmitName: string;
141
- readonly isStatic: boolean;
142
- readonly adderToken: number;
143
- readonly removerToken: number;
144
- };
145
- /**
146
- * Helper type: Extract V1 definitions from a type binding.
147
- */
148
- export type V1Definitions = Pick<TypeBinding, "methods" | "properties" | "fields" | "events">;
149
- /**
150
- * Helper type: Extract V2 exposures from a type binding.
151
- */
152
- export type V2Exposures = Pick<TypeBinding, "exposedMethods" | "exposedProperties" | "exposedFields" | "exposedEvents">;
153
- //# sourceMappingURL=bindings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/types/bindings.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Type definitions for .NET bindings.json files generated by tsbindgen.
3
- *
4
- * These types represent runtime binding information used for reflection-based dispatch.
5
- * All property names use camelCase (JavaScript convention).
6
- *
7
- * The bindings format uses a dual-version structure:
8
- * - V1 Definitions: Full method signatures for reference
9
- * - V2 Exposures: Lightweight binding info for runtime dispatch
10
- *
11
- * @see spec/bindings.md for complete schema documentation
12
- */
13
- export {};
14
- //# sourceMappingURL=bindings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/types/bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -1,196 +0,0 @@
1
- /**
2
- * Type definitions for .NET metadata.json files generated by tsbindgen.
3
- *
4
- * These types represent the CLR type system metadata in a TypeScript-friendly format.
5
- * All property names use camelCase (JavaScript convention).
6
- *
7
- * @see spec/metadata.md for complete schema documentation
8
- */
9
- /**
10
- * Root metadata file structure.
11
- * Represents a single namespace with all its types.
12
- */
13
- export type MetadataFile = {
14
- readonly namespace: string;
15
- readonly contributingAssemblies: string[];
16
- readonly types: TypeMetadata[];
17
- };
18
- /**
19
- * Type kind enumeration.
20
- * Represents the fundamental kind of CLR type.
21
- */
22
- export type TypeKind = "Class" | "Interface" | "Struct" | "Enum" | "Delegate";
23
- /**
24
- * Accessibility level enumeration.
25
- * Represents CLR accessibility modifiers.
26
- */
27
- export type Accessibility = "Public" | "Internal" | "Protected" | "ProtectedInternal" | "PrivateProtected" | "Private";
28
- /**
29
- * Emit scope enumeration.
30
- * Determines where a member should be emitted in TypeScript declarations.
31
- */
32
- export type EmitScope = "ClassSurface" | "ViewOnly" | "Omitted";
33
- /**
34
- * Provenance enumeration.
35
- * Tracks the origin of a member in the type hierarchy.
36
- */
37
- export type Provenance = "Original" | "Declared" | "InlineFromInterface" | "InlineFromBase" | "SynthesizedViewOnly" | "ExplicitView";
38
- /**
39
- * Complete metadata for a CLR type.
40
- */
41
- export type TypeMetadata = {
42
- readonly clrName: string;
43
- readonly tsEmitName: string;
44
- readonly kind: TypeKind;
45
- readonly accessibility: Accessibility;
46
- readonly isAbstract: boolean;
47
- readonly isSealed: boolean;
48
- readonly isStatic: boolean;
49
- readonly arity: number;
50
- readonly baseType?: string | null;
51
- readonly interfaces?: string[];
52
- readonly isValueType?: boolean;
53
- readonly methods: MethodMetadata[];
54
- readonly properties: PropertyMetadata[];
55
- readonly fields: FieldMetadata[];
56
- readonly events: EventMetadata[];
57
- readonly constructors: ConstructorMetadata[];
58
- readonly intentionalOmissions?: IntentionalOmissions;
59
- readonly explicitViews?: ExplicitView[];
60
- };
61
- /**
62
- * Method metadata.
63
- */
64
- export type MethodMetadata = {
65
- readonly name: string;
66
- readonly clrName: string;
67
- readonly tsEmitName: string;
68
- readonly accessibility: Accessibility;
69
- readonly isStatic: boolean;
70
- readonly isAbstract: boolean;
71
- readonly isVirtual: boolean;
72
- readonly isFinal: boolean;
73
- readonly arity: number;
74
- readonly parameters: ParameterMetadata[];
75
- readonly returnType: string;
76
- readonly emitScope: EmitScope;
77
- readonly provenance: Provenance;
78
- };
79
- /**
80
- * Property metadata.
81
- */
82
- export type PropertyMetadata = {
83
- readonly name: string;
84
- readonly clrName: string;
85
- readonly tsEmitName: string;
86
- readonly accessibility: Accessibility;
87
- readonly isStatic: boolean;
88
- readonly type: string;
89
- readonly hasGetter: boolean;
90
- readonly hasSetter: boolean;
91
- readonly emitScope: EmitScope;
92
- readonly provenance: Provenance;
93
- };
94
- /**
95
- * Field metadata.
96
- */
97
- export type FieldMetadata = {
98
- readonly name: string;
99
- readonly clrName: string;
100
- readonly tsEmitName: string;
101
- readonly accessibility: Accessibility;
102
- readonly isStatic: boolean;
103
- readonly isReadonly: boolean;
104
- readonly type: string;
105
- readonly emitScope: EmitScope;
106
- readonly provenance: Provenance;
107
- };
108
- /**
109
- * Event metadata.
110
- */
111
- export type EventMetadata = {
112
- readonly name: string;
113
- readonly clrName: string;
114
- readonly tsEmitName: string;
115
- readonly accessibility: Accessibility;
116
- readonly isStatic: boolean;
117
- readonly type: string;
118
- readonly emitScope: EmitScope;
119
- readonly provenance: Provenance;
120
- };
121
- /**
122
- * Constructor metadata.
123
- */
124
- export type ConstructorMetadata = {
125
- readonly accessibility: Accessibility;
126
- readonly parameters: ParameterMetadata[];
127
- readonly emitScope: EmitScope;
128
- };
129
- /**
130
- * Parameter metadata.
131
- */
132
- export type ParameterMetadata = {
133
- readonly name: string;
134
- readonly type: string;
135
- readonly isRef: boolean;
136
- readonly isOut: boolean;
137
- readonly isIn?: boolean;
138
- readonly isParams: boolean;
139
- readonly defaultValue?: unknown;
140
- };
141
- /**
142
- * Intentional omissions from TypeScript declarations.
143
- * Tracks members that are deliberately not emitted.
144
- */
145
- export type IntentionalOmissions = {
146
- readonly methods?: OmittedMethod[];
147
- readonly properties?: OmittedProperty[];
148
- readonly fields?: OmittedField[];
149
- readonly events?: OmittedEvent[];
150
- };
151
- /**
152
- * Omitted method information.
153
- */
154
- export type OmittedMethod = {
155
- readonly name: string;
156
- readonly reason: string;
157
- };
158
- /**
159
- * Omitted property information.
160
- */
161
- export type OmittedProperty = {
162
- readonly name: string;
163
- readonly reason: string;
164
- };
165
- /**
166
- * Omitted field information.
167
- */
168
- export type OmittedField = {
169
- readonly name: string;
170
- readonly reason: string;
171
- };
172
- /**
173
- * Omitted event information.
174
- */
175
- export type OmittedEvent = {
176
- readonly name: string;
177
- readonly reason: string;
178
- };
179
- /**
180
- * Explicit interface view metadata.
181
- * Represents an As_IInterface property for explicit interface implementations.
182
- */
183
- export type ExplicitView = {
184
- readonly interfaceName: string;
185
- readonly tsPropertyName: string;
186
- readonly members: ExplicitViewMember[];
187
- };
188
- /**
189
- * Member within an explicit interface view.
190
- */
191
- export type ExplicitViewMember = {
192
- readonly kind: "Method" | "Property" | "Event";
193
- readonly name: string;
194
- readonly clrName: string;
195
- };
196
- //# sourceMappingURL=metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Type definitions for .NET metadata.json files generated by tsbindgen.
3
- *
4
- * These types represent the CLR type system metadata in a TypeScript-friendly format.
5
- * All property names use camelCase (JavaScript convention).
6
- *
7
- * @see spec/metadata.md for complete schema documentation
8
- */
9
- export {};
10
- //# sourceMappingURL=metadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/types/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1,111 +0,0 @@
1
- /**
2
- * Nested Types Handling - Parse and transform nested type names.
3
- *
4
- * C# supports nested types (types inside types). TypeScript doesn't have true nested
5
- * type syntax, so tsbindgen flattens them using a dollar sign separator:
6
- *
7
- * CLR: Outer+Nested (reflection uses +)
8
- * TypeScript: Outer$Nested ($ separator)
9
- * C#: Outer.Nested (dot in source code)
10
- *
11
- * @see spec/nested-types.md for complete documentation
12
- */
13
- /**
14
- * Information about a nested type name.
15
- */
16
- export type NestedTypeInfo = {
17
- readonly isNested: boolean;
18
- readonly outerType: string;
19
- readonly nestedType: string;
20
- readonly fullPath: readonly string[];
21
- readonly depth: number;
22
- };
23
- /**
24
- * Parse a TypeScript type name to check if it represents a nested type.
25
- *
26
- * @param tsEmitName - TypeScript emit name (e.g., "List_1$Enumerator")
27
- * @returns Nested type info if nested, undefined if not nested
28
- */
29
- export declare const parseNestedTypeName: (tsEmitName: string) => NestedTypeInfo | undefined;
30
- /**
31
- * Check if a TypeScript emit name represents a nested type.
32
- *
33
- * @param tsEmitName - TypeScript emit name
34
- * @returns True if nested type
35
- */
36
- export declare const isNestedType: (tsEmitName: string) => boolean;
37
- /**
38
- * Convert TypeScript nested type name to C# nested type name.
39
- *
40
- * TypeScript: List_1$Enumerator
41
- * C#: List<T>.Enumerator
42
- *
43
- * Note: This only converts the separator ($ → .). Generic arity substitution
44
- * (_1 → <T>) is handled separately by generic type processing.
45
- *
46
- * @param tsEmitName - TypeScript emit name with $ separator
47
- * @returns C# name with dot separator (generic arity not substituted)
48
- */
49
- export declare const tsCSharpNestedTypeName: (tsEmitName: string) => string;
50
- /**
51
- * Convert CLR reflection name to TypeScript emit name.
52
- *
53
- * CLR uses + for nested types (reflection metadata).
54
- * TypeScript uses $.
55
- *
56
- * CLR: List`1+Enumerator
57
- * TypeScript: List_1$Enumerator
58
- *
59
- * @param clrName - CLR reflection name with + separator and ` for generics
60
- * @returns TypeScript emit name with $ separator and _ for generics
61
- */
62
- export declare const clrToTsNestedTypeName: (clrName: string) => string;
63
- /**
64
- * Convert TypeScript emit name to CLR reflection name.
65
- *
66
- * Reverse of clrToTsNestedTypeName.
67
- *
68
- * TypeScript: List_1$Enumerator
69
- * CLR: List`1+Enumerator
70
- *
71
- * @param tsEmitName - TypeScript emit name
72
- * @returns CLR reflection name
73
- */
74
- export declare const tsToCLRNestedTypeName: (tsEmitName: string) => string;
75
- /**
76
- * Get all nesting levels from a nested type name.
77
- *
78
- * @param tsEmitName - TypeScript emit name (e.g., "A$B$C")
79
- * @returns Array of type names at each level ["A", "A$B", "A$B$C"]
80
- */
81
- export declare const getNestedTypeLevels: (tsEmitName: string) => readonly string[];
82
- /**
83
- * Get the outermost type name from a nested type.
84
- *
85
- * @param tsEmitName - TypeScript emit name (e.g., "List_1$Enumerator")
86
- * @returns Outermost type name (e.g., "List_1")
87
- */
88
- export declare const getOutermostType: (tsEmitName: string) => string;
89
- /**
90
- * Get the innermost type name from a nested type.
91
- *
92
- * @param tsEmitName - TypeScript emit name (e.g., "A$B$C")
93
- * @returns Innermost type name (e.g., "C")
94
- */
95
- export declare const getInnermostType: (tsEmitName: string) => string;
96
- /**
97
- * Check if one type is nested inside another.
98
- *
99
- * @param innerType - Potentially nested type (e.g., "List_1$Enumerator")
100
- * @param outerType - Potentially containing type (e.g., "List_1")
101
- * @returns True if innerType is nested inside outerType
102
- */
103
- export declare const isNestedInside: (innerType: string, outerType: string) => boolean;
104
- /**
105
- * Get parent type name from a nested type.
106
- *
107
- * @param tsEmitName - TypeScript emit name (e.g., "A$B$C")
108
- * @returns Parent type name (e.g., "A$B"), or undefined if not nested
109
- */
110
- export declare const getParentType: (tsEmitName: string) => string | undefined;
111
- //# sourceMappingURL=nested-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nested-types.d.ts","sourceRoot":"","sources":["../../src/types/nested-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,KACjB,cAAc,GAAG,SA0BnB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,OAEjD,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,GAAI,YAAY,MAAM,KAAG,MAE3D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,MAQvD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,KAAG,MAW1D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,KAAG,SAAS,MAAM,EAavE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,KAAG,MAMrD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,KAAG,MAIrD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,WAAW,MAAM,EACjB,WAAW,MAAM,KAChB,OAMF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,YAAY,MAAM,KAAG,MAAM,GAAG,SAW3D,CAAC"}
@@ -1,176 +0,0 @@
1
- /**
2
- * Nested Types Handling - Parse and transform nested type names.
3
- *
4
- * C# supports nested types (types inside types). TypeScript doesn't have true nested
5
- * type syntax, so tsbindgen flattens them using a dollar sign separator:
6
- *
7
- * CLR: Outer+Nested (reflection uses +)
8
- * TypeScript: Outer$Nested ($ separator)
9
- * C#: Outer.Nested (dot in source code)
10
- *
11
- * @see spec/nested-types.md for complete documentation
12
- */
13
- /**
14
- * Parse a TypeScript type name to check if it represents a nested type.
15
- *
16
- * @param tsEmitName - TypeScript emit name (e.g., "List_1$Enumerator")
17
- * @returns Nested type info if nested, undefined if not nested
18
- */
19
- export const parseNestedTypeName = (tsEmitName) => {
20
- // Check if name contains $ separator
21
- if (!tsEmitName.includes("$")) {
22
- return undefined;
23
- }
24
- // Split on $ to get nesting path
25
- const parts = tsEmitName.split("$");
26
- if (parts.length < 2) {
27
- return undefined;
28
- }
29
- const outerType = parts[0];
30
- const nestedType = parts[parts.length - 1];
31
- if (!outerType || !nestedType) {
32
- return undefined;
33
- }
34
- return {
35
- isNested: true,
36
- outerType,
37
- nestedType,
38
- fullPath: parts,
39
- depth: parts.length - 1,
40
- };
41
- };
42
- /**
43
- * Check if a TypeScript emit name represents a nested type.
44
- *
45
- * @param tsEmitName - TypeScript emit name
46
- * @returns True if nested type
47
- */
48
- export const isNestedType = (tsEmitName) => {
49
- return tsEmitName.includes("$");
50
- };
51
- /**
52
- * Convert TypeScript nested type name to C# nested type name.
53
- *
54
- * TypeScript: List_1$Enumerator
55
- * C#: List<T>.Enumerator
56
- *
57
- * Note: This only converts the separator ($ → .). Generic arity substitution
58
- * (_1 → <T>) is handled separately by generic type processing.
59
- *
60
- * @param tsEmitName - TypeScript emit name with $ separator
61
- * @returns C# name with dot separator (generic arity not substituted)
62
- */
63
- export const tsCSharpNestedTypeName = (tsEmitName) => {
64
- return tsEmitName.replace(/\$/g, ".");
65
- };
66
- /**
67
- * Convert CLR reflection name to TypeScript emit name.
68
- *
69
- * CLR uses + for nested types (reflection metadata).
70
- * TypeScript uses $.
71
- *
72
- * CLR: List`1+Enumerator
73
- * TypeScript: List_1$Enumerator
74
- *
75
- * @param clrName - CLR reflection name with + separator and ` for generics
76
- * @returns TypeScript emit name with $ separator and _ for generics
77
- */
78
- export const clrToTsNestedTypeName = (clrName) => {
79
- // First replace backticks with underscores for generic arity
80
- let tsName = clrName.replace(/`/g, "_");
81
- // Then replace plus signs with dollar signs for nesting
82
- tsName = tsName.replace(/\+/g, "$");
83
- return tsName;
84
- };
85
- /**
86
- * Convert TypeScript emit name to CLR reflection name.
87
- *
88
- * Reverse of clrToTsNestedTypeName.
89
- *
90
- * TypeScript: List_1$Enumerator
91
- * CLR: List`1+Enumerator
92
- *
93
- * @param tsEmitName - TypeScript emit name
94
- * @returns CLR reflection name
95
- */
96
- export const tsToCLRNestedTypeName = (tsEmitName) => {
97
- // Replace dollar signs with plus signs for nesting
98
- let clrName = tsEmitName.replace(/\$/g, "+");
99
- // Replace underscores with backticks for generic arity
100
- // Note: This is a simple replacement. In practice, we need to be careful
101
- // not to replace underscores that are part of the actual type name.
102
- // For now, we assume _N pattern at end of each segment indicates arity.
103
- clrName = clrName.replace(/_(\d+)/g, "`$1");
104
- return clrName;
105
- };
106
- /**
107
- * Get all nesting levels from a nested type name.
108
- *
109
- * @param tsEmitName - TypeScript emit name (e.g., "A$B$C")
110
- * @returns Array of type names at each level ["A", "A$B", "A$B$C"]
111
- */
112
- export const getNestedTypeLevels = (tsEmitName) => {
113
- if (!isNestedType(tsEmitName)) {
114
- return [tsEmitName];
115
- }
116
- const parts = tsEmitName.split("$");
117
- const levels = [];
118
- for (let i = 0; i < parts.length; i++) {
119
- levels.push(parts.slice(0, i + 1).join("$"));
120
- }
121
- return levels;
122
- };
123
- /**
124
- * Get the outermost type name from a nested type.
125
- *
126
- * @param tsEmitName - TypeScript emit name (e.g., "List_1$Enumerator")
127
- * @returns Outermost type name (e.g., "List_1")
128
- */
129
- export const getOutermostType = (tsEmitName) => {
130
- const dollarIndex = tsEmitName.indexOf("$");
131
- if (dollarIndex === -1) {
132
- return tsEmitName;
133
- }
134
- return tsEmitName.substring(0, dollarIndex);
135
- };
136
- /**
137
- * Get the innermost type name from a nested type.
138
- *
139
- * @param tsEmitName - TypeScript emit name (e.g., "A$B$C")
140
- * @returns Innermost type name (e.g., "C")
141
- */
142
- export const getInnermostType = (tsEmitName) => {
143
- const parts = tsEmitName.split("$");
144
- const innermost = parts[parts.length - 1];
145
- return innermost || tsEmitName;
146
- };
147
- /**
148
- * Check if one type is nested inside another.
149
- *
150
- * @param innerType - Potentially nested type (e.g., "List_1$Enumerator")
151
- * @param outerType - Potentially containing type (e.g., "List_1")
152
- * @returns True if innerType is nested inside outerType
153
- */
154
- export const isNestedInside = (innerType, outerType) => {
155
- if (!isNestedType(innerType)) {
156
- return false;
157
- }
158
- return innerType.startsWith(outerType + "$");
159
- };
160
- /**
161
- * Get parent type name from a nested type.
162
- *
163
- * @param tsEmitName - TypeScript emit name (e.g., "A$B$C")
164
- * @returns Parent type name (e.g., "A$B"), or undefined if not nested
165
- */
166
- export const getParentType = (tsEmitName) => {
167
- const info = parseNestedTypeName(tsEmitName);
168
- if (!info) {
169
- return undefined;
170
- }
171
- if (info.fullPath.length < 2) {
172
- return undefined;
173
- }
174
- return info.fullPath.slice(0, -1).join("$");
175
- };
176
- //# sourceMappingURL=nested-types.js.map