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.
Files changed (652) hide show
  1. package/README.md +79 -138
  2. package/bsconfig.schema.json +196 -5
  3. package/dist/ActionPipeline.d.ts +10 -0
  4. package/dist/ActionPipeline.js +40 -0
  5. package/dist/ActionPipeline.js.map +1 -0
  6. package/dist/AstValidationSegmenter.d.ts +45 -0
  7. package/dist/AstValidationSegmenter.js +322 -0
  8. package/dist/AstValidationSegmenter.js.map +1 -0
  9. package/dist/BsConfig.d.ts +161 -43
  10. package/dist/BusyStatusTracker.d.ts +61 -0
  11. package/dist/BusyStatusTracker.js +148 -0
  12. package/dist/BusyStatusTracker.js.map +1 -0
  13. package/dist/Cache.d.ts +3 -8
  14. package/dist/Cache.js +9 -14
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +7 -0
  17. package/dist/CacheVerifier.js +20 -0
  18. package/dist/CacheVerifier.js.map +1 -0
  19. package/dist/CodeActionUtil.d.ts +29 -4
  20. package/dist/CodeActionUtil.js +22 -5
  21. package/dist/CodeActionUtil.js.map +1 -1
  22. package/dist/CommentFlagProcessor.d.ts +20 -15
  23. package/dist/CommentFlagProcessor.js +143 -58
  24. package/dist/CommentFlagProcessor.js.map +1 -1
  25. package/dist/CrossScopeValidator.d.ts +68 -0
  26. package/dist/CrossScopeValidator.js +650 -0
  27. package/dist/CrossScopeValidator.js.map +1 -0
  28. package/dist/DependencyGraph.d.ts +8 -3
  29. package/dist/DependencyGraph.js +49 -16
  30. package/dist/DependencyGraph.js.map +1 -1
  31. package/dist/DiagnosticCollection.d.ts +21 -5
  32. package/dist/DiagnosticCollection.js +77 -24
  33. package/dist/DiagnosticCollection.js.map +1 -1
  34. package/dist/DiagnosticFilterer.d.ts +27 -6
  35. package/dist/DiagnosticFilterer.js +273 -60
  36. package/dist/DiagnosticFilterer.js.map +1 -1
  37. package/dist/DiagnosticManager.d.ts +83 -0
  38. package/dist/DiagnosticManager.js +422 -0
  39. package/dist/DiagnosticManager.js.map +1 -0
  40. package/dist/DiagnosticMessages.d.ts +602 -196
  41. package/dist/DiagnosticMessages.js +926 -342
  42. package/dist/DiagnosticMessages.js.map +1 -1
  43. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  44. package/dist/DiagnosticSeverityAdjuster.js +45 -0
  45. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  46. package/dist/FunctionScope.d.ts +28 -0
  47. package/dist/FunctionScope.js +52 -0
  48. package/dist/FunctionScope.js.map +1 -0
  49. package/dist/KeyedThrottler.d.ts +3 -3
  50. package/dist/KeyedThrottler.js +3 -3
  51. package/dist/KeyedThrottler.js.map +1 -1
  52. package/dist/LanguageServer.d.ts +136 -104
  53. package/dist/LanguageServer.js +577 -741
  54. package/dist/LanguageServer.js.map +1 -1
  55. package/dist/Logger.d.ts +17 -13
  56. package/dist/Logger.js +64 -34
  57. package/dist/Logger.js.map +1 -1
  58. package/dist/PluginInterface.d.ts +32 -10
  59. package/dist/PluginInterface.js +117 -7
  60. package/dist/PluginInterface.js.map +1 -1
  61. package/dist/Program.d.ts +302 -98
  62. package/dist/Program.js +1613 -726
  63. package/dist/Program.js.map +1 -1
  64. package/dist/ProgramBuilder.d.ts +39 -22
  65. package/dist/ProgramBuilder.js +245 -179
  66. package/dist/ProgramBuilder.js.map +1 -1
  67. package/dist/Scope.d.ts +227 -106
  68. package/dist/Scope.js +609 -557
  69. package/dist/Scope.js.map +1 -1
  70. package/dist/ScopeNamespaceLookup.d.ts +73 -0
  71. package/dist/ScopeNamespaceLookup.js +242 -0
  72. package/dist/ScopeNamespaceLookup.js.map +1 -0
  73. package/dist/SemanticTokenUtils.js +5 -1
  74. package/dist/SemanticTokenUtils.js.map +1 -1
  75. package/dist/Stopwatch.d.ts +4 -0
  76. package/dist/Stopwatch.js +8 -1
  77. package/dist/Stopwatch.js.map +1 -1
  78. package/dist/SymbolTable.d.ts +145 -26
  79. package/dist/SymbolTable.js +575 -64
  80. package/dist/SymbolTable.js.map +1 -1
  81. package/dist/SymbolTypeFlag.d.ts +9 -0
  82. package/dist/SymbolTypeFlag.js +14 -0
  83. package/dist/SymbolTypeFlag.js.map +1 -0
  84. package/dist/Throttler.d.ts +12 -0
  85. package/dist/Throttler.js +39 -0
  86. package/dist/Throttler.js.map +1 -1
  87. package/dist/Watcher.d.ts +0 -3
  88. package/dist/Watcher.js +0 -3
  89. package/dist/Watcher.js.map +1 -1
  90. package/dist/XmlScope.d.ts +5 -15
  91. package/dist/XmlScope.js +34 -90
  92. package/dist/XmlScope.js.map +1 -1
  93. package/dist/astUtils/CachedLookups.d.ts +50 -0
  94. package/dist/astUtils/CachedLookups.js +337 -0
  95. package/dist/astUtils/CachedLookups.js.map +1 -0
  96. package/dist/astUtils/Editor.d.ts +69 -0
  97. package/dist/astUtils/Editor.js +245 -0
  98. package/dist/astUtils/Editor.js.map +1 -0
  99. package/dist/astUtils/creators.d.ts +54 -19
  100. package/dist/astUtils/creators.js +242 -42
  101. package/dist/astUtils/creators.js.map +1 -1
  102. package/dist/astUtils/reflection.d.ts +199 -85
  103. package/dist/astUtils/reflection.js +518 -145
  104. package/dist/astUtils/reflection.js.map +1 -1
  105. package/dist/astUtils/stackedVisitor.js.map +1 -1
  106. package/dist/astUtils/visitors.d.ts +117 -53
  107. package/dist/astUtils/visitors.js +95 -15
  108. package/dist/astUtils/visitors.js.map +1 -1
  109. package/dist/astUtils/xml.d.ts +9 -8
  110. package/dist/astUtils/xml.js +12 -7
  111. package/dist/astUtils/xml.js.map +1 -1
  112. package/dist/bscPlugin/BscPlugin.d.ts +26 -4
  113. package/dist/bscPlugin/BscPlugin.js +96 -4
  114. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  115. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  116. package/dist/bscPlugin/CallExpressionInfo.js +142 -0
  117. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  118. package/dist/bscPlugin/FileWriter.d.ts +19 -0
  119. package/dist/bscPlugin/FileWriter.js +79 -0
  120. package/dist/bscPlugin/FileWriter.js.map +1 -0
  121. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  122. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  123. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  124. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +109 -7
  125. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +676 -26
  126. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  127. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.d.ts +17 -0
  128. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js +66 -0
  129. package/dist/bscPlugin/codeActions/FixAllCodeActionsProcessor.js.map +1 -0
  130. package/dist/bscPlugin/codeActions/codeActionHelpers.d.ts +18 -0
  131. package/dist/bscPlugin/codeActions/codeActionHelpers.js +31 -0
  132. package/dist/bscPlugin/codeActions/codeActionHelpers.js.map +1 -0
  133. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
  134. package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
  135. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  136. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  137. package/dist/bscPlugin/definition/DefinitionProvider.js +220 -0
  138. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  139. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  140. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  141. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  142. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  143. package/dist/bscPlugin/hover/HoverProcessor.js +238 -0
  144. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  145. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  146. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  147. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  148. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.d.ts +7 -0
  149. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js +77 -0
  150. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.js.map +1 -0
  151. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  152. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
  153. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  154. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  155. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  156. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  157. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  158. package/dist/bscPlugin/serialize/FileSerializer.js +80 -0
  159. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  160. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  161. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  162. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  163. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  164. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  165. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  166. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  167. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  168. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  169. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +34 -0
  170. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +504 -0
  171. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  172. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  173. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  174. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  175. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  176. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  177. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  178. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +51 -0
  179. package/dist/bscPlugin/validation/BrsFileValidator.js +714 -0
  180. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  181. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  182. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  183. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  184. package/dist/bscPlugin/validation/ScopeValidator.d.ts +158 -0
  185. package/dist/bscPlugin/validation/ScopeValidator.js +1481 -0
  186. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  187. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  188. package/dist/bscPlugin/validation/XmlFileValidator.js +50 -0
  189. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  190. package/dist/cli.js +140 -28
  191. package/dist/cli.js.map +1 -1
  192. package/dist/common/Sequencer.d.ts +53 -0
  193. package/dist/common/Sequencer.js +233 -0
  194. package/dist/common/Sequencer.js.map +1 -0
  195. package/dist/deferred.d.ts +5 -3
  196. package/dist/deferred.js +10 -0
  197. package/dist/deferred.js.map +1 -1
  198. package/dist/diagnosticUtils.d.ts +61 -4
  199. package/dist/diagnosticUtils.js +285 -25
  200. package/dist/diagnosticUtils.js.map +1 -1
  201. package/dist/examples/plugins/removePrint.d.ts +2 -2
  202. package/dist/examples/plugins/removePrint.js +8 -12
  203. package/dist/examples/plugins/removePrint.js.map +1 -1
  204. package/dist/files/AssetFile.d.ts +24 -0
  205. package/dist/files/AssetFile.js +25 -0
  206. package/dist/files/AssetFile.js.map +1 -0
  207. package/dist/files/BrsFile.d.ts +161 -87
  208. package/dist/files/BrsFile.js +919 -936
  209. package/dist/files/BrsFile.js.map +1 -1
  210. package/dist/files/BscFile.d.ts +102 -0
  211. package/dist/files/BscFile.js +15 -0
  212. package/dist/files/BscFile.js.map +1 -0
  213. package/dist/files/Factory.d.ts +25 -0
  214. package/dist/files/Factory.js +22 -0
  215. package/dist/files/Factory.js.map +1 -0
  216. package/dist/files/LazyFileData.d.ts +21 -0
  217. package/dist/files/LazyFileData.js +54 -0
  218. package/dist/files/LazyFileData.js.map +1 -0
  219. package/dist/files/XmlFile.d.ts +80 -41
  220. package/dist/files/XmlFile.js +162 -137
  221. package/dist/files/XmlFile.js.map +1 -1
  222. package/dist/globalCallables.d.ts +3 -1
  223. package/dist/globalCallables.js +424 -184
  224. package/dist/globalCallables.js.map +1 -1
  225. package/dist/index.d.ts +32 -4
  226. package/dist/index.js +54 -7
  227. package/dist/index.js.map +1 -1
  228. package/dist/interfaces.d.ts +987 -125
  229. package/dist/interfaces.js +21 -0
  230. package/dist/interfaces.js.map +1 -1
  231. package/dist/lexer/Lexer.d.ts +51 -12
  232. package/dist/lexer/Lexer.js +214 -65
  233. package/dist/lexer/Lexer.js.map +1 -1
  234. package/dist/lexer/Token.d.ts +27 -11
  235. package/dist/lexer/Token.js +10 -2
  236. package/dist/lexer/Token.js.map +1 -1
  237. package/dist/lexer/TokenKind.d.ts +48 -2
  238. package/dist/lexer/TokenKind.js +167 -10
  239. package/dist/lexer/TokenKind.js.map +1 -1
  240. package/dist/logging.d.ts +14 -0
  241. package/dist/logging.js +29 -0
  242. package/dist/logging.js.map +1 -0
  243. package/dist/lsp/ActionQueue.d.ts +35 -0
  244. package/dist/lsp/ActionQueue.js +115 -0
  245. package/dist/lsp/ActionQueue.js.map +1 -0
  246. package/dist/lsp/DocumentManager.d.ts +63 -0
  247. package/dist/lsp/DocumentManager.js +122 -0
  248. package/dist/lsp/DocumentManager.js.map +1 -0
  249. package/dist/lsp/LspProject.d.ts +287 -0
  250. package/dist/lsp/LspProject.js +3 -0
  251. package/dist/lsp/LspProject.js.map +1 -0
  252. package/dist/lsp/PathFilterer.d.ts +75 -0
  253. package/dist/lsp/PathFilterer.js +196 -0
  254. package/dist/lsp/PathFilterer.js.map +1 -0
  255. package/dist/lsp/Project.d.ts +200 -0
  256. package/dist/lsp/Project.js +562 -0
  257. package/dist/lsp/Project.js.map +1 -0
  258. package/dist/lsp/ProjectManager.d.ts +288 -0
  259. package/dist/lsp/ProjectManager.js +967 -0
  260. package/dist/lsp/ProjectManager.js.map +1 -0
  261. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  262. package/dist/lsp/ReaderWriterManager.js +60 -0
  263. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  264. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  265. package/dist/lsp/worker/MessageHandler.js +138 -0
  266. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  267. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  268. package/dist/lsp/worker/WorkerPool.js +78 -0
  269. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  270. package/dist/lsp/worker/WorkerThreadProject.d.ts +168 -0
  271. package/dist/lsp/worker/WorkerThreadProject.js +205 -0
  272. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  273. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  274. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  275. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  276. package/dist/lsp/worker/run.js +14 -0
  277. package/dist/lsp/worker/run.js.map +1 -0
  278. package/dist/parser/AstNode.d.ts +205 -0
  279. package/dist/parser/AstNode.js +305 -0
  280. package/dist/parser/AstNode.js.map +1 -0
  281. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  282. package/dist/parser/BrightScriptDocParser.js +294 -0
  283. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  284. package/dist/parser/BrsTranspileState.d.ts +22 -3
  285. package/dist/parser/BrsTranspileState.js +19 -0
  286. package/dist/parser/BrsTranspileState.js.map +1 -1
  287. package/dist/parser/Expression.d.ts +601 -220
  288. package/dist/parser/Expression.js +1516 -502
  289. package/dist/parser/Expression.js.map +1 -1
  290. package/dist/parser/Parser.d.ts +137 -121
  291. package/dist/parser/Parser.js +1808 -982
  292. package/dist/parser/Parser.js.map +1 -1
  293. package/dist/parser/SGParser.d.ts +30 -13
  294. package/dist/parser/SGParser.js +94 -56
  295. package/dist/parser/SGParser.js.map +1 -1
  296. package/dist/parser/SGTypes.d.ts +134 -46
  297. package/dist/parser/SGTypes.js +206 -115
  298. package/dist/parser/SGTypes.js.map +1 -1
  299. package/dist/parser/Statement.d.ts +854 -267
  300. package/dist/parser/Statement.js +2416 -621
  301. package/dist/parser/Statement.js.map +1 -1
  302. package/dist/parser/TranspileState.d.ts +30 -14
  303. package/dist/parser/TranspileState.js +124 -27
  304. package/dist/parser/TranspileState.js.map +1 -1
  305. package/dist/preprocessor/Manifest.d.ts +6 -6
  306. package/dist/preprocessor/Manifest.js +17 -38
  307. package/dist/preprocessor/Manifest.js.map +1 -1
  308. package/dist/roku-types/data.json +20554 -0
  309. package/dist/roku-types/index.d.ts +5726 -0
  310. package/dist/roku-types/index.js +11 -0
  311. package/dist/roku-types/index.js.map +1 -0
  312. package/dist/types/ArrayType.d.ts +12 -5
  313. package/dist/types/ArrayType.js +95 -25
  314. package/dist/types/ArrayType.js.map +1 -1
  315. package/dist/types/AssociativeArrayType.d.ts +15 -0
  316. package/dist/types/AssociativeArrayType.js +64 -0
  317. package/dist/types/AssociativeArrayType.js.map +1 -0
  318. package/dist/types/BaseFunctionType.d.ts +10 -0
  319. package/dist/types/BaseFunctionType.js +26 -0
  320. package/dist/types/BaseFunctionType.js.map +1 -0
  321. package/dist/types/BooleanType.d.ts +9 -5
  322. package/dist/types/BooleanType.js +19 -8
  323. package/dist/types/BooleanType.js.map +1 -1
  324. package/dist/types/BscType.d.ts +41 -3
  325. package/dist/types/BscType.js +152 -0
  326. package/dist/types/BscType.js.map +1 -1
  327. package/dist/types/BscTypeKind.d.ts +28 -0
  328. package/dist/types/BscTypeKind.js +33 -0
  329. package/dist/types/BscTypeKind.js.map +1 -0
  330. package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
  331. package/dist/types/BuiltInInterfaceAdder.js +212 -0
  332. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  333. package/dist/types/CallFuncableType.d.ts +24 -0
  334. package/dist/types/CallFuncableType.js +91 -0
  335. package/dist/types/CallFuncableType.js.map +1 -0
  336. package/dist/types/ClassType.d.ts +17 -0
  337. package/dist/types/ClassType.js +63 -0
  338. package/dist/types/ClassType.js.map +1 -0
  339. package/dist/types/ComponentType.d.ts +22 -0
  340. package/dist/types/ComponentType.js +110 -0
  341. package/dist/types/ComponentType.js.map +1 -0
  342. package/dist/types/DoubleType.d.ts +10 -5
  343. package/dist/types/DoubleType.js +21 -17
  344. package/dist/types/DoubleType.js.map +1 -1
  345. package/dist/types/DynamicType.d.ts +13 -5
  346. package/dist/types/DynamicType.js +26 -5
  347. package/dist/types/DynamicType.js.map +1 -1
  348. package/dist/types/EnumType.d.ts +42 -0
  349. package/dist/types/EnumType.js +101 -0
  350. package/dist/types/EnumType.js.map +1 -0
  351. package/dist/types/FloatType.d.ts +10 -5
  352. package/dist/types/FloatType.js +21 -17
  353. package/dist/types/FloatType.js.map +1 -1
  354. package/dist/types/FunctionType.d.ts +8 -22
  355. package/dist/types/FunctionType.js +25 -63
  356. package/dist/types/FunctionType.js.map +1 -1
  357. package/dist/types/InheritableType.d.ts +29 -0
  358. package/dist/types/InheritableType.js +173 -0
  359. package/dist/types/InheritableType.js.map +1 -0
  360. package/dist/types/InlineInterfaceType.d.ts +5 -0
  361. package/dist/types/InlineInterfaceType.js +17 -0
  362. package/dist/types/InlineInterfaceType.js.map +1 -0
  363. package/dist/types/IntegerType.d.ts +10 -5
  364. package/dist/types/IntegerType.js +21 -17
  365. package/dist/types/IntegerType.js.map +1 -1
  366. package/dist/types/InterfaceType.d.ts +14 -6
  367. package/dist/types/InterfaceType.js +30 -15
  368. package/dist/types/InterfaceType.js.map +1 -1
  369. package/dist/types/IntersectionType.d.ts +29 -0
  370. package/dist/types/IntersectionType.js +256 -0
  371. package/dist/types/IntersectionType.js.map +1 -0
  372. package/dist/types/InvalidType.d.ts +10 -5
  373. package/dist/types/InvalidType.js +21 -9
  374. package/dist/types/InvalidType.js.map +1 -1
  375. package/dist/types/LongIntegerType.d.ts +10 -5
  376. package/dist/types/LongIntegerType.js +21 -17
  377. package/dist/types/LongIntegerType.js.map +1 -1
  378. package/dist/types/NamespaceType.d.ts +12 -0
  379. package/dist/types/NamespaceType.js +28 -0
  380. package/dist/types/NamespaceType.js.map +1 -0
  381. package/dist/types/ObjectType.d.ts +12 -5
  382. package/dist/types/ObjectType.js +25 -8
  383. package/dist/types/ObjectType.js.map +1 -1
  384. package/dist/types/ReferenceType.d.ts +123 -0
  385. package/dist/types/ReferenceType.js +726 -0
  386. package/dist/types/ReferenceType.js.map +1 -0
  387. package/dist/types/StringType.d.ts +12 -5
  388. package/dist/types/StringType.js +23 -8
  389. package/dist/types/StringType.js.map +1 -1
  390. package/dist/types/TypeStatementType.d.ts +19 -0
  391. package/dist/types/TypeStatementType.js +56 -0
  392. package/dist/types/TypeStatementType.js.map +1 -0
  393. package/dist/types/TypedFunctionType.d.ts +34 -0
  394. package/dist/types/TypedFunctionType.js +157 -0
  395. package/dist/types/TypedFunctionType.js.map +1 -0
  396. package/dist/types/UninitializedType.d.ts +11 -6
  397. package/dist/types/UninitializedType.js +20 -11
  398. package/dist/types/UninitializedType.js.map +1 -1
  399. package/dist/types/UnionType.d.ts +27 -0
  400. package/dist/types/UnionType.js +196 -0
  401. package/dist/types/UnionType.js.map +1 -0
  402. package/dist/types/VoidType.d.ts +11 -5
  403. package/dist/types/VoidType.js +22 -8
  404. package/dist/types/VoidType.js.map +1 -1
  405. package/dist/types/helpers.d.ts +51 -0
  406. package/dist/types/helpers.js +329 -0
  407. package/dist/types/helpers.js.map +1 -0
  408. package/dist/types/index.d.ts +22 -0
  409. package/dist/types/index.js +39 -0
  410. package/dist/types/index.js.map +1 -0
  411. package/dist/types/roFunctionType.d.ts +11 -0
  412. package/dist/types/roFunctionType.js +37 -0
  413. package/dist/types/roFunctionType.js.map +1 -0
  414. package/dist/util.d.ts +325 -185
  415. package/dist/util.js +2135 -568
  416. package/dist/util.js.map +1 -1
  417. package/dist/validators/ClassValidator.d.ts +9 -15
  418. package/dist/validators/ClassValidator.js +93 -138
  419. package/dist/validators/ClassValidator.js.map +1 -1
  420. package/package.json +183 -138
  421. package/CHANGELOG.md +0 -1188
  422. package/dist/astUtils/creators.spec.js +0 -21
  423. package/dist/astUtils/creators.spec.js.map +0 -1
  424. package/dist/astUtils/index.d.ts +0 -7
  425. package/dist/astUtils/index.js +0 -26
  426. package/dist/astUtils/index.js.map +0 -1
  427. package/dist/astUtils/reflection.spec.d.ts +0 -1
  428. package/dist/astUtils/reflection.spec.js +0 -292
  429. package/dist/astUtils/reflection.spec.js.map +0 -1
  430. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  431. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  432. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  433. package/dist/astUtils/visitors.spec.d.ts +0 -1
  434. package/dist/astUtils/visitors.spec.js +0 -854
  435. package/dist/astUtils/visitors.spec.js.map +0 -1
  436. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  437. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -194
  438. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  439. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  440. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  441. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  442. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +0 -1
  443. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
  444. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  445. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  446. package/dist/files/BrsFile.Class.spec.js +0 -1081
  447. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  448. package/dist/files/BrsFile.spec.d.ts +0 -1
  449. package/dist/files/BrsFile.spec.js +0 -2524
  450. package/dist/files/BrsFile.spec.js.map +0 -1
  451. package/dist/files/XmlFile.spec.d.ts +0 -1
  452. package/dist/files/XmlFile.spec.js +0 -1065
  453. package/dist/files/XmlFile.spec.js.map +0 -1
  454. package/dist/files/tests/imports.spec.d.ts +0 -1
  455. package/dist/files/tests/imports.spec.js +0 -241
  456. package/dist/files/tests/imports.spec.js.map +0 -1
  457. package/dist/lexer/Character.spec.d.ts +0 -1
  458. package/dist/lexer/Character.spec.js +0 -27
  459. package/dist/lexer/Character.spec.js.map +0 -1
  460. package/dist/lexer/Lexer.spec.d.ts +0 -1
  461. package/dist/lexer/Lexer.spec.js +0 -1101
  462. package/dist/lexer/Lexer.spec.js.map +0 -1
  463. package/dist/lexer/index.d.ts +0 -3
  464. package/dist/lexer/index.js +0 -17
  465. package/dist/lexer/index.js.map +0 -1
  466. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  467. package/dist/parser/Parser.Class.spec.js +0 -390
  468. package/dist/parser/Parser.Class.spec.js.map +0 -1
  469. package/dist/parser/Parser.spec.d.ts +0 -4
  470. package/dist/parser/Parser.spec.js +0 -1216
  471. package/dist/parser/Parser.spec.js.map +0 -1
  472. package/dist/parser/SGParser.spec.d.ts +0 -1
  473. package/dist/parser/SGParser.spec.js +0 -145
  474. package/dist/parser/SGParser.spec.js.map +0 -1
  475. package/dist/parser/SGTypes.spec.d.ts +0 -1
  476. package/dist/parser/SGTypes.spec.js +0 -351
  477. package/dist/parser/SGTypes.spec.js.map +0 -1
  478. package/dist/parser/Statement.spec.d.ts +0 -1
  479. package/dist/parser/Statement.spec.js +0 -94
  480. package/dist/parser/Statement.spec.js.map +0 -1
  481. package/dist/parser/index.d.ts +0 -3
  482. package/dist/parser/index.js +0 -16
  483. package/dist/parser/index.js.map +0 -1
  484. package/dist/parser/tests/Parser.spec.d.ts +0 -18
  485. package/dist/parser/tests/Parser.spec.js +0 -35
  486. package/dist/parser/tests/Parser.spec.js.map +0 -1
  487. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  488. package/dist/parser/tests/controlFlow/For.spec.js +0 -161
  489. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  490. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  491. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
  492. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  493. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  494. package/dist/parser/tests/controlFlow/If.spec.js +0 -551
  495. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  496. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  497. package/dist/parser/tests/controlFlow/While.spec.js +0 -107
  498. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  499. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  500. package/dist/parser/tests/expression/Additive.spec.js +0 -99
  501. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  502. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  503. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -254
  504. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  505. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  506. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -266
  507. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  508. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  509. package/dist/parser/tests/expression/Boolean.spec.js +0 -83
  510. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  511. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  512. package/dist/parser/tests/expression/Call.spec.js +0 -134
  513. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  514. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  515. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  516. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  517. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  518. package/dist/parser/tests/expression/Function.spec.js +0 -403
  519. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  520. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  521. package/dist/parser/tests/expression/Indexing.spec.js +0 -219
  522. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  523. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  524. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  525. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  526. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  527. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -201
  528. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  529. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  530. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
  531. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  532. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  533. package/dist/parser/tests/expression/Primary.spec.js +0 -149
  534. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  535. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  536. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  537. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  538. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  539. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  540. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  541. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  542. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -202
  543. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  544. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  545. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -323
  546. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  547. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  548. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  549. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  550. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  551. package/dist/parser/tests/statement/Declaration.spec.js +0 -108
  552. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  553. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  554. package/dist/parser/tests/statement/Dim.spec.js +0 -73
  555. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  556. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  557. package/dist/parser/tests/statement/Function.spec.js +0 -332
  558. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  559. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  560. package/dist/parser/tests/statement/Goto.spec.js +0 -50
  561. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  562. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  563. package/dist/parser/tests/statement/Increment.spec.js +0 -117
  564. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  565. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  566. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  567. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  568. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  569. package/dist/parser/tests/statement/Misc.spec.js +0 -333
  570. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  571. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  572. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -181
  573. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  574. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  575. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
  576. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  577. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  578. package/dist/parser/tests/statement/Set.spec.js +0 -218
  579. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  580. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  581. package/dist/parser/tests/statement/Stop.spec.js +0 -37
  582. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  583. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  584. package/dist/parser/tests/statement/Throw.spec.js +0 -35
  585. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  586. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  587. package/dist/parser/tests/statement/TryCatch.spec.js +0 -140
  588. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  589. package/dist/preprocessor/Chunk.d.ts +0 -82
  590. package/dist/preprocessor/Chunk.js +0 -77
  591. package/dist/preprocessor/Chunk.js.map +0 -1
  592. package/dist/preprocessor/Manifest.spec.d.ts +0 -0
  593. package/dist/preprocessor/Manifest.spec.js +0 -105
  594. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  595. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  596. package/dist/preprocessor/Preprocessor.js +0 -156
  597. package/dist/preprocessor/Preprocessor.js.map +0 -1
  598. package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
  599. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  600. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  601. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  602. package/dist/preprocessor/PreprocessorParser.js +0 -194
  603. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  604. package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
  605. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  606. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  607. package/dist/preprocessor/index.d.ts +0 -3
  608. package/dist/preprocessor/index.js +0 -16
  609. package/dist/preprocessor/index.js.map +0 -1
  610. package/dist/types/ArrayType.spec.d.ts +0 -1
  611. package/dist/types/ArrayType.spec.js +0 -30
  612. package/dist/types/ArrayType.spec.js.map +0 -1
  613. package/dist/types/BooleanType.spec.d.ts +0 -1
  614. package/dist/types/BooleanType.spec.js +0 -12
  615. package/dist/types/BooleanType.spec.js.map +0 -1
  616. package/dist/types/CustomType.d.ts +0 -10
  617. package/dist/types/CustomType.js +0 -35
  618. package/dist/types/CustomType.js.map +0 -1
  619. package/dist/types/DoubleType.spec.d.ts +0 -1
  620. package/dist/types/DoubleType.spec.js +0 -12
  621. package/dist/types/DoubleType.spec.js.map +0 -1
  622. package/dist/types/DynamicType.spec.d.ts +0 -1
  623. package/dist/types/DynamicType.spec.js +0 -12
  624. package/dist/types/DynamicType.spec.js.map +0 -1
  625. package/dist/types/FloatType.spec.d.ts +0 -1
  626. package/dist/types/FloatType.spec.js +0 -12
  627. package/dist/types/FloatType.spec.js.map +0 -1
  628. package/dist/types/FunctionType.spec.d.ts +0 -1
  629. package/dist/types/FunctionType.spec.js +0 -29
  630. package/dist/types/FunctionType.spec.js.map +0 -1
  631. package/dist/types/IntegerType.spec.d.ts +0 -1
  632. package/dist/types/IntegerType.spec.js +0 -12
  633. package/dist/types/IntegerType.spec.js.map +0 -1
  634. package/dist/types/InvalidType.spec.d.ts +0 -1
  635. package/dist/types/InvalidType.spec.js +0 -12
  636. package/dist/types/InvalidType.spec.js.map +0 -1
  637. package/dist/types/LazyType.d.ts +0 -15
  638. package/dist/types/LazyType.js +0 -32
  639. package/dist/types/LazyType.js.map +0 -1
  640. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  641. package/dist/types/LongIntegerType.spec.js +0 -12
  642. package/dist/types/LongIntegerType.spec.js.map +0 -1
  643. package/dist/types/ObjectType.spec.d.ts +0 -1
  644. package/dist/types/ObjectType.spec.js +0 -12
  645. package/dist/types/ObjectType.spec.js.map +0 -1
  646. package/dist/types/StringType.spec.d.ts +0 -1
  647. package/dist/types/StringType.spec.js +0 -12
  648. package/dist/types/StringType.spec.js.map +0 -1
  649. package/dist/types/VoidType.spec.d.ts +0 -1
  650. package/dist/types/VoidType.spec.js +0 -12
  651. package/dist/types/VoidType.spec.js.map +0 -1
  652. /package/dist/{astUtils/creators.spec.d.ts → lsp/worker/run.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rangeFromTokenValue = void 0;
3
4
  const parser = require("@xml-tools/parser");
4
5
  const DiagnosticMessages_1 = require("../DiagnosticMessages");
5
6
  const util_1 = require("../util");
@@ -37,43 +38,52 @@ class SGParser {
37
38
  * Walk the AST to extract references to useful bits of information
38
39
  */
39
40
  findReferences() {
41
+ var _a;
40
42
  this._references = this.emptySGReferences();
41
- const { component } = this.ast;
42
- if (!component) {
43
+ const { componentElement } = this.ast;
44
+ if (!componentElement) {
43
45
  return;
44
46
  }
45
- const nameAttr = component.getAttribute('name');
47
+ const nameAttr = componentElement.getAttribute('name');
46
48
  this._references.name = nameAttr === null || nameAttr === void 0 ? void 0 : nameAttr.tokens.value;
47
- const extendsAttr = component.getAttribute('extends');
49
+ const extendsAttr = componentElement.getAttribute('extends');
48
50
  if (extendsAttr === null || extendsAttr === void 0 ? void 0 : extendsAttr.tokens.value) {
49
51
  this._references.extends = extendsAttr.tokens.value;
50
52
  }
51
- for (const script of component.scripts) {
53
+ for (const script of componentElement.scriptElements) {
52
54
  const uriAttr = script.getAttribute('uri');
53
55
  if (uriAttr === null || uriAttr === void 0 ? void 0 : uriAttr.tokens.value) {
54
56
  const uri = uriAttr.tokens.value.text;
55
57
  this._references.scriptTagImports.push({
56
- filePathRange: uriAttr.tokens.value.range,
58
+ filePathRange: (_a = uriAttr.tokens.value.location) === null || _a === void 0 ? void 0 : _a.range,
57
59
  text: uri,
58
- pkgPath: util_1.default.getPkgPathFromTarget(this.pkgPath, uri)
60
+ destPath: util_1.default.getPkgPathFromTarget(this.options.destPath, uri)
59
61
  });
60
62
  }
61
63
  }
62
64
  }
63
- parse(pkgPath, fileContents) {
64
- this.pkgPath = pkgPath;
65
+ sanitizeParseOptions(options) {
66
+ var _a;
67
+ options !== null && options !== void 0 ? options : (options = {
68
+ destPath: undefined
69
+ });
70
+ (_a = options.trackLocations) !== null && _a !== void 0 ? _a : (options.trackLocations = true);
71
+ return options;
72
+ }
73
+ parse(fileContents, options) {
74
+ this.options = this.sanitizeParseOptions(options);
65
75
  this.diagnostics = [];
66
76
  const { cst, tokenVector, lexErrors, parseErrors } = parser.parse(fileContents);
67
77
  this.tokens = tokenVector;
68
78
  if (lexErrors.length) {
69
79
  for (const err of lexErrors) {
70
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError(`Syntax error: ${err.message}`)), { range: util_1.default.createRange(err.line - 1, err.column, err.line - 1, err.column + err.length) }));
80
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.syntaxError(`Syntax error: ${err.message}`)), { location: this.getLocationFromRange(util_1.default.createRange(err.line - 1, err.column, err.line - 1, err.column + err.length)) }));
71
81
  }
72
82
  }
