@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
- package/dist/graph/extraction/orchestrator.js +3 -2
- package/dist/graph/extraction/orchestrator.js.map +1 -1
- package/dist/ir/binding/index.d.ts +21 -0
- package/dist/ir/binding/index.d.ts.map +1 -1
- package/dist/ir/binding/index.js +316 -6
- package/dist/ir/binding/index.js.map +1 -1
- package/dist/ir/bindings-disambiguation.test.d.ts +11 -0
- package/dist/ir/bindings-disambiguation.test.d.ts.map +1 -0
- package/dist/ir/bindings-disambiguation.test.js +416 -0
- package/dist/ir/bindings-disambiguation.test.js.map +1 -0
- package/dist/ir/builder/orchestrator.d.ts.map +1 -1
- package/dist/ir/builder/orchestrator.js +8 -2
- package/dist/ir/builder/orchestrator.js.map +1 -1
- package/dist/ir/builder/types.d.ts +2 -3
- package/dist/ir/builder/types.d.ts.map +1 -1
- package/dist/ir/builder.test.js +1 -1
- package/dist/ir/converters/context.d.ts.map +1 -1
- package/dist/ir/converters/context.js +1 -0
- package/dist/ir/converters/context.js.map +1 -1
- package/dist/ir/converters/expressions/access.d.ts.map +1 -1
- package/dist/ir/converters/expressions/access.js +161 -39
- package/dist/ir/converters/expressions/access.js.map +1 -1
- package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
- package/dist/ir/converters/expressions/calls.js +256 -19
- package/dist/ir/converters/expressions/calls.js.map +1 -1
- package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
- package/dist/ir/converters/expressions/functions.js +30 -12
- package/dist/ir/converters/expressions/functions.js.map +1 -1
- package/dist/ir/converters/expressions/operators.d.ts.map +1 -1
- package/dist/ir/converters/expressions/operators.js +5 -1
- package/dist/ir/converters/expressions/operators.js.map +1 -1
- package/dist/ir/converters/flow-narrowing.d.ts +27 -0
- package/dist/ir/converters/flow-narrowing.d.ts.map +1 -0
- package/dist/ir/converters/flow-narrowing.js +73 -0
- package/dist/ir/converters/flow-narrowing.js.map +1 -0
- package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
- package/dist/ir/converters/statements/control/conditionals.js +19 -2
- package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
- package/dist/ir/expression-converter.d.ts.map +1 -1
- package/dist/ir/expression-converter.js +11 -4
- package/dist/ir/expression-converter.js.map +1 -1
- package/dist/ir/program-context.d.ts +17 -4
- package/dist/ir/program-context.d.ts.map +1 -1
- package/dist/ir/program-context.js +3 -0
- package/dist/ir/program-context.js.map +1 -1
- package/dist/ir/thisarg-inference.test.js +18 -18
- package/dist/ir/thisarg-inference.test.js.map +1 -1
- package/dist/ir/type-system/internal/handle-types.d.ts +7 -0
- package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-converter/primitives.d.ts +3 -3
- package/dist/ir/type-system/internal/type-converter/primitives.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-converter/primitives.js +2 -2
- package/dist/ir/type-system/internal/type-converter/primitives.js.map +1 -1
- package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-converter/references.js +5 -11
- package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
- package/dist/ir/type-system/internal/type-registry.d.ts +6 -1
- package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-registry.js +11 -10
- package/dist/ir/type-system/internal/type-registry.js.map +1 -1
- package/dist/ir/type-system/internal/universe/clr-catalog.d.ts.map +1 -1
- package/dist/ir/type-system/internal/universe/clr-catalog.js +20 -4
- package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
- package/dist/ir/type-system/internal/universe/source-catalog.d.ts +2 -0
- package/dist/ir/type-system/internal/universe/source-catalog.d.ts.map +1 -1
- package/dist/ir/type-system/internal/universe/source-catalog.js +8 -3
- package/dist/ir/type-system/internal/universe/source-catalog.js.map +1 -1
- package/dist/ir/type-system/internal/universe/types.d.ts +1 -1
- package/dist/ir/type-system/type-system.d.ts.map +1 -1
- package/dist/ir/type-system/type-system.js +192 -33
- package/dist/ir/type-system/type-system.js.map +1 -1
- package/dist/ir/types/expressions.d.ts +2 -0
- package/dist/ir/types/expressions.d.ts.map +1 -1
- package/dist/ir/types/ir-types.d.ts +1 -1
- package/dist/ir/types/statements.d.ts +9 -0
- package/dist/ir/types/statements.d.ts.map +1 -1
- package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
- package/dist/ir/validation/anonymous-type-lowering-pass.js +1 -0
- package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
- package/dist/ir/validation/char-validation-pass.d.ts +26 -0
- package/dist/ir/validation/char-validation-pass.d.ts.map +1 -0
- package/dist/ir/validation/char-validation-pass.js +495 -0
- package/dist/ir/validation/char-validation-pass.js.map +1 -0
- package/dist/program/bindings.d.ts +16 -0
- package/dist/program/bindings.d.ts.map +1 -1
- package/dist/program/bindings.js +44 -0
- package/dist/program/bindings.js.map +1 -1
- package/dist/program/creation.d.ts.map +1 -1
- package/dist/program/creation.js +11 -104
- package/dist/program/creation.js.map +1 -1
- package/dist/program/dependency-graph.d.ts.map +1 -1
- package/dist/program/dependency-graph.js +8 -1
- package/dist/program/dependency-graph.js.map +1 -1
- package/dist/program/diagnostics.d.ts.map +1 -1
- package/dist/program/diagnostics.js +0 -6
- package/dist/program/diagnostics.js.map +1 -1
- package/dist/program/types.d.ts +2 -3
- package/dist/program/types.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.d.ts +5 -0
- package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.js +121 -31
- package/dist/resolver/clr-bindings-resolver.js.map +1 -1
- package/dist/resolver/clr-bindings-resolver.test.d.ts +2 -0
- package/dist/resolver/clr-bindings-resolver.test.d.ts.map +1 -0
- package/dist/resolver/clr-bindings-resolver.test.js +161 -0
- package/dist/resolver/clr-bindings-resolver.test.js.map +1 -0
- package/dist/resolver/namespace.d.ts +2 -1
- package/dist/resolver/namespace.d.ts.map +1 -1
- package/dist/resolver/namespace.js +5 -2
- package/dist/resolver/namespace.js.map +1 -1
- package/dist/resolver/namespace.test.js +6 -6
- package/dist/resolver/naming-policy.d.ts +20 -0
- package/dist/resolver/naming-policy.d.ts.map +1 -0
- package/dist/resolver/naming-policy.js +40 -0
- package/dist/resolver/naming-policy.js.map +1 -0
- package/dist/resolver/naming.d.ts +2 -5
- package/dist/resolver/naming.d.ts.map +1 -1
- package/dist/resolver/naming.js +2 -30
- package/dist/resolver/naming.js.map +1 -1
- package/dist/resolver.d.ts +2 -0
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +1 -0
- package/dist/resolver.js.map +1 -1
- package/dist/resolver.test.js +7 -6
- package/dist/resolver.test.js.map +1 -1
- package/dist/types/diagnostic.d.ts +1 -1
- package/dist/types/diagnostic.d.ts.map +1 -1
- package/dist/types/diagnostic.js.map +1 -1
- package/dist/validation/core-intrinsics.d.ts +18 -0
- package/dist/validation/core-intrinsics.d.ts.map +1 -0
- package/dist/validation/core-intrinsics.js +186 -0
- package/dist/validation/core-intrinsics.js.map +1 -0
- package/dist/validation/index.d.ts +1 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/orchestrator.d.ts.map +1 -1
- package/dist/validation/orchestrator.js +2 -0
- package/dist/validation/orchestrator.js.map +1 -1
- package/dist/validator.test.js +52 -6
- package/dist/validator.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/ir/clr-type-mappings.d.ts +0 -42
- package/dist/ir/clr-type-mappings.d.ts.map +0 -1
- package/dist/ir/clr-type-mappings.js +0 -139
- package/dist/ir/clr-type-mappings.js.map +0 -1
- package/dist/ir/type-converter.d.ts +0 -9
- package/dist/ir/type-converter.d.ts.map +0 -1
- package/dist/ir/type-converter.js +0 -9
- package/dist/ir/type-converter.js.map +0 -1
- package/dist/ir/type-system/core.d.ts +0 -29
- package/dist/ir/type-system/core.d.ts.map +0 -1
- package/dist/ir/type-system/core.js +0 -456
- package/dist/ir/type-system/core.js.map +0 -1
- package/dist/ir/type-system/internal/type-converter/patterns.d.ts +0 -12
- package/dist/ir/type-system/internal/type-converter/patterns.d.ts.map +0 -1
- package/dist/ir/type-system/internal/type-converter/patterns.js +0 -82
- package/dist/ir/type-system/internal/type-converter/patterns.js.map +0 -1
- package/dist/ir/type-universe/assembly-catalog.d.ts +0 -44
- package/dist/ir/type-universe/assembly-catalog.d.ts.map +0 -1
- package/dist/ir/type-universe/assembly-catalog.js +0 -532
- package/dist/ir/type-universe/assembly-catalog.js.map +0 -1
- package/dist/ir/type-universe/assembly-catalog.test.d.ts +0 -7
- package/dist/ir/type-universe/assembly-catalog.test.d.ts.map +0 -1
- package/dist/ir/type-universe/assembly-catalog.test.js +0 -105
- package/dist/ir/type-universe/assembly-catalog.test.js.map +0 -1
- package/dist/ir/type-universe/index.d.ts +0 -19
- package/dist/ir/type-universe/index.d.ts.map +0 -1
- package/dist/ir/type-universe/index.js +0 -21
- package/dist/ir/type-universe/index.js.map +0 -1
- package/dist/ir/type-universe/types.d.ts +0 -436
- package/dist/ir/type-universe/types.d.ts.map +0 -1
- package/dist/ir/type-universe/types.js +0 -69
- package/dist/ir/type-universe/types.js.map +0 -1
- package/dist/ir/type-universe/unified-catalog.d.ts +0 -70
- package/dist/ir/type-universe/unified-catalog.d.ts.map +0 -1
- package/dist/ir/type-universe/unified-catalog.js +0 -319
- package/dist/ir/type-universe/unified-catalog.js.map +0 -1
- package/dist/ir/type-universe/unified-catalog.test.d.ts +0 -7
- package/dist/ir/type-universe/unified-catalog.test.d.ts.map +0 -1
- package/dist/ir/type-universe/unified-catalog.test.js +0 -135
- 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 +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"}
|