@tsonic/frontend 0.0.64 → 0.0.66
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 +0 -35
- 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 +176 -48
- 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 +76 -52
- package/dist/ir/builder/imports.js.map +1 -1
- package/dist/ir/builder.test.js +118 -0
- package/dist/ir/builder.test.js.map +1 -1
- package/dist/ir/converters/expressions/access/access-converter.d.ts.map +1 -1
- package/dist/ir/converters/expressions/access/access-converter.js +1 -1
- package/dist/ir/converters/expressions/access/access-converter.js.map +1 -1
- package/dist/ir/converters/expressions/access/binding-resolution.d.ts +2 -2
- package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
- package/dist/ir/converters/expressions/access/binding-resolution.js +122 -78
- 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 +8 -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/converters/expressions/numeric-recovery.test.js +110 -2
- package/dist/ir/converters/expressions/numeric-recovery.test.js.map +1 -1
- package/dist/ir/type-system/internal/type-converter/orchestrator.test.js +8 -0
- package/dist/ir/type-system/internal/type-converter/orchestrator.test.js.map +1 -1
- package/dist/ir/type-system/internal/type-converter/references.js +10 -12
- package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
- package/dist/ir/type-system/internal/type-registry.d.ts +3 -2
- package/dist/ir/type-system/internal/type-registry.d.ts.map +1 -1
- package/dist/ir/type-system/internal/type-registry.js +7 -3
- package/dist/ir/type-system/internal/type-registry.js.map +1 -1
- package/dist/ir/type-system/internal/universe/alias-table.js +2 -2
- package/dist/ir/type-system/internal/universe/alias-table.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 +16 -2
- package/dist/ir/type-system/internal/universe/clr-catalog.js.map +1 -1
- package/dist/ir/type-system/internal/universe/clr-catalog.test.d.ts +2 -0
- package/dist/ir/type-system/internal/universe/clr-catalog.test.d.ts.map +1 -0
- package/dist/ir/type-system/internal/universe/clr-catalog.test.js +55 -0
- package/dist/ir/type-system/internal/universe/clr-catalog.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 +134 -5
- 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 +10 -2
- package/dist/ir/type-system/type-system-inference.js.map +1 -1
- package/dist/ir/type-system/type-system-state.d.ts +5 -0
- 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/types/expressions.d.ts +1 -0
- package/dist/ir/types/expressions.d.ts.map +1 -1
- package/dist/ir/validation/attribute-collection-pass.test.js +1 -0
- package/dist/ir/validation/attribute-collection-pass.test.js.map +1 -1
- package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
- package/dist/ir/validation/soundness-gate.js +11 -2
- package/dist/ir/validation/soundness-gate.js.map +1 -1
- package/dist/ir/validation/soundness-gate.test.js +23 -0
- package/dist/ir/validation/soundness-gate.test.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 +41 -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/binding-types.d.ts +1 -0
- package/dist/program/binding-types.d.ts.map +1 -1
- package/dist/program/binding-types.js.map +1 -1
- package/dist/program/bindings.test.js +210 -0
- package/dist/program/bindings.test.js.map +1 -1
- package/dist/program/creation.d.ts.map +1 -1
- package/dist/program/creation.js +292 -161
- package/dist/program/creation.js.map +1 -1
- package/dist/program/creation.test.js +276 -19
- package/dist/program/creation.test.js.map +1 -1
- package/dist/program/metadata.d.ts.map +1 -1
- package/dist/program/metadata.js +72 -15
- package/dist/program/metadata.js.map +1 -1
- package/dist/program/metadata.test.d.ts +2 -0
- package/dist/program/metadata.test.d.ts.map +1 -0
- package/dist/program/metadata.test.js +104 -0
- package/dist/program/metadata.test.js.map +1 -0
- package/dist/program/package-roots.d.ts +2 -0
- package/dist/program/package-roots.d.ts.map +1 -0
- package/dist/program/package-roots.js +88 -0
- package/dist/program/package-roots.js.map +1 -0
- package/dist/program/types.d.ts +1 -1
- 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 +0 -2
- package/dist/resolver/import-resolution.d.ts.map +1 -1
- package/dist/resolver/import-resolution.js +2 -9
- package/dist/resolver/import-resolution.js.map +1 -1
- package/dist/resolver.test.js +50 -78
- package/dist/resolver.test.js.map +1 -1
- package/dist/surface/profiles.d.ts +6 -3
- package/dist/surface/profiles.d.ts.map +1 -1
- package/dist/surface/profiles.js +177 -28
- package/dist/surface/profiles.js.map +1 -1
- package/dist/surface/profiles.test.js +98 -17
- package/dist/surface/profiles.test.js.map +1 -1
- 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 +7 -16
- package/dist/validation/imports.js.map +1 -1
- package/dist/validation/imports.test.js +74 -66
- package/dist/validation/imports.test.js.map +1 -1
- package/dist/validator.maximus.test.js +17 -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/resolver/node-module-aliases.d.ts +0 -6
- package/dist/resolver/node-module-aliases.d.ts.map +0 -1
- package/dist/resolver/node-module-aliases.js +0 -164
- package/dist/resolver/node-module-aliases.js.map +0 -1
- package/dist/resolver/node-module-aliases.test.d.ts +0 -2
- package/dist/resolver/node-module-aliases.test.d.ts.map +0 -1
- package/dist/resolver/node-module-aliases.test.js +0 -64
- package/dist/resolver/node-module-aliases.test.js.map +0 -1
- package/dist/surface/js-surface-shims.d.ts +0 -3
- package/dist/surface/js-surface-shims.d.ts.map +0 -1
- package/dist/surface/js-surface-shims.js +0 -332
- package/dist/surface/js-surface-shims.js.map +0 -1
- package/dist/surface/js-surface-shims.test.d.ts +0 -2
- package/dist/surface/js-surface-shims.test.d.ts.map +0 -1
- package/dist/surface/js-surface-shims.test.js +0 -53
- package/dist/surface/js-surface-shims.test.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
|
@@ -14,9 +14,182 @@ 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
16
|
import { resolveSurfaceCapabilities } from "../surface/profiles.js";
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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();
|
|
20
193
|
/**
|
|
21
194
|
* Recursively scan a directory for .d.ts files
|
|
22
195
|
*/
|
|
@@ -38,7 +211,8 @@ const scanForDeclarationFiles = (dir) => {
|
|
|
38
211
|
}
|
|
39
212
|
results.push(...scanForDeclarationFiles(fullPath));
|
|
40
213
|
}
|
|
41
|
-
else if (entry.name.endsWith(".d.ts")
|
|
214
|
+
else if (entry.name.endsWith(".d.ts") &&
|
|
215
|
+
entry.name !== "core-globals.d.ts") {
|
|
42
216
|
results.push(fullPath);
|
|
43
217
|
}
|
|
44
218
|
}
|
|
@@ -49,7 +223,7 @@ const scanForDeclarationFiles = (dir) => {
|
|
|
49
223
|
* Exported for use by dependency graph builder
|
|
50
224
|
*/
|
|
51
225
|
export const createCompilerOptions = (options) => {
|
|
52
|
-
const surfaceCapabilities = resolveSurfaceCapabilities(options.surface ?? "clr");
|
|
226
|
+
const surfaceCapabilities = resolveSurfaceCapabilities(options.surface ?? "clr", { projectRoot: options.projectRoot });
|
|
53
227
|
const baseConfig = {
|
|
54
228
|
...defaultTsConfig,
|
|
55
229
|
...(options.strict === undefined ? {} : { strict: options.strict }),
|
|
@@ -69,28 +243,64 @@ export const createCompilerOptions = (options) => {
|
|
|
69
243
|
*/
|
|
70
244
|
export const createProgram = (filePaths, options) => {
|
|
71
245
|
const surface = options.surface ?? "clr";
|
|
72
|
-
const surfaceCapabilities = resolveSurfaceCapabilities(surface
|
|
73
|
-
|
|
74
|
-
|
|
246
|
+
const surfaceCapabilities = resolveSurfaceCapabilities(surface, {
|
|
247
|
+
projectRoot: options.projectRoot,
|
|
248
|
+
});
|
|
75
249
|
const absolutePaths = filePaths.map((fp) => path.resolve(fp));
|
|
76
250
|
const compilerContainingFile = fileURLToPath(import.meta.url);
|
|
77
251
|
// creation.ts lives at: <repoRoot>/packages/frontend/src/program/creation.ts
|
|
78
252
|
// repoRoot is 4 levels up from this file's directory.
|
|
79
253
|
const repoRoot = path.resolve(path.join(path.dirname(compilerContainingFile), "../../../.."));
|
|
80
254
|
const require = createRequire(import.meta.url);
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
catch {
|
|
91
|
-
// Ignore invalid package.json.
|
|
92
|
-
}
|
|
255
|
+
const readPackageName = (pkgJsonPath) => {
|
|
256
|
+
if (!fs.existsSync(pkgJsonPath))
|
|
257
|
+
return undefined;
|
|
258
|
+
try {
|
|
259
|
+
const parsed = JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8"));
|
|
260
|
+
return typeof parsed.name === "string" ? parsed.name : undefined;
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
return undefined;
|
|
93
264
|
}
|
|
265
|
+
};
|
|
266
|
+
const resolveSiblingTsonicPackageRoot = (pkgDirName) => {
|
|
267
|
+
const expectedName = `@tsonic/${pkgDirName}`;
|
|
268
|
+
const siblingRepoRoot = path.resolve(path.join(repoRoot, "..", pkgDirName));
|
|
269
|
+
const repoPackageName = readPackageName(path.join(siblingRepoRoot, "package.json"));
|
|
270
|
+
if (repoPackageName === expectedName)
|
|
271
|
+
return siblingRepoRoot;
|
|
272
|
+
const versionsRoot = path.join(siblingRepoRoot, "versions");
|
|
273
|
+
if (!fs.existsSync(versionsRoot))
|
|
274
|
+
return undefined;
|
|
275
|
+
const versionDirs = fs
|
|
276
|
+
.readdirSync(versionsRoot, { withFileTypes: true })
|
|
277
|
+
.filter((entry) => entry.isDirectory())
|
|
278
|
+
.map((entry) => entry.name)
|
|
279
|
+
.sort((left, right) => {
|
|
280
|
+
const leftNum = Number.parseInt(left, 10);
|
|
281
|
+
const rightNum = Number.parseInt(right, 10);
|
|
282
|
+
const leftIsNum = Number.isFinite(leftNum);
|
|
283
|
+
const rightIsNum = Number.isFinite(rightNum);
|
|
284
|
+
if (leftIsNum && rightIsNum)
|
|
285
|
+
return rightNum - leftNum;
|
|
286
|
+
if (leftIsNum)
|
|
287
|
+
return -1;
|
|
288
|
+
if (rightIsNum)
|
|
289
|
+
return 1;
|
|
290
|
+
return right.localeCompare(left);
|
|
291
|
+
});
|
|
292
|
+
for (const versionDir of versionDirs) {
|
|
293
|
+
const candidateRoot = path.join(versionsRoot, versionDir);
|
|
294
|
+
const candidateName = readPackageName(path.join(candidateRoot, "package.json"));
|
|
295
|
+
if (candidateName === expectedName)
|
|
296
|
+
return candidateRoot;
|
|
297
|
+
}
|
|
298
|
+
return undefined;
|
|
299
|
+
};
|
|
300
|
+
const resolveTsonicPackageRoot = (pkgDirName) => {
|
|
301
|
+
const siblingRoot = resolveSiblingTsonicPackageRoot(pkgDirName);
|
|
302
|
+
if (siblingRoot)
|
|
303
|
+
return siblingRoot;
|
|
94
304
|
// Fall back to compiler-owned installation (keeps stdlib typings coherent)
|
|
95
305
|
try {
|
|
96
306
|
const installedPkgJson = require.resolve(`@tsonic/${pkgDirName}/package.json`);
|
|
@@ -101,9 +311,6 @@ export const createProgram = (filePaths, options) => {
|
|
|
101
311
|
}
|
|
102
312
|
return undefined;
|
|
103
313
|
};
|
|
104
|
-
// Mandatory, compiler-owned type root (never optional).
|
|
105
|
-
// Prefer sibling checkout (dev) or fall back to installed package.
|
|
106
|
-
const mandatoryTypeRoot = resolveTsonicPackageRoot("globals");
|
|
107
314
|
// Get declaration files from type roots.
|
|
108
315
|
const userTypeRoots = options.typeRoots ?? [];
|
|
109
316
|
const requestedTypeRoots = Array.from(new Set([
|
|
@@ -114,21 +321,26 @@ export const createProgram = (filePaths, options) => {
|
|
|
114
321
|
const absoluteRoot = path.isAbsolute(typeRoot)
|
|
115
322
|
? typeRoot
|
|
116
323
|
: path.resolve(options.projectRoot, typeRoot);
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
//
|
|
120
|
-
//
|
|
324
|
+
// For @tsonic/* type roots, prefer compiler-owned package roots (sibling
|
|
325
|
+
// checkout or compiler installation) so the active compiler and language
|
|
326
|
+
// surfaces stay coherent during development and test runs.
|
|
327
|
+
//
|
|
328
|
+
// If no compiler-owned package is available, fall back to the project's
|
|
329
|
+
// resolved node_modules path.
|
|
121
330
|
const match = typeRoot.match(/(?:^|[/\\\\])node_modules[/\\\\]@tsonic[/\\\\]([^/\\\\]+)[/\\\\]?$/);
|
|
122
|
-
if (
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
331
|
+
if (match) {
|
|
332
|
+
const pkgDirName = match[1];
|
|
333
|
+
if (pkgDirName) {
|
|
334
|
+
const compilerOwned = resolveTsonicPackageRoot(pkgDirName);
|
|
335
|
+
if (compilerOwned)
|
|
336
|
+
return compilerOwned;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
if (fs.existsSync(absoluteRoot))
|
|
126
340
|
return absoluteRoot;
|
|
127
|
-
return
|
|
341
|
+
return absoluteRoot;
|
|
128
342
|
});
|
|
129
|
-
const typeRoots =
|
|
130
|
-
? Array.from(new Set([mandatoryTypeRoot, ...resolvedRequestedTypeRoots]))
|
|
131
|
-
: resolvedRequestedTypeRoots;
|
|
343
|
+
const typeRoots = resolvedRequestedTypeRoots;
|
|
132
344
|
// Debug log typeRoots
|
|
133
345
|
if (options.verbose && typeRoots.length > 0) {
|
|
134
346
|
console.log(`TypeRoots: ${typeRoots.join(", ")}`);
|
|
@@ -162,20 +374,40 @@ export const createProgram = (filePaths, options) => {
|
|
|
162
374
|
}
|
|
163
375
|
}
|
|
164
376
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
377
|
+
const coreGlobalsVirtualPath = path.join(options.projectRoot, ".tsonic", "__core_globals__.d.ts");
|
|
378
|
+
const virtualDeclarationSources = new Map([
|
|
379
|
+
[path.resolve(coreGlobalsVirtualPath), CORE_GLOBALS_DECLARATIONS],
|
|
380
|
+
]);
|
|
381
|
+
const virtualDeclarationFiles = Array.from(virtualDeclarationSources.keys());
|
|
382
|
+
// Combine source files, declaration files, namespace index files, and
|
|
383
|
+
// compiler-owned virtual declarations.
|
|
169
384
|
const allFiles = [
|
|
170
385
|
...absolutePaths,
|
|
171
386
|
...declarationFiles,
|
|
172
387
|
...namespaceIndexFiles,
|
|
173
|
-
...
|
|
174
|
-
...(nodeAliasSurface ? [syntheticJsSurfaceNodeShim] : []),
|
|
388
|
+
...virtualDeclarationFiles,
|
|
175
389
|
];
|
|
176
390
|
const tsOptions = createCompilerOptions(options);
|
|
177
391
|
// Create custom compiler host with virtual .NET module declarations
|
|
178
392
|
const host = ts.createCompilerHost(tsOptions);
|
|
393
|
+
const normalizeVirtualFilePath = (filePath) => path.resolve(filePath);
|
|
394
|
+
const isPackageCoreGlobalsFile = (filePath) => path.basename(filePath) === "core-globals.d.ts";
|
|
395
|
+
const getVirtualDeclarationText = (filePath) => virtualDeclarationSources.get(normalizeVirtualFilePath(filePath));
|
|
396
|
+
const originalFileExists = host.fileExists;
|
|
397
|
+
host.fileExists = (fileName) => {
|
|
398
|
+
if (getVirtualDeclarationText(fileName) !== undefined)
|
|
399
|
+
return true;
|
|
400
|
+
return originalFileExists(fileName);
|
|
401
|
+
};
|
|
402
|
+
const originalReadFile = host.readFile;
|
|
403
|
+
host.readFile = (fileName) => {
|
|
404
|
+
const virtualText = getVirtualDeclarationText(fileName);
|
|
405
|
+
if (virtualText !== undefined)
|
|
406
|
+
return virtualText;
|
|
407
|
+
if (isPackageCoreGlobalsFile(fileName))
|
|
408
|
+
return "export {};\n";
|
|
409
|
+
return originalReadFile(fileName);
|
|
410
|
+
};
|
|
179
411
|
// Map of .NET namespace names to their declaration file paths
|
|
180
412
|
const namespaceFiles = new Map();
|
|
181
413
|
for (const indexFile of namespaceIndexFiles) {
|
|
@@ -193,11 +425,12 @@ export const createProgram = (filePaths, options) => {
|
|
|
193
425
|
// Override getSourceFile to provide virtual module declarations
|
|
194
426
|
const originalGetSourceFile = host.getSourceFile;
|
|
195
427
|
host.getSourceFile = (fileName, languageVersion, onError, shouldCreateNewSourceFile) => {
|
|
196
|
-
|
|
197
|
-
|
|
428
|
+
const virtualText = getVirtualDeclarationText(fileName);
|
|
429
|
+
if (virtualText !== undefined) {
|
|
430
|
+
return ts.createSourceFile(fileName, virtualText, languageVersion, true);
|
|
198
431
|
}
|
|
199
|
-
if (
|
|
200
|
-
return ts.createSourceFile(fileName,
|
|
432
|
+
if (isPackageCoreGlobalsFile(fileName)) {
|
|
433
|
+
return ts.createSourceFile(fileName, "export {};\n", languageVersion, true);
|
|
201
434
|
}
|
|
202
435
|
// Check if this is a .NET namespace being imported
|
|
203
436
|
const baseName = path.basename(fileName, path.extname(fileName));
|
|
@@ -248,7 +481,9 @@ export const createProgram = (filePaths, options) => {
|
|
|
248
481
|
const subpath = match[2];
|
|
249
482
|
if (!pkgDirName || !subpath)
|
|
250
483
|
return undefined;
|
|
251
|
-
const siblingRoot =
|
|
484
|
+
const siblingRoot = resolveSiblingTsonicPackageRoot(pkgDirName);
|
|
485
|
+
if (!siblingRoot)
|
|
486
|
+
return undefined;
|
|
252
487
|
const jsPath = path.join(siblingRoot, subpath);
|
|
253
488
|
const dtsPath = jsPath.endsWith(".js")
|
|
254
489
|
? jsPath.replace(/\.js$/, ".d.ts")
|
|
@@ -289,45 +524,14 @@ export const createProgram = (filePaths, options) => {
|
|
|
289
524
|
const sourceFiles = program
|
|
290
525
|
.getSourceFiles()
|
|
291
526
|
.filter((sf) => !sf.isDeclarationFile && absolutePaths.includes(sf.fileName));
|
|
292
|
-
// Declaration files for TypeRegistry
|
|
293
|
-
//
|
|
294
|
-
//
|
|
295
|
-
//
|
|
296
|
-
//
|
|
297
|
-
// - Any other @tsonic/* dependencies
|
|
298
|
-
// We need all of these for proper heritage chain resolution (e.g., String extends String$instance)
|
|
299
|
-
const packageRootCache = new Map();
|
|
300
|
-
const isInTsonicPackage = (filePath) => {
|
|
301
|
-
let dir = path.dirname(filePath);
|
|
302
|
-
while (true) {
|
|
303
|
-
const cached = packageRootCache.get(dir);
|
|
304
|
-
if (cached !== undefined)
|
|
305
|
-
return cached;
|
|
306
|
-
const pkgJson = path.join(dir, "package.json");
|
|
307
|
-
if (fs.existsSync(pkgJson)) {
|
|
308
|
-
try {
|
|
309
|
-
const parsed = JSON.parse(fs.readFileSync(pkgJson, "utf-8"));
|
|
310
|
-
const ok = typeof parsed.name === "string" &&
|
|
311
|
-
parsed.name.startsWith("@tsonic/");
|
|
312
|
-
packageRootCache.set(dir, ok);
|
|
313
|
-
return ok;
|
|
314
|
-
}
|
|
315
|
-
catch {
|
|
316
|
-
packageRootCache.set(dir, false);
|
|
317
|
-
return false;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
const parent = path.dirname(dir);
|
|
321
|
-
if (parent === dir) {
|
|
322
|
-
packageRootCache.set(dir, false);
|
|
323
|
-
return false;
|
|
324
|
-
}
|
|
325
|
-
dir = parent;
|
|
326
|
-
}
|
|
327
|
-
};
|
|
527
|
+
// Declaration files for TypeRegistry:
|
|
528
|
+
// include all declarations in the program. ProgramContext later filters out
|
|
529
|
+
// CLR metadata packages that are represented in the CLR catalog.
|
|
530
|
+
// This keeps surface support generic: custom non-@tsonic surface packages are
|
|
531
|
+
// available to the frontend without any package-name allowlist.
|
|
328
532
|
const declarationSourceFiles = program
|
|
329
533
|
.getSourceFiles()
|
|
330
|
-
.filter((sf) => sf.isDeclarationFile
|
|
534
|
+
.filter((sf) => sf.isDeclarationFile);
|
|
331
535
|
// Load .NET metadata files
|
|
332
536
|
const metadata = loadDotnetMetadata(typeRoots);
|
|
333
537
|
// Load binding manifests (from typeRoots - for ambient globals)
|
|
@@ -335,86 +539,13 @@ export const createProgram = (filePaths, options) => {
|
|
|
335
539
|
// Compiler-owned builtin: map TS `Error` to CLR `System.Exception`.
|
|
336
540
|
// This keeps `throw new Error(...)` usable in noLib mode without requiring
|
|
337
541
|
// consumers to import Exception explicitly.
|
|
338
|
-
bindings.
|
|
339
|
-
bindings: {
|
|
340
|
-
Error: {
|
|
341
|
-
kind: "global",
|
|
342
|
-
assembly: "System.Private.CoreLib",
|
|
343
|
-
type: "System.Exception",
|
|
344
|
-
},
|
|
345
|
-
},
|
|
346
|
-
});
|
|
347
|
-
if (jsRuntimeSurface) {
|
|
348
|
-
bindings.addBindings("tsonic:js-surface-builtins", {
|
|
542
|
+
if (!bindings.getBinding("Error")) {
|
|
543
|
+
bindings.addBindings("tsonic:builtins", {
|
|
349
544
|
bindings: {
|
|
350
|
-
|
|
351
|
-
kind: "global",
|
|
352
|
-
assembly: "Tsonic.JSRuntime",
|
|
353
|
-
type: "Tsonic.JSRuntime.console",
|
|
354
|
-
},
|
|
355
|
-
Math: {
|
|
356
|
-
kind: "global",
|
|
357
|
-
assembly: "Tsonic.JSRuntime",
|
|
358
|
-
type: "Tsonic.JSRuntime.Math",
|
|
359
|
-
},
|
|
360
|
-
JSON: {
|
|
361
|
-
kind: "global",
|
|
362
|
-
assembly: "Tsonic.JSRuntime",
|
|
363
|
-
type: "Tsonic.JSRuntime.JSON",
|
|
364
|
-
},
|
|
365
|
-
Date: {
|
|
366
|
-
kind: "global",
|
|
367
|
-
assembly: "Tsonic.JSRuntime",
|
|
368
|
-
type: "Tsonic.JSRuntime.Date",
|
|
369
|
-
},
|
|
370
|
-
RegExp: {
|
|
371
|
-
kind: "global",
|
|
372
|
-
assembly: "Tsonic.JSRuntime",
|
|
373
|
-
type: "Tsonic.JSRuntime.RegExp",
|
|
374
|
-
},
|
|
375
|
-
Map: {
|
|
376
|
-
kind: "global",
|
|
377
|
-
assembly: "Tsonic.JSRuntime",
|
|
378
|
-
type: "Tsonic.JSRuntime.Map",
|
|
379
|
-
},
|
|
380
|
-
Set: {
|
|
381
|
-
kind: "global",
|
|
382
|
-
assembly: "Tsonic.JSRuntime",
|
|
383
|
-
type: "Tsonic.JSRuntime.Set",
|
|
384
|
-
},
|
|
385
|
-
WeakMap: {
|
|
386
|
-
kind: "global",
|
|
387
|
-
assembly: "Tsonic.JSRuntime",
|
|
388
|
-
type: "Tsonic.JSRuntime.WeakMap",
|
|
389
|
-
},
|
|
390
|
-
WeakSet: {
|
|
391
|
-
kind: "global",
|
|
392
|
-
assembly: "Tsonic.JSRuntime",
|
|
393
|
-
type: "Tsonic.JSRuntime.WeakSet",
|
|
394
|
-
},
|
|
395
|
-
parseInt: {
|
|
396
|
-
kind: "global",
|
|
397
|
-
assembly: "Tsonic.JSRuntime",
|
|
398
|
-
type: "Tsonic.JSRuntime.Globals",
|
|
399
|
-
csharpName: "Globals.parseInt",
|
|
400
|
-
},
|
|
401
|
-
parseFloat: {
|
|
402
|
-
kind: "global",
|
|
403
|
-
assembly: "Tsonic.JSRuntime",
|
|
404
|
-
type: "Tsonic.JSRuntime.Globals",
|
|
405
|
-
csharpName: "Globals.parseFloat",
|
|
406
|
-
},
|
|
407
|
-
isFinite: {
|
|
408
|
-
kind: "global",
|
|
409
|
-
assembly: "Tsonic.JSRuntime",
|
|
410
|
-
type: "Tsonic.JSRuntime.Globals",
|
|
411
|
-
csharpName: "Globals.isFinite",
|
|
412
|
-
},
|
|
413
|
-
isNaN: {
|
|
545
|
+
Error: {
|
|
414
546
|
kind: "global",
|
|
415
|
-
assembly: "
|
|
416
|
-
type: "
|
|
417
|
-
csharpName: "Globals.isNaN",
|
|
547
|
+
assembly: "System.Private.CoreLib",
|
|
548
|
+
type: "System.Exception",
|
|
418
549
|
},
|
|
419
550
|
},
|
|
420
551
|
});
|
|
@@ -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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"}
|