73
83
  if (parseErrors.length) {
74
84
  const err = parseErrors[0];
75
85
  const token = err.token;
76
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError(`Syntax error: ${err.message}`)), { range: !isNaN(token.startLine) ? this.rangeFromToken(token) : util_1.default.createRange(0, 0, 0, Number.MAX_VALUE) }));
86
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.syntaxError(`Syntax error: ${err.message}`)), { location: this.getLocationFromRange(!isNaN(token.startLine) ? this.rangeFromToken(token) : util_1.default.createRange(0, 0, 0, Number.MAX_VALUE)) }));
77
87
  }
78
88
  const { prolog, root } = this.buildAST(cst);
79
89
  if (!root) {
@@ -82,18 +92,18 @@ class SGParser {
82
92
  //whitespace before the prolog isn't allowed by the parser
83
93
  if ((token1 === null || token1 === void 0 ? void 0 : token1.image.trim().length) === 0 &&
84
94
  (token2 === null || token2 === void 0 ? void 0 : token2.image.trim()) === '<?xml') {
85
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('Syntax error: whitespace found before the XML prolog')), { range: this.rangeFromToken(token1) }));
95
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.syntaxError('Syntax error: whitespace found before the XML prolog')), { location: this.getLocationFromRange(this.rangeFromToken(token1)) }));
86
96
  }
