@tsonic/frontend 0.0.63 → 0.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/dependency-graph.d.ts +1 -1
  3. package/dist/dependency-graph.d.ts.map +1 -1
  4. package/dist/dependency-graph.js +1 -1
  5. package/dist/dependency-graph.js.map +1 -1
  6. package/dist/graph/extraction/imports.d.ts +0 -5
  7. package/dist/graph/extraction/imports.d.ts.map +1 -1
  8. package/dist/graph/extraction/imports.js +4 -31
  9. package/dist/graph/extraction/imports.js.map +1 -1
  10. package/dist/graph/extraction/index.d.ts +1 -1
  11. package/dist/graph/extraction/index.d.ts.map +1 -1
  12. package/dist/graph/extraction/index.js +1 -1
  13. package/dist/graph/extraction/index.js.map +1 -1
  14. package/dist/graph/extraction/orchestrator.d.ts.map +1 -1
  15. package/dist/graph/extraction/orchestrator.js +1 -7
  16. package/dist/graph/extraction/orchestrator.js.map +1 -1
  17. package/dist/graph/extraction.d.ts +1 -1
  18. package/dist/graph/extraction.d.ts.map +1 -1
  19. package/dist/graph/extraction.js +1 -1
  20. package/dist/graph/extraction.js.map +1 -1
  21. package/dist/ir/binding/binding-types.d.ts +2 -2
  22. package/dist/ir/binding/binding-types.d.ts.map +1 -1
  23. package/dist/ir/binding-resolution.test.js +224 -0
  24. package/dist/ir/binding-resolution.test.js.map +1 -1
  25. package/dist/ir/bindings-disambiguation.test.js +149 -0
  26. package/dist/ir/bindings-disambiguation.test.js.map +1 -1
  27. package/dist/ir/builder/imports.d.ts.map +1 -1
  28. package/dist/ir/builder/imports.js +7 -4
  29. package/dist/ir/builder/imports.js.map +1 -1
  30. package/dist/ir/builder.test.js +193 -0
  31. package/dist/ir/builder.test.js.map +1 -1
  32. package/dist/ir/converters/expressions/access/binding-resolution.d.ts.map +1 -1
  33. package/dist/ir/converters/expressions/access/binding-resolution.js +55 -14
  34. package/dist/ir/converters/expressions/access/binding-resolution.js.map +1 -1
  35. package/dist/ir/converters/expressions/access/member-resolution.d.ts.map +1 -1
  36. package/dist/ir/converters/expressions/access/member-resolution.js +5 -0
  37. package/dist/ir/converters/expressions/access/member-resolution.js.map +1 -1
  38. package/dist/ir/converters/expressions/calls/call-converter.js +3 -3
  39. package/dist/ir/converters/expressions/calls/call-converter.js.map +1 -1
  40. package/dist/ir/program-context.d.ts +5 -0
  41. package/dist/ir/program-context.d.ts.map +1 -1
  42. package/dist/ir/program-context.js +1 -0
  43. package/dist/ir/program-context.js.map +1 -1
  44. package/dist/ir/type-system/internal/type-converter/orchestrator.d.ts.map +1 -1
  45. package/dist/ir/type-system/internal/type-converter/orchestrator.js +12 -5
  46. package/dist/ir/type-system/internal/type-converter/orchestrator.js.map +1 -1
  47. package/dist/ir/type-system/internal/type-converter/references.d.ts.map +1 -1
  48. package/dist/ir/type-system/internal/type-converter/references.js +6 -9
  49. package/dist/ir/type-system/internal/type-converter/references.js.map +1 -1
  50. package/dist/ir/type-system/internal/universe/clr-type-parser.d.ts.map +1 -1
  51. package/dist/ir/type-system/internal/universe/clr-type-parser.js +66 -0
  52. package/dist/ir/type-system/internal/universe/clr-type-parser.js.map +1 -1
  53. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts +2 -0
  54. package/dist/ir/type-system/internal/universe/clr-type-parser.test.d.ts.map +1 -0
  55. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js +55 -0
  56. package/dist/ir/type-system/internal/universe/clr-type-parser.test.js.map +1 -0
  57. package/dist/ir/type-system/type-system-call-resolution.d.ts.map +1 -1
  58. package/dist/ir/type-system/type-system-call-resolution.js +109 -3
  59. package/dist/ir/type-system/type-system-call-resolution.js.map +1 -1
  60. package/dist/ir/type-system/type-system-inference.d.ts.map +1 -1
  61. package/dist/ir/type-system/type-system-inference.js +38 -0
  62. package/dist/ir/type-system/type-system-inference.js.map +1 -1
  63. package/dist/ir/type-system/type-system-state.d.ts.map +1 -1
  64. package/dist/ir/type-system/type-system-state.js +33 -17
  65. package/dist/ir/type-system/type-system-state.js.map +1 -1
  66. package/dist/ir/type-system/type-system.d.ts.map +1 -1
  67. package/dist/ir/type-system/type-system.js.map +1 -1
  68. package/dist/ir/validation/anonymous-type-lowering-pass.d.ts.map +1 -1
  69. package/dist/ir/validation/anonymous-type-lowering-pass.js +34 -0
  70. package/dist/ir/validation/anonymous-type-lowering-pass.js.map +1 -1
  71. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts +2 -0
  72. package/dist/ir/validation/anonymous-type-lowering-regressions.test.d.ts.map +1 -0
  73. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js +121 -0
  74. package/dist/ir/validation/anonymous-type-lowering-regressions.test.js.map +1 -0
  75. package/dist/ir/validation/numeric-invariants.test.js +29 -0
  76. package/dist/ir/validation/numeric-invariants.test.js.map +1 -1
  77. package/dist/ir/validation/numeric-proof-pass.d.ts.map +1 -1
  78. package/dist/ir/validation/numeric-proof-pass.js +21 -0
  79. package/dist/ir/validation/numeric-proof-pass.js.map +1 -1
  80. package/dist/program/binding-loader.d.ts +3 -3
  81. package/dist/program/binding-loader.d.ts.map +1 -1
  82. package/dist/program/binding-loader.js +47 -23
  83. package/dist/program/binding-loader.js.map +1 -1
  84. package/dist/program/binding-registry.d.ts +7 -0
  85. package/dist/program/binding-registry.d.ts.map +1 -1
  86. package/dist/program/binding-registry.js +52 -1
  87. package/dist/program/binding-registry.js.map +1 -1
  88. package/dist/program/bindings.test.js +168 -0
  89. package/dist/program/bindings.test.js.map +1 -1
  90. package/dist/program/creation.d.ts.map +1 -1
  91. package/dist/program/creation.js +337 -77
  92. package/dist/program/creation.js.map +1 -1
  93. package/dist/program/creation.test.js +312 -1
  94. package/dist/program/creation.test.js.map +1 -1
  95. package/dist/program/diagnostics.d.ts +1 -1
  96. package/dist/program/diagnostics.d.ts.map +1 -1
  97. package/dist/program/diagnostics.js +47 -2
  98. package/dist/program/diagnostics.js.map +1 -1
  99. package/dist/program/diagnostics.test.d.ts +2 -0
  100. package/dist/program/diagnostics.test.d.ts.map +1 -0
  101. package/dist/program/diagnostics.test.js +58 -0
  102. package/dist/program/diagnostics.test.js.map +1 -0
  103. package/dist/program/metadata.d.ts.map +1 -1
  104. package/dist/program/metadata.js +8 -2
  105. package/dist/program/metadata.js.map +1 -1
  106. package/dist/program/types.d.ts +2 -0
  107. package/dist/program/types.d.ts.map +1 -1
  108. package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -1
  109. package/dist/resolver/clr-bindings-resolver.js +42 -4
  110. package/dist/resolver/clr-bindings-resolver.js.map +1 -1
  111. package/dist/resolver/import-resolution.d.ts.map +1 -1
  112. package/dist/resolver/import-resolution.js +6 -5
  113. package/dist/resolver/import-resolution.js.map +1 -1
  114. package/dist/resolver.test.js +75 -0
  115. package/dist/resolver.test.js.map +1 -1
  116. package/dist/surface/profiles.d.ts +13 -0
  117. package/dist/surface/profiles.d.ts.map +1 -0
  118. package/dist/surface/profiles.js +214 -0
  119. package/dist/surface/profiles.js.map +1 -0
  120. package/dist/surface/profiles.test.d.ts +2 -0
  121. package/dist/surface/profiles.test.d.ts.map +1 -0
  122. package/dist/surface/profiles.test.js +125 -0
  123. package/dist/surface/profiles.test.js.map +1 -0
  124. package/dist/validation/features.d.ts.map +1 -1
  125. package/dist/validation/features.js +1 -23
  126. package/dist/validation/features.js.map +1 -1
  127. package/dist/validation/features.test.js +4 -4
  128. package/dist/validation/features.test.js.map +1 -1
  129. package/dist/validation/imports.d.ts.map +1 -1
  130. package/dist/validation/imports.js +19 -5
  131. package/dist/validation/imports.js.map +1 -1
  132. package/dist/validation/imports.test.js +112 -5
  133. package/dist/validation/imports.test.js.map +1 -1
  134. package/dist/validator.maximus.test.js +4 -5
  135. package/dist/validator.maximus.test.js.map +1 -1
  136. package/package.json +2 -2
  137. package/dist/ir/converters/context.d.ts +0 -40
  138. package/dist/ir/converters/context.d.ts.map +0 -1
  139. package/dist/ir/converters/context.js +0 -25
  140. package/dist/ir/converters/context.js.map +0 -1
  141. package/dist/validation/unsupported-utility-types.d.ts +0 -40
  142. package/dist/validation/unsupported-utility-types.d.ts.map +0 -1
  143. package/dist/validation/unsupported-utility-types.js +0 -43
  144. package/dist/validation/unsupported-utility-types.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsonic/frontend",
