@tsonic/frontend 0.0.15 → 0.0.16

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 (184) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
  3. package/dist/graph/extraction/orchestrator.js +3 -2
  4. package/dist/graph/extraction/orchestrator.js.map +1 -1
  5. package/dist/ir/binding/index.d.ts +21 -0
  6. package/dist/ir/binding/index.d.ts.map +1 -1
  7. package/dist/ir/binding/index.js +316 -6
  8. package/dist/ir/binding/index.js.map +1 -1
  9. package/dist/ir/bindings-disambiguation.test.d.ts +11 -0
  10. package/dist/ir/bindings-disambiguation.test.d.ts.map +1 -0
  11. package/dist/ir/bindings-disambiguation.test.js +416 -0
  12. package/dist/ir/bindings-disambiguation.test.js.map +1 -0
  13. package/dist/ir/builder/orchestrator.d.ts.map +1 -1
  14. package/dist/ir/builder/orchestrator.js +8 -2
  15. package/dist/ir/builder/orchestrator.js.map +1 -1
  16. package/dist/ir/builder/types.d.ts +2 -3
  17. package/dist/ir/builder/types.d.ts.map +1 -1
  18. package/dist/ir/builder.test.js +1 -1
  19. package/dist/ir/converters/context.d.ts.map +1 -1
  20. package/dist/ir/converters/context.js +1 -0
  21. package/dist/ir/converters/context.js.map +1 -1
  22. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  23. package/dist/ir/converters/expressions/access.js +161 -39
  24. package/dist/ir/converters/expressions/access.js.map +1 -1
  25. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  26. package/dist/ir/converters/expressions/calls.js +256 -19
  27. package/dist/ir/converters/expressions/calls.js.map +1 -1
  28. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  29. package/dist/ir/converters/expressions/functions.js +30 -12
  30. package/dist/ir/converters/expressions/functions.js.map +1 -1
  31. package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
  32. package/dist/ir/converters/expressions/operators.js +5 -1
  33. package/dist/ir/converters/expressions/operators.js.map +1 -1
  34. package/dist/ir/converters/flow-narrowing.d.ts +27 -0
  35. package/dist/ir/converters/flow-narrowing.d.ts.map +1 -0
  36. package/dist/ir/converters/flow-narrowing.js +73 -0
  37. package/dist/ir/converters/flow-narrowing.js.map +1 -0
  38. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
  39. package/dist/ir/converters/statements/control/conditionals.js +19 -2
  40. package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
  41. package/dist/ir/expression-converter.d.ts.map +1 -1
  42. package/dist/ir/expression-converter.js +11 -4
  43. package/dist/ir/expression-converter.js.map +1 -1
  44. package/dist/ir/program-context.d.ts +17 -4
  45. package/dist/ir/program-context.d.ts.map +1 -1
  46. package/dist/ir/program-context.js +3 -0
  47. package/dist/ir/program-context.js.map +1 -1
  48. package/dist/ir/thisarg-inference.test.js +18 -18
  49. package/dist/ir/thisarg-inference.test.js.map +1 -1
  50. package/dist/ir/type-system/internal/handle-types.d.ts +7 -0
  51. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
  52. package/dist/ir/type-system/internal/type-converter/primitives.d.ts +3 -3
  53. package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -1
  54. package/dist/ir/type-system/internal/type-converter/primitives.js +2 -2
  55. package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -1
  56. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  57. package/dist/ir/type-system/internal/type-converter/references.js +5 -11
  58. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  59. package/dist/ir/type-system/internal/type-registry.d.ts +6 -1
  60. package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -1
  61. package/dist/ir/type-system/internal/type-registry.js +11 -10
  62. package/dist/ir/type-system/internal/type-registry.js.map +1 -1
  63. package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -1
  64. package/dist/ir/type-system/internal/universe/clr-catalog.js +20 -4
  65. package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
  66. package/dist/ir/type-system/internal/universe/source-catalog.d.ts +2 -0
  67. package/dist/ir/type-system/internal/universe/source-catalog.d.ts.map +1 -1
  68. package/dist/ir/type-system/internal/universe/source-catalog.js +8 -3
  69. package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -1
  70. package/dist/ir/type-system/internal/universe/types.d.ts +1 -1
  71. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  72. package/dist/ir/type-system/type-system.js +192 -33
  73. package/dist/ir/type-system/type-system.js.map +1 -1
  74. package/dist/ir/types/expressions.d.ts +2 -0
  75. package/dist/ir/types/expressions.d.ts.map +1 -1
  76. package/dist/ir/types/ir-types.d.ts +1 -1
  77. package/dist/ir/types/statements.d.ts +9 -0
  78. package/dist/ir/types/statements.d.ts.map +1 -1
  79. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  80. package/dist/ir/validation/anonymous-type-lowering-pass.js +1 -0
  81. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  82. package/dist/ir/validation/char-validation-pass.d.ts +26 -0
  83. package/dist/ir/validation/char-validation-pass.d.ts.map +1 -0
  84. package/dist/ir/validation/char-validation-pass.js +495 -0
  85. package/dist/ir/validation/char-validation-pass.js.map +1 -0
  86. package/dist/program/bindings.d.ts +16 -0
  87. package/dist/program/bindings.d.ts.map +1 -1
  88. package/dist/program/bindings.js +44 -0
  89. package/dist/program/bindings.js.map +1 -1
  90. package/dist/program/creation.d.ts.map +1 -1
  91. package/dist/program/creation.js +11 -104
  92. package/dist/program/creation.js.map +1 -1
  93. package/dist/program/dependency-graph.d.ts.map +1 -1
  94. package/dist/program/dependency-graph.js +8 -1
  95. package/dist/program/dependency-graph.js.map +1 -1
  96. package/dist/program/diagnostics.d.ts.map +1 -1
  97. package/dist/program/diagnostics.js +0 -6
  98. package/dist/program/diagnostics.js.map +1 -1
  99. package/dist/program/types.d.ts +2 -3
  100. package/dist/program/types.d.ts.map +1 -1
  101. package/dist/resolver/clr-bindings-resolver.d.ts +5 -0
  102. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  103. package/dist/resolver/clr-bindings-resolver.js +121 -31
  104. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  105. package/dist/resolver/clr-bindings-resolver.test.d.ts +2 -0
  106. package/dist/resolver/clr-bindings-resolver.test.d.ts.map +1 -0
  107. package/dist/resolver/clr-bindings-resolver.test.js +161 -0
  108. package/dist/resolver/clr-bindings-resolver.test.js.map +1 -0
  109. package/dist/resolver/namespace.d.ts +2 -1
  110. package/dist/resolver/namespace.d.ts.map +1 -1
  111. package/dist/resolver/namespace.js +5 -2
  112. package/dist/resolver/namespace.js.map +1 -1
  113. package/dist/resolver/namespace.test.js +6 -6
  114. package/dist/resolver/naming-policy.d.ts +20 -0
  115. package/dist/resolver/naming-policy.d.ts.map +1 -0
  116. package/dist/resolver/naming-policy.js +40 -0
  117. package/dist/resolver/naming-policy.js.map +1 -0
  118. package/dist/resolver/naming.d.ts +2 -5
  119. package/dist/resolver/naming.d.ts.map +1 -1
  120. package/dist/resolver/naming.js +2 -30
  121. package/dist/resolver/naming.js.map +1 -1
  122. package/dist/resolver.d.ts +2 -0
  123. package/dist/resolver.d.ts.map +1 -1
  124. package/dist/resolver.js +1 -0
  125. package/dist/resolver.js.map +1 -1
  126. package/dist/resolver.test.js +7 -6
  127. package/dist/resolver.test.js.map +1 -1
  128. package/dist/types/diagnostic.d.ts +1 -1
  129. package/dist/types/diagnostic.d.ts.map +1 -1
  130. package/dist/types/diagnostic.js.map +1 -1
  131. package/dist/validation/core-intrinsics.d.ts +18 -0
  132. package/dist/validation/core-intrinsics.d.ts.map +1 -0
  133. package/dist/validation/core-intrinsics.js +186 -0
  134. package/dist/validation/core-intrinsics.js.map +1 -0
  135. package/dist/validation/index.d.ts +1 -0
  136. package/dist/validation/index.d.ts.map +1 -1
  137. package/dist/validation/index.js +1 -0
  138. package/dist/validation/index.js.map +1 -1
  139. package/dist/validation/orchestrator.d.ts.map +1 -1
  140. package/dist/validation/orchestrator.js +2 -0
  141. package/dist/validation/orchestrator.js.map +1 -1
  142. package/dist/validator.test.js +52 -6
  143. package/dist/validator.test.js.map +1 -1
  144. package/package.json +1 -1
  145. package/dist/ir/clr-type-mappings.d.ts +0 -42
  146. package/dist/ir/clr-type-mappings.d.ts.map +0 -1
  147. package/dist/ir/clr-type-mappings.js +0 -139
  148. package/dist/ir/clr-type-mappings.js.map +0 -1
  149. package/dist/ir/type-converter.d.ts +0 -9
  150. package/dist/ir/type-converter.d.ts.map +0 -1
  151. package/dist/ir/type-converter.js +0 -9
  152. package/dist/ir/type-converter.js.map +0 -1
  153. package/dist/ir/type-system/core.d.ts +0 -29
  154. package/dist/ir/type-system/core.d.ts.map +0 -1
  155. package/dist/ir/type-system/core.js +0 -456
  156. package/dist/ir/type-system/core.js.map +0 -1
  157. package/dist/ir/type-system/internal/type-converter/patterns.d.ts +0 -12
  158. package/dist/ir/type-system/internal/type-converter/patterns.d.ts.map +0 -1
  159. package/dist/ir/type-system/internal/type-converter/patterns.js +0 -82
  160. package/dist/ir/type-system/internal/type-converter/patterns.js.map +0 -1
  161. package/dist/ir/type-universe/assembly-catalog.d.ts +0 -44
  162. package/dist/ir/type-universe/assembly-catalog.d.ts.map +0 -1
  163. package/dist/ir/type-universe/assembly-catalog.js +0 -532
  164. package/dist/ir/type-universe/assembly-catalog.js.map +0 -1
  165. package/dist/ir/type-universe/assembly-catalog.test.d.ts +0 -7
  166. package/dist/ir/type-universe/assembly-catalog.test.d.ts.map +0 -1
  167. package/dist/ir/type-universe/assembly-catalog.test.js +0 -105
  168. package/dist/ir/type-universe/assembly-catalog.test.js.map +0 -1
  169. package/dist/ir/type-universe/index.d.ts +0 -19
  170. package/dist/ir/type-universe/index.d.ts.map +0 -1
  171. package/dist/ir/type-universe/index.js +0 -21
  172. package/dist/ir/type-universe/index.js.map +0 -1
  173. package/dist/ir/type-universe/types.d.ts +0 -436
  174. package/dist/ir/type-universe/types.d.ts.map +0 -1
  175. package/dist/ir/type-universe/types.js +0 -69
  176. package/dist/ir/type-universe/types.js.map +0 -1
  177. package/dist/ir/type-universe/unified-catalog.d.ts +0 -70
  178. package/dist/ir/type-universe/unified-catalog.d.ts.map +0 -1
  179. package/dist/ir/type-universe/unified-catalog.js +0 -319
  180. package/dist/ir/type-universe/unified-catalog.js.map +0 -1
  181. package/dist/ir/type-universe/unified-catalog.test.d.ts +0 -7
  182. package/dist/ir/type-universe/unified-catalog.test.d.ts.map +0 -1
  183. package/dist/ir/type-universe/unified-catalog.test.js +0 -135
  184. package/dist/ir/type-universe/unified-catalog.test.js.map +0 -1
