brighterscript 0.66.0-alpha.9 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/CHANGELOG.md +116 -73
  2. package/README.md +14 -418
  3. package/dist/BsConfig.d.ts +25 -2
  4. package/dist/Cache.js +3 -3
  5. package/dist/Cache.js.map +1 -1
  6. package/dist/CodeActionUtil.d.ts +3 -3
  7. package/dist/CodeActionUtil.js.map +1 -1
  8. package/dist/CommentFlagProcessor.d.ts +3 -4
  9. package/dist/CommentFlagProcessor.js +4 -3
  10. package/dist/CommentFlagProcessor.js.map +1 -1
  11. package/dist/DependencyGraph.js +8 -8
  12. package/dist/DependencyGraph.js.map +1 -1
  13. package/dist/DiagnosticFilterer.d.ts +8 -4
  14. package/dist/DiagnosticFilterer.js +71 -38
  15. package/dist/DiagnosticFilterer.js.map +1 -1
  16. package/dist/DiagnosticMessages.d.ts +15 -36
  17. package/dist/DiagnosticMessages.js +15 -61
  18. package/dist/DiagnosticMessages.js.map +1 -1
  19. package/dist/DiagnosticSeverityAdjuster.js +3 -0
  20. package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
  21. package/dist/FunctionScope.d.ts +2 -3
  22. package/dist/FunctionScope.js +0 -3
  23. package/dist/FunctionScope.js.map +1 -1
  24. package/dist/LanguageServer.d.ts +1 -2
  25. package/dist/LanguageServer.js +29 -35
  26. package/dist/LanguageServer.js.map +1 -1
  27. package/dist/Logger.d.ts +5 -9
  28. package/dist/Logger.js +18 -22
  29. package/dist/Logger.js.map +1 -1
  30. package/dist/PluginInterface.d.ts +13 -15
  31. package/dist/PluginInterface.js +16 -70
  32. package/dist/PluginInterface.js.map +1 -1
  33. package/dist/Program.d.ts +105 -138
  34. package/dist/Program.js +479 -702
  35. package/dist/Program.js.map +1 -1
  36. package/dist/ProgramBuilder.d.ts +8 -19
  37. package/dist/ProgramBuilder.js +82 -87
  38. package/dist/ProgramBuilder.js.map +1 -1
  39. package/dist/Scope.d.ts +56 -46
  40. package/dist/Scope.js +281 -217
  41. package/dist/Scope.js.map +1 -1
  42. package/dist/Stopwatch.js +1 -1
  43. package/dist/Stopwatch.js.map +1 -1
  44. package/dist/SymbolTable.d.ts +12 -68
  45. package/dist/SymbolTable.js +28 -213
  46. package/dist/SymbolTable.js.map +1 -1
  47. package/dist/XmlScope.d.ts +5 -7
  48. package/dist/XmlScope.js +36 -76
  49. package/dist/XmlScope.js.map +1 -1
  50. package/dist/astUtils/{Editor.d.ts → AstEditor.d.ts} +1 -6
  51. package/dist/astUtils/{Editor.js → AstEditor.js} +3 -9
  52. package/dist/astUtils/AstEditor.js.map +1 -0
  53. package/dist/astUtils/{Editor.spec.js → AstEditor.spec.js} +6 -10
  54. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  55. package/dist/astUtils/creators.d.ts +8 -19
  56. package/dist/astUtils/creators.js +22 -54
  57. package/dist/astUtils/creators.js.map +1 -1
  58. package/dist/astUtils/creators.spec.js +0 -10
  59. package/dist/astUtils/creators.spec.js.map +1 -1
  60. package/dist/astUtils/reflection.d.ts +45 -81
  61. package/dist/astUtils/reflection.js +157 -220
  62. package/dist/astUtils/reflection.js.map +1 -1
  63. package/dist/astUtils/reflection.spec.js +19 -96
  64. package/dist/astUtils/reflection.spec.js.map +1 -1
  65. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  66. package/dist/astUtils/visitors.d.ts +14 -18
  67. package/dist/astUtils/visitors.js +9 -22
  68. package/dist/astUtils/visitors.js.map +1 -1
  69. package/dist/astUtils/visitors.spec.js +9 -62
  70. package/dist/astUtils/visitors.spec.js.map +1 -1
  71. package/dist/astUtils/xml.d.ts +9 -9
  72. package/dist/astUtils/xml.js +6 -6
  73. package/dist/astUtils/xml.js.map +1 -1
  74. package/dist/bscPlugin/BscPlugin.d.ts +8 -11
  75. package/dist/bscPlugin/BscPlugin.js +21 -29
  76. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  77. package/dist/bscPlugin/CallExpressionInfo.d.ts +6 -5
  78. package/dist/bscPlugin/CallExpressionInfo.js +2 -2
  79. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  80. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +11 -11
  81. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  82. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +4 -4
  83. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  84. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +1 -49
  85. package/dist/bscPlugin/completions/CompletionsProcessor.js +23 -424
  86. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  87. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  88. package/dist/bscPlugin/definition/DefinitionProvider.js +200 -0
  89. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  90. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
  91. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  92. package/dist/bscPlugin/hover/HoverProcessor.d.ts +3 -7
  93. package/dist/bscPlugin/hover/HoverProcessor.js +88 -128
  94. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  95. package/dist/bscPlugin/hover/HoverProcessor.spec.js +24 -336
  96. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  97. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  98. package/dist/bscPlugin/references/ReferencesProvider.js +56 -0
  99. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  100. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  101. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  102. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +0 -1
  103. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +5 -49
  104. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  105. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -22
  106. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  107. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  108. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  109. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  110. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +290 -0
  111. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  112. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  113. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  114. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  115. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  116. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  117. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  118. package/dist/bscPlugin/symbols/symbolUtils.js +140 -0
  119. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  120. package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.d.ts → BrsFilePreTranspileProcessor.d.ts} +2 -4
  121. package/dist/bscPlugin/transpile/{BrsFileTranspileProcessor.js → BrsFilePreTranspileProcessor.js} +15 -36
  122. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -0
  123. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +46 -0
  124. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +1 -0
  125. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +1 -0
  126. package/dist/bscPlugin/validation/BrsFileValidator.js +30 -41
  127. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  128. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +2 -2
  129. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  130. package/dist/bscPlugin/validation/ProgramValidator.d.ts +3 -3
  131. package/dist/bscPlugin/validation/ProgramValidator.js +6 -6
  132. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -1
  133. package/dist/bscPlugin/validation/ScopeValidator.d.ts +6 -28
  134. package/dist/bscPlugin/validation/ScopeValidator.js +166 -387
  135. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  136. package/dist/bscPlugin/validation/XmlFileValidator.js +9 -9
  137. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  138. package/dist/diagnosticUtils.d.ts +2 -3
  139. package/dist/diagnosticUtils.js +5 -5
  140. package/dist/diagnosticUtils.js.map +1 -1
  141. package/dist/examples/plugins/removePrint.js +1 -1
  142. package/dist/examples/plugins/removePrint.js.map +1 -1
  143. package/dist/files/BrsFile.Class.spec.js +143 -114
  144. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  145. package/dist/files/BrsFile.d.ts +61 -83
  146. package/dist/files/BrsFile.js +552 -607
  147. package/dist/files/BrsFile.js.map +1 -1
  148. package/dist/files/BrsFile.spec.js +1365 -1201
  149. package/dist/files/BrsFile.spec.js.map +1 -1
  150. package/dist/files/XmlFile.d.ts +28 -56
  151. package/dist/files/XmlFile.js +103 -89
  152. package/dist/files/XmlFile.js.map +1 -1
  153. package/dist/files/XmlFile.spec.js +179 -122
  154. package/dist/files/XmlFile.spec.js.map +1 -1
  155. package/dist/files/tests/imports.spec.js +19 -29
  156. package/dist/files/tests/imports.spec.js.map +1 -1
  157. package/dist/files/tests/optionalChaning.spec.js +14 -14
  158. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  159. package/dist/globalCallables.js +83 -88
  160. package/dist/globalCallables.js.map +1 -1
  161. package/dist/index.d.ts +1 -9
  162. package/dist/index.js +1 -9
  163. package/dist/index.js.map +1 -1
  164. package/dist/interfaces.d.ts +173 -423
  165. package/dist/interfaces.js +0 -24
  166. package/dist/interfaces.js.map +1 -1
  167. package/dist/lexer/Lexer.d.ts +9 -15
  168. package/dist/lexer/Lexer.js +35 -46
  169. package/dist/lexer/Lexer.js.map +1 -1
  170. package/dist/lexer/Lexer.spec.js +48 -40
  171. package/dist/lexer/Lexer.spec.js.map +1 -1
  172. package/dist/lexer/Token.d.ts +1 -5
  173. package/dist/lexer/Token.js +1 -1
  174. package/dist/lexer/Token.js.map +1 -1
  175. package/dist/lexer/TokenKind.d.ts +0 -6
  176. package/dist/lexer/TokenKind.js +2 -14
  177. package/dist/lexer/TokenKind.js.map +1 -1
  178. package/dist/logging.d.ts +9 -0
  179. package/dist/logging.js +16 -0
  180. package/dist/logging.js.map +1 -0
  181. package/dist/parser/AstNode.d.ts +6 -90
  182. package/dist/parser/AstNode.js +5 -96
  183. package/dist/parser/AstNode.js.map +1 -1
  184. package/dist/parser/AstNode.spec.js.map +1 -1
  185. package/dist/parser/BrsTranspileState.d.ts +3 -4
  186. package/dist/parser/BrsTranspileState.js +2 -3
  187. package/dist/parser/BrsTranspileState.js.map +1 -1
  188. package/dist/parser/Expression.d.ts +114 -137
  189. package/dist/parser/Expression.js +244 -373
  190. package/dist/parser/Expression.js.map +1 -1
  191. package/dist/parser/Parser.Class.spec.js +19 -46
  192. package/dist/parser/Parser.Class.spec.js.map +1 -1
  193. package/dist/parser/Parser.d.ts +18 -14
  194. package/dist/parser/Parser.js +196 -175
  195. package/dist/parser/Parser.js.map +1 -1
  196. package/dist/parser/Parser.spec.d.ts +0 -2
  197. package/dist/parser/Parser.spec.js +10 -674
  198. package/dist/parser/Parser.spec.js.map +1 -1
  199. package/dist/parser/SGParser.d.ts +6 -44
  200. package/dist/parser/SGParser.js +198 -194
  201. package/dist/parser/SGParser.js.map +1 -1
  202. package/dist/parser/SGParser.spec.js +11 -14
  203. package/dist/parser/SGParser.spec.js.map +1 -1
  204. package/dist/parser/SGTypes.d.ts +52 -280
  205. package/dist/parser/SGTypes.js +185 -562
  206. package/dist/parser/SGTypes.js.map +1 -1
  207. package/dist/parser/Statement.d.ts +140 -172
  208. package/dist/parser/Statement.js +201 -337
  209. package/dist/parser/Statement.js.map +1 -1
  210. package/dist/parser/Statement.spec.js.map +1 -1
  211. package/dist/parser/TranspileState.d.ts +3 -2
  212. package/dist/parser/TranspileState.js +8 -10
  213. package/dist/parser/TranspileState.js.map +1 -1
  214. package/dist/parser/tests/Parser.spec.js +3 -5
  215. package/dist/parser/tests/Parser.spec.js.map +1 -1
  216. package/dist/parser/tests/controlFlow/For.spec.js +8 -16
  217. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  218. package/dist/parser/tests/controlFlow/ForEach.spec.js +6 -12
  219. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  220. package/dist/parser/tests/controlFlow/While.spec.js +4 -8
  221. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  222. package/dist/parser/tests/expression/Call.spec.js +4 -4
  223. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  224. package/dist/parser/tests/expression/Indexing.spec.js +25 -0
  225. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  226. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +73 -29
  227. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  228. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
  229. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  230. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
  231. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  232. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +47 -35
  233. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  234. package/dist/parser/tests/expression/TernaryExpression.spec.js +83 -36
  235. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  236. package/dist/parser/tests/expression/UnaryExpression.spec.js +2 -2
  237. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -1
  238. package/dist/parser/tests/statement/ConstStatement.spec.js +26 -27
  239. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  240. package/dist/parser/tests/statement/Continue.spec.js +2 -2
  241. package/dist/parser/tests/statement/Continue.spec.js.map +1 -1
  242. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  243. package/dist/parser/tests/statement/Enum.spec.js +393 -90
  244. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  245. package/dist/parser/tests/statement/For.spec.js +6 -6
  246. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  247. package/dist/parser/tests/statement/ForEach.spec.js +4 -4
  248. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  249. package/dist/parser/tests/statement/Function.spec.js +1 -1
  250. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  251. package/dist/parser/tests/statement/InterfaceStatement.spec.js +18 -18
  252. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  253. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  254. package/dist/parser/tests/statement/PrintStatement.spec.js +13 -16
  255. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  256. package/dist/parser/tests/statement/ReturnStatement.spec.js +3 -5
  257. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  258. package/dist/parser/tests/statement/Set.spec.js +13 -26
  259. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  260. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  261. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  262. package/dist/preprocessor/Chunk.js +1 -2
  263. package/dist/preprocessor/Chunk.js.map +1 -1
  264. package/dist/preprocessor/Preprocessor.d.ts +3 -4
  265. package/dist/preprocessor/Preprocessor.js +3 -3
  266. package/dist/preprocessor/Preprocessor.js.map +1 -1
  267. package/dist/preprocessor/PreprocessorParser.js +8 -1
  268. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  269. package/dist/roku-types/data.json +293 -243
  270. package/dist/roku-types/index.d.ts +38 -17
  271. package/dist/types/ArrayType.d.ts +4 -9
  272. package/dist/types/ArrayType.js +24 -72
  273. package/dist/types/ArrayType.js.map +1 -1
  274. package/dist/types/ArrayType.spec.js +10 -39
  275. package/dist/types/ArrayType.spec.js.map +1 -1
  276. package/dist/types/BooleanType.d.ts +4 -8
  277. package/dist/types/BooleanType.js +8 -19
  278. package/dist/types/BooleanType.js.map +1 -1
  279. package/dist/types/BooleanType.spec.js +3 -9
  280. package/dist/types/BooleanType.spec.js.map +1 -1
  281. package/dist/types/BscType.d.ts +2 -29
  282. package/dist/types/BscType.js +0 -113
  283. package/dist/types/BscType.js.map +1 -1
  284. package/dist/types/CustomType.d.ts +9 -0
  285. package/dist/types/CustomType.js +32 -0
  286. package/dist/types/CustomType.js.map +1 -0
  287. package/dist/types/DoubleType.d.ts +4 -8
  288. package/dist/types/DoubleType.js +20 -23
  289. package/dist/types/DoubleType.js.map +1 -1
  290. package/dist/types/DoubleType.spec.js +3 -11
  291. package/dist/types/DoubleType.spec.js.map +1 -1
  292. package/dist/types/DynamicType.d.ts +3 -9
  293. package/dist/types/DynamicType.js +2 -18
  294. package/dist/types/DynamicType.js.map +1 -1
  295. package/dist/types/DynamicType.spec.js +4 -15
  296. package/dist/types/DynamicType.spec.js.map +1 -1
  297. package/dist/types/FloatType.d.ts +4 -8
  298. package/dist/types/FloatType.js +20 -23
  299. package/dist/types/FloatType.js.map +1 -1
  300. package/dist/types/FloatType.spec.js +3 -3
  301. package/dist/types/FloatType.spec.js.map +1 -1
  302. package/dist/types/FunctionType.d.ts +20 -10
  303. package/dist/types/FunctionType.js +52 -27
  304. package/dist/types/FunctionType.js.map +1 -1
  305. package/dist/types/FunctionType.spec.js +23 -0
  306. package/dist/types/FunctionType.spec.js.map +1 -0
  307. package/dist/types/IntegerType.d.ts +4 -8
  308. package/dist/types/IntegerType.js +20 -23
  309. package/dist/types/IntegerType.js.map +1 -1
  310. package/dist/types/IntegerType.spec.js +3 -7
  311. package/dist/types/IntegerType.spec.js.map +1 -1
  312. package/dist/types/InterfaceType.d.ts +10 -12
  313. package/dist/types/InterfaceType.js +48 -23
  314. package/dist/types/InterfaceType.js.map +1 -1
  315. package/dist/types/InterfaceType.spec.js +45 -82
  316. package/dist/types/InterfaceType.spec.js.map +1 -1
  317. package/dist/types/InvalidType.d.ts +4 -7
  318. package/dist/types/InvalidType.js +8 -18
  319. package/dist/types/InvalidType.js.map +1 -1
  320. package/dist/types/InvalidType.spec.js +3 -7
  321. package/dist/types/InvalidType.spec.js.map +1 -1
  322. package/dist/types/LongIntegerType.d.ts +4 -8
  323. package/dist/types/LongIntegerType.js +20 -23
  324. package/dist/types/LongIntegerType.js.map +1 -1
  325. package/dist/types/LongIntegerType.spec.js +3 -9
  326. package/dist/types/LongIntegerType.spec.js.map +1 -1
  327. package/dist/types/ObjectType.d.ts +4 -8
  328. package/dist/types/ObjectType.js +7 -21
  329. package/dist/types/ObjectType.js.map +1 -1
  330. package/dist/types/ObjectType.spec.js +2 -2
  331. package/dist/types/ObjectType.spec.js.map +1 -1
  332. package/dist/types/StringType.d.ts +4 -11
  333. package/dist/types/StringType.js +8 -23
  334. package/dist/types/StringType.js.map +1 -1
  335. package/dist/types/StringType.spec.js +2 -2
  336. package/dist/types/StringType.spec.js.map +1 -1
  337. package/dist/types/UninitializedType.d.ts +3 -7
  338. package/dist/types/UninitializedType.js +3 -14
  339. package/dist/types/UninitializedType.js.map +1 -1
  340. package/dist/types/VoidType.d.ts +4 -8
  341. package/dist/types/VoidType.js +8 -18
  342. package/dist/types/VoidType.js.map +1 -1
  343. package/dist/types/VoidType.spec.js +2 -2
  344. package/dist/types/VoidType.spec.js.map +1 -1
  345. package/dist/util.d.ts +43 -104
  346. package/dist/util.js +243 -640
  347. package/dist/util.js.map +1 -1
  348. package/dist/validators/ClassValidator.d.ts +6 -1
  349. package/dist/validators/ClassValidator.js +61 -20
  350. package/dist/validators/ClassValidator.js.map +1 -1
  351. package/package.json +13 -11
  352. package/dist/ActionPipeline.d.ts +0 -10
  353. package/dist/ActionPipeline.js +0 -40
  354. package/dist/ActionPipeline.js.map +0 -1
  355. package/dist/AstValidationSegmenter.d.ts +0 -25
  356. package/dist/AstValidationSegmenter.js +0 -150
  357. package/dist/AstValidationSegmenter.js.map +0 -1
  358. package/dist/CacheVerifier.d.ts +0 -7
  359. package/dist/CacheVerifier.js +0 -20
  360. package/dist/CacheVerifier.js.map +0 -1
  361. package/dist/astUtils/Editor.js.map +0 -1
  362. package/dist/astUtils/Editor.spec.js.map +0 -1
  363. package/dist/bscPlugin/FileWriter.d.ts +0 -6
  364. package/dist/bscPlugin/FileWriter.js +0 -24
  365. package/dist/bscPlugin/FileWriter.js.map +0 -1
  366. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +0 -1658
  367. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +0 -1
  368. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +0 -9
  369. package/dist/bscPlugin/fileProviders/FileProvider.js +0 -51
  370. package/dist/bscPlugin/fileProviders/FileProvider.js.map +0 -1
  371. package/dist/bscPlugin/serialize/BslibInjector.spec.js +0 -19
  372. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +0 -1
  373. package/dist/bscPlugin/serialize/BslibManager.d.ts +0 -9
  374. package/dist/bscPlugin/serialize/BslibManager.js +0 -40
  375. package/dist/bscPlugin/serialize/BslibManager.js.map +0 -1
  376. package/dist/bscPlugin/serialize/FileSerializer.d.ts +0 -9
  377. package/dist/bscPlugin/serialize/FileSerializer.js +0 -72
  378. package/dist/bscPlugin/serialize/FileSerializer.js.map +0 -1
  379. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +0 -1
  380. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +0 -41
  381. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +0 -1
  382. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +0 -11
  383. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +0 -53
  384. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +0 -1
  385. package/dist/bscPlugin/validation/ScopeValidator.spec.js +0 -2004
  386. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +0 -1
  387. package/dist/files/AssetFile.d.ts +0 -26
  388. package/dist/files/AssetFile.js +0 -26
  389. package/dist/files/AssetFile.js.map +0 -1
  390. package/dist/files/Factory.d.ts +0 -25
  391. package/dist/files/Factory.js +0 -22
  392. package/dist/files/Factory.js.map +0 -1
  393. package/dist/files/File.d.ts +0 -106
  394. package/dist/files/File.js +0 -16
  395. package/dist/files/File.js.map +0 -1
  396. package/dist/files/LazyFileData.d.ts +0 -20
  397. package/dist/files/LazyFileData.js +0 -54
  398. package/dist/files/LazyFileData.js.map +0 -1
  399. package/dist/files/LazyFileData.spec.js +0 -27
  400. package/dist/files/LazyFileData.spec.js.map +0 -1
  401. package/dist/parser/tests/expression/TypeExpression.spec.js +0 -127
  402. package/dist/parser/tests/expression/TypeExpression.spec.js.map +0 -1
  403. package/dist/types/AssociativeArrayType.d.ts +0 -11
  404. package/dist/types/AssociativeArrayType.js +0 -52
  405. package/dist/types/AssociativeArrayType.js.map +0 -1
  406. package/dist/types/BaseFunctionType.d.ts +0 -9
  407. package/dist/types/BaseFunctionType.js +0 -25
  408. package/dist/types/BaseFunctionType.js.map +0 -1
  409. package/dist/types/BscTypeKind.d.ts +0 -25
  410. package/dist/types/BscTypeKind.js +0 -30
  411. package/dist/types/BscTypeKind.js.map +0 -1
  412. package/dist/types/BuiltInInterfaceAdder.d.ts +0 -23
  413. package/dist/types/BuiltInInterfaceAdder.js +0 -160
  414. package/dist/types/BuiltInInterfaceAdder.js.map +0 -1
  415. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +0 -1
  416. package/dist/types/BuiltInInterfaceAdder.spec.js +0 -116
  417. package/dist/types/BuiltInInterfaceAdder.spec.js.map +0 -1
  418. package/dist/types/ClassType.d.ts +0 -17
  419. package/dist/types/ClassType.js +0 -58
  420. package/dist/types/ClassType.js.map +0 -1
  421. package/dist/types/ClassType.spec.d.ts +0 -1
  422. package/dist/types/ClassType.spec.js +0 -77
  423. package/dist/types/ClassType.spec.js.map +0 -1
  424. package/dist/types/ComponentType.d.ts +0 -26
  425. package/dist/types/ComponentType.js +0 -83
  426. package/dist/types/ComponentType.js.map +0 -1
  427. package/dist/types/EnumType.d.ts +0 -40
  428. package/dist/types/EnumType.js +0 -81
  429. package/dist/types/EnumType.js.map +0 -1
  430. package/dist/types/EnumType.spec.d.ts +0 -1
  431. package/dist/types/EnumType.spec.js +0 -33
  432. package/dist/types/EnumType.spec.js.map +0 -1
  433. package/dist/types/InheritableType.d.ts +0 -28
  434. package/dist/types/InheritableType.js +0 -152
  435. package/dist/types/InheritableType.js.map +0 -1
  436. package/dist/types/NamespaceType.d.ts +0 -12
  437. package/dist/types/NamespaceType.js +0 -28
  438. package/dist/types/NamespaceType.js.map +0 -1
  439. package/dist/types/ReferenceType.d.ts +0 -63
  440. package/dist/types/ReferenceType.js +0 -423
  441. package/dist/types/ReferenceType.js.map +0 -1
  442. package/dist/types/ReferenceType.spec.d.ts +0 -1
  443. package/dist/types/ReferenceType.spec.js +0 -137
  444. package/dist/types/ReferenceType.spec.js.map +0 -1
  445. package/dist/types/TypedFunctionType.d.ts +0 -33
  446. package/dist/types/TypedFunctionType.js +0 -106
  447. package/dist/types/TypedFunctionType.js.map +0 -1
  448. package/dist/types/TypedFunctionType.spec.d.ts +0 -1
  449. package/dist/types/TypedFunctionType.spec.js +0 -122
  450. package/dist/types/TypedFunctionType.spec.js.map +0 -1
  451. package/dist/types/UnionType.d.ts +0 -20
  452. package/dist/types/UnionType.js +0 -123
  453. package/dist/types/UnionType.js.map +0 -1
  454. package/dist/types/UnionType.spec.d.ts +0 -1
  455. package/dist/types/UnionType.spec.js +0 -130
  456. package/dist/types/UnionType.spec.js.map +0 -1
  457. package/dist/types/helper.spec.d.ts +0 -1
  458. package/dist/types/helper.spec.js +0 -145
  459. package/dist/types/helper.spec.js.map +0 -1
  460. package/dist/types/helpers.d.ts +0 -24
  461. package/dist/types/helpers.js +0 -178
  462. package/dist/types/helpers.js.map +0 -1
  463. package/dist/types/index.d.ts +0 -22
  464. package/dist/types/index.js +0 -39
  465. package/dist/types/index.js.map +0 -1
  466. /package/dist/astUtils/{Editor.spec.d.ts → AstEditor.spec.d.ts} +0 -0
  467. /package/dist/bscPlugin/{completions/CompletionsProcessor.spec.d.ts → definition/DefinitionProvider.spec.d.ts} +0 -0
  468. /package/dist/bscPlugin/{serialize/BslibInjector.spec.d.ts → references/ReferencesProvider.spec.d.ts} +0 -0
  469. /package/dist/bscPlugin/{transpile/BrsFileTranspileProcessor.spec.d.ts → symbols/DocumentSymbolProcessor.spec.d.ts} +0 -0
  470. /package/dist/bscPlugin/{validation/ScopeValidator.spec.d.ts → symbols/WorkspaceSymbolProcessor.spec.d.ts} +0 -0
  471. /package/dist/{files/LazyFileData.spec.d.ts → bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts} +0 -0
  472. /package/dist/{parser/tests/expression/TypeExpression.spec.d.ts → types/FunctionType.spec.d.ts} +0 -0
