@tsonic/frontend 0.0.2 → 0.0.5

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 (167) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/graph/extraction/imports.js +3 -3
  3. package/dist/graph/extraction/imports.js.map +1 -1
  4. package/dist/ir/binding-resolution.test.js +8 -3
  5. package/dist/ir/binding-resolution.test.js.map +1 -1
  6. package/dist/ir/builder/exports.d.ts.map +1 -1
  7. package/dist/ir/builder/exports.js +8 -6
  8. package/dist/ir/builder/exports.js.map +1 -1
  9. package/dist/ir/builder/imports.d.ts +3 -3
  10. package/dist/ir/builder/imports.d.ts.map +1 -1
  11. package/dist/ir/builder/imports.js +16 -9
  12. package/dist/ir/builder/imports.js.map +1 -1
  13. package/dist/ir/builder/orchestrator.js +1 -1
  14. package/dist/ir/builder/orchestrator.js.map +1 -1
  15. package/dist/ir/builder/statements.d.ts +7 -1
  16. package/dist/ir/builder/statements.d.ts.map +1 -1
  17. package/dist/ir/builder/statements.js +18 -5
  18. package/dist/ir/builder/statements.js.map +1 -1
  19. package/dist/ir/builder.test.js +20 -10
  20. package/dist/ir/builder.test.js.map +1 -1
  21. package/dist/ir/converters/anonymous-synthesis.d.ts +76 -0
  22. package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -0
  23. package/dist/ir/converters/anonymous-synthesis.js +307 -0
  24. package/dist/ir/converters/anonymous-synthesis.js.map +1 -0
  25. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  26. package/dist/ir/converters/expressions/access.js +48 -1
  27. package/dist/ir/converters/expressions/access.js.map +1 -1
  28. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  29. package/dist/ir/converters/expressions/calls.js +47 -0
  30. package/dist/ir/converters/expressions/calls.js.map +1 -1
  31. package/dist/ir/converters/expressions/collections.d.ts +3 -0
  32. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  33. package/dist/ir/converters/expressions/collections.js +39 -1
  34. package/dist/ir/converters/expressions/collections.js.map +1 -1
  35. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  36. package/dist/ir/converters/expressions/functions.js +49 -4
  37. package/dist/ir/converters/expressions/functions.js.map +1 -1
  38. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
  39. package/dist/ir/converters/expressions/helpers.js +8 -1
  40. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  41. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
  42. package/dist/ir/converters/statements/control/conditionals.js +4 -6
  43. package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
  44. package/dist/ir/converters/statements/control/loops.js +5 -5
  45. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  46. package/dist/ir/converters/statements/declarations/interfaces.d.ts +4 -3
  47. package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
  48. package/dist/ir/converters/statements/declarations/interfaces.js +55 -1
  49. package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
  50. package/dist/ir/converters/statements/declarations/type-aliases.d.ts +8 -3
  51. package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
  52. package/dist/ir/converters/statements/declarations/type-aliases.js +12 -2
  53. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  54. package/dist/ir/converters/synthetic-types.d.ts +38 -0
  55. package/dist/ir/converters/synthetic-types.d.ts.map +1 -0
  56. package/dist/ir/converters/synthetic-types.js +123 -0
  57. package/dist/ir/converters/synthetic-types.js.map +1 -0
  58. package/dist/ir/hierarchical-bindings-e2e.test.js +8 -3
  59. package/dist/ir/hierarchical-bindings-e2e.test.js.map +1 -1
  60. package/dist/ir/statement-converter.d.ts +16 -1
  61. package/dist/ir/statement-converter.d.ts.map +1 -1
  62. package/dist/ir/statement-converter.js +32 -0
  63. package/dist/ir/statement-converter.js.map +1 -1
  64. package/dist/ir/type-converter/index.d.ts +1 -1
  65. package/dist/ir/type-converter/index.d.ts.map +1 -1
  66. package/dist/ir/type-converter/index.js +1 -1
  67. package/dist/ir/type-converter/index.js.map +1 -1
  68. package/dist/ir/type-converter/inference.d.ts +12 -0
  69. package/dist/ir/type-converter/inference.d.ts.map +1 -1
  70. package/dist/ir/type-converter/inference.js +145 -6
  71. package/dist/ir/type-converter/inference.js.map +1 -1
  72. package/dist/ir/type-converter/objects.d.ts.map +1 -1
  73. package/dist/ir/type-converter/objects.js +3 -2
  74. package/dist/ir/type-converter/objects.js.map +1 -1
  75. package/dist/ir/type-converter/orchestrator.d.ts +2 -2
  76. package/dist/ir/type-converter/orchestrator.d.ts.map +1 -1
  77. package/dist/ir/type-converter/orchestrator.js +37 -0
  78. package/dist/ir/type-converter/orchestrator.js.map +1 -1
  79. package/dist/ir/type-converter/references.d.ts.map +1 -1
  80. package/dist/ir/type-converter/references.js +16 -5
  81. package/dist/ir/type-converter/references.js.map +1 -1
  82. package/dist/ir/type-converter.d.ts +1 -1
  83. package/dist/ir/type-converter.d.ts.map +1 -1
  84. package/dist/ir/type-converter.js +1 -1
  85. package/dist/ir/type-converter.js.map +1 -1
  86. package/dist/ir/types/expressions.d.ts +8 -0
  87. package/dist/ir/types/expressions.d.ts.map +1 -1
  88. package/dist/ir/types/index.d.ts +1 -1
  89. package/dist/ir/types/index.d.ts.map +1 -1
  90. package/dist/ir/types/index.js.map +1 -1
  91. package/dist/ir/types/ir-types.d.ts +24 -1
  92. package/dist/ir/types/ir-types.d.ts.map +1 -1
  93. package/dist/ir/types/module.d.ts +1 -1
  94. package/dist/ir/types/module.d.ts.map +1 -1
  95. package/dist/ir/types.d.ts +1 -1
  96. package/dist/ir/types.d.ts.map +1 -1
  97. package/dist/ir/types.js.map +1 -1
  98. package/dist/program/bindings.d.ts +51 -3
  99. package/dist/program/bindings.d.ts.map +1 -1
  100. package/dist/program/bindings.js +181 -19
  101. package/dist/program/bindings.js.map +1 -1
  102. package/dist/program/creation.d.ts.map +1 -1
  103. package/dist/program/creation.js +11 -9
  104. package/dist/program/creation.js.map +1 -1
  105. package/dist/program/dependency-graph.d.ts.map +1 -1
  106. package/dist/program/dependency-graph.js +65 -1
  107. package/dist/program/dependency-graph.js.map +1 -1
  108. package/dist/program/types.d.ts +4 -3
  109. package/dist/program/types.d.ts.map +1 -1
  110. package/dist/resolver/clr-bindings-resolver.d.ts +93 -0
  111. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -0
  112. package/dist/resolver/{dotnet-import-resolver.js → clr-bindings-resolver.js} +114 -24
  113. package/dist/resolver/clr-bindings-resolver.js.map +1 -0
  114. package/dist/resolver/import-resolution.d.ts +4 -4
  115. package/dist/resolver/import-resolution.d.ts.map +1 -1
  116. package/dist/resolver/import-resolution.js +17 -17
  117. package/dist/resolver/import-resolution.js.map +1 -1
  118. package/dist/resolver/index.d.ts +2 -2
  119. package/dist/resolver/index.d.ts.map +1 -1
  120. package/dist/resolver/index.js +2 -2
  121. package/dist/resolver/index.js.map +1 -1
  122. package/dist/resolver/types.d.ts +1 -1
  123. package/dist/resolver/types.d.ts.map +1 -1
  124. package/dist/resolver.d.ts +2 -2
  125. package/dist/resolver.d.ts.map +1 -1
  126. package/dist/resolver.js +1 -1
  127. package/dist/resolver.js.map +1 -1
  128. package/dist/resolver.test.js +1 -1
  129. package/dist/resolver.test.js.map +1 -1
  130. package/dist/types/diagnostic.d.ts +1 -1
  131. package/dist/types/diagnostic.d.ts.map +1 -1
  132. package/dist/types/diagnostic.js.map +1 -1
  133. package/dist/types/metadata.d.ts +1 -1
  134. package/dist/types/metadata.d.ts.map +1 -1
  135. package/dist/types/module.d.ts +1 -1
  136. package/dist/types/module.d.ts.map +1 -1
  137. package/dist/types/parameter-modifiers.d.ts.map +1 -1
  138. package/dist/types/parameter-modifiers.js +7 -3
  139. package/dist/types/parameter-modifiers.js.map +1 -1
  140. package/dist/types/support-types.test.js +6 -3
  141. package/dist/types/support-types.test.js.map +1 -1
  142. package/dist/validation/imports.js +1 -1
  143. package/dist/validation/imports.js.map +1 -1
  144. package/dist/validation/static-safety.d.ts +6 -1
  145. package/dist/validation/static-safety.d.ts.map +1 -1
  146. package/dist/validation/static-safety.js +146 -38
  147. package/dist/validation/static-safety.js.map +1 -1
  148. package/dist/validation/unsupported-utility-types.d.ts +38 -0
  149. package/dist/validation/unsupported-utility-types.d.ts.map +1 -0
  150. package/dist/validation/unsupported-utility-types.js +53 -0
  151. package/dist/validation/unsupported-utility-types.js.map +1 -0
  152. package/dist/validator.test.js +307 -16
  153. package/dist/validator.test.js.map +1 -1
  154. package/package.json +1 -1
  155. package/dist/ir/type-converter/clr-type-resolver.d.ts +0 -15
  156. package/dist/ir/type-converter/clr-type-resolver.d.ts.map +0 -1
  157. package/dist/ir/type-converter/clr-type-resolver.js +0 -120
  158. package/dist/ir/type-converter/clr-type-resolver.js.map +0 -1
  159. package/dist/resolver/dotnet-import-resolver.d.ts +0 -74
  160. package/dist/resolver/dotnet-import-resolver.d.ts.map +0 -1
  161. package/dist/resolver/dotnet-import-resolver.js.map +0 -1
  162. package/dist/types/test-debug.d.ts.map +0 -1
  163. package/dist/types/test-debug.js.map +0 -1
  164. package/dist/validation/aot-safety.d.ts +0 -24
  165. package/dist/validation/aot-safety.d.ts.map +0 -1
  166. package/dist/validation/aot-safety.js +0 -114
  167. package/dist/validation/aot-safety.js.map +0 -1
