brighterscript 1.0.0-alpha.3 → 1.0.0-alpha.30

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 (605) hide show
  1. package/CHANGELOG.md +1230 -285
  2. package/README.md +61 -131
  3. package/bsconfig.schema.json +68 -2
  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 +35 -0
  8. package/dist/AstValidationSegmenter.js +209 -0
  9. package/dist/AstValidationSegmenter.js.map +1 -0
  10. package/dist/BsConfig.d.ts +51 -6
  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.d.ts +5 -6
  15. package/dist/Cache.js +12 -11
  16. package/dist/Cache.js.map +1 -1
  17. package/dist/CacheVerifier.d.ts +7 -0
  18. package/dist/CacheVerifier.js +20 -0
  19. package/dist/CacheVerifier.js.map +1 -0
  20. package/dist/CodeActionUtil.d.ts +11 -2
  21. package/dist/CodeActionUtil.js +17 -3
  22. package/dist/CodeActionUtil.js.map +1 -1
  23. package/dist/CommentFlagProcessor.d.ts +7 -6
  24. package/dist/CommentFlagProcessor.js +10 -7
  25. package/dist/CommentFlagProcessor.js.map +1 -1
  26. package/dist/DependencyGraph.d.ts +8 -3
  27. package/dist/DependencyGraph.js +49 -16
  28. package/dist/DependencyGraph.js.map +1 -1
  29. package/dist/DiagnosticCollection.d.ts +5 -3
  30. package/dist/DiagnosticCollection.js +18 -16
  31. package/dist/DiagnosticCollection.js.map +1 -1
  32. package/dist/DiagnosticFilterer.d.ts +8 -4
  33. package/dist/DiagnosticFilterer.js +77 -44
  34. package/dist/DiagnosticFilterer.js.map +1 -1
  35. package/dist/DiagnosticManager.d.ts +55 -0
  36. package/dist/DiagnosticManager.js +214 -0
  37. package/dist/DiagnosticManager.js.map +1 -0
  38. package/dist/DiagnosticMessages.d.ts +184 -17
  39. package/dist/DiagnosticMessages.js +242 -24
  40. package/dist/DiagnosticMessages.js.map +1 -1
  41. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  42. package/dist/DiagnosticSeverityAdjuster.js +41 -0
  43. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  44. package/dist/FunctionScope.d.ts +28 -0
  45. package/dist/FunctionScope.js +52 -0
  46. package/dist/FunctionScope.js.map +1 -0
  47. package/dist/KeyedThrottler.d.ts +3 -3
  48. package/dist/KeyedThrottler.js +3 -3
  49. package/dist/KeyedThrottler.js.map +1 -1
  50. package/dist/LanguageServer.d.ts +72 -47
  51. package/dist/LanguageServer.js +544 -312
  52. package/dist/LanguageServer.js.map +1 -1
  53. package/dist/Logger.d.ts +9 -10
  54. package/dist/Logger.js +36 -30
  55. package/dist/Logger.js.map +1 -1
  56. package/dist/PluginInterface.d.ts +29 -7
  57. package/dist/PluginInterface.js +90 -7
  58. package/dist/PluginInterface.js.map +1 -1
  59. package/dist/Program.d.ts +204 -99
  60. package/dist/Program.js +1060 -699
  61. package/dist/Program.js.map +1 -1
  62. package/dist/ProgramBuilder.d.ts +29 -18
  63. package/dist/ProgramBuilder.js +170 -132
  64. package/dist/ProgramBuilder.js.map +1 -1
  65. package/dist/Scope.d.ts +144 -109
  66. package/dist/Scope.js +538 -551
  67. package/dist/Scope.js.map +1 -1
  68. package/dist/SemanticTokenUtils.d.ts +14 -0
  69. package/dist/SemanticTokenUtils.js +81 -0
  70. package/dist/SemanticTokenUtils.js.map +1 -0
  71. package/dist/Stopwatch.d.ts +4 -0
  72. package/dist/Stopwatch.js +8 -1
  73. package/dist/Stopwatch.js.map +1 -1
  74. package/dist/SymbolTable.d.ts +91 -24
  75. package/dist/SymbolTable.js +286 -63
  76. package/dist/SymbolTable.js.map +1 -1
  77. package/dist/SymbolTypeFlag.d.ts +8 -0
  78. package/dist/SymbolTypeFlag.js +13 -0
  79. package/dist/SymbolTypeFlag.js.map +1 -0
  80. package/dist/Throttler.d.ts +12 -0
  81. package/dist/Throttler.js +39 -0
  82. package/dist/Throttler.js.map +1 -1
  83. package/dist/Watcher.d.ts +0 -3
  84. package/dist/Watcher.js +0 -3
  85. package/dist/Watcher.js.map +1 -1
  86. package/dist/XmlScope.d.ts +5 -15
  87. package/dist/XmlScope.js +35 -87
  88. package/dist/XmlScope.js.map +1 -1
  89. package/dist/astUtils/CachedLookups.d.ts +49 -0
  90. package/dist/astUtils/CachedLookups.js +324 -0
  91. package/dist/astUtils/CachedLookups.js.map +1 -0
  92. package/dist/astUtils/Editor.d.ts +69 -0
  93. package/dist/astUtils/Editor.js +245 -0
  94. package/dist/astUtils/Editor.js.map +1 -0
  95. package/dist/astUtils/Editor.spec.js +258 -0
  96. package/dist/astUtils/Editor.spec.js.map +1 -0
  97. package/dist/astUtils/creators.d.ts +33 -10
  98. package/dist/astUtils/creators.js +224 -30
  99. package/dist/astUtils/creators.js.map +1 -1
  100. package/dist/astUtils/creators.spec.js +5 -5
  101. package/dist/astUtils/creators.spec.js.map +1 -1
  102. package/dist/astUtils/reflection.d.ts +145 -82
  103. package/dist/astUtils/reflection.js +304 -132
  104. package/dist/astUtils/reflection.js.map +1 -1
  105. package/dist/astUtils/reflection.spec.js +267 -162
  106. package/dist/astUtils/reflection.spec.js.map +1 -1
  107. package/dist/astUtils/stackedVisitor.js.map +1 -1
  108. package/dist/astUtils/stackedVisitor.spec.js +14 -14
  109. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  110. package/dist/astUtils/visitors.d.ts +114 -53
  111. package/dist/astUtils/visitors.js +70 -13
  112. package/dist/astUtils/visitors.js.map +1 -1
  113. package/dist/astUtils/visitors.spec.js +465 -51
  114. package/dist/astUtils/visitors.spec.js.map +1 -1
  115. package/dist/astUtils/xml.d.ts +9 -8
  116. package/dist/astUtils/xml.js +10 -5
  117. package/dist/astUtils/xml.js.map +1 -1
  118. package/dist/bscPlugin/BscPlugin.d.ts +22 -1
  119. package/dist/bscPlugin/BscPlugin.js +88 -0
  120. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  121. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  122. package/dist/bscPlugin/CallExpressionInfo.js +131 -0
  123. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  124. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  125. package/dist/bscPlugin/FileWriter.js +24 -0
  126. package/dist/bscPlugin/FileWriter.js.map +1 -0
  127. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  128. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  129. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  130. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +1 -1
  131. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +26 -17
  132. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  133. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +94 -20
  134. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  135. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +60 -0
  136. package/dist/bscPlugin/completions/CompletionsProcessor.js +601 -0
  137. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  138. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +2139 -0
  139. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  140. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  141. package/dist/bscPlugin/definition/DefinitionProvider.js +210 -0
  142. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  143. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +88 -0
  144. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  145. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  146. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  147. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  148. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  149. package/dist/bscPlugin/hover/HoverProcessor.js +218 -0
  150. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  151. package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +1 -0
  152. package/dist/bscPlugin/hover/HoverProcessor.spec.js +737 -0
  153. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -0
  154. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  155. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  156. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  157. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  158. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  159. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  160. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  161. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +138 -0
  162. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  163. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
  164. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +491 -0
  165. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
  166. package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
  167. package/dist/bscPlugin/serialize/BslibInjector.spec.js +19 -0
  168. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  169. package/dist/bscPlugin/serialize/BslibManager.d.ts +9 -0
  170. package/dist/bscPlugin/serialize/BslibManager.js +40 -0
  171. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  172. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  173. package/dist/bscPlugin/serialize/FileSerializer.js +72 -0
  174. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  175. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  176. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  177. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  178. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +1 -0
  179. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +291 -0
  180. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  181. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  182. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  183. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  184. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +1 -0
  185. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  186. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  187. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  188. package/dist/bscPlugin/symbols/symbolUtils.js +140 -0
  189. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  190. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +21 -0
  191. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +202 -0
  192. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  193. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  194. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +41 -0
  195. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  196. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  197. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  198. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  199. package/dist/bscPlugin/validation/BrsFileAfterValidatior.d.ts +7 -0
  200. package/dist/bscPlugin/validation/BrsFileAfterValidatior.js +18 -0
  201. package/dist/bscPlugin/validation/BrsFileAfterValidatior.js.map +1 -0
  202. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +34 -0
  203. package/dist/bscPlugin/validation/BrsFileValidator.js +462 -0
  204. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  205. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +1 -0
  206. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +758 -0
  207. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -0
  208. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  209. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  210. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  211. package/dist/bscPlugin/validation/ScopeValidator.d.ts +131 -0
  212. package/dist/bscPlugin/validation/ScopeValidator.js +1097 -0
  213. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  214. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  215. package/dist/bscPlugin/validation/ScopeValidator.spec.js +2796 -0
  216. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  217. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  218. package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
  219. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  220. package/dist/cli.js +117 -11
  221. package/dist/cli.js.map +1 -1
  222. package/dist/deferred.d.ts +3 -3
  223. package/dist/deferred.js.map +1 -1
  224. package/dist/diagnosticUtils.d.ts +10 -3
  225. package/dist/diagnosticUtils.js +58 -21
  226. package/dist/diagnosticUtils.js.map +1 -1
  227. package/dist/examples/plugins/removePrint.js +8 -12
  228. package/dist/examples/plugins/removePrint.js.map +1 -1
  229. package/dist/files/AssetFile.d.ts +24 -0
  230. package/dist/files/AssetFile.js +25 -0
  231. package/dist/files/AssetFile.js.map +1 -0
  232. package/dist/files/BrsFile.Class.spec.js +858 -153
  233. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  234. package/dist/files/BrsFile.d.ts +144 -82
  235. package/dist/files/BrsFile.js +847 -911
  236. package/dist/files/BrsFile.js.map +1 -1
  237. package/dist/files/BrsFile.spec.js +2928 -834
  238. package/dist/files/BrsFile.spec.js.map +1 -1
  239. package/dist/files/BscFile.d.ts +101 -0
  240. package/dist/files/BscFile.js +15 -0
  241. package/dist/files/BscFile.js.map +1 -0
  242. package/dist/files/Factory.d.ts +25 -0
  243. package/dist/files/Factory.js +22 -0
  244. package/dist/files/Factory.js.map +1 -0
  245. package/dist/files/LazyFileData.d.ts +20 -0
  246. package/dist/files/LazyFileData.js +54 -0
  247. package/dist/files/LazyFileData.js.map +1 -0
  248. package/dist/files/LazyFileData.spec.d.ts +1 -0
  249. package/dist/files/LazyFileData.spec.js +27 -0
  250. package/dist/files/LazyFileData.spec.js.map +1 -0
  251. package/dist/files/XmlFile.d.ts +73 -41
  252. package/dist/files/XmlFile.js +126 -138
  253. package/dist/files/XmlFile.js.map +1 -1
  254. package/dist/files/XmlFile.spec.js +450 -318
  255. package/dist/files/XmlFile.spec.js.map +1 -1
  256. package/dist/files/tests/imports.spec.js +62 -52
  257. package/dist/files/tests/imports.spec.js.map +1 -1
  258. package/dist/files/tests/optionalChaning.spec.d.ts +1 -0
  259. package/dist/files/tests/optionalChaning.spec.js +152 -0
  260. package/dist/files/tests/optionalChaning.spec.js.map +1 -0
  261. package/dist/globalCallables.d.ts +3 -1
  262. package/dist/globalCallables.js +416 -162
  263. package/dist/globalCallables.js.map +1 -1
  264. package/dist/index.d.ts +25 -3
  265. package/dist/index.js +42 -5
  266. package/dist/index.js.map +1 -1
  267. package/dist/interfaces.d.ts +722 -119
  268. package/dist/interfaces.js +31 -0
  269. package/dist/interfaces.js.map +1 -1
  270. package/dist/lexer/Character.spec.js +5 -5
  271. package/dist/lexer/Character.spec.js.map +1 -1
  272. package/dist/lexer/Lexer.d.ts +40 -9
  273. package/dist/lexer/Lexer.js +191 -49
  274. package/dist/lexer/Lexer.js.map +1 -1
  275. package/dist/lexer/Lexer.spec.js +775 -563
  276. package/dist/lexer/Lexer.spec.js.map +1 -1
  277. package/dist/lexer/Token.d.ts +11 -3
  278. package/dist/lexer/Token.js +10 -2
  279. package/dist/lexer/Token.js.map +1 -1
  280. package/dist/lexer/TokenKind.d.ts +27 -1
  281. package/dist/lexer/TokenKind.js +112 -5
  282. package/dist/lexer/TokenKind.js.map +1 -1
  283. package/dist/logging.d.ts +9 -0
  284. package/dist/logging.js +16 -0
  285. package/dist/logging.js.map +1 -0
  286. package/dist/parser/AstNode.d.ts +180 -0
  287. package/dist/parser/AstNode.js +245 -0
  288. package/dist/parser/AstNode.js.map +1 -0
  289. package/dist/parser/AstNode.spec.d.ts +1 -0
  290. package/dist/parser/AstNode.spec.js +165 -0
  291. package/dist/parser/AstNode.spec.js.map +1 -0
  292. package/dist/parser/BrsTranspileState.d.ts +12 -2
  293. package/dist/parser/BrsTranspileState.js +6 -0
  294. package/dist/parser/BrsTranspileState.js.map +1 -1
  295. package/dist/parser/Expression.d.ts +454 -210
  296. package/dist/parser/Expression.js +953 -498
  297. package/dist/parser/Expression.js.map +1 -1
  298. package/dist/parser/Parser.Class.spec.js +200 -95
  299. package/dist/parser/Parser.Class.spec.js.map +1 -1
  300. package/dist/parser/Parser.d.ts +105 -120
  301. package/dist/parser/Parser.js +1406 -912
  302. package/dist/parser/Parser.js.map +1 -1
  303. package/dist/parser/Parser.spec.d.ts +3 -1
  304. package/dist/parser/Parser.spec.js +1383 -456
  305. package/dist/parser/Parser.spec.js.map +1 -1
  306. package/dist/parser/SGParser.d.ts +44 -6
  307. package/dist/parser/SGParser.js +212 -185
  308. package/dist/parser/SGParser.js.map +1 -1
  309. package/dist/parser/SGParser.spec.js +30 -28
  310. package/dist/parser/SGParser.spec.js.map +1 -1
  311. package/dist/parser/SGTypes.d.ts +293 -50
  312. package/dist/parser/SGTypes.js +540 -187
  313. package/dist/parser/SGTypes.js.map +1 -1
  314. package/dist/parser/Statement.d.ts +734 -244
  315. package/dist/parser/Statement.js +1758 -611
  316. package/dist/parser/Statement.js.map +1 -1
  317. package/dist/parser/Statement.spec.js +45 -34
  318. package/dist/parser/Statement.spec.js.map +1 -1
  319. package/dist/parser/TranspileState.d.ts +17 -8
  320. package/dist/parser/TranspileState.js +73 -11
  321. package/dist/parser/TranspileState.js.map +1 -1
  322. package/dist/parser/tests/Parser.spec.d.ts +10 -9
  323. package/dist/parser/tests/Parser.spec.js +18 -14
  324. package/dist/parser/tests/Parser.spec.js.map +1 -1
  325. package/dist/parser/tests/controlFlow/For.spec.js +79 -69
  326. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  327. package/dist/parser/tests/controlFlow/ForEach.spec.js +53 -47
  328. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  329. package/dist/parser/tests/controlFlow/If.spec.js +217 -196
  330. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  331. package/dist/parser/tests/controlFlow/While.spec.js +48 -42
  332. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  333. package/dist/parser/tests/expression/Additive.spec.js +31 -31
  334. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  335. package/dist/parser/tests/expression/ArrayLiterals.spec.js +157 -120
  336. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  337. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +202 -139
  338. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  339. package/dist/parser/tests/expression/Boolean.spec.js +25 -25
  340. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  341. package/dist/parser/tests/expression/Call.spec.js +150 -41
  342. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  343. package/dist/parser/tests/expression/Exponential.spec.js +18 -18
  344. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  345. package/dist/parser/tests/expression/Function.spec.js +257 -257
  346. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  347. package/dist/parser/tests/expression/Indexing.spec.js +160 -90
  348. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  349. package/dist/parser/tests/expression/Multiplicative.spec.js +38 -38
  350. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  351. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +196 -98
  352. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  353. package/dist/parser/tests/expression/PrefixUnary.spec.js +42 -42
  354. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  355. package/dist/parser/tests/expression/Primary.spec.js +42 -42
  356. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  357. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +1 -0
  358. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +171 -0
  359. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -0
  360. package/dist/parser/tests/expression/Relational.spec.js +44 -44
  361. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  362. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +31 -31
  363. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  364. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +230 -90
  365. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  366. package/dist/parser/tests/expression/TernaryExpression.spec.js +377 -148
  367. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  368. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  369. package/dist/parser/tests/expression/TypeExpression.spec.js +126 -0
  370. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  371. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  372. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  373. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  374. package/dist/parser/tests/statement/AssignmentOperators.spec.js +37 -37
  375. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  376. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +1 -0
  377. package/dist/parser/tests/statement/ConstStatement.spec.js +262 -0
  378. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -0
  379. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  380. package/dist/parser/tests/statement/Continue.spec.js +119 -0
  381. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  382. package/dist/parser/tests/statement/Declaration.spec.js +45 -45
  383. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  384. package/dist/parser/tests/statement/Dim.spec.js +22 -22
  385. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  386. package/dist/parser/tests/statement/Enum.spec.d.ts +1 -0
  387. package/dist/parser/tests/statement/Enum.spec.js +684 -0
  388. package/dist/parser/tests/statement/Enum.spec.js.map +1 -0
  389. package/dist/parser/tests/statement/For.spec.d.ts +1 -0
  390. package/dist/parser/tests/statement/For.spec.js +45 -0
  391. package/dist/parser/tests/statement/For.spec.js.map +1 -0
  392. package/dist/parser/tests/statement/ForEach.spec.d.ts +1 -0
  393. package/dist/parser/tests/statement/ForEach.spec.js +36 -0
  394. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -0
  395. package/dist/parser/tests/statement/Function.spec.js +208 -198
  396. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  397. package/dist/parser/tests/statement/Goto.spec.js +16 -15
  398. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  399. package/dist/parser/tests/statement/Increment.spec.js +51 -51
  400. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  401. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
  402. package/dist/parser/tests/statement/InterfaceStatement.spec.js +109 -0
  403. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
  404. package/dist/parser/tests/statement/LibraryStatement.spec.js +18 -18
  405. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  406. package/dist/parser/tests/statement/Misc.spec.js +123 -163
  407. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  408. package/dist/parser/tests/statement/PrintStatement.spec.js +125 -108
  409. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  410. package/dist/parser/tests/statement/ReturnStatement.spec.js +51 -49
  411. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  412. package/dist/parser/tests/statement/Set.spec.js +110 -97
  413. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  414. package/dist/parser/tests/statement/Stop.spec.js +13 -12
  415. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  416. package/dist/parser/tests/statement/Throw.spec.js +6 -6
  417. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  418. package/dist/parser/tests/statement/TryCatch.spec.js +26 -15
  419. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  420. package/dist/preprocessor/Manifest.d.ts +6 -6
  421. package/dist/preprocessor/Manifest.js +17 -38
  422. package/dist/preprocessor/Manifest.js.map +1 -1
  423. package/dist/preprocessor/Manifest.spec.d.ts +1 -0
  424. package/dist/preprocessor/Manifest.spec.js +78 -103
  425. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  426. package/dist/roku-types/data.json +19351 -0
  427. package/dist/roku-types/index.d.ts +5483 -0
  428. package/dist/roku-types/index.js +11 -0
  429. package/dist/roku-types/index.js.map +1 -0
  430. package/dist/types/ArrayType.d.ts +9 -5
  431. package/dist/types/ArrayType.js +68 -24
  432. package/dist/types/ArrayType.js.map +1 -1
  433. package/dist/types/ArrayType.spec.js +39 -11
  434. package/dist/types/ArrayType.spec.js.map +1 -1
  435. package/dist/types/AssociativeArrayType.d.ts +14 -0
  436. package/dist/types/AssociativeArrayType.js +60 -0
  437. package/dist/types/AssociativeArrayType.js.map +1 -0
  438. package/dist/types/BaseFunctionType.d.ts +9 -0
  439. package/dist/types/BaseFunctionType.js +25 -0
  440. package/dist/types/BaseFunctionType.js.map +1 -0
  441. package/dist/types/BooleanType.d.ts +10 -5
  442. package/dist/types/BooleanType.js +21 -9
  443. package/dist/types/BooleanType.js.map +1 -1
  444. package/dist/types/BooleanType.spec.js +10 -4
  445. package/dist/types/BooleanType.spec.js.map +1 -1
  446. package/dist/types/BscType.d.ts +29 -3
  447. package/dist/types/BscType.js +121 -0
  448. package/dist/types/BscType.js.map +1 -1
  449. package/dist/types/BscTypeKind.d.ts +25 -0
  450. package/dist/types/BscTypeKind.js +30 -0
  451. package/dist/types/BscTypeKind.js.map +1 -0
  452. package/dist/types/BuiltInInterfaceAdder.d.ts +23 -0
  453. package/dist/types/BuiltInInterfaceAdder.js +174 -0
  454. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  455. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  456. package/dist/types/BuiltInInterfaceAdder.spec.js +115 -0
  457. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  458. package/dist/types/ClassType.d.ts +17 -0
  459. package/dist/types/ClassType.js +58 -0
  460. package/dist/types/ClassType.js.map +1 -0
  461. package/dist/types/ClassType.spec.d.ts +1 -0
  462. package/dist/types/ClassType.spec.js +76 -0
  463. package/dist/types/ClassType.spec.js.map +1 -0
  464. package/dist/types/ComponentType.d.ts +27 -0
  465. package/dist/types/ComponentType.js +83 -0
  466. package/dist/types/ComponentType.js.map +1 -0
  467. package/dist/types/DoubleType.d.ts +10 -5
  468. package/dist/types/DoubleType.js +25 -18
  469. package/dist/types/DoubleType.js.map +1 -1
  470. package/dist/types/DoubleType.spec.js +12 -4
  471. package/dist/types/DoubleType.spec.js.map +1 -1
  472. package/dist/types/DynamicType.d.ts +12 -5
  473. package/dist/types/DynamicType.js +22 -6
  474. package/dist/types/DynamicType.js.map +1 -1
  475. package/dist/types/DynamicType.spec.js +16 -5
  476. package/dist/types/DynamicType.spec.js.map +1 -1
  477. package/dist/types/EnumType.d.ts +40 -0
  478. package/dist/types/EnumType.js +80 -0
  479. package/dist/types/EnumType.js.map +1 -0
  480. package/dist/types/EnumType.spec.d.ts +1 -0
  481. package/dist/types/EnumType.spec.js +33 -0
  482. package/dist/types/EnumType.spec.js.map +1 -0
  483. package/dist/types/FloatType.d.ts +10 -5
  484. package/dist/types/FloatType.js +25 -18
  485. package/dist/types/FloatType.js.map +1 -1
  486. package/dist/types/FloatType.spec.js +4 -4
  487. package/dist/types/FloatType.spec.js.map +1 -1
  488. package/dist/types/FunctionType.d.ts +10 -22
  489. package/dist/types/FunctionType.js +26 -63
  490. package/dist/types/FunctionType.js.map +1 -1
  491. package/dist/types/InheritableType.d.ts +28 -0
  492. package/dist/types/InheritableType.js +157 -0
  493. package/dist/types/InheritableType.js.map +1 -0
  494. package/dist/types/IntegerType.d.ts +10 -5
  495. package/dist/types/IntegerType.js +25 -18
  496. package/dist/types/IntegerType.js.map +1 -1
  497. package/dist/types/IntegerType.spec.js +8 -4
  498. package/dist/types/IntegerType.spec.js.map +1 -1
  499. package/dist/types/InterfaceType.d.ts +14 -6
  500. package/dist/types/InterfaceType.js +26 -15
  501. package/dist/types/InterfaceType.js.map +1 -1
  502. package/dist/types/InterfaceType.spec.d.ts +1 -0
  503. package/dist/types/InterfaceType.spec.js +227 -0
  504. package/dist/types/InterfaceType.spec.js.map +1 -0
  505. package/dist/types/InvalidType.d.ts +9 -5
  506. package/dist/types/InvalidType.js +20 -9
  507. package/dist/types/InvalidType.js.map +1 -1
  508. package/dist/types/InvalidType.spec.js +8 -4
  509. package/dist/types/InvalidType.spec.js.map +1 -1
  510. package/dist/types/LongIntegerType.d.ts +10 -5
  511. package/dist/types/LongIntegerType.js +25 -18
  512. package/dist/types/LongIntegerType.js.map +1 -1
  513. package/dist/types/LongIntegerType.spec.js +10 -4
  514. package/dist/types/LongIntegerType.spec.js.map +1 -1
  515. package/dist/types/NamespaceType.d.ts +12 -0
  516. package/dist/types/NamespaceType.js +28 -0
  517. package/dist/types/NamespaceType.js.map +1 -0
  518. package/dist/types/ObjectType.d.ts +10 -5
  519. package/dist/types/ObjectType.js +23 -9
  520. package/dist/types/ObjectType.js.map +1 -1
  521. package/dist/types/ObjectType.spec.js +3 -3
  522. package/dist/types/ObjectType.spec.js.map +1 -1
  523. package/dist/types/ReferenceType.d.ts +71 -0
  524. package/dist/types/ReferenceType.js +467 -0
  525. package/dist/types/ReferenceType.js.map +1 -0
  526. package/dist/types/ReferenceType.spec.d.ts +1 -0
  527. package/dist/types/ReferenceType.spec.js +151 -0
  528. package/dist/types/ReferenceType.spec.js.map +1 -0
  529. package/dist/types/StringType.d.ts +13 -5
  530. package/dist/types/StringType.js +25 -9
  531. package/dist/types/StringType.js.map +1 -1
  532. package/dist/types/StringType.spec.js +3 -3
  533. package/dist/types/StringType.spec.js.map +1 -1
  534. package/dist/types/TypedFunctionType.d.ts +33 -0
  535. package/dist/types/TypedFunctionType.js +106 -0
  536. package/dist/types/TypedFunctionType.js.map +1 -0
  537. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  538. package/dist/types/TypedFunctionType.spec.js +122 -0
  539. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  540. package/dist/types/UninitializedType.d.ts +8 -6
  541. package/dist/types/UninitializedType.js +15 -9
  542. package/dist/types/UninitializedType.js.map +1 -1
  543. package/dist/types/UnionType.d.ts +20 -0
  544. package/dist/types/UnionType.js +127 -0
  545. package/dist/types/UnionType.js.map +1 -0
  546. package/dist/types/UnionType.spec.d.ts +1 -0
  547. package/dist/types/UnionType.spec.js +129 -0
  548. package/dist/types/UnionType.spec.js.map +1 -0
  549. package/dist/types/VoidType.d.ts +10 -5
  550. package/dist/types/VoidType.js +20 -9
  551. package/dist/types/VoidType.js.map +1 -1
  552. package/dist/types/VoidType.spec.js +3 -3
  553. package/dist/types/VoidType.spec.js.map +1 -1
  554. package/dist/types/helper.spec.d.ts +1 -0
  555. package/dist/types/helper.spec.js +144 -0
  556. package/dist/types/helper.spec.js.map +1 -0
  557. package/dist/types/helpers.d.ts +24 -0
  558. package/dist/types/helpers.js +178 -0
  559. package/dist/types/helpers.js.map +1 -0
  560. package/dist/types/index.d.ts +22 -0
  561. package/dist/types/index.js +39 -0
  562. package/dist/types/index.js.map +1 -0
  563. package/dist/util.d.ts +216 -106
  564. package/dist/util.js +1289 -319
  565. package/dist/util.js.map +1 -1
  566. package/dist/validators/ClassValidator.d.ts +9 -15
  567. package/dist/validators/ClassValidator.js +81 -134
  568. package/dist/validators/ClassValidator.js.map +1 -1
  569. package/package.json +169 -138
  570. package/dist/astUtils/index.d.ts +0 -7
  571. package/dist/astUtils/index.js +0 -26
  572. package/dist/astUtils/index.js.map +0 -1
  573. package/dist/lexer/index.d.ts +0 -3
  574. package/dist/lexer/index.js +0 -17
  575. package/dist/lexer/index.js.map +0 -1
  576. package/dist/parser/index.d.ts +0 -3
  577. package/dist/parser/index.js +0 -16
  578. package/dist/parser/index.js.map +0 -1
  579. package/dist/preprocessor/Chunk.d.ts +0 -82
  580. package/dist/preprocessor/Chunk.js +0 -77
  581. package/dist/preprocessor/Chunk.js.map +0 -1
  582. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  583. package/dist/preprocessor/Preprocessor.js +0 -156
  584. package/dist/preprocessor/Preprocessor.js.map +0 -1
  585. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  586. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  587. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  588. package/dist/preprocessor/PreprocessorParser.js +0 -194
  589. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  590. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  591. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  592. package/dist/preprocessor/index.d.ts +0 -3
  593. package/dist/preprocessor/index.js +0 -16
  594. package/dist/preprocessor/index.js.map +0 -1
  595. package/dist/types/CustomType.d.ts +0 -10
  596. package/dist/types/CustomType.js +0 -35
  597. package/dist/types/CustomType.js.map +0 -1
  598. package/dist/types/FunctionType.spec.js +0 -29
  599. package/dist/types/FunctionType.spec.js.map +0 -1
  600. package/dist/types/LazyType.d.ts +0 -15
  601. package/dist/types/LazyType.js +0 -32
  602. package/dist/types/LazyType.js.map +0 -1
  603. /package/dist/{preprocessor/Preprocessor.spec.d.ts → astUtils/Editor.spec.d.ts} +0 -0
  604. /package/dist/{preprocessor/PreprocessorParser.spec.d.ts → bscPlugin/completions/CompletionsProcessor.spec.d.ts} +0 -0
  605. /package/dist/{types/FunctionType.spec.d.ts → bscPlugin/definition/DefinitionProvider.spec.d.ts} +0 -0
