@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
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Symbol table creation and modification
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { Symbol, SymbolTable } from "./types.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Create an empty symbol table
|
|
9
|
-
*/
|
|
10
|
-
export const createSymbolTable = (): SymbolTable => ({
|
|
11
|
-
symbols: new Map(),
|
|
12
|
-
moduleSymbols: new Map(),
|
|
13
|
-
exportedSymbols: new Map(),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Add a symbol to the table (immutable)
|
|
18
|
-
*/
|
|
19
|
-
export const addSymbol = (table: SymbolTable, symbol: Symbol): SymbolTable => {
|
|
20
|
-
// Add to symbols map (by name)
|
|
21
|
-
const symbolsByName = table.symbols.get(symbol.name) ?? [];
|
|
22
|
-
const newSymbolsByName = new Map(table.symbols);
|
|
23
|
-
newSymbolsByName.set(symbol.name, [...symbolsByName, symbol]);
|
|
24
|
-
|
|
25
|
-
// Add to module symbols map
|
|
26
|
-
const moduleSymbols = table.moduleSymbols.get(symbol.module) ?? [];
|
|
27
|
-
const newModuleSymbols = new Map(table.moduleSymbols);
|
|
28
|
-
newModuleSymbols.set(symbol.module, [...moduleSymbols, symbol]);
|
|
29
|
-
|
|
30
|
-
// Add to exported symbols if exported
|
|
31
|
-
let newExportedSymbols = new Map(table.exportedSymbols);
|
|
32
|
-
if (symbol.isExported) {
|
|
33
|
-
const exportedSymbols = table.exportedSymbols.get(symbol.module) ?? [];
|
|
34
|
-
newExportedSymbols.set(symbol.module, [...exportedSymbols, symbol]);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return {
|
|
38
|
-
symbols: newSymbolsByName,
|
|
39
|
-
moduleSymbols: newModuleSymbols,
|
|
40
|
-
exportedSymbols: newExportedSymbols,
|
|
41
|
-
};
|
|
42
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Symbol table helper functions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import * as ts from "typescript";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Check if a node has an export modifier
|
|
9
|
-
*/
|
|
10
|
-
export const hasExportModifier = (node: ts.Node): boolean => {
|
|
11
|
-
if (!ts.canHaveModifiers(node)) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
const modifiers = ts.getModifiers(node);
|
|
15
|
-
return (
|
|
16
|
-
modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) ?? false
|
|
17
|
-
);
|
|
18
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Symbol table query functions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { Symbol, SymbolTable } from "./types.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Find symbols by name, optionally filtered by module
|
|
9
|
-
*/
|
|
10
|
-
export const findSymbol = (
|
|
11
|
-
table: SymbolTable,
|
|
12
|
-
name: string,
|
|
13
|
-
module?: string
|
|
14
|
-
): readonly Symbol[] => {
|
|
15
|
-
if (module) {
|
|
16
|
-
const moduleSymbols = table.moduleSymbols.get(module) ?? [];
|
|
17
|
-
return moduleSymbols.filter((s) => s.name === name);
|
|
18
|
-
}
|
|
19
|
-
return table.symbols.get(name) ?? [];
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Get all exported symbols from a module
|
|
24
|
-
*/
|
|
25
|
-
export const getExportedSymbols = (
|
|
26
|
-
table: SymbolTable,
|
|
27
|
-
module: string
|
|
28
|
-
): readonly Symbol[] => {
|
|
29
|
-
return table.exportedSymbols.get(module) ?? [];
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Check if a module exports a symbol with the given name
|
|
34
|
-
*/
|
|
35
|
-
export const hasExportedSymbol = (
|
|
36
|
-
table: SymbolTable,
|
|
37
|
-
module: string,
|
|
38
|
-
name: string
|
|
39
|
-
): boolean => {
|
|
40
|
-
const exported = getExportedSymbols(table, module);
|
|
41
|
-
return exported.some((s) => s.name === name);
|
|
42
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Symbol table type definitions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import * as ts from "typescript";
|
|
6
|
-
|
|
7
|
-
export type SymbolKind =
|
|
8
|
-
| "class"
|
|
9
|
-
| "interface"
|
|
10
|
-
| "function"
|
|
11
|
-
| "variable"
|
|
12
|
-
| "type"
|
|
13
|
-
| "enum"
|
|
14
|
-
| "namespace";
|
|
15
|
-
|
|
16
|
-
export type Symbol = {
|
|
17
|
-
readonly name: string;
|
|
18
|
-
readonly kind: SymbolKind;
|
|
19
|
-
readonly isExported: boolean;
|
|
20
|
-
readonly module: string; // File path
|
|
21
|
-
readonly tsSymbol?: ts.Symbol; // Optional reference to TypeScript symbol
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export type SymbolTable = {
|
|
25
|
-
readonly symbols: ReadonlyMap<string, readonly Symbol[]>; // Name to symbols
|
|
26
|
-
readonly moduleSymbols: ReadonlyMap<string, readonly Symbol[]>; // Module path to symbols
|
|
27
|
-
readonly exportedSymbols: ReadonlyMap<string, readonly Symbol[]>; // Module path to exported symbols
|
|
28
|
-
};
|
package/src/types/bindings.ts
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
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
|
-
/**
|
|
15
|
-
* Root bindings file structure.
|
|
16
|
-
* Represents a single namespace with all its type bindings.
|
|
17
|
-
*/
|
|
18
|
-
export type BindingsFile = {
|
|
19
|
-
readonly namespace: string;
|
|
20
|
-
readonly types: TypeBinding[];
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Complete binding information for a CLR type.
|
|
25
|
-
* Includes both V1 definitions and V2 exposures.
|
|
26
|
-
*/
|
|
27
|
-
export type TypeBinding = {
|
|
28
|
-
readonly clrName: string;
|
|
29
|
-
readonly tsEmitName: string;
|
|
30
|
-
readonly assemblyName: string;
|
|
31
|
-
readonly metadataToken: number;
|
|
32
|
-
readonly methods?: MethodBinding[]; // V1: Full signatures
|
|
33
|
-
readonly properties?: PropertyBinding[]; // V1: Property info
|
|
34
|
-
readonly fields?: FieldBinding[]; // V1: Field info
|
|
35
|
-
readonly events?: EventBinding[]; // V1: Event info
|
|
36
|
-
readonly exposedMethods?: ExposedMethodBinding[]; // V2: Runtime dispatch
|
|
37
|
-
readonly exposedProperties?: ExposedPropertyBinding[]; // V2: Runtime access
|
|
38
|
-
readonly exposedFields?: ExposedFieldBinding[]; // V2: Runtime access
|
|
39
|
-
readonly exposedEvents?: ExposedEventBinding[]; // V2: Runtime access
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* V1 Definition: Complete method signature.
|
|
44
|
-
* Used for type checking and reference.
|
|
45
|
-
*/
|
|
46
|
-
export type MethodBinding = {
|
|
47
|
-
readonly name: string;
|
|
48
|
-
readonly clrName: string;
|
|
49
|
-
readonly tsEmitName: string;
|
|
50
|
-
readonly isStatic: boolean;
|
|
51
|
-
readonly arity: number;
|
|
52
|
-
readonly parameters: ParameterBinding[];
|
|
53
|
-
readonly returnType: string;
|
|
54
|
-
readonly metadataToken: number;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* V1 Definition: Property information.
|
|
59
|
-
*/
|
|
60
|
-
export type PropertyBinding = {
|
|
61
|
-
readonly name: string;
|
|
62
|
-
readonly clrName: string;
|
|
63
|
-
readonly tsEmitName: string;
|
|
64
|
-
readonly isStatic: boolean;
|
|
65
|
-
readonly type: string;
|
|
66
|
-
readonly hasGetter: boolean;
|
|
67
|
-
readonly hasSetter: boolean;
|
|
68
|
-
readonly getterToken?: number;
|
|
69
|
-
readonly setterToken?: number;
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* V1 Definition: Field information.
|
|
74
|
-
*/
|
|
75
|
-
export type FieldBinding = {
|
|
76
|
-
readonly name: string;
|
|
77
|
-
readonly clrName: string;
|
|
78
|
-
readonly tsEmitName: string;
|
|
79
|
-
readonly isStatic: boolean;
|
|
80
|
-
readonly type: string;
|
|
81
|
-
readonly metadataToken: number;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* V1 Definition: Event information.
|
|
86
|
-
*/
|
|
87
|
-
export type EventBinding = {
|
|
88
|
-
readonly name: string;
|
|
89
|
-
readonly clrName: string;
|
|
90
|
-
readonly tsEmitName: string;
|
|
91
|
-
readonly isStatic: boolean;
|
|
92
|
-
readonly type: string;
|
|
93
|
-
readonly adderToken: number;
|
|
94
|
-
readonly removerToken: number;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Parameter binding information.
|
|
99
|
-
*/
|
|
100
|
-
export type ParameterBinding = {
|
|
101
|
-
readonly name: string;
|
|
102
|
-
readonly type: string;
|
|
103
|
-
readonly isRef: boolean;
|
|
104
|
-
readonly isOut: boolean;
|
|
105
|
-
readonly isIn?: boolean;
|
|
106
|
-
readonly isParams: boolean;
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* V2 Exposure: Lightweight method binding for runtime dispatch.
|
|
111
|
-
* Optimized format with minimal data for fast lookups.
|
|
112
|
-
*/
|
|
113
|
-
export type ExposedMethodBinding = {
|
|
114
|
-
readonly tsEmitName: string;
|
|
115
|
-
readonly isStatic: boolean;
|
|
116
|
-
readonly arity: number;
|
|
117
|
-
readonly overloads: MethodOverloadBinding[];
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Method overload binding.
|
|
122
|
-
* One entry per unique parameter count.
|
|
123
|
-
*/
|
|
124
|
-
export type MethodOverloadBinding = {
|
|
125
|
-
readonly parameterCount: number;
|
|
126
|
-
readonly metadataToken: number;
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* V2 Exposure: Lightweight property binding for runtime access.
|
|
131
|
-
*/
|
|
132
|
-
export type ExposedPropertyBinding = {
|
|
133
|
-
readonly tsEmitName: string;
|
|
134
|
-
readonly isStatic: boolean;
|
|
135
|
-
readonly getterToken?: number;
|
|
136
|
-
readonly setterToken?: number;
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* V2 Exposure: Lightweight field binding for runtime access.
|
|
141
|
-
*/
|
|
142
|
-
export type ExposedFieldBinding = {
|
|
143
|
-
readonly tsEmitName: string;
|
|
144
|
-
readonly isStatic: boolean;
|
|
145
|
-
readonly metadataToken: number;
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* V2 Exposure: Lightweight event binding for runtime access.
|
|
150
|
-
*/
|
|
151
|
-
export type ExposedEventBinding = {
|
|
152
|
-
readonly tsEmitName: string;
|
|
153
|
-
readonly isStatic: boolean;
|
|
154
|
-
readonly adderToken: number;
|
|
155
|
-
readonly removerToken: number;
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Helper type: Extract V1 definitions from a type binding.
|
|
160
|
-
*/
|
|
161
|
-
export type V1Definitions = Pick<
|
|
162
|
-
TypeBinding,
|
|
163
|
-
"methods" | "properties" | "fields" | "events"
|
|
164
|
-
>;
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Helper type: Extract V2 exposures from a type binding.
|
|
168
|
-
*/
|
|
169
|
-
export type V2Exposures = Pick<
|
|
170
|
-
TypeBinding,
|
|
171
|
-
"exposedMethods" | "exposedProperties" | "exposedFields" | "exposedEvents"
|
|
172
|
-
>;
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for diagnostic types
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { describe, it } from "mocha";
|
|
6
|
-
import { expect } from "chai";
|
|
7
|
-
import {
|
|
8
|
-
createDiagnostic,
|
|
9
|
-
formatDiagnostic,
|
|
10
|
-
createDiagnosticsCollector,
|
|
11
|
-
addDiagnostic,
|
|
12
|
-
mergeDiagnostics,
|
|
13
|
-
isError,
|
|
14
|
-
} from "./diagnostic.js";
|
|
15
|
-
|
|
16
|
-
describe("Diagnostics", () => {
|
|
17
|
-
describe("createDiagnostic", () => {
|
|
18
|
-
it("should create a diagnostic with all fields", () => {
|
|
19
|
-
const diagnostic = createDiagnostic(
|
|
20
|
-
"TSN1001",
|
|
21
|
-
"error",
|
|
22
|
-
"Test error",
|
|
23
|
-
{
|
|
24
|
-
file: "test.ts",
|
|
25
|
-
line: 10,
|
|
26
|
-
column: 5,
|
|
27
|
-
length: 10,
|
|
28
|
-
},
|
|
29
|
-
"Try this instead",
|
|
30
|
-
[]
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
expect(diagnostic.code).to.equal("TSN1001");
|
|
34
|
-
expect(diagnostic.severity).to.equal("error");
|
|
35
|
-
expect(diagnostic.message).to.equal("Test error");
|
|
36
|
-
expect(diagnostic.location?.file).to.equal("test.ts");
|
|
37
|
-
expect(diagnostic.hint).to.equal("Try this instead");
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it("should create a diagnostic without optional fields", () => {
|
|
41
|
-
const diagnostic = createDiagnostic("TSN1002", "warning", "Test warning");
|
|
42
|
-
|
|
43
|
-
expect(diagnostic.code).to.equal("TSN1002");
|
|
44
|
-
expect(diagnostic.severity).to.equal("warning");
|
|
45
|
-
expect(diagnostic.location).to.equal(undefined);
|
|
46
|
-
expect(diagnostic.hint).to.equal(undefined);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
describe("formatDiagnostic", () => {
|
|
51
|
-
it("should format diagnostic with location", () => {
|
|
52
|
-
const diagnostic = createDiagnostic(
|
|
53
|
-
"TSN1001",
|
|
54
|
-
"error",
|
|
55
|
-
"Missing .ts extension",
|
|
56
|
-
{
|
|
57
|
-
file: "/src/index.ts",
|
|
58
|
-
line: 5,
|
|
59
|
-
column: 10,
|
|
60
|
-
length: 15,
|
|
61
|
-
}
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
const formatted = formatDiagnostic(diagnostic);
|
|
65
|
-
expect(formatted).to.equal(
|
|
66
|
-
"/src/index.ts:5:10 error TSN1001: Missing .ts extension"
|
|
67
|
-
);
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it("should format diagnostic without location", () => {
|
|
71
|
-
const diagnostic = createDiagnostic(
|
|
72
|
-
"TSN2001",
|
|
73
|
-
"warning",
|
|
74
|
-
"Generic warning"
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
const formatted = formatDiagnostic(diagnostic);
|
|
78
|
-
expect(formatted).to.equal("warning TSN2001: Generic warning");
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it("should include hint if present", () => {
|
|
82
|
-
const diagnostic = createDiagnostic(
|
|
83
|
-
"TSN1001",
|
|
84
|
-
"error",
|
|
85
|
-
"Missing extension",
|
|
86
|
-
undefined,
|
|
87
|
-
"Add .ts extension"
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
const formatted = formatDiagnostic(diagnostic);
|
|
91
|
-
expect(formatted).to.include("Hint: Add .ts extension");
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
describe("DiagnosticsCollector", () => {
|
|
96
|
-
it("should start with empty diagnostics", () => {
|
|
97
|
-
const collector = createDiagnosticsCollector();
|
|
98
|
-
expect(collector.diagnostics).to.have.length(0);
|
|
99
|
-
expect(collector.hasErrors).to.equal(false);
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
it("should add diagnostics immutably", () => {
|
|
103
|
-
const collector1 = createDiagnosticsCollector();
|
|
104
|
-
const diagnostic = createDiagnostic("TSN1001", "error", "Test");
|
|
105
|
-
|
|
106
|
-
const collector2 = addDiagnostic(collector1, diagnostic);
|
|
107
|
-
|
|
108
|
-
expect(collector1.diagnostics).to.have.length(0);
|
|
109
|
-
expect(collector2.diagnostics).to.have.length(1);
|
|
110
|
-
expect(collector2.hasErrors).to.equal(true);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it("should track hasErrors correctly", () => {
|
|
114
|
-
let collector = createDiagnosticsCollector();
|
|
115
|
-
|
|
116
|
-
collector = addDiagnostic(
|
|
117
|
-
collector,
|
|
118
|
-
createDiagnostic("TSN1001", "warning", "Warning")
|
|
119
|
-
);
|
|
120
|
-
expect(collector.hasErrors).to.equal(false);
|
|
121
|
-
|
|
122
|
-
collector = addDiagnostic(
|
|
123
|
-
collector,
|
|
124
|
-
createDiagnostic("TSN1002", "error", "Error")
|
|
125
|
-
);
|
|
126
|
-
expect(collector.hasErrors).to.equal(true);
|
|
127
|
-
|
|
128
|
-
collector = addDiagnostic(
|
|
129
|
-
collector,
|
|
130
|
-
createDiagnostic("TSN1003", "info", "Info")
|
|
131
|
-
);
|
|
132
|
-
expect(collector.hasErrors).to.equal(true); // Still has errors
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
it("should merge collectors", () => {
|
|
136
|
-
const collector1 = addDiagnostic(
|
|
137
|
-
createDiagnosticsCollector(),
|
|
138
|
-
createDiagnostic("TSN1001", "error", "Error 1")
|
|
139
|
-
);
|
|
140
|
-
|
|
141
|
-
const collector2 = addDiagnostic(
|
|
142
|
-
createDiagnosticsCollector(),
|
|
143
|
-
createDiagnostic("TSN1002", "warning", "Warning 1")
|
|
144
|
-
);
|
|
145
|
-
|
|
146
|
-
const merged = mergeDiagnostics(collector1, collector2);
|
|
147
|
-
|
|
148
|
-
expect(merged.diagnostics).to.have.length(2);
|
|
149
|
-
expect(merged.hasErrors).to.equal(true);
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
describe("isError", () => {
|
|
154
|
-
it("should identify error diagnostics", () => {
|
|
155
|
-
const error = createDiagnostic("TSN1001", "error", "Test");
|
|
156
|
-
const warning = createDiagnostic("TSN1002", "warning", "Test");
|
|
157
|
-
const info = createDiagnostic("TSN1003", "info", "Test");
|
|
158
|
-
|
|
159
|
-
expect(isError(error)).to.equal(true);
|
|
160
|
-
expect(isError(warning)).to.equal(false);
|
|
161
|
-
expect(isError(info)).to.equal(false);
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
});
|
package/src/types/diagnostic.ts
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Diagnostic types for Tsonic compiler
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export type DiagnosticSeverity = "error" | "warning" | "info";
|
|
6
|
-
|
|
7
|
-
export type DiagnosticCode =
|
|
8
|
-
| "TSN1001" // Local import missing .ts extension
|
|
9
|
-
| "TSN1002" // Circular dependency detected
|
|
10
|
-
| "TSN1003" // Case mismatch in import path
|
|
11
|
-
| "TSN1004" // Module not found
|
|
12
|
-
| "TSN1005" // Conflicting exports
|
|
13
|
-
| "TSN1006" // Invalid namespace
|
|
14
|
-
| "TSN2001" // Unsupported TypeScript feature
|
|
15
|
-
| "TSN2002" // Invalid type mapping
|
|
16
|
-
| "TSN2003" // File name conflicts with exported member name
|
|
17
|
-
| "TSN3001" // C# reserved keyword used
|
|
18
|
-
| "TSN3002" // Invalid C# identifier
|
|
19
|
-
| "TSN3011" // Promise chaining (.then/.catch/.finally) not supported
|
|
20
|
-
| "TSN4001" // .NET interop error
|
|
21
|
-
| "TSN4002" // Missing .NET type declaration
|
|
22
|
-
| "TSN5001" // NativeAOT limitation
|
|
23
|
-
| "TSN5002" // Runtime implementation missing
|
|
24
|
-
| "TSN6001" // Internal compiler error
|
|
25
|
-
| "TSN7101" // Recursive mapped types not supported
|
|
26
|
-
| "TSN7102" // Conditional types using infer not supported
|
|
27
|
-
| "TSN7103" // `this` typing not supported
|
|
28
|
-
| "TSN7104" // Generic constructor constraints with rest parameters not supported
|
|
29
|
-
| "TSN7105" // Cannot determine required type specialisations
|
|
30
|
-
| "TSN7201" // Recursive structural alias not supported
|
|
31
|
-
| "TSN7202" // Conditional alias cannot be resolved
|
|
32
|
-
| "TSN7203" // Symbol keys not supported
|
|
33
|
-
| "TSN7204" // Variadic generic interface not supported
|
|
34
|
-
| "TSN7301" // Class cannot implement nominalized interface
|
|
35
|
-
// Static/AOT safety errors (TSN7401-TSN7499)
|
|
36
|
-
| "TSN7401" // 'any' type not supported - requires explicit type
|
|
37
|
-
| "TSN7403" // Object literal requires contextual nominal type
|
|
38
|
-
| "TSN7405" // Untyped lambda parameter - requires explicit type annotation
|
|
39
|
-
| "TSN7413" // Dictionary key must be string type
|
|
40
|
-
// Metadata loading errors (TSN9001-TSN9018)
|
|
41
|
-
| "TSN9001" // Metadata file not found
|
|
42
|
-
| "TSN9002" // Failed to read metadata file
|
|
43
|
-
| "TSN9003" // Invalid JSON in metadata file
|
|
44
|
-
| "TSN9004" // Metadata file must be an object
|
|
45
|
-
| "TSN9005" // Missing or invalid 'namespace' field
|
|
46
|
-
| "TSN9006" // Missing or invalid 'contributingAssemblies' field
|
|
47
|
-
| "TSN9007" // All 'contributingAssemblies' must be strings
|
|
48
|
-
| "TSN9008" // Missing or invalid 'types' field
|
|
49
|
-
| "TSN9009" // Invalid type: must be an object
|
|
50
|
-
| "TSN9010" // Invalid type: missing or invalid field
|
|
51
|
-
| "TSN9011" // Invalid type: 'kind' must be one of ...
|
|
52
|
-
| "TSN9012" // Invalid type: 'accessibility' must be one of ...
|
|
53
|
-
| "TSN9013" // Invalid type: field must be a boolean
|
|
54
|
-
| "TSN9014" // Invalid type: 'arity' must be a non-negative number
|
|
55
|
-
| "TSN9015" // Invalid type: field must be an array
|
|
56
|
-
| "TSN9016" // Metadata directory not found
|
|
57
|
-
| "TSN9017" // Not a directory
|
|
58
|
-
| "TSN9018" // No .metadata.json files found
|
|
59
|
-
// Bindings loading errors (TSN9101-TSN9114)
|
|
60
|
-
| "TSN9101" // Bindings file not found
|
|
61
|
-
| "TSN9102" // Failed to read bindings file
|
|
62
|
-
| "TSN9103" // Invalid JSON in bindings file
|
|
63
|
-
| "TSN9104" // Bindings file must be an object
|
|
64
|
-
| "TSN9105" // Missing or invalid 'namespace' field
|
|
65
|
-
| "TSN9106" // Missing or invalid 'types' field
|
|
66
|
-
| "TSN9107" // Invalid type binding: must be an object
|
|
67
|
-
| "TSN9108" // Invalid type binding: missing or invalid field
|
|
68
|
-
| "TSN9109" // Invalid type binding: 'metadataToken' must be a number
|
|
69
|
-
| "TSN9110" // Invalid type binding: V1 field must be an array if present
|
|
70
|
-
| "TSN9111" // Invalid type binding: V2 field must be an array if present
|
|
71
|
-
| "TSN9112" // Bindings directory not found
|
|
72
|
-
| "TSN9113" // Not a directory
|
|
73
|
-
| "TSN9114"; // No .bindings.json files found
|
|
74
|
-
|
|
75
|
-
export type SourceLocation = {
|
|
76
|
-
readonly file: string;
|
|
77
|
-
readonly line: number;
|
|
78
|
-
readonly column: number;
|
|
79
|
-
readonly length: number;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export type Diagnostic = {
|
|
83
|
-
readonly code: DiagnosticCode;
|
|
84
|
-
readonly severity: DiagnosticSeverity;
|
|
85
|
-
readonly message: string;
|
|
86
|
-
readonly location?: SourceLocation;
|
|
87
|
-
readonly hint?: string;
|
|
88
|
-
readonly relatedLocations?: readonly SourceLocation[];
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
export const createDiagnostic = (
|
|
92
|
-
code: DiagnosticCode,
|
|
93
|
-
severity: DiagnosticSeverity,
|
|
94
|
-
message: string,
|
|
95
|
-
location?: SourceLocation,
|
|
96
|
-
hint?: string,
|
|
97
|
-
relatedLocations?: readonly SourceLocation[]
|
|
98
|
-
): Diagnostic => ({
|
|
99
|
-
code,
|
|
100
|
-
severity,
|
|
101
|
-
message,
|
|
102
|
-
location,
|
|
103
|
-
hint,
|
|
104
|
-
relatedLocations,
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
export const isError = (diagnostic: Diagnostic): boolean =>
|
|
108
|
-
diagnostic.severity === "error";
|
|
109
|
-
|
|
110
|
-
export const formatDiagnostic = (diagnostic: Diagnostic): string => {
|
|
111
|
-
const parts: string[] = [];
|
|
112
|
-
|
|
113
|
-
if (diagnostic.location) {
|
|
114
|
-
parts.push(
|
|
115
|
-
`${diagnostic.location.file}:${diagnostic.location.line}:${diagnostic.location.column}`
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
parts.push(`${diagnostic.severity} ${diagnostic.code}:`);
|
|
120
|
-
parts.push(diagnostic.message);
|
|
121
|
-
|
|
122
|
-
if (diagnostic.hint) {
|
|
123
|
-
parts.push(`Hint: ${diagnostic.hint}`);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return parts.join(" ");
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
export type DiagnosticsCollector = {
|
|
130
|
-
readonly diagnostics: readonly Diagnostic[];
|
|
131
|
-
readonly hasErrors: boolean;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
export const createDiagnosticsCollector = (): DiagnosticsCollector => ({
|
|
135
|
-
diagnostics: [],
|
|
136
|
-
hasErrors: false,
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
export const addDiagnostic = (
|
|
140
|
-
collector: DiagnosticsCollector,
|
|
141
|
-
diagnostic: Diagnostic
|
|
142
|
-
): DiagnosticsCollector => ({
|
|
143
|
-
diagnostics: [...collector.diagnostics, diagnostic],
|
|
144
|
-
hasErrors: collector.hasErrors || isError(diagnostic),
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
export const mergeDiagnostics = (
|
|
148
|
-
collector1: DiagnosticsCollector,
|
|
149
|
-
collector2: DiagnosticsCollector
|
|
150
|
-
): DiagnosticsCollector => ({
|
|
151
|
-
diagnostics: [...collector1.diagnostics, ...collector2.diagnostics],
|
|
152
|
-
hasErrors: collector1.hasErrors || collector2.hasErrors,
|
|
153
|
-
});
|