brighterscript 0.66.0-alpha.9 → 0.67.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/CHANGELOG.md +123 -73
  2. package/README.md +14 -418
  3. package/dist/BsConfig.d.ts +25 -2
  4. package/dist/Cache.js +3 -3
  5. package/dist/Cache.js.map +1 -1
  6. package/dist/CodeActionUtil.d.ts +3 -3
  7. package/dist/CodeActionUtil.js.map +1 -1
  8. package/dist/CommentFlagProcessor.d.ts +3 -4
  9. package/dist/CommentFlagProcessor.js +4 -3
  10. package/dist/CommentFlagProcessor.js.map +1 -1
  11. package/dist/DependencyGraph.js +8 -8
  12. package/dist/DependencyGraph.js.map +1 -1
  13. package/dist/DiagnosticFilterer.d.ts +8 -4
  14. package/dist/DiagnosticFilterer.js +71 -38
  15. package/dist/DiagnosticFilterer.js.map +1 -1
  16. package/dist/DiagnosticMessages.d.ts +15 -36
  17. package/dist/DiagnosticMessages.js +15 -61
  18. package/dist/DiagnosticMessages.js.map +1 -1
  19. package/dist/DiagnosticSeverityAdjuster.js +3 -0
  20. package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
  21. package/dist/FunctionScope.d.ts +2 -3
  22. package/dist/FunctionScope.js +0 -3
  23. package/dist/FunctionScope.js.map +1 -1
  24. package/dist/LanguageServer.d.ts +1 -2
  25. package/dist/LanguageServer.js +31 -35
  26. package/dist/LanguageServer.js.map +1 -1
  27. package/dist/Logger.d.ts +5 -9
  28. package/dist/Logger.js +18 -22
  29. package/dist/Logger.js.map +1 -1
  30. package/dist/PluginInterface.d.ts +13 -15
  31. package/dist/PluginInterface.js +16 -70
  32. package/dist/PluginInterface.js.map +1 -1
  33. package/dist/Program.d.ts +105 -138
  34. package/dist/Program.js +479 -702
  35. package/dist/Program.js.map +1 -1
  36. package/dist/ProgramBuilder.d.ts +8 -19
  37. package/dist/ProgramBuilder.js +85 -89
  38. package/dist/ProgramBuilder.js.map +1 -1
  39. package/dist/Scope.d.ts +56 -46
  40. package/dist/Scope.js +281 -217
  41. package/dist/Scope.js.map +1 -1
  42. package/dist/Stopwatch.js +1 -1
  43. package/dist/Stopwatch.js.map +1 -1
  44. package/dist/SymbolTable.d.ts +12 -68
  45. package/dist/SymbolTable.js +28 -213
  46. package/dist/SymbolTable.js.map +1 -1
  47. package/dist/XmlScope.d.ts +5 -7
  48. package/dist/XmlScope.js +36 -76
  49. package/dist/XmlScope.js.map +1 -1
  50. package/dist/astUtils/{Editor.d.ts → AstEditor.d.ts} +1 -6
  51. package/dist/astUtils/{Editor.js → AstEditor.js} +3 -9
  52. package/dist/astUtils/AstEditor.js.map +1 -0
  53. package/dist/astUtils/{Editor.spec.js → AstEditor.spec.js} +6 -10
  54. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  55. package/dist/astUtils/creators.d.ts +8 -19
  56. package/dist/astUtils/creators.js +22 -54
  57. package/dist/astUtils/creators.js.map +1 -1
  58. package/dist/astUtils/creators.spec.js +0 -10
  59. package/dist/astUtils/creators.spec.js.map +1 -1
  60. package/dist/astUtils/reflection.d.ts +45 -81
  61. package/dist/astUtils/reflection.js +157 -220
  62. package/dist/astUtils/reflection.js.map +1 -1
  63. package/dist/astUtils/reflection.spec.js +19 -96
  64. package/dist/astUtils/reflection.spec.js.map +1 -1
  65. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  66. package/dist/astUtils/visitors.d.ts +14 -18
  67. package/dist/astUtils/visitors.js +9 -22
  68. package/dist/astUtils/visitors.js.map +1 -1
  69. package/dist/astUtils/visitors.spec.js +9 -62
  70. package/dist/astUtils/visitors.spec.js.map +1 -1
  71. package/dist/astUtils/xml.d.ts +9 -9
  72. package/dist/astUtils/xml.js +6 -6
  73. package/dist/astUtils/xml.js.map +1 -1
  74. package/dist/bscPlugin/BscPlugin.d.ts +8 -11
  75. package/dist/bscPlugin/BscPlugin.js +21 -29
  76. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  77. package/dist/bscPlugin/CallExpressionInfo.d.ts +6 -5
  78. package/dist/bscPlugin/CallExpressionInfo.js +2 -2
  79. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  80. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +11 -11
  81. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  82. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +4 -4
  83. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  84. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -49
  85. package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -424
  86. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  87. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  88. package/dist/bscPlugin/definition/DefinitionProvider.js +200 -0
  89. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  90. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
  91. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  92. package/dist/bscPlugin/hover/HoverProcessor.d.ts +3 -7
  93. package/dist/bscPlugin/hover/HoverProcessor.js +88 -128
  94. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  95. package/dist/bscPlugin/hover/HoverProcessor.spec.js +24 -336
  96. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  97. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  98. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  99. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  100. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  101. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  102. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +0 -1
  103. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +5 -49
  104. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  105. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -22
  106. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  107. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  108. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  109. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  110. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +290 -0
  111. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  112. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  113. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  114. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  115. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  116. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  117. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  118. package/dist/bscPlugin/symbols/symbolUtils.js +140 -0
  119. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  120. package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.d.ts → BrsFilePreTranspileProcessor.d.ts} +2 -4
  121. package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.js → BrsFilePreTranspileProcessor.js} +15 -36
  122. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -0
  123. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +46 -0
  124. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
  125. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +1 -0
  126. package/dist/bscPlugin/validation/BrsFileValidator.js +30 -41
  127. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  128. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +2 -2
  129. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  130. package/dist/bscPlugin/validation/ProgramValidator.d.ts +3 -3
  131. package/dist/bscPlugin/validation/ProgramValidator.js +6 -6
  132. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -1
  133. package/dist/bscPlugin/validation/ScopeValidator.d.ts +6 -28
  134. package/dist/bscPlugin/validation/ScopeValidator.js +166 -387
  135. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  136. package/dist/bscPlugin/validation/XmlFileValidator.js +9 -9
  137. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  138. package/dist/diagnosticUtils.d.ts +2 -3
  139. package/dist/diagnosticUtils.js +5 -5
  140. package/dist/diagnosticUtils.js.map +1 -1
  141. package/dist/examples/plugins/removePrint.js +1 -1
  142. package/dist/examples/plugins/removePrint.js.map +1 -1
  143. package/dist/files/BrsFile.Class.spec.js +143 -114
  144. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  145. package/dist/files/BrsFile.d.ts +61 -83
  146. package/dist/files/BrsFile.js +559 -612
  147. package/dist/files/BrsFile.js.map +1 -1
  148. package/dist/files/BrsFile.spec.js +1365 -1201
  149. package/dist/files/BrsFile.spec.js.map +1 -1
  150. package/dist/files/XmlFile.d.ts +28 -56
  151. package/dist/files/XmlFile.js +103 -89
  152. package/dist/files/XmlFile.js.map +1 -1
  153. package/dist/files/XmlFile.spec.js +179 -122
  154. package/dist/files/XmlFile.spec.js.map +1 -1
  155. package/dist/files/tests/imports.spec.js +19 -29
  156. package/dist/files/tests/imports.spec.js.map +1 -1
  157. package/dist/files/tests/optionalChaning.spec.js +14 -14
  158. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  159. package/dist/globalCallables.js +83 -88
  160. package/dist/globalCallables.js.map +1 -1
  161. package/dist/index.d.ts +1 -9
  162. package/dist/index.js +1 -9
  163. package/dist/index.js.map +1 -1
  164. package/dist/interfaces.d.ts +173 -423
  165. package/dist/interfaces.js +0 -24
  166. package/dist/interfaces.js.map +1 -1
  167. package/dist/lexer/Lexer.d.ts +9 -15
  168. package/dist/lexer/Lexer.js +35 -46
  169. package/dist/lexer/Lexer.js.map +1 -1
  170. package/dist/lexer/Lexer.spec.js +48 -40
  171. package/dist/lexer/Lexer.spec.js.map +1 -1
  172. package/dist/lexer/Token.d.ts +1 -5
  173. package/dist/lexer/Token.js +1 -1
  174. package/dist/lexer/Token.js.map +1 -1
  175. package/dist/lexer/TokenKind.d.ts +0 -6
  176. package/dist/lexer/TokenKind.js +2 -14
  177. package/dist/lexer/TokenKind.js.map +1 -1
  178. package/dist/logging.d.ts +9 -0
  179. package/dist/logging.js +16 -0
  180. package/dist/logging.js.map +1 -0
  181. package/dist/parser/AstNode.d.ts +6 -90
  182. package/dist/parser/AstNode.js +5 -96
  183. package/dist/parser/AstNode.js.map +1 -1
  184. package/dist/parser/AstNode.spec.js.map +1 -1
  185. package/dist/parser/BrsTranspileState.d.ts +3 -4
  186. package/dist/parser/BrsTranspileState.js +2 -3
  187. package/dist/parser/BrsTranspileState.js.map +1 -1
  188. package/dist/parser/Expression.d.ts +114 -137
  189. package/dist/parser/Expression.js +244 -373
  190. package/dist/parser/Expression.js.map +1 -1
  191. package/dist/parser/Parser.Class.spec.js +19 -46
  192. package/dist/parser/Parser.Class.spec.js.map +1 -1
  193. package/dist/parser/Parser.d.ts +18 -14
  194. package/dist/parser/Parser.js +196 -175
  195. package/dist/parser/Parser.js.map +1 -1
  196. package/dist/parser/Parser.spec.d.ts +0 -2
  197. package/dist/parser/Parser.spec.js +10 -674
  198. package/dist/parser/Parser.spec.js.map +1 -1
  199. package/dist/parser/SGParser.d.ts +6 -44
  200. package/dist/parser/SGParser.js +198 -194
  201. package/dist/parser/SGParser.js.map +1 -1
  202. package/dist/parser/SGParser.spec.js +11 -14
  203. package/dist/parser/SGParser.spec.js.map +1 -1
  204. package/dist/parser/SGTypes.d.ts +52 -280
  205. package/dist/parser/SGTypes.js +185 -562
  206. package/dist/parser/SGTypes.js.map +1 -1
  207. package/dist/parser/Statement.d.ts +140 -172
  208. package/dist/parser/Statement.js +201 -337
  209. package/dist/parser/Statement.js.map +1 -1
  210. package/dist/parser/Statement.spec.js.map +1 -1
  211. package/dist/parser/TranspileState.d.ts +3 -2
  212. package/dist/parser/TranspileState.js +8 -10
  213. package/dist/parser/TranspileState.js.map +1 -1
  214. package/dist/parser/tests/Parser.spec.js +3 -5
  215. package/dist/parser/tests/Parser.spec.js.map +1 -1
  216. package/dist/parser/tests/controlFlow/For.spec.js +8 -16
  217. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  218. package/dist/parser/tests/controlFlow/ForEach.spec.js +6 -12
  219. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  220. package/dist/parser/tests/controlFlow/While.spec.js +4 -8
  221. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  222. package/dist/parser/tests/expression/Call.spec.js +4 -4
  223. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  224. package/dist/parser/tests/expression/Indexing.spec.js +25 -0
  225. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  226. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +73 -29
  227. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  228. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
  229. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  230. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
  231. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  232. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +47 -35
  233. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  234. package/dist/parser/tests/expression/TernaryExpression.spec.js +83 -36
  235. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  236. package/dist/parser/tests/expression/UnaryExpression.spec.js +2 -2
  237. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -1
  238. package/dist/parser/tests/statement/ConstStatement.spec.js +26 -27
  239. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  240. package/dist/parser/tests/statement/Continue.spec.js +2 -2
  241. package/dist/parser/tests/statement/Continue.spec.js.map +1 -1
  242. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  243. package/dist/parser/tests/statement/Enum.spec.js +393 -90
  244. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  245. package/dist/parser/tests/statement/For.spec.js +6 -6
  246. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  247. package/dist/parser/tests/statement/ForEach.spec.js +4 -4
  248. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  249. package/dist/parser/tests/statement/Function.spec.js +1 -1
  250. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  251. package/dist/parser/tests/statement/InterfaceStatement.spec.js +18 -18
  252. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  253. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  254. package/dist/parser/tests/statement/PrintStatement.spec.js +13 -16
  255. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  256. package/dist/parser/tests/statement/ReturnStatement.spec.js +3 -5
  257. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  258. package/dist/parser/tests/statement/Set.spec.js +13 -26
  259. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  260. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  261. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  262. package/dist/preprocessor/Chunk.js +1 -2
  263. package/dist/preprocessor/Chunk.js.map +1 -1
  264. package/dist/preprocessor/Preprocessor.d.ts +3 -4
  265. package/dist/preprocessor/Preprocessor.js +3 -3
  266. package/dist/preprocessor/Preprocessor.js.map +1 -1
  267. package/dist/preprocessor/PreprocessorParser.js +8 -1
  268. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  269. package/dist/roku-types/data.json +293 -243
  270. package/dist/roku-types/index.d.ts +38 -17
  271. package/dist/types/ArrayType.d.ts +4 -9
  272. package/dist/types/ArrayType.js +24 -72
  273. package/dist/types/ArrayType.js.map +1 -1
  274. package/dist/types/ArrayType.spec.js +10 -39
  275. package/dist/types/ArrayType.spec.js.map +1 -1
  276. package/dist/types/BooleanType.d.ts +4 -8
  277. package/dist/types/BooleanType.js +8 -19
  278. package/dist/types/BooleanType.js.map +1 -1
  279. package/dist/types/BooleanType.spec.js +3 -9
  280. package/dist/types/BooleanType.spec.js.map +1 -1
  281. package/dist/types/BscType.d.ts +2 -29
  282. package/dist/types/BscType.js +0 -113
  283. package/dist/types/BscType.js.map +1 -1
  284. package/dist/types/CustomType.d.ts +9 -0
  285. package/dist/types/CustomType.js +32 -0
  286. package/dist/types/CustomType.js.map +1 -0
  287. package/dist/types/DoubleType.d.ts +4 -8
  288. package/dist/types/DoubleType.js +20 -23
  289. package/dist/types/DoubleType.js.map +1 -1
  290. package/dist/types/DoubleType.spec.js +3 -11
  291. package/dist/types/DoubleType.spec.js.map +1 -1
  292. package/dist/types/DynamicType.d.ts +3 -9
  293. package/dist/types/DynamicType.js +2 -18
  294. package/dist/types/DynamicType.js.map +1 -1
  295. package/dist/types/DynamicType.spec.js +4 -15
  296. package/dist/types/DynamicType.spec.js.map +1 -1
  297. package/dist/types/FloatType.d.ts +4 -8
  298. package/dist/types/FloatType.js +20 -23
  299. package/dist/types/FloatType.js.map +1 -1
  300. package/dist/types/FloatType.spec.js +3 -3
  301. package/dist/types/FloatType.spec.js.map +1 -1
  302. package/dist/types/FunctionType.d.ts +20 -10
  303. package/dist/types/FunctionType.js +52 -27
  304. package/dist/types/FunctionType.js.map +1 -1
  305. package/dist/types/FunctionType.spec.js +23 -0
  306. package/dist/types/FunctionType.spec.js.map +1 -0
  307. package/dist/types/IntegerType.d.ts +4 -8
  308. package/dist/types/IntegerType.js +20 -23
  309. package/dist/types/IntegerType.js.map +1 -1
  310. package/dist/types/IntegerType.spec.js +3 -7
  311. package/dist/types/IntegerType.spec.js.map +1 -1
  312. package/dist/types/InterfaceType.d.ts +10 -12
  313. package/dist/types/InterfaceType.js +48 -23
  314. package/dist/types/InterfaceType.js.map +1 -1
  315. package/dist/types/InterfaceType.spec.js +45 -82
  316. package/dist/types/InterfaceType.spec.js.map +1 -1
  317. package/dist/types/InvalidType.d.ts +4 -7
  318. package/dist/types/InvalidType.js +8 -18
  319. package/dist/types/InvalidType.js.map +1 -1
  320. package/dist/types/InvalidType.spec.js +3 -7
  321. package/dist/types/InvalidType.spec.js.map +1 -1
  322. package/dist/types/LongIntegerType.d.ts +4 -8
  323. package/dist/types/LongIntegerType.js +20 -23
  324. package/dist/types/LongIntegerType.js.map +1 -1
  325. package/dist/types/LongIntegerType.spec.js +3 -9
  326. package/dist/types/LongIntegerType.spec.js.map +1 -1
  327. package/dist/types/ObjectType.d.ts +4 -8
  328. package/dist/types/ObjectType.js +7 -21
  329. package/dist/types/ObjectType.js.map +1 -1
  330. package/dist/types/ObjectType.spec.js +2 -2
  331. package/dist/types/ObjectType.spec.js.map +1 -1
  332. package/dist/types/StringType.d.ts +4 -11
  333. package/dist/types/StringType.js +8 -23
  334. package/dist/types/StringType.js.map +1 -1
  335. package/dist/types/StringType.spec.js +2 -2
  336. package/dist/types/StringType.spec.js.map +1 -1
  337. package/dist/types/UninitializedType.d.ts +3 -7
  338. package/dist/types/UninitializedType.js +3 -14
  339. package/dist/types/UninitializedType.js.map +1 -1
  340. package/dist/types/VoidType.d.ts +4 -8
  341. package/dist/types/VoidType.js +8 -18
  342. package/dist/types/VoidType.js.map +1 -1
  343. package/dist/types/VoidType.spec.js +2 -2
  344. package/dist/types/VoidType.spec.js.map +1 -1
  345. package/dist/util.d.ts +43 -104
  346. package/dist/util.js +243 -640
  347. package/dist/util.js.map +1 -1
  348. package/dist/validators/ClassValidator.d.ts +6 -1
  349. package/dist/validators/ClassValidator.js +61 -20
  350. package/dist/validators/ClassValidator.js.map +1 -1
  351. package/package.json +13 -11
  352. package/dist/ActionPipeline.d.ts +0 -10
  353. package/dist/ActionPipeline.js +0 -40
  354. package/dist/ActionPipeline.js.map +0 -1
  355. package/dist/AstValidationSegmenter.d.ts +0 -25
  356. package/dist/AstValidationSegmenter.js +0 -150
  357. package/dist/AstValidationSegmenter.js.map +0 -1
  358. package/dist/CacheVerifier.d.ts +0 -7
  359. package/dist/CacheVerifier.js +0 -20
  360. package/dist/CacheVerifier.js.map +0 -1
  361. package/dist/astUtils/Editor.js.map +0 -1
  362. package/dist/astUtils/Editor.spec.js.map +0 -1
  363. package/dist/bscPlugin/FileWriter.d.ts +0 -6
  364. package/dist/bscPlugin/FileWriter.js +0 -24
  365. package/dist/bscPlugin/FileWriter.js.map +0 -1
  366. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +0 -1658
  367. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +0 -1
  368. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +0 -9
  369. package/dist/bscPlugin/fileProviders/FileProvider.js +0 -51
  370. package/dist/bscPlugin/fileProviders/FileProvider.js.map +0 -1
  371. package/dist/bscPlugin/serialize/BslibInjector.spec.js +0 -19
  372. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +0 -1
  373. package/dist/bscPlugin/serialize/BslibManager.d.ts +0 -9
  374. package/dist/bscPlugin/serialize/BslibManager.js +0 -40
  375. package/dist/bscPlugin/serialize/BslibManager.js.map +0 -1
  376. package/dist/bscPlugin/serialize/FileSerializer.d.ts +0 -9
  377. package/dist/bscPlugin/serialize/FileSerializer.js +0 -72
  378. package/dist/bscPlugin/serialize/FileSerializer.js.map +0 -1
  379. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +0 -1
  380. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +0 -41
  381. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +0 -1
  382. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +0 -11
  383. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +0 -53
  384. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +0 -1
  385. package/dist/bscPlugin/validation/ScopeValidator.spec.js +0 -2004
  386. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +0 -1
  387. package/dist/files/AssetFile.d.ts +0 -26
  388. package/dist/files/AssetFile.js +0 -26
  389. package/dist/files/AssetFile.js.map +0 -1
  390. package/dist/files/Factory.d.ts +0 -25
  391. package/dist/files/Factory.js +0 -22
  392. package/dist/files/Factory.js.map +0 -1
  393. package/dist/files/File.d.ts +0 -106
  394. package/dist/files/File.js +0 -16
  395. package/dist/files/File.js.map +0 -1
  396. package/dist/files/LazyFileData.d.ts +0 -20
  397. package/dist/files/LazyFileData.js +0 -54
  398. package/dist/files/LazyFileData.js.map +0 -1
  399. package/dist/files/LazyFileData.spec.js +0 -27
  400. package/dist/files/LazyFileData.spec.js.map +0 -1
  401. package/dist/parser/tests/expression/TypeExpression.spec.js +0 -127
  402. package/dist/parser/tests/expression/TypeExpression.spec.js.map +0 -1
  403. package/dist/types/AssociativeArrayType.d.ts +0 -11
  404. package/dist/types/AssociativeArrayType.js +0 -52
  405. package/dist/types/AssociativeArrayType.js.map +0 -1
  406. package/dist/types/BaseFunctionType.d.ts +0 -9
  407. package/dist/types/BaseFunctionType.js +0 -25
  408. package/dist/types/BaseFunctionType.js.map +0 -1
  409. package/dist/types/BscTypeKind.d.ts +0 -25
  410. package/dist/types/BscTypeKind.js +0 -30
  411. package/dist/types/BscTypeKind.js.map +0 -1
  412. package/dist/types/BuiltInInterfaceAdder.d.ts +0 -23
  413. package/dist/types/BuiltInInterfaceAdder.js +0 -160
  414. package/dist/types/BuiltInInterfaceAdder.js.map +0 -1
  415. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +0 -1
  416. package/dist/types/BuiltInInterfaceAdder.spec.js +0 -116
  417. package/dist/types/BuiltInInterfaceAdder.spec.js.map +0 -1
  418. package/dist/types/ClassType.d.ts +0 -17
  419. package/dist/types/ClassType.js +0 -58
  420. package/dist/types/ClassType.js.map +0 -1
  421. package/dist/types/ClassType.spec.d.ts +0 -1
  422. package/dist/types/ClassType.spec.js +0 -77
  423. package/dist/types/ClassType.spec.js.map +0 -1
  424. package/dist/types/ComponentType.d.ts +0 -26
  425. package/dist/types/ComponentType.js +0 -83
  426. package/dist/types/ComponentType.js.map +0 -1
  427. package/dist/types/EnumType.d.ts +0 -40
  428. package/dist/types/EnumType.js +0 -81
  429. package/dist/types/EnumType.js.map +0 -1
  430. package/dist/types/EnumType.spec.d.ts +0 -1
  431. package/dist/types/EnumType.spec.js +0 -33
  432. package/dist/types/EnumType.spec.js.map +0 -1
  433. package/dist/types/InheritableType.d.ts +0 -28
  434. package/dist/types/InheritableType.js +0 -152
  435. package/dist/types/InheritableType.js.map +0 -1
  436. package/dist/types/NamespaceType.d.ts +0 -12
  437. package/dist/types/NamespaceType.js +0 -28
  438. package/dist/types/NamespaceType.js.map +0 -1
  439. package/dist/types/ReferenceType.d.ts +0 -63
  440. package/dist/types/ReferenceType.js +0 -423
  441. package/dist/types/ReferenceType.js.map +0 -1
  442. package/dist/types/ReferenceType.spec.d.ts +0 -1
  443. package/dist/types/ReferenceType.spec.js +0 -137
  444. package/dist/types/ReferenceType.spec.js.map +0 -1
  445. package/dist/types/TypedFunctionType.d.ts +0 -33
  446. package/dist/types/TypedFunctionType.js +0 -106
  447. package/dist/types/TypedFunctionType.js.map +0 -1
  448. package/dist/types/TypedFunctionType.spec.d.ts +0 -1
  449. package/dist/types/TypedFunctionType.spec.js +0 -122
  450. package/dist/types/TypedFunctionType.spec.js.map +0 -1
  451. package/dist/types/UnionType.d.ts +0 -20
  452. package/dist/types/UnionType.js +0 -123
  453. package/dist/types/UnionType.js.map +0 -1
  454. package/dist/types/UnionType.spec.d.ts +0 -1
  455. package/dist/types/UnionType.spec.js +0 -130
  456. package/dist/types/UnionType.spec.js.map +0 -1
  457. package/dist/types/helper.spec.d.ts +0 -1
  458. package/dist/types/helper.spec.js +0 -145
  459. package/dist/types/helper.spec.js.map +0 -1
  460. package/dist/types/helpers.d.ts +0 -24
  461. package/dist/types/helpers.js +0 -178
  462. package/dist/types/helpers.js.map +0 -1
  463. package/dist/types/index.d.ts +0 -22
  464. package/dist/types/index.js +0 -39
  465. package/dist/types/index.js.map +0 -1
  466. /package/dist/astUtils/{Editor.spec.d.ts → AstEditor.spec.d.ts} +0 -0
  467. /package/dist/bscPlugin/{completions/CompletionsProcessor.spec.d.ts → definition/DefinitionProvider.spec.d.ts} +0 -0
  468. /package/dist/bscPlugin/{serialize/BslibInjector.spec.d.ts → references/ReferencesProvider.spec.d.ts} +0 -0
  469. /package/dist/bscPlugin/{transpile/BrsFileTranspileProcessor.spec.d.ts → symbols/DocumentSymbolProcessor.spec.d.ts} +0 -0
  470. /package/dist/bscPlugin/{validation/ScopeValidator.spec.d.ts → symbols/WorkspaceSymbolProcessor.spec.d.ts} +0 -0
  471. /package/dist/{files/LazyFileData.spec.d.ts → bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts} +0 -0
  472. /package/dist/{parser/tests/expression/TypeExpression.spec.d.ts → types/FunctionType.spec.d.ts} +0 -0
