brighterscript 1.0.0-alpha.24 → 1.0.0-alpha.25

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 (530) hide show
  1. package/CHANGELOG.md +493 -233
  2. package/README.md +45 -139
  3. package/bsconfig.schema.json +41 -0
  4. package/dist/ActionPipeline.d.ts +10 -0
  5. package/dist/ActionPipeline.js +40 -0
  6. package/dist/ActionPipeline.js.map +1 -0
  7. package/dist/AstValidationSegmenter.d.ts +25 -0
  8. package/dist/AstValidationSegmenter.js +152 -0
  9. package/dist/AstValidationSegmenter.js.map +1 -0
  10. package/dist/BsConfig.d.ts +39 -4
  11. package/dist/BusyStatusTracker.d.ts +31 -0
  12. package/dist/BusyStatusTracker.js +83 -0
  13. package/dist/BusyStatusTracker.js.map +1 -0
  14. package/dist/Cache.js +3 -3
  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 +3 -3
  20. package/dist/CodeActionUtil.js.map +1 -1
  21. package/dist/CommentFlagProcessor.d.ts +3 -2
  22. package/dist/CommentFlagProcessor.js +5 -4
  23. package/dist/CommentFlagProcessor.js.map +1 -1
  24. package/dist/DependencyGraph.d.ts +3 -2
  25. package/dist/DependencyGraph.js +11 -10
  26. package/dist/DependencyGraph.js.map +1 -1
  27. package/dist/DiagnosticCollection.js +9 -5
  28. package/dist/DiagnosticCollection.js.map +1 -1
  29. package/dist/DiagnosticFilterer.d.ts +1 -0
  30. package/dist/DiagnosticFilterer.js +5 -3
  31. package/dist/DiagnosticFilterer.js.map +1 -1
  32. package/dist/DiagnosticMessages.d.ts +61 -13
  33. package/dist/DiagnosticMessages.js +116 -19
  34. package/dist/DiagnosticMessages.js.map +1 -1
  35. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  36. package/dist/DiagnosticSeverityAdjuster.js +41 -0
  37. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  38. package/dist/FunctionScope.d.ts +28 -0
  39. package/dist/FunctionScope.js +52 -0
  40. package/dist/FunctionScope.js.map +1 -0
  41. package/dist/KeyedThrottler.d.ts +3 -3
  42. package/dist/KeyedThrottler.js +3 -3
  43. package/dist/KeyedThrottler.js.map +1 -1
  44. package/dist/LanguageServer.d.ts +23 -11
  45. package/dist/LanguageServer.js +150 -69
  46. package/dist/LanguageServer.js.map +1 -1
  47. package/dist/Logger.d.ts +3 -2
  48. package/dist/Logger.js +11 -3
  49. package/dist/Logger.js.map +1 -1
  50. package/dist/PluginInterface.d.ts +21 -3
  51. package/dist/PluginInterface.js +74 -6
  52. package/dist/PluginInterface.js.map +1 -1
  53. package/dist/Program.d.ts +158 -79
  54. package/dist/Program.js +831 -695
  55. package/dist/Program.js.map +1 -1
  56. package/dist/ProgramBuilder.d.ts +22 -12
  57. package/dist/ProgramBuilder.js +130 -103
  58. package/dist/ProgramBuilder.js.map +1 -1
  59. package/dist/Scope.d.ts +87 -133
  60. package/dist/Scope.js +450 -510
  61. package/dist/Scope.js.map +1 -1
  62. package/dist/Stopwatch.js +1 -1
  63. package/dist/Stopwatch.js.map +1 -1
  64. package/dist/SymbolTable.d.ts +89 -34
  65. package/dist/SymbolTable.js +239 -114
  66. package/dist/SymbolTable.js.map +1 -1
  67. package/dist/Throttler.d.ts +12 -0
  68. package/dist/Throttler.js +39 -0
  69. package/dist/Throttler.js.map +1 -1
  70. package/dist/Watcher.d.ts +0 -3
  71. package/dist/Watcher.js +0 -3
  72. package/dist/Watcher.js.map +1 -1
  73. package/dist/XmlScope.d.ts +4 -6
  74. package/dist/XmlScope.js +74 -69
  75. package/dist/XmlScope.js.map +1 -1
  76. package/dist/astUtils/CachedLookups.d.ts +48 -0
  77. package/dist/astUtils/CachedLookups.js +323 -0
  78. package/dist/astUtils/CachedLookups.js.map +1 -0
  79. package/dist/astUtils/{AstEditor.d.ts → Editor.d.ts} +9 -5
  80. package/dist/astUtils/{AstEditor.js → Editor.js} +10 -4
  81. package/dist/astUtils/Editor.js.map +1 -0
  82. package/dist/astUtils/{AstEditor.spec.js → Editor.spec.js} +68 -64
  83. package/dist/astUtils/Editor.spec.js.map +1 -0
  84. package/dist/astUtils/creators.d.ts +10 -10
  85. package/dist/astUtils/creators.js +26 -16
  86. package/dist/astUtils/creators.js.map +1 -1
  87. package/dist/astUtils/creators.spec.js +5 -5
  88. package/dist/astUtils/creators.spec.js.map +1 -1
  89. package/dist/astUtils/reflection.d.ts +132 -104
  90. package/dist/astUtils/reflection.js +220 -174
  91. package/dist/astUtils/reflection.js.map +1 -1
  92. package/dist/astUtils/reflection.spec.js +208 -126
  93. package/dist/astUtils/reflection.spec.js.map +1 -1
  94. package/dist/astUtils/stackedVisitor.spec.js +12 -12
  95. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  96. package/dist/astUtils/visitors.d.ts +53 -35
  97. package/dist/astUtils/visitors.js +29 -3
  98. package/dist/astUtils/visitors.js.map +1 -1
  99. package/dist/astUtils/visitors.spec.js +178 -33
  100. package/dist/astUtils/visitors.spec.js.map +1 -1
  101. package/dist/astUtils/xml.d.ts +9 -9
  102. package/dist/astUtils/xml.js +9 -9
  103. package/dist/astUtils/xml.js.map +1 -1
  104. package/dist/bscPlugin/BscPlugin.d.ts +10 -2
  105. package/dist/bscPlugin/BscPlugin.js +33 -3
  106. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  107. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  108. package/dist/bscPlugin/CallExpressionInfo.js +131 -0
  109. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  110. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  111. package/dist/bscPlugin/FileWriter.js +24 -0
  112. package/dist/bscPlugin/FileWriter.js.map +1 -0
  113. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  114. package/dist/bscPlugin/SignatureHelpUtil.js +135 -0
  115. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  116. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +14 -11
  117. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  118. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +16 -16
  119. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  120. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +52 -1
  121. package/dist/bscPlugin/completions/CompletionsProcessor.js +517 -26
  122. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  123. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +1909 -0
  124. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  125. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  126. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  127. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  128. package/dist/bscPlugin/hover/HoverProcessor.d.ts +7 -7
  129. package/dist/bscPlugin/hover/HoverProcessor.js +123 -125
  130. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  131. package/dist/bscPlugin/hover/HoverProcessor.spec.js +371 -53
  132. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  133. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +2 -1
  134. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +85 -23
  135. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  136. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +83 -6
  137. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  138. package/dist/bscPlugin/serialize/BslibInjector.spec.js +19 -0
  139. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  140. package/dist/bscPlugin/serialize/BslibManager.d.ts +9 -0
  141. package/dist/bscPlugin/serialize/BslibManager.js +40 -0
  142. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  143. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  144. package/dist/bscPlugin/serialize/FileSerializer.js +72 -0
  145. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  146. package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.d.ts → BrsFileTranspileProcessor.d.ts} +4 -2
  147. package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.js → BrsFileTranspileProcessor.js} +33 -9
  148. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  149. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  150. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +41 -0
  151. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  152. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  153. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  154. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  155. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +13 -5
  156. package/dist/bscPlugin/validation/BrsFileValidator.js +259 -49
  157. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  158. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +230 -14
  159. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  160. package/dist/bscPlugin/validation/ProgramValidator.d.ts +10 -0
  161. package/dist/bscPlugin/validation/ProgramValidator.js +32 -0
  162. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  163. package/dist/bscPlugin/validation/ScopeValidator.d.ts +54 -27
  164. package/dist/bscPlugin/validation/ScopeValidator.js +483 -286
  165. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  166. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  167. package/dist/bscPlugin/validation/ScopeValidator.spec.js +2454 -0
  168. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  169. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  170. package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
  171. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  172. package/dist/cli.js +104 -13
  173. package/dist/cli.js.map +1 -1
  174. package/dist/deferred.d.ts +3 -3
  175. package/dist/deferred.js.map +1 -1
  176. package/dist/diagnosticUtils.d.ts +8 -2
  177. package/dist/diagnosticUtils.js +47 -17
  178. package/dist/diagnosticUtils.js.map +1 -1
  179. package/dist/examples/plugins/removePrint.js +8 -10
  180. package/dist/examples/plugins/removePrint.js.map +1 -1
  181. package/dist/files/AssetFile.d.ts +26 -0
  182. package/dist/files/AssetFile.js +26 -0
  183. package/dist/files/AssetFile.js.map +1 -0
  184. package/dist/files/BrsFile.Class.spec.js +523 -493
  185. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  186. package/dist/files/BrsFile.d.ts +112 -111
  187. package/dist/files/BrsFile.js +741 -1032
  188. package/dist/files/BrsFile.js.map +1 -1
  189. package/dist/files/BrsFile.spec.js +1728 -1232
  190. package/dist/files/BrsFile.spec.js.map +1 -1
  191. package/dist/files/BscFile.d.ts +104 -0
  192. package/dist/files/BscFile.js +16 -0
  193. package/dist/files/BscFile.js.map +1 -0
  194. package/dist/files/Factory.d.ts +25 -0
  195. package/dist/files/Factory.js +22 -0
  196. package/dist/files/Factory.js.map +1 -0
  197. package/dist/files/LazyFileData.d.ts +20 -0
  198. package/dist/files/LazyFileData.js +54 -0
  199. package/dist/files/LazyFileData.js.map +1 -0
  200. package/dist/files/LazyFileData.spec.d.ts +1 -0
  201. package/dist/files/LazyFileData.spec.js +27 -0
  202. package/dist/files/LazyFileData.spec.js.map +1 -0
  203. package/dist/files/XmlFile.d.ts +70 -32
  204. package/dist/files/XmlFile.js +106 -118
  205. package/dist/files/XmlFile.js.map +1 -1
  206. package/dist/files/XmlFile.spec.js +325 -262
  207. package/dist/files/XmlFile.spec.js.map +1 -1
  208. package/dist/files/tests/imports.spec.js +48 -40
  209. package/dist/files/tests/imports.spec.js.map +1 -1
  210. package/dist/files/tests/optionalChaning.spec.js +84 -24
  211. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  212. package/dist/globalCallables.js +16 -21
  213. package/dist/globalCallables.js.map +1 -1
  214. package/dist/index.d.ts +12 -1
  215. package/dist/index.js +12 -1
  216. package/dist/index.js.map +1 -1
  217. package/dist/interfaces.d.ts +389 -161
  218. package/dist/interfaces.js +27 -0
  219. package/dist/interfaces.js.map +1 -1
  220. package/dist/lexer/Character.spec.js +5 -5
  221. package/dist/lexer/Character.spec.js.map +1 -1
  222. package/dist/lexer/Lexer.d.ts +12 -5
  223. package/dist/lexer/Lexer.js +28 -13
  224. package/dist/lexer/Lexer.js.map +1 -1
  225. package/dist/lexer/Lexer.spec.js +181 -135
  226. package/dist/lexer/Lexer.spec.js.map +1 -1
  227. package/dist/lexer/Token.d.ts +9 -1
  228. package/dist/lexer/Token.js +9 -1
  229. package/dist/lexer/Token.js.map +1 -1
  230. package/dist/lexer/TokenKind.d.ts +8 -0
  231. package/dist/lexer/TokenKind.js +24 -4
  232. package/dist/lexer/TokenKind.js.map +1 -1
  233. package/dist/parser/AstNode.d.ts +162 -0
  234. package/dist/parser/AstNode.js +225 -0
  235. package/dist/parser/AstNode.js.map +1 -0
  236. package/dist/parser/AstNode.spec.d.ts +1 -0
  237. package/dist/parser/AstNode.spec.js +165 -0
  238. package/dist/parser/AstNode.spec.js.map +1 -0
  239. package/dist/parser/BrsTranspileState.d.ts +4 -7
  240. package/dist/parser/BrsTranspileState.js +4 -12
  241. package/dist/parser/BrsTranspileState.js.map +1 -1
  242. package/dist/parser/Expression.d.ts +126 -176
  243. package/dist/parser/Expression.js +523 -405
  244. package/dist/parser/Expression.js.map +1 -1
  245. package/dist/parser/Parser.Class.spec.js +151 -145
  246. package/dist/parser/Parser.Class.spec.js.map +1 -1
  247. package/dist/parser/Parser.d.ts +43 -201
  248. package/dist/parser/Parser.js +446 -962
  249. package/dist/parser/Parser.js.map +1 -1
  250. package/dist/parser/Parser.spec.d.ts +3 -1
  251. package/dist/parser/Parser.spec.js +1002 -846
  252. package/dist/parser/Parser.spec.js.map +1 -1
  253. package/dist/parser/SGParser.d.ts +9 -8
  254. package/dist/parser/SGParser.js +10 -8
  255. package/dist/parser/SGParser.js.map +1 -1
  256. package/dist/parser/SGParser.spec.js +27 -38
  257. package/dist/parser/SGParser.spec.js.map +1 -1
  258. package/dist/parser/SGTypes.d.ts +98 -35
  259. package/dist/parser/SGTypes.js +169 -99
  260. package/dist/parser/SGTypes.js.map +1 -1
  261. package/dist/parser/Statement.d.ts +183 -131
  262. package/dist/parser/Statement.js +549 -387
  263. package/dist/parser/Statement.js.map +1 -1
  264. package/dist/parser/Statement.spec.js +45 -21
  265. package/dist/parser/Statement.spec.js.map +1 -1
  266. package/dist/parser/TranspileState.d.ts +1 -1
  267. package/dist/parser/TranspileState.js +7 -12
  268. package/dist/parser/TranspileState.js.map +1 -1
  269. package/dist/parser/tests/Parser.spec.js +3 -2
  270. package/dist/parser/tests/Parser.spec.js.map +1 -1
  271. package/dist/parser/tests/controlFlow/For.spec.js +33 -23
  272. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  273. package/dist/parser/tests/controlFlow/ForEach.spec.js +25 -20
  274. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  275. package/dist/parser/tests/controlFlow/If.spec.js +96 -94
  276. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  277. package/dist/parser/tests/controlFlow/While.spec.js +22 -16
  278. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  279. package/dist/parser/tests/expression/Additive.spec.js +8 -8
  280. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  281. package/dist/parser/tests/expression/ArrayLiterals.spec.js +58 -21
  282. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  283. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +61 -20
  284. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  285. package/dist/parser/tests/expression/Boolean.spec.js +8 -8
  286. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  287. package/dist/parser/tests/expression/Call.spec.js +129 -21
  288. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  289. package/dist/parser/tests/expression/Exponential.spec.js +5 -5
  290. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  291. package/dist/parser/tests/expression/Function.spec.js +36 -36
  292. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  293. package/dist/parser/tests/expression/Indexing.spec.js +67 -22
  294. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  295. package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
  296. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  297. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +59 -59
  298. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  299. package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
  300. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  301. package/dist/parser/tests/expression/Primary.spec.js +12 -12
  302. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  303. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
  304. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  305. package/dist/parser/tests/expression/Relational.spec.js +13 -13
  306. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  307. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
  308. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  309. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +96 -57
  310. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  311. package/dist/parser/tests/expression/TernaryExpression.spec.js +89 -89
  312. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  313. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  314. package/dist/parser/tests/expression/TypeExpression.spec.js +127 -0
  315. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  316. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  317. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  318. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  319. package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
  320. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  321. package/dist/parser/tests/statement/ConstStatement.spec.js +82 -33
  322. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  323. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  324. package/dist/parser/tests/statement/Continue.spec.js +119 -0
  325. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  326. package/dist/parser/tests/statement/Declaration.spec.js +19 -19
  327. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  328. package/dist/parser/tests/statement/Dim.spec.js +22 -22
  329. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  330. package/dist/parser/tests/statement/Enum.spec.js +98 -302
  331. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  332. package/dist/parser/tests/statement/For.spec.js +9 -10
  333. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  334. package/dist/parser/tests/statement/ForEach.spec.js +8 -9
  335. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  336. package/dist/parser/tests/statement/Function.spec.js +44 -35
  337. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  338. package/dist/parser/tests/statement/Goto.spec.js +5 -5
  339. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  340. package/dist/parser/tests/statement/Increment.spec.js +20 -20
  341. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  342. package/dist/parser/tests/statement/InterfaceStatement.spec.js +30 -196
  343. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  344. package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
  345. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  346. package/dist/parser/tests/statement/Misc.spec.js +16 -78
  347. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  348. package/dist/parser/tests/statement/PrintStatement.spec.js +35 -33
  349. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  350. package/dist/parser/tests/statement/ReturnStatement.spec.js +14 -12
  351. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  352. package/dist/parser/tests/statement/Set.spec.js +48 -35
  353. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  354. package/dist/parser/tests/statement/Stop.spec.js +6 -6
  355. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  356. package/dist/parser/tests/statement/Throw.spec.js +6 -6
  357. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  358. package/dist/parser/tests/statement/TryCatch.spec.js +18 -16
  359. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  360. package/dist/preprocessor/Manifest.d.ts +1 -1
  361. package/dist/preprocessor/Manifest.js +2 -2
  362. package/dist/preprocessor/Manifest.js.map +1 -1
  363. package/dist/preprocessor/Manifest.spec.js +8 -8
  364. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  365. package/dist/preprocessor/Preprocessor.d.ts +5 -6
  366. package/dist/preprocessor/Preprocessor.js +5 -5
  367. package/dist/preprocessor/Preprocessor.js.map +1 -1
  368. package/dist/preprocessor/Preprocessor.spec.js +25 -25
  369. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  370. package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
  371. package/dist/preprocessor/PreprocessorParser.js +7 -1
  372. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  373. package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
  374. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  375. package/dist/roku-types/data.json +5892 -10081
  376. package/dist/roku-types/index.d.ts +622 -1719
  377. package/dist/types/ArrayType.d.ts +10 -9
  378. package/dist/types/ArrayType.js +65 -60
  379. package/dist/types/ArrayType.js.map +1 -1
  380. package/dist/types/ArrayType.spec.js +36 -68
  381. package/dist/types/ArrayType.spec.js.map +1 -1
  382. package/dist/types/AssociativeArrayType.d.ts +11 -0
  383. package/dist/types/AssociativeArrayType.js +52 -0
  384. package/dist/types/AssociativeArrayType.js.map +1 -0
  385. package/dist/types/BaseFunctionType.d.ts +9 -0
  386. package/dist/types/BaseFunctionType.js +25 -0
  387. package/dist/types/BaseFunctionType.js.map +1 -0
  388. package/dist/types/BooleanType.d.ts +8 -5
  389. package/dist/types/BooleanType.js +14 -7
  390. package/dist/types/BooleanType.js.map +1 -1
  391. package/dist/types/BooleanType.spec.js +10 -6
  392. package/dist/types/BooleanType.spec.js.map +1 -1
  393. package/dist/types/BscType.d.ts +32 -21
  394. package/dist/types/BscType.js +118 -21
  395. package/dist/types/BscType.js.map +1 -1
  396. package/dist/types/BscTypeKind.d.ts +25 -0
  397. package/dist/types/BscTypeKind.js +30 -0
  398. package/dist/types/BscTypeKind.js.map +1 -0
  399. package/dist/types/BuiltInInterfaceAdder.d.ts +23 -0
  400. package/dist/types/BuiltInInterfaceAdder.js +164 -0
  401. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  402. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  403. package/dist/types/BuiltInInterfaceAdder.spec.js +116 -0
  404. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  405. package/dist/types/ClassType.d.ts +17 -0
  406. package/dist/types/ClassType.js +58 -0
  407. package/dist/types/ClassType.js.map +1 -0
  408. package/dist/types/ClassType.spec.d.ts +1 -0
  409. package/dist/types/ClassType.spec.js +77 -0
  410. package/dist/types/ClassType.spec.js.map +1 -0
  411. package/dist/types/ComponentType.d.ts +26 -0
  412. package/dist/types/ComponentType.js +83 -0
  413. package/dist/types/ComponentType.js.map +1 -0
  414. package/dist/types/DoubleType.d.ts +8 -5
  415. package/dist/types/DoubleType.js +18 -16
  416. package/dist/types/DoubleType.js.map +1 -1
  417. package/dist/types/DoubleType.spec.js +12 -6
  418. package/dist/types/DoubleType.spec.js.map +1 -1
  419. package/dist/types/DynamicType.d.ts +9 -5
  420. package/dist/types/DynamicType.js +15 -4
  421. package/dist/types/DynamicType.js.map +1 -1
  422. package/dist/types/DynamicType.spec.js +16 -5
  423. package/dist/types/DynamicType.spec.js.map +1 -1
  424. package/dist/types/EnumType.d.ts +30 -12
  425. package/dist/types/EnumType.js +43 -17
  426. package/dist/types/EnumType.js.map +1 -1
  427. package/dist/types/EnumType.spec.d.ts +1 -0
  428. package/dist/types/EnumType.spec.js +33 -0
  429. package/dist/types/EnumType.spec.js.map +1 -0
  430. package/dist/types/FloatType.d.ts +8 -5
  431. package/dist/types/FloatType.js +18 -16
  432. package/dist/types/FloatType.js.map +1 -1
  433. package/dist/types/FloatType.spec.js +4 -6
  434. package/dist/types/FloatType.spec.js.map +1 -1
  435. package/dist/types/FunctionType.d.ts +13 -8
  436. package/dist/types/FunctionType.js +30 -14
  437. package/dist/types/FunctionType.js.map +1 -1
  438. package/dist/types/InheritableType.d.ts +28 -0
  439. package/dist/types/InheritableType.js +152 -0
  440. package/dist/types/InheritableType.js.map +1 -0
  441. package/dist/types/IntegerType.d.ts +8 -5
  442. package/dist/types/IntegerType.js +18 -16
  443. package/dist/types/IntegerType.js.map +1 -1
  444. package/dist/types/IntegerType.spec.js +8 -6
  445. package/dist/types/IntegerType.spec.js.map +1 -1
  446. package/dist/types/InterfaceType.d.ts +12 -13
  447. package/dist/types/InterfaceType.js +20 -48
  448. package/dist/types/InterfaceType.js.map +1 -1
  449. package/dist/types/InterfaceType.spec.js +90 -56
  450. package/dist/types/InterfaceType.spec.js.map +1 -1
  451. package/dist/types/InvalidType.d.ts +7 -5
  452. package/dist/types/InvalidType.js +13 -7
  453. package/dist/types/InvalidType.js.map +1 -1
  454. package/dist/types/InvalidType.spec.js +8 -6
  455. package/dist/types/InvalidType.spec.js.map +1 -1
  456. package/dist/types/LongIntegerType.d.ts +8 -5
  457. package/dist/types/LongIntegerType.js +17 -15
  458. package/dist/types/LongIntegerType.js.map +1 -1
  459. package/dist/types/LongIntegerType.spec.js +10 -6
  460. package/dist/types/LongIntegerType.spec.js.map +1 -1
  461. package/dist/types/NamespaceType.d.ts +12 -0
  462. package/dist/types/NamespaceType.js +28 -0
  463. package/dist/types/NamespaceType.js.map +1 -0
  464. package/dist/types/ObjectType.d.ts +9 -8
  465. package/dist/types/ObjectType.js +21 -11
  466. package/dist/types/ObjectType.js.map +1 -1
  467. package/dist/types/ObjectType.spec.js +3 -3
  468. package/dist/types/ObjectType.spec.js.map +1 -1
  469. package/dist/types/ReferenceType.d.ts +63 -0
  470. package/dist/types/ReferenceType.js +423 -0
  471. package/dist/types/ReferenceType.js.map +1 -0
  472. package/dist/types/ReferenceType.spec.d.ts +1 -0
  473. package/dist/types/ReferenceType.spec.js +137 -0
  474. package/dist/types/ReferenceType.spec.js.map +1 -0
  475. package/dist/types/StringType.d.ts +11 -5
  476. package/dist/types/StringType.js +18 -7
  477. package/dist/types/StringType.js.map +1 -1
  478. package/dist/types/StringType.spec.js +3 -5
  479. package/dist/types/StringType.spec.js.map +1 -1
  480. package/dist/types/TypedFunctionType.d.ts +22 -17
  481. package/dist/types/TypedFunctionType.js +78 -60
  482. package/dist/types/TypedFunctionType.js.map +1 -1
  483. package/dist/types/TypedFunctionType.spec.js +105 -20
  484. package/dist/types/TypedFunctionType.spec.js.map +1 -1
  485. package/dist/types/UninitializedType.d.ts +8 -6
  486. package/dist/types/UninitializedType.js +13 -7
  487. package/dist/types/UninitializedType.js.map +1 -1
  488. package/dist/types/UnionType.d.ts +20 -0
  489. package/dist/types/UnionType.js +123 -0
  490. package/dist/types/UnionType.js.map +1 -0
  491. package/dist/types/UnionType.spec.d.ts +1 -0
  492. package/dist/types/UnionType.spec.js +130 -0
  493. package/dist/types/UnionType.spec.js.map +1 -0
  494. package/dist/types/VoidType.d.ts +8 -5
  495. package/dist/types/VoidType.js +14 -7
  496. package/dist/types/VoidType.js.map +1 -1
  497. package/dist/types/VoidType.spec.js +3 -3
  498. package/dist/types/VoidType.spec.js.map +1 -1
  499. package/dist/types/helper.spec.d.ts +1 -0
  500. package/dist/types/helper.spec.js +145 -0
  501. package/dist/types/helper.spec.js.map +1 -0
  502. package/dist/types/helpers.d.ts +19 -37
  503. package/dist/types/helpers.js +159 -99
  504. package/dist/types/helpers.js.map +1 -1
  505. package/dist/types/index.d.ts +22 -0
  506. package/dist/types/index.js +39 -0
  507. package/dist/types/index.js.map +1 -0
  508. package/dist/util.d.ts +132 -137
  509. package/dist/util.js +796 -362
  510. package/dist/util.js.map +1 -1
  511. package/dist/validators/ClassValidator.d.ts +8 -25
  512. package/dist/validators/ClassValidator.js +96 -176
  513. package/dist/validators/ClassValidator.js.map +1 -1
  514. package/package.json +165 -152
  515. package/dist/astUtils/AstEditor.js.map +0 -1
  516. package/dist/astUtils/AstEditor.spec.js.map +0 -1
  517. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +0 -1
  518. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -32
  519. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
  520. package/dist/parser/SGTypes.spec.js +0 -351
  521. package/dist/parser/SGTypes.spec.js.map +0 -1
  522. package/dist/types/CustomType.d.ts +0 -12
  523. package/dist/types/CustomType.js +0 -44
  524. package/dist/types/CustomType.js.map +0 -1
  525. package/dist/types/LazyType.d.ts +0 -16
  526. package/dist/types/LazyType.js +0 -44
  527. package/dist/types/LazyType.js.map +0 -1
  528. /package/dist/astUtils/{AstEditor.spec.d.ts → Editor.spec.d.ts} +0 -0
  529. /package/dist/bscPlugin/{transpile/BrsFilePreTranspileProcessor.spec.d.ts → completions/CompletionsProcessor.spec.d.ts} +0 -0
  530. /package/dist/{parser/SGTypes.spec.d.ts → bscPlugin/serialize/BslibInjector.spec.d.ts} +0 -0
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SGAst = exports.SGComponent = exports.SGInterface = exports.SGInterfaceFunction = exports.getBscTypeFromSGFieldType = exports.SGFieldTypes = exports.SGInterfaceField = exports.SGScript = exports.SGCustomization = exports.SGChildren = exports.SGNode = exports.SGProlog = exports.SGTag = exports.SGAttribute = void 0;
3
+ exports.SGAst = exports.SGComponent = exports.SGInterface = exports.SGInterfaceFunction = exports.getBscTypeFromSGFieldType = exports.SGFieldTypes = exports.SGFieldType = exports.SGInterfaceField = exports.SGScript = exports.SGCustomization = exports.SGChildren = exports.SGNode = exports.SGProlog = exports.SGElement = exports.SGAttribute = void 0;
4
4
  const source_map_1 = require("source-map");
