@tsonic/emitter 0.0.6 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/array.test.js +5 -5
- package/dist/array.test.js.map +1 -1
- package/dist/core/attributes.d.ts +43 -0
- package/dist/core/attributes.d.ts.map +1 -0
- package/dist/core/attributes.js +128 -0
- package/dist/core/attributes.js.map +1 -0
- package/dist/core/attributes.test.d.ts +5 -0
- package/dist/core/attributes.test.d.ts.map +1 -0
- package/dist/core/attributes.test.js +296 -0
- package/dist/core/attributes.test.js.map +1 -0
- package/dist/core/imports.test.js +6 -3
- package/dist/core/imports.test.js.map +1 -1
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/module-emitter/static-container.d.ts.map +1 -1
- package/dist/core/module-emitter/static-container.js +50 -1
- package/dist/core/module-emitter/static-container.js.map +1 -1
- package/dist/core/module-emitter.test.js +2 -1
- package/dist/core/module-emitter.test.js.map +1 -1
- package/dist/core/module-map.d.ts.map +1 -1
- package/dist/core/module-map.js +5 -1
- package/dist/core/module-map.js.map +1 -1
- package/dist/core/module-map.test.d.ts +8 -0
- package/dist/core/module-map.test.d.ts.map +1 -0
- package/dist/core/module-map.test.js +94 -0
- package/dist/core/module-map.test.js.map +1 -0
- package/dist/core/type-compatibility.d.ts +31 -0
- package/dist/core/type-compatibility.d.ts.map +1 -0
- package/dist/core/type-compatibility.js +99 -0
- package/dist/core/type-compatibility.js.map +1 -0
- package/dist/core/type-resolution.d.ts +83 -3
- package/dist/core/type-resolution.d.ts.map +1 -1
- package/dist/core/type-resolution.js +262 -4
- package/dist/core/type-resolution.js.map +1 -1
- package/dist/core/type-resolution.test.js +110 -1
- package/dist/core/type-resolution.test.js.map +1 -1
- package/dist/emitter-types/context.d.ts.map +1 -1
- package/dist/emitter-types/context.js +21 -1
- package/dist/emitter-types/context.js.map +1 -1
- package/dist/emitter-types/core.d.ts +26 -0
- package/dist/emitter-types/core.d.ts.map +1 -1
- package/dist/emitter-types/identifiers.d.ts.map +1 -1
- package/dist/emitter-types/identifiers.js +4 -43
- package/dist/emitter-types/identifiers.js.map +1 -1
- package/dist/emitter-types/index.d.ts +1 -1
- package/dist/emitter-types/index.d.ts.map +1 -1
- package/dist/emitter-types/index.js.map +1 -1
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +47 -1
- package/dist/emitter.js.map +1 -1
- package/dist/expression-emitter.d.ts.map +1 -1
- package/dist/expression-emitter.js +51 -3
- package/dist/expression-emitter.js.map +1 -1
- package/dist/expressions/access.d.ts.map +1 -1
- package/dist/expressions/access.js +138 -23
- package/dist/expressions/access.js.map +1 -1
- package/dist/expressions/calls.d.ts.map +1 -1
- package/dist/expressions/calls.js +90 -13
- package/dist/expressions/calls.js.map +1 -1
- package/dist/expressions/collections.d.ts +3 -2
- package/dist/expressions/collections.d.ts.map +1 -1
- package/dist/expressions/collections.js +251 -52
- package/dist/expressions/collections.js.map +1 -1
- package/dist/expressions/functions.d.ts +2 -2
- package/dist/expressions/functions.d.ts.map +1 -1
- package/dist/expressions/functions.js +81 -38
- package/dist/expressions/functions.js.map +1 -1
- package/dist/expressions/identifiers.d.ts.map +1 -1
- package/dist/expressions/identifiers.js +28 -7
- package/dist/expressions/identifiers.js.map +1 -1
- package/dist/expressions/index.test.js +191 -4
- package/dist/expressions/index.test.js.map +1 -1
- package/dist/expressions/literals.d.ts +7 -17
- package/dist/expressions/literals.d.ts.map +1 -1
- package/dist/expressions/literals.js +27 -87
- package/dist/expressions/literals.js.map +1 -1
- package/dist/expressions/literals.test.js +52 -2
- package/dist/expressions/literals.test.js.map +1 -1
- package/dist/expressions/operators.d.ts +29 -11
- package/dist/expressions/operators.d.ts.map +1 -1
- package/dist/expressions/operators.js +244 -67
- package/dist/expressions/operators.js.map +1 -1
- package/dist/expressions/other.d.ts +3 -0
- package/dist/expressions/other.d.ts.map +1 -1
- package/dist/expressions/other.js +27 -3
- package/dist/expressions/other.js.map +1 -1
- package/dist/generator-exchange.d.ts +1 -1
- package/dist/generator-exchange.d.ts.map +1 -1
- package/dist/generator-exchange.js +15 -4
- package/dist/generator-exchange.js.map +1 -1
- package/dist/generator-wrapper.d.ts +84 -0
- package/dist/generator-wrapper.d.ts.map +1 -0
- package/dist/generator-wrapper.js +312 -0
- package/dist/generator-wrapper.js.map +1 -0
- package/dist/generator-wrapper.test.d.ts +12 -0
- package/dist/generator-wrapper.test.d.ts.map +1 -0
- package/dist/generator-wrapper.test.js +179 -0
- package/dist/generator-wrapper.test.js.map +1 -0
- package/dist/generator.test.js +596 -6
- package/dist/generator.test.js.map +1 -1
- package/dist/golden-tests/config-parser.d.ts.map +1 -1
- package/dist/golden-tests/config-parser.js +81 -11
- package/dist/golden-tests/config-parser.js.map +1 -1
- package/dist/golden-tests/discovery.d.ts +14 -3
- package/dist/golden-tests/discovery.d.ts.map +1 -1
- package/dist/golden-tests/discovery.js +105 -12
- package/dist/golden-tests/discovery.js.map +1 -1
- package/dist/golden-tests/index.d.ts +1 -1
- package/dist/golden-tests/index.d.ts.map +1 -1
- package/dist/golden-tests/index.js.map +1 -1
- package/dist/golden-tests/runner.d.ts +1 -0
- package/dist/golden-tests/runner.d.ts.map +1 -1
- package/dist/golden-tests/runner.js +83 -25
- package/dist/golden-tests/runner.js.map +1 -1
- package/dist/golden-tests/types.d.ts +18 -1
- package/dist/golden-tests/types.d.ts.map +1 -1
- package/dist/golden.test.d.ts +12 -5
- package/dist/golden.test.d.ts.map +1 -1
- package/dist/golden.test.js +40 -21
- package/dist/golden.test.js.map +1 -1
- package/dist/hierarchical-bindings.test.js +2 -2
- package/dist/hierarchical-bindings.test.js.map +1 -1
- package/dist/integration.test.js +57 -10
- package/dist/integration.test.js.map +1 -1
- package/dist/invariants/emitter-globals-subset.test.d.ts +15 -0
- package/dist/invariants/emitter-globals-subset.test.d.ts.map +1 -0
- package/dist/invariants/emitter-globals-subset.test.js +137 -0
- package/dist/invariants/emitter-globals-subset.test.js.map +1 -0
- package/dist/invariants/numeric-proof-contract.test.d.ts +19 -0
- package/dist/invariants/numeric-proof-contract.test.d.ts.map +1 -0
- package/dist/invariants/numeric-proof-contract.test.js +565 -0
- package/dist/invariants/numeric-proof-contract.test.js.map +1 -0
- package/dist/specialization/generic-functions.test.js +376 -0
- package/dist/specialization/generic-functions.test.js.map +1 -1
- package/dist/specialization/interfaces.test.js +6 -6
- package/dist/specialization/interfaces.test.js.map +1 -1
- package/dist/specialization/substitution.d.ts.map +1 -1
- package/dist/specialization/substitution.js +7 -0
- package/dist/specialization/substitution.js.map +1 -1
- package/dist/specialization/type-aliases.test.js +88 -5
- package/dist/specialization/type-aliases.test.js.map +1 -1
- package/dist/statement-emitter.d.ts.map +1 -1
- package/dist/statement-emitter.js +5 -1
- package/dist/statement-emitter.js.map +1 -1
- package/dist/statements/blocks.d.ts +39 -1
- package/dist/statements/blocks.d.ts.map +1 -1
- package/dist/statements/blocks.js +129 -3
- package/dist/statements/blocks.js.map +1 -1
- package/dist/statements/classes/members/methods.d.ts.map +1 -1
- package/dist/statements/classes/members/methods.js +16 -5
- package/dist/statements/classes/members/methods.js.map +1 -1
- package/dist/statements/classes/members/properties.d.ts.map +1 -1
- package/dist/statements/classes/members/properties.js +10 -1
- package/dist/statements/classes/members/properties.js.map +1 -1
- package/dist/statements/classes/properties.d.ts.map +1 -1
- package/dist/statements/classes/properties.js +4 -0
- package/dist/statements/classes/properties.js.map +1 -1
- package/dist/statements/control/conditionals.d.ts.map +1 -1
- package/dist/statements/control/conditionals.js +352 -1
- package/dist/statements/control/conditionals.js.map +1 -1
- package/dist/statements/control/loops.d.ts +6 -0
- package/dist/statements/control/loops.d.ts.map +1 -1
- package/dist/statements/control/loops.js +9 -2
- package/dist/statements/control/loops.js.map +1 -1
- package/dist/statements/declarations/classes.d.ts.map +1 -1
- package/dist/statements/declarations/classes.js +20 -6
- package/dist/statements/declarations/classes.js.map +1 -1
- package/dist/statements/declarations/functions.d.ts.map +1 -1
- package/dist/statements/declarations/functions.js +98 -26
- package/dist/statements/declarations/functions.js.map +1 -1
- package/dist/statements/declarations/interfaces.d.ts.map +1 -1
- package/dist/statements/declarations/interfaces.js +11 -1
- package/dist/statements/declarations/interfaces.js.map +1 -1
- package/dist/statements/declarations/structs.test.js +7 -5
- package/dist/statements/declarations/structs.test.js.map +1 -1
- package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
- package/dist/statements/declarations/type-aliases.js +18 -9
- package/dist/statements/declarations/type-aliases.js.map +1 -1
- package/dist/statements/declarations/variables.d.ts.map +1 -1
- package/dist/statements/declarations/variables.js +54 -2
- package/dist/statements/declarations/variables.js.map +1 -1
- package/dist/statements/index.test.js +164 -3
- package/dist/statements/index.test.js.map +1 -1
- package/dist/types/arrays.d.ts +10 -1
- package/dist/types/arrays.d.ts.map +1 -1
- package/dist/types/arrays.js +16 -1
- package/dist/types/arrays.js.map +1 -1
- package/dist/types/dictionaries.d.ts +3 -2
- package/dist/types/dictionaries.d.ts.map +1 -1
- package/dist/types/dictionaries.js +14 -8
- package/dist/types/dictionaries.js.map +1 -1
- package/dist/types/emitter.d.ts.map +1 -1
- package/dist/types/emitter.js +3 -0
- package/dist/types/emitter.js.map +1 -1
- package/dist/types/index.test.js +5 -2
- package/dist/types/index.test.js.map +1 -1
- package/dist/types/parameters.d.ts.map +1 -1
- package/dist/types/parameters.js +29 -0
- package/dist/types/parameters.js.map +1 -1
- package/dist/types/primitives.d.ts +12 -1
- package/dist/types/primitives.d.ts.map +1 -1
- package/dist/types/primitives.js +14 -1
- package/dist/types/primitives.js.map +1 -1
- package/dist/types/references.d.ts.map +1 -1
- package/dist/types/references.js +136 -30
- package/dist/types/references.js.map +1 -1
- package/dist/types/references.test.d.ts +11 -0
- package/dist/types/references.test.d.ts.map +1 -0
- package/dist/types/references.test.js +382 -0
- package/dist/types/references.test.js.map +1 -0
- package/dist/types/tuples.d.ts +23 -0
- package/dist/types/tuples.d.ts.map +1 -0
- package/dist/types/tuples.js +54 -0
- package/dist/types/tuples.js.map +1 -0
- package/dist/types/unions.test.js +62 -15
- package/dist/types/unions.test.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-emitter.test.js","sourceRoot":"","sources":["../../src/core/module-emitter.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAa;YACvB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,MAAM;YACjB,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,EAAE;YACX,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,eAAe,EAAE,OAAO;oBACxB,YAAY,EAAE;wBACZ;4BACE,IAAI,EAAE,oBAAoB;4BAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE;4BAC/C,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;yBACjD;qBACF;oBACD,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE;wBACV;4BACE,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,EAAE;4BACjD,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC/C,UAAU,EAAE,KAAK;4BACjB,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE,OAAO;yBACjB;wBACD;4BACE,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,GAAG,EAAE;4BACjD,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC/C,UAAU,EAAE,KAAK;4BACjB,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE,OAAO;yBACjB;qBACF;oBACD,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACrD,IAAI,EAAE;wBACJ,IAAI,EAAE,gBAAgB;wBACtB,UAAU,EAAE;4BACV;gCACE,IAAI,EAAE,iBAAiB;gCACvB,UAAU,EAAE;oCACV,IAAI,EAAE,QAAQ;oCACd,QAAQ,EAAE,GAAG;oCACb,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE;oCACvC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE;iCACzC;6BACF;yBACF;qBACF;oBACD,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,KAAK;iBACnB;aACF;YACD,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"module-emitter.test.js","sourceRoot":"","sources":["../../src/core/module-emitter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-map.d.ts","sourceRoot":"","sources":["../../src/core/module-map.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,SAAS,EACV,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MAsBvD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,SAAS,SAAS,QAAQ,EAAE,KAC3B,eA+DF,CAAC;AAqDF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,iBAAiB,MAAM,EACvB,cAAc,MAAM,KACnB,
|
|
1
|
+
{"version":3,"file":"module-map.d.ts","sourceRoot":"","sources":["../../src/core/module-map.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,SAAS,EACV,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MAsBvD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,SAAS,SAAS,QAAQ,EAAE,KAC3B,eA+DF,CAAC;AAqDF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,iBAAiB,MAAM,EACvB,cAAc,MAAM,KACnB,MA8CF,CAAC"}
|
package/dist/core/module-map.js
CHANGED
|
@@ -139,10 +139,14 @@ export const resolveImportPath = (currentFilePath, importSource) => {
|
|
|
139
139
|
const currentDir = lastSlash >= 0 ? currentCanonical.slice(0, lastSlash) : "";
|
|
140
140
|
// Normalize import source
|
|
141
141
|
let source = importSource.replace(/\\/g, "/");
|
|
142
|
-
// Remove .ts extension if present
|
|
142
|
+
// Remove .ts or .js extension if present
|
|
143
|
+
// ESM imports use .js extension for TypeScript files
|
|
143
144
|
if (source.endsWith(".ts")) {
|
|
144
145
|
source = source.slice(0, -3);
|
|
145
146
|
}
|
|
147
|
+
else if (source.endsWith(".js")) {
|
|
148
|
+
source = source.slice(0, -3);
|
|
149
|
+
}
|
|
146
150
|
// Resolve relative path
|
|
147
151
|
let resolvedPath;
|
|
148
152
|
if (source.startsWith("./")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-map.js","sourceRoot":"","sources":["../../src/core/module-map.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"module-map.js","sourceRoot":"","sources":["../../src/core/module-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-map.test.d.ts","sourceRoot":"","sources":["../../src/core/module-map.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module Map Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests for module path canonicalization and import path resolution.
|
|
5
|
+
* These tests guard against regressions in ESM import handling.
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it } from "mocha";
|
|
8
|
+
import { expect } from "chai";
|
|
9
|
+
import { canonicalizeFilePath, resolveImportPath } from "./module-map.js";
|
|
10
|
+
describe("Module Map", () => {
|
|
11
|
+
describe("canonicalizeFilePath", () => {
|
|
12
|
+
it("should remove .ts extension", () => {
|
|
13
|
+
expect(canonicalizeFilePath("src/utils/Math.ts")).to.equal("src/utils/Math");
|
|
14
|
+
});
|
|
15
|
+
it("should normalize backslashes to forward slashes", () => {
|
|
16
|
+
expect(canonicalizeFilePath("src\\utils\\Math.ts")).to.equal("src/utils/Math");
|
|
17
|
+
});
|
|
18
|
+
it("should resolve . segments", () => {
|
|
19
|
+
expect(canonicalizeFilePath("src/./utils/Math.ts")).to.equal("src/utils/Math");
|
|
20
|
+
});
|
|
21
|
+
it("should resolve .. segments", () => {
|
|
22
|
+
expect(canonicalizeFilePath("src/utils/../models/User.ts")).to.equal("src/models/User");
|
|
23
|
+
});
|
|
24
|
+
it("should handle multiple .. segments", () => {
|
|
25
|
+
expect(canonicalizeFilePath("src/a/b/../../c/D.ts")).to.equal("src/c/D");
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe("resolveImportPath", () => {
|
|
29
|
+
describe("extension handling", () => {
|
|
30
|
+
it("should strip .ts extension from import source", () => {
|
|
31
|
+
const result = resolveImportPath("src/index.ts", "./utils/Math.ts");
|
|
32
|
+
expect(result).to.equal("src/utils/Math");
|
|
33
|
+
});
|
|
34
|
+
it("should strip .js extension from import source (ESM style)", () => {
|
|
35
|
+
// REGRESSION TEST: ESM imports use .js extension for TypeScript files
|
|
36
|
+
// This was the root cause of 7 E2E test failures (multi-file, namespace-imports, etc.)
|
|
37
|
+
const result = resolveImportPath("src/index.ts", "./utils/Math.js");
|
|
38
|
+
expect(result).to.equal("src/utils/Math");
|
|
39
|
+
});
|
|
40
|
+
it("should handle import without extension", () => {
|
|
41
|
+
const result = resolveImportPath("src/index.ts", "./utils/Math");
|
|
42
|
+
expect(result).to.equal("src/utils/Math");
|
|
43
|
+
});
|
|
44
|
+
it(".js and .ts imports should resolve to same canonical path", () => {
|
|
45
|
+
// Critical: Both ESM (.js) and explicit (.ts) imports must resolve identically
|
|
46
|
+
const fromJs = resolveImportPath("src/index.ts", "./utils/Math.js");
|
|
47
|
+
const fromTs = resolveImportPath("src/index.ts", "./utils/Math.ts");
|
|
48
|
+
const fromBare = resolveImportPath("src/index.ts", "./utils/Math");
|
|
49
|
+
expect(fromJs).to.equal(fromTs);
|
|
50
|
+
expect(fromTs).to.equal(fromBare);
|
|
51
|
+
expect(fromJs).to.equal("src/utils/Math");
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe("relative path resolution", () => {
|
|
55
|
+
it("should resolve ./ imports (same directory)", () => {
|
|
56
|
+
const result = resolveImportPath("src/services/api.ts", "./auth.js");
|
|
57
|
+
expect(result).to.equal("src/services/auth");
|
|
58
|
+
});
|
|
59
|
+
it("should resolve ../ imports (parent directory)", () => {
|
|
60
|
+
const result = resolveImportPath("src/services/api.ts", "../models/User.js");
|
|
61
|
+
expect(result).to.equal("src/models/User");
|
|
62
|
+
});
|
|
63
|
+
it("should resolve multiple ../ segments", () => {
|
|
64
|
+
const result = resolveImportPath("src/a/b/c/deep.ts", "../../utils/helper.js");
|
|
65
|
+
expect(result).to.equal("src/a/utils/helper");
|
|
66
|
+
});
|
|
67
|
+
it("should handle bare imports (no ./ prefix) as same directory", () => {
|
|
68
|
+
const result = resolveImportPath("src/index.ts", "utils/Math.js");
|
|
69
|
+
expect(result).to.equal("src/utils/Math");
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe("real-world E2E test cases", () => {
|
|
73
|
+
// These mirror the actual imports from failing E2E tests
|
|
74
|
+
it("multi-file: ./utils/Math.js from src/index.ts", () => {
|
|
75
|
+
const result = resolveImportPath("src/index.ts", "./utils/Math.js");
|
|
76
|
+
expect(result).to.equal("src/utils/Math");
|
|
77
|
+
});
|
|
78
|
+
it("namespace-imports: ./utils/math.js from src/index.ts", () => {
|
|
79
|
+
const result = resolveImportPath("src/index.ts", "./utils/math.js");
|
|
80
|
+
expect(result).to.equal("src/utils/math");
|
|
81
|
+
});
|
|
82
|
+
it("barrel-reexports: ./User.js from src/models/index.ts", () => {
|
|
83
|
+
const result = resolveImportPath("src/models/index.ts", "./User.js");
|
|
84
|
+
expect(result).to.equal("src/models/User");
|
|
85
|
+
});
|
|
86
|
+
it("multi-file-imports: ../utils/index.js from src/index.ts", () => {
|
|
87
|
+
// Note: This tests parent directory + index file
|
|
88
|
+
const result = resolveImportPath("src/app/index.ts", "../utils/index.js");
|
|
89
|
+
expect(result).to.equal("src/utils/index");
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=module-map.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-map.test.js","sourceRoot":"","sources":["../../src/core/module-map.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACxD,gBAAgB,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC1D,gBAAgB,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC1D,gBAAgB,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,oBAAoB,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAClE,iBAAiB,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;gBACnE,sEAAsE;gBACtE,uFAAuF;gBACvF,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;gBAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;gBACjE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;gBACnE,+EAA+E;gBAC/E,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;gBAEnE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;gBACpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;gBACrE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACvD,MAAM,MAAM,GAAG,iBAAiB,CAC9B,qBAAqB,EACrB,mBAAmB,CACpB,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;gBAC9C,MAAM,MAAM,GAAG,iBAAiB,CAC9B,mBAAmB,EACnB,uBAAuB,CACxB,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;gBACrE,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;gBAClE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACzC,yDAAyD;YAEzD,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;gBAC9D,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;gBAC9D,MAAM,MAAM,GAAG,iBAAiB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;gBACrE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;gBACjE,iDAAiD;gBACjD,MAAM,MAAM,GAAG,iBAAiB,CAC9B,kBAAkB,EAClB,mBAAmB,CACpB,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type compatibility helpers for integer type emission
|
|
3
|
+
*
|
|
4
|
+
* Provides:
|
|
5
|
+
* - isAssignable: Check if a source type is assignable to a target type
|
|
6
|
+
* - isIntegerType: Check if a type represents an integer
|
|
7
|
+
*
|
|
8
|
+
* INVARIANT A: "number" always means C# "double". No exceptions.
|
|
9
|
+
* INVARIANT B: "int" always means C# "int". No exceptions.
|
|
10
|
+
*
|
|
11
|
+
* These are distinct primitive types in the IR, not decorated versions of each other.
|
|
12
|
+
*/
|
|
13
|
+
import type { IrType } from "@tsonic/frontend";
|
|
14
|
+
/**
|
|
15
|
+
* Check if an IR type represents an integer type
|
|
16
|
+
*
|
|
17
|
+
* INVARIANT: `int` is a distinct primitive type, NOT `number` with numericIntent.
|
|
18
|
+
*/
|
|
19
|
+
export declare const isIntegerType: (type: IrType | undefined) => boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Check if a source type is assignable to a target type without requiring a cast.
|
|
22
|
+
*
|
|
23
|
+
* This implements Alice's invariant: "No cosmetic casts" - we only emit casts
|
|
24
|
+
* when the types are genuinely incompatible, not when they happen to match.
|
|
25
|
+
*
|
|
26
|
+
* @param fromType - The source type (what we have)
|
|
27
|
+
* @param toType - The target type (what we need)
|
|
28
|
+
* @returns true if fromType can be assigned to toType without a cast
|
|
29
|
+
*/
|
|
30
|
+
export declare const isAssignable: (fromType: IrType | undefined, toType: IrType | undefined) => boolean;
|
|
31
|
+
//# sourceMappingURL=type-compatibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-compatibility.d.ts","sourceRoot":"","sources":["../../src/core/type-compatibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAiC/C;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,GAAG,SAAS,KAAG,OAcxD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,GAAG,SAAS,EAC5B,QAAQ,MAAM,GAAG,SAAS,KACzB,OAgCF,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type compatibility helpers for integer type emission
|
|
3
|
+
*
|
|
4
|
+
* Provides:
|
|
5
|
+
* - isAssignable: Check if a source type is assignable to a target type
|
|
6
|
+
* - isIntegerType: Check if a type represents an integer
|
|
7
|
+
*
|
|
8
|
+
* INVARIANT A: "number" always means C# "double". No exceptions.
|
|
9
|
+
* INVARIANT B: "int" always means C# "int". No exceptions.
|
|
10
|
+
*
|
|
11
|
+
* These are distinct primitive types in the IR, not decorated versions of each other.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Integer type names that map to C# integer types
|
|
15
|
+
* Includes both primitiveType names and referenceType names from .NET interop
|
|
16
|
+
*/
|
|
17
|
+
const INTEGER_TYPE_NAMES = new Set([
|
|
18
|
+
"int",
|
|
19
|
+
"Int32",
|
|
20
|
+
"System.Int32",
|
|
21
|
+
"long",
|
|
22
|
+
"Int64",
|
|
23
|
+
"System.Int64",
|
|
24
|
+
"short",
|
|
25
|
+
"Int16",
|
|
26
|
+
"System.Int16",
|
|
27
|
+
"byte",
|
|
28
|
+
"Byte",
|
|
29
|
+
"System.Byte",
|
|
30
|
+
"sbyte",
|
|
31
|
+
"SByte",
|
|
32
|
+
"System.SByte",
|
|
33
|
+
"uint",
|
|
34
|
+
"UInt32",
|
|
35
|
+
"System.UInt32",
|
|
36
|
+
"ulong",
|
|
37
|
+
"UInt64",
|
|
38
|
+
"System.UInt64",
|
|
39
|
+
"ushort",
|
|
40
|
+
"UInt16",
|
|
41
|
+
"System.UInt16",
|
|
42
|
+
]);
|
|
43
|
+
/**
|
|
44
|
+
* Check if an IR type represents an integer type
|
|
45
|
+
*
|
|
46
|
+
* INVARIANT: `int` is a distinct primitive type, NOT `number` with numericIntent.
|
|
47
|
+
*/
|
|
48
|
+
export const isIntegerType = (type) => {
|
|
49
|
+
if (!type)
|
|
50
|
+
return false;
|
|
51
|
+
// primitiveType(name="int") - distinct integer primitive
|
|
52
|
+
if (type.kind === "primitiveType" && type.name === "int") {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
// Reference type with integer name (e.g., "Int32" from .NET interop)
|
|
56
|
+
if (type.kind === "referenceType") {
|
|
57
|
+
return INTEGER_TYPE_NAMES.has(type.name);
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Check if a source type is assignable to a target type without requiring a cast.
|
|
63
|
+
*
|
|
64
|
+
* This implements Alice's invariant: "No cosmetic casts" - we only emit casts
|
|
65
|
+
* when the types are genuinely incompatible, not when they happen to match.
|
|
66
|
+
*
|
|
67
|
+
* @param fromType - The source type (what we have)
|
|
68
|
+
* @param toType - The target type (what we need)
|
|
69
|
+
* @returns true if fromType can be assigned to toType without a cast
|
|
70
|
+
*/
|
|
71
|
+
export const isAssignable = (fromType, toType) => {
|
|
72
|
+
if (!fromType || !toType)
|
|
73
|
+
return false;
|
|
74
|
+
// Exact kind and name match
|
|
75
|
+
if (fromType.kind === toType.kind) {
|
|
76
|
+
if (fromType.kind === "primitiveType" && toType.kind === "primitiveType") {
|
|
77
|
+
return fromType.name === toType.name;
|
|
78
|
+
}
|
|
79
|
+
if (fromType.kind === "referenceType" && toType.kind === "referenceType") {
|
|
80
|
+
// Exact name match
|
|
81
|
+
if (fromType.name === toType.name) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
// Check resolved CLR type match
|
|
85
|
+
if (fromType.resolvedClrType &&
|
|
86
|
+
fromType.resolvedClrType === toType.resolvedClrType) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// int → number (widening is allowed)
|
|
92
|
+
if (isIntegerType(fromType) && toType.kind === "primitiveType") {
|
|
93
|
+
if (toType.name === "number") {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=type-compatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-compatibility.js","sourceRoot":"","sources":["../../src/core/type-compatibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;GAGG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,KAAK;IACL,OAAO;IACP,cAAc;IACd,MAAM;IACN,OAAO;IACP,cAAc;IACd,OAAO;IACP,OAAO;IACP,cAAc;IACd,MAAM;IACN,MAAM;IACN,aAAa;IACb,OAAO;IACP,OAAO;IACP,cAAc;IACd,MAAM;IACN,QAAQ;IACR,eAAe;IACf,OAAO;IACP,QAAQ;IACR,eAAe;IACf,QAAQ;IACR,QAAQ;IACR,eAAe;CAChB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAW,EAAE;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,yDAAyD;IACzD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,QAA4B,EAC5B,MAA0B,EACjB,EAAE;IACX,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEvC,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzE,OAAO,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;QACvC,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzE,mBAAmB;YACnB,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,gCAAgC;YAChC,IACE,QAAQ,CAAC,eAAe;gBACxB,QAAQ,CAAC,eAAe,KAAK,MAAM,CAAC,eAAe,EACnD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAC/D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -5,15 +5,17 @@
|
|
|
5
5
|
* - containsTypeParameter: Check if type contains any type parameter
|
|
6
6
|
* - substituteTypeArgs: Substitute type arguments into a type
|
|
7
7
|
* - getPropertyType: Look up property type from contextual type
|
|
8
|
+
* - stripNullish: Remove null/undefined from union types
|
|
9
|
+
* - isDefinitelyValueType: Check if type is a C# value type
|
|
8
10
|
*/
|
|
9
|
-
import type { IrType } from "@tsonic/frontend";
|
|
11
|
+
import type { IrType, IrPropertySignature } from "@tsonic/frontend";
|
|
10
12
|
import type { EmitterContext } from "../types.js";
|
|
11
13
|
/**
|
|
12
14
|
* Check if a type contains any type parameter.
|
|
13
15
|
*
|
|
14
16
|
* Uses both:
|
|
15
|
-
* 1.
|
|
16
|
-
* 2.
|
|
17
|
+
* 1. IR kind "typeParameterType" (explicit type parameter node)
|
|
18
|
+
* 2. Name matching via typeParams set (for referenceType nodes)
|
|
17
19
|
*
|
|
18
20
|
* @param type - The IR type to check
|
|
19
21
|
* @param typeParams - Set of type parameter names in current scope
|
|
@@ -44,4 +46,82 @@ export declare const substituteTypeArgs: (type: IrType, typeParamNames: readonly
|
|
|
44
46
|
* @returns The property type after substitution, or undefined if not found
|
|
45
47
|
*/
|
|
46
48
|
export declare const getPropertyType: (contextualType: IrType | undefined, propertyName: string, context: EmitterContext) => IrType | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Get all property signatures for a type, including inherited interface members.
|
|
51
|
+
*
|
|
52
|
+
* Notes:
|
|
53
|
+
* - Only supports referenceType → local interface lookup (synthetic union members are always interfaces).
|
|
54
|
+
* - Derived members override base members by name.
|
|
55
|
+
* - Cycle-safe via visitedTypes.
|
|
56
|
+
*/
|
|
57
|
+
export declare const getAllPropertySignatures: (type: IrType, context: EmitterContext) => readonly IrPropertySignature[] | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Select the best union member type to instantiate for an object literal.
|
|
60
|
+
*
|
|
61
|
+
* Example:
|
|
62
|
+
* type Result<T,E> = Result__0<T,E> | Result__1<T,E>
|
|
63
|
+
* return { ok: true, value } // keys: ["ok","value"]
|
|
64
|
+
* → choose Result__0<T,E>
|
|
65
|
+
*
|
|
66
|
+
* Matching rules (conservative):
|
|
67
|
+
* - Only considers union members that are referenceTypes to local interfaces.
|
|
68
|
+
* - Object literal keys must be a subset of the candidate's property names.
|
|
69
|
+
* - All *required* (non-optional) candidate properties must be present in the literal.
|
|
70
|
+
*
|
|
71
|
+
* Scoring (pick "most specific" deterministically):
|
|
72
|
+
* 1) Fewer extra properties (candidateProps - literalKeys)
|
|
73
|
+
* 2) More required properties (prefer tighter required shape)
|
|
74
|
+
* 3) Fewer total properties
|
|
75
|
+
* 4) Lexicographic by type name (stable tie-break)
|
|
76
|
+
*/
|
|
77
|
+
export declare const selectUnionMemberForObjectLiteral: (unionType: Extract<IrType, {
|
|
78
|
+
kind: "unionType";
|
|
79
|
+
}>, literalKeys: readonly string[], context: EmitterContext) => Extract<IrType, {
|
|
80
|
+
kind: "referenceType";
|
|
81
|
+
}> | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Strip null and undefined from a union type.
|
|
84
|
+
*
|
|
85
|
+
* Used when we need the non-nullable base type, e.g., for object instantiation
|
|
86
|
+
* where `new T? { ... }` is invalid C# but `new T { ... }` is valid.
|
|
87
|
+
*
|
|
88
|
+
* @param type - The type to strip nullish from
|
|
89
|
+
* @returns The non-nullish base type, or the original type if not a nullable union
|
|
90
|
+
*/
|
|
91
|
+
export declare const stripNullish: (type: IrType) => IrType;
|
|
92
|
+
/**
|
|
93
|
+
* Check if a type is definitely a C# value type.
|
|
94
|
+
*
|
|
95
|
+
* Value types require `default` instead of `null` in object initializers
|
|
96
|
+
* because `null` cannot be assigned to non-nullable value types.
|
|
97
|
+
*
|
|
98
|
+
* @param type - The type to check (should be non-nullish, use stripNullish first)
|
|
99
|
+
* @returns true if the type is a known value type
|
|
100
|
+
*/
|
|
101
|
+
export declare const isDefinitelyValueType: (type: IrType) => boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Resolve a type alias to its underlying type.
|
|
104
|
+
*
|
|
105
|
+
* If the type is a reference type that points to a type alias,
|
|
106
|
+
* returns the underlying type with type arguments substituted.
|
|
107
|
+
*
|
|
108
|
+
* @param type - The type to resolve
|
|
109
|
+
* @param context - Emitter context with localTypes map
|
|
110
|
+
* @returns The resolved underlying type, or the original type if not an alias
|
|
111
|
+
*/
|
|
112
|
+
export declare const resolveTypeAlias: (type: IrType, context: EmitterContext) => IrType;
|
|
113
|
+
/**
|
|
114
|
+
* Find the index of a union member that matches a predicate target type.
|
|
115
|
+
*
|
|
116
|
+
* Used for union narrowing: given `isUser(account)` where account is `Union<User, Admin>`,
|
|
117
|
+
* find which member index (0 or 1) corresponds to User.
|
|
118
|
+
*
|
|
119
|
+
* @param unionType - The union type to search
|
|
120
|
+
* @param target - The predicate target type to find
|
|
121
|
+
* @param context - Emitter context
|
|
122
|
+
* @returns The 0-based index of the matching member, or undefined if not found
|
|
123
|
+
*/
|
|
124
|
+
export declare const findUnionMemberIndex: (unionType: Extract<IrType, {
|
|
125
|
+
kind: "unionType";
|
|
126
|
+
}>, target: IrType, context: EmitterContext) => number | undefined;
|
|
47
127
|
//# sourceMappingURL=type-resolution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-resolution.d.ts","sourceRoot":"","sources":["../../src/core/type-resolution.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"type-resolution.d.ts","sourceRoot":"","sources":["../../src/core/type-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,MAAM,EAGN,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,YAAY,WAAW,CAAC,MAAM,CAAC,KAC9B,OA4EF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,gBAAgB,SAAS,MAAM,EAAE,EACjC,UAAU,SAAS,MAAM,EAAE,KAC1B,MAYF,CAAC;AA+GF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,GAC1B,gBAAgB,MAAM,GAAG,SAAS,EAClC,cAAc,MAAM,EACpB,SAAS,cAAc,KACtB,MAAM,GAAG,SAWX,CAAC;AAsHF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,EACZ,SAAS,cAAc,KACtB,SAAS,mBAAmB,EAAE,GAAG,SAcnC,CAAC;AA6CF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iCAAiC,GAC5C,WAAW,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,EACjD,aAAa,SAAS,MAAM,EAAE,EAC9B,SAAS,cAAc,KACtB,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,GAAG,SA2E/C,CAAC;AAiBF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAkB3C,CAAC;AAoBF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,OAkBpD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,SAAS,cAAc,KACtB,MAoBF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,EACjD,QAAQ,MAAM,EACd,SAAS,cAAc,KACtB,MAAM,GAAG,SAcX,CAAC"}
|