3
- "version": "0.0.63",
3
+ "version": "0.0.65",
4
4
  "description": "TypeScript parser and IR builder for Tsonic compiler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -21,7 +21,7 @@
21
21
  "scripts": {
22
22
  "build": "tsc -b",
23
23
  "clean": "rm -rf dist *.tsbuildinfo",
24
- "pretest": "npm run build",
24
+ "pretest": "npm run clean && npm run build",
25
25
  "test": "mocha --require ../../test/mocha/checkpoint.cjs --parallel --timeout 10000 'dist/**/*.test.js'",
26
26
  "test:watch": "mocha --require ../../test/mocha/checkpoint.cjs 'dist/**/*.test.js' --watch"
27
27
  },
@@ -1,40 +0,0 @@
1
- /**
2
- * ConverterContext — Re-exports ProgramContext for backward compatibility
3
- *
4
- * Phase 5 Step 4: ConverterContext is now an alias for ProgramContext.
5
- * All converters use ProgramContext, but we keep ConverterContext as an alias
6
- * to avoid breaking existing code during migration.
7
- */
8
- import type { ProgramContext } from "../program-context.js";
9
- import type { Binding } from "../binding/index.js";
10
- import type { TypeAuthority } from "../type-system/type-system.js";
11
- import type { DotnetMetadataRegistry } from "../../dotnet-metadata.js";
12
- import type { BindingRegistry } from "../../program/bindings.js";
13
- import type { ClrBindingsResolver } from "../../resolver/clr-bindings-resolver.js";
14
- /**
15
- * ConverterContext is an alias for ProgramContext.
16
- *
17
- * Use ProgramContext directly in new code.
18
- */
19
- export type ConverterContext = ProgramContext;
20
- /**
21
- * Re-export ProgramContext for direct use.
22
- */
23
- export type { ProgramContext } from "../program-context.js";
24
- /**
25
- * Re-export createProgramContext for direct use.
26
- */
27
- export { createProgramContext } from "../program-context.js";
28
- /**
29
- * Create a ConverterContext from individual components.
30
- *
31
- * @deprecated Use createProgramContext instead.
32
- */
33
- export declare const createConverterContext: (params: {
34
- binding: Binding;
35
- typeSystem: TypeAuthority;
36
- metadata: DotnetMetadataRegistry;
37
- bindings: BindingRegistry;
38
- clrResolver: ClrBindingsResolver;
39
- }) => ConverterContext;
40
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/ir/converters/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE9C;;GAEG;AACH,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,mBAAmB,CAAC;CAClC,KAAG,gBAOF,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * ConverterContext — Re-exports ProgramContext for backward compatibility
3
- *
4
- * Phase 5 Step 4: ConverterContext is now an alias for ProgramContext.
5
- * All converters use ProgramContext, but we keep ConverterContext as an alias
6
- * to avoid breaking existing code during migration.
7
- */
8
- /**
9
- * Re-export createProgramContext for direct use.
10
- */
11
- export { createProgramContext } from "../program-context.js";
12
- /**
13
- * Create a ConverterContext from individual components.
14
- *
15
- * @deprecated Use createProgramContext instead.
16
- */
17
- export const createConverterContext = (params) => ({
18
- binding: params.binding,
19
- typeSystem: params.typeSystem,
20
- metadata: params.metadata,
21
- bindings: params.bindings,
22
- clrResolver: params.clrResolver,
23
- diagnostics: [],
24
- });
25
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/ir/converters/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAMtC,EAAoB,EAAE,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,UAAU,EAAE,MAAM,CAAC,UAAU;IAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Centralized list of unsupported TypeScript utility types
3
- *
4
- * These utility types internally use mapped or conditional types which are not
5
- * supported in Tsonic. They are detected by name in TypeReferenceNode validation.
6
- *
7
- * Note: This only applies to the built-in utility types from TypeScript's lib.
8
- * User-defined types with these names (without type arguments) are allowed.
9
- */
10
- /**
11
- * Mapped-type utility types (TSN7406)
12
- *
13
- * SUPPORTED (expanded at compile time for concrete types):
14
- * - Partial<T> → { [P in keyof T]?: T[P] }
15
- * - Required<T> → { [P in keyof T]-?: T[P] }
16
- * - Readonly<T> → { readonly [P in keyof T]: T[P] }
17
- * - Pick<T, K> → { [P in K]: T[P] }
18
- * - Omit<T, K> → { [P in Exclude<keyof T, K>]: T[P] }
19
- *
20
- * Note: Record<K, V> is handled separately (allowed when K is string, TSN7413 otherwise)
21
- * Note: ReadonlyArray<T> is NOT a mapped type - it maps to IReadOnlyList<T> and is supported
22
- */
23
- export declare const UNSUPPORTED_MAPPED_UTILITY_TYPES: Set<string>;
24
- /**
25
- * Conditional-type utility types (TSN7407)
26
- *
27
- * SUPPORTED (expanded at compile time for concrete types):
28
- * - Extract<T, U> → T extends U ? T : never
29
- * - Exclude<T, U> → T extends U ? never : T
30
- * - NonNullable<T> → T & {} (filters null/undefined from unions)
31
- * - ReturnType<T> → T extends (...args: any) => infer R ? R : any
32
- * - Parameters<T> → T extends (...args: infer P) => any ? P : never
33
- * - Awaited<T> → T extends PromiseLike<infer U> ? Awaited<U> : T
34
- *
35
- * SUPPORTED (expanded at compile time for concrete constructor shapes):
36
- * - ConstructorParameters<T>
37
- * - InstanceType<T>
38
- */
39
- export declare const UNSUPPORTED_CONDITIONAL_UTILITY_TYPES: Set<string>;
40
- //# sourceMappingURL=unsupported-utility-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unsupported-utility-types.d.ts","sourceRoot":"","sources":["../../src/validation/unsupported-utility-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC,aAG3C,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qCAAqC,aAAsB,CAAC"}
@@ -1,43 +0,0 @@
1
- /**
2
- * Centralized list of unsupported TypeScript utility types
3
- *
4
- * These utility types internally use mapped or conditional types which are not
5
- * supported in Tsonic. They are detected by name in TypeReferenceNode validation.
6
- *
7
- * Note: This only applies to the built-in utility types from TypeScript's lib.
8
- * User-defined types with these names (without type arguments) are allowed.
9
- */
10
- /**
11
- * Mapped-type utility types (TSN7406)
12
- *
13
- * SUPPORTED (expanded at compile time for concrete types):
14
- * - Partial<T> → { [P in keyof T]?: T[P] }
15
- * - Required<T> → { [P in keyof T]-?: T[P] }
16
- * - Readonly<T> → { readonly [P in keyof T]: T[P] }
17
- * - Pick<T, K> → { [P in K]: T[P] }
18
- * - Omit<T, K> → { [P in Exclude<keyof T, K>]: T[P] }
19
- *
20
- * Note: Record<K, V> is handled separately (allowed when K is string, TSN7413 otherwise)
21
- * Note: ReadonlyArray<T> is NOT a mapped type - it maps to IReadOnlyList<T> and is supported
22
- */
23
- export const UNSUPPORTED_MAPPED_UTILITY_TYPES = new Set([
24
- // Partial, Required, Readonly, Pick, Omit are now supported
25
- // They are expanded to IrObjectType in type-converter/utility-types.ts
26
- ]);
27
- /**
28
- * Conditional-type utility types (TSN7407)
29
- *
30
- * SUPPORTED (expanded at compile time for concrete types):
31
- * - Extract<T, U> → T extends U ? T : never
32
- * - Exclude<T, U> → T extends U ? never : T
33
- * - NonNullable<T> → T & {} (filters null/undefined from unions)
34
- * - ReturnType<T> → T extends (...args: any) => infer R ? R : any
35
- * - Parameters<T> → T extends (...args: infer P) => any ? P : never
36
- * - Awaited<T> → T extends PromiseLike<infer U> ? Awaited<U> : T
37
- *
38
- * SUPPORTED (expanded at compile time for concrete constructor shapes):
39
- * - ConstructorParameters<T>
40
- * - InstanceType<T>
41
- */
42
- export const UNSUPPORTED_CONDITIONAL_UTILITY_TYPES = new Set([]);
43
- //# sourceMappingURL=unsupported-utility-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unsupported-utility-types.js","sourceRoot":"","sources":["../../src/validation/unsupported-utility-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAS;AAC9D,4DAA4D;AAC5D,uEAAuE;CACxE,CAAC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAI,GAAG,CAAS,EAAE,CAAC,CAAC"}