@tsonic/frontend 0.0.63 → 0.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/dependency-graph.d.ts +1 -1
  3. package/dist/dependency-graph.d.ts.map +1 -1
  4. package/dist/dependency-graph.js +1 -1
  5. package/dist/dependency-graph.js.map +1 -1
  6. package/dist/graph/extraction/imports.d.ts +0 -5
  7. package/dist/graph/extraction/imports.d.ts.map +1 -1
  8. package/dist/graph/extraction/imports.js +4 -31
  9. package/dist/graph/extraction/imports.js.map +1 -1
  10. package/dist/graph/extraction/index.d.ts +1 -1
  11. package/dist/graph/extraction/index.d.ts.map +1 -1
  12. package/dist/graph/extraction/index.js +1 -1
  13. package/dist/graph/extraction/index.js.map +1 -1
  14. package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
  15. package/dist/graph/extraction/orchestrator.js +1 -7
  16. package/dist/graph/extraction/orchestrator.js.map +1 -1
  17. package/dist/graph/extraction.d.ts +1 -1
  18. package/dist/graph/extraction.d.ts.map +1 -1
  19. package/dist/graph/extraction.js +1 -1
  20. package/dist/graph/extraction.js.map +1 -1
  21. package/dist/ir/binding/binding-types.d.ts +2 -2
  22. package/dist/ir/binding/binding-types.d.ts.map +1 -1
  23. package/dist/ir/binding-resolution.test.js +224 -0
  24. package/dist/ir/binding-resolution.test.js.map +1 -1
  25. package/dist/ir/bindings-disambiguation.test.js +149 -0
  26. package/dist/ir/bindings-disambiguation.test.js.map +1 -1
  27. package/dist/ir/builder/imports.d.ts.map +1 -1
  28. package/dist/ir/builder/imports.js +7 -4
  29. package/dist/ir/builder/imports.js.map +1 -1
  30. package/dist/ir/builder.test.js +193 -0
  31. package/dist/ir/builder.test.js.map +1 -1
  32. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
  33. package/dist/ir/converters/expressions/access/binding-resolution.js +55 -14
  34. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -1
  35. package/dist/ir/converters/expressions/access/member-resolution.d.ts.map +1 -1
  36. package/dist/ir/converters/expressions/access/member-resolution.js +5 -0
  37. package/dist/ir/converters/expressions/access/member-resolution.js.map +1 -1
  38. package/dist/ir/converters/expressions/calls/call-converter.js +3 -3
  39. package/dist/ir/converters/expressions/calls/call-converter.js.map +1 -1
  40. package/dist/ir/program-context.d.ts +5 -0
  41. package/dist/ir/program-context.d.ts.map +1 -1
  42. package/dist/ir/program-context.js +1 -0
  43. package/dist/ir/program-context.js.map +1 -1
  44. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  45. package/dist/ir/type-system/internal/type-converter/orchestrator.js +12 -5
  46. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  47. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  48. package/dist/ir/type-system/internal/type-converter/references.js +6 -9
  49. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  50. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -1
  51. package/dist/ir/type-system/internal/universe/clr-type-parser.js +66 -0
  52. package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -1
  53. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts +2 -0
  54. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts.map +1 -0
  55. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js +55 -0
  56. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js.map +1 -0
  57. package/dist/ir/type-system/type-system-call-resolution.d.ts.map +1 -1
  58. package/dist/ir/type-system/type-system-call-resolution.js +109 -3
  59. package/dist/ir/type-system/type-system-call-resolution.js.map +1 -1
  60. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -1
  61. package/dist/ir/type-system/type-system-inference.js +38 -0
  62. package/dist/ir/type-system/type-system-inference.js.map +1 -1
  63. package/dist/ir/type-system/type-system-state.d.ts.map +1 -1
  64. package/dist/ir/type-system/type-system-state.js +33 -17
  65. package/dist/ir/type-system/type-system-state.js.map +1 -1
  66. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  67. package/dist/ir/type-system/type-system.js.map +1 -1
  68. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  69. package/dist/ir/validation/anonymous-type-lowering-pass.js +34 -0
  70. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  71. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts +2 -0
  72. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts.map +1 -0
  73. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js +121 -0
  74. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js.map +1 -0
  75. package/dist/ir/validation/numeric-invariants.test.js +29 -0
  76. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  77. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  78. package/dist/ir/validation/numeric-proof-pass.js +21 -0
  79. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  80. package/dist/program/binding-loader.d.ts +3 -3
  81. package/dist/program/binding-loader.d.ts.map +1 -1
  82. package/dist/program/binding-loader.js +47 -23
  83. package/dist/program/binding-loader.js.map +1 -1
  84. package/dist/program/binding-registry.d.ts +7 -0
  85. package/dist/program/binding-registry.d.ts.map +1 -1
  86. package/dist/program/binding-registry.js +52 -1
  87. package/dist/program/binding-registry.js.map +1 -1
  88. package/dist/program/bindings.test.js +168 -0
  89. package/dist/program/bindings.test.js.map +1 -1
  90. package/dist/program/creation.d.ts.map +1 -1
  91. package/dist/program/creation.js +337 -77
  92. package/dist/program/creation.js.map +1 -1
  93. package/dist/program/creation.test.js +312 -1
  94. package/dist/program/creation.test.js.map +1 -1
  95. package/dist/program/diagnostics.d.ts +1 -1
  96. package/dist/program/diagnostics.d.ts.map +1 -1
  97. package/dist/program/diagnostics.js +47 -2
  98. package/dist/program/diagnostics.js.map +1 -1
  99. package/dist/program/diagnostics.test.d.ts +2 -0
  100. package/dist/program/diagnostics.test.d.ts.map +1 -0
  101. package/dist/program/diagnostics.test.js +58 -0
  102. package/dist/program/diagnostics.test.js.map +1 -0
  103. package/dist/program/metadata.d.ts.map +1 -1
  104. package/dist/program/metadata.js +8 -2
  105. package/dist/program/metadata.js.map +1 -1
  106. package/dist/program/types.d.ts +2 -0
  107. package/dist/program/types.d.ts.map +1 -1
  108. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  109. package/dist/resolver/clr-bindings-resolver.js +42 -4
  110. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  111. package/dist/resolver/import-resolution.d.ts.map +1 -1
  112. package/dist/resolver/import-resolution.js +6 -5
  113. package/dist/resolver/import-resolution.js.map +1 -1
  114. package/dist/resolver.test.js +75 -0
  115. package/dist/resolver.test.js.map +1 -1
  116. package/dist/surface/profiles.d.ts +13 -0
  117. package/dist/surface/profiles.d.ts.map +1 -0
  118. package/dist/surface/profiles.js +214 -0
  119. package/dist/surface/profiles.js.map +1 -0
  120. package/dist/surface/profiles.test.d.ts +2 -0
  121. package/dist/surface/profiles.test.d.ts.map +1 -0
  122. package/dist/surface/profiles.test.js +125 -0
  123. package/dist/surface/profiles.test.js.map +1 -0
  124. package/dist/validation/features.d.ts.map +1 -1
  125. package/dist/validation/features.js +1 -23
  126. package/dist/validation/features.js.map +1 -1
  127. package/dist/validation/features.test.js +4 -4
  128. package/dist/validation/features.test.js.map +1 -1
  129. package/dist/validation/imports.d.ts.map +1 -1
  130. package/dist/validation/imports.js +19 -5
  131. package/dist/validation/imports.js.map +1 -1
  132. package/dist/validation/imports.test.js +112 -5
  133. package/dist/validation/imports.test.js.map +1 -1
  134. package/dist/validator.maximus.test.js +4 -5
  135. package/dist/validator.maximus.test.js.map +1 -1
  136. package/package.json +2 -2
  137. package/dist/ir/converters/context.d.ts +0 -40
  138. package/dist/ir/converters/context.d.ts.map +0 -1
  139. package/dist/ir/converters/context.js +0 -25
  140. package/dist/ir/converters/context.js.map +0 -1
  141. package/dist/validation/unsupported-utility-types.d.ts +0 -40
  142. package/dist/validation/unsupported-utility-types.d.ts.map +0 -1
  143. package/dist/validation/unsupported-utility-types.js +0 -43
  144. package/dist/validation/unsupported-utility-types.js.map +0 -1
