@tsonic/frontend 0.0.63 → 0.0.64

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 (98) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/graph/extraction/imports.d.ts.map +1 -1
  3. package/dist/graph/extraction/imports.js +10 -2
  4. package/dist/graph/extraction/imports.js.map +1 -1
  5. package/dist/ir/binding-resolution.test.js +248 -0
  6. package/dist/ir/binding-resolution.test.js.map +1 -1
  7. package/dist/ir/builder/imports.d.ts.map +1 -1
  8. package/dist/ir/builder/imports.js +8 -1
  9. package/dist/ir/builder/imports.js.map +1 -1
  10. package/dist/ir/builder.test.js +137 -0
  11. package/dist/ir/builder.test.js.map +1 -1
  12. package/dist/ir/converters/expressions/access/access-converter.d.ts.map +1 -1
  13. package/dist/ir/converters/expressions/access/access-converter.js +1 -1
  14. package/dist/ir/converters/expressions/access/access-converter.js.map +1 -1
  15. package/dist/ir/converters/expressions/access/binding-resolution.d.ts +2 -2
  16. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
  17. package/dist/ir/converters/expressions/access/binding-resolution.js +64 -1
  18. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -1
  19. package/dist/ir/program-context.d.ts +5 -0
  20. package/dist/ir/program-context.d.ts.map +1 -1
  21. package/dist/ir/program-context.js +1 -0
  22. package/dist/ir/program-context.js.map +1 -1
  23. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  24. package/dist/ir/type-system/internal/type-converter/orchestrator.js +12 -5
  25. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  26. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -1
  27. package/dist/ir/type-system/internal/universe/clr-type-parser.js +66 -0
  28. package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -1
  29. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts +2 -0
  30. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts.map +1 -0
  31. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js +55 -0
  32. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js.map +1 -0
  33. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -1
  34. package/dist/ir/type-system/type-system-inference.js +38 -0
  35. package/dist/ir/type-system/type-system-inference.js.map +1 -1
  36. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  37. package/dist/ir/validation/anonymous-type-lowering-pass.js +34 -0
  38. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  39. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts +2 -0
  40. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts.map +1 -0
  41. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js +121 -0
  42. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js.map +1 -0
  43. package/dist/ir/validation/numeric-invariants.test.js +29 -0
  44. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  45. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  46. package/dist/ir/validation/numeric-proof-pass.js +21 -0
  47. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  48. package/dist/program/creation.d.ts.map +1 -1
  49. package/dist/program/creation.js +104 -13
  50. package/dist/program/creation.js.map +1 -1
  51. package/dist/program/creation.test.js +133 -1
  52. package/dist/program/creation.test.js.map +1 -1
  53. package/dist/program/diagnostics.d.ts +1 -1
  54. package/dist/program/diagnostics.d.ts.map +1 -1
  55. package/dist/program/diagnostics.js +47 -2
  56. package/dist/program/diagnostics.js.map +1 -1
  57. package/dist/program/diagnostics.test.d.ts +2 -0
  58. package/dist/program/diagnostics.test.d.ts.map +1 -0
  59. package/dist/program/diagnostics.test.js +58 -0
  60. package/dist/program/diagnostics.test.js.map +1 -0
  61. package/dist/program/types.d.ts +2 -0
  62. package/dist/program/types.d.ts.map +1 -1
  63. package/dist/resolver/import-resolution.d.ts +2 -0
  64. package/dist/resolver/import-resolution.d.ts.map +1 -1
  65. package/dist/resolver/import-resolution.js +12 -4
  66. package/dist/resolver/import-resolution.js.map +1 -1
  67. package/dist/resolver/node-module-aliases.d.ts +6 -0
  68. package/dist/resolver/node-module-aliases.d.ts.map +1 -0
  69. package/dist/resolver/node-module-aliases.js +164 -0
  70. package/dist/resolver/node-module-aliases.js.map +1 -0
  71. package/dist/resolver/node-module-aliases.test.d.ts +2 -0
  72. package/dist/resolver/node-module-aliases.test.d.ts.map +1 -0
  73. package/dist/resolver/node-module-aliases.test.js +64 -0
  74. package/dist/resolver/node-module-aliases.test.js.map +1 -0
  75. package/dist/resolver.test.js +103 -0
  76. package/dist/resolver.test.js.map +1 -1
  77. package/dist/surface/js-surface-shims.d.ts +3 -0
  78. package/dist/surface/js-surface-shims.d.ts.map +1 -0
  79. package/dist/surface/js-surface-shims.js +332 -0
  80. package/dist/surface/js-surface-shims.js.map +1 -0
  81. package/dist/surface/js-surface-shims.test.d.ts +2 -0
  82. package/dist/surface/js-surface-shims.test.d.ts.map +1 -0
  83. package/dist/surface/js-surface-shims.test.js +53 -0
  84. package/dist/surface/js-surface-shims.test.js.map +1 -0
  85. package/dist/surface/profiles.d.ts +10 -0
  86. package/dist/surface/profiles.d.ts.map +1 -0
  87. package/dist/surface/profiles.js +65 -0
  88. package/dist/surface/profiles.js.map +1 -0
  89. package/dist/surface/profiles.test.d.ts +2 -0
  90. package/dist/surface/profiles.test.d.ts.map +1 -0
  91. package/dist/surface/profiles.test.js +44 -0
  92. package/dist/surface/profiles.test.js.map +1 -0
  93. package/dist/validation/imports.d.ts.map +1 -1
  94. package/dist/validation/imports.js +28 -5
  95. package/dist/validation/imports.js.map +1 -1
  96. package/dist/validation/imports.test.js +102 -3
  97. package/dist/validation/imports.test.js.map +1 -1
  98. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ const SURFACE_PROFILES = {
2
+ clr: {
3
+ mode: "clr",
4
+ extends: [],
5
+ requiredTypeRoots: ["node_modules/@tsonic/globals"],
6
+ useStandardLib: false,
7
+ enableJsBuiltins: false,
8
+ enableNodeModuleAliases: false,
9
+ },
10
+ js: {
11
+ mode: "js",
12
+ extends: ["clr"],
13
+ requiredTypeRoots: ["node_modules/@tsonic/js"],
14
+ useStandardLib: false,
15
+ enableJsBuiltins: true,
16
+ enableNodeModuleAliases: false,
17
+ },
18
+ nodejs: {
19
+ mode: "nodejs",
20
+ extends: ["js"],
21
+ requiredTypeRoots: ["node_modules/@tsonic/nodejs"],
22
+ useStandardLib: false,
23
+ enableJsBuiltins: true,
24
+ enableNodeModuleAliases: true,
25
+ },
26
+ };
27
+ const mergeUnique = (buckets) => {
28
+ const merged = new Set();
29
+ for (const bucket of buckets) {
30
+ for (const value of bucket) {
31
+ merged.add(value);
32
+ }
33
+ }
34
+ return Array.from(merged);
35
+ };
36
+ const isSurfaceMode = (value) => value === "clr" || value === "js" || value === "nodejs";
37
+ const toSurfaceMode = (mode) => mode && isSurfaceMode(mode) ? mode : "clr";
38
+ const resolveProfileChain = (mode) => {
39
+ const seen = new Set();
40
+ const chain = [];
41
+ const visit = (currentMode) => {
42
+ if (seen.has(currentMode))
43
+ return;
44
+ seen.add(currentMode);
45
+ const profile = SURFACE_PROFILES[currentMode];
46
+ for (const parent of profile.extends) {
47
+ visit(parent);
48
+ }
49
+ chain.push(profile);
50
+ };
51
+ visit(mode);
52
+ return chain;
53
+ };
54
+ export const resolveSurfaceCapabilities = (mode) => {
55
+ const normalizedMode = toSurfaceMode(mode);
56
+ const chain = resolveProfileChain(normalizedMode);
57
+ return {
58
+ mode: normalizedMode,
59
+ requiredTypeRoots: mergeUnique(chain.map((profile) => profile.requiredTypeRoots)),
60
+ useStandardLib: chain.some((profile) => profile.useStandardLib),
61
+ enableJsBuiltins: chain.some((profile) => profile.enableJsBuiltins),
62
+ enableNodeModuleAliases: chain.some((profile) => profile.enableNodeModuleAliases),
63
+ };
64
+ };
65
+ //# sourceMappingURL=profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/surface/profiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=profiles.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.test.d.ts","sourceRoot":"","sources":["../../src/surface/profiles.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ import { expect } from "chai";
2
+ import { describe, it } from "mocha";
3
+ import { resolveSurfaceCapabilities } from "./profiles.js";
4
+ describe("Frontend Surface Profiles", () => {
5
+ it("should resolve clr capabilities", () => {
6
+ const caps = resolveSurfaceCapabilities("clr");
7
+ expect(caps.requiredTypeRoots).to.deep.equal([
8
+ "node_modules/@tsonic/globals",
9
+ ]);
10
+ expect(caps.useStandardLib).to.equal(false);
11
+ expect(caps.enableJsBuiltins).to.equal(false);
12
+ expect(caps.enableNodeModuleAliases).to.equal(false);
13
+ });
14
+ it("should resolve js capabilities without node aliases", () => {
15
+ const caps = resolveSurfaceCapabilities("js");
16
+ expect(caps.requiredTypeRoots).to.deep.equal([
17
+ "node_modules/@tsonic/globals",
18
+ "node_modules/@tsonic/js",
19
+ ]);
20
+ expect(caps.useStandardLib).to.equal(false);
21
+ expect(caps.enableJsBuiltins).to.equal(true);
22
+ expect(caps.enableNodeModuleAliases).to.equal(false);
23
+ });
24
+ it("should resolve nodejs capabilities as js + node aliases", () => {
25
+ const caps = resolveSurfaceCapabilities("nodejs");
26
+ expect(caps.requiredTypeRoots).to.deep.equal([
27
+ "node_modules/@tsonic/globals",
28
+ "node_modules/@tsonic/js",
29
+ "node_modules/@tsonic/nodejs",
30
+ ]);
31
+ expect(caps.useStandardLib).to.equal(false);
32
+ expect(caps.enableJsBuiltins).to.equal(true);
33
+ expect(caps.enableNodeModuleAliases).to.equal(true);
34
+ });
35
+ it("should default to clr when mode is undefined", () => {
36
+ const caps = resolveSurfaceCapabilities(undefined);
37
+ expect(caps.mode).to.equal("clr");
38
+ expect(caps.requiredTypeRoots).to.deep.equal([
39
+ "node_modules/@tsonic/globals",
40
+ ]);
41
+ expect(caps.enableNodeModuleAliases).to.equal(false);
42
+ });
43
+ });
44
+ //# sourceMappingURL=profiles.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.test.js","sourceRoot":"","sources":["../../src/surface/profiles.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,8BAA8B;SAC/B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,8BAA8B;YAC9B,yBAAyB;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,8BAA8B;YAC9B,yBAAyB;YACzB,6BAA6B;SAC9B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,IAAI,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,8BAA8B;SAC/B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/validation/imports.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EAGrB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,EAAE,CAAC,UAAU,EACzB,SAAS,aAAa,EACtB,WAAW,oBAAoB,KAC9B,oBAeF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,EAAE,CAAC,iBAAiB,EAC1B,YAAY,EAAE,CAAC,UAAU,EACzB,SAAS,aAAa,EACtB,WAAW,oBAAoB,KAC9B,oBA0CF,CAAC"}
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/validation/imports.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EAGrB,MAAM,wBAAwB,CAAC;AAKhC;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,EAAE,CAAC,UAAU,EACzB,SAAS,aAAa,EACtB,WAAW,oBAAoB,KAC9B,oBAuBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,MAAM,EAAE,CAAC,iBAAiB,EAC1B,YAAY,EAAE,CAAC,UAAU,EACzB,SAAS,aAAa,EACtB,WAAW,oBAAoB,KAC9B,oBAmFF,CAAC"}
@@ -4,22 +4,26 @@
4
4
  import * as ts from "typescript";
