@tsonic/frontend 0.0.1 → 0.0.2
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 +513 -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 +121 -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 +493 -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 +85 -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 +210 -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 +124 -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/clr-type-resolver.d.ts +15 -0
- package/dist/ir/type-converter/clr-type-resolver.d.ts.map +1 -0
- package/dist/ir/type-converter/clr-type-resolver.js +120 -0
- package/dist/ir/type-converter/clr-type-resolver.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 +104 -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 +81 -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 +51 -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 +69 -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 +111 -0
- package/dist/program/bindings.d.ts.map +1 -0
- package/dist/program/bindings.js +167 -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 +180 -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 +166 -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 +35 -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/dotnet-import-resolver.d.ts +74 -0
- package/dist/resolver/dotnet-import-resolver.d.ts.map +1 -0
- package/dist/resolver/dotnet-import-resolver.js +183 -0
- package/dist/resolver/dotnet-import-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/dist/resolver/index.d.ts +10 -0
- 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 +144 -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 +50 -0
- package/dist/types/support-types.test.js.map +1 -0
- package/dist/types/test-debug.d.ts.map +1 -0
- package/dist/types/test-debug.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/aot-safety.d.ts +24 -0
- package/dist/validation/aot-safety.d.ts.map +1 -0
- package/dist/validation/aot-safety.js +114 -0
- package/dist/validation/aot-safety.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 +340 -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/index.ts +0 -18
- 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
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol table query functions
|
|
3
|
+
*/
|
|
4
|
+
import { Symbol, SymbolTable } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Find symbols by name, optionally filtered by module
|
|
7
|
+
*/
|
|
8
|
+
export declare const findSymbol: (table: SymbolTable, name: string, module?: string) => readonly Symbol[];
|
|
9
|
+
/**
|
|
10
|
+
* Get all exported symbols from a module
|
|
11
|
+
*/
|
|
12
|
+
export declare const getExportedSymbols: (table: SymbolTable, module: string) => readonly Symbol[];
|
|
13
|
+
/**
|
|
14
|
+
* Check if a module exports a symbol with the given name
|
|
15
|
+
*/
|
|
16
|
+
export declare const hasExportedSymbol: (table: SymbolTable, module: string, name: string) => boolean;
|
|
17
|
+
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/symbol-table/queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,WAAW,EAClB,MAAM,MAAM,EACZ,SAAS,MAAM,KACd,SAAS,MAAM,EAMjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,WAAW,EAClB,QAAQ,MAAM,KACb,SAAS,MAAM,EAEjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,WAAW,EAClB,QAAQ,MAAM,EACd,MAAM,MAAM,KACX,OAGF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol table query functions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Find symbols by name, optionally filtered by module
|
|
6
|
+
*/
|
|
7
|
+
export const findSymbol = (table, name, module) => {
|
|
8
|
+
if (module) {
|
|
9
|
+
const moduleSymbols = table.moduleSymbols.get(module) ?? [];
|
|
10
|
+
return moduleSymbols.filter((s) => s.name === name);
|
|
11
|
+
}
|
|
12
|
+
return table.symbols.get(name) ?? [];
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Get all exported symbols from a module
|
|
16
|
+
*/
|
|
17
|
+
export const getExportedSymbols = (table, module) => {
|
|
18
|
+
return table.exportedSymbols.get(module) ?? [];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Check if a module exports a symbol with the given name
|
|
22
|
+
*/
|
|
23
|
+
export const hasExportedSymbol = (table, module, name) => {
|
|
24
|
+
const exported = getExportedSymbols(table, module);
|
|
25
|
+
return exported.some((s) => s.name === name);
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/symbol-table/queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAkB,EAClB,IAAY,EACZ,MAAe,EACI,EAAE;IACrB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5D,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAkB,EAClB,MAAc,EACK,EAAE;IACrB,OAAO,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,KAAkB,EAClB,MAAc,EACd,IAAY,EACH,EAAE;IACX,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol table type definitions
|
|
3
|
+
*/
|
|
4
|
+
import * as ts from "typescript";
|
|
5
|
+
export type SymbolKind = "class" | "interface" | "function" | "variable" | "type" | "enum" | "namespace";
|
|
6
|
+
export type Symbol = {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly kind: SymbolKind;
|
|
9
|
+
readonly isExported: boolean;
|
|
10
|
+
readonly module: string;
|
|
11
|
+
readonly tsSymbol?: ts.Symbol;
|
|
12
|
+
};
|
|
13
|
+
export type SymbolTable = {
|
|
14
|
+
readonly symbols: ReadonlyMap<string, readonly Symbol[]>;
|
|
15
|
+
readonly moduleSymbols: ReadonlyMap<string, readonly Symbol[]>;
|
|
16
|
+
readonly exportedSymbols: ReadonlyMap<string, readonly Symbol[]>;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/symbol-table/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,WAAW,GACX,UAAU,GACV,UAAU,GACV,MAAM,GACN,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACzD,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/symbol-table/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -2,13 +2,6 @@
|
|
|
2
2
|
* Symbol table for tracking cross-module references
|
|
3
3
|
* Main dispatcher - re-exports from symbol-table/ subdirectory
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
5
|
export type { SymbolKind, Symbol, SymbolTable } from "./symbol-table/index.js";
|
|
7
|
-
export {
|
|
8
|
-
|
|
9
|
-
addSymbol,
|
|
10
|
-
buildSymbolTable,
|
|
11
|
-
findSymbol,
|
|
12
|
-
getExportedSymbols,
|
|
13
|
-
hasExportedSymbol,
|
|
14
|
-
} from "./symbol-table/index.js";
|
|
6
|
+
export { createSymbolTable, addSymbol, buildSymbolTable, findSymbol, getExportedSymbols, hasExportedSymbol, } from "./symbol-table/index.js";
|
|
7
|
+
//# sourceMappingURL=symbol-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-table.d.ts","sourceRoot":"","sources":["../src/symbol-table.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol table for tracking cross-module references
|
|
3
|
+
* Main dispatcher - re-exports from symbol-table/ subdirectory
|
|
4
|
+
*/
|
|
5
|
+
export { createSymbolTable, addSymbol, buildSymbolTable, findSymbol, getExportedSymbols, hasExportedSymbol, } from "./symbol-table/index.js";
|
|
6
|
+
//# sourceMappingURL=symbol-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol-table.js","sourceRoot":"","sources":["../src/symbol-table.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for .NET bindings.json files generated by tsbindgen.
|
|
3
|
+
*
|
|
4
|
+
* These types represent runtime binding information used for reflection-based dispatch.
|
|
5
|
+
* All property names use camelCase (JavaScript convention).
|
|
6
|
+
*
|
|
7
|
+
* The bindings format uses a dual-version structure:
|
|
8
|
+
* - V1 Definitions: Full method signatures for reference
|
|
9
|
+
* - V2 Exposures: Lightweight binding info for runtime dispatch
|
|
10
|
+
*
|
|
11
|
+
* @see spec/bindings.md for complete schema documentation
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Root bindings file structure.
|
|
15
|
+
* Represents a single namespace with all its type bindings.
|
|
16
|
+
*/
|
|
17
|
+
export type BindingsFile = {
|
|
18
|
+
readonly namespace: string;
|
|
19
|
+
readonly types: TypeBinding[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Complete binding information for a CLR type.
|
|
23
|
+
* Includes both V1 definitions and V2 exposures.
|
|
24
|
+
*/
|
|
25
|
+
export type TypeBinding = {
|
|
26
|
+
readonly clrName: string;
|
|
27
|
+
readonly tsEmitName: string;
|
|
28
|
+
readonly assemblyName: string;
|
|
29
|
+
readonly metadataToken: number;
|
|
30
|
+
readonly methods?: MethodBinding[];
|
|
31
|
+
readonly properties?: PropertyBinding[];
|
|
32
|
+
readonly fields?: FieldBinding[];
|
|
33
|
+
readonly events?: EventBinding[];
|
|
34
|
+
readonly exposedMethods?: ExposedMethodBinding[];
|
|
35
|
+
readonly exposedProperties?: ExposedPropertyBinding[];
|
|
36
|
+
readonly exposedFields?: ExposedFieldBinding[];
|
|
37
|
+
readonly exposedEvents?: ExposedEventBinding[];
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* V1 Definition: Complete method signature.
|
|
41
|
+
* Used for type checking and reference.
|
|
42
|
+
*/
|
|
43
|
+
export type MethodBinding = {
|
|
44
|
+
readonly name: string;
|
|
45
|
+
readonly clrName: string;
|
|
46
|
+
readonly tsEmitName: string;
|
|
47
|
+
readonly isStatic: boolean;
|
|
48
|
+
readonly arity: number;
|
|
49
|
+
readonly parameters: ParameterBinding[];
|
|
50
|
+
readonly returnType: string;
|
|
51
|
+
readonly metadataToken: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* V1 Definition: Property information.
|
|
55
|
+
*/
|
|
56
|
+
export type PropertyBinding = {
|
|
57
|
+
readonly name: string;
|
|
58
|
+
readonly clrName: string;
|
|
59
|
+
readonly tsEmitName: string;
|
|
60
|
+
readonly isStatic: boolean;
|
|
61
|
+
readonly type: string;
|
|
62
|
+
readonly hasGetter: boolean;
|
|
63
|
+
readonly hasSetter: boolean;
|
|
64
|
+
readonly getterToken?: number;
|
|
65
|
+
readonly setterToken?: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* V1 Definition: Field information.
|
|
69
|
+
*/
|
|
70
|
+
export type FieldBinding = {
|
|
71
|
+
readonly name: string;
|
|
72
|
+
readonly clrName: string;
|
|
73
|
+
readonly tsEmitName: string;
|
|
74
|
+
readonly isStatic: boolean;
|
|
75
|
+
readonly type: string;
|
|
76
|
+
readonly metadataToken: number;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* V1 Definition: Event information.
|
|
80
|
+
*/
|
|
81
|
+
export type EventBinding = {
|
|
82
|
+
readonly name: string;
|
|
83
|
+
readonly clrName: string;
|
|
84
|
+
readonly tsEmitName: string;
|
|
85
|
+
readonly isStatic: boolean;
|
|
86
|
+
readonly type: string;
|
|
87
|
+
readonly adderToken: number;
|
|
88
|
+
readonly removerToken: number;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Parameter binding information.
|
|
92
|
+
*/
|
|
93
|
+
export type ParameterBinding = {
|
|
94
|
+
readonly name: string;
|
|
95
|
+
readonly type: string;
|
|
96
|
+
readonly isRef: boolean;
|
|
97
|
+
readonly isOut: boolean;
|
|
98
|
+
readonly isIn?: boolean;
|
|
99
|
+
readonly isParams: boolean;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* V2 Exposure: Lightweight method binding for runtime dispatch.
|
|
103
|
+
* Optimized format with minimal data for fast lookups.
|
|
104
|
+
*/
|
|
105
|
+
export type ExposedMethodBinding = {
|
|
106
|
+
readonly tsEmitName: string;
|
|
107
|
+
readonly isStatic: boolean;
|
|
108
|
+
readonly arity: number;
|
|
109
|
+
readonly overloads: MethodOverloadBinding[];
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Method overload binding.
|
|
113
|
+
* One entry per unique parameter count.
|
|
114
|
+
*/
|
|
115
|
+
export type MethodOverloadBinding = {
|
|
116
|
+
readonly parameterCount: number;
|
|
117
|
+
readonly metadataToken: number;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* V2 Exposure: Lightweight property binding for runtime access.
|
|
121
|
+
*/
|
|
122
|
+
export type ExposedPropertyBinding = {
|
|
123
|
+
readonly tsEmitName: string;
|
|
124
|
+
readonly isStatic: boolean;
|
|
125
|
+
readonly getterToken?: number;
|
|
126
|
+
readonly setterToken?: number;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* V2 Exposure: Lightweight field binding for runtime access.
|
|
130
|
+
*/
|
|
131
|
+
export type ExposedFieldBinding = {
|
|
132
|
+
readonly tsEmitName: string;
|
|
133
|
+
readonly isStatic: boolean;
|
|
134
|
+
readonly metadataToken: number;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* V2 Exposure: Lightweight event binding for runtime access.
|
|
138
|
+
*/
|
|
139
|
+
export type ExposedEventBinding = {
|
|
140
|
+
readonly tsEmitName: string;
|
|
141
|
+
readonly isStatic: boolean;
|
|
142
|
+
readonly adderToken: number;
|
|
143
|
+
readonly removerToken: number;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Helper type: Extract V1 definitions from a type binding.
|
|
147
|
+
*/
|
|
148
|
+
export type V1Definitions = Pick<TypeBinding, "methods" | "properties" | "fields" | "events">;
|
|
149
|
+
/**
|
|
150
|
+
* Helper type: Extract V2 exposures from a type binding.
|
|
151
|
+
*/
|
|
152
|
+
export type V2Exposures = Pick<TypeBinding, "exposedMethods" | "exposedProperties" | "exposedFields" | "exposedEvents">;
|
|
153
|
+
//# sourceMappingURL=bindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/types/bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for .NET bindings.json files generated by tsbindgen.
|
|
3
|
+
*
|
|
4
|
+
* These types represent runtime binding information used for reflection-based dispatch.
|
|
5
|
+
* All property names use camelCase (JavaScript convention).
|
|
6
|
+
*
|
|
7
|
+
* The bindings format uses a dual-version structure:
|
|
8
|
+
* - V1 Definitions: Full method signatures for reference
|
|
9
|
+
* - V2 Exposures: Lightweight binding info for runtime dispatch
|
|
10
|
+
*
|
|
11
|
+
* @see spec/bindings.md for complete schema documentation
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/types/bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostic types for Tsonic compiler
|
|
3
|
+
*/
|
|
4
|
+
export type DiagnosticSeverity = "error" | "warning" | "info";
|
|
5
|
+
export type DiagnosticCode = "TSN1001" | "TSN1002" | "TSN1003" | "TSN1004" | "TSN1005" | "TSN1006" | "TSN2001" | "TSN2002" | "TSN2003" | "TSN3001" | "TSN3002" | "TSN3011" | "TSN4001" | "TSN4002" | "TSN5001" | "TSN5002" | "TSN6001" | "TSN7101" | "TSN7102" | "TSN7103" | "TSN7104" | "TSN7105" | "TSN7201" | "TSN7202" | "TSN7203" | "TSN7204" | "TSN7301" | "TSN7401" | "TSN7403" | "TSN7405" | "TSN7413" | "TSN9001" | "TSN9002" | "TSN9003" | "TSN9004" | "TSN9005" | "TSN9006" | "TSN9007" | "TSN9008" | "TSN9009" | "TSN9010" | "TSN9011" | "TSN9012" | "TSN9013" | "TSN9014" | "TSN9015" | "TSN9016" | "TSN9017" | "TSN9018" | "TSN9101" | "TSN9102" | "TSN9103" | "TSN9104" | "TSN9105" | "TSN9106" | "TSN9107" | "TSN9108" | "TSN9109" | "TSN9110" | "TSN9111" | "TSN9112" | "TSN9113" | "TSN9114";
|
|
6
|
+
export type SourceLocation = {
|
|
7
|
+
readonly file: string;
|
|
8
|
+
readonly line: number;
|
|
9
|
+
readonly column: number;
|
|
10
|
+
readonly length: number;
|
|
11
|
+
};
|
|
12
|
+
export type Diagnostic = {
|
|
13
|
+
readonly code: DiagnosticCode;
|
|
14
|
+
readonly severity: DiagnosticSeverity;
|
|
15
|
+
readonly message: string;
|
|
16
|
+
readonly location?: SourceLocation;
|
|
17
|
+
readonly hint?: string;
|
|
18
|
+
readonly relatedLocations?: readonly SourceLocation[];
|
|
19
|
+
};
|
|
20
|
+
export declare const createDiagnostic: (code: DiagnosticCode, severity: DiagnosticSeverity, message: string, location?: SourceLocation, hint?: string, relatedLocations?: readonly SourceLocation[]) => Diagnostic;
|
|
21
|
+
export declare const isError: (diagnostic: Diagnostic) => boolean;
|
|
22
|
+
export declare const formatDiagnostic: (diagnostic: Diagnostic) => string;
|
|
23
|
+
export type DiagnosticsCollector = {
|
|
24
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
25
|
+
readonly hasErrors: boolean;
|
|
26
|
+
};
|
|
27
|
+
export declare const createDiagnosticsCollector: () => DiagnosticsCollector;
|
|
28
|
+
export declare const addDiagnostic: (collector: DiagnosticsCollector, diagnostic: Diagnostic) => DiagnosticsCollector;
|
|
29
|
+
export declare const mergeDiagnostics: (collector1: DiagnosticsCollector, collector2: DiagnosticsCollector) => DiagnosticsCollector;
|
|
30
|
+
//# sourceMappingURL=diagnostic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.d.ts","sourceRoot":"","sources":["../../src/types/diagnostic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GAET,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM,cAAc,EACpB,UAAU,kBAAkB,EAC5B,SAAS,MAAM,EACf,WAAW,cAAc,EACzB,OAAO,MAAM,EACb,mBAAmB,SAAS,cAAc,EAAE,KAC3C,UAOD,CAAC;AAEH,eAAO,MAAM,OAAO,GAAI,YAAY,UAAU,KAAG,OAChB,CAAC;AAElC,eAAO,MAAM,gBAAgB,GAAI,YAAY,UAAU,KAAG,MAiBzD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,oBAG5C,CAAC;AAEH,eAAO,MAAM,aAAa,GACxB,WAAW,oBAAoB,EAC/B,YAAY,UAAU,KACrB,oBAGD,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,oBAAoB,EAChC,YAAY,oBAAoB,KAC/B,oBAGD,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostic types for Tsonic compiler
|
|
3
|
+
*/
|
|
4
|
+
export const createDiagnostic = (code, severity, message, location, hint, relatedLocations) => ({
|
|
5
|
+
code,
|
|
6
|
+
severity,
|
|
7
|
+
message,
|
|
8
|
+
location,
|
|
9
|
+
hint,
|
|
10
|
+
relatedLocations,
|
|
11
|
+
});
|
|
12
|
+
export const isError = (diagnostic) => diagnostic.severity === "error";
|
|
13
|
+
export const formatDiagnostic = (diagnostic) => {
|
|
14
|
+
const parts = [];
|
|
15
|
+
if (diagnostic.location) {
|
|
16
|
+
parts.push(`${diagnostic.location.file}:${diagnostic.location.line}:${diagnostic.location.column}`);
|
|
17
|
+
}
|
|
18
|
+
parts.push(`${diagnostic.severity} ${diagnostic.code}:`);
|
|
19
|
+
parts.push(diagnostic.message);
|
|
20
|
+
if (diagnostic.hint) {
|
|
21
|
+
parts.push(`Hint: ${diagnostic.hint}`);
|
|
22
|
+
}
|
|
23
|
+
return parts.join(" ");
|
|
24
|
+
};
|
|
25
|
+
export const createDiagnosticsCollector = () => ({
|
|
26
|
+
diagnostics: [],
|
|
27
|
+
hasErrors: false,
|
|
28
|
+
});
|
|
29
|
+
export const addDiagnostic = (collector, diagnostic) => ({
|
|
30
|
+
diagnostics: [...collector.diagnostics, diagnostic],
|
|
31
|
+
hasErrors: collector.hasErrors || isError(diagnostic),
|
|
32
|
+
});
|
|
33
|
+
export const mergeDiagnostics = (collector1, collector2) => ({
|
|
34
|
+
diagnostics: [...collector1.diagnostics, ...collector2.diagnostics],
|
|
35
|
+
hasErrors: collector1.hasErrors || collector2.hasErrors,
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=diagnostic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/types/diagnostic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwFH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAoB,EACpB,QAA4B,EAC5B,OAAe,EACf,QAAyB,EACzB,IAAa,EACb,gBAA4C,EAChC,EAAE,CAAC,CAAC;IAChB,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,gBAAgB;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,UAAsB,EAAW,EAAE,CACzD,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAsB,EAAU,EAAE;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CACR,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE/B,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAyB,EAAE,CAAC,CAAC;IACrE,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,KAAK;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,SAA+B,EAC/B,UAAsB,EACA,EAAE,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAgC,EAChC,UAAgC,EACV,EAAE,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC;IACnE,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS;CACxD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.test.d.ts","sourceRoot":"","sources":["../../src/types/diagnostic.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for diagnostic types
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it } from "mocha";
|
|
5
|
+
import { expect } from "chai";
|
|
6
|
+
import { createDiagnostic, formatDiagnostic, createDiagnosticsCollector, addDiagnostic, mergeDiagnostics, isError, } from "./diagnostic.js";
|
|
7
|
+
describe("Diagnostics", () => {
|
|
8
|
+
describe("createDiagnostic", () => {
|
|
9
|
+
it("should create a diagnostic with all fields", () => {
|
|
10
|
+
const diagnostic = createDiagnostic("TSN1001", "error", "Test error", {
|
|
11
|
+
file: "test.ts",
|
|
12
|
+
line: 10,
|
|
13
|
+
column: 5,
|
|
14
|
+
length: 10,
|
|
15
|
+
}, "Try this instead", []);
|
|
16
|
+
expect(diagnostic.code).to.equal("TSN1001");
|
|
17
|
+
expect(diagnostic.severity).to.equal("error");
|
|
18
|
+
expect(diagnostic.message).to.equal("Test error");
|
|
19
|
+
expect(diagnostic.location?.file).to.equal("test.ts");
|
|
20
|
+
expect(diagnostic.hint).to.equal("Try this instead");
|
|
21
|
+
});
|
|
22
|
+
it("should create a diagnostic without optional fields", () => {
|
|
23
|
+
const diagnostic = createDiagnostic("TSN1002", "warning", "Test warning");
|
|
24
|
+
expect(diagnostic.code).to.equal("TSN1002");
|
|
25
|
+
expect(diagnostic.severity).to.equal("warning");
|
|
26
|
+
expect(diagnostic.location).to.equal(undefined);
|
|
27
|
+
expect(diagnostic.hint).to.equal(undefined);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe("formatDiagnostic", () => {
|
|
31
|
+
it("should format diagnostic with location", () => {
|
|
32
|
+
const diagnostic = createDiagnostic("TSN1001", "error", "Missing .ts extension", {
|
|
33
|
+
file: "/src/index.ts",
|
|
34
|
+
line: 5,
|
|
35
|
+
column: 10,
|
|
36
|
+
length: 15,
|
|
37
|
+
});
|
|
38
|
+
const formatted = formatDiagnostic(diagnostic);
|
|
39
|
+
expect(formatted).to.equal("/src/index.ts:5:10 error TSN1001: Missing .ts extension");
|
|
40
|
+
});
|
|
41
|
+
it("should format diagnostic without location", () => {
|
|
42
|
+
const diagnostic = createDiagnostic("TSN2001", "warning", "Generic warning");
|
|
43
|
+
const formatted = formatDiagnostic(diagnostic);
|
|
44
|
+
expect(formatted).to.equal("warning TSN2001: Generic warning");
|
|
45
|
+
});
|
|
46
|
+
it("should include hint if present", () => {
|
|
47
|
+
const diagnostic = createDiagnostic("TSN1001", "error", "Missing extension", undefined, "Add .ts extension");
|
|
48
|
+
const formatted = formatDiagnostic(diagnostic);
|
|
49
|
+
expect(formatted).to.include("Hint: Add .ts extension");
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe("DiagnosticsCollector", () => {
|
|
53
|
+
it("should start with empty diagnostics", () => {
|
|
54
|
+
const collector = createDiagnosticsCollector();
|
|
55
|
+
expect(collector.diagnostics).to.have.length(0);
|
|
56
|
+
expect(collector.hasErrors).to.equal(false);
|
|
57
|
+
});
|
|
58
|
+
it("should add diagnostics immutably", () => {
|
|
59
|
+
const collector1 = createDiagnosticsCollector();
|
|
60
|
+
const diagnostic = createDiagnostic("TSN1001", "error", "Test");
|
|
61
|
+
const collector2 = addDiagnostic(collector1, diagnostic);
|
|
62
|
+
expect(collector1.diagnostics).to.have.length(0);
|
|
63
|
+
expect(collector2.diagnostics).to.have.length(1);
|
|
64
|
+
expect(collector2.hasErrors).to.equal(true);
|
|
65
|
+
});
|
|
66
|
+
it("should track hasErrors correctly", () => {
|
|
67
|
+
let collector = createDiagnosticsCollector();
|
|
68
|
+
collector = addDiagnostic(collector, createDiagnostic("TSN1001", "warning", "Warning"));
|
|
69
|
+
expect(collector.hasErrors).to.equal(false);
|
|
70
|
+
collector = addDiagnostic(collector, createDiagnostic("TSN1002", "error", "Error"));
|
|
71
|
+
expect(collector.hasErrors).to.equal(true);
|
|
72
|
+
collector = addDiagnostic(collector, createDiagnostic("TSN1003", "info", "Info"));
|
|
73
|
+
expect(collector.hasErrors).to.equal(true); // Still has errors
|
|
74
|
+
});
|
|
75
|
+
it("should merge collectors", () => {
|
|
76
|
+
const collector1 = addDiagnostic(createDiagnosticsCollector(), createDiagnostic("TSN1001", "error", "Error 1"));
|
|
77
|
+
const collector2 = addDiagnostic(createDiagnosticsCollector(), createDiagnostic("TSN1002", "warning", "Warning 1"));
|
|
78
|
+
const merged = mergeDiagnostics(collector1, collector2);
|
|
79
|
+
expect(merged.diagnostics).to.have.length(2);
|
|
80
|
+
expect(merged.hasErrors).to.equal(true);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
describe("isError", () => {
|
|
84
|
+
it("should identify error diagnostics", () => {
|
|
85
|
+
const error = createDiagnostic("TSN1001", "error", "Test");
|
|
86
|
+
const warning = createDiagnostic("TSN1002", "warning", "Test");
|
|
87
|
+
const info = createDiagnostic("TSN1003", "info", "Test");
|
|
88
|
+
expect(isError(error)).to.equal(true);
|
|
89
|
+
expect(isError(warning)).to.equal(false);
|
|
90
|
+
expect(isError(info)).to.equal(false);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=diagnostic.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic.test.js","sourceRoot":"","sources":["../../src/types/diagnostic.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Explicit Interface Views - Handle As_IInterface pattern for explicit implementations.
|
|
3
|
+
*
|
|
4
|
+
* C# supports explicit interface implementation (EII), where a class implements
|
|
5
|
+
* an interface member explicitly. TypeScript doesn't support EII, so tsbindgen
|
|
6
|
+
* generates special As_IInterface properties that return views of the object.
|
|
7
|
+
*
|
|
8
|
+
* Example:
|
|
9
|
+
* TypeScript: list.As_ICollection.CopyTo(array, 0)
|
|
10
|
+
* C#: ((ICollection<T>)list).CopyTo(array, 0)
|
|
11
|
+
*
|
|
12
|
+
* @see spec/explicit-interface-views.md for complete documentation
|
|
13
|
+
*/
|
|
14
|
+
import type { ExplicitView } from "./metadata.ts";
|
|
15
|
+
/**
|
|
16
|
+
* Check if a property name matches the explicit view pattern (As_IInterface).
|
|
17
|
+
*
|
|
18
|
+
* @param propertyName - Property name to check
|
|
19
|
+
* @returns True if matches As_IInterface pattern
|
|
20
|
+
*/
|
|
21
|
+
export declare const isExplicitViewProperty: (propertyName: string) => boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Extract interface name from an explicit view property name.
|
|
24
|
+
*
|
|
25
|
+
* @param viewPropertyName - Property name (e.g., "As_ICollection")
|
|
26
|
+
* @returns Interface name (e.g., "ICollection"), or undefined if not a view property
|
|
27
|
+
*/
|
|
28
|
+
export declare const extractInterfaceNameFromView: (viewPropertyName: string) => string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Build explicit view property name from interface name.
|
|
31
|
+
*
|
|
32
|
+
* @param interfaceName - Interface name (e.g., "ICollection")
|
|
33
|
+
* @returns View property name (e.g., "As_ICollection")
|
|
34
|
+
*/
|
|
35
|
+
export declare const buildViewPropertyName: (interfaceName: string) => string;
|
|
36
|
+
/**
|
|
37
|
+
* Find explicit view for a given interface in type metadata.
|
|
38
|
+
*
|
|
39
|
+
* @param explicitViews - Array of explicit views from metadata
|
|
40
|
+
* @param interfaceName - CLR interface name to find (e.g., "System.Collections.ICollection")
|
|
41
|
+
* @returns Explicit view if found, undefined otherwise
|
|
42
|
+
*/
|
|
43
|
+
export declare const findExplicitView: (explicitViews: readonly ExplicitView[] | undefined, interfaceName: string) => ExplicitView | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Check if a member is in an explicit view (view-only member).
|
|
46
|
+
*
|
|
47
|
+
* @param explicitViews - Array of explicit views from metadata
|
|
48
|
+
* @param memberName - CLR member name to check
|
|
49
|
+
* @returns True if member appears in any view
|
|
50
|
+
*/
|
|
51
|
+
export declare const isMemberInExplicitView: (explicitViews: readonly ExplicitView[] | undefined, memberName: string) => boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Get all interface names that have explicit views.
|
|
54
|
+
*
|
|
55
|
+
* @param explicitViews - Array of explicit views from metadata
|
|
56
|
+
* @returns Array of interface CLR names
|
|
57
|
+
*/
|
|
58
|
+
export declare const getExplicitViewInterfaces: (explicitViews: readonly ExplicitView[] | undefined) => readonly string[];
|
|
59
|
+
/**
|
|
60
|
+
* Information about an explicit view member access.
|
|
61
|
+
*/
|
|
62
|
+
export type ExplicitViewAccess = {
|
|
63
|
+
readonly interfaceName: string;
|
|
64
|
+
readonly interfaceTsName: string;
|
|
65
|
+
readonly memberName: string;
|
|
66
|
+
readonly memberKind: "Method" | "Property" | "Event";
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Parse an explicit view member access expression.
|
|
70
|
+
*
|
|
71
|
+
* Example: obj.As_ICollection.CopyTo
|
|
72
|
+
* Returns: { interfaceName: "ICollection", memberName: "CopyTo", ... }
|
|
73
|
+
*
|
|
74
|
+
* @param viewPropertyName - View property name (e.g., "As_ICollection")
|
|
75
|
+
* @param memberName - Member being accessed (e.g., "CopyTo")
|
|
76
|
+
* @param explicitViews - Array of explicit views from metadata
|
|
77
|
+
* @returns View access info if valid, undefined if invalid
|
|
78
|
+
*/
|
|
79
|
+
export declare const parseExplicitViewAccess: (viewPropertyName: string, memberName: string, explicitViews: readonly ExplicitView[] | undefined) => ExplicitViewAccess | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Generate C# interface cast expression for explicit view access.
|
|
82
|
+
*
|
|
83
|
+
* @param objectExpression - C# expression for the object
|
|
84
|
+
* @param interfaceName - CLR interface name (e.g., "System.Collections.ICollection")
|
|
85
|
+
* @returns C# cast expression (e.g., "((ICollection)obj)")
|
|
86
|
+
*/
|
|
87
|
+
export declare const generateInterfaceCast: (objectExpression: string, interfaceName: string) => string;
|
|
88
|
+
/**
|
|
89
|
+
* Generate C# interface cast with generics.
|
|
90
|
+
*
|
|
91
|
+
* @param objectExpression - C# expression for the object
|
|
92
|
+
* @param interfaceName - CLR interface name (e.g., "System.Collections.Generic.ICollection`1")
|
|
93
|
+
* @param genericArguments - Generic type arguments in C# syntax (e.g., ["string"])
|
|
94
|
+
* @returns C# cast expression (e.g., "((ICollection<string>)obj)")
|
|
95
|
+
*/
|
|
96
|
+
export declare const generateGenericInterfaceCast: (objectExpression: string, interfaceName: string, genericArguments: readonly string[]) => string;
|
|
97
|
+
//# sourceMappingURL=explicit-views.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explicit-views.d.ts","sourceRoot":"","sources":["../../src/types/explicit-views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AASlD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,cAAc,MAAM,KAAG,OAE7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACvC,kBAAkB,MAAM,KACvB,MAAM,GAAG,SAMX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,eAAe,MAAM,KAAG,MAE7D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,eAAe,SAAS,YAAY,EAAE,GAAG,SAAS,EAClD,eAAe,MAAM,KACpB,YAAY,GAAG,SAMjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,eAAe,SAAS,YAAY,EAAE,GAAG,SAAS,EAClD,YAAY,MAAM,KACjB,OAYF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GACpC,eAAe,SAAS,YAAY,EAAE,GAAG,SAAS,KACjD,SAAS,MAAM,EAMjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;CACtD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAClC,kBAAkB,MAAM,EACxB,YAAY,MAAM,EAClB,eAAe,SAAS,YAAY,EAAE,GAAG,SAAS,KACjD,kBAAkB,GAAG,SA8BvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,kBAAkB,MAAM,EACxB,eAAe,MAAM,KACpB,MAKF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,GACvC,kBAAkB,MAAM,EACxB,eAAe,MAAM,EACrB,kBAAkB,SAAS,MAAM,EAAE,KAClC,MAcF,CAAC"}
|