@tsonic/frontend 0.0.67 → 0.0.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/generic-function-values.d.ts.map +1 -1
  3. package/dist/generic-function-values.js +4 -2
  4. package/dist/generic-function-values.js.map +1 -1
  5. package/dist/graph/extraction/imports.d.ts.map +1 -1
  6. package/dist/graph/extraction/imports.js +5 -1
  7. package/dist/graph/extraction/imports.js.map +1 -1
  8. package/dist/ir/binding/binding-factory.d.ts.map +1 -1
  9. package/dist/ir/binding/binding-factory.js +239 -26
  10. package/dist/ir/binding/binding-factory.js.map +1 -1
  11. package/dist/ir/binding/binding-types.d.ts +1 -0
  12. package/dist/ir/binding/binding-types.d.ts.map +1 -1
  13. package/dist/ir/binding-resolution.test.js +171 -0
  14. package/dist/ir/binding-resolution.test.js.map +1 -1
  15. package/dist/ir/builder/imports.d.ts.map +1 -1
  16. package/dist/ir/builder/imports.js +13 -1
  17. package/dist/ir/builder/imports.js.map +1 -1
  18. package/dist/ir/builder.test.js +1347 -4
  19. package/dist/ir/builder.test.js.map +1 -1
  20. package/dist/ir/converters/anonymous-synthesis.d.ts +3 -2
  21. package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -1
  22. package/dist/ir/converters/anonymous-synthesis.js +88 -67
  23. package/dist/ir/converters/anonymous-synthesis.js.map +1 -1
  24. package/dist/ir/converters/expressions/access/access-converter.d.ts.map +1 -1
  25. package/dist/ir/converters/expressions/access/access-converter.js +44 -36
  26. package/dist/ir/converters/expressions/access/access-converter.js.map +1 -1
  27. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
  28. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -1
  29. package/dist/ir/converters/expressions/access/member-resolution.d.ts.map +1 -1
  30. package/dist/ir/converters/expressions/access/member-resolution.js +15 -3
  31. package/dist/ir/converters/expressions/access/member-resolution.js.map +1 -1
  32. package/dist/ir/converters/expressions/calls/call-converter.d.ts +2 -2
  33. package/dist/ir/converters/expressions/calls/call-converter.d.ts.map +1 -1
  34. package/dist/ir/converters/expressions/calls/call-converter.js +108 -4
  35. package/dist/ir/converters/expressions/calls/call-converter.js.map +1 -1
  36. package/dist/ir/converters/expressions/calls/new-converter.d.ts +2 -1
  37. package/dist/ir/converters/expressions/calls/new-converter.d.ts.map +1 -1
  38. package/dist/ir/converters/expressions/calls/new-converter.js +4 -1
  39. package/dist/ir/converters/expressions/calls/new-converter.js.map +1 -1
  40. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  41. package/dist/ir/converters/expressions/collections.js +425 -121
  42. package/dist/ir/converters/expressions/collections.js.map +1 -1
  43. package/dist/ir/converters/expressions/dynamic-import.d.ts +6 -0
  44. package/dist/ir/converters/expressions/dynamic-import.d.ts.map +1 -0
  45. package/dist/ir/converters/expressions/dynamic-import.js +121 -0
  46. package/dist/ir/converters/expressions/dynamic-import.js.map +1 -0
  47. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  48. package/dist/ir/converters/expressions/functions.js +28 -13
  49. package/dist/ir/converters/expressions/functions.js.map +1 -1
  50. package/dist/ir/converters/expressions/import-meta.d.ts +9 -0
  51. package/dist/ir/converters/expressions/import-meta.d.ts.map +1 -0
  52. package/dist/ir/converters/expressions/import-meta.js +93 -0
  53. package/dist/ir/converters/expressions/import-meta.js.map +1 -0
  54. package/dist/ir/converters/expressions/literals.d.ts +2 -1
  55. package/dist/ir/converters/expressions/literals.d.ts.map +1 -1
  56. package/dist/ir/converters/expressions/literals.js +73 -0
  57. package/dist/ir/converters/expressions/literals.js.map +1 -1
  58. package/dist/ir/converters/flow-narrowing.d.ts.map +1 -1
  59. package/dist/ir/converters/flow-narrowing.js +100 -0
  60. package/dist/ir/converters/flow-narrowing.js.map +1 -1
  61. package/dist/ir/converters/statements/control/loops.d.ts.map +1 -1
  62. package/dist/ir/converters/statements/control/loops.js +72 -8
  63. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  64. package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -1
  65. package/dist/ir/converters/statements/declarations/variables.js +22 -6
  66. package/dist/ir/converters/statements/declarations/variables.js.map +1 -1
  67. package/dist/ir/expression-converter.d.ts.map +1 -1
  68. package/dist/ir/expression-converter.js +13 -4
  69. package/dist/ir/expression-converter.js.map +1 -1
  70. package/dist/ir/program-context.d.ts +27 -0
  71. package/dist/ir/program-context.d.ts.map +1 -1
  72. package/dist/ir/program-context.js +12 -0
  73. package/dist/ir/program-context.js.map +1 -1
  74. package/dist/ir/type-system/internal/handle-types.d.ts +1 -0
  75. package/dist/ir/type-system/internal/handle-types.d.ts.map +1 -1
  76. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  77. package/dist/ir/type-system/internal/type-converter/references.js +37 -1
  78. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  79. package/dist/ir/type-system/type-system-call-resolution.d.ts +1 -1
  80. package/dist/ir/type-system/type-system-call-resolution.d.ts.map +1 -1
  81. package/dist/ir/type-system/type-system-call-resolution.js +158 -26
  82. package/dist/ir/type-system/type-system-call-resolution.js.map +1 -1
  83. package/dist/ir/type-system/type-system-inference.d.ts +1 -1
  84. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -1
  85. package/dist/ir/type-system/type-system-inference.js +189 -31
  86. package/dist/ir/type-system/type-system-inference.js.map +1 -1
  87. package/dist/ir/type-system/type-system-state.d.ts +14 -0
  88. package/dist/ir/type-system/type-system-state.d.ts.map +1 -1
  89. package/dist/ir/type-system/type-system-state.js +1 -0
  90. package/dist/ir/type-system/type-system-state.js.map +1 -1
  91. package/dist/ir/type-system/type-system.d.ts +5 -1
  92. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  93. package/dist/ir/type-system/type-system.js +5 -2
  94. package/dist/ir/type-system/type-system.js.map +1 -1
  95. package/dist/ir/types/expressions.d.ts +55 -1
  96. package/dist/ir/types/expressions.d.ts.map +1 -1
  97. package/dist/ir/types/index.d.ts +1 -1
  98. package/dist/ir/types/index.d.ts.map +1 -1
  99. package/dist/ir/types/index.js.map +1 -1
  100. package/dist/ir/types/module.d.ts +2 -0
  101. package/dist/ir/types/module.d.ts.map +1 -1
  102. package/dist/ir/types/type-ops.d.ts.map +1 -1
  103. package/dist/ir/types/type-ops.js +1 -0
  104. package/dist/ir/types/type-ops.js.map +1 -1
  105. package/dist/ir/types.d.ts +1 -1
  106. package/dist/ir/types.d.ts.map +1 -1
  107. package/dist/ir/types.js.map +1 -1
  108. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  109. package/dist/ir/validation/anonymous-type-lowering-pass.js +97 -9
  110. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  111. package/dist/ir/validation/arrow-return-finalization-pass.js +3 -0
  112. package/dist/ir/validation/arrow-return-finalization-pass.js.map +1 -1
  113. package/dist/ir/validation/char-validation-pass.d.ts.map +1 -1
  114. package/dist/ir/validation/char-validation-pass.js +10 -0
  115. package/dist/ir/validation/char-validation-pass.js.map +1 -1
  116. package/dist/ir/validation/numeric-coercion-pass.d.ts.map +1 -1
  117. package/dist/ir/validation/numeric-coercion-pass.js +6 -0
  118. package/dist/ir/validation/numeric-coercion-pass.js.map +1 -1
  119. package/dist/ir/validation/numeric-invariants.test.js +180 -0
  120. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  121. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  122. package/dist/ir/validation/numeric-proof-pass.js +188 -2
  123. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  124. package/dist/ir/validation/soundness-gate.d.ts.map +1 -1
  125. package/dist/ir/validation/soundness-gate.js +29 -10
  126. package/dist/ir/validation/soundness-gate.js.map +1 -1
  127. package/dist/ir/validation/soundness-gate.test.js +127 -4
  128. package/dist/ir/validation/soundness-gate.test.js.map +1 -1
  129. package/dist/ir/validation/yield-lowering-pass.d.ts.map +1 -1
  130. package/dist/ir/validation/yield-lowering-pass.js +26 -2
  131. package/dist/ir/validation/yield-lowering-pass.js.map +1 -1
  132. package/dist/object-literal-method-runtime.d.ts +15 -0
  133. package/dist/object-literal-method-runtime.d.ts.map +1 -0
  134. package/dist/object-literal-method-runtime.js +279 -0
  135. package/dist/object-literal-method-runtime.js.map +1 -0
  136. package/dist/program/bindings.test.js +44 -0
  137. package/dist/program/bindings.test.js.map +1 -1
  138. package/dist/program/creation.d.ts.map +1 -1
  139. package/dist/program/creation.js +141 -18
  140. package/dist/program/creation.js.map +1 -1
  141. package/dist/program/creation.test.js +312 -2
  142. package/dist/program/creation.test.js.map +1 -1
  143. package/dist/program/dependency-graph.d.ts.map +1 -1
  144. package/dist/program/dependency-graph.js +49 -22
  145. package/dist/program/dependency-graph.js.map +1 -1
  146. package/dist/program/dependency-graph.test.d.ts +2 -0
  147. package/dist/program/dependency-graph.test.d.ts.map +1 -0
  148. package/dist/program/dependency-graph.test.js +118 -0
  149. package/dist/program/dependency-graph.test.js.map +1 -0
  150. package/dist/resolver/dynamic-import.d.ts +33 -0
  151. package/dist/resolver/dynamic-import.d.ts.map +1 -0
  152. package/dist/resolver/dynamic-import.js +142 -0
  153. package/dist/resolver/dynamic-import.js.map +1 -0
  154. package/dist/resolver/dynamic-import.test.d.ts +2 -0
  155. package/dist/resolver/dynamic-import.test.d.ts.map +1 -0
  156. package/dist/resolver/dynamic-import.test.js +150 -0
  157. package/dist/resolver/dynamic-import.test.js.map +1 -0
  158. package/dist/resolver/import-resolution.d.ts +2 -0
  159. package/dist/resolver/import-resolution.d.ts.map +1 -1
  160. package/dist/resolver/import-resolution.js +20 -3
  161. package/dist/resolver/import-resolution.js.map +1 -1
  162. package/dist/resolver/source-package-resolution.d.ts +11 -0
  163. package/dist/resolver/source-package-resolution.d.ts.map +1 -0
  164. package/dist/resolver/source-package-resolution.js +188 -0
  165. package/dist/resolver/source-package-resolution.js.map +1 -0
  166. package/dist/resolver/source-package-resolution.test.d.ts +2 -0
  167. package/dist/resolver/source-package-resolution.test.d.ts.map +1 -0
  168. package/dist/resolver/source-package-resolution.test.js +77 -0
  169. package/dist/resolver/source-package-resolution.test.js.map +1 -0
  170. package/dist/resolver/types.d.ts +1 -0
  171. package/dist/resolver/types.d.ts.map +1 -1
  172. package/dist/resolver.test.js +83 -0
  173. package/dist/resolver.test.js.map +1 -1
  174. package/dist/surface/profiles.d.ts +1 -0
  175. package/dist/surface/profiles.d.ts.map +1 -1
  176. package/dist/surface/profiles.js +4 -2
  177. package/dist/surface/profiles.js.map +1 -1
  178. package/dist/surface/profiles.test.js +10 -0
  179. package/dist/surface/profiles.test.js.map +1 -1
  180. package/dist/types/module.d.ts +1 -1
  181. package/dist/types/module.d.ts.map +1 -1
  182. package/dist/validation/features.d.ts +1 -1
  183. package/dist/validation/features.d.ts.map +1 -1
  184. package/dist/validation/features.js +37 -6
  185. package/dist/validation/features.js.map +1 -1
  186. package/dist/validation/features.test.js +137 -23
  187. package/dist/validation/features.test.js.map +1 -1
  188. package/dist/validation/imports.d.ts.map +1 -1
  189. package/dist/validation/imports.js +2 -8
  190. package/dist/validation/imports.js.map +1 -1
  191. package/dist/validation/imports.test.js +6 -9
  192. package/dist/validation/imports.test.js.map +1 -1
  193. package/dist/validation/static-safety.d.ts.map +1 -1
  194. package/dist/validation/static-safety.js +118 -67
  195. package/dist/validation/static-safety.js.map +1 -1
  196. package/dist/validator.maximus.test.js +225 -33
  197. package/dist/validator.maximus.test.js.map +1 -1
  198. package/dist/validator.test.js +87 -6
  199. package/dist/validator.test.js.map +1 -1
  200. package/package.json +1 -1