5
5
  import { addDiagnostic, createDiagnostic, } from "../types/diagnostic.js";
6
6
  import { resolveImport } from "../resolver.js";
7
+ import { resolveNodeModuleAlias } from "../resolver/node-module-aliases.js";
7
8
  import { getNodeLocation } from "./helpers.js";
8
9
  /**
9
10
  * Validate all imports in a source file
10
11
  */
11
12
  export const validateImports = (sourceFile, program, collector) => {
13
+ let currentCollector = collector;
12
14
  const visitor = (node) => {
13
15
  if (ts.isImportDeclaration(node)) {
14
- return validateImportDeclaration(node, sourceFile, program, collector);
16
+ currentCollector = validateImportDeclaration(node, sourceFile, program, currentCollector);
17
+ return;
15
18
  }
16
19
  if (ts.isImportTypeNode(node)) {
17
20
  // Supported: type-only imports are erased at runtime.
18
- return collector;
21
+ return;
19
22
  }
20
- return ts.forEachChild(node, visitor) ?? collector;
23
+ ts.forEachChild(node, visitor);
21
24
  };
22
- return visitor(sourceFile);
25
+ visitor(sourceFile);
26
+ return currentCollector;
23
27
  };
24
28
  /**
25
29
  * Validate a specific import declaration
@@ -29,11 +33,30 @@ export const validateImportDeclaration = (node, sourceFile, program, collector)
29
33
  return addDiagnostic(collector, createDiagnostic("TSN2001", "error", "Dynamic imports not supported", getNodeLocation(sourceFile, node), "Use static import statements"));
30
34
  }
31
35
  const importPath = node.moduleSpecifier.text;
32
- const result = resolveImport(importPath, sourceFile.fileName, program.options.sourceRoot, { clrResolver: program.clrResolver, bindings: program.bindings });
36
+ const result = resolveImport(importPath, sourceFile.fileName, program.options.sourceRoot, {
37
+ clrResolver: program.clrResolver,
38
+ bindings: program.bindings,
39
+ surface: program.options.surface,
40
+ });
33
41
  if (!result.ok) {
34
42
  const location = getNodeLocation(sourceFile, node.moduleSpecifier);
35
43
  return addDiagnostic(collector, { ...result.error, location });
36
44
  }
45
+ const nodeAlias = resolveNodeModuleAlias(importPath);
46
+ if (nodeAlias) {
47
+ if (node.importClause?.name) {
48
+ return addDiagnostic(collector, createDiagnostic("TSN1004", "error", `Default import is not supported for "${importPath}"`, getNodeLocation(sourceFile, node.importClause.name), `Use named import: import { ${nodeAlias.moduleName} } from "${importPath}";`));
49
+ }
50
+ if (node.importClause?.namedBindings &&
51
+ ts.isNamedImports(node.importClause.namedBindings)) {
52
+ for (const spec of node.importClause.namedBindings.elements) {
53
+ const importedName = (spec.propertyName ?? spec.name).text;
54
+ if (importedName !== nodeAlias.moduleName) {
55
+ return addDiagnostic(collector, createDiagnostic("TSN1004", "error", `Unsupported member import "${importedName}" from "${importPath}"`, getNodeLocation(sourceFile, spec), `Only "${nodeAlias.moduleName}" is exported from "${importPath}" in the Tsonic Node surface`));
56
+ }
57
+ }
58
+ }
59
+ }
37
60
  // Check for default imports from local modules (we might want to restrict this)
38
61
  if (result.value.isLocal && node.importClause?.name) {
39
62
  return addDiagnostic(collector, createDiagnostic("TSN2001", "warning", "Default imports from local modules may not work as expected", getNodeLocation(sourceFile, node.importClause), "Consider using named imports"));
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/validation/imports.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,EAEL,aAAa,EACb,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAAyB,EACzB,OAAsB,EACtB,SAA+B,EACT,EAAE;IACxB,MAAM,OAAO,GAAG,CAAC,IAAa,EAAwB,EAAE;QACtD,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,sDAAsD;YACtD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC;IACrD,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,IAA0B,EAC1B,UAAyB,EACzB,OAAsB,EACtB,SAA+B,EACT,EAAE;IACxB,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO,aAAa,CAClB,SAAS,EACT,gBAAgB,CACd,SAAS,EACT,OAAO,EACP,+BAA+B,EAC/B,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,EACjC,8BAA8B,CAC/B,CACF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IAC7C,MAAM,MAAM,GAAG,aAAa,CAC1B,UAAU,EACV,UAAU,CAAC,QAAQ,EACnB,OAAO,CAAC,OAAO,CAAC,UAAU,EAC1B,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CACjE,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnE,OAAO,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,gFAAgF;IAChF,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;QACpD,OAAO,aAAa,CAClB,SAAS,EACT,gBAAgB,CACd,SAAS,EACT,SAAS,EACT,6DAA6D,EAC7D,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,EAC9C,8BAA8B,CAC/B,CACF,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/validation/imports.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { DotnetMetadataRegistry } from "../dotnet-metadata.js";
10
10
  import { BindingRegistry } from "../program/bindings.js";
11
11
  import { createClrBindingsResolver } from "../resolver/clr-bindings-resolver.js";
12
12
  import { createBinding } from "../ir/binding/index.js";
13
- const createTestProgram = (source, fileName = "/test/test.ts", sourceRoot = "/test") => {
13
+ const createTestProgram = (source, fileName = "/test/test.ts", sourceRoot = "/test", options) => {
14
14
  const sourceFile = ts.createSourceFile(fileName, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
15
15
  const compilerOptions = {
16
16
  target: ts.ScriptTarget.ES2022,
@@ -36,6 +36,7 @@ const createTestProgram = (source, fileName = "/test/test.ts", sourceRoot = "/te
36
36
  projectRoot: sourceRoot,
37
37
  sourceRoot,
38
38
  rootNamespace: "Test",
39
+ surface: options?.surface,
39
40
  },
40
41
  sourceFiles: [sourceFile],
41
42
  declarationSourceFiles: [],
@@ -46,8 +47,8 @@ const createTestProgram = (source, fileName = "/test/test.ts", sourceRoot = "/te
46
47
  sourceFile,
47
48
  };
48
49
  };
49
- const runValidation = (sourceText, fileName, sourceRoot) => {
50
- const testProgram = createTestProgram(sourceText, fileName, sourceRoot);
50
+ const runValidation = (sourceText, fileName, sourceRoot, options) => {
51
+ const testProgram = createTestProgram(sourceText, fileName, sourceRoot, options);
51
52
  return validateImports(testProgram.sourceFile, testProgram, createDiagnosticsCollector());
52
53
  };
53
54
  const codes = (result) => result.diagnostics.map((diag) => diag.code);
@@ -108,5 +109,103 @@ describe("validateImports", () => {
108
109
  fs.rmSync(tempRoot, { recursive: true, force: true });
109
110
  }
110
111
  });
112
+ it("allows canonical node module named imports in nodejs surface", () => {
113
+ const testProgram = createTestProgram(`
114
+ import { fs } from "node:fs";
115
+ void fs;
116
+ `, "/test/node-valid.ts", "/test", { surface: "nodejs" });
117
+ testProgram.bindings.addBindings("/test/node-bindings.json", {
118
+ bindings: {
119
+ "@tsonic/nodejs/index.js": {
120
+ kind: "module",
121
+ assembly: "nodejs",
122
+ type: "nodejs.fs$instance",
123
+ },
124
+ },
125
+ });
126
+ const result = validateImports(testProgram.sourceFile, testProgram, createDiagnosticsCollector());
127
+ expect(result.hasErrors).to.equal(false);
128
+ expect(codes(result)).to.deep.equal([]);
129
+ });
130
+ it("rejects unsupported named member imports from node aliases with TSN1004", () => {
131
+ const testProgram = createTestProgram(`
132
+ import { readFileSync } from "node:fs";
133
+ void readFileSync;
134
+ `, "/test/node-invalid-member.ts", "/test", { surface: "nodejs" });
135
+ testProgram.bindings.addBindings("/test/node-bindings.json", {
136
+ bindings: {
137
+ "@tsonic/nodejs/index.js": {
138
+ kind: "module",
139
+ assembly: "nodejs",
140
+ type: "nodejs.fs$instance",
141
+ },
142
+ },
143
+ });
144
+ const result = validateImports(testProgram.sourceFile, testProgram, createDiagnosticsCollector());
145
+ expect(result.hasErrors).to.equal(true);
146
+ expect(codes(result)).to.include("TSN1004");
147
+ expect(result.diagnostics[0]?.message).to.include("Unsupported member import");
148
+ });
149
+ it("rejects default imports from node aliases with TSN1004", () => {
150
+ const testProgram = createTestProgram(`
151
+ import fs from "node:fs";
152
+ void fs;
153
+ `, "/test/node-default-import.ts", "/test", { surface: "nodejs" });
154
+ testProgram.bindings.addBindings("/test/node-bindings.json", {
155
+ bindings: {
156
+ "@tsonic/nodejs/index.js": {
157
+ kind: "module",
158
+ assembly: "nodejs",
159
+ type: "nodejs.fs$instance",
160
+ },
161
+ },
162
+ });
163
+ const result = validateImports(testProgram.sourceFile, testProgram, createDiagnosticsCollector());
164
+ expect(result.hasErrors).to.equal(true);
165
+ expect(codes(result)).to.include("TSN1004");
166
+ expect(result.diagnostics[0]?.message).to.include("Default import is not supported");
167
+ });
168
+ it("rejects unsupported named member imports from bare node aliases with TSN1004", () => {
169
+ const testProgram = createTestProgram(`
170
+ import { join } from "path";
171
+ void join;
172
+ `, "/test/node-bare-invalid-member.ts", "/test", { surface: "nodejs" });
173
+ testProgram.bindings.addBindings("/test/node-bindings.json", {
174
+ bindings: {
175
+ "@tsonic/nodejs/index.js": {
176
+ kind: "module",
177
+ assembly: "nodejs",
178
+ type: "nodejs.path$instance",
179
+ },
180
+ },
181
+ });
182
+ const result = validateImports(testProgram.sourceFile, testProgram, createDiagnosticsCollector());
183
+ expect(result.hasErrors).to.equal(true);
184
+ expect(codes(result)).to.include("TSN1004");
185
+ expect(result.diagnostics[0]?.message).to.include("Unsupported member import");
186
+ });
187
+ it("reports multiple node import diagnostics in one pass", () => {
188
+ const testProgram = createTestProgram(`
189
+ import { readFileSync } from "node:fs";
190
+ import badPath from "node:path";
191
+ void readFileSync;
192
+ void badPath;
193
+ `, "/test/node-multi-diagnostics.ts", "/test", { surface: "nodejs" });
194
+ testProgram.bindings.addBindings("/test/node-bindings.json", {
195
+ bindings: {
196
+ "@tsonic/nodejs/index.js": {
197
+ kind: "module",
198
+ assembly: "nodejs",
199
+ type: "nodejs.fs$instance",
200
+ },
201
+ },
202
+ });
203
+ const result = validateImports(testProgram.sourceFile, testProgram, createDiagnosticsCollector());
204
+ expect(result.hasErrors).to.equal(true);
205
+ expect(codes(result).filter((code) => code === "TSN1004").length).to.equal(2);
206
+ const messages = result.diagnostics.map((diag) => diag.message);
207
+ expect(messages.some((message) => message.includes("Unsupported member import"))).to.equal(true);
208
+ expect(messages.some((message) => message.includes("Default import is not supported"))).to.equal(true);
209
+ });
111
210
  });
112
211
  //# sourceMappingURL=imports.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"imports.test.js","sourceRoot":"","sources":["../../src/validation/imports.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.test.js","sourceRoot":"","sources":["../../src/validation/imports.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsonic/frontend",
3
- "version": "0.0.63",
3
+ "version": "0.0.64",
4
4
  "description": "TypeScript parser and IR builder for Tsonic compiler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",