@@ -20,6 +20,155 @@ import { BindingRegistry } from "../program/bindings.js";
20
20
  import { createClrBindingsResolver } from "../resolver/clr-bindings-resolver.js";
21
21
  import { createBinding } from "./binding/index.js";
22
22
  describe("CLR member binding disambiguation", () => {
23
+ it("should disambiguate collisions by nearest simple bindings.json (Console.log)", () => {
24
+ const tmpRoot = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-bindings-disambiguation-"));
25
+ const dtsDir = path.join(tmpRoot, "js");
26
+ fs.mkdirSync(dtsDir, { recursive: true });
27
+ const bindingsJsonPath = path.join(dtsDir, "bindings.json");
28
+ fs.writeFileSync(bindingsJsonPath, JSON.stringify({
29
+ bindings: {
30
+ console: {
31
+ kind: "global",
32
+ assembly: "Tsonic.JSRuntime",
33
+ type: "Tsonic.JSRuntime.console",
34
+ },
35
+ },
36
+ }, null, 2), "utf8");
37
+ const dtsFileName = path.join(dtsDir, "globals.d.ts");
38
+ const dtsSource = `
39
+ declare global {
40
+ interface Console {
41
+ log(message: string): void;
42
+ }
43
+ const console: Console;
44
+ }
45
+ export {};
46
+ `;
47
+ const fileName = path.join(tmpRoot, "sample.ts");
48
+ const source = `
49
+ export function test(): void {
50
+ console.log("ok");
51
+ }
52
+ `;
53
+ const libFileName = path.join(tmpRoot, "lib.d.ts");
54
+ const libSource = `
55
+ interface Function {}
56
+ interface Object {}
57
+ interface String {}
58
+ interface Boolean {}
59
+ interface Number {}
60
+ interface IArguments {}
61
+ type PropertyKey = string | number | symbol;
62
+ `;
63
+ const sourceFile = ts.createSourceFile(fileName, source, ts.ScriptTarget.ES2022, true, ts.ScriptKind.TS);
64
+ const dtsFile = ts.createSourceFile(dtsFileName, dtsSource, ts.ScriptTarget.ES2022, true, ts.ScriptKind.TS);
65
+ const libFile = ts.createSourceFile(libFileName, libSource, ts.ScriptTarget.ES2022, true, ts.ScriptKind.TS);
66
+ const fileMap = new Map([
67
+ [fileName, sourceFile],
68
+ [dtsFileName, dtsFile],
69
+ [libFileName, libFile],
70
+ ]);
71
+ const program = ts.createProgram([fileName, dtsFileName], {
72
+ target: ts.ScriptTarget.ES2022,
73
+ module: ts.ModuleKind.ES2022,
74
+ }, {
75
+ getSourceFile: (name) => fileMap.get(name),
76
+ writeFile: () => { },
77
+ getCurrentDirectory: () => tmpRoot,
78
+ getDirectories: () => [],
79
+ fileExists: (name) => fileMap.has(name),
80
+ readFile: (name) => fileMap.get(name)?.text,
81
+ getCanonicalFileName: (f) => f,
82
+ useCaseSensitiveFileNames: () => true,
83
+ getNewLine: () => "\n",
84
+ getDefaultLibFileName: () => libFileName,
85
+ });
86
+ const checker = program.getTypeChecker();
87
+ const bindings = new BindingRegistry();
88
+ bindings.addBindings("/test/jsruntime.json", {
89
+ namespace: "Tsonic.JSRuntime",
90
+ types: [
91
+ {
92
+ clrName: "Tsonic.JSRuntime.console",
93
+ assemblyName: "Tsonic.JSRuntime",
94
+ methods: [
95
+ {
96
+ clrName: "log",
97
+ normalizedSignature: "log|(System.String):System.Void|static=false",
98
+ parameterCount: 1,
99
+ declaringClrType: "Tsonic.JSRuntime.console",
100
+ declaringAssemblyName: "Tsonic.JSRuntime",
101
+ },
102
+ ],
103
+ properties: [],
104
+ fields: [],
105
+ },
106
+ ],
107
+ });
108
+ bindings.addBindings("/test/nodejs.json", {
109
+ namespace: "nodejs",
110
+ types: [
111
+ {
112
+ clrName: "nodejs.console",
113
+ assemblyName: "nodejs",
114
+ methods: [
115
+ {
116
+ clrName: "log",
117
+ normalizedSignature: "log|(System.String):System.Void|static=false",
118
+ parameterCount: 1,
119
+ declaringClrType: "nodejs.console",
120
+ declaringAssemblyName: "nodejs",
121
+ },
122
+ ],
123
+ properties: [],
124
+ fields: [],
125
+ },
126
+ ],
127
+ });
128
+ const testProgram = {
129
+ program,
130
+ checker,
131
+ options: {
132
+ projectRoot: tmpRoot,
133
+ sourceRoot: tmpRoot,
134
+ rootNamespace: "TestApp",
135
+ strict: true,
136
+ },
137
+ sourceFiles: [sourceFile],
138
+ declarationSourceFiles: [dtsFile],
139
+ metadata: new DotnetMetadataRegistry(),
140
+ bindings,
141
+ clrResolver: createClrBindingsResolver(tmpRoot),
142
+ binding: createBinding(checker),
143
+ };
144
+ const ctx = createProgramContext(testProgram, {
145
+ sourceRoot: tmpRoot,
146
+ rootNamespace: "TestApp",
147
+ });
148
+ const irResult = buildIrModule(sourceFile, testProgram, testProgram.options, ctx);
149
+ if (!irResult.ok) {
150
+ throw new Error(`IR build MUST succeed for simple-manifest disambiguation test, got: ${JSON.stringify(irResult.error)}`);
151
+ }
152
+ const funcDecl = irResult.value.body[0];
153
+ if (funcDecl?.kind !== "functionDeclaration") {
154
+ throw new Error("Expected function declaration");
155
+ }
156
+ const exprStmt = funcDecl.body.statements[0];
157
+ if (exprStmt?.kind !== "expressionStatement") {
158
+ throw new Error("Expected expression statement");
159
+ }
160
+ const callExpr = exprStmt.expression;
161
+ if (callExpr.kind !== "call") {
162
+ throw new Error("Expected call expression");
163
+ }
164
+ const callee = callExpr.callee;
165
+ if (callee.kind !== "memberAccess") {
166
+ throw new Error("Expected member access callee");
167
+ }
168
+ expect(callee.memberBinding).to.not.equal(undefined);
169
+ expect(callee.memberBinding?.type).to.equal("Tsonic.JSRuntime.console");
170
+ expect(callee.memberBinding?.member).to.equal("log");
171
+ });
23
172
  it("should disambiguate collisions by nearest bindings.json (Server.listen)", () => {
24
173
  const tmpRoot = fs.mkdtempSync(path.join(os.tmpdir(), "tsonic-bindings-disambiguation-"));
25
174
  const dtsDir = path.join(tmpRoot, "nodejs.Http", "internal");
@@ -1 +1 @@
1
- {"version":3,"file":"bindings-disambiguation.test.js","sourceRoot":"","sources":["../../src/ir/bindings-disambiguation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings-disambiguation.test.js","sourceRoot":"","sources":["../../src/ir/bindings-disambiguation.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/ir/builder/imports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAoBnE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,EAAE,CAAC,UAAU,EACzB,KAAK,cAAc,KAClB,SAAS,QAAQ,EA6NnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,EAAE,CAAC,iBAAiB,EAC1B,SAAS,OAAO,EAChB,YAAY,aAAa,KACxB,SAAS,iBAAiB,EAkC5B,CAAC"}
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/ir/builder/imports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAoBnE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,EAAE,CAAC,UAAU,EACzB,KAAK,cAAc,KAClB,SAAS,QAAQ,EAiOnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,EAAE,CAAC,iBAAiB,EAC1B,SAAS,OAAO,EAChB,YAAY,aAAa,KACxB,SAAS,iBAAiB,EAkC5B,CAAC"}
@@ -30,7 +30,8 @@ export const extractImports = (sourceFile, ctx) => {
30
30
  const visitor = (node) => {
31
31
  if (ts.isImportDeclaration(node) &&
32
32
  ts.isStringLiteral(node.moduleSpecifier)) {
33
- const source = node.moduleSpecifier.text;
33
+ const originalSource = node.moduleSpecifier.text;
34
+ const source = originalSource;
34
35
  const isLocal = source.startsWith(".") || source.startsWith("/");
35
36
  // Use import-driven resolution to detect CLR imports
36
37
  // This works for any package that provides bindings.json
@@ -46,7 +47,8 @@ export const extractImports = (sourceFile, ctx) => {
46
47
  : undefined;
47
48
  // Check for module binding (Node.js API, etc.)
48
49
  const moduleBinding = ctx.bindings.getBinding(source);
49
- const hasModuleBinding = moduleBinding?.kind === "module";
50
+ const moduleBindingType = moduleBinding?.kind === "module" ? moduleBinding.type : undefined;
51
+ const hasModuleBinding = moduleBindingType !== undefined;
50
52
  const specifiers = extractImportSpecifiers(node, ctx.binding, ctx.typeSystem);
51
53
  // Map imported export name -> specifier node for accurate diagnostics.
52
54
  const namedSpecifierNodes = new Map();
@@ -182,7 +184,8 @@ export const extractImports = (sourceFile, ctx) => {
182
184
  })
183
185
  : specifiers;
184
186
  // Assembly comes from CLR resolution (bindings.json) or module binding
185
- const resolvedAssembly = clrAssembly ?? (hasModuleBinding ? moduleBinding.assembly : undefined);
187
+ const resolvedAssembly = clrAssembly ??
188
+ (moduleBinding?.kind === "module" ? moduleBinding.assembly : undefined);
186
189
  imports.push({
187
190
  kind: "import",
188
191
  source,
@@ -190,7 +193,7 @@ export const extractImports = (sourceFile, ctx) => {
190
193
  isClr,
191
194
  specifiers: resolvedSpecifiers,
192
195
  resolvedNamespace,
193
- resolvedClrType: hasModuleBinding ? moduleBinding.type : undefined,
196
+ resolvedClrType: moduleBindingType,
194
197
  resolvedAssembly,
195
198
  });
196
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../src/ir/builder/imports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,aAAa,GAAG,CACpB,IAAa,EACqC,EAAE;IACpD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,iBAAiB,CACtB,UAAU,EACV,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC1B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAyB,EACzB,GAAmB,EACE,EAAE;IACvB,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEhE,MAAM,OAAO,GAAG,CAAC,IAAa,EAAQ,EAAE;QACtC,IACE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,EACxC,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEjE,qDAAqD;YACrD,yDAAyD;YACzD,oEAAoE;YACpE,oDAAoD;YACpD,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;YAClC,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK;gBAC3C,CAAC,CAAC,aAAa,CAAC,iBAAiB;gBACjC,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK;gBACrC,CAAC,CAAC,aAAa,CAAC,QAAQ;gBACxB,CAAC,CAAC,SAAS,CAAC;YAEd,+CAA+C;YAC/C,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,gBAAgB,GAAG,aAAa,EAAE,IAAI,KAAK,QAAQ,CAAC;YAE1D,MAAM,UAAU,GAAG,uBAAuB,CACxC,IAAI,EACJ,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,UAAU,CACf,CAAC;YAEF,uEAAuE;YACvE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA8B,CAAC;YAClE,IACE,IAAI,CAAC,YAAY,EAAE,aAAa;gBAChC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAClD,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC5D,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAED,MAAM,uBAAuB,GAAG,CAC9B,QAAgB,EACI,EAAE;gBACtB,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;oBAC7C,IAAI,UAAU,CAAC,SAAS,CAAC;wBAAE,OAAO,SAAS,CAAC;oBAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,MAAM,KAAK,GAAG;wBAAE,OAAO,SAAS,CAAC;oBACrC,GAAG,GAAG,MAAM,CAAC;gBACf,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YAEF,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAsB,EAAE;gBACtE,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,OAAO;oBAAE,OAAO,OAAO,CAAC;gBAE5B,gEAAgE;gBAChE,iEAAiE;gBACjE,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC3D,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;wBAChE,IAAI,UAAU,CAAC,OAAO,CAAC;4BAAE,OAAO,OAAO,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBAED,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YAEF,MAAM,6BAA6B,GAAG,CACpC,YAAoB,EACA,EAAE;gBACtB,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,MAAM,IAAI,SAAS,CAAC;gBAErD,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;oBAC1C,MAAM,EAAE,GACN,MAAM;wBACN,OAAO,MAAM,KAAK,QAAQ;wBAC1B,OAAQ,MAA2C,CAAC,SAAS;4BAC3D,QAAQ;wBACR,CAAC,CAAG,MAAyC,CAAC,SAAoB;wBAClE,CAAC,CAAC,SAAS,CAAC;oBAChB,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;oBACrD,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;oBAC/C,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,uCAAuC,GAAG,CAC9C,UAAkB,EACE,EAAE;gBACtB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,CAAC,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAEhC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM;oBAAE,OAAO,SAAS,CAAC;gBAE9B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,CAAC,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAEhC,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,CAAC,YAAY;oBAAE,OAAO,SAAS,CAAC;gBAEpC,OAAO,6BAA6B,CAAC,YAAY,CAAC,CAAC;YACrD,CAAC,CAAC;YAEF,sEAAsE;YACtE,qEAAqE;YACrE,kEAAkE;YAClE,MAAM,kBAAkB,GACtB,KAAK,IAAI,iBAAiB;gBACxB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC1B,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,+EAA+E;oBAC/E,4EAA4E;oBAC5E,0EAA0E;oBAC1E,4EAA4E;oBAC5E,qDAAqD;oBACrD,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE5D,IAAI,MAAM,EAAE,CAAC;wBACX,+DAA+D;wBAC/D,4DAA4D;wBAC5D,6DAA6D;wBAC7D,kBAAkB;wBAClB,MAAM,YAAY,GAChB,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;4BAClD,iBAAiB,CAAC;wBACpB,OAAO;4BACL,GAAG,IAAI;4BACP,MAAM,EAAE,IAAI;4BACZ,eAAe,EACb,YAAY,KAAK,iBAAiB;gCAChC,CAAC,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE;gCAChC,CAAC,CAAC,SAAS;yBAChB,CAAC;oBACJ,CAAC;oBAED,wEAAwE;oBACxE,kEAAkE;oBAClE,qEAAqE;oBACrE,6CAA6C;oBAC7C,MAAM,YAAY,GAChB,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAClD,iBAAiB,CAAC;oBAEpB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CACzC,YAAY,EACZ,IAAI,CAAC,IAAI,CACV,CAAC;oBACF,IAAI,CAAC,GAAG,EAAE,CAAC;wBACT,oDAAoD;wBACpD,oEAAoE;wBACpE,oFAAoF;wBACpF,uDAAuD;wBACvD,EAAE;wBACF,sEAAsE;wBACtE,6BAA6B;wBAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACtB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACpD,GAAG,CAAC,WAAW,CAAC,IAAI,CAClB,gBAAgB,CACd,SAAS,EACT,OAAO,EACP,+CAA+C,IAAI,CAAC,IAAI,qBAAqB,iBAAiB,IAAI,EAClG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EACxD,oIAAoI,iBAAiB,oDAAoD,IAAI,CAAC,IAAI,mFAAmF,CACtS,CACF,CAAC;wBACJ,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,OAAO;wBACL,GAAG,IAAI;wBACP,gBAAgB,EAAE;4BAChB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;4BACtC,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;4BAChD,UAAU,EAAE,GAAG,CAAC,OAAO;yBACxB;qBACF,CAAC;gBACJ,CAAC,CAAC;gBACJ,CAAC,CAAC,UAAU,CAAC;YAEjB,uEAAuE;YACvE,MAAM,gBAAgB,GACpB,WAAW,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAEzE,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,OAAO;gBACP,KAAK;gBACL,UAAU,EAAE,kBAAkB;gBAC9B,iBAAiB;gBACjB,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAClE,gBAAgB;aACjB,CAAC,CAAC;QACL,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO,CAAC,UAAU,CAAC,CAAC;IACpB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAA0B,EAC1B,OAAgB,EAChB,UAAyB,EACK,EAAE;IAChC,MAAM,UAAU,GAAwB,EAAE,CAAC;IAE3C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,iBAAiB;QACjB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI;aACvC,CAAC,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACpC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1D,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI;iBACrD,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;oBACvD,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;wBAC3C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;wBACzB,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG,CACnB,IAAwB,EACxB,OAAgB,EAChB,UAAyB,EAChB,EAAE;IACX,IAAI,CAAC;QACH,mFAAmF;QACnF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,8EAA8E;QAC9E,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../src/ir/builder/imports.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,aAAa,GAAG,CACpB,IAAa,EACqC,EAAE;IACpD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,iBAAiB,CACtB,UAAU,EACV,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC1B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAyB,EACzB,GAAmB,EACE,EAAE;IACvB,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEhE,MAAM,OAAO,GAAG,CAAC,IAAa,EAAQ,EAAE;QACtC,IACE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,EACxC,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACjD,MAAM,MAAM,GAAG,cAAc,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEjE,qDAAqD;YACrD,yDAAyD;YACzD,oEAAoE;YACpE,oDAAoD;YACpD,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;YAClC,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK;gBAC3C,CAAC,CAAC,aAAa,CAAC,iBAAiB;gBACjC,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK;gBACrC,CAAC,CAAC,aAAa,CAAC,QAAQ;gBACxB,CAAC,CAAC,SAAS,CAAC;YAEd,+CAA+C;YAC/C,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,iBAAiB,GACrB,aAAa,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,SAAS,CAAC;YAEzD,MAAM,UAAU,GAAG,uBAAuB,CACxC,IAAI,EACJ,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,UAAU,CACf,CAAC;YAEF,uEAAuE;YACvE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA8B,CAAC;YAClE,IACE,IAAI,CAAC,YAAY,EAAE,aAAa;gBAChC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAClD,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC5D,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAED,MAAM,uBAAuB,GAAG,CAC9B,QAAgB,EACI,EAAE;gBACtB,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;oBAC7C,IAAI,UAAU,CAAC,SAAS,CAAC;wBAAE,OAAO,SAAS,CAAC;oBAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,MAAM,KAAK,GAAG;wBAAE,OAAO,SAAS,CAAC;oBACrC,GAAG,GAAG,MAAM,CAAC;gBACf,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YAEF,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAsB,EAAE;gBACtE,MAAM,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,OAAO;oBAAE,OAAO,OAAO,CAAC;gBAE5B,gEAAgE;gBAChE,iEAAiE;gBACjE,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC3D,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;wBAChE,IAAI,UAAU,CAAC,OAAO,CAAC;4BAAE,OAAO,OAAO,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBAED,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YAEF,MAAM,6BAA6B,GAAG,CACpC,YAAoB,EACA,EAAE;gBACtB,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,MAAM,IAAI,SAAS,CAAC;gBAErD,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;oBAC1C,MAAM,EAAE,GACN,MAAM;wBACN,OAAO,MAAM,KAAK,QAAQ;wBAC1B,OAAQ,MAA2C,CAAC,SAAS;4BAC3D,QAAQ;wBACR,CAAC,CAAG,MAAyC,CAAC,SAAoB;wBAClE,CAAC,CAAC,SAAS,CAAC;oBAChB,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;oBACrD,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;oBAC/C,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,uCAAuC,GAAG,CAC9C,UAAkB,EACE,EAAE;gBACtB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,CAAC,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAEhC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM;oBAAE,OAAO,SAAS,CAAC;gBAE9B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAC7D,IAAI,CAAC,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAEhC,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,CAAC,YAAY;oBAAE,OAAO,SAAS,CAAC;gBAEpC,OAAO,6BAA6B,CAAC,YAAY,CAAC,CAAC;YACrD,CAAC,CAAC;YAEF,sEAAsE;YACtE,qEAAqE;YACrE,kEAAkE;YAClE,MAAM,kBAAkB,GACtB,KAAK,IAAI,iBAAiB;gBACxB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC1B,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,+EAA+E;oBAC/E,4EAA4E;oBAC5E,0EAA0E;oBAC1E,4EAA4E;oBAC5E,qDAAqD;oBACrD,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE5D,IAAI,MAAM,EAAE,CAAC;wBACX,+DAA+D;wBAC/D,4DAA4D;wBAC5D,6DAA6D;wBAC7D,kBAAkB;wBAClB,MAAM,YAAY,GAChB,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;4BAClD,iBAAiB,CAAC;wBACpB,OAAO;4BACL,GAAG,IAAI;4BACP,MAAM,EAAE,IAAI;4BACZ,eAAe,EACb,YAAY,KAAK,iBAAiB;gCAChC,CAAC,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE;gCAChC,CAAC,CAAC,SAAS;yBAChB,CAAC;oBACJ,CAAC;oBAED,wEAAwE;oBACxE,kEAAkE;oBAClE,qEAAqE;oBACrE,6CAA6C;oBAC7C,MAAM,YAAY,GAChB,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAClD,iBAAiB,CAAC;oBAEpB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CACzC,YAAY,EACZ,IAAI,CAAC,IAAI,CACV,CAAC;oBACF,IAAI,CAAC,GAAG,EAAE,CAAC;wBACT,oDAAoD;wBACpD,oEAAoE;wBACpE,oFAAoF;wBACpF,uDAAuD;wBACvD,EAAE;wBACF,sEAAsE;wBACtE,6BAA6B;wBAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACtB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACpD,GAAG,CAAC,WAAW,CAAC,IAAI,CAClB,gBAAgB,CACd,SAAS,EACT,OAAO,EACP,+CAA+C,IAAI,CAAC,IAAI,qBAAqB,iBAAiB,IAAI,EAClG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EACxD,oIAAoI,iBAAiB,oDAAoD,IAAI,CAAC,IAAI,mFAAmF,CACtS,CACF,CAAC;wBACJ,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,OAAO;wBACL,GAAG,IAAI;wBACP,gBAAgB,EAAE;4BAChB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;4BACtC,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;4BAChD,UAAU,EAAE,GAAG,CAAC,OAAO;yBACxB;qBACF,CAAC;gBACJ,CAAC,CAAC;gBACJ,CAAC,CAAC,UAAU,CAAC;YAEjB,uEAAuE;YACvE,MAAM,gBAAgB,GACpB,WAAW;gBACX,CAAC,aAAa,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAE1E,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,MAAM;gBACN,OAAO;gBACP,KAAK;gBACL,UAAU,EAAE,kBAAkB;gBAC9B,iBAAiB;gBACjB,eAAe,EAAE,iBAAiB;gBAClC,gBAAgB;aACjB,CAAC,CAAC;QACL,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO,CAAC,UAAU,CAAC,CAAC;IACpB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAA0B,EAC1B,OAAgB,EAChB,UAAyB,EACK,EAAE;IAChC,MAAM,UAAU,GAAwB,EAAE,CAAC;IAE3C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,iBAAiB;QACjB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI;aACvC,CAAC,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACpC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1D,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI;iBACrD,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACxD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;oBACvD,UAAU,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI;wBAC3C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;wBACzB,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG,CACnB,IAAwB,EACxB,OAAgB,EAChB,UAAyB,EAChB,EAAE;IACX,IAAI,CAAC;QACH,mFAAmF;QACnF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,8EAA8E;QAC9E,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
@@ -198,6 +198,62 @@ describe("IR Builder", () => {
198
198
  expect(result.ok).to.equal(true);
199
199
  expect(ctx.diagnostics.some((d) => d.code === "TSN4004")).to.equal(true);
200
200
  });
201
+ it("treats node alias named imports as module-bound values without TSN4004", () => {
202
+ const source = `
203
+ import { join } from "node:path";
204
+ void join;
205
+ `;
206
+ const { testProgram, ctx, options: baseOptions, } = createTestProgram(source);
207
+ const options = { ...baseOptions, surface: "@tsonic/nodejs" };
208
+ ctx.surface = "@tsonic/nodejs";
209
+ ctx.clrResolver = {
210
+ resolve: () => ({ isClr: false }),
211
+ };
212
+ ctx.bindings.addBindings("/x/node-modules.json", {
213
+ bindings: {
214
+ "node:path": {
215
+ kind: "module",
216
+ assembly: "nodejs",
217
+ type: "nodejs.path",
218
+ },
219
+ path: {
220
+ kind: "module",
221
+ assembly: "nodejs",
222
+ type: "nodejs.path",
223
+ },
224
+ },
225
+ });
226
+ ctx.bindings.addBindings("/x/node-types.json", {
227
+ namespace: "nodejs",
228
+ types: [
229
+ {
230
+ clrName: "nodejs.path",
231
+ assemblyName: "nodejs",
232
+ methods: [],
233
+ properties: [],
234
+ fields: [],
235
+ },
236
+ ],
237
+ });
238
+ const sourceFile = testProgram.sourceFiles[0];
239
+ if (!sourceFile)
240
+ throw new Error("Failed to create source file");
241
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
242
+ expect(result.ok).to.equal(true);
243
+ if (!result.ok)
244
+ return;
245
+ expect(ctx.diagnostics.some((d) => d.code === "TSN4004")).to.equal(false);
246
+ const imp = result.value.imports[0];
247
+ if (!imp)
248
+ throw new Error("Missing import");
249
+ expect(imp.source).to.equal("node:path");
250
+ expect(imp.resolvedClrType).to.equal("nodejs.path");
251
+ const spec = imp.specifiers[0];
252
+ if (!spec || spec.kind !== "named")
253
+ throw new Error("Missing named spec");
254
+ expect(spec.name).to.equal("join");
255
+ expect(spec.resolvedClrValue).to.equal(undefined);
256
+ });
201
257
  it("should not detect bare imports as .NET without package bindings", () => {
202
258
  // Import-driven resolution: bare imports like "System.IO" are only detected as .NET
203
259
  // if they come from a package with bindings.json. Without an actual package,
@@ -963,6 +1019,143 @@ describe("IR Builder", () => {
963
1019
  const result = buildIrModule(sourceFile, testProgram, options, ctx);
964
1020
  expect(result.ok).to.equal(true);
965
1021
  });
1022
+ it("types Record<string, unknown>.Keys as string[] without unknown poison", () => {
1023
+ const source = `
1024
+ export function firstKey(settings: Record<string, unknown>): string | undefined {
1025
+ const settingsKeys = settings.Keys;
1026
+ if (settingsKeys.Length === 0) {
1027
+ return undefined;
1028
+ }
1029
+ return settingsKeys[0];
1030
+ }
1031
+ `;
1032
+ const { testProgram, ctx, options } = createTestProgram(source);
1033
+ const sourceFile = testProgram.sourceFiles[0];
1034
+ if (!sourceFile)
1035
+ throw new Error("Failed to create source file");
1036
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
1037
+ expect(result.ok).to.equal(true);
1038
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5203")).to.equal(false);
1039
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5107")).to.equal(false);
1040
+ if (!result.ok)
1041
+ return;
1042
+ const fn = result.value.body.find((stmt) => stmt.kind === "functionDeclaration" && stmt.name === "firstKey");
1043
+ expect(fn).to.not.equal(undefined);
1044
+ if (!fn)
1045
+ return;
1046
+ const keyDecl = fn.body.statements.find((stmt) => stmt.kind === "variableDeclaration" &&
1047
+ stmt.declarations.some((d) => d.name.kind === "identifierPattern" &&
1048
+ d.name.name === "settingsKeys"));
1049
+ expect(keyDecl).to.not.equal(undefined);
1050
+ const keyInit = keyDecl?.declarations[0]?.initializer;
1051
+ expect(keyInit?.kind).to.equal("memberAccess");
1052
+ if (!keyInit || keyInit.kind !== "memberAccess")
1053
+ return;
1054
+ expect(keyInit.inferredType).to.deep.equal({
1055
+ kind: "arrayType",
1056
+ elementType: { kind: "primitiveType", name: "string" },
1057
+ });
1058
+ });
1059
+ it("types Record<string, unknown>.Values as unknown[] deterministically", () => {
1060
+ const source = `
1061
+ export function firstValue(settings: Record<string, unknown>): unknown | undefined {
1062
+ const values = settings.Values;
1063
+ return values.Length > 0 ? values[0] : undefined;
1064
+ }
1065
+ `;
1066
+ const { testProgram, ctx, options } = createTestProgram(source);
1067
+ const sourceFile = testProgram.sourceFiles[0];
1068
+ if (!sourceFile)
1069
+ throw new Error("Failed to create source file");
1070
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
1071
+ expect(result.ok).to.equal(true);
1072
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5203")).to.equal(false);
1073
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5107")).to.equal(false);
1074
+ if (!result.ok)
1075
+ return;
1076
+ const fn = result.value.body.find((stmt) => stmt.kind === "functionDeclaration" && stmt.name === "firstValue");
1077
+ expect(fn).to.not.equal(undefined);
1078
+ if (!fn)
1079
+ return;
1080
+ const valuesDecl = fn.body.statements.find((stmt) => stmt.kind === "variableDeclaration" &&
1081
+ stmt.declarations.some((d) => d.name.kind === "identifierPattern" && d.name.name === "values"));
1082
+ expect(valuesDecl).to.not.equal(undefined);
1083
+ const valuesInit = valuesDecl?.declarations[0]?.initializer;
1084
+ expect(valuesInit?.kind).to.equal("memberAccess");
1085
+ if (!valuesInit || valuesInit.kind !== "memberAccess")
1086
+ return;
1087
+ expect(valuesInit.inferredType).to.deep.equal({
1088
+ kind: "arrayType",
1089
+ elementType: { kind: "unknownType" },
1090
+ });
1091
+ });
1092
+ it("types inferred array Length access as int without unknown poison", () => {
1093
+ const source = `
1094
+ export function count(items: string[]): int {
1095
+ const copy = items;
1096
+ return copy.Length;
1097
+ }
1098
+ `;
1099
+ const { testProgram, ctx, options } = createTestProgram(source);
1100
+ const sourceFile = testProgram.sourceFiles[0];
1101
+ if (!sourceFile)
1102
+ throw new Error("Failed to create source file");
1103
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
1104
+ expect(result.ok).to.equal(true);
1105
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5203")).to.equal(false);
1106
+ if (!result.ok)
1107
+ return;
1108
+ const fn = result.value.body.find((stmt) => stmt.kind === "functionDeclaration" && stmt.name === "count");
1109
+ expect(fn).to.not.equal(undefined);
1110
+ if (!fn)
1111
+ return;
1112
+ const returnStmt = fn.body.statements.find((s) => s.kind === "returnStatement");
1113
+ expect(returnStmt).to.not.equal(undefined);
1114
+ if (!returnStmt ||
1115
+ returnStmt.kind !== "returnStatement" ||
1116
+ !returnStmt.expression)
1117
+ return;
1118
+ expect(returnStmt.expression.kind).to.equal("memberAccess");
1119
+ if (returnStmt.expression.kind !== "memberAccess")
1120
+ return;
1121
+ expect(returnStmt.expression.inferredType).to.deep.equal({
1122
+ kind: "primitiveType",
1123
+ name: "int",
1124
+ });
1125
+ });
1126
+ it("types tuple Length access as int without unknown poison", () => {
1127
+ const source = `
1128
+ export function tupleCount(pair: [string, int]): int {
1129
+ return pair.Length;
1130
+ }
1131
+ `;
1132
+ const { testProgram, ctx, options } = createTestProgram(source);
1133
+ const sourceFile = testProgram.sourceFiles[0];
1134
+ if (!sourceFile)
1135
+ throw new Error("Failed to create source file");
1136
+ const result = buildIrModule(sourceFile, testProgram, options, ctx);
1137
+ expect(result.ok).to.equal(true);
1138
+ expect(ctx.diagnostics.some((d) => d.code === "TSN5203")).to.equal(false);
1139
+ if (!result.ok)
1140
+ return;
1141
+ const fn = result.value.body.find((stmt) => stmt.kind === "functionDeclaration" && stmt.name === "tupleCount");
1142
+ expect(fn).to.not.equal(undefined);
1143
+ if (!fn)
1144
+ return;
1145
+ const returnStmt = fn.body.statements.find((s) => s.kind === "returnStatement");
1146
+ expect(returnStmt).to.not.equal(undefined);
1147
+ if (!returnStmt ||
1148
+ returnStmt.kind !== "returnStatement" ||
1149
+ !returnStmt.expression)
1150
+ return;
1151
+ expect(returnStmt.expression.kind).to.equal("memberAccess");
1152
+ if (returnStmt.expression.kind !== "memberAccess")
1153
+ return;
1154
+ expect(returnStmt.expression.inferredType).to.deep.equal({
1155
+ kind: "primitiveType",
1156
+ name: "int",
1157
+ });
1158
+ });
966
1159
  });
967
1160
  describe("For-Await Loop Conversion", () => {
968
1161
  it("should set isAwait=true for 'for await' loop", () => {