@@ -5,19 +5,21 @@ const path = require("path");
5
5
  const source_map_1 = require("source-map");
6
6
  const DiagnosticMessages_1 = require("../DiagnosticMessages");
7
7
  const util_1 = require("../util");
8
- const util_2 = require("../util");
9
8
  const SGParser_1 = require("../parser/SGParser");
10
9
  const chalk_1 = require("chalk");
11
10
  const Cache_1 = require("../Cache");
11
+ const SGTypes_1 = require("../parser/SGTypes");
12
12
  const CommentFlagProcessor_1 = require("../CommentFlagProcessor");
13
13
  const TranspileState_1 = require("../parser/TranspileState");
14
14
  class XmlFile {
15
+ constructor(srcPath,
15
16
  /**
16
- * Create a new instance of BrsFile
17
+ * The absolute path to the file, relative to the pkg
17
18
  */
18
- constructor(options) {
19
- var _a;
20
- this.type = 'XmlFile';
19
+ pkgPath, program) {
20
+ this.srcPath = srcPath;
21
+ this.pkgPath = pkgPath;
22
+ this.program = program;
21
23
  this.cache = new Cache_1.Cache();
22
24
  /**
23
25
  * Indicates whether this file needs to be validated.
@@ -26,7 +28,11 @@ class XmlFile {
26
28
  this.isValidated = false;
27
29
  this.commentFlags = [];
28
30
  /**
29
- * Diagnostics for this file
31
+ * Will this file result in only comment or whitespace output? If so, it can be excluded from the output if that bsconfig setting is enabled.
32
+ */
33
+ this.canBePruned = false;
34
+ /**
35
+ * A collection of diagnostics related to this file
30
36
  */
31
37
  this.diagnostics = [];
32
38
  this.parser = new SGParser_1.default();
@@ -35,6 +41,10 @@ class XmlFile {
35
41
  //TODO implement the xml CDATA parsing, which would populate this list
36
42
  this.functionCalls = [];
37
43
  this.functionScopes = [];
44
+ /**
45
+ * Does this file need to be transpiled?
46
+ */
47
+ this.needsTranspiled = false;
38
48
  /**
39
49
  * A slight hack. Gives the Program a way to support multiple components with the same name
40
50
  * without causing major issues. A value of 0 will be ignored as part of the dependency graph key.
@@ -43,17 +53,11 @@ class XmlFile {
43
53
  * have the following dependency graph keys: ["component:CustomGrid", "component:CustomGrid[1]", "component:CustomGrid[2]"]
44
54
  */
45
55
  this.dependencyGraphIndex = -1;
46
- if (options) {
47
- this.srcPath = (0, util_2.standardizePath) `${options.srcPath}`;
48
- this.destPath = (0, util_2.standardizePath) `${options.destPath}`;
49
- this.pkgPath = (0, util_2.standardizePath) `${(_a = options.pkgPath) !== null && _a !== void 0 ? _a : options.destPath}`;
50
- this.program = options.program;
51
- this.extension = path.extname(this.srcPath).toLowerCase();
52
- this.possibleCodebehindDestPaths = [
53
- this.pkgPath.replace(/\.xml$/, '.bs'),
54
- this.pkgPath.replace(/\.xml$/, '.brs')
55
- ];
56
- }
56
+ this.extension = path.extname(this.srcPath).toLowerCase();
57
+ this.possibleCodebehindPkgPaths = [
58
+ this.pkgPath.replace('.xml', '.bs'),
59
+ this.pkgPath.replace('.xml', '.brs')
60
+ ];
57
61
  }
58
62
  /**
59
63
  * The absolute path to the source location for this file
@@ -65,16 +69,6 @@ class XmlFile {
65
69
  set pathAbsolute(value) {
66
70
  this.srcPath = value;
67
71
  }
68
- /**
69
- * The list of possible autoImport codebehind pkg paths.
70
- * @deprecated use `possibleCodebehindDestPaths` instead.
71
- */
72
- get possibleCodebehindPkgPaths() {
73
- return this.possibleCodebehindDestPaths;
74
- }
75
- set possibleCodebehindPkgPaths(value) {
76
- this.possibleCodebehindDestPaths = value;
77
- }
78
72
  /**
79
73
  * The list of script imports delcared in the XML of this file.
80
74
  * This excludes parent imports and auto codebehind imports
@@ -84,7 +78,7 @@ class XmlFile {
84
78
  .map(tag => (Object.assign(Object.assign({}, tag), { sourceFile: this })));
85
79
  }
86
80
  /**
87
- * List of all `destPath` values pointing to scripts that this XmlFile depends on, regardless of whether they are loaded in the program or not.
81
+ * List of all pkgPaths to scripts that this XmlFile depends, regardless of whether they are loaded in the program or not.
88
82
  * This includes own dependencies and all parent compoent dependencies
89
83
  * coming from:
90
84
  * - script tags
@@ -98,7 +92,7 @@ class XmlFile {
98
92
  });
99
93
  }
100
94
  /**
101
- * List of all destPaths to scripts that this XmlFile depends on directly, regardless of whether they are loaded in the program or not.
95
+ * List of all pkgPaths to scripts that this XmlFile depends on directly, regardless of whether they are loaded in the program or not.
102
96
  * This does not account for parent component scripts
103
97
  * coming from:
104
98
  * - script tags
@@ -112,7 +106,7 @@ class XmlFile {
112
106
  });
113
107
  }
114
108
  /**
115
- * List of all destPaths to scripts that this XmlFile depends on that are actually loaded into the program.
109
+ * List of all pkgPaths to scripts that this XmlFile depends on that are actually loaded into the program.
116
110
  * This does not account for parent component scripts.
117
111
  * coming from:
118
112
  * - script tags
@@ -127,7 +121,7 @@ class XmlFile {
127
121
  let result = [];
128
122
  let filesInProgram = this.program.getFiles(allDependencies);
129
123
  for (let file of filesInProgram) {
130
- result.push(file.destPath);
124
+ result.push(file.pkgPath);
131
125
  }
132
126
  this.logDebug('computed allAvailableScriptImports', () => result);
133
127
  return result;
@@ -155,20 +149,6 @@ class XmlFile {
155
149
  var _a;
156
150
  return (_a = this.parser) === null || _a === void 0 ? void 0 : _a.references.name;
157
151
  }
158
- /**
159
- * Does this file need to be transpiled?
160
- * @deprecated use the `.editor` property to push changes to the file, which will force transpilation
161
- */
162
- get needsTranspiled() {
163
- var _a, _b, _c;
164
- if (this._needsTranspiled !== undefined) {
165
- return this._needsTranspiled;
166
- }
167
- return !!(((_a = this.editor) === null || _a === void 0 ? void 0 : _a.hasChanges) || ((_c = (_b = this.ast.componentElement) === null || _b === void 0 ? void 0 : _b.scriptElements) === null || _c === void 0 ? void 0 : _c.some(script => { var _a, _b; return ((_a = script.type) === null || _a === void 0 ? void 0 : _a.indexOf('brighterscript')) > 0 || ((_b = script.uri) === null || _b === void 0 ? void 0 : _b.endsWith('.bs')); })));
168
- }
169
- set needsTranspiled(value) {
170
- this._needsTranspiled = value;
171
- }
172
152
  /**
173
153
  * The AST for this file
174
154
  */
@@ -180,21 +160,18 @@ class XmlFile {
180
160
  * @param fileContents the xml source code to parse
181
161
  */
182
162
  parse(fileContents) {
163
+ var _a, _b;
183
164
  this.fileContents = fileContents;
184
- this.parser.parse(this.destPath, fileContents);
165
+ this.parser.parse(this.pkgPath, fileContents);
185
166
  this.diagnostics = this.parser.diagnostics.map(diagnostic => (Object.assign(Object.assign({}, diagnostic), { file: this })));
186
167
  this.getCommentFlags(this.parser.tokens);
168
+ //needsTranspiled should be true if an import is brighterscript
169
+ this.needsTranspiled = this.needsTranspiled || ((_b = (_a = this.ast.component) === null || _a === void 0 ? void 0 : _a.scripts) === null || _b === void 0 ? void 0 : _b.some(script => { var _a, _b; return ((_a = script.type) === null || _a === void 0 ? void 0 : _a.indexOf('brighterscript')) > 0 || ((_b = script.uri) === null || _b === void 0 ? void 0 : _b.endsWith('.bs')); }));
187
170
  }
188
171
  /**
189
- * Generate the code, map, and typedef for this file
172
+ * @deprecated logic has moved into XmlFileValidator, this is now an empty function
190
173
  */
191
- serialize() {
192
- var _a;
193
- const result = this.transpile();
194
- return {
195
- code: result === null || result === void 0 ? void 0 : result.code,
196
- map: (_a = result === null || result === void 0 ? void 0 : result.map) === null || _a === void 0 ? void 0 : _a.toString()
197
- };
174
+ validate() {
198
175
  }
199
176
  /**
200
177
  * Collect all bs: comment flags
@@ -206,40 +183,35 @@ class XmlFile {
206
183
  if (token.tokenType.name === 'Comment') {
207
184
  processor.tryAdd(
208
185
  //remove the close comment symbol
209
- token.image.replace(/\-\-\>$/, ''),
210
- //technically this range is 3 characters longer due to the removed `-->`, but that probably doesn't matter
211
- this.parser.rangeFromToken(token));
186
+ token.image.replace(/\-\-\>$/, ''), (0, SGParser_1.rangeFromTokenValue)(token));
212
187
  }
213
188
  }
214
189
  this.commentFlags.push(...processor.commentFlags);
215
190
  this.diagnostics.push(...processor.diagnostics);
216
191
  }
217
- onDependenciesChanged() {
218
- this.logDebug('clear cache because dependency graph changed');
219
- this.cache.clear();
220
- }
221
192
  /**
222
193
  * Attach the file to the dependency graph so it can monitor changes.
223
194
  * Also notify the dependency graph of our current dependencies so other dependents can be notified.
224
- * @deprecated this does nothing. This functionality is now handled by the file api and will be deleted in v1
225
195
  */
226
196
  attachDependencyGraph(dependencyGraph) {
227
197
  this.dependencyGraph = dependencyGraph;
228
- }
229
- /**
230
- * The list of files that this file depends on
231
- */
232
- get dependencies() {
233
- var _a, _b;
234
- const dependencies = [
235
- ...this.scriptTagImports.map(x => x.destPath.toLowerCase())
198
+ if (this.unsubscribeFromDependencyGraph) {
199
+ this.unsubscribeFromDependencyGraph();
200
+ }
201
+ //anytime a dependency changes, clean up some cached values
202
+ this.unsubscribeFromDependencyGraph = dependencyGraph.onchange(this.dependencyGraphKey, () => {
203
+ this.logDebug('clear cache because dependency graph changed');
204
+ this.cache.clear();
205
+ });
206
+ let dependencies = [
207
+ ...this.scriptTagImports.map(x => x.pkgPath.toLowerCase())
236
208
  ];
237
209
  //if autoImportComponentScript is enabled, add the .bs and .brs files with the same name
238
- if ((_b = (_a = this.program) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.autoImportComponentScript) {
210
+ if (this.program.options.autoImportComponentScript) {
239
211
  dependencies.push(
240
212
  //add the codebehind file dependencies.
241
213
  //These are kind of optional, so it doesn't hurt to just add both extension versions
242
- this.destPath.replace(/\.xml$/i, '.bs').toLowerCase(), this.destPath.replace(/\.xml$/i, '.brs').toLowerCase());
214
+ this.pkgPath.replace(/\.xml$/i, '.bs').toLowerCase(), this.pkgPath.replace(/\.xml$/i, '.brs').toLowerCase());
243
215
  }
244
216
  const len = dependencies.length;
245
217
  for (let i = 0; i < len; i++) {
@@ -252,12 +224,12 @@ class XmlFile {
252
224
  if (this.parentComponentName) {
253
225
  dependencies.push(this.parentComponentDependencyGraphKey);
254
226
  }
255
- return dependencies;
227
+ this.dependencyGraph.addOrReplace(this.dependencyGraphKey, dependencies);
256
228
  }
257
229
  /**
258
230
  * The key used in the dependency graph for this file.
259
231
  * If we have a component name, we will use that so we can be discoverable by child components.
260
- * If we don't have a component name, use the destPath so at least we can self-validate
232
+ * If we don't have a component name, use the pkgPath so at least we can self-validate
261
233
  */
262
234
  get dependencyGraphKey() {
263
235
  let key;
@@ -265,7 +237,7 @@ class XmlFile {
265
237
  key = `component:${this.componentName.text}`.toLowerCase();
266
238
  }
267
239
  else {
268
- key = this.destPath.toLowerCase();
240
+ key = this.pkgPath.toLowerCase();
269
241
  }
270
242
  //if our index is not zero, then we are not the primary component with that name, and need to
271
243
  //append our index to the dependency graph key as to prevent collisions in the program.
@@ -274,9 +246,6 @@ class XmlFile {
274
246
  }
275
247
  return key;
276
248
  }
277
- set dependencyGraphKey(value) {
278
- //do nothing, we override this value in the getter
279
- }
280
249
  /**
281
250
  * The key used in the dependency graph for this component's parent.
282
251
  * If we have aparent, we will use that. If we don't, this will return undefined
@@ -293,24 +262,36 @@ class XmlFile {
293
262
  * Determines if this xml file has a reference to the specified file (or if it's itself)
294
263
  */
295
264
  doesReferenceFile(file) {
296
- return this.cache.getOrAdd(`doesReferenceFile: ${file.destPath}`, () => {
265
+ return this.cache.getOrAdd(`doesReferenceFile: ${file.pkgPath}`, () => {
297
266
  if (file === this) {
298
267
  return true;
299
268
  }
300
269
  let allDependencies = this.getOwnDependencies();
301
- for (let destPath of allDependencies) {
302
- if (destPath.toLowerCase() === file.destPath.toLowerCase()) {
270
+ for (let importPkgPath of allDependencies) {
271
+ if (importPkgPath.toLowerCase() === file.pkgPath.toLowerCase()) {
303
272
  return true;
304
273
  }
305
274
  }
306
275
  //if this is an xml file...do we extend the component it defines?
307
- if (path.extname(file.destPath).toLowerCase() === '.xml') {
276
+ if (path.extname(file.pkgPath).toLowerCase() === '.xml') {
308
277
  //didn't find any script imports for this file
309
278
  return false;
310
279
  }
311
280
  return false;
312
281
  });
313
282
  }
283
+ /**
284
+ * Get all available completions for the specified position
285
+ */
286
+ getCompletions(position) {
287
+ let scriptImport = util_1.default.getScriptImportAtPosition(this.scriptTagImports, position);
288
+ if (scriptImport) {
289
+ return this.program.getScriptImportCompletions(this.pkgPath, scriptImport);
290
+ }
291
+ else {
292
+ return [];
293
+ }
294
+ }
314
295
  /**
315
296
  * Get the parent component (the component this component extends)
316
297
  */
@@ -359,13 +340,13 @@ class XmlFile {
359
340
  //add the bslib path to ownImports, it'll get filtered down below
360
341
  ownImports.push(this.program.bslibPkgPath);
361
342
  let parentImports = (_b = (_a = this.parentComponent) === null || _a === void 0 ? void 0 : _a.getAvailableScriptImports()) !== null && _b !== void 0 ? _b : [];
362
- let parentMap = parentImports.reduce((map, destPath) => {
363
- map[destPath.toLowerCase()] = true;
343
+ let parentMap = parentImports.reduce((map, pkgPath) => {
344
+ map[pkgPath.toLowerCase()] = true;
364
345
  return map;
365
346
  }, {});
366
347
  //if the XML already has this import, skip this one
367
348
  let alreadyThereScriptImportMap = this.scriptTagImports.reduce((map, fileReference) => {
368
- map[fileReference.destPath.toLowerCase()] = true;
349
+ map[fileReference.pkgPath.toLowerCase()] = true;
369
350
  return map;
370
351
  }, {});
371
352
  let resultMap = {};
@@ -386,17 +367,50 @@ class XmlFile {
386
367
  return result;
387
368
  }
388
369
  logDebug(...args) {
389
- var _a, _b;
390
- (_b = (_a = this.program) === null || _a === void 0 ? void 0 : _a.logger) === null || _b === void 0 ? void 0 : _b.debug('XmlFile', chalk_1.default.green(this.destPath), ...args);
370
+ this.program.logger.debug('XmlFile', chalk_1.default.green(this.pkgPath), ...args);
371
+ }
372
+ checkScriptsForPublishableImports(scripts) {
373
+ if (!this.program.options.pruneEmptyCodeFiles) {
374
+ return [false, scripts];
375
+ }
376
+ const publishableScripts = scripts.filter(script => {
377
+ var _a;
378
+ const uriAttributeValue = ((_a = script.attributes.find((v) => v.key.text === 'uri')) === null || _a === void 0 ? void 0 : _a.value.text) || '';
379
+ const pkgMapPath = util_1.default.getPkgPathFromTarget(this.pkgPath, uriAttributeValue);
380
+ let file = this.program.getFile(pkgMapPath);
381
+ if (!file && pkgMapPath.endsWith(this.program.bslibPkgPath)) {
382
+ return true;
383
+ }
384
+ if (!file && pkgMapPath.endsWith('.brs')) {
385
+ file = this.program.getFile(pkgMapPath.replace(/\.brs$/, '.bs'));
386
+ }
387
+ return !(file === null || file === void 0 ? void 0 : file.canBePruned);
388
+ });
389
+ return [publishableScripts.length !== scripts.length, publishableScripts];
391
390
  }
392
391
  /**
393
392
  * Convert the brightscript/brighterscript source code into valid brightscript
394
393
  */
395
394
  transpile() {
395
+ var _a, _b;
396
396
  const state = new TranspileState_1.TranspileState(this.srcPath, this.program.options);
397
+ const originalScripts = (_b = (_a = this.ast.component) === null || _a === void 0 ? void 0 : _a.scripts) !== null && _b !== void 0 ? _b : [];
398
+ const extraImportScripts = this.getMissingImportsForTranspile().map(uri => {
399
+ const script = new SGTypes_1.SGScript();
400
+ script.uri = util_1.default.getRokuPkgPath(uri.replace(/\.bs$/, '.brs'));
401
+ return script;
402
+ });
403
+ const [scriptsHaveChanged, publishableScripts] = this.checkScriptsForPublishableImports([
404
+ ...originalScripts,
405
+ ...extraImportScripts
406
+ ]);
397
407
  let transpileResult;
398
- if (this.needsTranspiled) {
399
- transpileResult = new source_map_1.SourceNode(null, null, state.srcPath, this.parser.ast.transpile(state));
408
+ if (this.needsTranspiled || extraImportScripts.length > 0 || scriptsHaveChanged) {
409
+ //temporarily add the missing imports as script tags
410
+ this.ast.component.scripts = publishableScripts;
411
+ transpileResult = util_1.default.sourceNodeFromTranspileResult(null, null, state.srcPath, this.parser.ast.transpile(state));
412
+ //restore the original scripts array
413
+ this.ast.component.scripts = originalScripts;
400
414
  }
401
415
  else if (this.program.options.sourceMap) {
402
416
  //emit code as-is with a simple map to the original file location
@@ -1 +1 @@
1
- {"version":3,"file":"XmlFile.js","sourceRoot":"","sources":["../../src/files/XmlFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XmlFile.js","sourceRoot":"","sources":["../../src/files/XmlFile.ts"],"names":[],"mappings":"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"}