@@ -1,532 +0,0 @@
1
- /**
2
- * Assembly Type Catalog Loader
3
- *
4
- * Loads CLR type metadata from bindings.json and metadata.json files
5
- * into a queryable catalog structure.
6
- *
7
- * INVARIANT INV-CLR: All assembly types loaded here become part of the
8
- * unified type catalog. No parallel lookup paths allowed.
9
- *
10
- * The loader:
11
- * 1. Scans node_modules/@tsonic/* packages for metadata files
12
- * 2. Parses metadata.json for type definitions, members, signatures
13
- * 3. Parses bindings.json for TS ↔ CLR name mappings
14
- * 4. Converts to NominalEntry structures with proper IrType members
15
- */
16
- import * as fs from "fs";
17
- import * as path from "path";
18
- import { makeTypeId, parseStableId } from "./types.js";
19
- // ═══════════════════════════════════════════════════════════════════════════
20
- // CLR TYPE STRING PARSING
21
- // ═══════════════════════════════════════════════════════════════════════════
22
- /**
23
- * Parse a CLR type string from normalized signature into IrType.
24
- *
25
- * Examples:
26
- * - "System.String" → { kind: "primitiveType", name: "string" }
27
- * - "System.Int32" → { kind: "primitiveType", name: "int" }
28
- * - "System.Double" → { kind: "primitiveType", name: "number" }
29
- * - "System.Boolean" → { kind: "primitiveType", name: "boolean" }
30
- * - "System.Char" → { kind: "primitiveType", name: "char" }
31
- * - "System.Void" → { kind: "voidType" }
32
- * - "System.Object" → { kind: "referenceType", name: "object" }
33
- * - "T" → { kind: "typeParameterType", name: "T" }
34
- * - "System.Collections.Generic.List`1[[T]]" → array type or reference
35
- * - "T[]" → { kind: "arrayType", elementType: ... }
36
- */
37
- const parseClrTypeString = (clrType) => {
38
- // Handle void
39
- if (clrType === "System.Void" || clrType === "void") {
40
- return { kind: "voidType" };
41
- }
42
- // Handle primitive mappings
43
- const primitiveMap = {
44
- "System.String": { kind: "primitiveType", name: "string" },
45
- string: { kind: "primitiveType", name: "string" },
46
- "System.Int32": { kind: "primitiveType", name: "int" },
47
- int: { kind: "primitiveType", name: "int" },
48
- "System.Int64": { kind: "primitiveType", name: "int" }, // TODO: bigint?
49
- long: { kind: "primitiveType", name: "int" },
50
- "System.Int16": { kind: "primitiveType", name: "int" },
51
- short: { kind: "primitiveType", name: "int" },
52
- "System.Byte": { kind: "primitiveType", name: "int" },
53
- byte: { kind: "primitiveType", name: "int" },
54
- "System.SByte": { kind: "primitiveType", name: "int" },
55
- sbyte: { kind: "primitiveType", name: "int" },
56
- "System.UInt32": { kind: "primitiveType", name: "int" },
57
- uint: { kind: "primitiveType", name: "int" },
58
- "System.UInt64": { kind: "primitiveType", name: "int" },
59
- ulong: { kind: "primitiveType", name: "int" },
60
- "System.UInt16": { kind: "primitiveType", name: "int" },
61
- ushort: { kind: "primitiveType", name: "int" },
62
- "System.Double": { kind: "primitiveType", name: "number" },
63
- double: { kind: "primitiveType", name: "number" },
64
- "System.Single": { kind: "primitiveType", name: "number" },
65
- float: { kind: "primitiveType", name: "number" },
66
- "System.Decimal": { kind: "primitiveType", name: "number" },
67
- decimal: { kind: "primitiveType", name: "number" },
68
- "System.Boolean": { kind: "primitiveType", name: "boolean" },
69
- bool: { kind: "primitiveType", name: "boolean" },
70
- "System.Char": { kind: "primitiveType", name: "char" },
71
- char: { kind: "primitiveType", name: "char" },
72
- "System.Object": { kind: "anyType" }, // object → any in TS
73
- object: { kind: "anyType" },
74
- };
75
- const primitive = primitiveMap[clrType];
76
- if (primitive)
77
- return primitive;
78
- // Handle array types: T[] or System.Array`1[[T]]
79
- if (clrType.endsWith("[]")) {
80
- const elementType = clrType.slice(0, -2);
81
- return {
82
- kind: "arrayType",
83
- elementType: parseClrTypeString(elementType),
84
- };
85
- }
86
- // Handle pointer types (convert to ref semantics - just use the base type)
87
- if (clrType.endsWith("*")) {
88
- return parseClrTypeString(clrType.slice(0, -1));
89
- }
90
- // Handle nullable: Nullable<T> or T?
91
- if (clrType.startsWith("System.Nullable`1")) {
92
- // Extract inner type
93
- const innerMatch = clrType.match(/System\.Nullable`1\[\[([^\]]+)\]\]/);
94
- if (innerMatch && innerMatch[1]) {
95
- const innerType = parseClrTypeString(innerMatch[1]);
96
- return {
97
- kind: "unionType",
98
- types: [innerType, { kind: "primitiveType", name: "undefined" }],
99
- };
100
- }
101
- }
102
- // Handle type parameters (single uppercase letter or common patterns)
103
- if (/^T\d*$/.test(clrType) || /^T[A-Z][a-zA-Z]*$/.test(clrType)) {
104
- return { kind: "typeParameterType", name: clrType };
105
- }
106
- // Handle generic types: Name`N[[TypeArgs]]
107
- const genericMatch = clrType.match(/^(.+)`(\d+)(?:\[\[(.+)\]\])?$/);
108
- if (genericMatch && genericMatch[1] && genericMatch[2]) {
109
- const baseName = genericMatch[1];
110
- const arity = parseInt(genericMatch[2], 10);
111
- const typeArgsStr = genericMatch[3]; // May be undefined
112
- // Extract type arguments if present
113
- const typeArguments = [];
114
- if (typeArgsStr) {
115
- // Parse comma-separated type args (this is simplified, may need proper parsing)
116
- const args = splitTypeArguments(typeArgsStr);
117
- for (const arg of args) {
118
- typeArguments.push(parseClrTypeString(arg.trim()));
119
- }
120
- }
121
- else {
122
- // Generate placeholder type parameters
123
- for (let i = 0; i < arity; i++) {
124
- typeArguments.push({
125
- kind: "typeParameterType",
126
- name: i === 0 ? "T" : `T${i + 1}`,
127
- });
128
- }
129
- }
130
- return {
131
- kind: "referenceType",
132
- name: baseName,
133
- typeArguments: typeArguments.length > 0 ? typeArguments : undefined,
134
- resolvedClrType: clrType,
135
- };
136
- }
137
- // Default: treat as reference type
138
- return {
139
- kind: "referenceType",
140
- name: clrType,
141
- resolvedClrType: clrType,
142
- };
143
- };
144
- /**
145
- * Split type arguments handling nested brackets.
146
- */
147
- const splitTypeArguments = (str) => {
148
- const result = [];
149
- let depth = 0;
150
- let current = "";
151
- for (const char of str) {
152
- if (char === "[") {
153
- depth++;
154
- current += char;
155
- }
156
- else if (char === "]") {
157
- depth--;
158
- current += char;
159
- }
160
- else if (char === "," && depth === 0) {
161
- result.push(current.trim());
162
- current = "";
163
- }
164
- else {
165
- current += char;
166
- }
167
- }
168
- if (current.trim()) {
169
- result.push(current.trim());
170
- }
171
- return result;
172
- };
173
- // ═══════════════════════════════════════════════════════════════════════════
174
- // NORMALIZED SIGNATURE PARSING
175
- // ═══════════════════════════════════════════════════════════════════════════
176
- /**
177
- * Parse type from normalized signature for properties.
178
- *
179
- * Format for regular properties: "Name|:ReturnType|static=bool|accessor=get"
180
- * Example: "Length|:System.Int32|static=false|accessor=get"
181
- *
182
- * Format for indexer properties: "Name|[IndexType]:ReturnType|static=bool|accessor=get"
183
- * Example: "Chars|[System.Int32]:System.Char|static=false|accessor=get"
184
- */
185
- const parsePropertyType = (normalizedSig) => {
186
- // Try indexer format first: Chars|[System.Int32]:System.Char|...
187
- const indexerMatch = normalizedSig.match(/\|\[[^\]]*\]:([^|]+)\|/);
188
- if (indexerMatch && indexerMatch[1]) {
189
- return parseClrTypeString(indexerMatch[1]);
190
- }
191
- // Try regular property format: Length|:System.Int32|...
192
- const colonMatch = normalizedSig.match(/\|:([^|]+)\|/);
193
- if (colonMatch && colonMatch[1]) {
194
- return parseClrTypeString(colonMatch[1]);
195
- }
196
- return { kind: "unknownType" };
197
- };
198
- /**
199
- * Parse type from normalized signature for fields.
200
- *
201
- * Format: "Name|Type|static=bool|const=bool"
202
- * Example: "Empty|System.String|static=true|const=false"
203
- */
204
- const parseFieldType = (normalizedSig) => {
205
- const parts = normalizedSig.split("|");
206
- if (parts.length >= 2 && parts[1]) {
207
- return parseClrTypeString(parts[1]);
208
- }
209
- return { kind: "unknownType" };
210
- };
211
- /**
212
- * Parse method signature from normalized signature.
213
- *
214
- * Format: "Name|(ParamTypes):ReturnType|static=bool"
215
- * Example: "Substring|(System.Int32,System.Int32):System.String|static=false"
216
- */
217
- const parseMethodSignature = (normalizedSig, method) => {
218
- // Parse return type
219
- const returnMatch = normalizedSig.match(/\):([^|]+)\|/);
220
- const returnType = returnMatch && returnMatch[1]
221
- ? parseClrTypeString(returnMatch[1])
222
- : { kind: "voidType" };
223
- // Parse parameter types
224
- const paramsMatch = normalizedSig.match(/\|\(([^)]*)\):/);
225
- const parameters = [];
226
- if (paramsMatch && paramsMatch[1]) {
227
- const paramTypes = splitTypeArguments(paramsMatch[1]);
228
- for (let i = 0; i < paramTypes.length; i++) {
229
- const rawParamType = paramTypes[i];
230
- if (!rawParamType)
231
- continue;
232
- let paramType = rawParamType.trim();
233
- let mode = "value";
234
- // Handle ref/out/in modifiers
235
- if (paramType.endsWith("&")) {
236
- mode = "ref"; // or could be out/in, need more info
237
- paramType = paramType.slice(0, -1);
238
- }
239
- parameters.push({
240
- name: `p${i}`, // We don't have parameter names in normalized signature
241
- type: parseClrTypeString(paramType),
242
- mode,
243
- isOptional: false,
244
- isRest: false,
245
- });
246
- }
247
- }
248
- return {
249
- stableId: method.stableId,
250
- parameters,
251
- returnType,
252
- typeParameters: [], // TODO: parse from arity
253
- parameterCount: method.parameterCount,
254
- isStatic: method.isStatic,
255
- isExtensionMethod: method.isExtensionMethod,
256
- sourceInterface: method.sourceInterface,
257
- normalizedSignature: normalizedSig,
258
- };
259
- };
260
- // ═══════════════════════════════════════════════════════════════════════════
261
- // RAW TYPE → NOMINAL ENTRY CONVERSION
262
- // ═══════════════════════════════════════════════════════════════════════════
263
- /**
264
- * Convert raw metadata type to NominalEntry.
265
- */
266
- const convertRawType = (rawType, _namespace) => {
267
- // Parse stableId
268
- const parsed = parseStableId(rawType.stableId);
269
- if (!parsed) {
270
- throw new Error(`Invalid stableId: ${rawType.stableId}`);
271
- }
272
- const typeId = makeTypeId(rawType.stableId, rawType.clrName, parsed.assemblyName, rawType.tsEmitName);
273
- // Convert kind
274
- const kindMap = {
275
- Class: "class",
276
- Interface: "interface",
277
- Struct: "struct",
278
- Enum: "enum",
279
- Delegate: "delegate",
280
- };
281
- const kind = kindMap[rawType.kind] ?? "class";
282
- // Convert properties to members
283
- const members = new Map();
284
- for (const prop of rawType.properties) {
285
- const memberEntry = {
286
- tsName: prop.tsEmitName,
287
- clrName: prop.clrName,
288
- memberKind: "property",
289
- type: parsePropertyType(prop.normalizedSignature),
290
- isStatic: prop.isStatic,
291
- isReadonly: !prop.hasSetter,
292
- isAbstract: prop.isAbstract,
293
- isVirtual: prop.isVirtual,
294
- isOverride: prop.isOverride,
295
- isIndexer: prop.isIndexer,
296
- hasGetter: prop.hasGetter,
297
- hasSetter: prop.hasSetter,
298
- stableId: prop.stableId,
299
- };
300
- members.set(prop.tsEmitName, memberEntry);
301
- }
302
- // Convert fields to members
303
- for (const field of rawType.fields) {
304
- const memberEntry = {
305
- tsName: field.tsEmitName,
306
- clrName: field.clrName,
307
- memberKind: "field",
308
- type: parseFieldType(field.normalizedSignature),
309
- isStatic: field.isStatic,
310
- isReadonly: field.isReadOnly || field.isLiteral,
311
- isAbstract: false,
312
- isVirtual: false,
313
- isOverride: false,
314
- isIndexer: false,
315
- hasGetter: true,
316
- hasSetter: !field.isReadOnly && !field.isLiteral,
317
- stableId: field.stableId,
318
- };
319
- members.set(field.tsEmitName, memberEntry);
320
- }
321
- // Convert methods to members (grouped by name for overloads)
322
- const methodsByName = new Map();
323
- for (const method of rawType.methods) {
324
- const existing = methodsByName.get(method.tsEmitName) ?? [];
325
- existing.push(method);
326
- methodsByName.set(method.tsEmitName, existing);
327
- }
328
- for (const [methodName, overloads] of methodsByName) {
329
- const signatures = overloads.map((m) => parseMethodSignature(m.normalizedSignature, m));
330
- const first = overloads[0];
331
- if (!first)
332
- continue; // Should never happen since we only add non-empty arrays
333
- const memberEntry = {
334
- tsName: methodName,
335
- clrName: first.clrName,
336
- memberKind: "method",
337
- signatures,
338
- isStatic: first.isStatic,
339
- isReadonly: true, // methods are readonly
340
- isAbstract: first.isAbstract,
341
- isVirtual: first.isVirtual,
342
- isOverride: first.isOverride,
343
- isIndexer: false,
344
- hasGetter: false,
345
- hasSetter: false,
346
- stableId: first.stableId,
347
- };
348
- members.set(methodName, memberEntry);
349
- }
350
- // Parse type parameters from arity
351
- const typeParameters = [];
352
- for (let i = 0; i < rawType.arity; i++) {
353
- typeParameters.push({
354
- name: i === 0 ? "T" : `T${i + 1}`,
355
- });
356
- }
357
- // Parse heritage (base type and interfaces)
358
- const heritage = [];
359
- // Note: baseType and interfaces are not in the raw type shown,
360
- // but we'd parse them if present
361
- // Convert accessibility
362
- const accessibilityMap = {
363
- Public: "public",
364
- Internal: "internal",
365
- Private: "private",
366
- Protected: "protected",
367
- };
368
- const accessibility = accessibilityMap[rawType.accessibility] ?? "public";
369
- return {
370
- typeId,
371
- kind,
372
- typeParameters,
373
- heritage,
374
- members,
375
- origin: "assembly",
376
- accessibility,
377
- isAbstract: rawType.isAbstract,
378
- isSealed: rawType.isSealed,
379
- isStatic: rawType.isStatic,
380
- };
381
- };
382
- // ═══════════════════════════════════════════════════════════════════════════
383
- // FILE DISCOVERY AND LOADING
384
- // ═══════════════════════════════════════════════════════════════════════════
385
- /**
386
- * Find all @tsonic packages in node_modules.
387
- */
388
- const findTsonicPackages = (nodeModulesPath) => {
389
- const tsonicDir = path.join(nodeModulesPath, "@tsonic");
390
- if (!fs.existsSync(tsonicDir)) {
391
- return [];
392
- }
393
- const packages = [];
394
- for (const entry of fs.readdirSync(tsonicDir, { withFileTypes: true })) {
395
- if (entry.isDirectory()) {
396
- packages.push(path.join(tsonicDir, entry.name));
397
- }
398
- }
399
- return packages;
400
- };
401
- /**
402
- * Find all metadata.json files in a package.
403
- */
404
- const findMetadataFiles = (packagePath) => {
405
- const metadataFiles = [];
406
- const walk = (dir) => {
407
- if (!fs.existsSync(dir))
408
- return;
409
- for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
410
- const fullPath = path.join(dir, entry.name);
411
- if (entry.isDirectory()) {
412
- walk(fullPath);
413
- }
414
- else if (entry.name === "metadata.json") {
415
- metadataFiles.push(fullPath);
416
- }
417
- }
418
- };
419
- walk(packagePath);
420
- return metadataFiles;
421
- };
422
- // TODO: findBindingsFile will be used for loading parameter modifier info and TS name overrides
423
- // const findBindingsFile = (namespaceDir: string): string | undefined => {
424
- // const bindingsPath = path.join(namespaceDir, "bindings.json");
425
- // return fs.existsSync(bindingsPath) ? bindingsPath : undefined;
426
- // };
427
- // ═══════════════════════════════════════════════════════════════════════════
428
- // MAIN LOADER FUNCTION
429
- // ═══════════════════════════════════════════════════════════════════════════
430
- /**
431
- * Load all assembly types from node_modules/@tsonic packages.
432
- *
433
- * @param nodeModulesPath - Path to node_modules directory
434
- * @returns AssemblyTypeCatalog with all loaded types
435
- */
436
- export const loadAssemblyTypeCatalog = (nodeModulesPath) => {
437
- const entries = new Map();
438
- const tsNameToTypeId = new Map();
439
- const clrNameToTypeId = new Map();
440
- const namespaceToTypeIds = new Map();
441
- // Find all @tsonic packages
442
- const packages = findTsonicPackages(nodeModulesPath);
443
- for (const packagePath of packages) {
444
- // Find all metadata.json files
445
- const metadataFiles = findMetadataFiles(packagePath);
446
- for (const metadataPath of metadataFiles) {
447
- try {
448
- const content = fs.readFileSync(metadataPath, "utf-8");
449
- const metadata = JSON.parse(content);
450
- for (const rawType of metadata.types) {
451
- const entry = convertRawType(rawType, metadata.namespace);
452
- // Add to entries map
453
- entries.set(entry.typeId.stableId, entry);
454
- // Add to name lookup maps
455
- tsNameToTypeId.set(entry.typeId.tsName, entry.typeId);
456
- clrNameToTypeId.set(entry.typeId.clrName, entry.typeId);
457
- // Add to namespace map
458
- const nsTypes = namespaceToTypeIds.get(metadata.namespace) ?? [];
459
- nsTypes.push(entry.typeId);
460
- namespaceToTypeIds.set(metadata.namespace, nsTypes);
461
- }
462
- }
463
- catch (e) {
464
- // Log but continue - don't fail on malformed files
465
- console.warn(`Failed to load metadata from ${metadataPath}:`, e);
466
- }
467
- }
468
- }
469
- return {
470
- entries,
471
- tsNameToTypeId,
472
- clrNameToTypeId,
473
- namespaceToTypeIds,
474
- };
475
- };
476
- /**
477
- * Load assembly catalog from a specific package (for testing).
478
- */
479
- export const loadSinglePackageMetadata = (metadataPath) => {
480
- const entries = new Map();
481
- const tsNameToTypeId = new Map();
482
- const clrNameToTypeId = new Map();
483
- const namespaceToTypeIds = new Map();
484
- const content = fs.readFileSync(metadataPath, "utf-8");
485
- const metadata = JSON.parse(content);
486
- for (const rawType of metadata.types) {
487
- const entry = convertRawType(rawType, metadata.namespace);
488
- entries.set(entry.typeId.stableId, entry);
489
- tsNameToTypeId.set(entry.typeId.tsName, entry.typeId);
490
- clrNameToTypeId.set(entry.typeId.clrName, entry.typeId);
491
- const nsTypes = namespaceToTypeIds.get(metadata.namespace) ?? [];
492
- nsTypes.push(entry.typeId);
493
- namespaceToTypeIds.set(metadata.namespace, nsTypes);
494
- }
495
- return {
496
- entries,
497
- tsNameToTypeId,
498
- clrNameToTypeId,
499
- namespaceToTypeIds,
500
- };
501
- };
502
- // ═══════════════════════════════════════════════════════════════════════════
503
- // CATALOG QUERY HELPERS
504
- // ═══════════════════════════════════════════════════════════════════════════
505
- /**
506
- * Get a type entry by stableId.
507
- */
508
- export const getTypeByStableId = (catalog, stableId) => {
509
- return catalog.entries.get(stableId);
510
- };
511
- /**
512
- * Get a type entry by TS name.
513
- */
514
- export const getTypeByTsName = (catalog, tsName) => {
515
- const typeId = catalog.tsNameToTypeId.get(tsName);
516
- return typeId ? catalog.entries.get(typeId.stableId) : undefined;
517
- };
518
- /**
519
- * Get a type entry by CLR name.
520
- */
521
- export const getTypeByClrName = (catalog, clrName) => {
522
- const typeId = catalog.clrNameToTypeId.get(clrName);
523
- return typeId ? catalog.entries.get(typeId.stableId) : undefined;
524
- };
525
- /**
526
- * Get a member from a type by TS name.
527
- */
528
- export const getMemberByTsName = (catalog, typeStableId, memberTsName) => {
529
- const entry = catalog.entries.get(typeStableId);
530
- return entry?.members.get(memberTsName);
531
- };
532
- //# sourceMappingURL=assembly-catalog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assembly-catalog.js","sourceRoot":"","sources":["../../../src/ir/type-universe/assembly-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Assembly Catalog Tests
3
- *
4
- * Tests for loading CLR metadata from bindings.json/metadata.json files.
5
- */
6
- export {};
7
- //# sourceMappingURL=assembly-catalog.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assembly-catalog.test.d.ts","sourceRoot":"","sources":["../../../src/ir/type-universe/assembly-catalog.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}