@@ -0,0 +1,491 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_config_spec_1 = require("../../chai-config.spec");
4
+ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
5
+ const Program_1 = require("../../Program");
6
+ const testHelpers_spec_1 = require("../../testHelpers.spec");
7
+ const util_1 = require("../../util");
8
+ const testHelpers_spec_2 = require("../../testHelpers.spec");
9
+ describe('BrsFileSemanticTokensProcessor', () => {
10
+ let program;
11
+ beforeEach(() => {
12
+ program = new Program_1.Program({
13
+ rootDir: testHelpers_spec_2.rootDir
14
+ });
15
+ });
16
+ afterEach(() => {
17
+ program.dispose();
18
+ });
19
+ /**
20
+ * Ensure the specified tokens are present in the full list
21
+ */
22
+ function expectSemanticTokensIncludes(file, expected, validateDiagnostics = true) {
23
+ const result = getSemanticTokenResults(file, expected, validateDiagnostics);
24
+ (0, chai_config_spec_1.expect)(result.actual).to.include.members(result.expected);
25
+ }
26
+ /**
27
+ * Ensure that the full list of tokens exactly equals the expected list
28
+ */
29
+ function expectSemanticTokens(file, expected, validateDiagnostics = true) {
30
+ const result = getSemanticTokenResults(file, expected, validateDiagnostics);
31
+ (0, chai_config_spec_1.expect)(result.actual).to.eql(result.expected);
32
+ }
33
+ function getSemanticTokenResults(file, expected, validateDiagnostics = true) {
34
+ var _a, _b;
35
+ program.validate();
36
+ if (validateDiagnostics) {
37
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
38
+ }
39
+ const result = util_1.util.sortByRange(program.getSemanticTokens(file.srcPath));
40
+ //sort modifiers
41
+ for (let collection of [result, expected]) {
42
+ for (let i = 0; i < collection.length; i++) {
43
+ if (Array.isArray(collection[i])) {
44
+ const parts = collection[i];
45
+ collection[i] = {
46
+ tokenType: parts[0],
47
+ range: util_1.util.createRange(parts[1], parts[2], parts[3], parts[4]),
48
+ tokenModifiers: (_a = parts[5]) !== null && _a !== void 0 ? _a : []
49
+ };
50
+ }
51
+ let token = collection[i];
52
+ (_b = token.tokenModifiers) !== null && _b !== void 0 ? _b : (token.tokenModifiers = []);
53
+ token.tokenModifiers.sort();
54
+ }
55
+ }
56
+ function stringify(token) {
57
+ var _a;
58
+ return `${token.tokenType}|${util_1.util.rangeToString(token.range)}|${(_a = token.tokenModifiers) === null || _a === void 0 ? void 0 : _a.join(',')}`;
59
+ }
60
+ return {
61
+ actual: result.map(x => stringify(x)),
62
+ expected: expected.map(x => stringify(x))
63
+ };
64
+ }
65
+ it('matches each namespace section for class', () => {
66
+ const file = program.setFile('source/main.bs', `
67
+ class Host
68
+ sub new()
69
+ m.alien = new Humanoids.Aliens.Alien()
70
+ end sub
71
+ public alien
72
+ end class
73
+
74
+ namespace Humanoids.Aliens
75
+ class Alien
76
+ end class
77
+ end namespace
78
+ `);
79
+ expectSemanticTokensIncludes(file, [
80
+ //m.alien = new |Humanoids|.Aliens.Alien()
81
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 3, 34, 3, 43],
82
+ //m.alien = new Humanoids.|Aliens|.Alien()
83
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 3, 44, 3, 50],
84
+ //m.alien = new Humanoids.Aliens.|Alien|()
85
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.class, 3, 51, 3, 56]
86
+ ]);
87
+ });
88
+ it('matches each namespace section for namespaced function calls', () => {
89
+ const file = program.setFile('source/main.bs', `
90
+ sub new()
91
+ Humanoids.Aliens.Invade("earth")
92
+ end sub
93
+ namespace Humanoids.Aliens
94
+ function Invade(planet)
95
+ end function
96
+ end namespace
97
+ `);
98
+ expectSemanticTokensIncludes(file, [
99
+ // |Humanoids|.Aliens.Invade("earth")
100
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 16, 2, 25],
101
+ // Humanoids.|Aliens|.Invade("earth")
102
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 26, 2, 32],
103
+ // Humanoids.Aliens.|Invade|("earth")
104
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 2, 33, 2, 39]
105
+ ]);
106
+ });
107
+ it('matches class name in assignment statement', () => {
108
+ const file = program.setFile('source/main.bs', `
109
+ sub test()
110
+ ctor = Person
111
+ end sub
112
+ class Person
113
+ end class
114
+ `);
115
+ expectSemanticTokensIncludes(file, [
116
+ // ctor = |Person|
117
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.class, 2, 23, 2, 29]
118
+ ]);
119
+ });
120
+ it('matches namespace-relative parts', () => {
121
+ const file = program.setFile('source/main.bs', `
122
+ namespace alpha
123
+ sub test()
124
+ lineHeight = 1
125
+ print lineHeight
126
+ end sub
127
+ end namespace
128
+ namespace alpha.lineHeight
129
+ end namespace
130
+ `);
131
+ expectSemanticTokensIncludes(file, [
132
+ //|lineHeight| = 1
133
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 3, 20, 3, 30],
134
+ //print |lineHeight|
135
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 4, 26, 4, 36]
136
+ ], false);
137
+ });
138
+ it('matches namespace-relative parts in parameters', () => {
139
+ const file = program.setFile('source/main.bs', `
140
+ namespace alpha
141
+ sub test(lineHeight as integer)
142
+ end sub
143
+ end namespace
144
+ namespace alpha.lineHeight
145
+ end namespace
146
+ `);
147
+ expectSemanticTokensIncludes(file, [
148
+ //sub test(|lineHeight| as integer)
149
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.parameter, 2, 25, 2, 35]
150
+ ], false);
151
+ });
152
+ it('matches parameters variable names', () => {
153
+ const file = program.setFile('source/main.bs', `
154
+ namespace designSystem
155
+ function getIcon(image = "" as string, size = -1 as float) as object
156
+ return {}
157
+ end function
158
+ end namespace
159
+ namespace designSystem.size
160
+ end namespace
161
+ `);
162
+ expectSemanticTokensIncludes(file, [
163
+ // function getIcon(|image| = "" as string, size = -1 as float) as object
164
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.parameter, 2, 33, 2, 38],
165
+ // function getIcon(image = "" as string, |size| = -1 as float) as object
166
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.parameter, 2, 55, 2, 59]
167
+ ], false);
168
+ });
169
+ it('matches each namespace section for namespaced function assignment', () => {
170
+ const file = program.setFile('source/main.bs', `
171
+ sub new()
172
+ action = Humanoids.Aliens.Invade
173
+ end sub
174
+ namespace Humanoids.Aliens
175
+ function Invade(planet)
176
+ end function
177
+ end namespace
178
+ `);
179
+ expectSemanticTokensIncludes(file, [
180
+ // action = |Humanoids|.Aliens.Invade
181
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 25, 2, 34],
182
+ // action = Humanoids.|Aliens|.Invade
183
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 35, 2, 41],
184
+ // action = Humanoids.Aliens.|Invade|
185
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 2, 42, 2, 48]
186
+ ]);
187
+ });
188
+ it('matches each namespace section for namespaced function as function parameter', () => {
189
+ const file = program.setFile('source/main.bs', `
190
+ sub new()
191
+ actionName = type(Humanoids.Aliens.Invade)
192
+ end sub
193
+ namespace Humanoids.Aliens
194
+ function Invade(planet)
195
+ end function
196
+ end namespace
197
+ `);
198
+ expectSemanticTokensIncludes(file, [
199
+ // actionName = |type|(Humanoids.Aliens.Invade)
200
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 2, 29, 2, 33],
201
+ // actionName = type(|Humanoids|.Aliens.Invade)
202
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 34, 2, 43],
203
+ // actionName = type(Humanoids.|Aliens|.Invade)
204
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 44, 2, 50],
205
+ // actionName = type(Humanoids.Aliens.|Invade|)
206
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 2, 51, 2, 57]
207
+ ]);
208
+ });
209
+ it('matches each namespace section for namespaced function in print statement', () => {
210
+ const file = program.setFile('source/main.bs', `
211
+ sub new()
212
+ print Humanoids.Aliens.Invade
213
+ end sub
214
+ namespace Humanoids.Aliens
215
+ function Invade(planet)
216
+ end function
217
+ end namespace
218
+ `);
219
+ expectSemanticTokensIncludes(file, [
220
+ // print |Humanoids|.Aliens.Invade
221
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 22, 2, 31],
222
+ // print Humanoids.|Aliens|.Invade
223
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 32, 2, 38],
224
+ // print Humanoids.Aliens.|Invade|
225
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 2, 39, 2, 45]
226
+ ]);
227
+ });
228
+ it('matches each namespace section for namespace declaration', () => {
229
+ const file = program.setFile('source/main.bs', `
230
+ namespace Sentients.Humanoids
231
+ end namespace
232
+ `);
233
+ expectSemanticTokens(file, [
234
+ // namespace |Sentients|.Humanoids
235
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 1, 22, 1, 31],
236
+ // namespace Sentients.|Humanoids|
237
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 1, 32, 1, 41]
238
+ ]);
239
+ });
240
+ it('matches each namespace section for enum', () => {
241
+ const file = program.setFile('source/main.bs', `
242
+ sub main()
243
+ print Sentients.Humanoids.HumanoidType.Cylon
244
+ end sub
245
+ namespace Sentients.Humanoids
246
+ enum HumanoidType
247
+ Human
248
+ Alien
249
+ Cylon
250
+ end enum
251
+ end namespace
252
+ `);
253
+ expectSemanticTokensIncludes(file, [
254
+ // print |Sentients|.Humanoids.HumanoidType.Cylon
255
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 22, 2, 31],
256
+ // print Sentients.|Humanoids|.HumanoidType.Cylon
257
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 32, 2, 41],
258
+ // print Sentients.Humanoids.|HumanoidType|.Cylon
259
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.enum, 2, 42, 2, 54],
260
+ // print Sentients.Humanoids.HumanoidType.|Cylon|
261
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.enumMember, 2, 55, 2, 60]
262
+ ]);
263
+ });
264
+ it('matches enums in if statements', () => {
265
+ const file = program.setFile('source/main.bs', `
266
+ sub main()
267
+ if Humanoids.HumanoidType.Cylon = "Cylon" then
268
+ print true
269
+ end if
270
+ end sub
271
+ namespace Humanoids
272
+ enum HumanoidType
273
+ Human = "Human"
274
+ Alien = "Alien"
275
+ Cylon = "Cylon"
276
+ end enum
277
+ end namespace
278
+ `);
279
+ expectSemanticTokensIncludes(file, [
280
+ // if |Humanoids|.HumanoidType.Cylon = "Cylon" then
281
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 19, 2, 28],
282
+ // if Humanoids.|HumanoidType|.Cylon = "Cylon" then
283
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.enum, 2, 29, 2, 41],
284
+ // if Humanoids.HumanoidType.|Cylon| = "Cylon" then
285
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.enumMember, 2, 42, 2, 47]
286
+ ]);
287
+ });
288
+ it('matches enum with invalid member name', () => {
289
+ const file = program.setFile('source/main.bs', `
290
+ sub main()
291
+ print Humanoids.HumanoidType.INVALID_VALUE 'bs:disable-line
292
+ end sub
293
+ namespace Humanoids
294
+ enum HumanoidType
295
+ Human = "Human"
296
+ Alien = "Alien"
297
+ Cylon = "Cylon"
298
+ end enum
299
+ end namespace
300
+ `);
301
+ expectSemanticTokensIncludes(file, [
302
+ // print |Humanoids|.HumanoidType.INVALID_VALUE 'bs:disable-line
303
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 22, 2, 31],
304
+ // print Humanoids.|HumanoidType|.INVALID_VALUE 'bs:disable-line
305
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.enum, 2, 32, 2, 44]
306
+ ]);
307
+ });
308
+ it('matches class with invalid stuff after it', () => {
309
+ const file = program.setFile('source/main.bs', `
310
+ sub init()
311
+ m.alien = new Humanoids.Aliens.Alien.NOT_A_CLASS() 'bs:disable-line
312
+ end sub
313
+
314
+ namespace Humanoids.Aliens
315
+ class Alien
316
+ end class
317
+ end namespace
318
+ `);
319
+ expectSemanticTokensIncludes(file, [
320
+ // m.alien = new |Humanoids|.Aliens.Alien.NOT_A_CLASS() 'bs:disable-line
321
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 30, 2, 39],
322
+ // m.alien = new Humanoids.|Aliens|.Alien.NOT_A_CLASS() 'bs:disable-line
323
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 40, 2, 46],
324
+ // m.alien = new Humanoids.Aliens.|Alien|.NOT_A_CLASS() 'bs:disable-line
325
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.class, 2, 47, 2, 52]
326
+ ]);
327
+ });
328
+ it('matches aliases', () => {
329
+ program.setFile('source/alpha.bs', `
330
+ namespace alpha
331
+ sub test()
332
+ end sub
333
+ end namespace
334
+ `);
335
+ const file = program.setFile('source/main.bs', `
336
+ alias alpha2 = alpha
337
+ sub main()
338
+ print alpha2.test()
339
+ end sub
340
+ `);
341
+ expectSemanticTokensIncludes(file, [
342
+ // alias |alpha2| = alpha
343
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 1, 18, 1, 24],
344
+ // alias alpha2 = |alpha|
345
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 1, 27, 1, 32],
346
+ // print |alpha2|.test()
347
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 3, 22, 3, 28],
348
+ // print alpha2.|test|()
349
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 3, 29, 3, 33]
350
+ ]);
351
+ });
352
+ it('matches consts', () => {
353
+ const file = program.setFile('source/main.bs', `
354
+ sub init()
355
+ print API_URL
356
+ print info.FIRST_NAME
357
+ end sub
358
+ const API_URL = "some_url"
359
+ namespace info
360
+ const FIRST_NAME = "bob"
361
+ end namespace
362
+ `);
363
+ expectSemanticTokens(file, [
364
+ // sub |init|()
365
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 1, 16, 1, 20],
366
+ // print |API_URL|
367
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 2, 22, 2, 29, [vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly, vscode_languageserver_protocol_1.SemanticTokenModifiers.static]],
368
+ // print |info|.FIRST_NAME
369
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 3, 22, 3, 26],
370
+ // print info.|FIRST_NAME|
371
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 3, 27, 3, 37, [vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly, vscode_languageserver_protocol_1.SemanticTokenModifiers.static]],
372
+ // const |API_URL| = "some_url"
373
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 5, 18, 5, 25, [vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly, vscode_languageserver_protocol_1.SemanticTokenModifiers.static]],
374
+ // namespace |info|
375
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 6, 22, 6, 26],
376
+ // const |FIRST_NAME| = "bob"
377
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 7, 22, 7, 32, [vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly, vscode_languageserver_protocol_1.SemanticTokenModifiers.static]]
378
+ ]);
379
+ });
380
+ it('matches consts in assignment expressions', () => {
381
+ const file = program.setFile('source/main.bs', `
382
+ sub main()
383
+ value = ""
384
+ value += constants.API_KEY
385
+ value += API_URL
386
+ end sub
387
+ namespace constants
388
+ const API_KEY = "test"
389
+ end namespace
390
+ const API_URL = "url"
391
+ `);
392
+ expectSemanticTokens(file, [
393
+ // sub |main|()
394
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 1, 16, 1, 20],
395
+ // |value| = ""
396
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 2, 16, 2, 21],
397
+ // |value| += constants.API_KEY
398
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 3, 16, 3, 21],
399
+ // value += |constants|.API_KEY
400
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 3, 25, 3, 34],
401
+ // value += constants.|API_KEY|
402
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 3, 35, 3, 42, [vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly, vscode_languageserver_protocol_1.SemanticTokenModifiers.static]],
403
+ // |value| += API_URL
404
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 4, 16, 4, 21],
405
+ // value += |API_URL|
406
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 4, 25, 4, 32, [vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly, vscode_languageserver_protocol_1.SemanticTokenModifiers.static]],
407
+ // namespace |constants|
408
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 6, 22, 6, 31],
409
+ // const |API_KEY| = "test"
410
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 7, 22, 7, 29, [vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly, vscode_languageserver_protocol_1.SemanticTokenModifiers.static]],
411
+ //const |API_URL| = "url"
412
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 9, 18, 9, 25, [vscode_languageserver_protocol_1.SemanticTokenModifiers.readonly, vscode_languageserver_protocol_1.SemanticTokenModifiers.static]]
413
+ ]);
414
+ });
415
+ it('matches new statement of non-class', () => {
416
+ const file = program.setFile('source/main.bs', `
417
+ sub init()
418
+ m.alien = new Humanoids.Aliens.Alien.NOT_A_CLASS() 'bs:disable-line
419
+ end sub
420
+
421
+ namespace Humanoids.Aliens
422
+ class Alien
423
+ end class
424
+ end namespace
425
+ `);
426
+ expectSemanticTokens(file, [
427
+ // sub |init|()
428
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 1, 16, 1, 20],
429
+ // |m|.alien = new Humanoids.Aliens.Alien.NOT_A_CLASS() 'bs:disable-line
430
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 2, 16, 2, 17],
431
+ // m.alien = new |Humanoids|.Aliens.Alien.NOT_A_CLASS() 'bs:disable-line
432
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 30, 2, 39],
433
+ // m.alien = new Humanoids.|Aliens|.Alien.NOT_A_CLASS() 'bs:disable-line
434
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 2, 40, 2, 46],
435
+ // m.alien = new Humanoids.Aliens.|Alien|.NOT_A_CLASS() 'bs:disable-line
436
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.class, 2, 47, 2, 52],
437
+ // namespace |Humanoids|.Aliens
438
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 5, 22, 5, 31],
439
+ // namespace Humanoids.|Aliens|
440
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.namespace, 5, 32, 5, 38],
441
+ // class |Alien|
442
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.class, 6, 22, 6, 27]
443
+ ]);
444
+ });
445
+ it('matches interface names', () => {
446
+ const file = program.setFile('source/main.bs', `
447
+ interface Human
448
+ name as string
449
+ end interface
450
+
451
+ namespace Humanoids
452
+ interface Alien
453
+ name as string
454
+ end interface
455
+ end namespace
456
+ `);
457
+ expectSemanticTokensIncludes(file, [
458
+ // interface |Human|
459
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.interface, 1, 22, 1, 27],
460
+ // interface |Alien|
461
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.interface, 6, 26, 6, 31]
462
+ ]);
463
+ });
464
+ it('works for `new` statement', () => {
465
+ const file = program.setFile('source/main.bs', `
466
+ class Person
467
+ sub speak()
468
+ end sub
469
+ end class
470
+ sub test()
471
+ dude = new Person()
472
+ dude.speak()
473
+ end sub
474
+ `);
475
+ expectSemanticTokens(file, [
476
+ // class |Person|
477
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.class, 1, 18, 1, 24],
478
+ // sub |test|()
479
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.function, 5, 16, 5, 20],
480
+ // |dude| = new Person()
481
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 6, 16, 6, 20],
482
+ // dude = new |Person|()
483
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.class, 6, 27, 6, 33],
484
+ // |dude|.speak()
485
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.variable, 7, 16, 7, 20],
486
+ // dude.|speak|()
487
+ [vscode_languageserver_protocol_1.SemanticTokenTypes.method, 7, 21, 7, 26]
488
+ ]);
489
+ });
490
+ });
491
+ //# sourceMappingURL=BrsFileSemanticTokensProcessor.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrsFileSemanticTokensProcessor.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sinon_1 = require("sinon");
4
+ const fsExtra = require("fs-extra");
5
+ const Program_1 = require("../../Program");
6
+ const testHelpers_spec_1 = require("../../testHelpers.spec");
7
+ const sinon = (0, sinon_1.createSandbox)();
8
+ describe('BslibInjector', () => {
9
+ let program;
10
+ beforeEach(() => {
11
+ fsExtra.emptyDirSync(testHelpers_spec_1.tempDir);
12
+ program = new Program_1.Program({ rootDir: testHelpers_spec_1.rootDir, sourceMap: true });
13
+ });
14
+ afterEach(() => {
15
+ sinon.restore();
16
+ program.dispose();
17
+ });
18
+ });
19
+ //# sourceMappingURL=BslibInjector.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BslibInjector.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/serialize/BslibInjector.spec.ts"],"names":[],"mappings":";;AAAA,iCAAsC;AACtC,oCAAoC;AACpC,2CAAwC;AACxC,6DAA0D;AAC1D,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE9B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAE3B,IAAI,OAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,YAAY,CAAC,0BAAO,CAAC,CAAC;QAC9B,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,0BAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { BeforeBuildProgramEvent } from '../../interfaces';
2
+ export declare class BslibManager {
3
+ private cache;
4
+ addBslibFileIfMissing(event: BeforeBuildProgramEvent): void;
5
+ /**
6
+ * Is the pkgPath a support path to bslib?
7
+ */
8
+ static isBslibPkgPath(pkgPath: string): boolean;
9
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BslibManager = void 0;
4
+ const util_1 = require("../../util");
5
+ const bslib_1 = require("@rokucommunity/bslib");
6
+ const Cache_1 = require("../../Cache");
7
+ const BrsFile_1 = require("../../files/BrsFile");
8
+ const bslibSrcPath = (0, util_1.standardizePath) `${require.resolve('@rokucommunity/bslib')}/dist/source/bslib.brs`;
9
+ class BslibManager {
10
+ constructor() {
11
+ this.cache = new Cache_1.Cache();
12
+ }
13
+ addBslibFileIfMissing(event) {
14
+ //is bslib present in the program? If not, add it now just for this build cycle
15
+ const exists = !!event.files.find(x => {
16
+ return BslibManager.isBslibPkgPath(x.pkgPath);
17
+ });
18
+ if (!exists) {
19
+ const file = this.cache.getOrAdd('bslib', () => {
20
+ const file = new BrsFile_1.BrsFile({
21
+ srcPath: bslibSrcPath,
22
+ destPath: event.program.bslibPkgPath,
23
+ pkgPath: event.program.bslibPkgPath,
24
+ program: event.program
25
+ });
26
+ file.parse(bslib_1.source);
27
+ return file;
28
+ });
29
+ event.files.push(file);
30
+ }
31
+ }
32
+ /**
33
+ * Is the pkgPath a support path to bslib?
34
+ */
35
+ static isBslibPkgPath(pkgPath) {
36
+ return /(source[\\\/]bslib.brs)|(source[\\\/]roku_modules[\\\/]bslib[\\\/]bslib.brs)$/i.test(pkgPath);
37
+ }
38
+ }
39
+ exports.BslibManager = BslibManager;
40
+ //# sourceMappingURL=BslibManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BslibManager.js","sourceRoot":"","sources":["../../../src/bscPlugin/serialize/BslibManager.ts"],"names":[],"mappings":";;;AACA,qCAAkD;AAClD,gDAA6D;AAC7D,uCAAoC;AACpC,iDAA8C;AAC9C,MAAM,YAAY,GAAG,IAAA,sBAAC,EAAA,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,wBAAwB,CAAC;AACzF,MAAa,YAAY;IAAzB;QAEY,UAAK,GAAG,IAAI,aAAK,EAAE,CAAC;IA4BhC,CAAC;IA1BU,qBAAqB,CAAC,KAA8B;QACvD,+EAA+E;QAC/E,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAClC,OAAO,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC3C,MAAM,IAAI,GAAG,IAAI,iBAAO,CAAC;oBACrB,OAAO,EAAE,YAAY;oBACrB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;oBACpC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;oBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;iBACzB,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,cAAW,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1B;IACL,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,cAAc,CAAC,OAAe;QACxC,OAAO,gFAAgF,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1G,CAAC;CACJ;AA9BD,oCA8BC"}
@@ -0,0 +1,9 @@
1
+ import type { SerializeFileEvent } from '../../interfaces';
2
+ export declare class FileSerializer {
3
+ private event;
4
+ constructor(event: SerializeFileEvent);
5
+ process(): void;
6
+ private serializeBrsFile;
7
+ private serializeXmlFile;
8
+ private serializeAssetFile;
9
+ }