brighterscript 1.0.0-alpha.5 → 1.0.0-alpha.51
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/README.md +79 -138
- package/bsconfig.schema.json +196 -5
- package/dist/ActionPipeline.d.ts +10 -0
- package/dist/ActionPipeline.js +40 -0
- package/dist/ActionPipeline.js.map +1 -0
- package/dist/AstValidationSegmenter.d.ts +45 -0
- package/dist/AstValidationSegmenter.js +322 -0
- package/dist/AstValidationSegmenter.js.map +1 -0
- package/dist/BsConfig.d.ts +161 -43
- package/dist/BusyStatusTracker.d.ts +61 -0
- package/dist/BusyStatusTracker.js +148 -0
- package/dist/BusyStatusTracker.js.map +1 -0
- package/dist/Cache.d.ts +3 -8
- package/dist/Cache.js +9 -14
- package/dist/Cache.js.map +1 -1
- package/dist/CacheVerifier.d.ts +7 -0
- package/dist/CacheVerifier.js +20 -0
- package/dist/CacheVerifier.js.map +1 -0
- package/dist/CodeActionUtil.d.ts +29 -4
- package/dist/CodeActionUtil.js +22 -5
- package/dist/CodeActionUtil.js.map +1 -1
- package/dist/CommentFlagProcessor.d.ts +20 -15
- package/dist/CommentFlagProcessor.js +143 -58
- package/dist/CommentFlagProcessor.js.map +1 -1
- package/dist/CrossScopeValidator.d.ts +68 -0
- package/dist/CrossScopeValidator.js +650 -0
- package/dist/CrossScopeValidator.js.map +1 -0
- package/dist/DependencyGraph.d.ts +8 -3
- package/dist/DependencyGraph.js +49 -16
- package/dist/DependencyGraph.js.map +1 -1
- package/dist/DiagnosticCollection.d.ts +21 -5
- package/dist/DiagnosticCollection.js +77 -24
- package/dist/DiagnosticCollection.js.map +1 -1
- package/dist/DiagnosticFilterer.d.ts +27 -6
- package/dist/DiagnosticFilterer.js +273 -60
- package/dist/DiagnosticFilterer.js.map +1 -1
- package/dist/DiagnosticManager.d.ts +83 -0
- package/dist/DiagnosticManager.js +422 -0
- package/dist/DiagnosticManager.js.map +1 -0
- package/dist/DiagnosticMessages.d.ts +602 -196
- package/dist/DiagnosticMessages.js +926 -342
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
- package/dist/DiagnosticSeverityAdjuster.js +45 -0
- package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
- package/dist/FunctionScope.d.ts +28 -0
- package/dist/FunctionScope.js +52 -0
- package/dist/FunctionScope.js.map +1 -0
- package/dist/KeyedThrottler.d.ts +3 -3
- package/dist/KeyedThrottler.js +3 -3
- package/dist/KeyedThrottler.js.map +1 -1
- package/dist/LanguageServer.d.ts +136 -104
- package/dist/LanguageServer.js +577 -741
- package/dist/LanguageServer.js.map +1 -1
- package/dist/Logger.d.ts +17 -13
- package/dist/Logger.js +64 -34
- package/dist/Logger.js.map +1 -1
- package/dist/PluginInterface.d.ts +32 -10
- package/dist/PluginInterface.js +117 -7
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +302 -98
- package/dist/Program.js +1613 -726
- package/dist/Program.js.map +1 -1
- package/dist/ProgramBuilder.d.ts +39 -22
- package/dist/ProgramBuilder.js +245 -179
- package/dist/ProgramBuilder.js.map +1 -1
- package/dist/Scope.d.ts +227 -106
- package/dist/Scope.js +609 -557
- package/dist/Scope.js.map +1 -1
- package/dist/ScopeNamespaceLookup.d.ts +73 -0
- package/dist/ScopeNamespaceLookup.js +242 -0
- package/dist/ScopeNamespaceLookup.js.map +1 -0
- package/dist/SemanticTokenUtils.js +5 -1
- package/dist/SemanticTokenUtils.js.map +1 -1
- package/dist/Stopwatch.d.ts +4 -0
- package/dist/Stopwatch.js +8 -1
- package/dist/Stopwatch.js.map +1 -1
- package/dist/SymbolTable.d.ts +145 -26
- package/dist/SymbolTable.js +575 -64
- package/dist/SymbolTable.js.map +1 -1
- package/dist/SymbolTypeFlag.d.ts +9 -0
- package/dist/SymbolTypeFlag.js +14 -0
- package/dist/SymbolTypeFlag.js.map +1 -0
- package/dist/Throttler.d.ts +12 -0
- package/dist/Throttler.js +39 -0
- package/dist/Throttler.js.map +1 -1
- package/dist/Watcher.d.ts +0 -3
- package/dist/Watcher.js +0 -3
- package/dist/Watcher.js.map +1 -1
- package/dist/XmlScope.d.ts +5 -15
- package/dist/XmlScope.js +34 -90
- package/dist/XmlScope.js.map +1 -1
- package/dist/astUtils/CachedLookups.d.ts +50 -0
- package/dist/astUtils/CachedLookups.js +337 -0
- package/dist/astUtils/CachedLookups.js.map +1 -0
- package/dist/astUtils/Editor.d.ts +69 -0
- package/dist/astUtils/Editor.js +245 -0
- package/dist/astUtils/Editor.js.map +1 -0
- package/dist/astUtils/creators.d.ts +54 -19
- package/dist/astUtils/creators.js +242 -42
- package/dist/astUtils/creators.js.map +1 -1
- package/dist/astUtils/reflection.d.ts +199 -85
- package/dist/astUtils/reflection.js +518 -145
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/stackedVisitor.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +117 -53
- package/dist/astUtils/visitors.js +95 -15
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/astUtils/xml.d.ts +9 -8
- package/dist/astUtils/xml.js +12 -7
- package/dist/astUtils/xml.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +26 -4
- package/dist/bscPlugin/BscPlugin.js +96 -4
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
- package/dist/bscPlugin/CallExpressionInfo.js +142 -0
- package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
- package/dist/bscPlugin/FileWriter.d.ts +19 -0
- package/dist/bscPlugin/FileWriter.js +79 -0
- package/dist/bscPlugin/FileWriter.js.map +1 -0
- package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
- package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
- package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +109 -7
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +676 -26
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
- package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
- package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
- package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
- package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
- package/dist/bscPlugin/codeActions/codeActionHelpers.js +31 -0
- package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
- package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
- package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js +220 -0
- package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
- package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
- package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
- package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
- package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
- package/dist/bscPlugin/hover/HoverProcessor.js +238 -0
- package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
- package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
- package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
- package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +77 -0
- package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
- package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
- package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
- package/dist/bscPlugin/serialize/BslibManager.js +46 -0
- package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
- package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
- package/dist/bscPlugin/serialize/FileSerializer.js +80 -0
- package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
- package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
- package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
- package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
- package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
- package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +34 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +504 -0
- package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
- package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
- package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
- package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
- package/dist/bscPlugin/validation/BrsFileValidator.d.ts +51 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js +714 -0
- package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
- package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
- package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
- package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +158 -0
- package/dist/bscPlugin/validation/ScopeValidator.js +1481 -0
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
- package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js +50 -0
- package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
- package/dist/cli.js +140 -28
- package/dist/cli.js.map +1 -1
- package/dist/common/Sequencer.d.ts +53 -0
- package/dist/common/Sequencer.js +233 -0
- package/dist/common/Sequencer.js.map +1 -0
- package/dist/deferred.d.ts +5 -3
- package/dist/deferred.js +10 -0
- package/dist/deferred.js.map +1 -1
- package/dist/diagnosticUtils.d.ts +61 -4
- package/dist/diagnosticUtils.js +285 -25
- package/dist/diagnosticUtils.js.map +1 -1
- package/dist/examples/plugins/removePrint.d.ts +2 -2
- package/dist/examples/plugins/removePrint.js +8 -12
- package/dist/examples/plugins/removePrint.js.map +1 -1
- package/dist/files/AssetFile.d.ts +24 -0
- package/dist/files/AssetFile.js +25 -0
- package/dist/files/AssetFile.js.map +1 -0
- package/dist/files/BrsFile.d.ts +161 -87
- package/dist/files/BrsFile.js +919 -936
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BscFile.d.ts +102 -0
- package/dist/files/BscFile.js +15 -0
- package/dist/files/BscFile.js.map +1 -0
- package/dist/files/Factory.d.ts +25 -0
- package/dist/files/Factory.js +22 -0
- package/dist/files/Factory.js.map +1 -0
- package/dist/files/LazyFileData.d.ts +21 -0
- package/dist/files/LazyFileData.js +54 -0
- package/dist/files/LazyFileData.js.map +1 -0
- package/dist/files/XmlFile.d.ts +80 -41
- package/dist/files/XmlFile.js +162 -137
- package/dist/files/XmlFile.js.map +1 -1
- package/dist/globalCallables.d.ts +3 -1
- package/dist/globalCallables.js +424 -184
- package/dist/globalCallables.js.map +1 -1
- package/dist/index.d.ts +32 -4
- package/dist/index.js +54 -7
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +987 -125
- package/dist/interfaces.js +21 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/lexer/Lexer.d.ts +51 -12
- package/dist/lexer/Lexer.js +214 -65
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Token.d.ts +27 -11
- package/dist/lexer/Token.js +10 -2
- package/dist/lexer/Token.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +48 -2
- package/dist/lexer/TokenKind.js +167 -10
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/logging.d.ts +14 -0
- package/dist/logging.js +29 -0
- package/dist/logging.js.map +1 -0
- package/dist/lsp/ActionQueue.d.ts +35 -0
- package/dist/lsp/ActionQueue.js +115 -0
- package/dist/lsp/ActionQueue.js.map +1 -0
- package/dist/lsp/DocumentManager.d.ts +63 -0
- package/dist/lsp/DocumentManager.js +122 -0
- package/dist/lsp/DocumentManager.js.map +1 -0
- package/dist/lsp/LspProject.d.ts +287 -0
- package/dist/lsp/LspProject.js +3 -0
- package/dist/lsp/LspProject.js.map +1 -0
- package/dist/lsp/PathFilterer.d.ts +75 -0
- package/dist/lsp/PathFilterer.js +196 -0
- package/dist/lsp/PathFilterer.js.map +1 -0
- package/dist/lsp/Project.d.ts +200 -0
- package/dist/lsp/Project.js +562 -0
- package/dist/lsp/Project.js.map +1 -0
- package/dist/lsp/ProjectManager.d.ts +288 -0
- package/dist/lsp/ProjectManager.js +967 -0
- package/dist/lsp/ProjectManager.js.map +1 -0
- package/dist/lsp/ReaderWriterManager.d.ts +21 -0
- package/dist/lsp/ReaderWriterManager.js +60 -0
- package/dist/lsp/ReaderWriterManager.js.map +1 -0
- package/dist/lsp/worker/MessageHandler.d.ts +99 -0
- package/dist/lsp/worker/MessageHandler.js +138 -0
- package/dist/lsp/worker/MessageHandler.js.map +1 -0
- package/dist/lsp/worker/WorkerPool.d.ts +38 -0
- package/dist/lsp/worker/WorkerPool.js +78 -0
- package/dist/lsp/worker/WorkerPool.js.map +1 -0
- package/dist/lsp/worker/WorkerThreadProject.d.ts +168 -0
- package/dist/lsp/worker/WorkerThreadProject.js +205 -0
- package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
- package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
- package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
- package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
- package/dist/lsp/worker/run.js +14 -0
- package/dist/lsp/worker/run.js.map +1 -0
- package/dist/parser/AstNode.d.ts +205 -0
- package/dist/parser/AstNode.js +305 -0
- package/dist/parser/AstNode.js.map +1 -0
- package/dist/parser/BrightScriptDocParser.d.ts +56 -0
- package/dist/parser/BrightScriptDocParser.js +294 -0
- package/dist/parser/BrightScriptDocParser.js.map +1 -0
- package/dist/parser/BrsTranspileState.d.ts +22 -3
- package/dist/parser/BrsTranspileState.js +19 -0
- package/dist/parser/BrsTranspileState.js.map +1 -1
- package/dist/parser/Expression.d.ts +601 -220
- package/dist/parser/Expression.js +1516 -502
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.d.ts +137 -121
- package/dist/parser/Parser.js +1808 -982
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/SGParser.d.ts +30 -13
- package/dist/parser/SGParser.js +94 -56
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGTypes.d.ts +134 -46
- package/dist/parser/SGTypes.js +206 -115
- package/dist/parser/SGTypes.js.map +1 -1
- package/dist/parser/Statement.d.ts +854 -267
- package/dist/parser/Statement.js +2416 -621
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/TranspileState.d.ts +30 -14
- package/dist/parser/TranspileState.js +124 -27
- package/dist/parser/TranspileState.js.map +1 -1
- package/dist/preprocessor/Manifest.d.ts +6 -6
- package/dist/preprocessor/Manifest.js +17 -38
- package/dist/preprocessor/Manifest.js.map +1 -1
- package/dist/roku-types/data.json +20554 -0
- package/dist/roku-types/index.d.ts +5726 -0
- package/dist/roku-types/index.js +11 -0
- package/dist/roku-types/index.js.map +1 -0
- package/dist/types/ArrayType.d.ts +12 -5
- package/dist/types/ArrayType.js +95 -25
- package/dist/types/ArrayType.js.map +1 -1
- package/dist/types/AssociativeArrayType.d.ts +15 -0
- package/dist/types/AssociativeArrayType.js +64 -0
- package/dist/types/AssociativeArrayType.js.map +1 -0
- package/dist/types/BaseFunctionType.d.ts +10 -0
- package/dist/types/BaseFunctionType.js +26 -0
- package/dist/types/BaseFunctionType.js.map +1 -0
- package/dist/types/BooleanType.d.ts +9 -5
- package/dist/types/BooleanType.js +19 -8
- package/dist/types/BooleanType.js.map +1 -1
- package/dist/types/BscType.d.ts +41 -3
- package/dist/types/BscType.js +152 -0
- package/dist/types/BscType.js.map +1 -1
- package/dist/types/BscTypeKind.d.ts +28 -0
- package/dist/types/BscTypeKind.js +33 -0
- package/dist/types/BscTypeKind.js.map +1 -0
- package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
- package/dist/types/BuiltInInterfaceAdder.js +212 -0
- package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
- package/dist/types/CallFuncableType.d.ts +24 -0
- package/dist/types/CallFuncableType.js +91 -0
- package/dist/types/CallFuncableType.js.map +1 -0
- package/dist/types/ClassType.d.ts +17 -0
- package/dist/types/ClassType.js +63 -0
- package/dist/types/ClassType.js.map +1 -0
- package/dist/types/ComponentType.d.ts +22 -0
- package/dist/types/ComponentType.js +110 -0
- package/dist/types/ComponentType.js.map +1 -0
- package/dist/types/DoubleType.d.ts +10 -5
- package/dist/types/DoubleType.js +21 -17
- package/dist/types/DoubleType.js.map +1 -1
- package/dist/types/DynamicType.d.ts +13 -5
- package/dist/types/DynamicType.js +26 -5
- package/dist/types/DynamicType.js.map +1 -1
- package/dist/types/EnumType.d.ts +42 -0
- package/dist/types/EnumType.js +101 -0
- package/dist/types/EnumType.js.map +1 -0
- package/dist/types/FloatType.d.ts +10 -5
- package/dist/types/FloatType.js +21 -17
- package/dist/types/FloatType.js.map +1 -1
- package/dist/types/FunctionType.d.ts +8 -22
- package/dist/types/FunctionType.js +25 -63
- package/dist/types/FunctionType.js.map +1 -1
- package/dist/types/InheritableType.d.ts +29 -0
- package/dist/types/InheritableType.js +173 -0
- package/dist/types/InheritableType.js.map +1 -0
- package/dist/types/InlineInterfaceType.d.ts +5 -0
- package/dist/types/InlineInterfaceType.js +17 -0
- package/dist/types/InlineInterfaceType.js.map +1 -0
- package/dist/types/IntegerType.d.ts +10 -5
- package/dist/types/IntegerType.js +21 -17
- package/dist/types/IntegerType.js.map +1 -1
- package/dist/types/InterfaceType.d.ts +14 -6
- package/dist/types/InterfaceType.js +30 -15
- package/dist/types/InterfaceType.js.map +1 -1
- package/dist/types/IntersectionType.d.ts +29 -0
- package/dist/types/IntersectionType.js +256 -0
- package/dist/types/IntersectionType.js.map +1 -0
- package/dist/types/InvalidType.d.ts +10 -5
- package/dist/types/InvalidType.js +21 -9
- package/dist/types/InvalidType.js.map +1 -1
- package/dist/types/LongIntegerType.d.ts +10 -5
- package/dist/types/LongIntegerType.js +21 -17
- package/dist/types/LongIntegerType.js.map +1 -1
- package/dist/types/NamespaceType.d.ts +12 -0
- package/dist/types/NamespaceType.js +28 -0
- package/dist/types/NamespaceType.js.map +1 -0
- package/dist/types/ObjectType.d.ts +12 -5
- package/dist/types/ObjectType.js +25 -8
- package/dist/types/ObjectType.js.map +1 -1
- package/dist/types/ReferenceType.d.ts +123 -0
- package/dist/types/ReferenceType.js +726 -0
- package/dist/types/ReferenceType.js.map +1 -0
- package/dist/types/StringType.d.ts +12 -5
- package/dist/types/StringType.js +23 -8
- package/dist/types/StringType.js.map +1 -1
- package/dist/types/TypeStatementType.d.ts +19 -0
- package/dist/types/TypeStatementType.js +56 -0
- package/dist/types/TypeStatementType.js.map +1 -0
- package/dist/types/TypedFunctionType.d.ts +34 -0
- package/dist/types/TypedFunctionType.js +157 -0
- package/dist/types/TypedFunctionType.js.map +1 -0
- package/dist/types/UninitializedType.d.ts +11 -6
- package/dist/types/UninitializedType.js +20 -11
- package/dist/types/UninitializedType.js.map +1 -1
- package/dist/types/UnionType.d.ts +27 -0
- package/dist/types/UnionType.js +196 -0
- package/dist/types/UnionType.js.map +1 -0
- package/dist/types/VoidType.d.ts +11 -5
- package/dist/types/VoidType.js +22 -8
- package/dist/types/VoidType.js.map +1 -1
- package/dist/types/helpers.d.ts +51 -0
- package/dist/types/helpers.js +329 -0
- package/dist/types/helpers.js.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.js +39 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/roFunctionType.d.ts +11 -0
- package/dist/types/roFunctionType.js +37 -0
- package/dist/types/roFunctionType.js.map +1 -0
- package/dist/util.d.ts +325 -185
- package/dist/util.js +2135 -568
- package/dist/util.js.map +1 -1
- package/dist/validators/ClassValidator.d.ts +9 -15
- package/dist/validators/ClassValidator.js +93 -138
- package/dist/validators/ClassValidator.js.map +1 -1
- package/package.json +183 -138
- package/CHANGELOG.md +0 -1188
- package/dist/astUtils/creators.spec.js +0 -21
- package/dist/astUtils/creators.spec.js.map +0 -1
- package/dist/astUtils/index.d.ts +0 -7
- package/dist/astUtils/index.js +0 -26
- package/dist/astUtils/index.js.map +0 -1
- package/dist/astUtils/reflection.spec.d.ts +0 -1
- package/dist/astUtils/reflection.spec.js +0 -292
- package/dist/astUtils/reflection.spec.js.map +0 -1
- package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
- package/dist/astUtils/stackedVisitor.spec.js +0 -79
- package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
- package/dist/astUtils/visitors.spec.d.ts +0 -1
- package/dist/astUtils/visitors.spec.js +0 -854
- package/dist/astUtils/visitors.spec.js.map +0 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -194
- package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +0 -1
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
- package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
- package/dist/files/BrsFile.Class.spec.d.ts +0 -1
- package/dist/files/BrsFile.Class.spec.js +0 -1081
- package/dist/files/BrsFile.Class.spec.js.map +0 -1
- package/dist/files/BrsFile.spec.d.ts +0 -1
- package/dist/files/BrsFile.spec.js +0 -2524
- package/dist/files/BrsFile.spec.js.map +0 -1
- package/dist/files/XmlFile.spec.d.ts +0 -1
- package/dist/files/XmlFile.spec.js +0 -1065
- package/dist/files/XmlFile.spec.js.map +0 -1
- package/dist/files/tests/imports.spec.d.ts +0 -1
- package/dist/files/tests/imports.spec.js +0 -241
- package/dist/files/tests/imports.spec.js.map +0 -1
- package/dist/lexer/Character.spec.d.ts +0 -1
- package/dist/lexer/Character.spec.js +0 -27
- package/dist/lexer/Character.spec.js.map +0 -1
- package/dist/lexer/Lexer.spec.d.ts +0 -1
- package/dist/lexer/Lexer.spec.js +0 -1101
- package/dist/lexer/Lexer.spec.js.map +0 -1
- package/dist/lexer/index.d.ts +0 -3
- package/dist/lexer/index.js +0 -17
- package/dist/lexer/index.js.map +0 -1
- package/dist/parser/Parser.Class.spec.d.ts +0 -1
- package/dist/parser/Parser.Class.spec.js +0 -390
- package/dist/parser/Parser.Class.spec.js.map +0 -1
- package/dist/parser/Parser.spec.d.ts +0 -4
- package/dist/parser/Parser.spec.js +0 -1216
- package/dist/parser/Parser.spec.js.map +0 -1
- package/dist/parser/SGParser.spec.d.ts +0 -1
- package/dist/parser/SGParser.spec.js +0 -145
- package/dist/parser/SGParser.spec.js.map +0 -1
- package/dist/parser/SGTypes.spec.d.ts +0 -1
- package/dist/parser/SGTypes.spec.js +0 -351
- package/dist/parser/SGTypes.spec.js.map +0 -1
- package/dist/parser/Statement.spec.d.ts +0 -1
- package/dist/parser/Statement.spec.js +0 -94
- package/dist/parser/Statement.spec.js.map +0 -1
- package/dist/parser/index.d.ts +0 -3
- package/dist/parser/index.js +0 -16
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/tests/Parser.spec.d.ts +0 -18
- package/dist/parser/tests/Parser.spec.js +0 -35
- package/dist/parser/tests/Parser.spec.js.map +0 -1
- package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
- package/dist/parser/tests/controlFlow/For.spec.js +0 -161
- package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
- package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
- package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
- package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
- package/dist/parser/tests/controlFlow/If.spec.js +0 -551
- package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
- package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
- package/dist/parser/tests/controlFlow/While.spec.js +0 -107
- package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
- package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Additive.spec.js +0 -99
- package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
- package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -254
- package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -266
- package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
- package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Boolean.spec.js +0 -83
- package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
- package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Call.spec.js +0 -134
- package/dist/parser/tests/expression/Call.spec.js.map +0 -1
- package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Exponential.spec.js +0 -37
- package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
- package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Function.spec.js +0 -403
- package/dist/parser/tests/expression/Function.spec.js.map +0 -1
- package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Indexing.spec.js +0 -219
- package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
- package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
- package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -201
- package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
- package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
- package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
- package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Primary.spec.js +0 -149
- package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
- package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
- package/dist/parser/tests/expression/Relational.spec.js +0 -83
- package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -202
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
- package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -323
- package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
- package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
- package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
- package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
- package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Declaration.spec.js +0 -108
- package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
- package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Dim.spec.js +0 -73
- package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
- package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Function.spec.js +0 -332
- package/dist/parser/tests/statement/Function.spec.js.map +0 -1
- package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Goto.spec.js +0 -50
- package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
- package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Increment.spec.js +0 -117
- package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
- package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
- package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
- package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Misc.spec.js +0 -333
- package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
- package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +0 -181
- package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
- package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
- package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
- package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Set.spec.js +0 -218
- package/dist/parser/tests/statement/Set.spec.js.map +0 -1
- package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Stop.spec.js +0 -37
- package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
- package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
- package/dist/parser/tests/statement/Throw.spec.js +0 -35
- package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
- package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
- package/dist/parser/tests/statement/TryCatch.spec.js +0 -140
- package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
- package/dist/preprocessor/Chunk.d.ts +0 -82
- package/dist/preprocessor/Chunk.js +0 -77
- package/dist/preprocessor/Chunk.js.map +0 -1
- package/dist/preprocessor/Manifest.spec.d.ts +0 -0
- package/dist/preprocessor/Manifest.spec.js +0 -105
- package/dist/preprocessor/Manifest.spec.js.map +0 -1
- package/dist/preprocessor/Preprocessor.d.ts +0 -60
- package/dist/preprocessor/Preprocessor.js +0 -156
- package/dist/preprocessor/Preprocessor.js.map +0 -1
- package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
- package/dist/preprocessor/Preprocessor.spec.js +0 -152
- package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
- package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
- package/dist/preprocessor/PreprocessorParser.js +0 -194
- package/dist/preprocessor/PreprocessorParser.js.map +0 -1
- package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
- package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
- package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
- package/dist/preprocessor/index.d.ts +0 -3
- package/dist/preprocessor/index.js +0 -16
- package/dist/preprocessor/index.js.map +0 -1
- package/dist/types/ArrayType.spec.d.ts +0 -1
- package/dist/types/ArrayType.spec.js +0 -30
- package/dist/types/ArrayType.spec.js.map +0 -1
- package/dist/types/BooleanType.spec.d.ts +0 -1
- package/dist/types/BooleanType.spec.js +0 -12
- package/dist/types/BooleanType.spec.js.map +0 -1
- package/dist/types/CustomType.d.ts +0 -10
- package/dist/types/CustomType.js +0 -35
- package/dist/types/CustomType.js.map +0 -1
- package/dist/types/DoubleType.spec.d.ts +0 -1
- package/dist/types/DoubleType.spec.js +0 -12
- package/dist/types/DoubleType.spec.js.map +0 -1
- package/dist/types/DynamicType.spec.d.ts +0 -1
- package/dist/types/DynamicType.spec.js +0 -12
- package/dist/types/DynamicType.spec.js.map +0 -1
- package/dist/types/FloatType.spec.d.ts +0 -1
- package/dist/types/FloatType.spec.js +0 -12
- package/dist/types/FloatType.spec.js.map +0 -1
- package/dist/types/FunctionType.spec.d.ts +0 -1
- package/dist/types/FunctionType.spec.js +0 -29
- package/dist/types/FunctionType.spec.js.map +0 -1
- package/dist/types/IntegerType.spec.d.ts +0 -1
- package/dist/types/IntegerType.spec.js +0 -12
- package/dist/types/IntegerType.spec.js.map +0 -1
- package/dist/types/InvalidType.spec.d.ts +0 -1
- package/dist/types/InvalidType.spec.js +0 -12
- package/dist/types/InvalidType.spec.js.map +0 -1
- package/dist/types/LazyType.d.ts +0 -15
- package/dist/types/LazyType.js +0 -32
- package/dist/types/LazyType.js.map +0 -1
- package/dist/types/LongIntegerType.spec.d.ts +0 -1
- package/dist/types/LongIntegerType.spec.js +0 -12
- package/dist/types/LongIntegerType.spec.js.map +0 -1
- package/dist/types/ObjectType.spec.d.ts +0 -1
- package/dist/types/ObjectType.spec.js +0 -12
- package/dist/types/ObjectType.spec.js.map +0 -1
- package/dist/types/StringType.spec.d.ts +0 -1
- package/dist/types/StringType.spec.js +0 -12
- package/dist/types/StringType.spec.js.map +0 -1
- package/dist/types/VoidType.spec.d.ts +0 -1
- package/dist/types/VoidType.spec.js +0 -12
- package/dist/types/VoidType.spec.js.map +0 -1
- /package/dist/{astUtils/creators.spec.d.ts → lsp/worker/run.d.ts} +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { DottedGetExpression, TypeExpression, VariableExpression } from './parser/Expression';
|
|
2
|
+
import type { TypeChainEntry } from './interfaces';
|
|
3
|
+
import type { AstNode } from './parser/AstNode';
|
|
4
|
+
import { SymbolTypeFlag } from './SymbolTypeFlag';
|
|
5
|
+
import type { Token } from './lexer/Token';
|
|
6
|
+
import type { BrsFile } from './files/BrsFile';
|
|
7
|
+
export declare const InsideSegmentWalkMode: number;
|
|
8
|
+
export interface UnresolvedSymbol {
|
|
9
|
+
typeChain: TypeChainEntry[];
|
|
10
|
+
flags: SymbolTypeFlag;
|
|
11
|
+
endChainFlags: SymbolTypeFlag;
|
|
12
|
+
containingNamespaces: string[];
|
|
13
|
+
file: BrsFile;
|
|
14
|
+
lookups: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface AssignedSymbol {
|
|
17
|
+
token: Token;
|
|
18
|
+
node: AstNode;
|
|
19
|
+
}
|
|
20
|
+
export declare class AstValidationSegmenter {
|
|
21
|
+
file: BrsFile;
|
|
22
|
+
validatedSegments: Map<AstNode, boolean>;
|
|
23
|
+
segmentsForValidation: AstNode[];
|
|
24
|
+
singleValidationSegments: Set<AstNode>;
|
|
25
|
+
unresolvedSegmentsSymbols: Map<AstNode, Set<UnresolvedSymbol>>;
|
|
26
|
+
assignedTokensInSegment: Map<AstNode, Set<AssignedSymbol>>;
|
|
27
|
+
ast: AstNode;
|
|
28
|
+
constructor(file: BrsFile);
|
|
29
|
+
reset(): void;
|
|
30
|
+
processTree(ast: AstNode): void;
|
|
31
|
+
checkExpressionForUnresolved(segment: AstNode, expression: VariableExpression | DottedGetExpression | TypeExpression, assignedSymbolsNames?: Set<string>): any;
|
|
32
|
+
private addUnresolvedSymbol;
|
|
33
|
+
private currentNamespaceStatement;
|
|
34
|
+
private currentClassStatement;
|
|
35
|
+
private unresolvedTypeCastTypeExpressions;
|
|
36
|
+
checkSegmentWalk(segment: AstNode): void;
|
|
37
|
+
private handleTypeCastTypeExpression;
|
|
38
|
+
getAllUnvalidatedSegments(): AstNode[];
|
|
39
|
+
getSegmentsWithChangedSymbols(changedSymbols: Map<SymbolTypeFlag, Set<string>>): AstNode[];
|
|
40
|
+
markSegmentAsValidated(segment: AstNode): void;
|
|
41
|
+
unValidateAllSegments(): void;
|
|
42
|
+
hasUnvalidatedSegments(): boolean;
|
|
43
|
+
checkIfSegmentNeedsRevalidation(segment: AstNode, changedSymbols: Map<SymbolTypeFlag, Set<string>>): boolean;
|
|
44
|
+
markSegmentsInvalidatedBySymbol(symbolName: string, flag: SymbolTypeFlag): void;
|
|
45
|
+
}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AstValidationSegmenter = exports.InsideSegmentWalkMode = void 0;
|
|
4
|
+
const reflection_1 = require("./astUtils/reflection");
|
|
5
|
+
const visitors_1 = require("./astUtils/visitors");
|
|
6
|
+
const util_1 = require("./util");
|
|
7
|
+
const TokenKind_1 = require("./lexer/TokenKind");
|
|
8
|
+
// eslint-disable-next-line no-bitwise
|
|
9
|
+
exports.InsideSegmentWalkMode = visitors_1.WalkMode.visitStatements |
|
|
10
|
+
visitors_1.WalkMode.visitExpressions |
|
|
11
|
+
visitors_1.WalkMode.recurseChildFunctions;
|
|
12
|
+
class AstValidationSegmenter {
|
|
13
|
+
constructor(file) {
|
|
14
|
+
this.file = file;
|
|
15
|
+
this.validatedSegments = new Map();
|
|
16
|
+
this.segmentsForValidation = new Array();
|
|
17
|
+
this.singleValidationSegments = new Set();
|
|
18
|
+
this.unresolvedSegmentsSymbols = new Map();
|
|
19
|
+
this.assignedTokensInSegment = new Map();
|
|
20
|
+
this.unresolvedTypeCastTypeExpressions = [];
|
|
21
|
+
}
|
|
22
|
+
reset() {
|
|
23
|
+
this.validatedSegments.clear();
|
|
24
|
+
this.singleValidationSegments.clear();
|
|
25
|
+
this.unresolvedSegmentsSymbols.clear();
|
|
26
|
+
this.segmentsForValidation = [];
|
|
27
|
+
}
|
|
28
|
+
processTree(ast) {
|
|
29
|
+
this.reset();
|
|
30
|
+
ast === null || ast === void 0 ? void 0 : ast.walk((segment) => {
|
|
31
|
+
this.checkSegmentWalk(segment);
|
|
32
|
+
}, {
|
|
33
|
+
walkMode: visitors_1.WalkMode.visitStatements
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
checkExpressionForUnresolved(segment, expression, assignedSymbolsNames) {
|
|
37
|
+
if (!expression) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
let startOfDottedGet = expression;
|
|
41
|
+
while ((0, reflection_1.isDottedGetExpression)(startOfDottedGet)) {
|
|
42
|
+
startOfDottedGet = startOfDottedGet.obj;
|
|
43
|
+
}
|
|
44
|
+
if ((0, reflection_1.isVariableExpression)(startOfDottedGet)) {
|
|
45
|
+
const firstTokenTextLower = startOfDottedGet.tokens.name.text.toLowerCase();
|
|
46
|
+
if (firstTokenTextLower === 'm' || (this.currentClassStatement && firstTokenTextLower === 'super')) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if ((0, reflection_1.isTypeExpression)(expression) && (0, reflection_1.isBinaryExpression)(expression.expression)) {
|
|
51
|
+
return this.checkExpressionForUnresolved(segment, expression.expression.left, assignedSymbolsNames) ||
|
|
52
|
+
this.checkExpressionForUnresolved(segment, expression.expression.right, assignedSymbolsNames);
|
|
53
|
+
}
|
|
54
|
+
if ((0, reflection_1.isTypeExpression)(expression)) {
|
|
55
|
+
let typeInTypeExpression = expression.getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
|
|
56
|
+
if ((0, reflection_1.isArrayType)(typeInTypeExpression)) {
|
|
57
|
+
typeInTypeExpression = typeInTypeExpression.defaultType;
|
|
58
|
+
}
|
|
59
|
+
if (typeInTypeExpression === null || typeInTypeExpression === void 0 ? void 0 : typeInTypeExpression.isResolvable()) {
|
|
60
|
+
return this.handleTypeCastTypeExpression(segment, expression);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return this.addUnresolvedSymbol(segment, expression, assignedSymbolsNames);
|
|
64
|
+
}
|
|
65
|
+
addUnresolvedSymbol(segment, expression, assignedSymbolsNames) {
|
|
66
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
67
|
+
const flag = util_1.util.isInTypeExpression(expression) ? 2 /* SymbolTypeFlag.typetime */ : 1 /* SymbolTypeFlag.runtime */;
|
|
68
|
+
let typeChain = [];
|
|
69
|
+
const extraData = {};
|
|
70
|
+
const options = { flags: flag, onlyCacheResolvedTypes: true, typeChain: typeChain, data: extraData };
|
|
71
|
+
let nodeType = expression.getType(options);
|
|
72
|
+
if ((0, reflection_1.isArrayType)(nodeType)) {
|
|
73
|
+
nodeType = nodeType.defaultType;
|
|
74
|
+
}
|
|
75
|
+
if (!(nodeType === null || nodeType === void 0 ? void 0 : nodeType.isResolvable())) {
|
|
76
|
+
let symbolsSet;
|
|
77
|
+
if (!(assignedSymbolsNames === null || assignedSymbolsNames === void 0 ? void 0 : assignedSymbolsNames.has(typeChain[0].name.toLowerCase()))) {
|
|
78
|
+
if (!this.unresolvedSegmentsSymbols.has(segment)) {
|
|
79
|
+
symbolsSet = new Set();
|
|
80
|
+
this.unresolvedSegmentsSymbols.set(segment, symbolsSet);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
symbolsSet = this.unresolvedSegmentsSymbols.get(segment);
|
|
84
|
+
}
|
|
85
|
+
this.validatedSegments.set(segment, false);
|
|
86
|
+
if (extraData.isAlias && (0, reflection_1.isAliasStatement)(extraData.definingNode)) {
|
|
87
|
+
//set the non-aliased version of this symbol as required.
|
|
88
|
+
const aliasTypeChain = [];
|
|
89
|
+
// eslint-disable-next-line no-bitwise
|
|
90
|
+
extraData.definingNode.value.getType(Object.assign(Object.assign({}, options), { flags: 1 /* SymbolTypeFlag.runtime */ | 2 /* SymbolTypeFlag.typetime */, typeChain: aliasTypeChain }));
|
|
91
|
+
typeChain = [...aliasTypeChain, ...typeChain.slice(1)];
|
|
92
|
+
}
|
|
93
|
+
if (extraData.isFromTypeStatement && (0, reflection_1.isTypeStatement)(extraData.definingNode)) {
|
|
94
|
+
//set the unwrapped version of this symbol as required.
|
|
95
|
+
const wrappedTypeChain = [];
|
|
96
|
+
// eslint-disable-next-line no-bitwise
|
|
97
|
+
extraData.definingNode.getType(Object.assign(Object.assign({}, options), { flags: 2 /* SymbolTypeFlag.typetime */, typeChain: wrappedTypeChain }));
|
|
98
|
+
typeChain = [...wrappedTypeChain, ...typeChain.slice(1)];
|
|
99
|
+
}
|
|
100
|
+
const possibleNamespace = (_d = (_c = (_b = (_a = this.currentNamespaceStatement) === null || _a === void 0 ? void 0 : _a.getNameParts()) === null || _b === void 0 ? void 0 : _b.map(t => t.text)) === null || _c === void 0 ? void 0 : _c.join('.').toLowerCase()) !== null && _d !== void 0 ? _d : '';
|
|
101
|
+
const fullChainName = (_e = util_1.util.processTypeChain(typeChain).fullChainName) === null || _e === void 0 ? void 0 : _e.toLowerCase();
|
|
102
|
+
const possibleNamesLower = [];
|
|
103
|
+
let lastSymbol = '';
|
|
104
|
+
for (const chainPart of fullChainName.split('.')) {
|
|
105
|
+
lastSymbol += (lastSymbol ? `.${chainPart}` : chainPart);
|
|
106
|
+
possibleNamesLower.push(lastSymbol);
|
|
107
|
+
if (possibleNamespace) {
|
|
108
|
+
possibleNamesLower.push(possibleNamespace + '.' + lastSymbol);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
symbolsSet.add({
|
|
112
|
+
typeChain: typeChain,
|
|
113
|
+
flags: typeChain[0].data.flags,
|
|
114
|
+
endChainFlags: flag,
|
|
115
|
+
containingNamespaces: (_g = (_f = this.currentNamespaceStatement) === null || _f === void 0 ? void 0 : _f.getNameParts()) === null || _g === void 0 ? void 0 : _g.map(t => t.text),
|
|
116
|
+
file: this.file,
|
|
117
|
+
lookups: possibleNamesLower
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
checkSegmentWalk(segment) {
|
|
125
|
+
if ((0, reflection_1.isNamespaceStatement)(segment) || (0, reflection_1.isBody)(segment)) {
|
|
126
|
+
// skip namespaces and namespace bodies - no symbols to verify in those
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if ((0, reflection_1.isConditionalCompileStatement)(segment) || (0, reflection_1.isBlock)(segment)) {
|
|
130
|
+
// skip conditional compile statements and blocks - no symbols to verify in those
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
this.currentNamespaceStatement = segment.findAncestor(reflection_1.isNamespaceStatement);
|
|
134
|
+
if ((0, reflection_1.isClassStatement)(segment)) {
|
|
135
|
+
if (segment.parentClassName) {
|
|
136
|
+
this.segmentsForValidation.push(segment.parentClassName);
|
|
137
|
+
this.validatedSegments.set(segment.parentClassName, false);
|
|
138
|
+
let foundUnresolvedInSegment = this.checkExpressionForUnresolved(segment.parentClassName, segment.parentClassName);
|
|
139
|
+
if (!foundUnresolvedInSegment) {
|
|
140
|
+
this.singleValidationSegments.add(segment.parentClassName);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if ((0, reflection_1.isInterfaceStatement)(segment)) {
|
|
146
|
+
if (segment.parentInterfaceName) {
|
|
147
|
+
this.segmentsForValidation.push(segment.parentInterfaceName);
|
|
148
|
+
this.validatedSegments.set(segment.parentInterfaceName, false);
|
|
149
|
+
let foundUnresolvedInSegment = this.checkExpressionForUnresolved(segment.parentInterfaceName, segment.parentInterfaceName);
|
|
150
|
+
if (!foundUnresolvedInSegment) {
|
|
151
|
+
this.singleValidationSegments.add(segment.parentInterfaceName);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
this.segmentsForValidation.push(segment);
|
|
157
|
+
this.validatedSegments.set(segment, false);
|
|
158
|
+
let foundUnresolvedInSegment = false;
|
|
159
|
+
const skipper = new visitors_1.ChildrenSkipper();
|
|
160
|
+
const assignedSymbols = new Set();
|
|
161
|
+
const assignedSymbolsNames = new Set();
|
|
162
|
+
this.currentClassStatement = segment.findAncestor(reflection_1.isClassStatement);
|
|
163
|
+
if ((0, reflection_1.isTypecastStatement)(segment)) {
|
|
164
|
+
if (this.checkExpressionForUnresolved(segment, segment.typecastExpression.typeExpression)) {
|
|
165
|
+
this.unresolvedTypeCastTypeExpressions.push(segment.typecastExpression.typeExpression);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
let unresolvedTypeCastTypeExpression;
|
|
169
|
+
if (this.unresolvedTypeCastTypeExpressions.length > 0) {
|
|
170
|
+
unresolvedTypeCastTypeExpression = this.unresolvedTypeCastTypeExpressions[this.unresolvedTypeCastTypeExpressions.length - 1];
|
|
171
|
+
}
|
|
172
|
+
if ((0, reflection_1.isTypeStatement)(segment)) {
|
|
173
|
+
// this is a straight assignment,
|
|
174
|
+
assignedSymbols.add({ token: segment.tokens.name, node: segment });
|
|
175
|
+
assignedSymbolsNames.add(segment.tokens.name.text.toLowerCase());
|
|
176
|
+
}
|
|
177
|
+
segment.walk((0, visitors_1.createVisitor)({
|
|
178
|
+
AssignmentStatement: (stmt) => {
|
|
179
|
+
if (stmt.tokens.equals.kind === TokenKind_1.TokenKind.Equal) {
|
|
180
|
+
// this is a straight assignment, not a compound assignment
|
|
181
|
+
assignedSymbols.add({ token: stmt.tokens.name, node: stmt });
|
|
182
|
+
assignedSymbolsNames.add(stmt.tokens.name.text.toLowerCase());
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
FunctionParameterExpression: (expr) => {
|
|
186
|
+
assignedSymbols.add({ token: expr.tokens.name, node: expr });
|
|
187
|
+
assignedSymbolsNames.add(expr.tokens.name.text.toLowerCase());
|
|
188
|
+
},
|
|
189
|
+
ForEachStatement: (stmt) => {
|
|
190
|
+
assignedSymbols.add({ token: stmt.tokens.item, node: stmt });
|
|
191
|
+
assignedSymbolsNames.add(stmt.tokens.item.text.toLowerCase());
|
|
192
|
+
},
|
|
193
|
+
VariableExpression: (expr) => {
|
|
194
|
+
const hasUnresolvedTypecastedM = unresolvedTypeCastTypeExpression && expr.tokens.name.text.toLowerCase() === 'm';
|
|
195
|
+
if (hasUnresolvedTypecastedM) {
|
|
196
|
+
this.addUnresolvedSymbol(segment, unresolvedTypeCastTypeExpression);
|
|
197
|
+
}
|
|
198
|
+
else if (!assignedSymbolsNames.has(expr.tokens.name.text.toLowerCase())) {
|
|
199
|
+
const expressionIsUnresolved = this.checkExpressionForUnresolved(segment, expr, assignedSymbolsNames);
|
|
200
|
+
foundUnresolvedInSegment = expressionIsUnresolved || foundUnresolvedInSegment;
|
|
201
|
+
}
|
|
202
|
+
skipper.skip();
|
|
203
|
+
},
|
|
204
|
+
DottedGetExpression: (expr) => {
|
|
205
|
+
const expressionIsUnresolved = this.checkExpressionForUnresolved(segment, expr, assignedSymbolsNames);
|
|
206
|
+
foundUnresolvedInSegment = expressionIsUnresolved || foundUnresolvedInSegment;
|
|
207
|
+
if (!foundUnresolvedInSegment && unresolvedTypeCastTypeExpression) {
|
|
208
|
+
let startOfDottedGet = expr;
|
|
209
|
+
while ((0, reflection_1.isDottedGetExpression)(startOfDottedGet)) {
|
|
210
|
+
startOfDottedGet = startOfDottedGet.obj;
|
|
211
|
+
}
|
|
212
|
+
if ((0, reflection_1.isVariableExpression)(startOfDottedGet)) {
|
|
213
|
+
const hasUnresolvedTypeCastedM = unresolvedTypeCastTypeExpression && startOfDottedGet.tokens.name.text.toLowerCase() === 'm';
|
|
214
|
+
if (hasUnresolvedTypeCastedM) {
|
|
215
|
+
this.handleTypeCastTypeExpression(segment, unresolvedTypeCastTypeExpression);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
skipper.skip();
|
|
220
|
+
},
|
|
221
|
+
TypeExpression: (expr) => {
|
|
222
|
+
const expressionIsUnresolved = this.checkExpressionForUnresolved(segment, expr, assignedSymbolsNames);
|
|
223
|
+
foundUnresolvedInSegment = expressionIsUnresolved || foundUnresolvedInSegment;
|
|
224
|
+
skipper.skip();
|
|
225
|
+
}
|
|
226
|
+
}), {
|
|
227
|
+
walkMode: exports.InsideSegmentWalkMode,
|
|
228
|
+
skipChildren: skipper
|
|
229
|
+
});
|
|
230
|
+
this.assignedTokensInSegment.set(segment, assignedSymbols);
|
|
231
|
+
if (!foundUnresolvedInSegment) {
|
|
232
|
+
this.singleValidationSegments.add(segment);
|
|
233
|
+
}
|
|
234
|
+
this.currentClassStatement = undefined;
|
|
235
|
+
this.currentClassStatement = undefined;
|
|
236
|
+
}
|
|
237
|
+
handleTypeCastTypeExpression(segment, typecastTypeExpression) {
|
|
238
|
+
var _a;
|
|
239
|
+
const expression = typecastTypeExpression;
|
|
240
|
+
if ((0, reflection_1.isTypeExpression)(expression)) {
|
|
241
|
+
const typeIntypeExpression = expression.getType({ flags: 2 /* SymbolTypeFlag.typetime */ });
|
|
242
|
+
if (typeIntypeExpression.isResolvable()) {
|
|
243
|
+
const memberSymbols = typeIntypeExpression.getMemberTable().getAllSymbols(1 /* SymbolTypeFlag.runtime */);
|
|
244
|
+
const unresolvedMembers = [];
|
|
245
|
+
for (const memberSymbol of memberSymbols) {
|
|
246
|
+
if (!memberSymbol.type.isResolvable()) {
|
|
247
|
+
unresolvedMembers.push(memberSymbol);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
let addedSymbol = false;
|
|
251
|
+
for (const unresolvedMember of unresolvedMembers) {
|
|
252
|
+
if ((_a = unresolvedMember === null || unresolvedMember === void 0 ? void 0 : unresolvedMember.data) === null || _a === void 0 ? void 0 : _a.definingNode) {
|
|
253
|
+
addedSymbol = this.addUnresolvedSymbol(segment, unresolvedMember.data.definingNode) || addedSymbol;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return addedSymbol;
|
|
257
|
+
}
|
|
258
|
+
return this.addUnresolvedSymbol(segment, expression);
|
|
259
|
+
}
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
getAllUnvalidatedSegments() {
|
|
263
|
+
const segmentsToWalkForValidation = [];
|
|
264
|
+
for (const segment of this.segmentsForValidation) {
|
|
265
|
+
if (this.validatedSegments.get(segment)) {
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
segmentsToWalkForValidation.push(segment);
|
|
269
|
+
}
|
|
270
|
+
return segmentsToWalkForValidation;
|
|
271
|
+
}
|
|
272
|
+
getSegmentsWithChangedSymbols(changedSymbols) {
|
|
273
|
+
const segmentsToWalkForValidation = [];
|
|
274
|
+
for (const segment of this.segmentsForValidation) {
|
|
275
|
+
if (this.validatedSegments.get(segment)) {
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
const symbolsRequired = this.unresolvedSegmentsSymbols.get(segment);
|
|
279
|
+
if (symbolsRequired) {
|
|
280
|
+
if (util_1.util.hasAnyRequiredSymbolChanged([...symbolsRequired], changedSymbols)) {
|
|
281
|
+
segmentsToWalkForValidation.push(segment);
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return segmentsToWalkForValidation;
|
|
287
|
+
}
|
|
288
|
+
markSegmentAsValidated(segment) {
|
|
289
|
+
this.validatedSegments.set(segment, true);
|
|
290
|
+
}
|
|
291
|
+
unValidateAllSegments() {
|
|
292
|
+
for (const segment of this.validatedSegments.keys()) {
|
|
293
|
+
this.validatedSegments.set(segment, false);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
hasUnvalidatedSegments() {
|
|
297
|
+
for (const validated of this.validatedSegments.values()) {
|
|
298
|
+
if (!validated) {
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
checkIfSegmentNeedsRevalidation(segment, changedSymbols) {
|
|
305
|
+
if (!this.validatedSegments.get(segment)) {
|
|
306
|
+
return true;
|
|
307
|
+
}
|
|
308
|
+
return false;
|
|
309
|
+
}
|
|
310
|
+
markSegmentsInvalidatedBySymbol(symbolName, flag) {
|
|
311
|
+
for (let [segment, unresolvedSet] of this.unresolvedSegmentsSymbols) {
|
|
312
|
+
for (let unresolvedSymbol of unresolvedSet.values()) {
|
|
313
|
+
if (unresolvedSymbol.typeChain.join('.').toLowerCase() === symbolName) {
|
|
314
|
+
this.validatedSegments.set(segment, false);
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
exports.AstValidationSegmenter = AstValidationSegmenter;
|
|
322
|
+
//# sourceMappingURL=AstValidationSegmenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AstValidationSegmenter.js","sourceRoot":"","sources":["../src/AstValidationSegmenter.ts"],"names":[],"mappings":"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"}
|
package/dist/BsConfig.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LogLevel } from './
|
|
1
|
+
import type { LogLevel } from './logging';
|
|
2
2
|
export interface BsConfig {
|
|
3
3
|
/**
|
|
4
4
|
* The inheritance tree for all parent configs used to generate this config. Do not set this, it is computed.
|
|
@@ -9,6 +9,13 @@ export interface BsConfig {
|
|
|
9
9
|
* Prefix with a question mark (?) to prevent throwing an exception if the file does not exist.
|
|
10
10
|
*/
|
|
11
11
|
project?: string;
|
|
12
|
+
manifest?: {
|
|
13
|
+
bs_const?: Record<string, boolean | null>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* when set, bsconfig.json loading is disabled
|
|
17
|
+
*/
|
|
18
|
+
noProject?: boolean;
|
|
12
19
|
/**
|
|
13
20
|
* Relative or absolute path to another bsconfig.json file that this file should import and then override.
|
|
14
21
|
* Prefix with a question mark (?) to prevent throwing an exception if the file does not exist.
|
|
@@ -32,80 +39,98 @@ export interface BsConfig {
|
|
|
32
39
|
dest?: string;
|
|
33
40
|
}>;
|
|
34
41
|
/**
|
|
35
|
-
*
|
|
36
|
-
* @default "./out/package.zip"
|
|
37
|
-
*/
|
|
38
|
-
outFile?: string;
|
|
39
|
-
/**
|
|
40
|
-
* Creates a zip package. Defaults to true. This setting is ignored when deploy is enabled.
|
|
41
|
-
*/
|
|
42
|
-
createPackage?: boolean;
|
|
43
|
-
/**
|
|
44
|
-
* If true, the files are copied to staging. This setting is ignored when deploy is enabled or if createPackage is enabled
|
|
42
|
+
* If true, the files are not copied to outDir.
|
|
45
43
|
*/
|
|
46
|
-
|
|
44
|
+
noEmit?: boolean;
|
|
47
45
|
/**
|
|
48
46
|
* If true, the server will keep running and will watch and recompile on every file change
|
|
49
47
|
* @default false
|
|
50
48
|
*/
|
|
51
49
|
watch?: boolean;
|
|
52
50
|
/**
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
deploy?: boolean;
|
|
56
|
-
/**
|
|
57
|
-
* The host of the Roku that this project will deploy to
|
|
58
|
-
*/
|
|
59
|
-
host?: string;
|
|
60
|
-
/**
|
|
61
|
-
* The username to use when deploying to a Roku device
|
|
62
|
-
*/
|
|
63
|
-
username?: string;
|
|
64
|
-
/**
|
|
65
|
-
* The password to use when deploying to a Roku device
|
|
51
|
+
* The path to the out folder
|
|
52
|
+
* @default "./out"
|
|
66
53
|
*/
|
|
67
|
-
|
|
54
|
+
outDir?: string;
|
|
68
55
|
/**
|
|
69
|
-
*
|
|
70
|
-
* @default false
|
|
56
|
+
* @deprecated use `outDir` instead
|
|
71
57
|
*/
|
|
72
|
-
|
|
58
|
+
stagingDir?: string;
|
|
73
59
|
/**
|
|
74
|
-
*
|
|
60
|
+
* @deprecated use `outDir` instead
|
|
75
61
|
*/
|
|
76
62
|
stagingFolderPath?: string;
|
|
77
63
|
/**
|
|
78
64
|
* A list of error codes the compiler should NOT emit, even if encountered.
|
|
79
65
|
*/
|
|
80
66
|
ignoreErrorCodes?: (number | string)[];
|
|
67
|
+
/**
|
|
68
|
+
* A map of error codes with their severity level override (error|warn|info)
|
|
69
|
+
*/
|
|
70
|
+
diagnosticSeverityOverrides?: Record<number | string, 'error' | 'warn' | 'info' | 'hint'>;
|
|
81
71
|
/**
|
|
82
72
|
* Emit full paths to files when printing diagnostics to the console. Defaults to false
|
|
83
73
|
*/
|
|
84
74
|
emitFullPaths?: boolean;
|
|
85
75
|
/**
|
|
86
76
|
* Emit type definition files (`d.bs`)
|
|
87
|
-
* @default
|
|
77
|
+
* @default false
|
|
88
78
|
*/
|
|
89
79
|
emitDefinitions?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* If true, removes the explicit type to function's parameters and return (i.e. the `as type` syntax); otherwise keep this information.
|
|
82
|
+
* @default false
|
|
83
|
+
*/
|
|
84
|
+
removeParameterTypes?: boolean;
|
|
90
85
|
/**
|
|
91
86
|
* A list of filters used to exclude diagnostics from the output
|
|
92
87
|
*/
|
|
93
|
-
diagnosticFilters?: Array<
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
codes
|
|
88
|
+
diagnosticFilters?: Array<string | number | {
|
|
89
|
+
files?: string | Array<string | {
|
|
90
|
+
src: string;
|
|
91
|
+
} | {
|
|
92
|
+
dest: string;
|
|
93
|
+
}>;
|
|
94
|
+
codes?: Array<number | string>;
|
|
100
95
|
}>;
|
|
96
|
+
/**
|
|
97
|
+
* Use the deprecated diagnosticFilters format from v0. This is useful for backwards compatibility.
|
|
98
|
+
*/
|
|
99
|
+
diagnosticFiltersV0Compatibility?: boolean;
|
|
101
100
|
/**
|
|
102
101
|
* Specify what diagnostic types should be printed to the console. Defaults to 'warn'
|
|
103
102
|
*/
|
|
104
103
|
diagnosticLevel?: 'info' | 'hint' | 'warn' | 'error';
|
|
104
|
+
/**
|
|
105
|
+
* Specify how diagnostics should be reported to the console.
|
|
106
|
+
* Accepts a single value or an array. When given an array, each diagnostic is rendered
|
|
107
|
+
* once per entry (so you can, for example, get both detailed terminal output and
|
|
108
|
+
* github-actions PR annotations from a single run).
|
|
109
|
+
*
|
|
110
|
+
* Each value may be a preset name ('detailed', 'github-actions'), a custom template string
|
|
111
|
+
* (any string containing a `{` placeholder), or an object with explicit `type`.
|
|
112
|
+
*
|
|
113
|
+
* Custom templates support the following placeholders, replaced per diagnostic:
|
|
114
|
+
* {file}, {line}, {col}, {endLine}, {endCol}, {severity}, {code}, {message}, {source}
|
|
115
|
+
*
|
|
116
|
+
* Examples:
|
|
117
|
+
* "detailed"
|
|
118
|
+
* "github-actions"
|
|
119
|
+
* "{file}:{line}:{col} {severity} {code}: {message}"
|
|
120
|
+
* { type: "custom", format: "{file}:{line}: {message}" }
|
|
121
|
+
* ["detailed", "github-actions"]
|
|
122
|
+
*
|
|
123
|
+
* @default "detailed"
|
|
124
|
+
*/
|
|
125
|
+
diagnosticReporters?: DiagnosticReporter | DiagnosticReporter[];
|
|
105
126
|
/**
|
|
106
127
|
* A list of scripts or modules to add extra diagnostics or transform the AST
|
|
107
128
|
*/
|
|
108
129
|
plugins?: Array<string>;
|
|
130
|
+
/**
|
|
131
|
+
* A list of scripts or modules to pass to node's `require()` on startup. This is useful for doing things like ts-node registration
|
|
132
|
+
*/
|
|
133
|
+
require?: Array<string>;
|
|
109
134
|
/**
|
|
110
135
|
* When enabled, every xml component will search for a .bs or .brs file with the same name
|
|
111
136
|
* in the same folder, and add it as a script import if found. Disabled by default"
|
|
@@ -121,17 +146,110 @@ export interface BsConfig {
|
|
|
121
146
|
* The log level.
|
|
122
147
|
* @default LogLevel.log
|
|
123
148
|
*/
|
|
124
|
-
logLevel?: LogLevel | 'error' | 'warn' | 'log' | 'info' | 'debug' | 'trace';
|
|
149
|
+
logLevel?: LogLevel | 'error' | 'warn' | 'log' | 'info' | 'debug' | 'trace' | 'off';
|
|
125
150
|
/**
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
151
|
+
* Overrides where source files appear to live, in both sourcemaps and the `SOURCE_FILE_PATH` /
|
|
152
|
+
* `SOURCE_LOCATION` runtime literals. Only applies to files within `rootDir`.
|
|
153
|
+
*
|
|
154
|
+
* When `relativeSourceMaps` is false (default): the `rootDir` portion of each source path is
|
|
155
|
+
* replaced with `sourceRoot` directly in `sources[]`. The map's `sourceRoot` field is not written.
|
|
156
|
+
*
|
|
157
|
+
* When `relativeSourceMaps` is true: the map's `sourceRoot` field is set to this value, and
|
|
158
|
+
* `sources[]` entries are relative to `sourceRoot` (per the sourcemap spec).
|
|
159
|
+
*
|
|
160
|
+
* In both modes, `SOURCE_FILE_PATH` and `SOURCE_LOCATION` reflect the `sourceRoot`-substituted path.
|
|
130
161
|
*/
|
|
131
162
|
sourceRoot?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Should the `sourceRoot` property be resolve to an absolute path (relative to the bsconfig it's defined in)
|
|
165
|
+
* @default false
|
|
166
|
+
*/
|
|
167
|
+
resolveSourceRoot?: boolean;
|
|
132
168
|
/**
|
|
133
169
|
* Enables generating sourcemap files, which allow debugging tools to show the original source code while running the emitted files.
|
|
134
170
|
* @default true
|
|
135
171
|
*/
|
|
136
172
|
sourceMap?: boolean;
|
|
173
|
+
/**
|
|
174
|
+
* If true, file paths in sourcemap `sources[]` will be written as relative paths instead of absolute.
|
|
175
|
+
* Only has an effect when `sourceMap` is true.
|
|
176
|
+
*
|
|
177
|
+
* When false (default): `sources[]` contains absolute paths. If `sourceRoot` is set, the `rootDir`
|
|
178
|
+
* portion is replaced with `sourceRoot` in-place; the map's `sourceRoot` field is never written.
|
|
179
|
+
*
|
|
180
|
+
* When true: `sources[]` entries are relative to the map file's directory, making sourcemaps
|
|
181
|
+
* portable across machines. If `sourceRoot` is also set, the map's `sourceRoot` field is written
|
|
182
|
+
* and `sources[]` entries are instead relative to `sourceRoot` (per the sourcemap spec — consumers
|
|
183
|
+
* reconstruct the full path as `path.resolve(sourceRoot, sources[0])`).
|
|
184
|
+
* @default false
|
|
185
|
+
*/
|
|
186
|
+
relativeSourceMaps?: boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Excludes empty files from being included in the output. Some Brighterscript files
|
|
189
|
+
* are left empty or with only comments after transpilation to Brightscript.
|
|
190
|
+
* The default behavior is to write these to disk after transpilation.
|
|
191
|
+
* Setting this flag to `true` will prevent empty files being written and will
|
|
192
|
+
* remove associated script tags from XML
|
|
193
|
+
* @default false
|
|
194
|
+
*/
|
|
195
|
+
pruneEmptyCodeFiles?: boolean;
|
|
196
|
+
/**
|
|
197
|
+
* Allow brighterscript features (classes, interfaces, etc...) to be included in BrightScript (`.brs`) files, and force those files to be transpiled.
|
|
198
|
+
* @default false
|
|
199
|
+
*/
|
|
200
|
+
allowBrighterScriptInBrightScript?: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Override the destination directory for the bslib.brs file. Use this if
|
|
203
|
+
* you want to customize where the bslib.brs file is located in the staging
|
|
204
|
+
* directory. Note that using a location outside of `source` will break
|
|
205
|
+
* scripts inside `source` that depend on bslib.brs. Defaults to `source`.
|
|
206
|
+
*/
|
|
207
|
+
bslibDestinationDir?: string;
|
|
208
|
+
legacyCallfuncHandling?: boolean;
|
|
209
|
+
/**
|
|
210
|
+
* The minimum Roku firmware version required to run this project.
|
|
211
|
+
* When set, BrightScript (.brs) files are always validated against the version restriction.
|
|
212
|
+
* BrighterScript (.bs) files are only validated for features that BrighterScript does not
|
|
213
|
+
* transpile — for example, optional chaining is emitted as-is, so it is subject to the
|
|
214
|
+
* restriction. Features that BrighterScript fully transpiles (such as classes) are not
|
|
215
|
+
* restricted, since the transpiled output is compatible with older firmware.
|
|
216
|
+
* Should be a semver-compatible string (e.g. "11.0.0").
|
|
217
|
+
*/
|
|
218
|
+
minFirmwareVersion?: string;
|
|
219
|
+
/**
|
|
220
|
+
* When set to false, validation is skipped entirely. This can speed up builds when diagnostics
|
|
221
|
+
* are not needed (e.g. when using the VSCode extension which already surfaces diagnostics in the
|
|
222
|
+
* editor). Note that skipping validation may cause transpilation to fail or produce incorrect
|
|
223
|
+
* output if the project contains errors that would normally be caught during validation.
|
|
224
|
+
* @default true
|
|
225
|
+
*/
|
|
226
|
+
validate?: boolean;
|
|
137
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Discriminated union describing how diagnostics are rendered to the console.
|
|
230
|
+
* - String shorthand: a preset name ('detailed' | 'github-actions') or a template string
|
|
231
|
+
* (any string containing a `{` is treated as a custom template).
|
|
232
|
+
* - Object form: explicit `type` so config files can stay strictly typed.
|
|
233
|
+
*/
|
|
234
|
+
export declare type DiagnosticReporter = 'detailed' | 'github-actions' | (string & {}) | {
|
|
235
|
+
type: 'detailed';
|
|
236
|
+
} | {
|
|
237
|
+
type: 'github-actions';
|
|
238
|
+
} | {
|
|
239
|
+
type: 'custom';
|
|
240
|
+
format: string;
|
|
241
|
+
};
|
|
242
|
+
/**
|
|
243
|
+
* Object form of `DiagnosticReporter` after string shorthand has been resolved.
|
|
244
|
+
*/
|
|
245
|
+
export declare type NormalizedDiagnosticReporter = {
|
|
246
|
+
type: 'detailed';
|
|
247
|
+
} | {
|
|
248
|
+
type: 'github-actions';
|
|
249
|
+
} | {
|
|
250
|
+
type: 'custom';
|
|
251
|
+
format: string;
|
|
252
|
+
};
|
|
253
|
+
declare type OptionalBsConfigFields = '_ancestors' | 'sourceRoot' | 'project' | 'manifest' | 'noProject' | 'extends' | 'require' | 'outDir' | 'diagnosticLevel' | 'rootDir' | 'stagingDir' | 'stagingFolderPath' | 'minFirmwareVersion' | 'diagnosticReporters';
|
|
254
|
+
export declare type FinalizedBsConfig = Omit<Required<BsConfig>, OptionalBsConfigFields> & Pick<BsConfig, OptionalBsConfigFields>;
|
|
255
|
+
export {};
|