@@ -2,5 +2,5 @@
2
2
  * Type converter - TypeScript types to IR types
3
3
  * Main dispatcher - re-exports from type-converter/ subdirectory
4
4
  */
5
- export { convertType, convertFunctionType, convertObjectType, convertBindingName, inferType, convertTsTypeToIr, } from "./type-converter/index.js";
5
+ export { convertType, convertFunctionType, convertObjectType, convertBindingName, inferType, convertTsTypeToIr, inferLambdaParamTypes, } from "./type-converter/index.js";
6
6
  //# sourceMappingURL=type-converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-converter.js","sourceRoot":"","sources":["../../src/ir/type-converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,GAClB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"type-converter.js","sourceRoot":"","sources":["../../src/ir/type-converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,2BAA2B,CAAC"}
@@ -35,6 +35,8 @@ export type IrObjectExpression = {
35
35
  readonly inferredType?: IrType;
36
36
  /** Contextual type for object literals in typed positions (return, assignment, etc.) */
37
37
  readonly contextualType?: IrType;
38
+ /** True if this object literal contains spread expressions (for IIFE lowering) */
39
+ readonly hasSpreads?: boolean;
38
40
  };
39
41
  export type IrObjectProperty = {
40
42
  readonly kind: "property";
@@ -85,6 +87,12 @@ export type IrCallExpression = {
85
87
  readonly typeArguments?: readonly IrType[];
86
88
  readonly requiresSpecialization?: boolean;
87
89
  readonly argumentPassing?: readonly ("value" | "ref" | "out" | "in")[];
90
+ /** Type predicate narrowing metadata (for `x is T` predicates) */
91
+ readonly narrowing?: {
92
+ readonly kind: "typePredicate";
93
+ readonly argIndex: number;
94
+ readonly targetType: IrType;
95
+ };
88
96
  };
89
97
  export type IrNewExpression = {
90
98
  readonly kind: "new";
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/ir/types/expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/ir/types/expressions.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  export type { IrModule, IrImport, IrImportSpecifier, IrExport, } from "./module.js";
6
6
  export type { IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, } from "./statements.js";
7
7
  export type { IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, } from "./expressions.js";
8
- export type { IrType, IrPrimitiveType, IrReferenceType, IrArrayType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, } from "./ir-types.js";
8
+ export type { IrType, IrPrimitiveType, IrReferenceType, IrTypeParameterType, IrArrayType, IrTupleType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, } from "./ir-types.js";
9
9
  export type { IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./helpers.js";
10
10
  export { isStatement, isExpression } from "./guards.js";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,GACT,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,GACT,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EACN,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuGH,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyGH,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Type system types for IR (IrType and its variants)
3
3
  */
4
4
  import { IrParameter, IrInterfaceMember } from "./helpers.js";
5
- export type IrType = IrPrimitiveType | IrReferenceType | IrArrayType | IrFunctionType | IrObjectType | IrDictionaryType | IrUnionType | IrIntersectionType | IrLiteralType | IrAnyType | IrUnknownType | IrVoidType | IrNeverType;
5
+ export type IrType = IrPrimitiveType | IrReferenceType | IrTypeParameterType | IrArrayType | IrTupleType | IrFunctionType | IrObjectType | IrDictionaryType | IrUnionType | IrIntersectionType | IrLiteralType | IrAnyType | IrUnknownType | IrVoidType | IrNeverType;
6
6
  export type IrPrimitiveType = {
7
7
  readonly kind: "primitiveType";
8
8
  readonly name: "string" | "number" | "boolean" | "null" | "undefined";
@@ -14,10 +14,33 @@ export type IrReferenceType = {
14
14
  /** Fully-qualified CLR type for imported types (e.g., "MyApp.models.User") */
15
15
  readonly resolvedClrType?: string;
16
16
  };
17
+ /**
18
+ * Type parameter reference (e.g., T in Container<T>)
19
+ *
20
+ * This is distinct from IrReferenceType to enable unambiguous detection
21
+ * of generic type parameters during emission (for null → default conversion).
22
+ */
23
+ export type IrTypeParameterType = {
24
+ readonly kind: "typeParameterType";
25
+ readonly name: string;
26
+ };
17
27
  export type IrArrayType = {
18
28
  readonly kind: "arrayType";
19
29
  readonly elementType: IrType;
20
30
  };
31
+ /**
32
+ * Tuple type for fixed-length arrays with heterogeneous element types
33
+ *
34
+ * Examples:
35
+ * - `[string, number]` → IrTupleType { elementTypes: [string, number] }
36
+ * - `[boolean, string, number]` → IrTupleType { elementTypes: [boolean, string, number] }
37
+ *
38
+ * Emits to C# ValueTuple<T1, T2, ...>.
39
+ */
40
+ export type IrTupleType = {
41
+ readonly kind: "tupleType";
42
+ readonly elementTypes: readonly IrType[];
43
+ };
21
44
  export type IrFunctionType = {
22
45
  readonly kind: "functionType";
23
46
  readonly parameters: readonly IrParameter[];
@@ -1 +1 @@
1
- {"version":3,"file":"ir-types.d.ts","sourceRoot":"","sources":["../../../src/ir/types/ir-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,MAAM,GACd,eAAe,GACf,eAAe,GACf,WAAW,GACX,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,SAAS,GACT,aAAa,GACb,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"ir-types.d.ts","sourceRoot":"","sources":["../../../src/ir/types/ir-types.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export type IrImport = {
17
17
  readonly kind: "import";
18
18
  readonly source: string;
19
19
  readonly isLocal: boolean;
20
- readonly isDotNet: boolean;
20
+ readonly isClr: boolean;
21
21
  readonly specifiers: readonly IrImportSpecifier[];
22
22
  readonly resolvedNamespace?: string;
23
23
  readonly resolvedClrType?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/ir/types/module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAEpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1D;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEN,MAAM,MAAM,QAAQ,GAChB;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GACnE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/ir/types/module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAEpC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1D;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEN,MAAM,MAAM,QAAQ,GAChB;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GACnE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC"}
@@ -2,6 +2,6 @@
2
2
  * Intermediate Representation (IR) types for Tsonic compiler
3
3
  * Main dispatcher - re-exports from specialized modules
4
4
  */
5
- export type { IrModule, IrImport, IrImportSpecifier, IrExport, IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, IrType, IrPrimitiveType, IrReferenceType, IrArrayType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./types/index.js";
5
+ export type { IrModule, IrImport, IrImportSpecifier, IrExport, IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, IrType, IrPrimitiveType, IrReferenceType, IrArrayType, IrTupleType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./types/index.js";
6
6
  export { isStatement, isExpression } from "./types/guards.js";
7
7
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAEV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EAER,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAEhB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAEjB,MAAM,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EAEX,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAEV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EAER,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAEhB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAEjB,MAAM,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EAEX,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4FH,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6FH,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -57,9 +57,43 @@ export type LegacyBindingFile = {
57
57
  readonly bindings: Readonly<Record<string, SimpleBindingDescriptor>>;
58
58
  };
59
59
  /**
60
- * Union type for both binding formats
60
+ * tsbindgen format - generated by tsbindgen tool
61
+ * This is the format produced when generating bindings from .NET assemblies
61
62
  */
62
- export type BindingFile = FullBindingManifest | LegacyBindingFile;
63
+ export type TsbindgenMethod = {
64
+ readonly clrName: string;
65
+ readonly tsEmitName: string;
66
+ readonly declaringClrType: string;
67
+ readonly declaringAssemblyName: string;
68
+ };
69
+ export type TsbindgenProperty = {
70
+ readonly clrName: string;
71
+ readonly tsEmitName: string;
72
+ readonly declaringClrType: string;
73
+ readonly declaringAssemblyName: string;
74
+ };
75
+ export type TsbindgenField = {
76
+ readonly clrName: string;
77
+ readonly tsEmitName: string;
78
+ readonly declaringClrType: string;
79
+ readonly declaringAssemblyName: string;
80
+ };
81
+ export type TsbindgenType = {
82
+ readonly clrName: string;
83
+ readonly tsEmitName: string;
84
+ readonly assemblyName: string;
85
+ readonly methods: readonly TsbindgenMethod[];
86
+ readonly properties: readonly TsbindgenProperty[];
87
+ readonly fields: readonly TsbindgenField[];
88
+ };
89
+ export type TsbindgenBindingFile = {
90
+ readonly namespace: string;
91
+ readonly types: readonly TsbindgenType[];
92
+ };
93
+ /**
94
+ * Union type for all binding formats
95
+ */
96
+ export type BindingFile = FullBindingManifest | LegacyBindingFile | TsbindgenBindingFile;
63
97
  /**
64
98
  * Registry of all loaded bindings
65
99
  * Supports both legacy (simple global/module) and new (hierarchical namespace/type/member) formats
@@ -71,7 +105,7 @@ export declare class BindingRegistry {
71
105
  private readonly members;
72
106
  /**
73
107
  * Load a binding manifest file and add its bindings to the registry
74
- * Supports both legacy and new formats
108
+ * Supports legacy, full, and tsbindgen formats
75
109
  */
76
110
  addBindings(_filePath: string, manifest: BindingFile): void;
77
111
  /**
@@ -108,4 +142,18 @@ export declare class BindingRegistry {
108
142
  * Looks for *.bindings.json files alongside .d.ts files OR directly in typeRoot
109
143
  */
110
144
  export declare const loadBindings: (typeRoots: readonly string[]) => BindingRegistry;
145
+ /**
146
+ * Load bindings from a specific file path into an existing registry.
147
+ * Validates the file format and logs a warning if invalid.
148
+ */
149
+ export declare const loadBindingsFromPath: (registry: BindingRegistry, bindingsPath: string) => void;
150
+ /**
151
+ * Load all CLR bindings discovered by the resolver.
152
+ * This should be called AFTER createProgram but BEFORE IR building
153
+ * to ensure all bindings are available during IR construction.
154
+ *
155
+ * Note: The ClrBindingsResolver tracks discovered binding paths via caching,
156
+ * so this loads bindings for any imports that were already resolved.
157
+ */
158
+ export declare const loadAllDiscoveredBindings: (registry: BindingRegistry, discoveredPaths: ReadonlySet<string>) => void;
111
159
  //# sourceMappingURL=bindings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/program/bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/program/bindings.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,52 @@ import * as path from "node:path";
10
10
  const isFullBindingManifest = (manifest) => {
11
11
  return "assembly" in manifest && "namespaces" in manifest;
12
12
  };
13
+ /**
14
+ * Type guard to check if a manifest is the tsbindgen format
15
+ */
16
+ const isTsbindgenBindingFile = (manifest) => {
17
+ return ("namespace" in manifest &&
18
+ "types" in manifest &&
19
+ !("namespaces" in manifest));
20
+ };
21
+ /**
22
+ * Validate that a parsed JSON object is a valid binding file format.
23
+ * Returns an error message if invalid, undefined if valid.
24
+ */
25
+ const validateBindingFile = (obj, filePath) => {
26
+ if (obj === null || typeof obj !== "object") {
27
+ return `${filePath}: Expected object, got ${typeof obj}`;
28
+ }
29
+ const manifest = obj;
30
+ // Check for tsbindgen format
31
+ if ("namespace" in manifest && "types" in manifest) {
32
+ if (typeof manifest.namespace !== "string") {
33
+ return `${filePath}: 'namespace' must be a string`;
34
+ }
35
+ if (!Array.isArray(manifest.types)) {
36
+ return `${filePath}: 'types' must be an array`;
37
+ }
38
+ return undefined; // Valid tsbindgen format
39
+ }
40
+ // Check for full manifest format
41
+ if ("assembly" in manifest && "namespaces" in manifest) {
42
+ if (typeof manifest.assembly !== "string") {
43
+ return `${filePath}: 'assembly' must be a string`;
44
+ }
45
+ if (!Array.isArray(manifest.namespaces)) {
46
+ return `${filePath}: 'namespaces' must be an array`;
47
+ }
48
+ return undefined; // Valid full format
49
+ }
50
+ // Check for legacy format
51
+ if ("bindings" in manifest) {
52
+ if (typeof manifest.bindings !== "object" || manifest.bindings === null) {
53
+ return `${filePath}: 'bindings' must be an object`;
54
+ }
55
+ return undefined; // Valid legacy format
56
+ }
57
+ return `${filePath}: Unrecognized binding file format. Expected tsbindgen (namespace+types), full (assembly+namespaces), or legacy (bindings) format.`;
58
+ };
13
59
  /**
14
60
  * Registry of all loaded bindings
15
61
  * Supports both legacy (simple global/module) and new (hierarchical namespace/type/member) formats
@@ -25,11 +71,11 @@ export class BindingRegistry {
25
71
  }
26
72
  /**
27
73
  * Load a binding manifest file and add its bindings to the registry
28
- * Supports both legacy and new formats
74
+ * Supports legacy, full, and tsbindgen formats
29
75
  */
30
76
  addBindings(_filePath, manifest) {
31
77
  if (isFullBindingManifest(manifest)) {
32
- // New format: hierarchical namespace/type/member structure
78
+ // Full format: hierarchical namespace/type/member structure
33
79
  // Index by alias (TS identifier) for quick lookup
34
80
  for (const ns of manifest.namespaces) {
35
81
  this.namespaces.set(ns.alias, ns);
@@ -44,6 +90,91 @@ export class BindingRegistry {
44
90
  }
45
91
  }
46
92
  }
93
+ else if (isTsbindgenBindingFile(manifest)) {
94
+ // tsbindgen format: convert to internal format
95
+ // Key by tsEmitName (what TS code writes), emit clrName (what C# needs)
96
+ // Also key by clrName for packages that expose PascalCase in .d.ts
97
+ for (const tsbType of manifest.types) {
98
+ // Create members from methods, properties, and fields
99
+ const members = [];
100
+ for (const method of tsbType.methods) {
101
+ members.push({
102
+ kind: "method",
103
+ name: method.clrName,
104
+ // alias = tsEmitName (what TS code uses, e.g., "add")
105
+ alias: method.tsEmitName,
106
+ binding: {
107
+ assembly: method.declaringAssemblyName,
108
+ type: method.declaringClrType,
109
+ // member = clrName (what C# emits, e.g., "Add")
110
+ member: method.clrName,
111
+ },
112
+ });
113
+ }
114
+ for (const prop of tsbType.properties) {
115
+ members.push({
116
+ kind: "property",
117
+ name: prop.clrName,
118
+ alias: prop.tsEmitName,
119
+ binding: {
120
+ assembly: prop.declaringAssemblyName,
121
+ type: prop.declaringClrType,
122
+ member: prop.clrName,
123
+ },
124
+ });
125
+ }
126
+ for (const field of tsbType.fields) {
127
+ // Fields are treated as properties for binding purposes
128
+ members.push({
129
+ kind: "property",
130
+ name: field.clrName,
131
+ alias: field.tsEmitName,
132
+ binding: {
133
+ assembly: field.declaringAssemblyName,
134
+ type: field.declaringClrType,
135
+ member: field.clrName,
136
+ },
137
+ });
138
+ }
139
+ // Create TypeBinding - use tsEmitName as the TS alias (e.g., "Console")
140
+ const typeBinding = {
141
+ name: tsbType.clrName,
142
+ alias: tsbType.tsEmitName,
143
+ kind: "class", // Default to class; could be refined with more metadata
144
+ members,
145
+ };
146
+ // Index the type by its TS name (tsEmitName)
147
+ this.types.set(typeBinding.alias, typeBinding);
148
+ // Also index by simple name if tsEmitName has arity suffix (e.g., "List_1" -> also index as "List")
149
+ // This is needed because TS exports both List_1 and List as aliases, and TS code uses List<T>
150
+ const arityMatch = typeBinding.alias.match(/^(.+)_(\d+)$/);
151
+ const simpleAlias = arityMatch ? arityMatch[1] : null;
152
+ if (simpleAlias && simpleAlias !== typeBinding.alias) {
153
+ this.types.set(simpleAlias, typeBinding);
154
+ }
155
+ // Index members for direct lookup by BOTH tsEmitName and clrName
156
+ // This allows TS code to use either naming convention
157
+ for (const member of members) {
158
+ // Key by tsEmitName (e.g., "List_1.add")
159
+ const tsKey = `${typeBinding.alias}.${member.alias}`;
160
+ this.members.set(tsKey, member);
161
+ // Also key by simple alias if applicable (e.g., "List.add")
162
+ if (simpleAlias) {
163
+ const simpleKey = `${simpleAlias}.${member.alias}`;
164
+ this.members.set(simpleKey, member);
165
+ }
166
+ // Also key by clrName if different (e.g., "List_1.Add" and "List.Add")
167
+ if (member.alias !== member.name) {
168
+ const clrKey = `${typeBinding.alias}.${member.name}`;
169
+ this.members.set(clrKey, member);
170
+ if (simpleAlias) {
171
+ const simpleClrKey = `${simpleAlias}.${member.name}`;
172
+ this.members.set(simpleClrKey, member);
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
47
178
  else {
48
179
  // Legacy format: simple global/module bindings
49
180
  for (const [name, descriptor] of Object.entries(manifest.bindings)) {
@@ -137,31 +268,62 @@ export const loadBindings = (typeRoots) => {
137
268
  .filter((f) => f.endsWith(".bindings.json"))
138
269
  .map((f) => path.join(absoluteRoot, f));
139
270
  for (const manifestPath of rootManifests) {
140
- try {
141
- const content = fs.readFileSync(manifestPath, "utf-8");
142
- const manifest = JSON.parse(content);
143
- registry.addBindings(manifestPath, manifest);
144
- }
145
- catch (err) {
146
- console.warn(`Failed to load bindings from ${manifestPath}:`, err);
147
- }
271
+ loadBindingsFromPath(registry, manifestPath);
148
272
  }
149
273
  // Strategy 2: Look for *.bindings.json next to each .d.ts file
150
274
  const declFiles = scanForDeclarationFiles(absoluteRoot);
151
275
  for (const declPath of declFiles) {
152
276
  const manifestPath = declPath.replace(/\.d\.ts$/, ".bindings.json");
153
- try {
154
- if (fs.existsSync(manifestPath)) {
155
- const content = fs.readFileSync(manifestPath, "utf-8");
156
- const manifest = JSON.parse(content);
157
- registry.addBindings(manifestPath, manifest);
158
- }
159
- }
160
- catch (err) {
161
- console.warn(`Failed to load bindings from ${manifestPath}:`, err);
277
+ loadBindingsFromPath(registry, manifestPath);
278
+ // Strategy 3: Look for bindings.json in same directory as index.d.ts
279
+ // This supports @tsonic/dotnet package structure where bindings.json
280
+ // lives alongside index.d.ts in each namespace directory
281
+ if (path.basename(declPath) === "index.d.ts") {
282
+ const dirBindings = path.join(path.dirname(declPath), "bindings.json");
283
+ loadBindingsFromPath(registry, dirBindings);
162
284
  }
163
285
  }
164
286
  }
165
287
  return registry;
166
288
  };
289
+ /**
290
+ * Load bindings from a specific file path into an existing registry.
291
+ * Validates the file format and logs a warning if invalid.
292
+ */
293
+ export const loadBindingsFromPath = (registry, bindingsPath) => {
294
+ try {
295
+ if (fs.existsSync(bindingsPath)) {
296
+ const content = fs.readFileSync(bindingsPath, "utf-8");
297
+ const parsed = JSON.parse(content);
298
+ // Validate the parsed structure
299
+ const validationError = validateBindingFile(parsed, bindingsPath);
300
+ if (validationError) {
301
+ console.warn(`Invalid bindings file: ${validationError}`);
302
+ return;
303
+ }
304
+ registry.addBindings(bindingsPath, parsed);
305
+ }
306
+ }
307
+ catch (err) {
308
+ if (err instanceof SyntaxError) {
309
+ console.warn(`Failed to parse bindings from ${bindingsPath}: Invalid JSON - ${err.message}`);
310
+ }
311
+ else {
312
+ console.warn(`Failed to load bindings from ${bindingsPath}:`, err);
313
+ }
314
+ }
315
+ };
316
+ /**
317
+ * Load all CLR bindings discovered by the resolver.
318
+ * This should be called AFTER createProgram but BEFORE IR building
319
+ * to ensure all bindings are available during IR construction.
320
+ *
321
+ * Note: The ClrBindingsResolver tracks discovered binding paths via caching,
322
+ * so this loads bindings for any imports that were already resolved.
323
+ */
324
+ export const loadAllDiscoveredBindings = (registry, discoveredPaths) => {
325
+ for (const bindingsPath of discoveredPaths) {
326
+ loadBindingsFromPath(registry, bindingsPath);
327
+ }
328
+ };
167
329
  //# sourceMappingURL=bindings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/program/bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/program/bindings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"creation.d.ts","sourceRoot":"","sources":["../../src/program/creation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,MAAM,EAAa,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA8B5D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,eAAe,KACvB,EAAE,CAAC,eAkBL,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,SAAS,MAAM,EAAE,EAC5B,SAAS,eAAe,KACvB,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAiL5C,CAAC"}
1
+ {"version":3,"file":"creation.d.ts","sourceRoot":"","sources":["../../src/program/creation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,MAAM,EAAa,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA8B5D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,eAAe,KACvB,EAAE,CAAC,eAkBL,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,SAAS,MAAM,EAAE,EAC5B,SAAS,eAAe,KACvB,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAwL5C,CAAC"}