@tsonic/frontend 0.0.4 → 0.0.5
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/ir/builder/exports.d.ts.map +1 -1
- package/dist/ir/builder/exports.js +8 -6
- package/dist/ir/builder/exports.js.map +1 -1
- package/dist/ir/builder/imports.d.ts.map +1 -1
- package/dist/ir/builder/imports.js +6 -1
- package/dist/ir/builder/imports.js.map +1 -1
- package/dist/ir/builder/statements.d.ts +7 -1
- package/dist/ir/builder/statements.d.ts.map +1 -1
- package/dist/ir/builder/statements.js +18 -5
- package/dist/ir/builder/statements.js.map +1 -1
- package/dist/ir/builder.test.js +10 -5
- package/dist/ir/builder.test.js.map +1 -1
- package/dist/ir/converters/anonymous-synthesis.d.ts +76 -0
- package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -0
- package/dist/ir/converters/anonymous-synthesis.js +307 -0
- package/dist/ir/converters/anonymous-synthesis.js.map +1 -0
- package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
- package/dist/ir/converters/expressions/calls.js +47 -0
- package/dist/ir/converters/expressions/calls.js.map +1 -1
- package/dist/ir/converters/expressions/collections.d.ts +3 -0
- package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
- package/dist/ir/converters/expressions/collections.js +39 -1
- package/dist/ir/converters/expressions/collections.js.map +1 -1
- package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
- package/dist/ir/converters/expressions/functions.js +49 -4
- package/dist/ir/converters/expressions/functions.js.map +1 -1
- package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
- package/dist/ir/converters/statements/control/conditionals.js +4 -6
- package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
- package/dist/ir/converters/statements/control/loops.js +5 -5
- package/dist/ir/converters/statements/control/loops.js.map +1 -1
- package/dist/ir/converters/statements/declarations/interfaces.d.ts +4 -3
- package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/interfaces.js +55 -1
- package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
- package/dist/ir/converters/statements/declarations/type-aliases.d.ts +8 -3
- package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
- package/dist/ir/converters/statements/declarations/type-aliases.js +12 -2
- package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
- package/dist/ir/converters/synthetic-types.d.ts +38 -0
- package/dist/ir/converters/synthetic-types.d.ts.map +1 -0
- package/dist/ir/converters/synthetic-types.js +123 -0
- package/dist/ir/converters/synthetic-types.js.map +1 -0
- package/dist/ir/statement-converter.d.ts +16 -1
- package/dist/ir/statement-converter.d.ts.map +1 -1
- package/dist/ir/statement-converter.js +32 -0
- package/dist/ir/statement-converter.js.map +1 -1
- package/dist/ir/type-converter/index.d.ts +1 -1
- package/dist/ir/type-converter/index.d.ts.map +1 -1
- package/dist/ir/type-converter/index.js +1 -1
- package/dist/ir/type-converter/index.js.map +1 -1
- package/dist/ir/type-converter/inference.d.ts +12 -0
- package/dist/ir/type-converter/inference.d.ts.map +1 -1
- package/dist/ir/type-converter/inference.js +141 -3
- package/dist/ir/type-converter/inference.js.map +1 -1
- package/dist/ir/type-converter/orchestrator.d.ts +2 -2
- package/dist/ir/type-converter/orchestrator.d.ts.map +1 -1
- package/dist/ir/type-converter/orchestrator.js +37 -0
- package/dist/ir/type-converter/orchestrator.js.map +1 -1
- package/dist/ir/type-converter.d.ts +1 -1
- package/dist/ir/type-converter.d.ts.map +1 -1
- package/dist/ir/type-converter.js +1 -1
- package/dist/ir/type-converter.js.map +1 -1
- package/dist/ir/types/expressions.d.ts +8 -0
- package/dist/ir/types/expressions.d.ts.map +1 -1
- package/dist/ir/types/index.d.ts +1 -1
- package/dist/ir/types/index.d.ts.map +1 -1
- package/dist/ir/types/index.js.map +1 -1
- package/dist/ir/types/ir-types.d.ts +14 -1
- package/dist/ir/types/ir-types.d.ts.map +1 -1
- package/dist/ir/types.d.ts +1 -1
- package/dist/ir/types.d.ts.map +1 -1
- package/dist/ir/types.js.map +1 -1
- package/dist/resolver/clr-bindings-resolver.d.ts +9 -0
- package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
- package/dist/resolver/clr-bindings-resolver.js +52 -3
- package/dist/resolver/clr-bindings-resolver.js.map +1 -1
- package/dist/types/diagnostic.d.ts +1 -1
- package/dist/types/diagnostic.d.ts.map +1 -1
- package/dist/types/diagnostic.js.map +1 -1
- package/dist/validation/static-safety.d.ts +6 -1
- package/dist/validation/static-safety.d.ts.map +1 -1
- package/dist/validation/static-safety.js +144 -36
- package/dist/validation/static-safety.js.map +1 -1
- package/dist/validation/unsupported-utility-types.d.ts +38 -0
- package/dist/validation/unsupported-utility-types.d.ts.map +1 -0
- package/dist/validation/unsupported-utility-types.js +53 -0
- package/dist/validation/unsupported-utility-types.js.map +1 -0
- package/dist/validator.test.js +304 -14
- package/dist/validator.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/ir/types/expressions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,yBAAyB,GACzB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,uBAAuB,GACvB,sBAAsB,GACtB,2BAA2B,GAC3B,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,GAAG,kBAAkB,GAAG,SAAS,CAAC,EAAE,CAAC;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,wFAAwF;IACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/ir/types/expressions.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/types/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
export type { IrModule, IrImport, IrImportSpecifier, IrExport, } from "./module.js";
|
|
6
6
|
export type { IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, } from "./statements.js";
|
|
7
7
|
export type { IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, } from "./expressions.js";
|
|
8
|
-
export type { IrType, IrPrimitiveType, IrReferenceType, IrTypeParameterType, IrArrayType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, } from "./ir-types.js";
|
|
8
|
+
export type { IrType, IrPrimitiveType, IrReferenceType, IrTypeParameterType, IrArrayType, IrTupleType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, } from "./ir-types.js";
|
|
9
9
|
export type { IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./helpers.js";
|
|
10
10
|
export { isStatement, isExpression } from "./guards.js";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,GACT,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EACN,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,GACT,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EACN,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyGH,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Type system types for IR (IrType and its variants)
|
|
3
3
|
*/
|
|
4
4
|
import { IrParameter, IrInterfaceMember } from "./helpers.js";
|
|
5
|
-
export type IrType = IrPrimitiveType | IrReferenceType | IrTypeParameterType | IrArrayType | IrFunctionType | IrObjectType | IrDictionaryType | IrUnionType | IrIntersectionType | IrLiteralType | IrAnyType | IrUnknownType | IrVoidType | IrNeverType;
|
|
5
|
+
export type IrType = IrPrimitiveType | IrReferenceType | IrTypeParameterType | IrArrayType | IrTupleType | IrFunctionType | IrObjectType | IrDictionaryType | IrUnionType | IrIntersectionType | IrLiteralType | IrAnyType | IrUnknownType | IrVoidType | IrNeverType;
|
|
6
6
|
export type IrPrimitiveType = {
|
|
7
7
|
readonly kind: "primitiveType";
|
|
8
8
|
readonly name: "string" | "number" | "boolean" | "null" | "undefined";
|
|
@@ -28,6 +28,19 @@ export type IrArrayType = {
|
|
|
28
28
|
readonly kind: "arrayType";
|
|
29
29
|
readonly elementType: IrType;
|
|
30
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* Tuple type for fixed-length arrays with heterogeneous element types
|
|
33
|
+
*
|
|
34
|
+
* Examples:
|
|
35
|
+
* - `[string, number]` → IrTupleType { elementTypes: [string, number] }
|
|
36
|
+
* - `[boolean, string, number]` → IrTupleType { elementTypes: [boolean, string, number] }
|
|
37
|
+
*
|
|
38
|
+
* Emits to C# ValueTuple<T1, T2, ...>.
|
|
39
|
+
*/
|
|
40
|
+
export type IrTupleType = {
|
|
41
|
+
readonly kind: "tupleType";
|
|
42
|
+
readonly elementTypes: readonly IrType[];
|
|
43
|
+
};
|
|
31
44
|
export type IrFunctionType = {
|
|
32
45
|
readonly kind: "functionType";
|
|
33
46
|
readonly parameters: readonly IrParameter[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir-types.d.ts","sourceRoot":"","sources":["../../../src/ir/types/ir-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,MAAM,GACd,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,WAAW,GACX,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,SAAS,GACT,aAAa,GACb,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"ir-types.d.ts","sourceRoot":"","sources":["../../../src/ir/types/ir-types.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/types.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Intermediate Representation (IR) types for Tsonic compiler
|
|
3
3
|
* Main dispatcher - re-exports from specialized modules
|
|
4
4
|
*/
|
|
5
|
-
export type { IrModule, IrImport, IrImportSpecifier, IrExport, IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, IrType, IrPrimitiveType, IrReferenceType, IrArrayType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./types/index.js";
|
|
5
|
+
export type { IrModule, IrImport, IrImportSpecifier, IrExport, IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, IrType, IrPrimitiveType, IrReferenceType, IrArrayType, IrTupleType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, IrPattern, IrIdentifierPattern, IrArrayPattern, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./types/index.js";
|
|
6
6
|
export { isStatement, isExpression } from "./types/guards.js";
|
|
7
7
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/ir/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAEV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EAER,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAEhB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAEjB,MAAM,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EAEX,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAEV,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EAER,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAEhB,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAEjB,MAAM,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EAEX,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/ir/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ir/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6FH,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -17,6 +17,7 @@ export type ResolvedClrImport = {
|
|
|
17
17
|
readonly resolvedNamespace: string;
|
|
18
18
|
readonly bindingsPath: string;
|
|
19
19
|
readonly metadataPath: string | undefined;
|
|
20
|
+
readonly assembly: string | undefined;
|
|
20
21
|
} | {
|
|
21
22
|
readonly isClr: false;
|
|
22
23
|
};
|
|
@@ -33,6 +34,7 @@ export declare class ClrBindingsResolver {
|
|
|
33
34
|
private readonly pkgRootCache;
|
|
34
35
|
private readonly bindingsExistsCache;
|
|
35
36
|
private readonly namespaceCache;
|
|
37
|
+
private readonly assemblyCache;
|
|
36
38
|
private readonly require;
|
|
37
39
|
constructor(baseDir: string);
|
|
38
40
|
/**
|
|
@@ -68,6 +70,13 @@ export declare class ClrBindingsResolver {
|
|
|
68
70
|
* which is the authoritative CLR namespace for the binding.
|
|
69
71
|
*/
|
|
70
72
|
private extractNamespace;
|
|
73
|
+
/**
|
|
74
|
+
* Extract the assembly name from a bindings.json file (cached).
|
|
75
|
+
* Looks at the first type's assemblyName field.
|
|
76
|
+
*
|
|
77
|
+
* This provides the assembly name for reference in .csproj files.
|
|
78
|
+
*/
|
|
79
|
+
private extractAssembly;
|
|
71
80
|
/**
|
|
72
81
|
* Check if a file exists (not cached - used for optional files)
|
|
73
82
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clr-bindings-resolver.d.ts","sourceRoot":"","sources":["../../src/resolver/clr-bindings-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"clr-bindings-resolver.d.ts","sourceRoot":"","sources":["../../src/resolver/clr-bindings-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,GACD;IACE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB,CAAC;AAUN;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAGjE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8B;IAGlE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IAGnE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAGlE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;gBAE/C,OAAO,EAAE,MAAM;IAK3B;;OAEG;IACH,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,iBAAiB;IA+DnD;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAwCtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAsCvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,yBAAyB,IAAI,WAAW,CAAC,MAAM,CAAC;CASjD;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,YAAY,MAAM,KACjB,mBAEF,CAAC"}
|
|
@@ -28,6 +28,8 @@ export class ClrBindingsResolver {
|
|
|
28
28
|
this.bindingsExistsCache = new Map();
|
|
29
29
|
// Cache: absolute bindingsPath -> namespace (extracted from bindings.json)
|
|
30
30
|
this.namespaceCache = new Map();
|
|
31
|
+
// Cache: absolute bindingsPath -> assembly (extracted from bindings.json types)
|
|
32
|
+
this.assemblyCache = new Map();
|
|
31
33
|
// Create a require function that resolves relative to baseDir
|
|
32
34
|
this.require = createRequire(join(baseDir, "package.json"));
|
|
33
35
|
}
|
|
@@ -54,23 +56,31 @@ export class ClrBindingsResolver {
|
|
|
54
56
|
if (!pkgRoot) {
|
|
55
57
|
return { isClr: false };
|
|
56
58
|
}
|
|
59
|
+
// Strip .js extension from subpath (e.g., "nodejs.js" -> "nodejs")
|
|
60
|
+
// This allows imports like "@tsonic/nodejs/nodejs.js" to find "nodejs/bindings.json"
|
|
61
|
+
const namespaceDir = subpath.endsWith(".js")
|
|
62
|
+
? subpath.slice(0, -3)
|
|
63
|
+
: subpath;
|
|
57
64
|
// Check if bindings.json exists in the namespace directory
|
|
58
|
-
const bindingsPath = join(pkgRoot,
|
|
65
|
+
const bindingsPath = join(pkgRoot, namespaceDir, "bindings.json");
|
|
59
66
|
if (!this.hasBindings(bindingsPath)) {
|
|
60
67
|
return { isClr: false };
|
|
61
68
|
}
|
|
62
69
|
// Extract namespace from bindings.json (tsbindgen format)
|
|
63
70
|
// This is the authoritative namespace, not the subpath
|
|
64
|
-
const resolvedNamespace = this.extractNamespace(bindingsPath,
|
|
71
|
+
const resolvedNamespace = this.extractNamespace(bindingsPath, namespaceDir);
|
|
65
72
|
// Check for optional metadata.json
|
|
66
|
-
const metadataPath = join(pkgRoot,
|
|
73
|
+
const metadataPath = join(pkgRoot, namespaceDir, "internal", "metadata.json");
|
|
67
74
|
const hasMetadata = this.fileExists(metadataPath);
|
|
75
|
+
// Extract assembly name from bindings.json types
|
|
76
|
+
const assembly = this.extractAssembly(bindingsPath);
|
|
68
77
|
return {
|
|
69
78
|
isClr: true,
|
|
70
79
|
packageName,
|
|
71
80
|
resolvedNamespace,
|
|
72
81
|
bindingsPath,
|
|
73
82
|
metadataPath: hasMetadata ? metadataPath : undefined,
|
|
83
|
+
assembly,
|
|
74
84
|
};
|
|
75
85
|
}
|
|
76
86
|
/**
|
|
@@ -196,6 +206,45 @@ export class ClrBindingsResolver {
|
|
|
196
206
|
return fallback;
|
|
197
207
|
}
|
|
198
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Extract the assembly name from a bindings.json file (cached).
|
|
211
|
+
* Looks at the first type's assemblyName field.
|
|
212
|
+
*
|
|
213
|
+
* This provides the assembly name for reference in .csproj files.
|
|
214
|
+
*/
|
|
215
|
+
extractAssembly(bindingsPath) {
|
|
216
|
+
const cached = this.assemblyCache.get(bindingsPath);
|
|
217
|
+
if (cached !== undefined) {
|
|
218
|
+
return cached ?? undefined;
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
const content = readFileSync(bindingsPath, "utf-8");
|
|
222
|
+
const parsed = JSON.parse(content);
|
|
223
|
+
// Check for tsbindgen format: { namespace: string, types: [...] }
|
|
224
|
+
if (parsed !== null &&
|
|
225
|
+
typeof parsed === "object" &&
|
|
226
|
+
"types" in parsed &&
|
|
227
|
+
Array.isArray(parsed.types)) {
|
|
228
|
+
const types = parsed.types;
|
|
229
|
+
if (types.length > 0) {
|
|
230
|
+
const firstType = types[0];
|
|
231
|
+
if (typeof firstType.assemblyName === "string") {
|
|
232
|
+
const assembly = firstType.assemblyName;
|
|
233
|
+
this.assemblyCache.set(bindingsPath, assembly);
|
|
234
|
+
return assembly;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// No assembly found, cache null
|
|
239
|
+
this.assemblyCache.set(bindingsPath, null);
|
|
240
|
+
return undefined;
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
// Failed to read/parse, cache null
|
|
244
|
+
this.assemblyCache.set(bindingsPath, null);
|
|
245
|
+
return undefined;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
199
248
|
/**
|
|
200
249
|
* Check if a file exists (not cached - used for optional files)
|
|
201
250
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clr-bindings-resolver.js","sourceRoot":"","sources":["../../src/resolver/clr-bindings-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"clr-bindings-resolver.js","sourceRoot":"","sources":["../../src/resolver/clr-bindings-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Diagnostic types for Tsonic compiler
|
|
3
3
|
*/
|
|
4
4
|
export type DiagnosticSeverity = "error" | "warning" | "info";
|
|
5
|
-
export type DiagnosticCode = "TSN1001" | "TSN1002" | "TSN1003" | "TSN1004" | "TSN1005" | "TSN1006" | "TSN2001" | "TSN2002" | "TSN2003" | "TSN3001" | "TSN3002" | "TSN3011" | "TSN4001" | "TSN4002" | "TSN5001" | "TSN5002" | "TSN6001" | "TSN7101" | "TSN7102" | "TSN7103" | "TSN7104" | "TSN7105" | "TSN7201" | "TSN7202" | "TSN7203" | "TSN7204" | "TSN7301" | "TSN7401" | "TSN7403" | "TSN7405" | "TSN7413" | "TSN9001" | "TSN9002" | "TSN9003" | "TSN9004" | "TSN9005" | "TSN9006" | "TSN9007" | "TSN9008" | "TSN9009" | "TSN9010" | "TSN9011" | "TSN9012" | "TSN9013" | "TSN9014" | "TSN9015" | "TSN9016" | "TSN9017" | "TSN9018" | "TSN9101" | "TSN9102" | "TSN9103" | "TSN9104" | "TSN9105" | "TSN9106" | "TSN9107" | "TSN9108" | "TSN9109" | "TSN9110" | "TSN9111" | "TSN9112" | "TSN9113" | "TSN9114";
|
|
5
|
+
export type DiagnosticCode = "TSN1001" | "TSN1002" | "TSN1003" | "TSN1004" | "TSN1005" | "TSN1006" | "TSN2001" | "TSN2002" | "TSN2003" | "TSN3001" | "TSN3002" | "TSN3011" | "TSN4001" | "TSN4002" | "TSN5001" | "TSN5002" | "TSN6001" | "TSN7101" | "TSN7102" | "TSN7103" | "TSN7104" | "TSN7105" | "TSN7201" | "TSN7202" | "TSN7203" | "TSN7204" | "TSN7301" | "TSN7401" | "TSN7403" | "TSN7405" | "TSN7406" | "TSN7407" | "TSN7408" | "TSN7409" | "TSN7410" | "TSN7413" | "TSN9001" | "TSN9002" | "TSN9003" | "TSN9004" | "TSN9005" | "TSN9006" | "TSN9007" | "TSN9008" | "TSN9009" | "TSN9010" | "TSN9011" | "TSN9012" | "TSN9013" | "TSN9014" | "TSN9015" | "TSN9016" | "TSN9017" | "TSN9018" | "TSN9101" | "TSN9102" | "TSN9103" | "TSN9104" | "TSN9105" | "TSN9106" | "TSN9107" | "TSN9108" | "TSN9109" | "TSN9110" | "TSN9111" | "TSN9112" | "TSN9113" | "TSN9114";
|
|
6
6
|
export type SourceLocation = {
|
|
7
7
|
readonly file: string;
|
|
8
8
|
readonly line: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../src/types/diagnostic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM,cAAc,EACpB,UAAU,kBAAkB,EAC5B,SAAS,MAAM,EACf,WAAW,cAAc,EACzB,OAAO,MAAM,EACb,mBAAmB,SAAS,cAAc,EAAE,KAC3C,UAOD,CAAC;AAEH,eAAO,MAAM,OAAO,GAAI,YAAY,UAAU,KAAG,OAChB,CAAC;AAElC,eAAO,MAAM,gBAAgB,GAAI,YAAY,UAAU,KAAG,MAiBzD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,oBAG5C,CAAC;AAEH,eAAO,MAAM,aAAa,GACxB,WAAW,oBAAoB,EAC/B,YAAY,UAAU,KACrB,oBAGD,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,oBAAoB,EAChC,YAAY,oBAAoB,KAC/B,oBAGD,CAAC"}
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../src/types/diagnostic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM,cAAc,EACpB,UAAU,kBAAkB,EAC5B,SAAS,MAAM,EACf,WAAW,cAAc,EACzB,OAAO,MAAM,EACb,mBAAmB,SAAS,cAAc,EAAE,KAC3C,UAOD,CAAC;AAEH,eAAO,MAAM,OAAO,GAAI,YAAY,UAAU,KAAG,OAChB,CAAC;AAElC,eAAO,MAAM,gBAAgB,GAAI,YAAY,UAAU,KAAG,MAiBzD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,oBAG5C,CAAC;AAEH,eAAO,MAAM,aAAa,GACxB,WAAW,oBAAoB,EAC/B,YAAY,UAAU,KACrB,oBAGD,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,oBAAoB,EAChC,YAAY,oBAAoB,KAC/B,oBAGD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/types/diagnostic.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/types/diagnostic.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6FH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAoB,EACpB,QAA4B,EAC5B,OAAe,EACf,QAAyB,EACzB,IAAa,EACb,gBAA4C,EAChC,EAAE,CAAC,CAAC;IAChB,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,gBAAgB;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,UAAsB,EAAW,EAAE,CACzD,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAsB,EAAU,EAAE;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CACR,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE/B,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAyB,EAAE,CAAC,CAAC;IACrE,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,KAAK;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,SAA+B,EAC/B,UAAsB,EACA,EAAE,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAgC,EAChC,UAAgC,EACV,EAAE,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC;IACnE,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS;CACxD,CAAC,CAAC"}
|
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
* - TSN7401: 'any' type usage
|
|
6
6
|
* - TSN7403: Object literal without contextual nominal type
|
|
7
7
|
* - TSN7405: Untyped function/arrow/lambda parameter
|
|
8
|
-
* -
|
|
8
|
+
* - TSN7406: Mapped types not supported
|
|
9
|
+
* - TSN7407: Conditional types not supported
|
|
10
|
+
* - TSN7408: Mixed variadic tuples not supported
|
|
11
|
+
* - TSN7409: 'infer' keyword not supported
|
|
12
|
+
* - TSN7410: Intersection types not supported
|
|
13
|
+
* - TSN7413: Dictionary key must be string or number
|
|
9
14
|
*
|
|
10
15
|
* This ensures NativeAOT-compatible, predictable-performance output.
|
|
11
16
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-safety.d.ts","sourceRoot":"","sources":["../../src/validation/static-safety.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"static-safety.d.ts","sourceRoot":"","sources":["../../src/validation/static-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EAGrB,MAAM,wBAAwB,CAAC;AAShC;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,EAAE,CAAC,UAAU,EACzB,SAAS,aAAa,EACtB,WAAW,oBAAoB,KAC9B,oBA0SF,CAAC"}
|
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
* - TSN7401: 'any' type usage
|
|
6
6
|
* - TSN7403: Object literal without contextual nominal type
|
|
7
7
|
* - TSN7405: Untyped function/arrow/lambda parameter
|
|
8
|
-
* -
|
|
8
|
+
* - TSN7406: Mapped types not supported
|
|
9
|
+
* - TSN7407: Conditional types not supported
|
|
10
|
+
* - TSN7408: Mixed variadic tuples not supported
|
|
11
|
+
* - TSN7409: 'infer' keyword not supported
|
|
12
|
+
* - TSN7410: Intersection types not supported
|
|
13
|
+
* - TSN7413: Dictionary key must be string or number
|
|
9
14
|
*
|
|
10
15
|
* This ensures NativeAOT-compatible, predictable-performance output.
|
|
11
16
|
*
|
|
@@ -16,6 +21,9 @@
|
|
|
16
21
|
import * as ts from "typescript";
|
|
17
22
|
import { addDiagnostic, createDiagnostic, } from "../types/diagnostic.js";
|
|
18
23
|
import { getNodeLocation } from "./helpers.js";
|
|
24
|
+
import { inferLambdaParamTypes } from "../ir/type-converter/index.js";
|
|
25
|
+
import { UNSUPPORTED_MAPPED_UTILITY_TYPES, UNSUPPORTED_CONDITIONAL_UTILITY_TYPES, } from "./unsupported-utility-types.js";
|
|
26
|
+
import { checkSynthesisEligibility } from "../ir/converters/anonymous-synthesis.js";
|
|
19
27
|
/**
|
|
20
28
|
* Validate a source file for static safety violations.
|
|
21
29
|
*/
|
|
@@ -36,49 +44,122 @@ export const validateStaticSafety = (sourceFile, program, collector) => {
|
|
|
36
44
|
// Covers: function declarations, methods, constructors, arrow functions, function expressions
|
|
37
45
|
if (ts.isParameter(node) && !node.type) {
|
|
38
46
|
const parent = node.parent;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
// For lambdas (arrow functions and function expressions), allow inference from context
|
|
48
|
+
const isLambda = ts.isArrowFunction(parent) || ts.isFunctionExpression(parent);
|
|
49
|
+
if (isLambda) {
|
|
50
|
+
// Try contextual signature inference
|
|
51
|
+
const inference = inferLambdaParamTypes(parent, checker);
|
|
52
|
+
const paramIndex = parent.parameters.indexOf(node);
|
|
53
|
+
// If inference succeeded for this parameter, don't emit TSN7405
|
|
54
|
+
if (inference && inference.paramTypes[paramIndex] !== undefined) {
|
|
55
|
+
// Inference succeeded - no error needed
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Inference failed - emit TSN7405
|
|
59
|
+
const paramName = ts.isIdentifier(node.name)
|
|
60
|
+
? node.name.text
|
|
61
|
+
: "param";
|
|
62
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7405", "error", `Parameter '${paramName}' must have an explicit type annotation.`, getNodeLocation(sourceFile, node), "Add a type annotation to this parameter, or use the lambda in a context that provides type inference (e.g., array.sort, array.map)."));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// For non-lambdas (function declarations, methods, constructors, accessors),
|
|
67
|
+
// always require explicit type annotations
|
|
68
|
+
const isFunctionLike = ts.isFunctionDeclaration(parent) ||
|
|
69
|
+
ts.isMethodDeclaration(parent) ||
|
|
70
|
+
ts.isConstructorDeclaration(parent) ||
|
|
71
|
+
ts.isGetAccessorDeclaration(parent) ||
|
|
72
|
+
ts.isSetAccessorDeclaration(parent);
|
|
73
|
+
if (isFunctionLike) {
|
|
74
|
+
const paramName = ts.isIdentifier(node.name)
|
|
75
|
+
? node.name.text
|
|
76
|
+
: "param";
|
|
77
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7405", "error", `Parameter '${paramName}' must have an explicit type annotation.`, getNodeLocation(sourceFile, node), "Add a type annotation to this parameter."));
|
|
78
|
+
}
|
|
49
79
|
}
|
|
50
80
|
}
|
|
51
81
|
// TSN7403: Check for object literals without contextual nominal type
|
|
82
|
+
// Now supports auto-synthesis for eligible object literals (spreads, arrow props)
|
|
52
83
|
if (ts.isObjectLiteralExpression(node)) {
|
|
53
84
|
const contextualType = checker.getContextualType(node);
|
|
54
|
-
//
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
|
|
85
|
+
// If there's a contextual nominal type, we're good
|
|
86
|
+
if (contextualType &&
|
|
87
|
+
isNominalOrDictionaryType(contextualType, checker)) {
|
|
88
|
+
// Has contextual type - no synthesis needed
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// No contextual type - check if eligible for synthesis
|
|
92
|
+
const eligibility = checkSynthesisEligibility(node, checker);
|
|
93
|
+
if (!eligibility.eligible) {
|
|
94
|
+
// Not eligible for synthesis - emit diagnostic with specific reason
|
|
95
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7403", "error", `Object literal cannot be synthesized: ${eligibility.reason}`, getNodeLocation(sourceFile, node), "Use an explicit type annotation, or restructure to use only identifier keys and arrow functions."));
|
|
96
|
+
}
|
|
97
|
+
// If eligible, synthesis will happen during IR conversion
|
|
58
98
|
}
|
|
59
99
|
}
|
|
60
|
-
//
|
|
61
|
-
// Record<K, V> where K is not string
|
|
100
|
+
// Check TypeReferenceNode for utility types and dictionary keys
|
|
62
101
|
if (ts.isTypeReferenceNode(node)) {
|
|
63
102
|
const typeName = node.typeName;
|
|
64
|
-
if (ts.isIdentifier(typeName)
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
103
|
+
if (ts.isIdentifier(typeName)) {
|
|
104
|
+
const name = typeName.text;
|
|
105
|
+
const hasTypeArgs = node.typeArguments && node.typeArguments.length > 0;
|
|
106
|
+
// TSN7406: Mapped-type utility types (these expand to mapped types internally)
|
|
107
|
+
// Only check when type arguments are present to avoid false positives for
|
|
108
|
+
// user-defined types named "Partial", etc.
|
|
109
|
+
if (hasTypeArgs && UNSUPPORTED_MAPPED_UTILITY_TYPES.has(name)) {
|
|
110
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7406", "error", `Utility type '${name}' is not supported (it uses mapped types internally).`, getNodeLocation(sourceFile, node), `Replace '${name}' with an explicit interface that has the desired properties.`));
|
|
111
|
+
}
|
|
112
|
+
// TSN7407: Conditional-type utility types (these expand to conditional types internally)
|
|
113
|
+
// Only check when type arguments are present
|
|
114
|
+
if (hasTypeArgs && UNSUPPORTED_CONDITIONAL_UTILITY_TYPES.has(name)) {
|
|
115
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7407", "error", `Utility type '${name}' is not supported (it uses conditional types internally).`, getNodeLocation(sourceFile, node), `Replace '${name}' with an explicit type definition.`));
|
|
116
|
+
}
|
|
117
|
+
// TSN7413: Record<K, V> where K is not an allowed key type
|
|
118
|
+
if (name === "Record") {
|
|
119
|
+
const typeArgs = node.typeArguments;
|
|
120
|
+
const keyTypeNode = typeArgs?.[0];
|
|
121
|
+
if (keyTypeNode !== undefined) {
|
|
122
|
+
if (!isAllowedKeyType(keyTypeNode)) {
|
|
123
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7413", "error", "Dictionary key type must be 'string' or 'number'. Other key types are not supported.", getNodeLocation(sourceFile, keyTypeNode), "Use Record<string, V> or Record<number, V>."));
|
|
124
|
+
}
|
|
70
125
|
}
|
|
71
126
|
}
|
|
72
127
|
}
|
|
73
128
|
}
|
|
74
|
-
// TSN7413: Check for
|
|
75
|
-
//
|
|
129
|
+
// TSN7413: Check for unsupported index signature key types
|
|
130
|
+
// Only string and number are allowed (matches TypeScript's index signature constraints)
|
|
76
131
|
if (ts.isIndexSignatureDeclaration(node)) {
|
|
77
132
|
const keyParam = node.parameters[0];
|
|
78
|
-
if (keyParam?.type && !
|
|
79
|
-
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7413", "error", "Index signature key type must be 'string'.
|
|
133
|
+
if (keyParam?.type && !isAllowedKeyType(keyParam.type)) {
|
|
134
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7413", "error", "Index signature key type must be 'string' or 'number'. Other key types are not supported.", getNodeLocation(sourceFile, keyParam.type), "Use { [key: string]: V } or { [key: number]: V }."));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// TSN7406: Check for mapped types (e.g., { [P in keyof T]: ... })
|
|
138
|
+
if (ts.isMappedTypeNode(node)) {
|
|
139
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7406", "error", "Mapped types are not supported. Write an explicit interface or class instead.", getNodeLocation(sourceFile, node), "Replace mapped types like Partial<T>, Required<T>, or { [P in keyof T]: ... } with explicit interface definitions."));
|
|
140
|
+
}
|
|
141
|
+
// TSN7407: Check for conditional types (e.g., T extends U ? X : Y)
|
|
142
|
+
if (ts.isConditionalTypeNode(node)) {
|
|
143
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7407", "error", "Conditional types are not supported. Use explicit union types or overloads instead.", getNodeLocation(sourceFile, node), "Replace conditional types like Extract<T, U> or T extends X ? Y : Z with explicit type definitions."));
|
|
144
|
+
}
|
|
145
|
+
// TSN7408: Check for variadic tuple types with mixed elements (e.g., [string, ...number[]])
|
|
146
|
+
// Pure variadic tuples like [...T[]] are OK (converted to arrays), fixed tuples are OK
|
|
147
|
+
// Mixed tuples with both fixed and rest elements are not supported
|
|
148
|
+
if (ts.isTupleTypeNode(node)) {
|
|
149
|
+
const hasRest = node.elements.some((el) => ts.isRestTypeNode(el));
|
|
150
|
+
const hasFixed = node.elements.some((el) => !ts.isRestTypeNode(el));
|
|
151
|
+
if (hasRest && hasFixed) {
|
|
152
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7408", "error", "Variadic tuple types with mixed fixed and rest elements are not supported.", getNodeLocation(sourceFile, node), "Use a fixed-length tuple like [T1, T2] or an array like T[] instead."));
|
|
80
153
|
}
|
|
81
154
|
}
|
|
155
|
+
// TSN7409: Check for 'infer' keyword in conditional types
|
|
156
|
+
if (ts.isInferTypeNode(node)) {
|
|
157
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7409", "error", "The 'infer' keyword is not supported. Use explicit type parameters instead.", getNodeLocation(sourceFile, node), "Replace infer patterns with explicit generic type parameters."));
|
|
158
|
+
}
|
|
159
|
+
// TSN7410: Check for intersection types (e.g., A & B)
|
|
160
|
+
if (ts.isIntersectionTypeNode(node)) {
|
|
161
|
+
currentCollector = addDiagnostic(currentCollector, createDiagnostic("TSN7410", "error", "Intersection types (A & B) are not supported. Use a nominal type that explicitly includes all required members.", getNodeLocation(sourceFile, node), "Replace the intersection with an interface or class that combines the members, or a type alias to an object type with explicit members."));
|
|
162
|
+
}
|
|
82
163
|
// Continue visiting children
|
|
83
164
|
ts.forEachChild(node, (child) => {
|
|
84
165
|
currentCollector = visitor(child, currentCollector);
|
|
@@ -92,14 +173,26 @@ export const validateStaticSafety = (sourceFile, program, collector) => {
|
|
|
92
173
|
* or a dictionary type that we can emit.
|
|
93
174
|
*
|
|
94
175
|
* Returns false for anonymous object types like `{ x: number }` without a name.
|
|
176
|
+
*
|
|
177
|
+
* Special case: Union types defined via type aliases (e.g., Result<T, E> = { ok: true; value: T } | {...})
|
|
178
|
+
* are considered nominal because we generate synthetic interfaces for them during IR building.
|
|
95
179
|
*/
|
|
96
180
|
const isNominalOrDictionaryType = (type, checker) => {
|
|
97
181
|
// Check if it's a dictionary type (Record<K,V> or index signature)
|
|
98
182
|
if (isTsDictionaryType(type)) {
|
|
99
183
|
return true;
|
|
100
184
|
}
|
|
185
|
+
// Check if the type has an aliasSymbol (used via a type alias)
|
|
186
|
+
// This catches: type Result = { ok: true } | { ok: false }
|
|
187
|
+
// where the union was defined via a type alias
|
|
188
|
+
if (type.aliasSymbol) {
|
|
189
|
+
const aliasDecl = type.aliasSymbol.getDeclarations()?.[0];
|
|
190
|
+
if (aliasDecl && ts.isTypeAliasDeclaration(aliasDecl)) {
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
101
194
|
// Check if the type has a symbol with a declaration (named type)
|
|
102
|
-
const symbol = type.getSymbol()
|
|
195
|
+
const symbol = type.getSymbol();
|
|
103
196
|
if (symbol) {
|
|
104
197
|
const declarations = symbol.getDeclarations();
|
|
105
198
|
const decl = declarations?.[0];
|
|
@@ -112,6 +205,14 @@ const isNominalOrDictionaryType = (type, checker) => {
|
|
|
112
205
|
}
|
|
113
206
|
}
|
|
114
207
|
}
|
|
208
|
+
// Check for union types with aliasSymbol (discriminated unions via type alias)
|
|
209
|
+
// This handles: return { ok: true, value } where return type is Result<T,E>
|
|
210
|
+
if (type.isUnion()) {
|
|
211
|
+
// Check if this union was created from a type alias
|
|
212
|
+
if (type.aliasSymbol) {
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
115
216
|
// Check for primitive types (allowed)
|
|
116
217
|
if (type.flags & ts.TypeFlags.String ||
|
|
117
218
|
type.flags & ts.TypeFlags.Number ||
|
|
@@ -145,19 +246,26 @@ const isTsDictionaryType = (type) => {
|
|
|
145
246
|
return !!(stringIndexType || numberIndexType);
|
|
146
247
|
};
|
|
147
248
|
/**
|
|
148
|
-
* Check if a type node represents
|
|
149
|
-
*
|
|
249
|
+
* Check if a type node represents an allowed dictionary key type.
|
|
250
|
+
* Allowed: string, number (matches TypeScript's PropertyKey constraint)
|
|
251
|
+
*
|
|
252
|
+
* Note: TypeScript's Record<K, V> only allows K extends keyof any (string | number | symbol).
|
|
253
|
+
* We support string and number. Symbol is rejected via TSN7203.
|
|
150
254
|
*/
|
|
151
|
-
const
|
|
152
|
-
// Direct
|
|
153
|
-
if (typeNode.kind === ts.SyntaxKind.StringKeyword
|
|
255
|
+
const isAllowedKeyType = (typeNode) => {
|
|
256
|
+
// Direct keywords
|
|
257
|
+
if (typeNode.kind === ts.SyntaxKind.StringKeyword ||
|
|
258
|
+
typeNode.kind === ts.SyntaxKind.NumberKeyword) {
|
|
154
259
|
return true;
|
|
155
260
|
}
|
|
156
|
-
// Type reference to
|
|
261
|
+
// Type reference to allowed types
|
|
157
262
|
if (ts.isTypeReferenceNode(typeNode)) {
|
|
158
263
|
const typeName = typeNode.typeName;
|
|
159
|
-
if (ts.isIdentifier(typeName)
|
|
160
|
-
|
|
264
|
+
if (ts.isIdentifier(typeName)) {
|
|
265
|
+
const name = typeName.text;
|
|
266
|
+
if (name === "string" || name === "number") {
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
161
269
|
}
|
|
162
270
|
}
|
|
163
271
|
return false;
|