@@ -18,6 +18,52 @@ describe("Program Creation", () => {
18
18
  });
19
19
  expect(options.noLib).to.equal(true);
20
20
  });
21
+ it("should widen rootDir to the nearest common ancestor when sourceRoot is outside projectRoot", () => {
22
+ const tempSourceRoot = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-rootdir-"));
23
+ try {
24
+ const projectRoot = path.resolve("/home/jester/repos/tsoniclang/tsonic");
25
+ const options = createCompilerOptions({
26
+ projectRoot,
27
+ sourceRoot: tempSourceRoot,
28
+ rootNamespace: "App",
29
+ surface: "@tsonic/js",
30
+ });
31
+ expect(typeof options.rootDir).to.equal("string");
32
+ if (typeof options.rootDir !== "string")
33
+ return;
34
+ const relativeToProject = path.relative(options.rootDir, projectRoot);
35
+ const relativeToSource = path.relative(options.rootDir, tempSourceRoot);
36
+ expect(relativeToProject.startsWith("..")).to.equal(false);
37
+ expect(path.isAbsolute(relativeToProject)).to.equal(false);
38
+ expect(relativeToSource.startsWith("..")).to.equal(false);
39
+ expect(path.isAbsolute(relativeToSource)).to.equal(false);
40
+ }
41
+ finally {
42
+ fs.rmSync(tempSourceRoot, { recursive: true, force: true });
43
+ }
44
+ });
45
+ it("should widen rootDir to the workspace node_modules root for installed source packages", () => {
46
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-rootdir-node-modules-"));
47
+ try {
48
+ const projectRoot = path.join(tempDir, "packages", "app");
49
+ const sourceRoot = path.join(projectRoot, "src");
50
+ fs.mkdirSync(path.join(tempDir, "node_modules"), { recursive: true });
51
+ fs.mkdirSync(sourceRoot, { recursive: true });
52
+ const options = createCompilerOptions({
53
+ projectRoot,
54
+ sourceRoot,
55
+ rootNamespace: "App",
56
+ surface: "@tsonic/js",
57
+ });
58
+ expect(typeof options.rootDir).to.equal("string");
59
+ if (typeof options.rootDir !== "string")
60
+ return;
61
+ expect(path.resolve(options.rootDir)).to.equal(path.resolve(tempDir));
62
+ }
63
+ finally {
64
+ fs.rmSync(tempDir, { recursive: true, force: true });
65
+ }
66
+ });
21
67
  it("should allow mutable array index writes in clr surface mode", () => {
22
68
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-clr-array-write-"));
23
69
  try {
@@ -120,6 +166,55 @@ describe("Program Creation", () => {
120
166
  fs.rmSync(tempDir, { recursive: true, force: true });
121
167
  }
122
168
  });
169
+ it("should remap root-namespace internal imports to package index internals", () => {
170
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-root-namespace-internal-"));
171
+ try {
172
+ fs.writeFileSync(path.join(tempDir, "package.json"), JSON.stringify({ name: "app", version: "1.0.0", type: "module" }, null, 2));
173
+ const srcDir = path.join(tempDir, "src");
174
+ fs.mkdirSync(srcDir, { recursive: true });
175
+ const jsRoot = path.join(tempDir, "node_modules/@tsonic/js-temp");
176
+ fs.mkdirSync(path.join(jsRoot, "index", "internal"), {
177
+ recursive: true,
178
+ });
179
+ fs.writeFileSync(path.join(jsRoot, "package.json"), JSON.stringify({ name: "@tsonic/js-temp", version: "0.0.0", type: "module" }, null, 2));
180
+ fs.writeFileSync(path.join(jsRoot, "index", "bindings.json"), JSON.stringify({ namespace: "Acme.JsRuntime", types: [] }, null, 2));
181
+ fs.writeFileSync(path.join(jsRoot, "index", "internal", "index.d.ts"), "export interface Date$instance { toISOString(): string; }\nexport type Date = Date$instance;\n");
182
+ fs.writeFileSync(path.join(jsRoot, "index.js"), "export {};\n");
183
+ const nodeRoot = path.join(tempDir, "node_modules/@tsonic/node-temp");
184
+ fs.mkdirSync(path.join(nodeRoot, "index", "internal"), {
185
+ recursive: true,
186
+ });
187
+ fs.writeFileSync(path.join(nodeRoot, "package.json"), JSON.stringify({ name: "@tsonic/node-temp", version: "0.0.0", type: "module" }, null, 2));
188
+ fs.writeFileSync(path.join(nodeRoot, "index", "bindings.json"), JSON.stringify({ namespace: "acme.node", types: [] }, null, 2));
189
+ fs.writeFileSync(path.join(nodeRoot, "index", "internal", "index.d.ts"), [
190
+ 'import type { Date } from "@tsonic/js-temp/Acme.JsRuntime/internal/index.js";',
191
+ "export interface Stats$instance {",
192
+ " mtime: Date;",
193
+ "}",
194
+ "export type Stats = Stats$instance;",
195
+ ].join("\n"));
196
+ fs.writeFileSync(path.join(nodeRoot, "index.js"), "export {};\n");
197
+ const entryPath = path.join(srcDir, "index.ts");
198
+ fs.writeFileSync(entryPath, 'import type { Stats } from "@tsonic/node-temp/index/internal/index.js";\nexport type Result = Stats;\n');
199
+ const result = createProgram([entryPath], {
200
+ projectRoot: tempDir,
201
+ sourceRoot: srcDir,
202
+ rootNamespace: "Test",
203
+ useStandardLib: true,
204
+ typeRoots: [
205
+ "node_modules/@tsonic/node-temp",
206
+ "node_modules/@tsonic/js-temp",
207
+ ],
208
+ });
209
+ expect(result.ok).to.equal(true);
210
+ if (!result.ok)
211
+ return;
212
+ expect(result.value.program.getSourceFile(path.join(jsRoot, "index", "internal", "index.d.ts"))).to.not.equal(undefined);
213
+ }
214
+ finally {
215
+ fs.rmSync(tempDir, { recursive: true, force: true });
216
+ }
217
+ });
123
218
  it("should include declaration files from custom non-@tsonic surface packages", () => {
124
219
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-custom-surface-"));
125
220
  try {
@@ -155,6 +250,45 @@ describe("Program Creation", () => {
155
250
  fs.rmSync(tempDir, { recursive: true, force: true });
156
251
  }
157
252
  });
253
+ it("should load imported source-package modules into the program graph", () => {
254
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-source-package-"));
255
+ try {
256
+ fs.writeFileSync(path.join(tempDir, "package.json"), JSON.stringify({ name: "app", version: "1.0.0", type: "module" }, null, 2));
257
+ const srcDir = path.join(tempDir, "src");
258
+ fs.mkdirSync(srcDir, { recursive: true });
259
+ const packageRoot = path.join(tempDir, "node_modules", "@acme", "math");
260
+ fs.mkdirSync(path.join(packageRoot, "tsonic"), { recursive: true });
261
+ fs.mkdirSync(path.join(packageRoot, "src"), { recursive: true });
262
+ fs.writeFileSync(path.join(packageRoot, "package.json"), JSON.stringify({ name: "@acme/math", version: "1.0.0", type: "module" }, null, 2));
263
+ fs.writeFileSync(path.join(packageRoot, "tsonic", "package-manifest.json"), JSON.stringify({
264
+ schemaVersion: 1,
265
+ kind: "tsonic-source-package",
266
+ surfaces: ["@tsonic/js"],
267
+ source: {
268
+ exports: {
269
+ ".": "./src/index.ts",
270
+ },
271
+ },
272
+ }, null, 2));
273
+ const packageEntry = path.join(packageRoot, "src", "index.ts");
274
+ fs.writeFileSync(packageEntry, "export function clamp(x: number, min: number, max: number): number { return x < min ? min : x > max ? max : x; }\n");
275
+ const entryPath = path.join(srcDir, "index.ts");
276
+ fs.writeFileSync(entryPath, 'import { clamp } from "@acme/math";\nexport const x = clamp(10, 0, 5);\n');
277
+ const result = createProgram([entryPath], {
278
+ projectRoot: tempDir,
279
+ sourceRoot: srcDir,
280
+ rootNamespace: "Test",
281
+ surface: "@tsonic/js",
282
+ });
283
+ expect(result.ok).to.equal(true);
284
+ if (!result.ok)
285
+ return;
286
+ expect(result.value.program.getSourceFile(packageEntry)).to.not.equal(undefined);
287
+ }
288
+ finally {
289
+ fs.rmSync(tempDir, { recursive: true, force: true });
290
+ }
291
+ });
158
292
  it("should load js-surface extension bindings without explicit typeRoots", () => {
159
293
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-js-extensions-"));
160
294
  try {
@@ -273,7 +407,8 @@ describe("Program Creation", () => {
273
407
  const returnTypes = new Map();
274
408
  const declarationFlags = new Map();
275
409
  const visit = (node) => {
276
- if (ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression)) {
410
+ if (ts.isCallExpression(node) &&
411
+ ts.isPropertyAccessExpression(node.expression)) {
277
412
  const callee = node.expression.getText(sourceFile);
278
413
  if (callee === "path.join" || callee === "process.cwd") {
279
414
  const signature = checker.getResolvedSignature(node);
@@ -342,7 +477,8 @@ describe("Program Creation", () => {
342
477
  const returnTypes = new Map();
343
478
  const declarationFlags = new Map();
344
479
  const visit = (node) => {
345
- if (ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression)) {
480
+ if (ts.isCallExpression(node) &&
481
+ ts.isPropertyAccessExpression(node.expression)) {
346
482
  const callee = node.expression.getText(sourceFile);
347
483
  if (callee === "path.join" || callee === "process.cwd") {
348
484
  const signature = checker.getResolvedSignature(node);
@@ -430,6 +566,180 @@ export {};
430
566
  fs.rmSync(tempDir, { recursive: true, force: true });
431
567
  }
432
568
  });
569
+ it("should load root-level global function bindings from a generic surface package", () => {
570
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-generic-surface-globals-"));
571
+ try {
572
+ fs.writeFileSync(path.join(tempDir, "package.json"), JSON.stringify({ name: "app", version: "1.0.0", type: "module" }, null, 2));
573
+ const srcDir = path.join(tempDir, "src");
574
+ fs.mkdirSync(srcDir, { recursive: true });
575
+ const surfaceRoot = path.join(tempDir, "node_modules/@fixture/js");
576
+ fs.mkdirSync(surfaceRoot, { recursive: true });
577
+ fs.writeFileSync(path.join(surfaceRoot, "package.json"), JSON.stringify({ name: "@fixture/js", version: "1.0.0", type: "module" }, null, 2));
578
+ fs.writeFileSync(path.join(surfaceRoot, "index.js"), "export {};\n");
579
+ fs.writeFileSync(path.join(surfaceRoot, "index.d.ts"), [
580
+ 'import type { int, long } from "@tsonic/core/types.js";',
581
+ "",
582
+ "declare global {",
583
+ " const console: {",
584
+ " log(...data: unknown[]): void;",
585
+ " };",
586
+ "",
587
+ " function parseInt(str: string, radix?: int): long | undefined;",
588
+ " function setInterval(handler: (...args: unknown[]) => void, timeout?: int, ...args: unknown[]): int;",
589
+ " function clearInterval(id: int): void;",
590
+ "}",
591
+ "",
592
+ "export {};",
593
+ "",
594
+ ].join("\n"));
595
+ fs.writeFileSync(path.join(surfaceRoot, "bindings.json"), JSON.stringify({
596
+ bindings: {
597
+ console: {
598
+ kind: "global",
599
+ assembly: "Tsonic.JSRuntime",
600
+ type: "Tsonic.JSRuntime.console",
601
+ },
602
+ parseInt: {
603
+ kind: "global",
604
+ assembly: "Tsonic.JSRuntime",
605
+ type: "Tsonic.JSRuntime.Globals",
606
+ csharpName: "Globals.parseInt",
607
+ },
608
+ setInterval: {
609
+ kind: "global",
610
+ assembly: "Tsonic.JSRuntime",
611
+ type: "Tsonic.JSRuntime.Timers",
612
+ csharpName: "Timers.setInterval",
613
+ },
614
+ clearInterval: {
615
+ kind: "global",
616
+ assembly: "Tsonic.JSRuntime",
617
+ type: "Tsonic.JSRuntime.Timers",
618
+ csharpName: "Timers.clearInterval",
619
+ },
620
+ },
621
+ }, null, 2));
622
+ fs.writeFileSync(path.join(surfaceRoot, "tsonic.surface.json"), JSON.stringify({
623
+ schemaVersion: 1,
624
+ id: "@fixture/js",
625
+ extends: [],
626
+ requiredTypeRoots: ["."],
627
+ useStandardLib: false,
628
+ }, null, 2));
629
+ const entryPath = path.join(srcDir, "index.ts");
630
+ fs.writeFileSync(entryPath, [
631
+ 'const parsed = parseInt("42", 10);',
632
+ "const timerId = setInterval(() => {}, 1000);",
633
+ "clearInterval(timerId);",
634
+ "console.log(parsed);",
635
+ ].join("\n"));
636
+ const result = createProgram([entryPath], {
637
+ projectRoot: tempDir,
638
+ sourceRoot: srcDir,
639
+ rootNamespace: "Test",
640
+ surface: "@fixture/js",
641
+ useStandardLib: false,
642
+ });
643
+ expect(result.ok).to.equal(true);
644
+ if (!result.ok)
645
+ return;
646
+ expect(result.value.bindings.getBinding("console")).to.deep.equal({
647
+ kind: "global",
648
+ assembly: "Tsonic.JSRuntime",
649
+ type: "Tsonic.JSRuntime.console",
650
+ });
651
+ expect(result.value.bindings.getBinding("parseInt")).to.deep.equal({
652
+ kind: "global",
653
+ assembly: "Tsonic.JSRuntime",
654
+ type: "Tsonic.JSRuntime.Globals",
655
+ csharpName: "Globals.parseInt",
656
+ });
657
+ expect(result.value.bindings.getBinding("setInterval")).to.deep.equal({
658
+ kind: "global",
659
+ assembly: "Tsonic.JSRuntime",
660
+ type: "Tsonic.JSRuntime.Timers",
661
+ csharpName: "Timers.setInterval",
662
+ });
663
+ expect(result.value.bindings.getBinding("clearInterval")).to.deep.equal({
664
+ kind: "global",
665
+ assembly: "Tsonic.JSRuntime",
666
+ type: "Tsonic.JSRuntime.Timers",
667
+ csharpName: "Timers.clearInterval",
668
+ });
669
+ }
670
+ finally {
671
+ fs.rmSync(tempDir, { recursive: true, force: true });
672
+ }
673
+ });
674
+ it("should provide string index access from compiler-owned core globals", () => {
675
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-core-string-index-"));
676
+ try {
677
+ fs.writeFileSync(path.join(tempDir, "package.json"), JSON.stringify({ name: "app", version: "1.0.0", type: "module" }, null, 2));
678
+ const srcDir = path.join(tempDir, "src");
679
+ fs.mkdirSync(srcDir, { recursive: true });
680
+ const entryPath = path.join(srcDir, "index.ts");
681
+ fs.writeFileSync(entryPath, [
682
+ 'const source = "abc";',
683
+ "const first = source[0];",
684
+ "export const ok = first;",
685
+ ].join("\n"));
686
+ const result = createProgram([entryPath], {
687
+ projectRoot: tempDir,
688
+ sourceRoot: srcDir,
689
+ rootNamespace: "Test",
690
+ });
691
+ expect(result.ok).to.equal(true);
692
+ }
693
+ finally {
694
+ fs.rmSync(tempDir, { recursive: true, force: true });
695
+ }
696
+ });
697
+ it("should typecheck core IArguments.length in noLib mode", () => {
698
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-core-iarguments-"));
699
+ try {
700
+ fs.writeFileSync(path.join(tempDir, "package.json"), JSON.stringify({ name: "app", version: "1.0.0", type: "module" }, null, 2));
701
+ const srcDir = path.join(tempDir, "src");
702
+ fs.mkdirSync(srcDir, { recursive: true });
703
+ const entryPath = path.join(srcDir, "index.ts");
704
+ fs.writeFileSync(entryPath, [
705
+ "export function count(x: number, y: number): number {",
706
+ " return arguments.length + x + y;",
707
+ "}",
708
+ ].join("\n"));
709
+ const result = createProgram([entryPath], {
710
+ projectRoot: tempDir,
711
+ sourceRoot: srcDir,
712
+ rootNamespace: "Test",
713
+ });
714
+ expect(result.ok).to.equal(true);
715
+ }
716
+ finally {
717
+ fs.rmSync(tempDir, { recursive: true, force: true });
718
+ }
719
+ });
720
+ it("should typecheck core IArguments index access in noLib mode", () => {
721
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-core-iarguments-index-"));
722
+ try {
723
+ fs.writeFileSync(path.join(tempDir, "package.json"), JSON.stringify({ name: "app", version: "1.0.0", type: "module" }, null, 2));
724
+ const srcDir = path.join(tempDir, "src");
725
+ fs.mkdirSync(srcDir, { recursive: true });
726
+ const entryPath = path.join(srcDir, "index.ts");
727
+ fs.writeFileSync(entryPath, [
728
+ "export function first(x: number, y: number): number {",
729
+ " return (arguments[0] as number) + y;",
730
+ "}",
731
+ ].join("\n"));
732
+ const result = createProgram([entryPath], {
733
+ projectRoot: tempDir,
734
+ sourceRoot: srcDir,
735
+ rootNamespace: "Test",
736
+ });
737
+ expect(result.ok).to.equal(true);
738
+ }
739
+ finally {
740
+ fs.rmSync(tempDir, { recursive: true, force: true });
741
+ }
742
+ });
433
743
  it("should keep JS surface free of CLR string members", () => {
434
744
  const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-program-js-no-clr-"));
435
745
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"creation.test.js","sourceRoot":"","sources":["../../src/program/creation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"creation.test.js","sourceRoot":"","sources":["../../src/program/creation.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../src/program/dependency-graph.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,EAAa,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAoB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAcjD,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrD,CAAC;AAwEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,WAAW,MAAM,EACjB,SAAS,eAAe,KACvB,MAAM,CAAC,2BAA2B,EAAE,SAAS,UAAU,EAAE,CAuR3D,CAAC"}
1
+ {"version":3,"file":"dependency-graph.d.ts","sourceRoot":"","sources":["../../src/program/dependency-graph.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,EAAa,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAoB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAmBjD,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrD,CAAC;AAyIF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,WAAW,MAAM,EACjB,SAAS,eAAe,KACvB,MAAM,CAAC,2BAA2B,EAAE,SAAS,UAAU,EAAE,CA2R3D,CAAC"}
@@ -20,6 +20,8 @@ import { runAnonymousTypeLoweringPass } from "../ir/validation/anonymous-type-lo
20
20
  import { runRestTypeSynthesisPass } from "../ir/validation/rest-type-synthesis-pass.js";
21
21
  import { runVirtualMarkingPass } from "../ir/validation/virtual-marking-pass.js";
22
22
  import { validateProgram } from "../validation/orchestrator.js";
23
+ import { getLocalResolutionBoundary, resolveSourcePackageImport, } from "../resolver/source-package-resolution.js";
24
+ import { collectClosedWorldDynamicImportSites } from "../resolver/dynamic-import.js";
23
25
  /**
24
26
  * Collect compiler-synthesized type names that may be referenced across IR modules.
25
27
  *
@@ -66,6 +68,34 @@ const getModuleSpecifier = (stmt) => {
66
68
  }
67
69
  return null;
68
70
  };
71
+ const queueResolvedLocalDependency = (importSpecifier, currentFile, sourceFile, anchor, sourceRootAbs, compilerOptions, queue, diagnostics) => {
72
+ const resolved = ts.resolveModuleName(importSpecifier, currentFile, compilerOptions, ts.sys);
73
+ if (resolved.resolvedModule?.resolvedFileName) {
74
+ const resolvedPath = resolved.resolvedModule.resolvedFileName;
75
+ const localBoundary = getLocalResolutionBoundary(currentFile, sourceRootAbs);
76
+ if (resolvedPath.startsWith(localBoundary) &&
77
+ resolvedPath.endsWith(".ts") &&
78
+ !resolvedPath.endsWith(".d.ts")) {
79
+ queue.push(resolvedPath);
80
+ }
81
+ else if (!resolvedPath.startsWith(localBoundary)) {
82
+ diagnostics.push(createDiagnostic("TSN1004", "error", `Import outside allowed module root: '${importSpecifier}'`, {
83
+ file: currentFile,
84
+ line: anchor.getStart(sourceFile),
85
+ column: 1,
86
+ length: importSpecifier.length,
87
+ }, `Allowed root: ${localBoundary}`));
88
+ }
89
+ return;
90
+ }
91
+ const relativeCurrent = relative(sourceRootAbs, currentFile);
92
+ diagnostics.push(createDiagnostic("TSN1002", "error", `Cannot resolve import '${importSpecifier}' from '${relativeCurrent}'`, {
93
+ file: currentFile,
94
+ line: anchor.getStart(sourceFile),
95
+ column: 1,
96
+ length: importSpecifier.length,
97
+ }));
98
+ };
69
99
  /**
70
100
  * Build complete module dependency graph from entry point
71
101
  * Traverses all local imports and builds IR for all discovered modules
@@ -119,33 +149,30 @@ export const buildModuleDependencyGraph = (entryFile, options) => {
119
149
  continue;
120
150
  }
121
151
  const importSpecifier = moduleSpecifier.text;
122
- // Only process local imports (starts with . or /)
123
- if (!importSpecifier.startsWith(".") &&
124
- !importSpecifier.startsWith("/")) {
152
+ if (importSpecifier.startsWith(".") || importSpecifier.startsWith("/")) {
153
+ queueResolvedLocalDependency(importSpecifier, currentFile, sourceFile, stmt, sourceRootAbs, compilerOptions, queue, diagnostics);
125
154
  continue;
126
155
  }
127
- // Resolve using TypeScript's module resolution
128
- const resolved = ts.resolveModuleName(importSpecifier, currentFile, compilerOptions, ts.sys);
129
- if (resolved.resolvedModule?.resolvedFileName) {
130
- const resolvedPath = resolved.resolvedModule.resolvedFileName;
131
- // Only include .ts files (not .d.ts) within source root
132
- if (resolvedPath.startsWith(sourceRootAbs) &&
133
- resolvedPath.endsWith(".ts") &&
134
- !resolvedPath.endsWith(".d.ts")) {
135
- queue.push(resolvedPath);
136
- }
156
+ const sourcePackage = resolveSourcePackageImport(importSpecifier, currentFile, options.surface, options.projectRoot);
157
+ if (!sourcePackage.ok) {
158
+ diagnostics.push({
159
+ ...sourcePackage.error,
160
+ location: {
161
+ file: currentFile,
162
+ line: stmt.getStart(sourceFile),
163
+ column: 1,
164
+ length: importSpecifier.length,
165
+ },
166
+ });
167
+ continue;
137
168
  }
138
- else {
139
- // Import resolution failed - add diagnostic with context
140
- const relativeCurrent = relative(sourceRootAbs, currentFile);
141
- diagnostics.push(createDiagnostic("TSN1002", "error", `Cannot resolve import '${importSpecifier}' from '${relativeCurrent}'`, {
142
- file: currentFile,
143
- line: stmt.getStart(sourceFile),
144
- column: 1,
145
- length: importSpecifier.length,
146
- }));
169
+ if (sourcePackage.value) {
170
+ queue.push(sourcePackage.value.resolvedPath);
147
171
  }
148
172
  }
173
+ for (const site of collectClosedWorldDynamicImportSites(sourceFile)) {
174
+ queueResolvedLocalDependency(site.specifier, currentFile, sourceFile, site.node, sourceRootAbs, compilerOptions, queue, diagnostics);
175
+ }
149
176
  }
150
177
  // If any diagnostics from discovery, fail the build
151
178
  if (diagnostics.length > 0) {