@tsonic/frontend 0.0.2 → 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.
Files changed (167) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/graph/extraction/imports.js +3 -3
  3. package/dist/graph/extraction/imports.js.map +1 -1
  4. package/dist/ir/binding-resolution.test.js +8 -3
  5. package/dist/ir/binding-resolution.test.js.map +1 -1
  6. package/dist/ir/builder/exports.d.ts.map +1 -1
  7. package/dist/ir/builder/exports.js +8 -6
  8. package/dist/ir/builder/exports.js.map +1 -1
  9. package/dist/ir/builder/imports.d.ts +3 -3
  10. package/dist/ir/builder/imports.d.ts.map +1 -1
  11. package/dist/ir/builder/imports.js +16 -9
  12. package/dist/ir/builder/imports.js.map +1 -1
  13. package/dist/ir/builder/orchestrator.js +1 -1
  14. package/dist/ir/builder/orchestrator.js.map +1 -1
  15. package/dist/ir/builder/statements.d.ts +7 -1
  16. package/dist/ir/builder/statements.d.ts.map +1 -1
  17. package/dist/ir/builder/statements.js +18 -5
  18. package/dist/ir/builder/statements.js.map +1 -1
  19. package/dist/ir/builder.test.js +20 -10
  20. package/dist/ir/builder.test.js.map +1 -1
  21. package/dist/ir/converters/anonymous-synthesis.d.ts +76 -0
  22. package/dist/ir/converters/anonymous-synthesis.d.ts.map +1 -0
  23. package/dist/ir/converters/anonymous-synthesis.js +307 -0
  24. package/dist/ir/converters/anonymous-synthesis.js.map +1 -0
  25. package/dist/ir/converters/expressions/access.d.ts.map +1 -1
  26. package/dist/ir/converters/expressions/access.js +48 -1
  27. package/dist/ir/converters/expressions/access.js.map +1 -1
  28. package/dist/ir/converters/expressions/calls.d.ts.map +1 -1
  29. package/dist/ir/converters/expressions/calls.js +47 -0
  30. package/dist/ir/converters/expressions/calls.js.map +1 -1
  31. package/dist/ir/converters/expressions/collections.d.ts +3 -0
  32. package/dist/ir/converters/expressions/collections.d.ts.map +1 -1
  33. package/dist/ir/converters/expressions/collections.js +39 -1
  34. package/dist/ir/converters/expressions/collections.js.map +1 -1
  35. package/dist/ir/converters/expressions/functions.d.ts.map +1 -1
  36. package/dist/ir/converters/expressions/functions.js +49 -4
  37. package/dist/ir/converters/expressions/functions.js.map +1 -1
  38. package/dist/ir/converters/expressions/helpers.d.ts.map +1 -1
  39. package/dist/ir/converters/expressions/helpers.js +8 -1
  40. package/dist/ir/converters/expressions/helpers.js.map +1 -1
  41. package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -1
  42. package/dist/ir/converters/statements/control/conditionals.js +4 -6
  43. package/dist/ir/converters/statements/control/conditionals.js.map +1 -1
  44. package/dist/ir/converters/statements/control/loops.js +5 -5
  45. package/dist/ir/converters/statements/control/loops.js.map +1 -1
  46. package/dist/ir/converters/statements/declarations/interfaces.d.ts +4 -3
  47. package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -1
  48. package/dist/ir/converters/statements/declarations/interfaces.js +55 -1
  49. package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -1
  50. package/dist/ir/converters/statements/declarations/type-aliases.d.ts +8 -3
  51. package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -1
  52. package/dist/ir/converters/statements/declarations/type-aliases.js +12 -2
  53. package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -1
  54. package/dist/ir/converters/synthetic-types.d.ts +38 -0
  55. package/dist/ir/converters/synthetic-types.d.ts.map +1 -0
  56. package/dist/ir/converters/synthetic-types.js +123 -0
  57. package/dist/ir/converters/synthetic-types.js.map +1 -0
  58. package/dist/ir/hierarchical-bindings-e2e.test.js +8 -3
  59. package/dist/ir/hierarchical-bindings-e2e.test.js.map +1 -1
  60. package/dist/ir/statement-converter.d.ts +16 -1
  61. package/dist/ir/statement-converter.d.ts.map +1 -1
  62. package/dist/ir/statement-converter.js +32 -0
  63. package/dist/ir/statement-converter.js.map +1 -1
  64. package/dist/ir/type-converter/index.d.ts +1 -1
  65. package/dist/ir/type-converter/index.d.ts.map +1 -1
  66. package/dist/ir/type-converter/index.js +1 -1
  67. package/dist/ir/type-converter/index.js.map +1 -1
  68. package/dist/ir/type-converter/inference.d.ts +12 -0
  69. package/dist/ir/type-converter/inference.d.ts.map +1 -1
  70. package/dist/ir/type-converter/inference.js +145 -6
  71. package/dist/ir/type-converter/inference.js.map +1 -1
  72. package/dist/ir/type-converter/objects.d.ts.map +1 -1
  73. package/dist/ir/type-converter/objects.js +3 -2
  74. package/dist/ir/type-converter/objects.js.map +1 -1
  75. package/dist/ir/type-converter/orchestrator.d.ts +2 -2
  76. package/dist/ir/type-converter/orchestrator.d.ts.map +1 -1
  77. package/dist/ir/type-converter/orchestrator.js +37 -0
  78. package/dist/ir/type-converter/orchestrator.js.map +1 -1
  79. package/dist/ir/type-converter/references.d.ts.map +1 -1
  80. package/dist/ir/type-converter/references.js +16 -5
  81. package/dist/ir/type-converter/references.js.map +1 -1
  82. package/dist/ir/type-converter.d.ts +1 -1
  83. package/dist/ir/type-converter.d.ts.map +1 -1
  84. package/dist/ir/type-converter.js +1 -1
  85. package/dist/ir/type-converter.js.map +1 -1
  86. package/dist/ir/types/expressions.d.ts +8 -0
  87. package/dist/ir/types/expressions.d.ts.map +1 -1
  88. package/dist/ir/types/index.d.ts +1 -1
  89. package/dist/ir/types/index.d.ts.map +1 -1
  90. package/dist/ir/types/index.js.map +1 -1
  91. package/dist/ir/types/ir-types.d.ts +24 -1
  92. package/dist/ir/types/ir-types.d.ts.map +1 -1
  93. package/dist/ir/types/module.d.ts +1 -1
  94. package/dist/ir/types/module.d.ts.map +1 -1
  95. package/dist/ir/types.d.ts +1 -1
  96. package/dist/ir/types.d.ts.map +1 -1
  97. package/dist/ir/types.js.map +1 -1
  98. package/dist/program/bindings.d.ts +51 -3
  99. package/dist/program/bindings.d.ts.map +1 -1
  100. package/dist/program/bindings.js +181 -19
  101. package/dist/program/bindings.js.map +1 -1
  102. package/dist/program/creation.d.ts.map +1 -1
  103. package/dist/program/creation.js +11 -9
  104. package/dist/program/creation.js.map +1 -1
  105. package/dist/program/dependency-graph.d.ts.map +1 -1
  106. package/dist/program/dependency-graph.js +65 -1
  107. package/dist/program/dependency-graph.js.map +1 -1
  108. package/dist/program/types.d.ts +4 -3
  109. package/dist/program/types.d.ts.map +1 -1
  110. package/dist/resolver/clr-bindings-resolver.d.ts +93 -0
  111. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -0
  112. package/dist/resolver/{dotnet-import-resolver.js → clr-bindings-resolver.js} +114 -24
  113. package/dist/resolver/clr-bindings-resolver.js.map +1 -0
  114. package/dist/resolver/import-resolution.d.ts +4 -4
  115. package/dist/resolver/import-resolution.d.ts.map +1 -1
  116. package/dist/resolver/import-resolution.js +17 -17
  117. package/dist/resolver/import-resolution.js.map +1 -1
  118. package/dist/resolver/index.d.ts +2 -2
  119. package/dist/resolver/index.d.ts.map +1 -1
  120. package/dist/resolver/index.js +2 -2
  121. package/dist/resolver/index.js.map +1 -1
  122. package/dist/resolver/types.d.ts +1 -1
  123. package/dist/resolver/types.d.ts.map +1 -1
  124. package/dist/resolver.d.ts +2 -2
  125. package/dist/resolver.d.ts.map +1 -1
  126. package/dist/resolver.js +1 -1
  127. package/dist/resolver.js.map +1 -1
  128. package/dist/resolver.test.js +1 -1
  129. package/dist/resolver.test.js.map +1 -1
  130. package/dist/types/diagnostic.d.ts +1 -1
  131. package/dist/types/diagnostic.d.ts.map +1 -1
  132. package/dist/types/diagnostic.js.map +1 -1
  133. package/dist/types/metadata.d.ts +1 -1
  134. package/dist/types/metadata.d.ts.map +1 -1
  135. package/dist/types/module.d.ts +1 -1
  136. package/dist/types/module.d.ts.map +1 -1
  137. package/dist/types/parameter-modifiers.d.ts.map +1 -1
  138. package/dist/types/parameter-modifiers.js +7 -3
  139. package/dist/types/parameter-modifiers.js.map +1 -1
  140. package/dist/types/support-types.test.js +6 -3
  141. package/dist/types/support-types.test.js.map +1 -1
  142. package/dist/validation/imports.js +1 -1
  143. package/dist/validation/imports.js.map +1 -1
  144. package/dist/validation/static-safety.d.ts +6 -1
  145. package/dist/validation/static-safety.d.ts.map +1 -1
  146. package/dist/validation/static-safety.js +146 -38
  147. package/dist/validation/static-safety.js.map +1 -1
  148. package/dist/validation/unsupported-utility-types.d.ts +38 -0
  149. package/dist/validation/unsupported-utility-types.d.ts.map +1 -0
  150. package/dist/validation/unsupported-utility-types.js +53 -0
  151. package/dist/validation/unsupported-utility-types.js.map +1 -0
  152. package/dist/validator.test.js +307 -16
  153. package/dist/validator.test.js.map +1 -1
  154. package/package.json +1 -1
  155. package/dist/ir/type-converter/clr-type-resolver.d.ts +0 -15
  156. package/dist/ir/type-converter/clr-type-resolver.d.ts.map +0 -1
  157. package/dist/ir/type-converter/clr-type-resolver.js +0 -120
  158. package/dist/ir/type-converter/clr-type-resolver.js.map +0 -1
  159. package/dist/resolver/dotnet-import-resolver.d.ts +0 -74
  160. package/dist/resolver/dotnet-import-resolver.d.ts.map +0 -1
  161. package/dist/resolver/dotnet-import-resolver.js.map +0 -1
  162. package/dist/types/test-debug.d.ts.map +0 -1
  163. package/dist/types/test-debug.js.map +0 -1
  164. package/dist/validation/aot-safety.d.ts +0 -24
  165. package/dist/validation/aot-safety.d.ts.map +0 -1
  166. package/dist/validation/aot-safety.js +0 -114
  167. package/dist/validation/aot-safety.js.map +0 -1