5
5
  const creators_1 = require("../astUtils/creators");
6
6
  const BooleanType_1 = require("../types/BooleanType");
7
7
  const DynamicType_1 = require("../types/DynamicType");
8
8
  const FloatType_1 = require("../types/FloatType");
9
- const TypedFunctionType_1 = require("../types/TypedFunctionType");
10
9
  const IntegerType_1 = require("../types/IntegerType");
11
10
  const LongIntegerType_1 = require("../types/LongIntegerType");
12
11
  const StringType_1 = require("../types/StringType");
@@ -60,10 +59,13 @@ class SGAttribute {
60
59
  }
61
60
  return new source_map_1.SourceNode(null, null, null, result);
62
61
  }
62
+ clone() {
63
+ return new SGAttribute(Object.assign({}, this.tokens.key), Object.assign({}, this.tokens.equals), Object.assign({}, this.tokens.openingQuote), Object.assign({}, this.tokens.value), Object.assign({}, this.tokens.closingQuote));
64
+ }
63
65
  }
64
66
  exports.SGAttribute = SGAttribute;
65
- class SGTag {
66
- constructor(startTagOpen, startTagName, attributes = [], startTagClose, childNodes = [], endTagOpen, endTagName, endTagClose) {
67
+ class SGElement {
68
+ constructor(startTagOpen, startTagName, attributes = [], startTagClose, elements = [], endTagOpen, endTagName, endTagClose) {
67
69
  this.tokens = {};
68
70
  /**
69
71
  * Array of attributes found on this tag
@@ -72,13 +74,13 @@ class SGTag {
72
74
  /**
73
75
  * The array of direct children AST elements of this AST node
74
76
  */
75
- this.childNodes = [];
77
+ this.elements = [];
76
78
  this._range = null;
77
79
  this.tokens.startTagOpen = startTagOpen;
78
80
  this.tokens.startTagName = startTagName;
79
81
  this.attributes = attributes;
80
82
  this.tokens.startTagClose = startTagClose;
81
- this.childNodes = childNodes;
83
+ this.elements = elements;
82
84
  this.tokens.endTagOpen = endTagOpen;
83
85
  this.tokens.endTagName = endTagName;
84
86
  this.tokens.endTagClose = endTagClose;
@@ -86,7 +88,7 @@ class SGTag {
86
88
  get range() {
87
89
  var _a, _b, _c, _d;
88
90
  if (!this._range) {
89
- this._range = util_1.default.createBoundingRange(this.tokens.startTagOpen, this.tokens.startTagName, (_a = this.attributes) === null || _a === void 0 ? void 0 : _a[((_b = this.attributes) === null || _b === void 0 ? void 0 : _b.length) - 1], this.tokens.startTagClose, (_c = this.childNodes) === null || _c === void 0 ? void 0 : _c[((_d = this.childNodes) === null || _d === void 0 ? void 0 : _d.length) - 1], this.tokens.endTagOpen, this.tokens.endTagName, this.tokens.endTagClose);
91
+ this._range = util_1.default.createBoundingRange(this.tokens.startTagOpen, this.tokens.startTagName, (_a = this.attributes) === null || _a === void 0 ? void 0 : _a[((_b = this.attributes) === null || _b === void 0 ? void 0 : _b.length) - 1], this.tokens.startTagClose, (_c = this.elements) === null || _c === void 0 ? void 0 : _c[((_d = this.elements) === null || _d === void 0 ? void 0 : _d.length) - 1], this.tokens.endTagOpen, this.tokens.endTagName, this.tokens.endTagClose);
90
92
  }
91
93
  return this._range;
92
94
  }
@@ -94,7 +96,8 @@ class SGTag {
94
96
  * Is this a self-closing tag?
95
97
  */
96
98
  get isSelfClosing() {
97
- return !this.tokens.endTagName;
99
+ var _a;
100
+ return this.tokens.startTagClose && ((_a = this.tokens.startTagClose) === null || _a === void 0 ? void 0 : _a.text) !== '>';
98
101
  }
99
102
  get id() {
100
103
  return this.getAttributeValue('id');
@@ -103,7 +106,7 @@ class SGTag {
103
106
  this.setAttributeValue('id', value);
104
107
  }
105
108
  /**
106
- * Get the lower-case name of this tag.
109
+ * Get the name of this tag.
107
110
  */
108
111
  get tagName() {
109
112
  var _a;
@@ -114,10 +117,10 @@ class SGTag {
114
117
  * This does not step into children's children.
115
118
  *
116
119
  */
117
- getChildNodesByTagName(tagName) {
120
+ getElementsByTagName(tagName) {
118
121
  const result = [];
119
122
  const lowerTagName = tagName.toLowerCase();
120
- for (const el of this.childNodes) {
123
+ for (const el of this.elements) {
121
124
  if (el.tokens.startTagName.text.toLowerCase() === lowerTagName) {
122
125
  result.push(el);
123
126
  }
@@ -128,7 +131,7 @@ class SGTag {
128
131
  * Add a child to the end of the children array
129
132
  */
130
133
  addChild(tag) {
131
- this.childNodes.push(tag);
134
+ this.elements.push(tag);
132
135
  return tag;
133
136
  }
134
137
  /**
@@ -136,9 +139,9 @@ class SGTag {
136
139
  * @returns true if node was found and removed, false if the node wasn't there and thus nothing was done
137
140
  */
138
141
  removeChild(tag) {
139
- const idx = this.childNodes.indexOf(tag);
142
+ const idx = this.elements.indexOf(tag);
140
143
  if (idx > -1) {
141
- this.childNodes.splice(idx, 1);
144
+ this.elements.splice(idx, 1);
142
145
  return true;
143
146
  }
144
147
  return false;
@@ -150,7 +153,7 @@ class SGTag {
150
153
  return !!this.getAttribute(name);
151
154
  }
152
155
  /**
153
- * Get an SGAttribute by its name
156
+ * Get an SGAttribute by its name (case INsensitive)
154
157
  */
155
158
  getAttribute(name) {
156
159
  var _a;
@@ -172,16 +175,21 @@ class SGTag {
172
175
  * Set an attribute value by its name. If no attribute exists with this name, it is created
173
176
  */
174
177
  setAttributeValue(name, value) {
175
- let attr = this.getAttribute(name);
176
- //create an attribute with this name if we don't have one yet
177
- if (!attr) {
178
- attr = (0, creators_1.createSGAttribute)(name, value);
179
- this.attributes.push(attr);
178
+ if (value === undefined) {
179
+ this.removeAttribute(name);
180
+ }
181
+ else {
182
+ let attr = this.getAttribute(name);
183
+ //create an attribute with this name if we don't have one yet
184
+ if (!attr) {
185
+ attr = (0, creators_1.createSGAttribute)(name, value);
186
+ this.attributes.push(attr);
187
+ }
188
+ attr.value = value;
180
189
  }
181
- attr.value = value;
182
190
  }
183
191
  /**
184
- * Remove an attribute by its name
192
+ * Remove an attribute by its name. DO NOT USE this to edit AST (use ASTEditor)
185
193
  * @returns true if an attribute was found and removed. False if no attribute was found
186
194
  */
187
195
  removeAttribute(name) {
@@ -218,7 +226,7 @@ class SGTag {
218
226
  state.newline
219
227
  ];
220
228
  state.blockDepth++;
221
- for (const child of this.childNodes) {
229
+ for (const child of this.elements) {
222
230
  chunks.push(state.indentText, child.transpile(state));
223
231
  }
224
232
  state.blockDepth--;
@@ -234,20 +242,20 @@ class SGTag {
234
242
  return new source_map_1.SourceNode(null, null, null, chunks);
235
243
  }
236
244
  }
237
- exports.SGTag = SGTag;
238
- class SGProlog extends SGTag {
245
+ exports.SGElement = SGElement;
246
+ class SGProlog extends SGElement {
239
247
  }
240
248
  exports.SGProlog = SGProlog;
241
- class SGNode extends SGTag {
249
+ class SGNode extends SGElement {
242
250
  }
243
251
  exports.SGNode = SGNode;
244
- class SGChildren extends SGTag {
252
+ class SGChildren extends SGElement {
245
253
  }
246
254
  exports.SGChildren = SGChildren;
247
- class SGCustomization extends SGTag {
255
+ class SGCustomization extends SGElement {
248
256
  }
249
257
  exports.SGCustomization = SGCustomization;
250
- class SGScript extends SGTag {
258
+ class SGScript extends SGElement {
251
259
  get type() {
252
260
  return this.getAttributeValue('type');
253
261
  }
@@ -283,12 +291,14 @@ class SGScript extends SGTag {
283
291
  for (const attr of attributes) {
284
292
  const lowerKey = (_a = attr.tokens.key) === null || _a === void 0 ? void 0 : _a.text.toLowerCase();
285
293
  if (lowerKey === 'uri' && bsExtensionRegexp.exec((_b = attr.tokens.value) === null || _b === void 0 ? void 0 : _b.text)) {
286
- modifiedAttributes.push(util_1.default.cloneSGAttribute(attr, attr.tokens.value.text.replace(bsExtensionRegexp, '.brs')));
294
+ const clone = attr.clone();
295
+ clone.tokens.value.text.replace(bsExtensionRegexp, '.brs');
296
+ modifiedAttributes.push(clone);
287
297
  }
288
298
  else if (lowerKey === 'type') {
289
299
  foundType = true;
290
300
  if ((_c = attr.tokens.value) === null || _c === void 0 ? void 0 : _c.text.toLowerCase().endsWith('brighterscript')) {
291
- modifiedAttributes.push(util_1.default.cloneSGAttribute(attr, 'text/brightscript'));
301
+ modifiedAttributes.push(attr.clone());
292
302
  }
293
303
  else {
294
304
  modifiedAttributes.push(attr);
@@ -305,7 +315,7 @@ class SGScript extends SGTag {
305
315
  }
306
316
  }
307
317
  exports.SGScript = SGScript;
308
- class SGInterfaceField extends SGTag {
318
+ class SGInterfaceField extends SGElement {
309
319
  get type() {
310
320
  return this.getAttributeValue('type');
311
321
  }
@@ -336,35 +346,56 @@ class SGInterfaceField extends SGTag {
336
346
  set alwaysNotify(value) {
337
347
  this.setAttributeValue('alwaysNotify', value);
338
348
  }
339
- get bscType() {
340
- return getBscTypeFromSGFieldType(this.type);
341
- }
342
349
  }
343
350
  exports.SGInterfaceField = SGInterfaceField;
344
- exports.SGFieldTypes = [
345
- 'integer', 'int', 'longinteger', 'float', 'string', 'str', 'boolean', 'bool',
346
- 'vector2d', 'color', 'time', 'uri', 'node', 'floatarray', 'intarray', 'boolarray',
347
- 'stringarray', 'vector2darray', 'colorarray', 'timearray', 'nodearray', 'assocarray',
348
- 'array', 'roarray', 'rect2d', 'rect2darray'
349
- ];
351
+ var SGFieldType;
352
+ (function (SGFieldType) {
353
+ SGFieldType["integer"] = "integer";
354
+ SGFieldType["int"] = "int";
355
+ SGFieldType["longinteger"] = "longinteger";
356
+ SGFieldType["float"] = "float";
357
+ SGFieldType["string"] = "string";
358
+ SGFieldType["str"] = "str";
359
+ SGFieldType["boolean"] = "boolean";
360
+ SGFieldType["bool"] = "bool";
361
+ SGFieldType["vector2d"] = "vector2d";
362
+ SGFieldType["color"] = "color";
363
+ SGFieldType["time"] = "time";
364
+ SGFieldType["uri"] = "uri";
365
+ SGFieldType["node"] = "node";
366
+ SGFieldType["floatarray"] = "floatarray";
367
+ SGFieldType["intarray"] = "intarray";
368
+ SGFieldType["boolarray"] = "boolarray";
369
+ SGFieldType["stringarray"] = "stringarray";
370
+ SGFieldType["vector2darray"] = "vector2darray";
371
+ SGFieldType["colorarray"] = "colorarray";
372
+ SGFieldType["timearray"] = "timearray";
373
+ SGFieldType["nodearray"] = "nodearray";
374
+ SGFieldType["assocarray"] = "assocarray";
375
+ SGFieldType["array"] = "array";
376
+ SGFieldType["roarray"] = "roarray";
377
+ SGFieldType["rect2d"] = "rect2d";
378
+ SGFieldType["rect2darray"] = "rect2darray";
379
+ })(SGFieldType = exports.SGFieldType || (exports.SGFieldType = {}));
380
+ exports.SGFieldTypes = Object.keys(SGFieldType);
350
381
  function getBscTypeFromSGFieldType(sgFieldType) {
351
382
  switch (sgFieldType) {
352
- case 'integer':
353
- case 'int': {
383
+ case SGFieldType.integer:
384
+ case SGFieldType.int: {
354
385
  return new IntegerType_1.IntegerType();
355
386
  }
356
- case 'longinteger': {
387
+ case SGFieldType.longinteger: {
357
388
  return new LongIntegerType_1.LongIntegerType();
358
389
  }
359
- case 'float': {
390
+ case SGFieldType.float: {
360
391
  return new FloatType_1.FloatType();
361
392
  }
362
- case 'string':
363
- case 'str': {
393
+ case SGFieldType.string:
394
+ case SGFieldType.str: {
364
395
  return new StringType_1.StringType();
365
396
  }
366
- case 'boolean':
367
- case 'bool': {
397
+ case SGFieldType.boolean:
398
+ case SGFieldType.bool: {
368
399
  return new BooleanType_1.BooleanType();
369
400
  }
370
401
  default: {
@@ -373,32 +404,26 @@ function getBscTypeFromSGFieldType(sgFieldType) {
373
404
  }
374
405
  }
375
406
  exports.getBscTypeFromSGFieldType = getBscTypeFromSGFieldType;
376
- class SGInterfaceFunction extends SGTag {
407
+ class SGInterfaceFunction extends SGElement {
377
408
  get name() {
378
409
  return this.getAttributeValue('name');
379
410
  }
380
411
  set name(value) {
381
412
  this.setAttributeValue('name', value);
382
413
  }
383
- get functionType() {
384
- const funcType = new TypedFunctionType_1.TypedFunctionType(new DynamicType_1.DynamicType());
385
- funcType.name = this.name;
386
- // TODO TYPES: Need to get parameter count/type for these functions for @callFunc usage
387
- return funcType;
388
- }
389
414
  }
390
415
  exports.SGInterfaceFunction = SGInterfaceFunction;
391
- class SGInterface extends SGTag {
416
+ class SGInterface extends SGElement {
392
417
  get fields() {
393
- return this.getChildNodesByTagName('field');
418
+ return this.getElementsByTagName('field');
394
419
  }
395
420
  get functions() {
396
- return this.getChildNodesByTagName('function');
421
+ return this.getElementsByTagName('function');
397
422
  }
398
423
  get members() {
399
424
  var _a;
400
425
  const result = [];
401
- for (const node of this.childNodes) {
426
+ for (const node of this.elements) {
402
427
  const tagName = (_a = node.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase();
403
428
  if (tagName === 'field' || tagName === 'function') {
404
429
  result.push(node);
@@ -411,7 +436,7 @@ class SGInterface extends SGTag {
411
436
  */
412
437
  hasField(id) {
413
438
  var _a;
414
- for (const node of this.childNodes) {
439
+ for (const node of this.elements) {
415
440
  const tagName = (_a = node.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase();
416
441
  if (tagName === 'field' && node.id === id) {
417
442
  return true;
@@ -424,7 +449,7 @@ class SGInterface extends SGTag {
424
449
  */
425
450
  hasFunction(name) {
426
451
  var _a;
427
- for (const node of this.childNodes) {
452
+ for (const node of this.elements) {
428
453
  const tagName = (_a = node.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase();
429
454
  if (tagName === 'function' && node.name === name) {
430
455
  return true;
@@ -463,11 +488,10 @@ class SGInterface extends SGTag {
463
488
  */
464
489
  removeField(id) {
465
490
  var _a;
466
- for (let i = 0; i < this.childNodes.length; i++) {
467
- const node = this.childNodes[i];
468
- const tagName = (_a = node.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase();
469
- if (tagName === 'field' && node.id === id) {
470
- this.childNodes.splice(i, 1);
491
+ for (let i = 0; i < this.elements.length; i++) {
492
+ const node = this.elements[i];
493
+ if (((_a = node.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'field' && node.id === id) {
494
+ this.elements.splice(i, 1);
471
495
  return true;
472
496
  }
473
497
  }
@@ -477,7 +501,7 @@ class SGInterface extends SGTag {
477
501
  * Get the interface function with the specified name
478
502
  */
479
503
  getFunction(name) {
480
- return this.functions.find(field => field.name === name);
504
+ return this.functions.find(func => func.name === name);
481
505
  }
482
506
  /**
483
507
  * Add or replace a function on the interface
@@ -495,11 +519,10 @@ class SGInterface extends SGTag {
495
519
  */
496
520
  removeFunction(name) {
497
521
  var _a;
498
- for (let i = 0; i < this.childNodes.length; i++) {
499
- const node = this.childNodes[i];
500
- const tagName = (_a = node.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase();
501
- if (tagName === 'function' && node.getAttributeValue('name') === name) {
502
- this.childNodes.splice(i, 1);
522
+ for (let i = 0; i < this.elements.length; i++) {
523
+ const node = this.elements[i];
524
+ if (((_a = node.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'function' && node.getAttributeValue('name') === name) {
525
+ this.elements.splice(i, 1);
503
526
  return true;
504
527
  }
505
528
  }
@@ -507,48 +530,95 @@ class SGInterface extends SGTag {
507
530
  }
508
531
  }
509
532
  exports.SGInterface = SGInterface;
510
- class SGComponent extends SGTag {
533
+ /**
534
+ * The `<component>` element in SceneGraph. Not to be confused about usages of components like `<Rectangle>`, those are considered `SGNode` instances.
535
+ */
536
+ class SGComponent extends SGElement {
511
537
  /**
512
538
  * Get all the <Field> and <Function> elements across all <Interface> nodes in this component
513
539
  */
514
540
  get interfaceMembers() {
515
541
  const members = [];
516
- for (const ifaceNode of this.getChildNodesByTagName('interface')) {
542
+ for (const ifaceNode of this.getElementsByTagName('interface')) {
517
543
  members.push(...ifaceNode.members);
518
544
  }
519
545
  return members;
520
546
  }
521
- get scripts() {
522
- return this.getChildNodesByTagName('script');
547
+ get scriptElements() {
548
+ return this.getElementsByTagName('script');
523
549
  }
524
550
  /**
525
- * Get the `<children>` element of this component. (not to be confused with the AST `childNodes` property).
551
+ * Get the <interface> element from this component (if present), or undefined if not.
552
+ * NOTE: Roku supports and merges multiple <interface> elements in a component, but this
553
+ * property points to the FIRST one. If you need to check whether a member exists,
554
+ * look through `this.interfaceMemebers` instead.
555
+ */
556
+ get interfaceElement() {
557
+ return this.getElementsByTagName('interface')[0];
558
+ }
559
+ /**
560
+ * Get the `<children>` element of this component. (not to be confused with the AST `childTags` property).
526
561
  * If there are multiope `<children>` elements, this function will return the last `<children>` tag because that's what Roku devices do.
527
562
  */
528
- get children() {
529
- const children = this.getChildNodesByTagName('children');
563
+ get childrenElement() {
564
+ const children = this.getElementsByTagName('children');
530
565
  return children[children.length - 1];
531
566
  }
532
- get customizations() {
533
- return this.getChildNodesByTagName('customization');
567
+ get customizationElements() {
568
+ return this.getElementsByTagName('customization');
534
569
  }
570
+ /**
571
+ * Specifies the name of the component, that allows you to create the component in your application.
572
+ * For example, if the name of the component is `CastMemberInfo`, you could create instances of the component declaratively
573
+ * in a child node element of a component `<children>` element (`<CastMemberInfo/>`), or using BrightScript in a `<script>`
574
+ * element (`createObject("roSGNode","CastMemberInfo")`).
575
+ *
576
+ * The name attribute is case-sensitive. You cannot successfully create or declare a component unless the component name exactly
577
+ * matches the name attribute, including case. Also be aware that two components with the exact same name in the same application
578
+ * components directory will have undefined and generally undesirable results if you attempt to create a component object with that name in the application.
579
+ */
535
580
  get name() {
536
581
  return this.getAttributeValue('name');
537
582
  }
538
583
  set name(value) {
539
584
  this.setAttributeValue('name', value);
540
585
  }
586
+ /**
587
+ * Specifies the name of the built-in or extended SceneGraph scene or node class whose functionality is extended by this component.
588
+ *
589
+ * 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).
590
+ *
591
+ * By default, a component extends the Group node class.
592
+ */
541
593
  get extends() {
542
594
  return this.getAttributeValue('extends');
543
595
  }
544
596
  set extends(value) {
545
597
  this.setAttributeValue('extends', value);
546
598
  }
599
+ /**
600
+ * Specifies the ID of a node declared in the XML file to have the initial remote control focus when the component is instantiated.
601
+ */
602
+ get initialFocus() {
603
+ return this.getAttributeValue('initialFocus');
604
+ }
605
+ set initialFocus(value) {
606
+ this.setAttributeValue('initialFocus', value);
607
+ }
608
+ /**
609
+ * Specifies the version of the SceneGraph API. The default is 1.0 if not specified.
610
+ */
611
+ get version() {
612
+ return this.getAttributeValue('version');
613
+ }
614
+ set version(value) {
615
+ this.setAttributeValue('version', value);
616
+ }
547
617
  /**
548
618
  * Does the specified field exist in the component interface?
549
619
  */
550
620
  hasInterfaceField(id) {
551
- for (const ifaceNode of this.getChildNodesByTagName('interface')) {
621
+ for (const ifaceNode of this.getElementsByTagName('interface')) {
552
622
  if (ifaceNode.hasField(id)) {
553
623
  return true;
554
624
  }
@@ -559,7 +629,7 @@ class SGComponent extends SGTag {
559
629
  * Does the specified function exist in the component interface?
560
630
  */
561
631
  hasInterfaceFunction(name) {
562
- for (const ifaceNode of this.getChildNodesByTagName('interface')) {
632
+ for (const ifaceNode of this.getElementsByTagName('interface')) {
563
633
  if (ifaceNode.hasFunction(name)) {
564
634
  return true;
565
635
  }
@@ -570,7 +640,7 @@ class SGComponent extends SGTag {
570
640
  * Get an interface field with the specified name
571
641
  */
572
642
  getInterfaceField(name) {
573
- for (const ifaceNode of this.getChildNodesByTagName('interface')) {
643
+ for (const ifaceNode of this.getElementsByTagName('interface')) {
574
644
  const field = ifaceNode.getField(name);
575
645
  if (field) {
576
646
  return field;
@@ -581,7 +651,7 @@ class SGComponent extends SGTag {
581
651
  * Return the first SGInterface node found, or insert a new one then return it
582
652
  */
583
653
  ensureInterfaceNode() {
584
- for (const el of this.childNodes) {
654
+ for (const el of this.elements) {
585
655
  if (el.tokens.startTagName.text.toLowerCase() === 'interface') {
586
656
  return el;
587
657
  }
@@ -609,7 +679,7 @@ class SGComponent extends SGTag {
609
679
  * @returns true if a field was found and removed. Returns false if no field was found with that name
610
680
  */
611
681
  removeInterfaceField(id) {
612
- for (const ifaceNode of this.getChildNodesByTagName('interface')) {
682
+ for (const ifaceNode of this.getElementsByTagName('interface')) {
613
683
  if (ifaceNode.removeField(id)) {
614
684
  return true;
615
685
  }
@@ -617,10 +687,10 @@ class SGComponent extends SGTag {
617
687
  return false;
618
688
  }
619
689
  /**
620
- * Get an interface field with the specified name
621
- */
690
+ * Get an interface field with the specified name
691
+ */
622
692
  getInterfaceFunction(name) {
623
- for (const ifaceNode of this.getChildNodesByTagName('interface')) {
693
+ for (const ifaceNode of this.getElementsByTagName('interface')) {
624
694
  const func = ifaceNode.getFunction(name);
625
695
  if (func) {
626
696
  return func;
@@ -632,7 +702,7 @@ class SGComponent extends SGTag {
632
702
  * @returns true if a function was found and removed. Returns false if no function was found with that name
633
703
  */
634
704
  removeInterfaceFunction(name) {
635
- for (const ifaceNode of this.getChildNodesByTagName('interface')) {
705
+ for (const ifaceNode of this.getElementsByTagName('interface')) {
636
706
  if (ifaceNode.removeFunction(name)) {
637
707
  return true;
638
708
  }
@@ -642,20 +712,20 @@ class SGComponent extends SGTag {
642
712
  }
643
713
  exports.SGComponent = SGComponent;
644
714
  class SGAst {
645
- constructor(prolog, root, component) {
646
- this.prolog = prolog;
647
- this.root = root;
648
- this.component = component;
715
+ constructor(prologElement, rootElement, componentElement) {
716
+ this.prologElement = prologElement;
717
+ this.rootElement = rootElement;
718
+ this.componentElement = componentElement;
649
719
  }
650
720
  transpile(state) {
651
721
  const chunks = [];
652
722
  //write XML prolog
653
- if (this.prolog) {
654
- chunks.push(this.prolog.transpile(state));
723
+ if (this.prologElement) {
724
+ chunks.push(this.prologElement.transpile(state));
655
725
  }
656
- if (this.component) {
726
+ if (this.componentElement) {
657
727
  //write content
658
- chunks.push(this.component.transpile(state));
728
+ chunks.push(this.componentElement.transpile(state));
659
729
  }
660
730
  return new source_map_1.SourceNode(null, null, null, chunks);
661
731
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SGTypes.js","sourceRoot":"","sources":["../../src/parser/SGTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SGTypes.js","sourceRoot":"","sources":["../../src/parser/SGTypes.ts"],"names":[],"mappings":"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"}