@@ -1,143 +1,55 @@
1
1
  import { SourceNode } from 'source-map';
2
2
  import type { Range } from 'vscode-languageserver';
3
- import type { FileReference } from '../interfaces';
4
- import { BooleanType } from '../types/BooleanType';
5
- import { DynamicType } from '../types/DynamicType';
6
- import { FloatType } from '../types/FloatType';
7
- import { IntegerType } from '../types/IntegerType';
8
- import { LongIntegerType } from '../types/LongIntegerType';
9
- import { StringType } from '../types/StringType';
3
+ import type { FileReference, TranspileResult } from '../interfaces';
10
4
  import type { TranspileState } from './TranspileState';
11
5
  export interface SGToken {
12
6
  text: string;
13
7
  range?: Range;
14
8
  }
15
- export declare class SGAttribute {
16
- constructor(key: SGToken, equals?: SGToken, openingQuote?: SGToken, value?: SGToken, closingQuote?: SGToken);
17
- tokens: {
18
- key: SGToken;
19
- equals?: SGToken;
20
- openingQuote?: SGToken;
21
- value?: SGToken;
22
- closingQuote?: SGToken;
23
- };
24
- get key(): string;
25
- /**
26
- * The value of this attribute. This does not including the opening or closing quote
27
- */
28
- get value(): string | undefined;
29
- set value(val: string | undefined);
30
- get range(): Range;
31
- private _range;
32
- transpile(state: TranspileState): SourceNode;
33
- clone(): SGAttribute;
9
+ export interface SGAttribute {
10
+ key: SGToken;
11
+ openQuote?: SGToken;
12
+ value: SGToken;
13
+ closeQuote?: SGToken;
14
+ range?: Range;
34
15
  }
35
- export declare class SGElement {
36
- constructor(startTagOpen: SGToken, startTagName: SGToken, attributes?: SGAttribute[], startTagClose?: SGToken, elements?: SGElement[], endTagOpen?: SGToken, endTagName?: SGToken, endTagClose?: SGToken);
37
- tokens: {
38
- /**
39
- * The first portion of the startTag. (i.e. `<` or `<?`)
40
- */
41
- startTagOpen: SGToken;
42
- /**
43
- * The name of the opening tag (i.e. CoolTag in `<CoolTag>`).
44
- */
45
- startTagName: SGToken;
46
- /**
47
- * The last bit of the startTag (i.e. `/>` for self-closing, `?>` for xml prologue, or `>` for tag with children)
48
- */
49
- startTagClose?: SGToken;
50
- /**
51
- * The endTag opening char `<`
52
- */
53
- endTagOpen?: SGToken;
54
- /**
55
- * The name of the ending tag (i.e. CoolTag in `</CoolTag>`)
56
- */
57
- endTagName?: SGToken;
58
- /**
59
- * The endTag closing char `>`
60
- */
61
- endTagClose?: SGToken;
62
- };
63
- /**
64
- * Array of attributes found on this tag
65
- */
16
+ export declare class SGTag {
17
+ tag: SGToken;
66
18
  attributes: SGAttribute[];
67
- /**
68
- * The array of direct children AST elements of this AST node
69
- */
70
- elements: SGElement[];
71
- get range(): Range;
72
- private _range;
73
- /**
74
- * Is this a self-closing tag?
75
- */
76
- get isSelfClosing(): boolean;
19
+ range?: Range;
20
+ constructor(tag: SGToken, attributes?: SGAttribute[], range?: Range);
77
21
  get id(): string;
78
22
  set id(value: string);
79
- /**
80
- * Get the name of this tag.
81
- */
82
- get tagName(): string;
83
- /**
84
- * Find all direct children by their tag name (case insensitive).
85
- * This does not step into children's children.
86
- *
87
- */
88
- getElementsByTagName<T extends SGElement>(tagName: string): readonly T[];
89
- /**
90
- * Add a child to the end of the children array
91
- */
92
- addChild<T extends SGElement>(tag: T): T;
93
- /**
94
- * Remove a child from the children array.
95
- * @returns true if node was found and removed, false if the node wasn't there and thus nothing was done
96
- */
97
- removeChild(tag: SGElement): boolean;
98
- /**
99
- * Does this node have the specified attribute?
100
- */
101
- hasAttribute(name: string): boolean;
102
- /**
103
- * Get an SGAttribute by its name (case INsensitive)
104
- */
105
23
  getAttribute(name: string): SGAttribute | undefined;
106
- /**
107
- * Get an attribute value by its name
108
- */
109
24
  getAttributeValue(name: string): string | undefined;
110
- /**
111
- * Set an attribute value by its name. If no attribute exists with this name, it is created
112
- */
113
- setAttributeValue(name: string, value: string): void;
114
- /**
115
- * Remove an attribute by its name. DO NOT USE this to edit AST (use ASTEditor)
116
- * @returns true if an attribute was found and removed. False if no attribute was found
117
- */
118
- removeAttribute(name: string): boolean;
25
+ setAttribute(name: string, value: string): void;
119
26
  transpile(state: TranspileState): SourceNode;
120
- protected transpileBody(state: TranspileState): SourceNode;
121
- protected transpileAttributes(state: TranspileState, attributes: SGAttribute[]): SourceNode;
122
- }
123
- export declare class SGProlog extends SGElement {
27
+ protected transpileBody(state: TranspileState): (string | SourceNode)[];
28
+ protected transpileAttributes(state: TranspileState, attributes: SGAttribute[]): (string | SourceNode)[];
124
29
  }
125
- export declare class SGNode extends SGElement {
30
+ export declare class SGProlog extends SGTag {
31
+ transpile(state: TranspileState): SourceNode;
126
32
  }
127
- export declare class SGChildren extends SGElement {
33
+ export declare class SGNode extends SGTag {
34
+ children: SGNode[];
35
+ constructor(tag: SGToken, attributes?: SGAttribute[], children?: SGNode[], range?: Range);
36
+ protected transpileBody(state: TranspileState): (string | SourceNode)[];
128
37
  }
129
- export declare class SGCustomization extends SGElement {
38
+ export declare class SGChildren extends SGNode {
39
+ constructor(tag?: SGToken, children?: SGNode[], range?: Range);
130
40
  }
131
- export declare class SGScript extends SGElement {
41
+ export declare class SGScript extends SGTag {
132
42
  cdata?: SGToken;
43
+ constructor(tag?: SGToken, attributes?: SGAttribute[], cdata?: SGToken, range?: Range);
133
44
  get type(): string;
134
45
  set type(value: string);
135
46
  get uri(): string;
136
47
  set uri(value: string);
137
- protected transpileBody(state: TranspileState): SourceNode;
138
- protected transpileAttributes(state: TranspileState, attributes: SGAttribute[]): SourceNode;
48
+ protected transpileBody(state: TranspileState): (string | SourceNode)[];
49
+ protected transpileAttributes(state: TranspileState, attributes: SGAttribute[]): (string | SourceNode)[];
139
50
  }
140
- export declare class SGInterfaceField extends SGElement {
51
+ export declare class SGField extends SGTag {
52
+ constructor(tag?: SGToken, attributes?: SGAttribute[], range?: Range);
141
53
  get type(): string;
142
54
  set type(value: string);
143
55
  get alias(): string;
@@ -149,183 +61,43 @@ export declare class SGInterfaceField extends SGElement {
149
61
  get alwaysNotify(): string;
150
62
  set alwaysNotify(value: string);
151
63
  }
152
- export declare enum SGFieldType {
153
- integer = "integer",
154
- int = "int",
155
- longinteger = "longinteger",
156
- float = "float",
157
- string = "string",
158
- str = "str",
159
- boolean = "boolean",
160
- bool = "bool",
161
- vector2d = "vector2d",
162
- color = "color",
163
- time = "time",
164
- uri = "uri",
165
- node = "node",
166
- floatarray = "floatarray",
167
- intarray = "intarray",
168
- boolarray = "boolarray",
169
- stringarray = "stringarray",
170
- vector2darray = "vector2darray",
171
- colorarray = "colorarray",
172
- timearray = "timearray",
173
- nodearray = "nodearray",
174
- assocarray = "assocarray",
175
- array = "array",
176
- roarray = "roarray",
177
- rect2d = "rect2d",
178
- rect2darray = "rect2darray"
179
- }
180
64
  export declare const SGFieldTypes: string[];
181
- export declare function getBscTypeFromSGFieldType(sgFieldType: string): DynamicType | StringType | IntegerType | BooleanType | FloatType | LongIntegerType;
182
- export declare class SGInterfaceFunction extends SGElement {
65
+ export declare class SGFunction extends SGTag {
66
+ constructor(tag?: SGToken, attributes?: SGAttribute[], range?: Range);
183
67
  get name(): string;
184
68
  set name(value: string);
185
69
  }
186
- export declare type SGInterfaceMember = SGInterfaceField | SGInterfaceFunction;
187
- export declare class SGInterface extends SGElement {
188
- get fields(): readonly SGInterfaceField[];
189
- get functions(): readonly SGInterfaceFunction[];
190
- get members(): readonly SGInterfaceMember[];
191
- /**
192
- * Check if there's an SGField with the specified name
193
- */
194
- hasField(id: string): boolean;
195
- /**
196
- * Check if there's an SGFunction with the specified name
197
- */
198
- hasFunction(name: string): boolean;
199
- /**
200
- * Find a field by its ID
201
- */
202
- getField(id: string): SGInterfaceField;
203
- /**
204
- * Set the value of a field. Creates a new field if one does not already exist with this ID
205
- */
206
- setField(id: string, type: string, onChange?: string, alwaysNotify?: boolean, alias?: string): SGInterfaceField;
207
- /**
208
- * Remove a field from the interface
209
- * @returns true if a field was found and removed. Returns false if no field was found with that name
210
- */
211
- removeField(id: string): boolean;
212
- /**
213
- * Get the interface function with the specified name
214
- */
215
- getFunction(name: string): SGInterfaceFunction;
216
- /**
217
- * Add or replace a function on the interface
218
- */
219
- setFunction(name: string): SGInterfaceFunction;
220
- /**
221
- * Remove a function from the interface
222
- * @returns true if a function was found and removed. Returns false if no function was found with that name
223
- */
224
- removeFunction(name: string): boolean;
70
+ export declare class SGInterface extends SGTag {
71
+ fields: SGField[];
72
+ functions: SGFunction[];
73
+ constructor(tag?: SGToken, content?: SGTag[], range?: Range);
74
+ getField(id: string): SGField;
75
+ setField(id: string, type: string, onChange?: string, alwaysNotify?: boolean, alias?: string): void;
76
+ getFunction(name: string): SGFunction;
77
+ setFunction(name: string): void;
78
+ protected transpileBody(state: TranspileState): (string | SourceNode)[];
225
79
  }
226
- /**
227
- * The `<component>` element in SceneGraph. Not to be confused about usages of components like `<Rectangle>`, those are considered `SGNode` instances.
228
- */
229
- export declare class SGComponent extends SGElement {
230
- /**
231
- * Get all the <Field> and <Function> elements across all <Interface> nodes in this component
232
- */
233
- get interfaceMembers(): readonly SGInterfaceMember[];
234
- get scriptElements(): readonly SGScript[];
235
- /**
236
- * Get the <interface> element from this component (if present), or undefined if not.
237
- * NOTE: Roku supports and merges multiple <interface> elements in a component, but this
238
- * property points to the FIRST one. If you need to check whether a member exists,
239
- * look through `this.interfaceMemebers` instead.
240
- */
241
- get interfaceElement(): SGInterface | undefined;
242
- /**
243
- * Get the `<children>` element of this component. (not to be confused with the AST `childTags` property).
244
- * If there are multiope `<children>` elements, this function will return the last `<children>` tag because that's what Roku devices do.
245
- */
246
- get childrenElement(): SGChildren;
247
- get customizationElements(): readonly SGCustomization[];
248
- /**
249
- * Specifies the name of the component, that allows you to create the component in your application.
250
- * For example, if the name of the component is `CastMemberInfo`, you could create instances of the component declaratively
251
- * in a child node element of a component `<children>` element (`<CastMemberInfo/>`), or using BrightScript in a `<script>`
252
- * element (`createObject("roSGNode","CastMemberInfo")`).
253
- *
254
- * The name attribute is case-sensitive. You cannot successfully create or declare a component unless the component name exactly
255
- * matches the name attribute, including case. Also be aware that two components with the exact same name in the same application
256
- * components directory will have undefined and generally undesirable results if you attempt to create a component object with that name in the application.
257
- */
80
+ export declare class SGComponent extends SGTag {
81
+ constructor(tag?: SGToken, attributes?: SGAttribute[], content?: SGTag[], range?: Range);
82
+ api: SGInterface;
83
+ scripts: SGScript[];
84
+ children: SGChildren;
85
+ customizations: SGNode[];
258
86
  get name(): string;
259
87
  set name(value: string);
260
- /**
261
- * Specifies the name of the built-in or extended SceneGraph scene or node class whose functionality is extended by this component.
262
- *
263
- * For example, `extends="Group"` specifies that the component has all of the functionality of the Group node class (it can have child nodes, has translation/scale/rotation fields, and so forth).
264
- *
265
- * By default, a component extends the Group node class.
266
- */
267
88
  get extends(): string;
268
89
  set extends(value: string);
269
- /**
270
- * Specifies the ID of a node declared in the XML file to have the initial remote control focus when the component is instantiated.
271
- */
272
- get initialFocus(): string;
273
- set initialFocus(value: string);
274
- /**
275
- * Specifies the version of the SceneGraph API. The default is 1.0 if not specified.
276
- */
277
- get version(): string;
278
- set version(value: string);
279
- /**
280
- * Does the specified field exist in the component interface?
281
- */
282
- hasInterfaceField(id: string): boolean;
283
- /**
284
- * Does the specified function exist in the component interface?
285
- */
286
- hasInterfaceFunction(name: string): boolean;
287
- /**
288
- * Get an interface field with the specified name
289
- */
290
- getInterfaceField(name: string): SGInterfaceField | undefined;
291
- /**
292
- * Return the first SGInterface node found, or insert a new one then return it
293
- */
294
- private ensureInterfaceNode;
295
- /**
296
- * Create or update a <field> interface element.
297
- * This will create a new `<interface>` element if there are none on the component already
298
- */
299
- setInterfaceField(id: string, type: string, onChange?: string, alwaysNotify?: boolean, alias?: string): SGInterfaceField;
300
- /**
301
- * Create or update a <function> interface element.
302
- * This will create a new `<interface>` element if there are none on the component already
303
- */
304
- setInterfaceFunction(name: string): SGInterfaceFunction;
305
- /**
306
- * Remove an interface field.
307
- * @returns true if a field was found and removed. Returns false if no field was found with that name
308
- */
309
- removeInterfaceField(id: string): boolean;
310
- /**
311
- * Get an interface field with the specified name
312
- */
313
- getInterfaceFunction(name: string): SGInterfaceFunction | undefined;
314
- /**
315
- * Remove an interface function.
316
- * @returns true if a function was found and removed. Returns false if no function was found with that name
317
- */
318
- removeInterfaceFunction(name: string): boolean;
90
+ protected transpileBody(state: TranspileState): (string | SourceNode)[];
319
91
  }
320
92
  export interface SGReferences {
321
93
  name?: SGToken;
322
94
  extends?: SGToken;
323
- scriptTagImports: Pick<FileReference, 'destPath' | 'text' | 'filePathRange'>[];
95
+ scriptTagImports: Pick<FileReference, 'pkgPath' | 'text' | 'filePathRange'>[];
324
96
  }
325
97
  export declare class SGAst {
326
- prologElement?: SGProlog;
327
- rootElement?: SGElement;
328
- componentElement?: SGComponent;
329
- constructor(prologElement?: SGProlog, rootElement?: SGElement, componentElement?: SGComponent);
330
- transpile(state: TranspileState): SourceNode;
98
+ prolog?: SGProlog;
99
+ root?: SGTag;
100
+ component?: SGComponent;
101
+ constructor(prolog?: SGProlog, root?: SGTag, component?: SGComponent);
102
+ transpile(state: TranspileState): TranspileResult;
331
103
  }