@tsonic/frontend 0.0.63 → 0.0.65
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/dependency-graph.d.ts +1 -1
- package/dist/dependency-graph.d.ts.map +1 -1
- package/dist/dependency-graph.js +1 -1
- package/dist/dependency-graph.js.map +1 -1
- package/dist/graph/extraction/imports.d.ts +0 -5
- package/dist/graph/extraction/imports.d.ts.map +1 -1
- package/dist/graph/extraction/imports.js +4 -31
- package/dist/graph/extraction/imports.js.map +1 -1
- package/dist/graph/extraction/index.d.ts +1 -1
- package/dist/graph/extraction/index.d.ts.map +1 -1
- package/dist/graph/extraction/index.js +1 -1
- package/dist/graph/extraction/index.js.map +1 -1
- package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
- package/dist/graph/extraction/orchestrator.js +1 -7
- package/dist/graph/extraction/orchestrator.js.map +1 -1
- package/dist/graph/extraction.d.ts +1 -1
- package/dist/graph/extraction.d.ts.map +1 -1
- package/dist/graph/extraction.js +1 -1
- package/dist/graph/extraction.js.map +1 -1
- package/dist/ir/binding/binding-types.d.ts +2 -2
- package/dist/ir/binding/binding-types.d.ts.map +1 -1
- package/dist/ir/binding-resolution.test.js +224 -0
- package/dist/ir/binding-resolution.test.js.map +1 -1
- package/dist/ir/bindings-disambiguation.test.js +149 -0
- package/dist/ir/bindings-disambiguation.test.js.map +1 -1
- package/dist/ir/builder/imports.d.ts.map +1 -1
- package/dist/ir/builder/imports.js +7 -4
- package/dist/ir/builder/imports.js.map +1 -1
- package/dist/ir/builder.test.js +193 -0
- package/dist/ir/builder.test.js.map +1 -1
- package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
- package/dist/ir/converters/expressions/access/binding-resolution.js +55 -14
- package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -1
- package/dist/ir/converters/expressions/access/member-resolution.d.ts.map +1 -1
- package/dist/ir/converters/expressions/access/member-resolution.js +5 -0
- package/dist/ir/converters/expressions/access/member-resolution.js.map +1 -1
- package/dist/ir/converters/expressions/calls/call-converter.js +3 -3
- package/dist/ir/converters/expressions/calls/call-converter.js.map +1 -1
- package/dist/ir/program-context.d.ts +5 -0
- package/dist/ir/program-context.d.ts.map +1 -1
- package/dist/ir/program-context.js +1 -0
- package/dist/ir/program-context.js.map +1 -1
- package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-converter/orchestrator.js +12 -5
- package/dist/ir/type-system/internal/type-converter/orchestrator.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 +6 -9
- package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
- package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -1
- package/dist/ir/type-system/internal/universe/clr-type-parser.js +66 -0
- package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -1
- package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts +2 -0
- package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/clr-type-parser.test.js +55 -0
- package/dist/ir/type-system/internal/universe/clr-type-parser.test.js.map +1 -0
- package/dist/ir/type-system/type-system-call-resolution.d.ts.map +1 -1
- package/dist/ir/type-system/type-system-call-resolution.js +109 -3
- package/dist/ir/type-system/type-system-call-resolution.js.map +1 -1
- package/dist/ir/type-system/type-system-inference.d.ts.map +1 -1
- package/dist/ir/type-system/type-system-inference.js +38 -0
- package/dist/ir/type-system/type-system-inference.js.map +1 -1
- package/dist/ir/type-system/type-system-state.d.ts.map +1 -1
- package/dist/ir/type-system/type-system-state.js +33 -17
- package/dist/ir/type-system/type-system-state.js.map +1 -1
- package/dist/ir/type-system/type-system.d.ts.map +1 -1
- package/dist/ir/type-system/type-system.js.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 +34 -0
- package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
- package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts +2 -0
- package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts.map +1 -0
- package/dist/ir/validation/anonymous-type-lowering-regressions.test.js +121 -0
- package/dist/ir/validation/anonymous-type-lowering-regressions.test.js.map +1 -0
- package/dist/ir/validation/numeric-invariants.test.js +29 -0
- package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
- package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
- package/dist/ir/validation/numeric-proof-pass.js +21 -0
- package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
- package/dist/program/binding-loader.d.ts +3 -3
- package/dist/program/binding-loader.d.ts.map +1 -1
- package/dist/program/binding-loader.js +47 -23
- package/dist/program/binding-loader.js.map +1 -1
- package/dist/program/binding-registry.d.ts +7 -0
- package/dist/program/binding-registry.d.ts.map +1 -1
- package/dist/program/binding-registry.js +52 -1
- package/dist/program/binding-registry.js.map +1 -1
- package/dist/program/bindings.test.js +168 -0
- package/dist/program/bindings.test.js.map +1 -1
- package/dist/program/creation.d.ts.map +1 -1
- package/dist/program/creation.js +337 -77
- package/dist/program/creation.js.map +1 -1
- package/dist/program/creation.test.js +312 -1
- package/dist/program/creation.test.js.map +1 -1
- package/dist/program/diagnostics.d.ts +1 -1
- package/dist/program/diagnostics.d.ts.map +1 -1
- package/dist/program/diagnostics.js +47 -2
- package/dist/program/diagnostics.js.map +1 -1
- package/dist/program/diagnostics.test.d.ts +2 -0
- package/dist/program/diagnostics.test.d.ts.map +1 -0
- package/dist/program/diagnostics.test.js +58 -0
- package/dist/program/diagnostics.test.js.map +1 -0
- package/dist/program/metadata.d.ts.map +1 -1
- package/dist/program/metadata.js +8 -2
- package/dist/program/metadata.js.map +1 -1
- package/dist/program/types.d.ts +2 -0
- package/dist/program/types.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.js +42 -4
- package/dist/resolver/clr-bindings-resolver.js.map +1 -1
- package/dist/resolver/import-resolution.d.ts.map +1 -1
- package/dist/resolver/import-resolution.js +6 -5
- package/dist/resolver/import-resolution.js.map +1 -1
- package/dist/resolver.test.js +75 -0
- package/dist/resolver.test.js.map +1 -1
- package/dist/surface/profiles.d.ts +13 -0
- package/dist/surface/profiles.d.ts.map +1 -0
- package/dist/surface/profiles.js +214 -0
- package/dist/surface/profiles.js.map +1 -0
- package/dist/surface/profiles.test.d.ts +2 -0
- package/dist/surface/profiles.test.d.ts.map +1 -0
- package/dist/surface/profiles.test.js +125 -0
- package/dist/surface/profiles.test.js.map +1 -0
- package/dist/validation/features.d.ts.map +1 -1
- package/dist/validation/features.js +1 -23
- package/dist/validation/features.js.map +1 -1
- package/dist/validation/features.test.js +4 -4
- package/dist/validation/features.test.js.map +1 -1
- package/dist/validation/imports.d.ts.map +1 -1
- package/dist/validation/imports.js +19 -5
- package/dist/validation/imports.js.map +1 -1
- package/dist/validation/imports.test.js +112 -5
- package/dist/validation/imports.test.js.map +1 -1
- package/dist/validator.maximus.test.js +4 -5
- package/dist/validator.maximus.test.js.map +1 -1
- package/package.json +2 -2
- package/dist/ir/converters/context.d.ts +0 -40
- package/dist/ir/converters/context.d.ts.map +0 -1
- package/dist/ir/converters/context.js +0 -25
- package/dist/ir/converters/context.js.map +0 -1
- package/dist/validation/unsupported-utility-types.d.ts +0 -40
- package/dist/validation/unsupported-utility-types.d.ts.map +0 -1
- package/dist/validation/unsupported-utility-types.js +0 -43
- package/dist/validation/unsupported-utility-types.js.map +0 -1
package/dist/program/creation.js
CHANGED
|
@@ -13,6 +13,226 @@ import { loadBindings } from "./bindings.js";
|
|
|
13
13
|
import { collectTsDiagnostics } from "./diagnostics.js";
|
|
14
14
|
import { createClrBindingsResolver } from "../resolver/clr-bindings-resolver.js";
|
|
15
15
|
import { createBinding } from "../ir/binding/index.js";
|
|
16
|
+
import { resolveSurfaceCapabilities } from "../surface/profiles.js";
|
|
17
|
+
const CORE_GLOBALS_DECLARATIONS = `
|
|
18
|
+
declare global {
|
|
19
|
+
class Error {
|
|
20
|
+
name: string;
|
|
21
|
+
message: string;
|
|
22
|
+
stack?: string;
|
|
23
|
+
constructor(message?: string);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface Function {
|
|
27
|
+
prototype: any;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
interface CallableFunction extends Function {}
|
|
31
|
+
interface NewableFunction extends Function {}
|
|
32
|
+
interface IArguments {}
|
|
33
|
+
interface RegExp {}
|
|
34
|
+
interface ImportMeta {}
|
|
35
|
+
|
|
36
|
+
interface String {}
|
|
37
|
+
interface Number {}
|
|
38
|
+
interface Boolean {}
|
|
39
|
+
|
|
40
|
+
interface Object {
|
|
41
|
+
constructor: Function;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
interface SymbolConstructor {
|
|
45
|
+
readonly iterator: symbol;
|
|
46
|
+
readonly asyncIterator: symbol;
|
|
47
|
+
readonly hasInstance: symbol;
|
|
48
|
+
readonly isConcatSpreadable: symbol;
|
|
49
|
+
readonly species: symbol;
|
|
50
|
+
readonly toPrimitive: symbol;
|
|
51
|
+
readonly toStringTag: symbol;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const Symbol: SymbolConstructor;
|
|
55
|
+
|
|
56
|
+
type PropertyKey = string | number | symbol;
|
|
57
|
+
|
|
58
|
+
interface Array<T> {
|
|
59
|
+
[n: number]: T;
|
|
60
|
+
readonly length: number;
|
|
61
|
+
[Symbol.iterator](): IterableIterator<T>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface ReadonlyArray<T> {
|
|
65
|
+
readonly [n: number]: T;
|
|
66
|
+
readonly length: number;
|
|
67
|
+
[Symbol.iterator](): IterableIterator<T>;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
interface ArrayConstructor {
|
|
71
|
+
new <T>(size?: number): T[];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const Array: ArrayConstructor;
|
|
75
|
+
|
|
76
|
+
type Partial<T> = { [P in keyof T]?: T[P] };
|
|
77
|
+
type Required<T> = { [P in keyof T]-?: T[P] };
|
|
78
|
+
type Readonly<T> = { readonly [P in keyof T]: T[P] };
|
|
79
|
+
type Pick<T, K extends keyof T> = { [P in K]: T[P] };
|
|
80
|
+
type Record<K extends keyof any, T> = { [P in K]: T };
|
|
81
|
+
type Exclude<T, U> = T extends U ? never : T;
|
|
82
|
+
type Extract<T, U> = T extends U ? T : never;
|
|
83
|
+
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
|
|
84
|
+
type NonNullable<T> = T extends null | undefined ? never : T;
|
|
85
|
+
type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;
|
|
86
|
+
type ConstructorParameters<T extends new (...args: any) => any> = T extends new (...args: infer P) => any ? P : never;
|
|
87
|
+
type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;
|
|
88
|
+
type InstanceType<T extends new (...args: any) => any> = T extends new (...args: any) => infer R ? R : any;
|
|
89
|
+
type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T;
|
|
90
|
+
|
|
91
|
+
interface Promise<T> {
|
|
92
|
+
then<TResult1 = T, TResult2 = never>(
|
|
93
|
+
onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,
|
|
94
|
+
onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null
|
|
95
|
+
): Promise<TResult1 | TResult2>;
|
|
96
|
+
catch<TResult = never>(
|
|
97
|
+
onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null
|
|
98
|
+
): Promise<T | TResult>;
|
|
99
|
+
finally(onfinally?: (() => void) | undefined | null): Promise<T>;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
interface PromiseLike<T> {
|
|
103
|
+
then<TResult1 = T, TResult2 = never>(
|
|
104
|
+
onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null,
|
|
105
|
+
onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null
|
|
106
|
+
): PromiseLike<TResult1 | TResult2>;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
interface PromiseConstructor {
|
|
110
|
+
new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
|
|
111
|
+
resolve(): Promise<void>;
|
|
112
|
+
resolve<T>(value: T | PromiseLike<T>): Promise<T>;
|
|
113
|
+
reject<T = never>(reason?: any): Promise<T>;
|
|
114
|
+
all<T>(values: readonly (T | PromiseLike<T>)[]): Promise<T[]>;
|
|
115
|
+
race<T>(values: readonly (T | PromiseLike<T>)[]): Promise<T>;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const Promise: PromiseConstructor;
|
|
119
|
+
|
|
120
|
+
interface Iterator<T, TReturn = any, TNext = undefined> {
|
|
121
|
+
next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
|
|
122
|
+
return?(value?: TReturn): IteratorResult<T, TReturn>;
|
|
123
|
+
throw?(e?: any): IteratorResult<T, TReturn>;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
interface IteratorResult<T, TReturn = any> {
|
|
127
|
+
done: boolean;
|
|
128
|
+
value: T | TReturn;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
interface IteratorYieldResult<T> {
|
|
132
|
+
done: false;
|
|
133
|
+
value: T;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
interface IteratorReturnResult<TReturn> {
|
|
137
|
+
done: true;
|
|
138
|
+
value: TReturn;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
interface Iterable<T, TReturn = any, TNext = undefined> {
|
|
142
|
+
[Symbol.iterator](): Iterator<T, TReturn, TNext>;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
interface IterableIterator<T, TReturn = any, TNext = undefined>
|
|
146
|
+
extends Iterator<T, TReturn, TNext> {
|
|
147
|
+
[Symbol.iterator](): IterableIterator<T, TReturn, TNext>;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
interface AsyncIterator<T, TReturn = any, TNext = undefined> {
|
|
151
|
+
next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
|
|
152
|
+
return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
|
|
153
|
+
throw?(e?: any): Promise<IteratorResult<T, TReturn>>;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
interface AsyncIterable<T, TReturn = any, TNext = undefined> {
|
|
157
|
+
[Symbol.asyncIterator](): AsyncIterator<T, TReturn, TNext>;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
interface AsyncIterableIterator<T, TReturn = any, TNext = undefined>
|
|
161
|
+
extends AsyncIterator<T, TReturn, TNext> {
|
|
162
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<T, TReturn, TNext>;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
interface Generator<T = unknown, TReturn = any, TNext = unknown>
|
|
166
|
+
extends Iterator<T, TReturn, TNext> {
|
|
167
|
+
next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
|
|
168
|
+
return(value: TReturn): IteratorResult<T, TReturn>;
|
|
169
|
+
throw(e: any): IteratorResult<T, TReturn>;
|
|
170
|
+
[Symbol.iterator](): Generator<T, TReturn, TNext>;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown>
|
|
174
|
+
extends AsyncIterator<T, TReturn, TNext> {
|
|
175
|
+
next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
|
|
176
|
+
return(value: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
|
|
177
|
+
throw(e: any): Promise<IteratorResult<T, TReturn>>;
|
|
178
|
+
[Symbol.asyncIterator](): AsyncGenerator<T, TReturn, TNext>;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
interface TemplateStringsArray extends ReadonlyArray<string> {
|
|
182
|
+
readonly raw: readonly string[];
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
type Uppercase<S extends string> = intrinsic;
|
|
186
|
+
type Lowercase<S extends string> = intrinsic;
|
|
187
|
+
type Capitalize<S extends string> = intrinsic;
|
|
188
|
+
type Uncapitalize<S extends string> = intrinsic;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export {};
|
|
192
|
+
`.trim();
|
|
193
|
+
const CLR_GLOBALS_DECLARATIONS = `
|
|
194
|
+
import type { char } from "@tsonic/core/types.js";
|
|
195
|
+
import {
|
|
196
|
+
Array$instance, __Array$views,
|
|
197
|
+
String$instance, __String$views,
|
|
198
|
+
Double$instance, __Double$views,
|
|
199
|
+
Boolean$instance, __Boolean$views,
|
|
200
|
+
Object$instance
|
|
201
|
+
} from "@tsonic/dotnet/System/internal/index.js";
|
|
202
|
+
import type { IEnumerator } from "@tsonic/dotnet/System.Collections.js";
|
|
203
|
+
import type {
|
|
204
|
+
IEnumerable,
|
|
205
|
+
IEnumerator as IEnumeratorT
|
|
206
|
+
} from "@tsonic/dotnet/System.Collections.Generic.js";
|
|
207
|
+
|
|
208
|
+
declare global {
|
|
209
|
+
interface Array<T> extends Array$instance, __Array$views, IEnumerable<T> {
|
|
210
|
+
[n: number]: T;
|
|
211
|
+
[Symbol.iterator](): IterableIterator<T>;
|
|
212
|
+
GetEnumerator(): IEnumeratorT<T>;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
interface ReadonlyArray<T> extends Array$instance, __Array$views, IEnumerable<T> {
|
|
216
|
+
readonly [n: number]: T;
|
|
217
|
+
[Symbol.iterator](): IterableIterator<T>;
|
|
218
|
+
GetEnumerator(): IEnumeratorT<T>;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
interface ArrayConstructor {
|
|
222
|
+
new <T>(size?: number): T[];
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
interface String extends String$instance, __String$views {
|
|
226
|
+
readonly [index: number]: char;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
interface Number extends Double$instance, __Double$views {}
|
|
230
|
+
interface Boolean extends Boolean$instance, __Boolean$views {}
|
|
231
|
+
interface Object extends Object$instance {}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export {};
|
|
235
|
+
`.trim();
|
|
16
236
|
/**
|
|
17
237
|
* Recursively scan a directory for .d.ts files
|
|
18
238
|
*/
|
|
@@ -45,14 +265,13 @@ const scanForDeclarationFiles = (dir) => {
|
|
|
45
265
|
* Exported for use by dependency graph builder
|
|
46
266
|
*/
|
|
47
267
|
export const createCompilerOptions = (options) => {
|
|
268
|
+
const surfaceCapabilities = resolveSurfaceCapabilities(options.surface ?? "clr", { projectRoot: options.projectRoot });
|
|
48
269
|
const baseConfig = {
|
|
49
270
|
...defaultTsConfig,
|
|
50
271
|
...(options.strict === undefined ? {} : { strict: options.strict }),
|
|
51
272
|
rootDir: options.sourceRoot,
|
|
52
273
|
};
|
|
53
|
-
|
|
54
|
-
// This is useful for tests that don't have access to BCL bindings
|
|
55
|
-
if (options.useStandardLib) {
|
|
274
|
+
if (options.useStandardLib || surfaceCapabilities.useStandardLib) {
|
|
56
275
|
return {
|
|
57
276
|
...baseConfig,
|
|
58
277
|
noLib: false,
|
|
@@ -65,25 +284,65 @@ export const createCompilerOptions = (options) => {
|
|
|
65
284
|
* Create a Tsonic program from TypeScript source files
|
|
66
285
|
*/
|
|
67
286
|
export const createProgram = (filePaths, options) => {
|
|
287
|
+
const surface = options.surface ?? "clr";
|
|
288
|
+
const surfaceCapabilities = resolveSurfaceCapabilities(surface, {
|
|
289
|
+
projectRoot: options.projectRoot,
|
|
290
|
+
});
|
|
68
291
|
const absolutePaths = filePaths.map((fp) => path.resolve(fp));
|
|
69
292
|
const compilerContainingFile = fileURLToPath(import.meta.url);
|
|
70
293
|
// creation.ts lives at: <repoRoot>/packages/frontend/src/program/creation.ts
|
|
71
294
|
// repoRoot is 4 levels up from this file's directory.
|
|
72
295
|
const repoRoot = path.resolve(path.join(path.dirname(compilerContainingFile), "../../../.."));
|
|
73
296
|
const require = createRequire(import.meta.url);
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
catch {
|
|
84
|
-
// Ignore invalid package.json.
|
|
85
|
-
}
|
|
297
|
+
const readPackageName = (pkgJsonPath) => {
|
|
298
|
+
if (!fs.existsSync(pkgJsonPath))
|
|
299
|
+
return undefined;
|
|
300
|
+
try {
|
|
301
|
+
const parsed = JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8"));
|
|
302
|
+
return typeof parsed.name === "string" ? parsed.name : undefined;
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
return undefined;
|
|
86
306
|
}
|
|
307
|
+
};
|
|
308
|
+
const resolveSiblingTsonicPackageRoot = (pkgDirName) => {
|
|
309
|
+
const expectedName = `@tsonic/${pkgDirName}`;
|
|
310
|
+
const siblingRepoRoot = path.resolve(path.join(repoRoot, "..", pkgDirName));
|
|
311
|
+
const repoPackageName = readPackageName(path.join(siblingRepoRoot, "package.json"));
|
|
312
|
+
if (repoPackageName === expectedName)
|
|
313
|
+
return siblingRepoRoot;
|
|
314
|
+
const versionsRoot = path.join(siblingRepoRoot, "versions");
|
|
315
|
+
if (!fs.existsSync(versionsRoot))
|
|
316
|
+
return undefined;
|
|
317
|
+
const versionDirs = fs
|
|
318
|
+
.readdirSync(versionsRoot, { withFileTypes: true })
|
|
319
|
+
.filter((entry) => entry.isDirectory())
|
|
320
|
+
.map((entry) => entry.name)
|
|
321
|
+
.sort((left, right) => {
|
|
322
|
+
const leftNum = Number.parseInt(left, 10);
|
|
323
|
+
const rightNum = Number.parseInt(right, 10);
|
|
324
|
+
const leftIsNum = Number.isFinite(leftNum);
|
|
325
|
+
const rightIsNum = Number.isFinite(rightNum);
|
|
326
|
+
if (leftIsNum && rightIsNum)
|
|
327
|
+
return rightNum - leftNum;
|
|
328
|
+
if (leftIsNum)
|
|
329
|
+
return -1;
|
|
330
|
+
if (rightIsNum)
|
|
331
|
+
return 1;
|
|
332
|
+
return right.localeCompare(left);
|
|
333
|
+
});
|
|
334
|
+
for (const versionDir of versionDirs) {
|
|
335
|
+
const candidateRoot = path.join(versionsRoot, versionDir);
|
|
336
|
+
const candidateName = readPackageName(path.join(candidateRoot, "package.json"));
|
|
337
|
+
if (candidateName === expectedName)
|
|
338
|
+
return candidateRoot;
|
|
339
|
+
}
|
|
340
|
+
return undefined;
|
|
341
|
+
};
|
|
342
|
+
const resolveTsonicPackageRoot = (pkgDirName) => {
|
|
343
|
+
const siblingRoot = resolveSiblingTsonicPackageRoot(pkgDirName);
|
|
344
|
+
if (siblingRoot)
|
|
345
|
+
return siblingRoot;
|
|
87
346
|
// Fall back to compiler-owned installation (keeps stdlib typings coherent)
|
|
88
347
|
try {
|
|
89
348
|
const installedPkgJson = require.resolve(`@tsonic/${pkgDirName}/package.json`);
|
|
@@ -94,35 +353,36 @@ export const createProgram = (filePaths, options) => {
|
|
|
94
353
|
}
|
|
95
354
|
return undefined;
|
|
96
355
|
};
|
|
97
|
-
//
|
|
98
|
-
// Prefer sibling checkout (dev) or fall back to installed package.
|
|
99
|
-
const mandatoryTypeRoot = resolveTsonicPackageRoot("globals");
|
|
100
|
-
// Get declaration files from type roots
|
|
101
|
-
// Inject mandatory type root first, then user-provided roots
|
|
356
|
+
// Get declaration files from type roots.
|
|
102
357
|
const userTypeRoots = options.typeRoots ?? [];
|
|
103
|
-
const
|
|
358
|
+
const requestedTypeRoots = Array.from(new Set([
|
|
359
|
+
...userTypeRoots,
|
|
360
|
+
...surfaceCapabilities.requiredTypeRoots,
|
|
361
|
+
]));
|
|
362
|
+
const resolvedRequestedTypeRoots = requestedTypeRoots.map((typeRoot) => {
|
|
104
363
|
const absoluteRoot = path.isAbsolute(typeRoot)
|
|
105
364
|
? typeRoot
|
|
106
365
|
: path.resolve(options.projectRoot, typeRoot);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
//
|
|
110
|
-
//
|
|
366
|
+
// For @tsonic/* type roots, prefer compiler-owned package roots (sibling
|
|
367
|
+
// checkout or compiler installation) so the active compiler and language
|
|
368
|
+
// surfaces stay coherent during development and test runs.
|
|
369
|
+
//
|
|
370
|
+
// If no compiler-owned package is available, fall back to the project's
|
|
371
|
+
// resolved node_modules path.
|
|
111
372
|
const match = typeRoot.match(/(?:^|[/\\\\])node_modules[/\\\\]@tsonic[/\\\\]([^/\\\\]+)[/\\\\]?$/);
|
|
112
|
-
if (
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
373
|
+
if (match) {
|
|
374
|
+
const pkgDirName = match[1];
|
|
375
|
+
if (pkgDirName) {
|
|
376
|
+
const compilerOwned = resolveTsonicPackageRoot(pkgDirName);
|
|
377
|
+
if (compilerOwned)
|
|
378
|
+
return compilerOwned;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
if (fs.existsSync(absoluteRoot))
|
|
116
382
|
return absoluteRoot;
|
|
117
|
-
return
|
|
383
|
+
return absoluteRoot;
|
|
118
384
|
});
|
|
119
|
-
const typeRoots =
|
|
120
|
-
? resolvedUserTypeRoots
|
|
121
|
-
: mandatoryTypeRoot
|
|
122
|
-
? Array.from(new Set([mandatoryTypeRoot, ...resolvedUserTypeRoots]))
|
|
123
|
-
: resolvedUserTypeRoots.length > 0
|
|
124
|
-
? resolvedUserTypeRoots
|
|
125
|
-
: ["node_modules/@tsonic/globals"];
|
|
385
|
+
const typeRoots = resolvedRequestedTypeRoots;
|
|
126
386
|
// Debug log typeRoots
|
|
127
387
|
if (options.verbose && typeRoots.length > 0) {
|
|
128
388
|
console.log(`TypeRoots: ${typeRoots.join(", ")}`);
|
|
@@ -156,16 +416,41 @@ export const createProgram = (filePaths, options) => {
|
|
|
156
416
|
}
|
|
157
417
|
}
|
|
158
418
|
}
|
|
159
|
-
|
|
160
|
-
|
|
419
|
+
const coreGlobalsVirtualPath = path.join(options.projectRoot, ".tsonic", "__core_globals__.d.ts");
|
|
420
|
+
const clrGlobalsVirtualPath = path.join(options.projectRoot, ".tsonic", "__clr_globals__.d.ts");
|
|
421
|
+
const virtualDeclarationSources = new Map([
|
|
422
|
+
[path.resolve(coreGlobalsVirtualPath), CORE_GLOBALS_DECLARATIONS],
|
|
423
|
+
]);
|
|
424
|
+
if (surfaceCapabilities.includesClr) {
|
|
425
|
+
virtualDeclarationSources.set(path.resolve(clrGlobalsVirtualPath), CLR_GLOBALS_DECLARATIONS);
|
|
426
|
+
}
|
|
427
|
+
const virtualDeclarationFiles = Array.from(virtualDeclarationSources.keys());
|
|
428
|
+
// Combine source files, declaration files, namespace index files, and
|
|
429
|
+
// compiler-owned virtual declarations.
|
|
161
430
|
const allFiles = [
|
|
162
431
|
...absolutePaths,
|
|
163
432
|
...declarationFiles,
|
|
164
433
|
...namespaceIndexFiles,
|
|
434
|
+
...virtualDeclarationFiles,
|
|
165
435
|
];
|
|
166
436
|
const tsOptions = createCompilerOptions(options);
|
|
167
437
|
// Create custom compiler host with virtual .NET module declarations
|
|
168
438
|
const host = ts.createCompilerHost(tsOptions);
|
|
439
|
+
const normalizeVirtualFilePath = (filePath) => path.resolve(filePath);
|
|
440
|
+
const getVirtualDeclarationText = (filePath) => virtualDeclarationSources.get(normalizeVirtualFilePath(filePath));
|
|
441
|
+
const originalFileExists = host.fileExists;
|
|
442
|
+
host.fileExists = (fileName) => {
|
|
443
|
+
if (getVirtualDeclarationText(fileName) !== undefined)
|
|
444
|
+
return true;
|
|
445
|
+
return originalFileExists(fileName);
|
|
446
|
+
};
|
|
447
|
+
const originalReadFile = host.readFile;
|
|
448
|
+
host.readFile = (fileName) => {
|
|
449
|
+
const virtualText = getVirtualDeclarationText(fileName);
|
|
450
|
+
if (virtualText !== undefined)
|
|
451
|
+
return virtualText;
|
|
452
|
+
return originalReadFile(fileName);
|
|
453
|
+
};
|
|
169
454
|
// Map of .NET namespace names to their declaration file paths
|
|
170
455
|
const namespaceFiles = new Map();
|
|
171
456
|
for (const indexFile of namespaceIndexFiles) {
|
|
@@ -183,6 +468,10 @@ export const createProgram = (filePaths, options) => {
|
|
|
183
468
|
// Override getSourceFile to provide virtual module declarations
|
|
184
469
|
const originalGetSourceFile = host.getSourceFile;
|
|
185
470
|
host.getSourceFile = (fileName, languageVersion, onError, shouldCreateNewSourceFile) => {
|
|
471
|
+
const virtualText = getVirtualDeclarationText(fileName);
|
|
472
|
+
if (virtualText !== undefined) {
|
|
473
|
+
return ts.createSourceFile(fileName, virtualText, languageVersion, true);
|
|
474
|
+
}
|
|
186
475
|
// Check if this is a .NET namespace being imported
|
|
187
476
|
const baseName = path.basename(fileName, path.extname(fileName));
|
|
188
477
|
const declarationPath = namespaceFiles.get(baseName);
|
|
@@ -232,7 +521,9 @@ export const createProgram = (filePaths, options) => {
|
|
|
232
521
|
const subpath = match[2];
|
|
233
522
|
if (!pkgDirName || !subpath)
|
|
234
523
|
return undefined;
|
|
235
|
-
const siblingRoot =
|
|
524
|
+
const siblingRoot = resolveSiblingTsonicPackageRoot(pkgDirName);
|
|
525
|
+
if (!siblingRoot)
|
|
526
|
+
return undefined;
|
|
236
527
|
const jsPath = path.join(siblingRoot, subpath);
|
|
237
528
|
const dtsPath = jsPath.endsWith(".js")
|
|
238
529
|
? jsPath.replace(/\.js$/, ".d.ts")
|
|
@@ -273,45 +564,14 @@ export const createProgram = (filePaths, options) => {
|
|
|
273
564
|
const sourceFiles = program
|
|
274
565
|
.getSourceFiles()
|
|
275
566
|
.filter((sf) => !sf.isDeclarationFile && absolutePaths.includes(sf.fileName));
|
|
276
|
-
// Declaration files for TypeRegistry
|
|
277
|
-
//
|
|
278
|
-
//
|
|
279
|
-
//
|
|
280
|
-
//
|
|
281
|
-
// - Any other @tsonic/* dependencies
|
|
282
|
-
// We need all of these for proper heritage chain resolution (e.g., String extends String$instance)
|
|
283
|
-
const packageRootCache = new Map();
|
|
284
|
-
const isInTsonicPackage = (filePath) => {
|
|
285
|
-
let dir = path.dirname(filePath);
|
|
286
|
-
while (true) {
|
|
287
|
-
const cached = packageRootCache.get(dir);
|
|
288
|
-
if (cached !== undefined)
|
|
289
|
-
return cached;
|
|
290
|
-
const pkgJson = path.join(dir, "package.json");
|
|
291
|
-
if (fs.existsSync(pkgJson)) {
|
|
292
|
-
try {
|
|
293
|
-
const parsed = JSON.parse(fs.readFileSync(pkgJson, "utf-8"));
|
|
294
|
-
const ok = typeof parsed.name === "string" &&
|
|
295
|
-
parsed.name.startsWith("@tsonic/");
|
|
296
|
-
packageRootCache.set(dir, ok);
|
|
297
|
-
return ok;
|
|
298
|
-
}
|
|
299
|
-
catch {
|
|
300
|
-
packageRootCache.set(dir, false);
|
|
301
|
-
return false;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
const parent = path.dirname(dir);
|
|
305
|
-
if (parent === dir) {
|
|
306
|
-
packageRootCache.set(dir, false);
|
|
307
|
-
return false;
|
|
308
|
-
}
|
|
309
|
-
dir = parent;
|
|
310
|
-
}
|
|
311
|
-
};
|
|
567
|
+
// Declaration files for TypeRegistry:
|
|
568
|
+
// include all declarations in the program. ProgramContext later filters out
|
|
569
|
+
// CLR metadata packages that are represented in the CLR catalog.
|
|
570
|
+
// This keeps surface support generic: custom non-@tsonic surface packages are
|
|
571
|
+
// available to the frontend without any package-name allowlist.
|
|
312
572
|
const declarationSourceFiles = program
|
|
313
573
|
.getSourceFiles()
|
|
314
|
-
.filter((sf) => sf.isDeclarationFile
|
|
574
|
+
.filter((sf) => sf.isDeclarationFile);
|
|
315
575
|
// Load .NET metadata files
|
|
316
576
|
const metadata = loadDotnetMetadata(typeRoots);
|
|
317
577
|
// Load binding manifests (from typeRoots - for ambient globals)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creation.js","sourceRoot":"","sources":["../../src/program/creation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"creation.js","sourceRoot":"","sources":["../../src/program/creation.ts"],"names":[],"mappings":"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"}
|