@@ -1,74 +0,0 @@
1
- /**
2
- * Import-driven .NET namespace resolution
3
- *
4
- * Determines if an import specifier refers to a CLR namespace by checking
5
- * if bindings.json exists in the package's namespace directory.
6
- *
7
- * This is the ONLY mechanism for detecting .NET imports - no heuristics,
8
- * no special-casing for @tsonic/dotnet or any other package.
9
- */
10
- /**
11
- * Result of resolving a .NET import
12
- */
13
- export type ResolvedDotNetImport = {
14
- readonly isDotNet: true;
15
- readonly packageName: string;
16
- readonly resolvedNamespace: string;
17
- readonly bindingsPath: string;
18
- readonly metadataPath: string | undefined;
19
- } | {
20
- readonly isDotNet: false;
21
- };
22
- /**
23
- * Resolver for .NET namespace imports
24
- *
25
- * An import is a CLR namespace import iff:
26
- * - It's a package import with a subpath (e.g., @scope/pkg/Namespace)
27
- * - The package contains bindings.json in that subpath directory
28
- *
29
- * This works for any bindings provider package, not just @tsonic/dotnet.
30
- */
31
- export declare class DotNetImportResolver {
32
- private readonly pkgRootCache;
33
- private readonly bindingsExistsCache;
34
- private readonly require;
35
- constructor(baseDir: string);
36
- /**
37
- * Resolve an import specifier to determine if it's a CLR namespace import
38
- */
39
- resolve(moduleSpecifier: string): ResolvedDotNetImport;
40
- /**
41
- * Parse a module specifier into package name and subpath
42
- *
43
- * Examples:
44
- * - "@tsonic/dotnet/System.IO" -> { packageName: "@tsonic/dotnet", subpath: "System.IO" }
45
- * - "lodash/fp" -> { packageName: "lodash", subpath: "fp" }
46
- * - "@tsonic/dotnet" -> null (no subpath)
47
- * - "lodash" -> null (no subpath)
48
- */
49
- private parseModuleSpecifier;
50
- /**
51
- * Resolve package root directory using Node resolution
52
- *
53
- * Uses require.resolve to find the package's package.json,
54
- * then returns the directory containing it.
55
- */
56
- private resolvePkgRoot;
57
- /**
58
- * Check if bindings.json exists at the given path (cached)
59
- */
60
- private hasBindings;
61
- /**
62
- * Check if a file exists (not cached - used for optional files)
63
- */
64
- private fileExists;
65
- /**
66
- * Get all discovered binding paths (for loading)
67
- */
68
- getDiscoveredBindingPaths(): ReadonlySet<string>;
69
- }
70
- /**
71
- * Create a resolver instance for a given source root
72
- */
73
- export declare const createDotNetImportResolver: (sourceRoot: string) => DotNetImportResolver;
74
- //# sourceMappingURL=dotnet-import-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dotnet-import-resolver.d.ts","sourceRoot":"","sources":["../../src/resolver/dotnet-import-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,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;CAC3C,GACD;IACE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;CAC1B,CAAC;AAUN;;;;;;;;GAQG;AACH,qBAAa,oBAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAGjE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8B;IAGlE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,OAAO,EAAE,MAAM;IAK3B;;OAEG;IACH,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,oBAAoB;IA4CtD;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAwCtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,yBAAyB,IAAI,WAAW,CAAC,MAAM,CAAC;CASjD;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,YAAY,MAAM,KACjB,oBAEF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dotnet-import-resolver.js","sourceRoot":"","sources":["../../src/resolver/dotnet-import-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-debug.d.ts","sourceRoot":"","sources":["../../src/types/test-debug.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-debug.js","sourceRoot":"","sources":["../../src/types/test-debug.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;AACpC,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAEvC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;IAEhF,6BAA6B;IAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,IAAqB,CAAC;QACzC,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,WAAW,eAAe,WAAW,GAAG,CAAC,CAAC;QAEnF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,IAAwB,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,OAAO,CAAC,OAAO,EAAE,CAAC;AAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * AOT Safety Validation
3
- *
4
- * Detects patterns that would require C# `dynamic` and rejects them early:
5
- * - `any` type usage
6
- * - Dynamic member access on untyped objects
7
- * - Object literals without contextual nominal types
8
- *
9
- * This ensures NativeAOT-compatible, predictable-performance output.
10
- */
11
- import * as ts from "typescript";
12
- import { TsonicProgram } from "../program.js";
13
- import { DiagnosticsCollector } from "../types/diagnostic.js";
14
- /**
15
- * Validate a source file for AOT safety violations.
16
- *
17
- * Detects:
18
- * - TSN7401: 'any' type usage
19
- * - TSN7402: Dynamic member access
20
- * - TSN7403: Object literal without contextual type
21
- * - TSN7405: Untyped lambda parameter
22
- */
23
- export declare const validateAotSafety: (sourceFile: ts.SourceFile, program: TsonicProgram, collector: DiagnosticsCollector) => DiagnosticsCollector;
24
- //# sourceMappingURL=aot-safety.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aot-safety.d.ts","sourceRoot":"","sources":["../../src/validation/aot-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EAGrB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,EAAE,CAAC,UAAU,EACzB,SAAS,aAAa,EACtB,WAAW,oBAAoB,KAC9B,oBAmHF,CAAC"}
@@ -1,114 +0,0 @@
1
- /**
2
- * AOT Safety Validation
3
- *
4
- * Detects patterns that would require C# `dynamic` and rejects them early:
5
- * - `any` type usage
6
- * - Dynamic member access on untyped objects
7
- * - Object literals without contextual nominal types
8
- *
9
- * This ensures NativeAOT-compatible, predictable-performance output.
10
- */
11
- import * as ts from "typescript";
12
- import { addDiagnostic, createDiagnostic, } from "../types/diagnostic.js";
13
- import { getNodeLocation } from "./helpers.js";
14
- /**
15
- * Validate a source file for AOT safety violations.
16
- *
17
- * Detects:
18
- * - TSN7401: 'any' type usage
19
- * - TSN7402: Dynamic member access
20
- * - TSN7403: Object literal without contextual type
21
- * - TSN7405: Untyped lambda parameter
22
- */
23
- export const validateAotSafety = (sourceFile, program, collector) => {
24
- const checker = program.checker;
25
- const visitor = (node) => {
26
- // Check for explicit 'any' type annotations
27
- if (ts.isTypeReferenceNode(node)) {
28
- const typeName = node.typeName;
29
- if (ts.isIdentifier(typeName) && typeName.text === "any") {
30
- collector = addDiagnostic(collector, createDiagnostic("TSN7401", "error", "'any' type is not supported in AOT mode. Provide a concrete type, use Dictionary<string, T>, or define a nominal type.", getNodeLocation(sourceFile, node), "Replace 'any' with a specific type like 'object', 'unknown', or a custom interface."));
31
- }
32
- }
33
- // Check for 'any' keyword in type position
34
- if (node.kind === ts.SyntaxKind.AnyKeyword) {
35
- const parent = node.parent;
36
- // Skip if this is inside a type assertion (as any) - we'll handle that separately
37
- if (!ts.isAsExpression(parent) && !ts.isTypeAssertionExpression(parent)) {
38
- collector = addDiagnostic(collector, createDiagnostic("TSN7401", "error", "'any' type is not supported in AOT mode. Provide a concrete type, use Dictionary<string, T>, or define a nominal type.", getNodeLocation(sourceFile, node), "Replace 'any' with a specific type like 'object', 'unknown', or a custom interface."));
39
- }
40
- }
41
- // Check for untyped function parameters
42
- if (ts.isParameter(node) && !node.type) {
43
- // Check if this is in a callback/arrow context where type might be inferred
44
- const parent = node.parent;
45
- if (ts.isFunctionDeclaration(parent) ||
46
- ts.isMethodDeclaration(parent) ||
47
- ts.isConstructorDeclaration(parent)) {
48
- // Top-level function/method parameters must have explicit types
49
- collector = addDiagnostic(collector, createDiagnostic("TSN7405", "error", "Function parameter must have an explicit type annotation.", getNodeLocation(sourceFile, node), "Add a type annotation to this parameter."));
50
- }
51
- }
52
- // Check for object literals without contextual type
53
- if (ts.isObjectLiteralExpression(node)) {
54
- const contextualType = checker.getContextualType(node);
55
- if (!contextualType) {
56
- // No contextual type - check if parent provides one
57
- const parent = node.parent;
58
- // Allow if it's a typed variable declaration
59
- if (ts.isVariableDeclaration(parent) && parent.type) {
60
- // Has explicit type annotation - OK
61
- }
62
- else if (ts.isPropertyAssignment(parent)) {
63
- // Inside another object literal - will be checked at parent level
64
- }
65
- else if (ts.isReturnStatement(parent)) {
66
- // Return type should provide context - check function
67
- const func = findContainingFunction(parent);
68
- if (func && func.type) {
69
- // Has return type annotation - OK
70
- }
71
- else {
72
- collector = addDiagnostic(collector, createDiagnostic("TSN7403", "error", "Object literal requires a contextual nominal type. Provide a type annotation or define an interface.", getNodeLocation(sourceFile, node), "Add a type annotation like 'const x: MyType = { ... }' or define an interface."));
73
- }
74
- }
75
- else if (ts.isVariableDeclaration(parent) &&
76
- !parent.type &&
77
- !isCallExpressionArgument(node)) {
78
- // Untyped variable with object literal - error
79
- collector = addDiagnostic(collector, createDiagnostic("TSN7403", "error", "Object literal requires a contextual nominal type. Provide a type annotation or define an interface.", getNodeLocation(sourceFile, node), "Add a type annotation like 'const x: MyType = { ... }' or define an interface."));
80
- }
81
- }
82
- }
83
- ts.forEachChild(node, visitor);
84
- };
85
- visitor(sourceFile);
86
- return collector;
87
- };
88
- /**
89
- * Find the containing function declaration/expression for a node
90
- */
91
- const findContainingFunction = (node) => {
92
- let current = node.parent;
93
- while (current) {
94
- if (ts.isFunctionDeclaration(current) ||
95
- ts.isFunctionExpression(current) ||
96
- ts.isArrowFunction(current) ||
97
- ts.isMethodDeclaration(current)) {
98
- return current;
99
- }
100
- current = current.parent;
101
- }
102
- return undefined;
103
- };
104
- /**
105
- * Check if a node is an argument to a call expression
106
- */
107
- const isCallExpressionArgument = (node) => {
108
- const parent = node.parent;
109
- if (ts.isCallExpression(parent)) {
110
- return parent.arguments.includes(node);
111
- }
112
- return false;
113
- };
114
- //# sourceMappingURL=aot-safety.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aot-safety.js","sourceRoot":"","sources":["../../src/validation/aot-safety.ts"],"names":[],"mappings":"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"}