@tsonic/frontend 0.0.1 → 0.0.4
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 -0
- package/{src/dependency-graph.ts → dist/dependency-graph.d.ts} +3 -11
- package/dist/dependency-graph.d.ts.map +1 -0
- package/dist/dependency-graph.js +9 -0
- package/dist/dependency-graph.js.map +1 -0
- package/dist/dotnet-metadata.d.ts +71 -0
- package/dist/dotnet-metadata.d.ts.map +1 -0
- package/dist/dotnet-metadata.js +78 -0
- package/dist/dotnet-metadata.js.map +1 -0
- package/dist/graph/builder.d.ts +10 -0
- package/dist/graph/builder.d.ts.map +1 -0
- package/dist/graph/builder.js +54 -0
- package/dist/graph/builder.js.map +1 -0
- package/dist/graph/circular.d.ts +10 -0
- package/dist/graph/circular.d.ts.map +1 -0
- package/dist/graph/circular.js +40 -0
- package/dist/graph/circular.js.map +1 -0
- package/dist/graph/extraction/exports.d.ts +10 -0
- package/dist/graph/extraction/exports.d.ts.map +1 -0
- package/dist/graph/extraction/exports.js +46 -0
- package/dist/graph/extraction/exports.js.map +1 -0
- package/dist/graph/extraction/imports.d.ts +11 -0
- package/dist/graph/extraction/imports.d.ts.map +1 -0
- package/dist/graph/extraction/imports.js +63 -0
- package/dist/graph/extraction/imports.js.map +1 -0
- package/dist/graph/extraction/index.d.ts +7 -0
- package/dist/graph/extraction/index.d.ts.map +1 -0
- package/{src/graph/extraction/index.ts → dist/graph/extraction/index.js} +1 -1
- package/dist/graph/extraction/index.js.map +1 -0
- package/dist/graph/extraction/orchestrator.d.ts +11 -0
- package/dist/graph/extraction/orchestrator.d.ts.map +1 -0
- package/dist/graph/extraction/orchestrator.js +78 -0
- package/dist/graph/extraction/orchestrator.js.map +1 -0
- package/dist/graph/extraction.d.ts +6 -0
- package/dist/graph/extraction.d.ts.map +1 -0
- package/{src/graph/extraction.ts → dist/graph/extraction.js} +2 -6
- package/dist/graph/extraction.js.map +1 -0
- package/dist/graph/helpers.d.ts +17 -0
- package/dist/graph/helpers.d.ts.map +1 -0
- package/dist/graph/helpers.js +40 -0
- package/dist/graph/helpers.js.map +1 -0
- package/{src/graph/index.ts → dist/graph/index.d.ts} +3 -11
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +8 -0
- package/dist/graph/index.js.map +1 -0
- package/{src/graph/types.ts → dist/graph/types.d.ts} +4 -5
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +5 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/binding-resolution.test.d.ts +5 -0
- package/dist/ir/binding-resolution.test.d.ts.map +1 -0
- package/dist/ir/binding-resolution.test.js +518 -0
- package/dist/ir/binding-resolution.test.js.map +1 -0
- package/dist/ir/builder/exports.d.ts +10 -0
- package/dist/ir/builder/exports.d.ts.map +1 -0
- package/dist/ir/builder/exports.js +75 -0
- package/dist/ir/builder/exports.js.map +1 -0
- package/dist/ir/builder/helpers.d.ts +13 -0
- package/dist/ir/builder/helpers.d.ts.map +1 -0
- package/dist/ir/builder/helpers.js +23 -0
- package/dist/ir/builder/helpers.js.map +1 -0
- package/dist/ir/builder/imports.d.ts +18 -0
- package/dist/ir/builder/imports.d.ts.map +1 -0
- package/dist/ir/builder/imports.js +123 -0
- package/dist/ir/builder/imports.js.map +1 -0
- package/{src/ir/builder/index.ts → dist/ir/builder/index.d.ts} +1 -1
- package/dist/ir/builder/index.d.ts.map +1 -0
- package/dist/ir/builder/index.js +9 -0
- package/dist/ir/builder/index.js.map +1 -0
- package/dist/ir/builder/orchestrator.d.ts +18 -0
- package/dist/ir/builder/orchestrator.d.ts.map +1 -0
- package/dist/ir/builder/orchestrator.js +121 -0
- package/dist/ir/builder/orchestrator.js.map +1 -0
- package/dist/ir/builder/statements.d.ts +14 -0
- package/dist/ir/builder/statements.d.ts.map +1 -0
- package/dist/ir/builder/statements.js +43 -0
- package/dist/ir/builder/statements.js.map +1 -0
- package/dist/ir/builder/types.d.ts +8 -0
- package/dist/ir/builder/types.d.ts.map +1 -0
- package/dist/ir/builder/types.js +5 -0
- package/dist/ir/builder/types.js.map +1 -0
- package/dist/ir/builder/validation.d.ts +10 -0
- package/dist/ir/builder/validation.d.ts.map +1 -0
- package/dist/ir/builder/validation.js +86 -0
- package/dist/ir/builder/validation.js.map +1 -0
- package/{src/ir/builder.ts → dist/ir/builder.d.ts} +2 -5
- package/dist/ir/builder.d.ts.map +1 -0
- package/dist/ir/builder.js +10 -0
- package/dist/ir/builder.js.map +1 -0
- package/dist/ir/builder.test.d.ts +5 -0
- package/dist/ir/builder.test.d.ts.map +1 -0
- package/dist/ir/builder.test.js +498 -0
- package/dist/ir/builder.test.js.map +1 -0
- package/dist/ir/converters/expressions/access.d.ts +10 -0
- package/dist/ir/converters/expressions/access.d.ts.map +1 -0
- package/dist/ir/converters/expressions/access.js +132 -0
- package/dist/ir/converters/expressions/access.js.map +1 -0
- package/dist/ir/converters/expressions/calls.d.ts +14 -0
- package/dist/ir/converters/expressions/calls.d.ts.map +1 -0
- package/dist/ir/converters/expressions/calls.js +104 -0
- package/dist/ir/converters/expressions/calls.js.map +1 -0
- package/dist/ir/converters/expressions/collections.d.ts +14 -0
- package/dist/ir/converters/expressions/collections.d.ts.map +1 -0
- package/dist/ir/converters/expressions/collections.js +70 -0
- package/dist/ir/converters/expressions/collections.js.map +1 -0
- package/dist/ir/converters/expressions/functions.d.ts +14 -0
- package/dist/ir/converters/expressions/functions.d.ts.map +1 -0
- package/dist/ir/converters/expressions/functions.js +42 -0
- package/dist/ir/converters/expressions/functions.js.map +1 -0
- package/dist/ir/converters/expressions/helpers.d.ts +43 -0
- package/dist/ir/converters/expressions/helpers.d.ts.map +1 -0
- package/dist/ir/converters/expressions/helpers.js +217 -0
- package/dist/ir/converters/expressions/helpers.js.map +1 -0
- package/dist/ir/converters/expressions/index.d.ts +12 -0
- package/dist/ir/converters/expressions/index.d.ts.map +1 -0
- package/dist/ir/converters/expressions/index.js +20 -0
- package/dist/ir/converters/expressions/index.js.map +1 -0
- package/dist/ir/converters/expressions/literals.d.ts +10 -0
- package/dist/ir/converters/expressions/literals.d.ts.map +1 -0
- package/dist/ir/converters/expressions/literals.js +17 -0
- package/dist/ir/converters/expressions/literals.js.map +1 -0
- package/dist/ir/converters/expressions/operators.d.ts +18 -0
- package/dist/ir/converters/expressions/operators.d.ts.map +1 -0
- package/dist/ir/converters/expressions/operators.js +111 -0
- package/dist/ir/converters/expressions/operators.js.map +1 -0
- package/dist/ir/converters/expressions/other.d.ts +14 -0
- package/dist/ir/converters/expressions/other.d.ts.map +1 -0
- package/dist/ir/converters/expressions/other.js +44 -0
- package/dist/ir/converters/expressions/other.js.map +1 -0
- package/dist/ir/converters/statements/control/blocks.d.ts +10 -0
- package/dist/ir/converters/statements/control/blocks.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/blocks.js +16 -0
- package/dist/ir/converters/statements/control/blocks.js.map +1 -0
- package/dist/ir/converters/statements/control/conditionals.d.ts +18 -0
- package/dist/ir/converters/statements/control/conditionals.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/conditionals.js +46 -0
- package/dist/ir/converters/statements/control/conditionals.js.map +1 -0
- package/dist/ir/converters/statements/control/exceptions.d.ts +14 -0
- package/dist/ir/converters/statements/control/exceptions.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/exceptions.js +33 -0
- package/dist/ir/converters/statements/control/exceptions.js.map +1 -0
- package/dist/ir/converters/statements/control/index.d.ts +8 -0
- package/dist/ir/converters/statements/control/index.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/index.js +8 -0
- package/dist/ir/converters/statements/control/index.js.map +1 -0
- package/dist/ir/converters/statements/control/loops.d.ts +22 -0
- package/dist/ir/converters/statements/control/loops.d.ts.map +1 -0
- package/dist/ir/converters/statements/control/loops.js +75 -0
- package/dist/ir/converters/statements/control/loops.js.map +1 -0
- package/dist/ir/converters/statements/control.d.ts +6 -0
- package/dist/ir/converters/statements/control.d.ts.map +1 -0
- package/dist/ir/converters/statements/control.js +6 -0
- package/dist/ir/converters/statements/control.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/constructors.d.ts +14 -0
- package/dist/ir/converters/statements/declarations/classes/constructors.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/constructors.js +91 -0
- package/dist/ir/converters/statements/declarations/classes/constructors.js.map +1 -0
- package/{src/ir/converters/statements/declarations/classes/index.ts → dist/ir/converters/statements/declarations/classes/index.d.ts} +2 -5
- package/dist/ir/converters/statements/declarations/classes/index.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/index.js +9 -0
- package/dist/ir/converters/statements/declarations/classes/index.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/methods.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/classes/methods.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/methods.js +39 -0
- package/dist/ir/converters/statements/declarations/classes/methods.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/classes/orchestrator.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/orchestrator.js +123 -0
- package/dist/ir/converters/statements/declarations/classes/orchestrator.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts +13 -0
- package/dist/ir/converters/statements/declarations/classes/override-detection.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/override-detection.js +79 -0
- package/dist/ir/converters/statements/declarations/classes/override-detection.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/properties.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/classes/properties.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/classes/properties.js +42 -0
- package/dist/ir/converters/statements/declarations/classes/properties.js.map +1 -0
- package/dist/ir/converters/statements/declarations/classes.d.ts +6 -0
- package/dist/ir/converters/statements/declarations/classes.d.ts.map +1 -0
- package/{src/ir/converters/statements/declarations/classes.ts → dist/ir/converters/statements/declarations/classes.js} +1 -1
- package/dist/ir/converters/statements/declarations/classes.js.map +1 -0
- package/dist/ir/converters/statements/declarations/enums.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/enums.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/enums.js +24 -0
- package/dist/ir/converters/statements/declarations/enums.js.map +1 -0
- package/dist/ir/converters/statements/declarations/functions.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/functions.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/functions.js +28 -0
- package/dist/ir/converters/statements/declarations/functions.js.map +1 -0
- package/dist/ir/converters/statements/declarations/index.d.ts +11 -0
- package/dist/ir/converters/statements/declarations/index.d.ts.map +1 -0
- package/{src/ir/converters/statements/declarations/index.ts → dist/ir/converters/statements/declarations/index.js} +2 -5
- package/dist/ir/converters/statements/declarations/index.js.map +1 -0
- package/dist/ir/converters/statements/declarations/interfaces.d.ts +15 -0
- package/dist/ir/converters/statements/declarations/interfaces.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/interfaces.js +96 -0
- package/dist/ir/converters/statements/declarations/interfaces.js.map +1 -0
- package/dist/ir/converters/statements/declarations/registry.d.ts +24 -0
- package/dist/ir/converters/statements/declarations/registry.d.ts.map +1 -0
- package/{src/ir/converters/statements/declarations/registry.ts → dist/ir/converters/statements/declarations/registry.js} +9 -16
- package/dist/ir/converters/statements/declarations/registry.js.map +1 -0
- package/dist/ir/converters/statements/declarations/type-aliases.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/type-aliases.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/type-aliases.js +19 -0
- package/dist/ir/converters/statements/declarations/type-aliases.js.map +1 -0
- package/dist/ir/converters/statements/declarations/variables.d.ts +10 -0
- package/dist/ir/converters/statements/declarations/variables.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations/variables.js +45 -0
- package/dist/ir/converters/statements/declarations/variables.js.map +1 -0
- package/dist/ir/converters/statements/declarations.d.ts +6 -0
- package/dist/ir/converters/statements/declarations.d.ts.map +1 -0
- package/dist/ir/converters/statements/declarations.js +6 -0
- package/dist/ir/converters/statements/declarations.js.map +1 -0
- package/dist/ir/converters/statements/helpers.d.ts +34 -0
- package/dist/ir/converters/statements/helpers.d.ts.map +1 -0
- package/dist/ir/converters/statements/helpers.js +137 -0
- package/dist/ir/converters/statements/helpers.js.map +1 -0
- package/dist/ir/converters/statements/index.d.ts +7 -0
- package/dist/ir/converters/statements/index.d.ts.map +1 -0
- package/dist/ir/converters/statements/index.js +10 -0
- package/dist/ir/converters/statements/index.js.map +1 -0
- package/dist/ir/expression-converter.d.ts +13 -0
- package/dist/ir/expression-converter.d.ts.map +1 -0
- package/dist/ir/expression-converter.js +167 -0
- package/dist/ir/expression-converter.js.map +1 -0
- package/dist/ir/generic-validator.d.ts +38 -0
- package/dist/ir/generic-validator.d.ts.map +1 -0
- package/dist/ir/generic-validator.js +69 -0
- package/dist/ir/generic-validator.js.map +1 -0
- package/dist/ir/hierarchical-bindings-e2e.test.d.ts +6 -0
- package/dist/ir/hierarchical-bindings-e2e.test.d.ts.map +1 -0
- package/dist/ir/hierarchical-bindings-e2e.test.js +129 -0
- package/dist/ir/hierarchical-bindings-e2e.test.js.map +1 -0
- package/{src/ir/index.ts → dist/ir/index.d.ts} +1 -1
- package/dist/ir/index.d.ts.map +1 -0
- package/dist/ir/index.js +6 -0
- package/dist/ir/index.js.map +1 -0
- package/dist/ir/statement-converter.d.ts +14 -0
- package/dist/ir/statement-converter.d.ts.map +1 -0
- package/dist/ir/statement-converter.js +100 -0
- package/dist/ir/statement-converter.js.map +1 -0
- package/dist/ir/type-converter/arrays.d.ts +10 -0
- package/dist/ir/type-converter/arrays.d.ts.map +1 -0
- package/dist/ir/type-converter/arrays.js +13 -0
- package/dist/ir/type-converter/arrays.js.map +1 -0
- package/dist/ir/type-converter/converter.d.ts +6 -0
- package/dist/ir/type-converter/converter.d.ts.map +1 -0
- package/dist/ir/type-converter/converter.js +6 -0
- package/dist/ir/type-converter/converter.js.map +1 -0
- package/dist/ir/type-converter/functions.d.ts +10 -0
- package/dist/ir/type-converter/functions.d.ts.map +1 -0
- package/dist/ir/type-converter/functions.js +15 -0
- package/dist/ir/type-converter/functions.js.map +1 -0
- package/dist/ir/type-converter/index.d.ts +7 -0
- package/dist/ir/type-converter/index.d.ts.map +1 -0
- package/{src/ir/type-converter/index.ts → dist/ir/type-converter/index.js} +2 -6
- package/dist/ir/type-converter/index.js.map +1 -0
- package/dist/ir/type-converter/inference.d.ts +20 -0
- package/dist/ir/type-converter/inference.d.ts.map +1 -0
- package/dist/ir/type-converter/inference.js +105 -0
- package/dist/ir/type-converter/inference.js.map +1 -0
- package/dist/ir/type-converter/literals.d.ts +10 -0
- package/dist/ir/type-converter/literals.d.ts.map +1 -0
- package/dist/ir/type-converter/literals.js +31 -0
- package/dist/ir/type-converter/literals.js.map +1 -0
- package/dist/ir/type-converter/objects.d.ts +16 -0
- package/dist/ir/type-converter/objects.d.ts.map +1 -0
- package/dist/ir/type-converter/objects.js +82 -0
- package/dist/ir/type-converter/objects.js.map +1 -0
- package/dist/ir/type-converter/orchestrator.d.ts +13 -0
- package/dist/ir/type-converter/orchestrator.d.ts.map +1 -0
- package/dist/ir/type-converter/orchestrator.js +59 -0
- package/dist/ir/type-converter/orchestrator.js.map +1 -0
- package/dist/ir/type-converter/patterns.d.ts +10 -0
- package/dist/ir/type-converter/patterns.d.ts.map +1 -0
- package/dist/ir/type-converter/patterns.js +66 -0
- package/dist/ir/type-converter/patterns.js.map +1 -0
- package/dist/ir/type-converter/primitives.d.ts +18 -0
- package/dist/ir/type-converter/primitives.d.ts.map +1 -0
- package/dist/ir/type-converter/primitives.js +47 -0
- package/dist/ir/type-converter/primitives.js.map +1 -0
- package/dist/ir/type-converter/references.d.ts +11 -0
- package/dist/ir/type-converter/references.d.ts.map +1 -0
- package/dist/ir/type-converter/references.js +62 -0
- package/dist/ir/type-converter/references.js.map +1 -0
- package/dist/ir/type-converter/unions-intersections.d.ts +14 -0
- package/dist/ir/type-converter/unions-intersections.d.ts.map +1 -0
- package/dist/ir/type-converter/unions-intersections.js +22 -0
- package/dist/ir/type-converter/unions-intersections.js.map +1 -0
- package/dist/ir/type-converter.d.ts +6 -0
- package/dist/ir/type-converter.d.ts.map +1 -0
- package/dist/ir/type-converter.js +6 -0
- package/dist/ir/type-converter.js.map +1 -0
- package/dist/ir/types/expressions.d.ts +164 -0
- package/dist/ir/types/expressions.d.ts.map +1 -0
- package/dist/ir/types/expressions.js +5 -0
- package/dist/ir/types/expressions.js.map +1 -0
- package/dist/ir/types/guards.d.ts +8 -0
- package/dist/ir/types/guards.d.ts.map +1 -0
- package/dist/ir/types/guards.js +31 -0
- package/dist/ir/types/guards.js.map +1 -0
- package/dist/ir/types/helpers.d.ts +65 -0
- package/dist/ir/types/helpers.d.ts.map +1 -0
- package/dist/ir/types/helpers.js +5 -0
- package/dist/ir/types/helpers.js.map +1 -0
- package/dist/ir/types/index.d.ts +11 -0
- package/dist/ir/types/index.d.ts.map +1 -0
- package/dist/ir/types/index.js +7 -0
- package/dist/ir/types/index.js.map +1 -0
- package/dist/ir/types/ir-types.d.ts +79 -0
- package/dist/ir/types/ir-types.d.ts.map +1 -0
- package/dist/ir/types/ir-types.js +5 -0
- package/dist/ir/types/ir-types.js.map +1 -0
- package/dist/ir/types/module.d.ts +56 -0
- package/dist/ir/types/module.d.ts.map +1 -0
- package/dist/ir/types/module.js +5 -0
- package/dist/ir/types/module.js.map +1 -0
- package/dist/ir/types/statements.d.ts +182 -0
- package/dist/ir/types/statements.d.ts.map +1 -0
- package/dist/ir/types/statements.js +5 -0
- package/dist/ir/types/statements.js.map +1 -0
- package/dist/ir/types.d.ts +7 -0
- package/dist/ir/types.d.ts.map +1 -0
- package/dist/ir/types.js +7 -0
- package/dist/ir/types.js.map +1 -0
- package/dist/metadata/bindings-loader.d.ts +41 -0
- package/dist/metadata/bindings-loader.d.ts.map +1 -0
- package/dist/metadata/bindings-loader.js +308 -0
- package/dist/metadata/bindings-loader.js.map +1 -0
- package/dist/metadata/bindings-loader.test.d.ts +5 -0
- package/dist/metadata/bindings-loader.test.d.ts.map +1 -0
- package/dist/metadata/bindings-loader.test.js +117 -0
- package/dist/metadata/bindings-loader.test.js.map +1 -0
- package/{src/metadata/index.ts → dist/metadata/index.d.ts} +2 -9
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +7 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/library-loader.d.ts +42 -0
- package/dist/metadata/library-loader.d.ts.map +1 -0
- package/dist/metadata/library-loader.js +126 -0
- package/dist/metadata/library-loader.js.map +1 -0
- package/dist/metadata/loader.d.ts +26 -0
- package/dist/metadata/loader.d.ts.map +1 -0
- package/dist/metadata/loader.js +333 -0
- package/dist/metadata/loader.js.map +1 -0
- package/dist/metadata/loader.test.d.ts +5 -0
- package/dist/metadata/loader.test.d.ts.map +1 -0
- package/dist/metadata/loader.test.js +119 -0
- package/dist/metadata/loader.test.js.map +1 -0
- package/dist/program/bindings.d.ts +159 -0
- package/dist/program/bindings.d.ts.map +1 -0
- package/dist/program/bindings.js +329 -0
- package/dist/program/bindings.js.map +1 -0
- package/dist/program/bindings.test.d.ts +5 -0
- package/dist/program/bindings.test.d.ts.map +1 -0
- package/dist/program/bindings.test.js +435 -0
- package/dist/program/bindings.test.js.map +1 -0
- package/dist/program/config.d.ts +9 -0
- package/dist/program/config.d.ts.map +1 -0
- package/dist/program/config.js +29 -0
- package/dist/program/config.js.map +1 -0
- package/dist/program/creation.d.ts +17 -0
- package/dist/program/creation.d.ts.map +1 -0
- package/dist/program/creation.js +182 -0
- package/dist/program/creation.js.map +1 -0
- package/dist/program/dependency-graph.d.ts +19 -0
- package/dist/program/dependency-graph.d.ts.map +1 -0
- package/dist/program/dependency-graph.js +230 -0
- package/dist/program/dependency-graph.js.map +1 -0
- package/dist/program/diagnostics.d.ts +23 -0
- package/dist/program/diagnostics.d.ts.map +1 -0
- package/dist/program/diagnostics.js +65 -0
- package/dist/program/diagnostics.js.map +1 -0
- package/{src/program/index.ts → dist/program/index.d.ts} +3 -10
- package/dist/program/index.d.ts.map +1 -0
- package/dist/program/index.js +11 -0
- package/dist/program/index.js.map +1 -0
- package/dist/program/metadata.d.ts +10 -0
- package/dist/program/metadata.d.ts.map +1 -0
- package/dist/program/metadata.js +56 -0
- package/dist/program/metadata.js.map +1 -0
- package/dist/program/queries.d.ts +10 -0
- package/dist/program/queries.d.ts.map +1 -0
- package/dist/program/queries.js +12 -0
- package/dist/program/queries.js.map +1 -0
- package/dist/program/types.d.ts +36 -0
- package/dist/program/types.d.ts.map +1 -0
- package/dist/program/types.js +5 -0
- package/dist/program/types.js.map +1 -0
- package/{src/program.ts → dist/program.d.ts} +2 -7
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +6 -0
- package/dist/program.js.map +1 -0
- package/dist/resolver/clr-bindings-resolver.d.ts +84 -0
- package/dist/resolver/clr-bindings-resolver.d.ts.map +1 -0
- package/dist/resolver/clr-bindings-resolver.js +224 -0
- package/dist/resolver/clr-bindings-resolver.js.map +1 -0
- package/dist/resolver/import-resolution.d.ts +20 -0
- package/dist/resolver/import-resolution.d.ts.map +1 -0
- package/dist/resolver/import-resolution.js +102 -0
- package/dist/resolver/import-resolution.js.map +1 -0
- package/{src/resolver/index.ts → dist/resolver/index.d.ts} +3 -11
- package/dist/resolver/index.d.ts.map +1 -0
- package/dist/resolver/index.js +9 -0
- package/dist/resolver/index.js.map +1 -0
- package/dist/resolver/namespace.d.ts +20 -0
- package/dist/resolver/namespace.d.ts.map +1 -0
- package/dist/resolver/namespace.js +35 -0
- package/dist/resolver/namespace.js.map +1 -0
- package/dist/resolver/namespace.test.d.ts +2 -0
- package/dist/resolver/namespace.test.d.ts.map +1 -0
- package/dist/resolver/namespace.test.js +42 -0
- package/dist/resolver/namespace.test.js.map +1 -0
- package/dist/resolver/naming.d.ts +12 -0
- package/dist/resolver/naming.d.ts.map +1 -0
- package/dist/resolver/naming.js +30 -0
- package/dist/resolver/naming.js.map +1 -0
- package/dist/resolver/path-resolution.d.ts +8 -0
- package/dist/resolver/path-resolution.d.ts.map +1 -0
- package/dist/resolver/path-resolution.js +16 -0
- package/dist/resolver/path-resolution.js.map +1 -0
- package/dist/resolver/types.d.ts +13 -0
- package/dist/resolver/types.d.ts.map +1 -0
- package/dist/resolver/types.js +5 -0
- package/dist/resolver/types.js.map +1 -0
- package/dist/resolver.d.ts +7 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +6 -0
- package/dist/resolver.js.map +1 -0
- package/dist/resolver.test.d.ts +5 -0
- package/dist/resolver.test.d.ts.map +1 -0
- package/dist/resolver.test.js +93 -0
- package/dist/resolver.test.js.map +1 -0
- package/dist/symbol-table/builder.d.ts +10 -0
- package/dist/symbol-table/builder.d.ts.map +1 -0
- package/dist/symbol-table/builder.js +105 -0
- package/dist/symbol-table/builder.js.map +1 -0
- package/dist/symbol-table/creation.d.ts +13 -0
- package/dist/symbol-table/creation.d.ts.map +1 -0
- package/dist/symbol-table/creation.js +36 -0
- package/dist/symbol-table/creation.js.map +1 -0
- package/dist/symbol-table/helpers.d.ts +9 -0
- package/dist/symbol-table/helpers.d.ts.map +1 -0
- package/dist/symbol-table/helpers.js +15 -0
- package/dist/symbol-table/helpers.js.map +1 -0
- package/{src/symbol-table/index.ts → dist/symbol-table/index.d.ts} +2 -6
- package/dist/symbol-table/index.d.ts.map +1 -0
- package/dist/symbol-table/index.js +8 -0
- package/dist/symbol-table/index.js.map +1 -0
- package/dist/symbol-table/queries.d.ts +17 -0
- package/dist/symbol-table/queries.d.ts.map +1 -0
- package/dist/symbol-table/queries.js +27 -0
- package/dist/symbol-table/queries.js.map +1 -0
- package/dist/symbol-table/types.d.ts +18 -0
- package/dist/symbol-table/types.d.ts.map +1 -0
- package/dist/symbol-table/types.js +5 -0
- package/dist/symbol-table/types.js.map +1 -0
- package/{src/symbol-table.ts → dist/symbol-table.d.ts} +2 -9
- package/dist/symbol-table.d.ts.map +1 -0
- package/dist/symbol-table.js +6 -0
- package/dist/symbol-table.js.map +1 -0
- package/dist/types/bindings.d.ts +153 -0
- package/dist/types/bindings.d.ts.map +1 -0
- package/dist/types/bindings.js +14 -0
- package/dist/types/bindings.js.map +1 -0
- package/dist/types/diagnostic.d.ts +30 -0
- package/dist/types/diagnostic.d.ts.map +1 -0
- package/dist/types/diagnostic.js +37 -0
- package/dist/types/diagnostic.js.map +1 -0
- package/dist/types/diagnostic.test.d.ts +5 -0
- package/dist/types/diagnostic.test.d.ts.map +1 -0
- package/dist/types/diagnostic.test.js +94 -0
- package/dist/types/diagnostic.test.js.map +1 -0
- package/dist/types/explicit-views.d.ts +97 -0
- package/dist/types/explicit-views.d.ts.map +1 -0
- package/dist/types/explicit-views.js +163 -0
- package/dist/types/explicit-views.js.map +1 -0
- package/dist/types/explicit-views.test.d.ts +5 -0
- package/dist/types/explicit-views.test.d.ts.map +1 -0
- package/dist/types/explicit-views.test.js +67 -0
- package/dist/types/explicit-views.test.js.map +1 -0
- package/dist/types/metadata.d.ts +196 -0
- package/dist/types/metadata.d.ts.map +1 -0
- package/dist/types/metadata.js +10 -0
- package/dist/types/metadata.js.map +1 -0
- package/dist/types/module.d.ts +51 -0
- package/dist/types/module.d.ts.map +1 -0
- package/dist/types/module.js +28 -0
- package/dist/types/module.js.map +1 -0
- package/dist/types/nested-types.d.ts +111 -0
- package/dist/types/nested-types.d.ts.map +1 -0
- package/dist/types/nested-types.js +176 -0
- package/dist/types/nested-types.js.map +1 -0
- package/dist/types/nested-types.test.d.ts +5 -0
- package/dist/types/nested-types.test.d.ts.map +1 -0
- package/dist/types/nested-types.test.js +135 -0
- package/dist/types/nested-types.test.js.map +1 -0
- package/dist/types/parameter-modifiers.d.ts +55 -0
- package/dist/types/parameter-modifiers.d.ts.map +1 -0
- package/dist/types/parameter-modifiers.js +148 -0
- package/dist/types/parameter-modifiers.js.map +1 -0
- package/dist/types/ref-parameters.d.ts +123 -0
- package/dist/types/ref-parameters.d.ts.map +1 -0
- package/dist/types/ref-parameters.js +203 -0
- package/dist/types/ref-parameters.js.map +1 -0
- package/dist/types/ref-parameters.test.d.ts +5 -0
- package/dist/types/ref-parameters.test.d.ts.map +1 -0
- package/dist/types/ref-parameters.test.js +147 -0
- package/dist/types/ref-parameters.test.js.map +1 -0
- package/dist/types/result.d.ts +26 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +19 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/result.test.d.ts +5 -0
- package/dist/types/result.test.d.ts.map +1 -0
- package/dist/types/result.test.js +121 -0
- package/dist/types/result.test.js.map +1 -0
- package/dist/types/support-types.d.ts +103 -0
- package/dist/types/support-types.d.ts.map +1 -0
- package/dist/types/support-types.js +220 -0
- package/dist/types/support-types.js.map +1 -0
- package/dist/types/support-types.test.d.ts +5 -0
- package/dist/types/support-types.test.d.ts.map +1 -0
- package/dist/types/support-types.test.js +53 -0
- package/dist/types/support-types.test.js.map +1 -0
- package/dist/types/test-harness.d.ts +34 -0
- package/dist/types/test-harness.d.ts.map +1 -0
- package/dist/types/test-harness.js +127 -0
- package/dist/types/test-harness.js.map +1 -0
- package/dist/validation/exports.d.ts +11 -0
- package/dist/validation/exports.d.ts.map +1 -0
- package/dist/validation/exports.js +56 -0
- package/dist/validation/exports.js.map +1 -0
- package/dist/validation/features.d.ts +11 -0
- package/dist/validation/features.d.ts.map +1 -0
- package/dist/validation/features.js +36 -0
- package/dist/validation/features.js.map +1 -0
- package/dist/validation/generics.d.ts +11 -0
- package/dist/validation/generics.d.ts.map +1 -0
- package/dist/validation/generics.js +31 -0
- package/dist/validation/generics.js.map +1 -0
- package/dist/validation/helpers.d.ts +15 -0
- package/dist/validation/helpers.d.ts.map +1 -0
- package/dist/validation/helpers.js +18 -0
- package/dist/validation/helpers.js.map +1 -0
- package/dist/validation/imports.d.ts +15 -0
- package/dist/validation/imports.d.ts.map +1 -0
- package/dist/validation/imports.js +42 -0
- package/dist/validation/imports.js.map +1 -0
- package/dist/validation/index.d.ts +11 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/{src/validation/index.ts → dist/validation/index.js} +1 -1
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/orchestrator.d.ts +15 -0
- package/dist/validation/orchestrator.d.ts.map +1 -0
- package/dist/validation/orchestrator.js +30 -0
- package/dist/validation/orchestrator.js.map +1 -0
- package/dist/validation/static-safety.d.ts +23 -0
- package/dist/validation/static-safety.d.ts.map +1 -0
- package/dist/validation/static-safety.js +165 -0
- package/dist/validation/static-safety.js.map +1 -0
- package/dist/validator.d.ts +6 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +6 -0
- package/dist/validator.js.map +1 -0
- package/dist/validator.test.d.ts +11 -0
- package/dist/validator.test.d.ts.map +1 -0
- package/dist/validator.test.js +341 -0
- package/dist/validator.test.js.map +1 -0
- package/package.json +4 -1
- package/src/dotnet-metadata.ts +0 -121
- package/src/graph/builder.ts +0 -81
- package/src/graph/circular.ts +0 -58
- package/src/graph/extraction/exports.ts +0 -55
- package/src/graph/extraction/imports.ts +0 -81
- package/src/graph/extraction/orchestrator.ts +0 -99
- package/src/graph/helpers.ts +0 -51
- package/src/index.ts +0 -80
- package/src/ir/binding-resolution.test.ts +0 -585
- package/src/ir/builder/exports.ts +0 -78
- package/src/ir/builder/helpers.ts +0 -27
- package/src/ir/builder/imports.ts +0 -153
- package/src/ir/builder/orchestrator.ts +0 -178
- package/src/ir/builder/statements.ts +0 -55
- package/src/ir/builder/types.ts +0 -8
- package/src/ir/builder/validation.ts +0 -129
- package/src/ir/builder.test.ts +0 -581
- package/src/ir/converters/expressions/access.ts +0 -99
- package/src/ir/converters/expressions/calls.ts +0 -137
- package/src/ir/converters/expressions/collections.ts +0 -84
- package/src/ir/converters/expressions/functions.ts +0 -62
- package/src/ir/converters/expressions/helpers.ts +0 -264
- package/src/ir/converters/expressions/index.ts +0 -43
- package/src/ir/converters/expressions/literals.ts +0 -22
- package/src/ir/converters/expressions/operators.ts +0 -147
- package/src/ir/converters/expressions/other.ts +0 -60
- package/src/ir/converters/statements/control/blocks.ts +0 -22
- package/src/ir/converters/statements/control/conditionals.ts +0 -67
- package/src/ir/converters/statements/control/exceptions.ts +0 -43
- package/src/ir/converters/statements/control/index.ts +0 -17
- package/src/ir/converters/statements/control/loops.ts +0 -99
- package/src/ir/converters/statements/control.ts +0 -17
- package/src/ir/converters/statements/declarations/classes/constructors.ts +0 -120
- package/src/ir/converters/statements/declarations/classes/methods.ts +0 -61
- package/src/ir/converters/statements/declarations/classes/orchestrator.ts +0 -166
- package/src/ir/converters/statements/declarations/classes/override-detection.ts +0 -116
- package/src/ir/converters/statements/declarations/classes/properties.ts +0 -63
- package/src/ir/converters/statements/declarations/enums.ts +0 -29
- package/src/ir/converters/statements/declarations/functions.ts +0 -39
- package/src/ir/converters/statements/declarations/interfaces.ts +0 -131
- package/src/ir/converters/statements/declarations/type-aliases.ts +0 -25
- package/src/ir/converters/statements/declarations/variables.ts +0 -60
- package/src/ir/converters/statements/declarations.ts +0 -16
- package/src/ir/converters/statements/helpers.ts +0 -174
- package/src/ir/converters/statements/index.ts +0 -40
- package/src/ir/expression-converter.ts +0 -207
- package/src/ir/generic-validator.ts +0 -100
- package/src/ir/hierarchical-bindings-e2e.test.ts +0 -163
- package/src/ir/statement-converter.ts +0 -128
- package/src/ir/type-converter/arrays.ts +0 -20
- package/src/ir/type-converter/converter.ts +0 -10
- package/src/ir/type-converter/functions.ts +0 -22
- package/src/ir/type-converter/inference.ts +0 -122
- package/src/ir/type-converter/literals.ts +0 -40
- package/src/ir/type-converter/objects.ts +0 -107
- package/src/ir/type-converter/orchestrator.ts +0 -85
- package/src/ir/type-converter/patterns.ts +0 -73
- package/src/ir/type-converter/primitives.ts +0 -57
- package/src/ir/type-converter/references.ts +0 -64
- package/src/ir/type-converter/unions-intersections.ts +0 -34
- package/src/ir/type-converter.ts +0 -13
- package/src/ir/types/expressions.ts +0 -215
- package/src/ir/types/guards.ts +0 -39
- package/src/ir/types/helpers.ts +0 -135
- package/src/ir/types/index.ts +0 -108
- package/src/ir/types/ir-types.ts +0 -96
- package/src/ir/types/module.ts +0 -57
- package/src/ir/types/statements.ts +0 -238
- package/src/ir/types.ts +0 -97
- package/src/metadata/bindings-loader.test.ts +0 -144
- package/src/metadata/bindings-loader.ts +0 -357
- package/src/metadata/library-loader.ts +0 -153
- package/src/metadata/loader.test.ts +0 -156
- package/src/metadata/loader.ts +0 -382
- package/src/program/bindings.test.ts +0 -512
- package/src/program/bindings.ts +0 -253
- package/src/program/config.ts +0 -30
- package/src/program/creation.ts +0 -249
- package/src/program/dependency-graph.ts +0 -245
- package/src/program/diagnostics.ts +0 -103
- package/src/program/metadata.ts +0 -68
- package/src/program/queries.ts +0 -18
- package/src/program/types.ts +0 -38
- package/src/resolver/dotnet-import-resolver.ts +0 -226
- package/src/resolver/import-resolution.ts +0 -177
- package/src/resolver/namespace.test.ts +0 -86
- package/src/resolver/namespace.ts +0 -42
- package/src/resolver/naming.ts +0 -38
- package/src/resolver/path-resolution.ts +0 -22
- package/src/resolver/types.ts +0 -15
- package/src/resolver.test.ts +0 -155
- package/src/resolver.ts +0 -14
- package/src/symbol-table/builder.ts +0 -114
- package/src/symbol-table/creation.ts +0 -42
- package/src/symbol-table/helpers.ts +0 -18
- package/src/symbol-table/queries.ts +0 -42
- package/src/symbol-table/types.ts +0 -28
- package/src/types/bindings.ts +0 -172
- package/src/types/diagnostic.test.ts +0 -164
- package/src/types/diagnostic.ts +0 -153
- package/src/types/explicit-views.test.ts +0 -113
- package/src/types/explicit-views.ts +0 -218
- package/src/types/metadata.ts +0 -229
- package/src/types/module.ts +0 -99
- package/src/types/nested-types.test.ts +0 -194
- package/src/types/nested-types.ts +0 -215
- package/src/types/parameter-modifiers.ts +0 -173
- package/src/types/ref-parameters.test.ts +0 -192
- package/src/types/ref-parameters.ts +0 -268
- package/src/types/result.test.ts +0 -157
- package/src/types/result.ts +0 -48
- package/src/types/support-types.test.ts +0 -81
- package/src/types/support-types.ts +0 -288
- package/src/types/test-harness.ts +0 -180
- package/src/validation/exports.ts +0 -98
- package/src/validation/features.ts +0 -89
- package/src/validation/generics.ts +0 -40
- package/src/validation/helpers.ts +0 -31
- package/src/validation/imports.ts +0 -97
- package/src/validation/orchestrator.ts +0 -51
- package/src/validation/static-safety.ts +0 -267
- package/src/validator.test.ts +0 -468
- package/src/validator.ts +0 -15
- package/tsconfig.json +0 -13
package/src/program/bindings.ts
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Binding manifest loading - maps JS/TS names to CLR types/members
|
|
3
|
-
* See spec/bindings.md for full manifest format
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import * as fs from "node:fs";
|
|
7
|
-
import * as path from "node:path";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Member binding (method/property level)
|
|
11
|
-
*/
|
|
12
|
-
export type MemberBinding = {
|
|
13
|
-
readonly kind: "method" | "property";
|
|
14
|
-
readonly signature?: string; // Optional TS signature for diagnostics
|
|
15
|
-
readonly name: string; // CLR member name (e.g., "SelectMany")
|
|
16
|
-
readonly alias: string; // TS identifier (e.g., "selectMany")
|
|
17
|
-
readonly binding: {
|
|
18
|
-
readonly assembly: string;
|
|
19
|
-
readonly type: string; // Full CLR type (e.g., "System.Linq.Enumerable")
|
|
20
|
-
readonly member: string; // CLR member name
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Type binding (class/interface/struct/enum level)
|
|
26
|
-
*/
|
|
27
|
-
export type TypeBinding = {
|
|
28
|
-
readonly name: string; // CLR type name (e.g., "Enumerable")
|
|
29
|
-
readonly alias: string; // TS identifier (e.g., "enumerable")
|
|
30
|
-
readonly kind: "class" | "interface" | "struct" | "enum";
|
|
31
|
-
readonly members: readonly MemberBinding[];
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Namespace binding
|
|
36
|
-
*/
|
|
37
|
-
export type NamespaceBinding = {
|
|
38
|
-
readonly name: string; // CLR namespace (e.g., "System.Linq")
|
|
39
|
-
readonly alias: string; // TS identifier (e.g., "systemLinq")
|
|
40
|
-
readonly types: readonly TypeBinding[];
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Full binding manifest structure (new format from bindings.md)
|
|
45
|
-
*/
|
|
46
|
-
export type FullBindingManifest = {
|
|
47
|
-
readonly assembly: string;
|
|
48
|
-
readonly namespaces: readonly NamespaceBinding[];
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Simple binding entry (legacy format for backwards compatibility)
|
|
53
|
-
* Maps simple global/module identifiers to CLR types
|
|
54
|
-
*/
|
|
55
|
-
export type SimpleBindingDescriptor = {
|
|
56
|
-
readonly kind: "global" | "module";
|
|
57
|
-
readonly assembly: string;
|
|
58
|
-
readonly type: string;
|
|
59
|
-
readonly csharpName?: string; // Optional: rename identifier in generated C#
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Legacy binding file structure (backwards compatible)
|
|
64
|
-
*/
|
|
65
|
-
export type LegacyBindingFile = {
|
|
66
|
-
readonly bindings: Readonly<Record<string, SimpleBindingDescriptor>>;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Union type for both binding formats
|
|
71
|
-
*/
|
|
72
|
-
export type BindingFile = FullBindingManifest | LegacyBindingFile;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Type guard to check if a manifest is the full format
|
|
76
|
-
*/
|
|
77
|
-
const isFullBindingManifest = (
|
|
78
|
-
manifest: BindingFile
|
|
79
|
-
): manifest is FullBindingManifest => {
|
|
80
|
-
return "assembly" in manifest && "namespaces" in manifest;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Registry of all loaded bindings
|
|
85
|
-
* Supports both legacy (simple global/module) and new (hierarchical namespace/type/member) formats
|
|
86
|
-
*/
|
|
87
|
-
export class BindingRegistry {
|
|
88
|
-
// Legacy format: simple global/module bindings
|
|
89
|
-
private readonly simpleBindings = new Map<string, SimpleBindingDescriptor>();
|
|
90
|
-
|
|
91
|
-
// New format: hierarchical bindings
|
|
92
|
-
private readonly namespaces = new Map<string, NamespaceBinding>();
|
|
93
|
-
private readonly types = new Map<string, TypeBinding>(); // Flat lookup by TS name
|
|
94
|
-
private readonly members = new Map<string, MemberBinding>(); // Flat lookup by "type.member"
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Load a binding manifest file and add its bindings to the registry
|
|
98
|
-
* Supports both legacy and new formats
|
|
99
|
-
*/
|
|
100
|
-
addBindings(_filePath: string, manifest: BindingFile): void {
|
|
101
|
-
if (isFullBindingManifest(manifest)) {
|
|
102
|
-
// New format: hierarchical namespace/type/member structure
|
|
103
|
-
// Index by alias (TS identifier) for quick lookup
|
|
104
|
-
for (const ns of manifest.namespaces) {
|
|
105
|
-
this.namespaces.set(ns.alias, ns);
|
|
106
|
-
|
|
107
|
-
// Index types for quick lookup by TS alias
|
|
108
|
-
for (const type of ns.types) {
|
|
109
|
-
this.types.set(type.alias, type);
|
|
110
|
-
|
|
111
|
-
// Index members for quick lookup (keyed by "typeAlias.memberAlias")
|
|
112
|
-
for (const member of type.members) {
|
|
113
|
-
const key = `${type.alias}.${member.alias}`;
|
|
114
|
-
this.members.set(key, member);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
} else {
|
|
119
|
-
// Legacy format: simple global/module bindings
|
|
120
|
-
for (const [name, descriptor] of Object.entries(manifest.bindings)) {
|
|
121
|
-
this.simpleBindings.set(name, descriptor);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Look up a simple global/module binding (legacy format)
|
|
128
|
-
*/
|
|
129
|
-
getBinding(name: string): SimpleBindingDescriptor | undefined {
|
|
130
|
-
return this.simpleBindings.get(name);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Look up a namespace binding by TS alias
|
|
135
|
-
*/
|
|
136
|
-
getNamespace(tsAlias: string): NamespaceBinding | undefined {
|
|
137
|
-
return this.namespaces.get(tsAlias);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Look up a type binding by TS alias
|
|
142
|
-
*/
|
|
143
|
-
getType(tsAlias: string): TypeBinding | undefined {
|
|
144
|
-
return this.types.get(tsAlias);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Look up a member binding by TS type alias and member alias
|
|
149
|
-
*/
|
|
150
|
-
getMember(typeAlias: string, memberAlias: string): MemberBinding | undefined {
|
|
151
|
-
const key = `${typeAlias}.${memberAlias}`;
|
|
152
|
-
return this.members.get(key);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Get all loaded simple bindings (legacy)
|
|
157
|
-
*/
|
|
158
|
-
getAllBindings(): readonly [string, SimpleBindingDescriptor][] {
|
|
159
|
-
return Array.from(this.simpleBindings.entries());
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Get all loaded namespaces
|
|
164
|
-
*/
|
|
165
|
-
getAllNamespaces(): readonly NamespaceBinding[] {
|
|
166
|
-
return Array.from(this.namespaces.values());
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Clear all loaded bindings
|
|
171
|
-
*/
|
|
172
|
-
clear(): void {
|
|
173
|
-
this.simpleBindings.clear();
|
|
174
|
-
this.namespaces.clear();
|
|
175
|
-
this.types.clear();
|
|
176
|
-
this.members.clear();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Recursively scan a directory for .d.ts files
|
|
182
|
-
* Reuses the same helper as metadata loading
|
|
183
|
-
*/
|
|
184
|
-
const scanForDeclarationFiles = (dir: string): readonly string[] => {
|
|
185
|
-
if (!fs.existsSync(dir)) {
|
|
186
|
-
return [];
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
const results: string[] = [];
|
|
190
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
191
|
-
|
|
192
|
-
for (const entry of entries) {
|
|
193
|
-
const fullPath = path.join(dir, entry.name);
|
|
194
|
-
if (entry.isDirectory()) {
|
|
195
|
-
results.push(...scanForDeclarationFiles(fullPath));
|
|
196
|
-
} else if (entry.name.endsWith(".d.ts")) {
|
|
197
|
-
results.push(fullPath);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
return results;
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Load binding manifests from configured type roots
|
|
206
|
-
* Looks for *.bindings.json files alongside .d.ts files OR directly in typeRoot
|
|
207
|
-
*/
|
|
208
|
-
export const loadBindings = (typeRoots: readonly string[]): BindingRegistry => {
|
|
209
|
-
const registry = new BindingRegistry();
|
|
210
|
-
|
|
211
|
-
for (const typeRoot of typeRoots) {
|
|
212
|
-
const absoluteRoot = path.resolve(typeRoot);
|
|
213
|
-
|
|
214
|
-
// Skip if directory doesn't exist
|
|
215
|
-
if (!fs.existsSync(absoluteRoot)) {
|
|
216
|
-
continue;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// Strategy 1: Look for manifest in the typeRoot itself
|
|
220
|
-
const rootManifests = fs
|
|
221
|
-
.readdirSync(absoluteRoot)
|
|
222
|
-
.filter((f) => f.endsWith(".bindings.json"))
|
|
223
|
-
.map((f) => path.join(absoluteRoot, f));
|
|
224
|
-
|
|
225
|
-
for (const manifestPath of rootManifests) {
|
|
226
|
-
try {
|
|
227
|
-
const content = fs.readFileSync(manifestPath, "utf-8");
|
|
228
|
-
const manifest = JSON.parse(content) as BindingFile;
|
|
229
|
-
registry.addBindings(manifestPath, manifest);
|
|
230
|
-
} catch (err) {
|
|
231
|
-
console.warn(`Failed to load bindings from ${manifestPath}:`, err);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// Strategy 2: Look for *.bindings.json next to each .d.ts file
|
|
236
|
-
const declFiles = scanForDeclarationFiles(absoluteRoot);
|
|
237
|
-
for (const declPath of declFiles) {
|
|
238
|
-
const manifestPath = declPath.replace(/\.d\.ts$/, ".bindings.json");
|
|
239
|
-
|
|
240
|
-
try {
|
|
241
|
-
if (fs.existsSync(manifestPath)) {
|
|
242
|
-
const content = fs.readFileSync(manifestPath, "utf-8");
|
|
243
|
-
const manifest = JSON.parse(content) as BindingFile;
|
|
244
|
-
registry.addBindings(manifestPath, manifest);
|
|
245
|
-
}
|
|
246
|
-
} catch (err) {
|
|
247
|
-
console.warn(`Failed to load bindings from ${manifestPath}:`, err);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
return registry;
|
|
253
|
-
};
|
package/src/program/config.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TypeScript compiler configuration
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import * as ts from "typescript";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Default TypeScript compiler options for Tsonic
|
|
9
|
-
*/
|
|
10
|
-
export const defaultTsConfig: ts.CompilerOptions = {
|
|
11
|
-
target: ts.ScriptTarget.ES2022,
|
|
12
|
-
module: ts.ModuleKind.NodeNext,
|
|
13
|
-
moduleResolution: ts.ModuleResolutionKind.NodeNext,
|
|
14
|
-
// We use the globals from the BCL bindings directory instead of npm packages
|
|
15
|
-
// The BCL bindings include a globals.d.ts that provides minimal types
|
|
16
|
-
noLib: true,
|
|
17
|
-
types: [], // No npm packages - globals come from BCL bindings typeRoots
|
|
18
|
-
strict: false, // Disabled to allow .NET type usage
|
|
19
|
-
esModuleInterop: true,
|
|
20
|
-
skipLibCheck: true,
|
|
21
|
-
forceConsistentCasingInFileNames: true,
|
|
22
|
-
allowJs: false,
|
|
23
|
-
checkJs: false,
|
|
24
|
-
noEmit: true,
|
|
25
|
-
resolveJsonModule: false,
|
|
26
|
-
isolatedModules: true, // Re-enabled - safe now that DOM globals are gone
|
|
27
|
-
verbatimModuleSyntax: false, // Disabled to allow .NET type imports
|
|
28
|
-
noImplicitAny: false, // Allow any for .NET types
|
|
29
|
-
allowImportingTsExtensions: true, // ESM requires .ts/.js extensions
|
|
30
|
-
};
|
package/src/program/creation.ts
DELETED
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Program creation
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import * as ts from "typescript";
|
|
6
|
-
import * as path from "node:path";
|
|
7
|
-
import * as fs from "node:fs";
|
|
8
|
-
import { Result, ok, error } from "../types/result.js";
|
|
9
|
-
import { DiagnosticsCollector } from "../types/diagnostic.js";
|
|
10
|
-
import { CompilerOptions, TsonicProgram } from "./types.js";
|
|
11
|
-
import { defaultTsConfig } from "./config.js";
|
|
12
|
-
import { loadDotnetMetadata } from "./metadata.js";
|
|
13
|
-
import { loadBindings } from "./bindings.js";
|
|
14
|
-
import { collectTsDiagnostics } from "./diagnostics.js";
|
|
15
|
-
import { createDotNetImportResolver } from "../resolver/dotnet-import-resolver.js";
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Recursively scan a directory for .d.ts files
|
|
19
|
-
*/
|
|
20
|
-
const scanForDeclarationFiles = (dir: string): readonly string[] => {
|
|
21
|
-
if (!fs.existsSync(dir)) {
|
|
22
|
-
return [];
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const results: string[] = [];
|
|
26
|
-
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
27
|
-
|
|
28
|
-
for (const entry of entries) {
|
|
29
|
-
const fullPath = path.join(dir, entry.name);
|
|
30
|
-
if (entry.isDirectory()) {
|
|
31
|
-
results.push(...scanForDeclarationFiles(fullPath));
|
|
32
|
-
} else if (entry.name.endsWith(".d.ts")) {
|
|
33
|
-
results.push(fullPath);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return results;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Create TypeScript compiler options from Tsonic options
|
|
42
|
-
* Exported for use by dependency graph builder
|
|
43
|
-
*/
|
|
44
|
-
export const createCompilerOptions = (
|
|
45
|
-
options: CompilerOptions
|
|
46
|
-
): ts.CompilerOptions => {
|
|
47
|
-
const baseConfig = {
|
|
48
|
-
...defaultTsConfig,
|
|
49
|
-
strict: options.strict ?? true,
|
|
50
|
-
rootDir: options.sourceRoot,
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
// When useStandardLib is true, disable noLib to use TypeScript's built-in types
|
|
54
|
-
// This is useful for tests that don't have access to BCL bindings
|
|
55
|
-
if (options.useStandardLib) {
|
|
56
|
-
return {
|
|
57
|
-
...baseConfig,
|
|
58
|
-
noLib: false,
|
|
59
|
-
types: undefined, // Use default type resolution
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return baseConfig;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Create a Tsonic program from TypeScript source files
|
|
68
|
-
*/
|
|
69
|
-
export const createProgram = (
|
|
70
|
-
filePaths: readonly string[],
|
|
71
|
-
options: CompilerOptions
|
|
72
|
-
): Result<TsonicProgram, DiagnosticsCollector> => {
|
|
73
|
-
const absolutePaths = filePaths.map((fp) => path.resolve(fp));
|
|
74
|
-
|
|
75
|
-
// Get declaration files from type roots
|
|
76
|
-
const typeRoots = options.typeRoots ?? [
|
|
77
|
-
"node_modules/@tsonic/dotnet-types/types",
|
|
78
|
-
];
|
|
79
|
-
|
|
80
|
-
// Debug log typeRoots
|
|
81
|
-
if (options.verbose && typeRoots.length > 0) {
|
|
82
|
-
console.log(`TypeRoots: ${typeRoots.join(", ")}`);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
const declarationFiles: string[] = [];
|
|
86
|
-
|
|
87
|
-
for (const typeRoot of typeRoots) {
|
|
88
|
-
const absoluteRoot = path.resolve(typeRoot);
|
|
89
|
-
declarationFiles.push(...scanForDeclarationFiles(absoluteRoot));
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Add the main index.d.ts files for .NET namespaces directly to the file list
|
|
93
|
-
const namespaceIndexFiles: string[] = [];
|
|
94
|
-
for (const typeRoot of typeRoots) {
|
|
95
|
-
const absoluteRoot = path.resolve(typeRoot);
|
|
96
|
-
if (options.verbose) {
|
|
97
|
-
console.log(
|
|
98
|
-
`Checking typeRoot: ${absoluteRoot}, exists: ${fs.existsSync(absoluteRoot)}`
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
if (fs.existsSync(absoluteRoot)) {
|
|
102
|
-
const entries = fs.readdirSync(absoluteRoot, { withFileTypes: true });
|
|
103
|
-
for (const entry of entries) {
|
|
104
|
-
if (
|
|
105
|
-
entry.isDirectory() &&
|
|
106
|
-
!entry.name.startsWith("_") &&
|
|
107
|
-
!entry.name.startsWith("internal")
|
|
108
|
-
) {
|
|
109
|
-
const indexPath = path.join(absoluteRoot, entry.name, "index.d.ts");
|
|
110
|
-
if (fs.existsSync(indexPath)) {
|
|
111
|
-
namespaceIndexFiles.push(indexPath);
|
|
112
|
-
if (options.verbose) {
|
|
113
|
-
console.log(` Found namespace: ${entry.name} -> ${indexPath}`);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Combine source files, declaration files, and namespace index files
|
|
122
|
-
// Note: globals.d.ts should be in the BCL bindings directory (typeRoots)
|
|
123
|
-
const allFiles = [
|
|
124
|
-
...absolutePaths,
|
|
125
|
-
...declarationFiles,
|
|
126
|
-
...namespaceIndexFiles,
|
|
127
|
-
];
|
|
128
|
-
|
|
129
|
-
const tsOptions = createCompilerOptions(options);
|
|
130
|
-
|
|
131
|
-
// Create custom compiler host with virtual .NET module declarations
|
|
132
|
-
const host = ts.createCompilerHost(tsOptions);
|
|
133
|
-
|
|
134
|
-
// Map of .NET namespace names to their declaration file paths
|
|
135
|
-
const namespaceFiles = new Map<string, string>();
|
|
136
|
-
for (const indexFile of namespaceIndexFiles) {
|
|
137
|
-
// Extract namespace name from path (e.g., /path/to/System/index.d.ts -> System)
|
|
138
|
-
const dirName = path.basename(path.dirname(indexFile));
|
|
139
|
-
namespaceFiles.set(dirName, indexFile);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Log namespace mappings when verbose
|
|
143
|
-
if (options.verbose && namespaceFiles.size > 0) {
|
|
144
|
-
console.log(`Found ${namespaceFiles.size} .NET namespace declarations`);
|
|
145
|
-
for (const [ns, file] of namespaceFiles) {
|
|
146
|
-
console.log(` ${ns} -> ${file}`);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// Override getSourceFile to provide virtual module declarations
|
|
151
|
-
const originalGetSourceFile = host.getSourceFile;
|
|
152
|
-
host.getSourceFile = (
|
|
153
|
-
fileName: string,
|
|
154
|
-
languageVersion: ts.ScriptTarget,
|
|
155
|
-
onError?: (message: string) => void,
|
|
156
|
-
shouldCreateNewSourceFile?: boolean
|
|
157
|
-
): ts.SourceFile | undefined => {
|
|
158
|
-
// Check if this is a .NET namespace being imported
|
|
159
|
-
const baseName = path.basename(fileName, path.extname(fileName));
|
|
160
|
-
if (namespaceFiles.has(baseName) && fileName.endsWith(".ts")) {
|
|
161
|
-
// Create a virtual source file that exports from the actual declaration
|
|
162
|
-
const declarationPath = namespaceFiles.get(baseName)!;
|
|
163
|
-
const virtualContent = `export * from '${declarationPath.replace(/\.d\.ts$/, "")}';`;
|
|
164
|
-
return ts.createSourceFile(
|
|
165
|
-
fileName,
|
|
166
|
-
virtualContent,
|
|
167
|
-
languageVersion,
|
|
168
|
-
true
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
return originalGetSourceFile.call(
|
|
173
|
-
host,
|
|
174
|
-
fileName,
|
|
175
|
-
languageVersion,
|
|
176
|
-
onError,
|
|
177
|
-
shouldCreateNewSourceFile
|
|
178
|
-
);
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
// Override resolveModuleNames to handle .NET imports
|
|
182
|
-
(host as any).resolveModuleNames = (
|
|
183
|
-
moduleNames: string[],
|
|
184
|
-
containingFile: string
|
|
185
|
-
): (ts.ResolvedModule | undefined)[] => {
|
|
186
|
-
return moduleNames.map((moduleName) => {
|
|
187
|
-
// Debug log
|
|
188
|
-
if (options.verbose) {
|
|
189
|
-
console.log(`Resolving module: ${moduleName} from ${containingFile}`);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// Check if this is a .NET namespace
|
|
193
|
-
if (namespaceFiles.has(moduleName)) {
|
|
194
|
-
const resolvedFile = namespaceFiles.get(moduleName)!;
|
|
195
|
-
if (options.verbose) {
|
|
196
|
-
console.log(
|
|
197
|
-
` Resolved .NET namespace ${moduleName} to ${resolvedFile}`
|
|
198
|
-
);
|
|
199
|
-
}
|
|
200
|
-
return {
|
|
201
|
-
resolvedFileName: resolvedFile,
|
|
202
|
-
isExternalLibraryImport: true,
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// Use default resolution for other modules
|
|
207
|
-
const result = ts.resolveModuleName(
|
|
208
|
-
moduleName,
|
|
209
|
-
containingFile,
|
|
210
|
-
tsOptions,
|
|
211
|
-
host
|
|
212
|
-
);
|
|
213
|
-
return result.resolvedModule;
|
|
214
|
-
});
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
const program = ts.createProgram(allFiles, tsOptions, host);
|
|
218
|
-
|
|
219
|
-
const diagnostics = collectTsDiagnostics(program);
|
|
220
|
-
|
|
221
|
-
if (diagnostics.hasErrors) {
|
|
222
|
-
return error(diagnostics);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
const sourceFiles = program
|
|
226
|
-
.getSourceFiles()
|
|
227
|
-
.filter(
|
|
228
|
-
(sf) => !sf.isDeclarationFile && absolutePaths.includes(sf.fileName)
|
|
229
|
-
);
|
|
230
|
-
|
|
231
|
-
// Load .NET metadata files
|
|
232
|
-
const metadata = loadDotnetMetadata(typeRoots);
|
|
233
|
-
|
|
234
|
-
// Load binding manifests (from typeRoots - for ambient globals)
|
|
235
|
-
const bindings = loadBindings(typeRoots);
|
|
236
|
-
|
|
237
|
-
// Create resolver for import-driven .NET namespace discovery
|
|
238
|
-
const dotnetResolver = createDotNetImportResolver(options.sourceRoot);
|
|
239
|
-
|
|
240
|
-
return ok({
|
|
241
|
-
program,
|
|
242
|
-
checker: program.getTypeChecker(),
|
|
243
|
-
options,
|
|
244
|
-
sourceFiles,
|
|
245
|
-
metadata,
|
|
246
|
-
bindings,
|
|
247
|
-
dotnetResolver,
|
|
248
|
-
});
|
|
249
|
-
};
|