87
97
  }
88
- if (xml_1.isSGComponent(root)) {
89
- this.ast = new SGTypes_1.SGAst(prolog, root, root);
98
+ if ((0, xml_1.isSGComponent)(root)) {
99
+ this.ast = new SGTypes_1.SGAst({ prologElement: prolog, rootElement: root, componentElement: root });
90
100
  }
91
101
  else {
92
102
  if (root) {
93
103
  //error: not a component
94
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag(root.tokens.startTagName.text)), { range: root.tokens.startTagName.range }));
104
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag(root.tokens.startTagName.text)), { location: root.tokens.startTagName.location }));
95
105
  }
96
- this.ast = new SGTypes_1.SGAst(prolog, root);
106
+ this.ast = new SGTypes_1.SGAst({ prologElement: prolog, rootElement: root });
97
107
  }
98
108
  }
99
109
  buildAST(cst) {
@@ -102,13 +112,15 @@ class SGParser {
102
112
  let prolog;
103
113
  if (cstProlog === null || cstProlog === void 0 ? void 0 : cstProlog[0]) {
104
114
  const ctx = cstProlog[0].children;
105
- prolog = new SGTypes_1.SGProlog(
106
- // <?
107
- this.createPartialToken(ctx.XMLDeclOpen[0], 0, 2),
108
- // xml
109
- this.createPartialToken(ctx.XMLDeclOpen[0], 2, 3), this.mapAttributes(ctx.attribute),
110
- // ?>
111
- this.mapToken(ctx.SPECIAL_CLOSE[0]));
115
+ prolog = new SGTypes_1.SGProlog({
116
+ // <?
117
+ startTagOpen: this.createPartialToken(ctx.XMLDeclOpen[0], 0, 2),
118
+ // xml
119
+ startTagName: this.createPartialToken(ctx.XMLDeclOpen[0], 2, 3),
120
+ attributes: this.mapAttributes(ctx.attribute),
121
+ // ?>
122
+ startTagClose: this.mapToken(ctx.SPECIAL_CLOSE[0])
123
+ });
112
124
  }
113
125
  let root;
114
126
  if (element.length > 0 && ((_b = (_a = element[0]) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.Name)) {
@@ -129,54 +141,66 @@ class SGParser {
129
141
  const endTagName = this.mapToken((_d = children.END_NAME) === null || _d === void 0 ? void 0 : _d[0]);
130
142
  const endTagClose = this.mapToken((_e = children.END) === null || _e === void 0 ? void 0 : _e[0]);
131
143
  const content = (_f = children.content) === null || _f === void 0 ? void 0 : _f[0];
132
- let childrenContent;
144
+ let constructorOptions = {
145
+ startTagOpen: startTagOpen,
146
+ startTagName: startTagName,
147
+ attributes: attributes,
148
+ startTagClose: startTagClose,
149
+ elements: [],
150
+ endTagOpen: endTagOpen,
151
+ endTagName: endTagName,
152
+ endTagClose: endTagClose
153
+ };
133
154
  switch (startTagName.text) {
134
155
  case 'component':
135
- childrenContent = this.mapElements(content, ['interface', 'script', 'children']);
136
- return new SGTypes_1.SGComponent(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
156
+ constructorOptions.elements = this.mapElements(content, ['interface', 'script', 'children', 'customization']);
157
+ return new SGTypes_1.SGComponent(constructorOptions);
137
158
  case 'interface':
138
- childrenContent = this.mapElements(content, ['field', 'function']);
139
- return new SGTypes_1.SGInterface(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
159
+ constructorOptions.elements = this.mapElements(content, ['field', 'function']);
160
+ return new SGTypes_1.SGInterface(constructorOptions);
140
161
  case 'field':
141
162
  if (this.hasElements(content)) {
142
- this.diagnostics.push(Object.assign({ range: startTagName.range }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
163
+ this.diagnostics.push(Object.assign({ location: startTagName.location }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
143
164
  }
144
- return new SGTypes_1.SGInterfaceField(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
165
+ return new SGTypes_1.SGInterfaceField(constructorOptions);
145
166
  case 'function':
146
167
  if (this.hasElements(content)) {
147
- this.diagnostics.push(Object.assign({ range: startTagName.range }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
168
+ this.diagnostics.push(Object.assign({ location: startTagName.location }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
148
169
  }
149
- return new SGTypes_1.SGInterfaceFunction(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
170
+ return new SGTypes_1.SGInterfaceFunction(constructorOptions);
150
171
  case 'script':
151
172
  if (this.hasElements(content)) {
152
- this.diagnostics.push(Object.assign({ range: startTagName.range }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
173
+ this.diagnostics.push(Object.assign({ location: startTagName.location }, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedChildren(startTagName.text)));
153
174
  }
154
- const script = new SGTypes_1.SGScript(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
175
+ const script = new SGTypes_1.SGScript(constructorOptions);
155
176
  script.cdata = this.getCdata(content);
156
177
  return script;
157
178
  case 'children':
158
- childrenContent = this.mapNodes(content);
159
- return new SGTypes_1.SGChildren(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
179
+ constructorOptions.elements = this.mapNodes(content);
180
+ return new SGTypes_1.SGChildren(constructorOptions);
160
181
  default:
161
- childrenContent = this.mapNodes(content);
162
- return new SGTypes_1.SGNode(startTagOpen, startTagName, attributes, startTagClose, childrenContent, endTagOpen, endTagName, endTagClose);
182
+ constructorOptions.elements = this.mapNodes(content);
183
+ return new SGTypes_1.SGNode(constructorOptions);
163
184
  }
164
185
  }
165
186
  mapNode({ children }) {
166
- var _a, _b, _c, _d, _e;
167
- return new SGTypes_1.SGNode(
168
- //<
169
- this.mapToken(children.OPEN[0]),
170
- // TagName
171
- this.mapToken(children.Name[0]), this.mapAttributes(children.attribute),
172
- // > or />
173
- this.mapToken(((_a = children.SLASH_CLOSE) !== null && _a !== void 0 ? _a : children.START_CLOSE)[0]), this.mapNodes((_b = children.content) === null || _b === void 0 ? void 0 : _b[0]),
174
- // </
175
- this.mapToken((_c = children.SLASH_OPEN) === null || _c === void 0 ? void 0 : _c[0]),
176
- // TagName
177
- this.mapToken((_d = children.END_NAME) === null || _d === void 0 ? void 0 : _d[0]),
178
- // >
179
- this.mapToken((_e = children.END) === null || _e === void 0 ? void 0 : _e[0]));
187
+ var _a, _b, _c, _d, _e, _f;
188
+ return new SGTypes_1.SGNode({
189
+ //<
190
+ startTagOpen: this.mapToken(children.OPEN[0]),
191
+ // TagName
192
+ startTagName: this.mapToken(children.Name[0]),
193
+ attributes: this.mapAttributes(children.attribute),
194
+ // > or />
195
+ startTagClose: this.mapToken((_b = ((_a = children.SLASH_CLOSE) !== null && _a !== void 0 ? _a : children.START_CLOSE)) === null || _b === void 0 ? void 0 : _b[0]),
196
+ elements: this.mapNodes((_c = children.content) === null || _c === void 0 ? void 0 : _c[0]),
197
+ // </
198
+ endTagOpen: this.mapToken((_d = children.SLASH_OPEN) === null || _d === void 0 ? void 0 : _d[0]),
199
+ // TagName
200
+ endTagName: this.mapToken((_e = children.END_NAME) === null || _e === void 0 ? void 0 : _e[0]),
201
+ // >
202
+ endTagClose: this.mapToken((_f = children.END) === null || _f === void 0 ? void 0 : _f[0])
203
+ });
180
204
  }
181
205
  mapElements(content, allow) {
182
206
  var _a;
@@ -191,7 +215,7 @@ class SGParser {
191
215
  if (name === null || name === void 0 ? void 0 : name.image) {
192
216
  if (!allow.includes(name.image)) {
193
217
  //unexpected tag
194
- this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag(name.image)), { range: this.rangeFromToken(name) }));
218
+ this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag(name.image)), { location: this.getLocationFromRange(this.rangeFromToken(name)) }));
195
219
  }
196
220
  tags.push(this.mapElement(entry));
197
221
  }
@@ -224,7 +248,8 @@ class SGParser {
224
248
  if (token) {
225
249
  return {
226
250
  text: token.image,
227
- range: this.rangeFromToken(token)
251
+ //TODO should this be coerced into a uri?
252
+ location: util_1.default.createLocationFromRange(this.options.srcPath, this.rangeFromToken(token))
228
253
  };
229
254
  }
230
255
  else {
@@ -238,9 +263,10 @@ class SGParser {
238
263
  // this is a hot function and has been optimized, so don't refactor unless you know what you're doing...
239
264
  const result = [];
240
265
  if (attributes) {
266
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
241
267
  for (let i = 0; i < attributes.length; i++) {
242
268
  const children = attributes[i].children;
243
- const attr = new SGTypes_1.SGAttribute(this.mapToken(children.Name[0]));
269
+ const attr = new SGTypes_1.SGAttribute({ key: this.mapToken(children.Name[0]) });
244
270
  if (children.EQUALS) {
245
271
  attr.tokens.equals = this.mapToken(children.EQUALS[0]);
246
272
  }
@@ -257,6 +283,7 @@ class SGParser {
257
283
  }
258
284
  /**
259
285
  * Create a partial token from the given token. This only supports single-line tokens.
286
+ * @param token the offset to start the new token. If negative, subtracts from token.length
260
287
  * @param startOffset the offset to start the new token. If negative, subtracts from token.length
261
288
  * @param length the length of the text to keep. If negative, subtracts from token.length
262
289
  */
@@ -273,7 +300,7 @@ class SGParser {
273
300
  return {
274
301
  text: token.image.substring(startOffset, startOffset + length),
275
302
  //xmltools startLine is 1-based, we need 0-based which is why we subtract 1 below
276
- range: util_1.default.createRange(token.startLine - 1, token.startColumn - 1 + startOffset, token.endLine - 1, token.startColumn - 1 + (startOffset + length))
303
+ location: util_1.default.createLocation(token.startLine - 1, token.startColumn - 1 + startOffset, token.endLine - 1, token.startColumn - 1 + (startOffset + length), this.options.srcPath)
277
304
  };
278
305
  }
279
306
  /**
@@ -287,6 +314,17 @@ class SGParser {
287
314
  scriptTagImports: []
288
315
  };
289
316
  }
317
+ getLocationFromRange(range) {
318
+ return util_1.default.createLocationFromRange(util_1.default.pathToUri(this.options.srcPath), range);
319
+ }
290
320
  }
291
321
  exports.default = SGParser;
322
+ //make range not including quotes
323
+ function rangeFromTokenValue(token) {
324
+ if (!token) {
325
+ return undefined;
326
+ }
327
+ return util_1.default.createRange(token.startLine - 1, token.startColumn, token.endLine - 1, token.endColumn - 1);
328
+ }
329
+ exports.rangeFromTokenValue = rangeFromTokenValue;
292
330
  //# sourceMappingURL=SGParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SGParser.js","sourceRoot":"","sources":["../../src/parser/SGParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SGParser.js","sourceRoot":"","sources":["../../src/parser/SGParser.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,25 @@
1
1
  import { SourceNode } from 'source-map';
2
- import type { Range } from 'vscode-languageserver';
2
+ import type { Location } from 'vscode-languageserver';
3
3
  import type { FileReference } from '../interfaces';
4
4
  import type { TranspileState } from './TranspileState';
5
5
  export interface SGToken {
6
6
  text: string;
7
- range?: Range;
7
+ location?: Location;
8
8
  }
9
9
  export declare class SGAttribute {
10
- constructor(key: SGToken, equals?: SGToken, openingQuote?: SGToken, value?: SGToken, closingQuote?: SGToken);
11
- tokens: {
10
+ constructor(options: {
12
11
  key: SGToken;
13
12
  equals?: SGToken;
14
13
  openingQuote?: SGToken;
15
14
  value?: SGToken;
16
15
  closingQuote?: SGToken;
16
+ });
17
+ readonly tokens: {
18
+ readonly key: SGToken;
19
+ equals?: SGToken;
20
+ openingQuote?: SGToken;
21
+ value?: SGToken;
22
+ closingQuote?: SGToken;
17
23
  };
18
24
  get key(): string;
19
25
  /**
@@ -21,48 +27,58 @@ export declare class SGAttribute {
21
27
  */
22
28
  get value(): string | undefined;
23
29
  set value(val: string | undefined);
24
- get range(): Range;
25
- private _range;
30
+ get location(): Location;
31
+ private _location;
26
32
  transpile(state: TranspileState): SourceNode;
33
+ clone(): SGAttribute;
27
34
  }
28
- export declare class SGTag {
29
- constructor(startTagOpen: SGToken, startTagName: SGToken, attributes?: SGAttribute[], startTagClose?: SGToken, childNodes?: SGTag[], endTagOpen?: SGToken, endTagName?: SGToken, endTagClose?: SGToken);
30
- tokens: {
35
+ export declare class SGElement {
36
+ constructor(options: {
37
+ startTagOpen?: SGToken;
38
+ startTagName: SGToken;
39
+ attributes?: SGAttribute[];
40
+ startTagClose?: SGToken;
41
+ elements?: SGElement[];
42
+ endTagOpen?: SGToken;
43
+ endTagName?: SGToken;
44
+ endTagClose?: SGToken;
45
+ });
46
+ readonly tokens: {
31
47
  /**
32
- * The first portion of the startTag. (i.e. `<` or `<?`)
33
- */
34
- startTagOpen: SGToken;
48
+ * The first portion of the startTag. (i.e. `<` or `<?`)
49
+ */
50
+ readonly startTagOpen?: SGToken;
35
51
  /**
36
52
  * The name of the opening tag (i.e. CoolTag in `<CoolTag>`).
37
53
  */
38
- startTagName: SGToken;
54
+ readonly startTagName: SGToken;
39
55
  /**
40
- * The last bit of the startTag (i.e. `/>` for self-closing, `?>` for xml prologue, or `>` for tag with children)
56
+ * The last bit of the startTag (i.e. `/>` for self-closing, `?>` for xml prolog, or `>` for tag with children)
41
57
  */
42
- startTagClose?: SGToken;
58
+ readonly startTagClose?: SGToken;
43
59
  /**
44
60
  * The endTag opening char `<`
45
61
  */
46
- endTagOpen?: SGToken;
62
+ readonly endTagOpen?: SGToken;
47
63
  /**
48
64
  * The name of the ending tag (i.e. CoolTag in `</CoolTag>`)
49
65
  */
50
- endTagName?: SGToken;
66
+ readonly endTagName?: SGToken;
51
67
  /**
52
68
  * The endTag closing char `>`
53
69
  */
54
- endTagClose?: SGToken;
70
+ readonly endTagClose?: SGToken;
55
71
  };
56
72
  /**
57
73
  * Array of attributes found on this tag
58
74
  */
59
- attributes: SGAttribute[];
75
+ readonly attributes: SGAttribute[];
60
76
  /**
61
77
  * The array of direct children AST elements of this AST node
62
78
  */
63
- childNodes: SGTag[];
64
- get range(): Range;
65
- private _range;
79
+ readonly elements: SGElement[];
80
+ get location(): Location;
81
+ private _location;
66
82
  /**
67
83
  * Is this a self-closing tag?
68
84
  */
@@ -70,7 +86,7 @@ export declare class SGTag {
70
86
  get id(): string;
71
87
  set id(value: string);
72
88
  /**
73
- * Get the lower-case name of this tag.
89
+ * Get the name of this tag.
74
90
  */
75
91
  get tagName(): string;
76
92
  /**
@@ -78,22 +94,22 @@ export declare class SGTag {
78
94
  * This does not step into children's children.
79
95
  *
80
96
  */
81
- getChildNodesByTagName<T extends SGTag>(tagName: string): readonly T[];
97
+ getElementsByTagName<T extends SGElement>(tagName: string): readonly T[];
82
98
  /**
83
99
  * Add a child to the end of the children array
84
100
  */
85
- addChild<T extends SGTag>(tag: T): T;
101
+ addChild<T extends SGElement>(tag: T): T;
86
102
  /**
87
103
  * Remove a child from the children array.
88
104
  * @returns true if node was found and removed, false if the node wasn't there and thus nothing was done
89
105
  */
90
- removeChild(tag: SGTag): boolean;
106
+ removeChild(tag: SGElement): boolean;
91
107
  /**
92
108
  * Does this node have the specified attribute?
93
109
  */
94
110
  hasAttribute(name: string): boolean;
95
111
  /**
96
- * Get an SGAttribute by its name
112
+ * Get an SGAttribute by its name (case INsensitive)
97
113
  */
98
114
  getAttribute(name: string): SGAttribute | undefined;
99
115
  /**
@@ -105,7 +121,7 @@ export declare class SGTag {
105
121
  */
106
122
  setAttributeValue(name: string, value: string): void;
107
123
  /**
108
- * Remove an attribute by its name
124
+ * Remove an attribute by its name. DO NOT USE this to edit AST (use ASTEditor)
109
125
  * @returns true if an attribute was found and removed. False if no attribute was found
110
126
  */
111
127
  removeAttribute(name: string): boolean;
@@ -113,13 +129,15 @@ export declare class SGTag {
113
129
  protected transpileBody(state: TranspileState): SourceNode;
114
130
  protected transpileAttributes(state: TranspileState, attributes: SGAttribute[]): SourceNode;
115
131
  }
116
- export declare class SGProlog extends SGTag {
132
+ export declare class SGProlog extends SGElement {
133
+ }
134
+ export declare class SGNode extends SGElement {
117
135
  }
118
- export declare class SGNode extends SGTag {
136
+ export declare class SGChildren extends SGElement {
119
137
  }
120
- export declare class SGChildren extends SGTag {
138
+ export declare class SGCustomization extends SGElement {
121
139
  }
122
- export declare class SGScript extends SGTag {
140
+ export declare class SGScript extends SGElement {
123
141
  cdata?: SGToken;
124
142
  get type(): string;
125
143
  set type(value: string);
@@ -128,7 +146,7 @@ export declare class SGScript extends SGTag {
128
146
  protected transpileBody(state: TranspileState): SourceNode;
129
147
  protected transpileAttributes(state: TranspileState, attributes: SGAttribute[]): SourceNode;
130
148
  }
131
- export declare class SGInterfaceField extends SGTag {
149
+ export declare class SGInterfaceField extends SGElement {
132
150
  get type(): string;
133
151
  set type(value: string);
134
152
  get alias(): string;
@@ -140,13 +158,41 @@ export declare class SGInterfaceField extends SGTag {
140
158
  get alwaysNotify(): string;
141
159
  set alwaysNotify(value: string);
142
160
  }
161
+ export declare enum SGFieldType {
162
+ integer = "integer",
163
+ int = "int",
164
+ longinteger = "longinteger",
165
+ float = "float",
166
+ string = "string",
167
+ str = "str",
168
+ boolean = "boolean",
169
+ bool = "bool",
170
+ vector2d = "vector2d",
171
+ color = "color",
172
+ time = "time",
173
+ uri = "uri",
174
+ node = "node",
175
+ floatarray = "floatarray",
176
+ intarray = "intarray",
177
+ boolarray = "boolarray",
178
+ stringarray = "stringarray",
179
+ vector2darray = "vector2darray",
180
+ colorarray = "colorarray",
181
+ timearray = "timearray",
182
+ nodearray = "nodearray",
183
+ assocarray = "assocarray",
184
+ array = "array",
185
+ roarray = "roarray",
186
+ rect2d = "rect2d",
187
+ rect2darray = "rect2darray"
188
+ }
143
189
  export declare const SGFieldTypes: string[];
144
- export declare class SGInterfaceFunction extends SGTag {
190
+ export declare class SGInterfaceFunction extends SGElement {
145
191
  get name(): string;
146
192
  set name(value: string);
147
193
  }
148
194
  export declare type SGInterfaceMember = SGInterfaceField | SGInterfaceFunction;
149
- export declare class SGInterface extends SGTag {
195
+ export declare class SGInterface extends SGElement {
150
196
  get fields(): readonly SGInterfaceField[];
151
197
  get functions(): readonly SGInterfaceFunction[];
152
198
  get members(): readonly SGInterfaceMember[];
@@ -185,21 +231,59 @@ export declare class SGInterface extends SGTag {
185
231
  */
186
232
  removeFunction(name: string): boolean;
187
233
  }
188
- export declare class SGComponent extends SGTag {
234
+ /**
235
+ * The `<component>` element in SceneGraph. Not to be confused about usages of components like `<Rectangle>`, those are considered `SGNode` instances.
236
+ */
237
+ export declare class SGComponent extends SGElement {
189
238
  /**
190
239
  * Get all the <Field> and <Function> elements across all <Interface> nodes in this component
191
240
  */
192
241
  get interfaceMembers(): readonly SGInterfaceMember[];
193
- get scripts(): readonly SGScript[];
242
+ get scriptElements(): readonly SGScript[];
243
+ /**
244
+ * Get the <interface> element from this component (if present), or undefined if not.
245
+ * NOTE: Roku supports and merges multiple <interface> elements in a component, but this
246
+ * property points to the FIRST one. If you need to check whether a member exists,
247
+ * look through `this.interfaceMemebers` instead.
248
+ */
249
+ get interfaceElement(): SGInterface | undefined;
194
250
  /**
195
- * Get the `<children>` element of this component. (not to be confused with the AST `childNodes` property).
251
+ * Get the `<children>` element of this component. (not to be confused with the AST `childTags` property).
196
252
  * If there are multiope `<children>` elements, this function will return the last `<children>` tag because that's what Roku devices do.
197
253
  */
198
- get children(): SGChildren;
254
+ get childrenElement(): SGChildren;
255
+ get customizationElements(): readonly SGCustomization[];
256
+ /**
257
+ * Specifies the name of the component, that allows you to create the component in your application.
258
+ * For example, if the name of the component is `CastMemberInfo`, you could create instances of the component declaratively
259
+ * in a child node element of a component `<children>` element (`<CastMemberInfo/>`), or using BrightScript in a `<script>`
260
+ * element (`createObject("roSGNode","CastMemberInfo")`).
261
+ *
262
+ * The name attribute is case-sensitive. You cannot successfully create or declare a component unless the component name exactly
263
+ * matches the name attribute, including case. Also be aware that two components with the exact same name in the same application
264
+ * components directory will have undefined and generally undesirable results if you attempt to create a component object with that name in the application.
265
+ */
199
266
  get name(): string;
200
267
  set name(value: string);
268
+ /**
269
+ * Specifies the name of the built-in or extended SceneGraph scene or node class whose functionality is extended by this component.
270
+ *
271
+ * 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).
272
+ *
273
+ * By default, a component extends the Group node class.
274
+ */
201
275
  get extends(): string;
202
276
  set extends(value: string);
277
+ /**
278
+ * Specifies the ID of a node declared in the XML file to have the initial remote control focus when the component is instantiated.
279
+ */
280
+ get initialFocus(): string;
281
+ set initialFocus(value: string);
282
+ /**
283
+ * Specifies the version of the SceneGraph API. The default is 1.0 if not specified.
284
+ */
285
+ get version(): string;
286
+ set version(value: string);
203
287
  /**
204
288
  * Does the specified field exist in the component interface?
205
289
  */
@@ -232,8 +316,8 @@ export declare class SGComponent extends SGTag {
232
316
  */
233
317
  removeInterfaceField(id: string): boolean;
234
318
  /**
235
- * Get an interface field with the specified name
236
- */
319
+ * Get an interface field with the specified name
320
+ */
237
321
  getInterfaceFunction(name: string): SGInterfaceFunction | undefined;
238
322
  /**
239
323
  * Remove an interface function.
@@ -244,12 +328,16 @@ export declare class SGComponent extends SGTag {
244
328
  export interface SGReferences {
245
329
  name?: SGToken;
246
330
  extends?: SGToken;
247
- scriptTagImports: Pick<FileReference, 'pkgPath' | 'text' | 'filePathRange'>[];
331
+ scriptTagImports: Pick<FileReference, 'destPath' | 'text' | 'filePathRange'>[];
248
332
  }
249
333
  export declare class SGAst {
250
- prolog?: SGProlog;
251
- root?: SGTag;
252
- component?: SGComponent;
253
- constructor(prolog?: SGProlog, root?: SGTag, component?: SGComponent);
334
+ constructor(options?: {
335
+ prologElement?: SGProlog;
336
+ rootElement?: SGElement;
337
+ componentElement?: SGComponent;
338
+ });
339
+ readonly prologElement?: SGProlog;
340
+ readonly rootElement?: SGElement;
341
+ readonly componentElement?: SGComponent;
254
342
  transpile(state: TranspileState): SourceNode;
255
343
  }