brighterscript 1.0.0-alpha.24 → 1.0.0-alpha.26

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 (536) hide show
  1. package/CHANGELOG.md +521 -233
  2. package/README.md +45 -139
  3. package/bsconfig.schema.json +46 -0
  4. package/dist/ActionPipeline.d.ts +10 -0
  5. package/dist/ActionPipeline.js +40 -0
  6. package/dist/ActionPipeline.js.map +1 -0
  7. package/dist/AstValidationSegmenter.d.ts +25 -0
  8. package/dist/AstValidationSegmenter.js +152 -0
  9. package/dist/AstValidationSegmenter.js.map +1 -0
  10. package/dist/BsConfig.d.ts +40 -4
  11. package/dist/BusyStatusTracker.d.ts +31 -0
  12. package/dist/BusyStatusTracker.js +83 -0
  13. package/dist/BusyStatusTracker.js.map +1 -0
  14. package/dist/Cache.js +3 -3
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +7 -0
  17. package/dist/CacheVerifier.js +20 -0
  18. package/dist/CacheVerifier.js.map +1 -0
  19. package/dist/CodeActionUtil.d.ts +3 -3
  20. package/dist/CodeActionUtil.js.map +1 -1
  21. package/dist/CommentFlagProcessor.d.ts +3 -2
  22. package/dist/CommentFlagProcessor.js +5 -4
  23. package/dist/CommentFlagProcessor.js.map +1 -1
  24. package/dist/DependencyGraph.d.ts +3 -2
  25. package/dist/DependencyGraph.js +11 -10
  26. package/dist/DependencyGraph.js.map +1 -1
  27. package/dist/DiagnosticCollection.js +9 -5
  28. package/dist/DiagnosticCollection.js.map +1 -1
  29. package/dist/DiagnosticFilterer.d.ts +1 -0
  30. package/dist/DiagnosticFilterer.js +5 -3
  31. package/dist/DiagnosticFilterer.js.map +1 -1
  32. package/dist/DiagnosticMessages.d.ts +61 -13
  33. package/dist/DiagnosticMessages.js +116 -19
  34. package/dist/DiagnosticMessages.js.map +1 -1
  35. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  36. package/dist/DiagnosticSeverityAdjuster.js +41 -0
  37. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  38. package/dist/FunctionScope.d.ts +28 -0
  39. package/dist/FunctionScope.js +52 -0
  40. package/dist/FunctionScope.js.map +1 -0
  41. package/dist/KeyedThrottler.d.ts +3 -3
  42. package/dist/KeyedThrottler.js +3 -3
  43. package/dist/KeyedThrottler.js.map +1 -1
  44. package/dist/LanguageServer.d.ts +23 -11
  45. package/dist/LanguageServer.js +150 -69
  46. package/dist/LanguageServer.js.map +1 -1
  47. package/dist/Logger.d.ts +3 -2
  48. package/dist/Logger.js +11 -3
  49. package/dist/Logger.js.map +1 -1
  50. package/dist/PluginInterface.d.ts +21 -3
  51. package/dist/PluginInterface.js +74 -6
  52. package/dist/PluginInterface.js.map +1 -1
  53. package/dist/Program.d.ts +158 -79
  54. package/dist/Program.js +841 -706
  55. package/dist/Program.js.map +1 -1
  56. package/dist/ProgramBuilder.d.ts +22 -12
  57. package/dist/ProgramBuilder.js +130 -103
  58. package/dist/ProgramBuilder.js.map +1 -1
  59. package/dist/Scope.d.ts +86 -137
  60. package/dist/Scope.js +453 -519
  61. package/dist/Scope.js.map +1 -1
  62. package/dist/Stopwatch.js +1 -1
  63. package/dist/Stopwatch.js.map +1 -1
  64. package/dist/SymbolTable.d.ts +89 -34
  65. package/dist/SymbolTable.js +239 -114
  66. package/dist/SymbolTable.js.map +1 -1
  67. package/dist/Throttler.d.ts +12 -0
  68. package/dist/Throttler.js +39 -0
  69. package/dist/Throttler.js.map +1 -1
  70. package/dist/Watcher.d.ts +0 -3
  71. package/dist/Watcher.js +0 -3
  72. package/dist/Watcher.js.map +1 -1
  73. package/dist/XmlScope.d.ts +4 -11
  74. package/dist/XmlScope.js +75 -88
  75. package/dist/XmlScope.js.map +1 -1
  76. package/dist/astUtils/CachedLookups.d.ts +48 -0
  77. package/dist/astUtils/CachedLookups.js +323 -0
  78. package/dist/astUtils/CachedLookups.js.map +1 -0
  79. package/dist/astUtils/{AstEditor.d.ts → Editor.d.ts} +9 -5
  80. package/dist/astUtils/{AstEditor.js → Editor.js} +10 -4
  81. package/dist/astUtils/Editor.js.map +1 -0
  82. package/dist/astUtils/{AstEditor.spec.js → Editor.spec.js} +69 -65
  83. package/dist/astUtils/Editor.spec.js.map +1 -0
  84. package/dist/astUtils/creators.d.ts +10 -10
  85. package/dist/astUtils/creators.js +54 -24
  86. package/dist/astUtils/creators.js.map +1 -1
  87. package/dist/astUtils/creators.spec.js +5 -5
  88. package/dist/astUtils/creators.spec.js.map +1 -1
  89. package/dist/astUtils/reflection.d.ts +132 -104
  90. package/dist/astUtils/reflection.js +220 -174
  91. package/dist/astUtils/reflection.js.map +1 -1
  92. package/dist/astUtils/reflection.spec.js +256 -157
  93. package/dist/astUtils/reflection.spec.js.map +1 -1
  94. package/dist/astUtils/stackedVisitor.spec.js +12 -12
  95. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  96. package/dist/astUtils/visitors.d.ts +53 -35
  97. package/dist/astUtils/visitors.js +29 -3
  98. package/dist/astUtils/visitors.js.map +1 -1
  99. package/dist/astUtils/visitors.spec.js +208 -52
  100. package/dist/astUtils/visitors.spec.js.map +1 -1
  101. package/dist/astUtils/xml.d.ts +9 -9
  102. package/dist/astUtils/xml.js +9 -9
  103. package/dist/astUtils/xml.js.map +1 -1
  104. package/dist/bscPlugin/BscPlugin.d.ts +11 -2
  105. package/dist/bscPlugin/BscPlugin.js +37 -3
  106. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  107. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  108. package/dist/bscPlugin/CallExpressionInfo.js +131 -0
  109. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  110. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  111. package/dist/bscPlugin/FileWriter.js +24 -0
  112. package/dist/bscPlugin/FileWriter.js.map +1 -0
  113. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  114. package/dist/bscPlugin/SignatureHelpUtil.js +136 -0
  115. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  116. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +16 -13
  117. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  118. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +16 -16
  119. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  120. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +52 -1
  121. package/dist/bscPlugin/completions/CompletionsProcessor.js +517 -26
  122. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  123. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +1909 -0
  124. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  125. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  126. package/dist/bscPlugin/definition/DefinitionProvider.js +210 -0
  127. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  128. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +88 -0
  129. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  130. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  131. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  132. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  133. package/dist/bscPlugin/hover/HoverProcessor.d.ts +7 -7
  134. package/dist/bscPlugin/hover/HoverProcessor.js +123 -125
  135. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  136. package/dist/bscPlugin/hover/HoverProcessor.spec.js +371 -53
  137. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  138. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +2 -1
  139. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +83 -23
  140. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  141. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +83 -6
  142. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  143. package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
  144. package/dist/bscPlugin/serialize/BslibInjector.spec.js +19 -0
  145. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  146. package/dist/bscPlugin/serialize/BslibManager.d.ts +9 -0
  147. package/dist/bscPlugin/serialize/BslibManager.js +40 -0
  148. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  149. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  150. package/dist/bscPlugin/serialize/FileSerializer.js +72 -0
  151. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  152. package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.d.ts → BrsFileTranspileProcessor.d.ts} +4 -2
  153. package/dist/bscPlugin/transpile/{BrsFilePreTranspileProcessor.js → BrsFileTranspileProcessor.js} +38 -12
  154. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  155. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  156. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +41 -0
  157. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  158. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  159. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  160. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  161. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +13 -5
  162. package/dist/bscPlugin/validation/BrsFileValidator.js +262 -52
  163. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  164. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +230 -14
  165. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  166. package/dist/bscPlugin/validation/ProgramValidator.d.ts +10 -0
  167. package/dist/bscPlugin/validation/ProgramValidator.js +32 -0
  168. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  169. package/dist/bscPlugin/validation/ScopeValidator.d.ts +58 -27
  170. package/dist/bscPlugin/validation/ScopeValidator.js +514 -286
  171. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  172. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  173. package/dist/bscPlugin/validation/ScopeValidator.spec.js +2527 -0
  174. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  175. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  176. package/dist/bscPlugin/validation/XmlFileValidator.js +44 -0
  177. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  178. package/dist/cli.js +104 -13
  179. package/dist/cli.js.map +1 -1
  180. package/dist/deferred.d.ts +3 -3
  181. package/dist/deferred.js.map +1 -1
  182. package/dist/diagnosticUtils.d.ts +8 -2
  183. package/dist/diagnosticUtils.js +47 -17
  184. package/dist/diagnosticUtils.js.map +1 -1
  185. package/dist/examples/plugins/removePrint.js +8 -10
  186. package/dist/examples/plugins/removePrint.js.map +1 -1
  187. package/dist/files/AssetFile.d.ts +26 -0
  188. package/dist/files/AssetFile.js +26 -0
  189. package/dist/files/AssetFile.js.map +1 -0
  190. package/dist/files/BrsFile.Class.spec.js +523 -493
  191. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  192. package/dist/files/BrsFile.d.ts +111 -117
  193. package/dist/files/BrsFile.js +684 -1142
  194. package/dist/files/BrsFile.js.map +1 -1
  195. package/dist/files/BrsFile.spec.js +1783 -1233
  196. package/dist/files/BrsFile.spec.js.map +1 -1
  197. package/dist/files/BscFile.d.ts +104 -0
  198. package/dist/files/BscFile.js +16 -0
  199. package/dist/files/BscFile.js.map +1 -0
  200. package/dist/files/Factory.d.ts +25 -0
  201. package/dist/files/Factory.js +22 -0
  202. package/dist/files/Factory.js.map +1 -0
  203. package/dist/files/LazyFileData.d.ts +20 -0
  204. package/dist/files/LazyFileData.js +54 -0
  205. package/dist/files/LazyFileData.js.map +1 -0
  206. package/dist/files/LazyFileData.spec.d.ts +1 -0
  207. package/dist/files/LazyFileData.spec.js +27 -0
  208. package/dist/files/LazyFileData.spec.js.map +1 -0
  209. package/dist/files/XmlFile.d.ts +70 -32
  210. package/dist/files/XmlFile.js +106 -118
  211. package/dist/files/XmlFile.js.map +1 -1
  212. package/dist/files/XmlFile.spec.js +325 -262
  213. package/dist/files/XmlFile.spec.js.map +1 -1
  214. package/dist/files/tests/imports.spec.js +48 -40
  215. package/dist/files/tests/imports.spec.js.map +1 -1
  216. package/dist/files/tests/optionalChaning.spec.js +84 -24
  217. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  218. package/dist/globalCallables.js +16 -21
  219. package/dist/globalCallables.js.map +1 -1
  220. package/dist/index.d.ts +12 -1
  221. package/dist/index.js +12 -1
  222. package/dist/index.js.map +1 -1
  223. package/dist/interfaces.d.ts +421 -162
  224. package/dist/interfaces.js +27 -0
  225. package/dist/interfaces.js.map +1 -1
  226. package/dist/lexer/Character.spec.js +5 -5
  227. package/dist/lexer/Character.spec.js.map +1 -1
  228. package/dist/lexer/Lexer.d.ts +12 -5
  229. package/dist/lexer/Lexer.js +28 -13
  230. package/dist/lexer/Lexer.js.map +1 -1
  231. package/dist/lexer/Lexer.spec.js +181 -135
  232. package/dist/lexer/Lexer.spec.js.map +1 -1
  233. package/dist/lexer/Token.d.ts +9 -1
  234. package/dist/lexer/Token.js +9 -1
  235. package/dist/lexer/Token.js.map +1 -1
  236. package/dist/lexer/TokenKind.d.ts +8 -0
  237. package/dist/lexer/TokenKind.js +24 -4
  238. package/dist/lexer/TokenKind.js.map +1 -1
  239. package/dist/parser/AstNode.d.ts +162 -0
  240. package/dist/parser/AstNode.js +225 -0
  241. package/dist/parser/AstNode.js.map +1 -0
  242. package/dist/parser/AstNode.spec.d.ts +1 -0
  243. package/dist/parser/AstNode.spec.js +165 -0
  244. package/dist/parser/AstNode.spec.js.map +1 -0
  245. package/dist/parser/BrsTranspileState.d.ts +4 -7
  246. package/dist/parser/BrsTranspileState.js +4 -12
  247. package/dist/parser/BrsTranspileState.js.map +1 -1
  248. package/dist/parser/Expression.d.ts +376 -283
  249. package/dist/parser/Expression.js +742 -585
  250. package/dist/parser/Expression.js.map +1 -1
  251. package/dist/parser/Parser.Class.spec.js +151 -145
  252. package/dist/parser/Parser.Class.spec.js.map +1 -1
  253. package/dist/parser/Parser.d.ts +48 -201
  254. package/dist/parser/Parser.js +705 -1026
  255. package/dist/parser/Parser.js.map +1 -1
  256. package/dist/parser/Parser.spec.d.ts +3 -1
  257. package/dist/parser/Parser.spec.js +861 -848
  258. package/dist/parser/Parser.spec.js.map +1 -1
  259. package/dist/parser/SGParser.d.ts +9 -8
  260. package/dist/parser/SGParser.js +10 -8
  261. package/dist/parser/SGParser.js.map +1 -1
  262. package/dist/parser/SGParser.spec.js +27 -38
  263. package/dist/parser/SGParser.spec.js.map +1 -1
  264. package/dist/parser/SGTypes.d.ts +98 -35
  265. package/dist/parser/SGTypes.js +169 -99
  266. package/dist/parser/SGTypes.js.map +1 -1
  267. package/dist/parser/Statement.d.ts +468 -272
  268. package/dist/parser/Statement.js +904 -631
  269. package/dist/parser/Statement.js.map +1 -1
  270. package/dist/parser/Statement.spec.js +47 -23
  271. package/dist/parser/Statement.spec.js.map +1 -1
  272. package/dist/parser/TranspileState.d.ts +1 -1
  273. package/dist/parser/TranspileState.js +7 -12
  274. package/dist/parser/TranspileState.js.map +1 -1
  275. package/dist/parser/tests/Parser.spec.js +3 -2
  276. package/dist/parser/tests/Parser.spec.js.map +1 -1
  277. package/dist/parser/tests/controlFlow/For.spec.js +33 -23
  278. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  279. package/dist/parser/tests/controlFlow/ForEach.spec.js +25 -20
  280. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  281. package/dist/parser/tests/controlFlow/If.spec.js +96 -94
  282. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  283. package/dist/parser/tests/controlFlow/While.spec.js +22 -16
  284. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  285. package/dist/parser/tests/expression/Additive.spec.js +8 -8
  286. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  287. package/dist/parser/tests/expression/ArrayLiterals.spec.js +58 -21
  288. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  289. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +62 -21
  290. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  291. package/dist/parser/tests/expression/Boolean.spec.js +8 -8
  292. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  293. package/dist/parser/tests/expression/Call.spec.js +129 -21
  294. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  295. package/dist/parser/tests/expression/Exponential.spec.js +5 -5
  296. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  297. package/dist/parser/tests/expression/Function.spec.js +36 -36
  298. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  299. package/dist/parser/tests/expression/Indexing.spec.js +92 -22
  300. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  301. package/dist/parser/tests/expression/Multiplicative.spec.js +9 -9
  302. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  303. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +59 -59
  304. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  305. package/dist/parser/tests/expression/PrefixUnary.spec.js +12 -12
  306. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  307. package/dist/parser/tests/expression/Primary.spec.js +12 -12
  308. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  309. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +10 -10
  310. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -1
  311. package/dist/parser/tests/expression/Relational.spec.js +13 -13
  312. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  313. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +24 -24
  314. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  315. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +96 -57
  316. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  317. package/dist/parser/tests/expression/TernaryExpression.spec.js +89 -89
  318. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  319. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  320. package/dist/parser/tests/expression/TypeExpression.spec.js +127 -0
  321. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  322. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  323. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  324. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  325. package/dist/parser/tests/statement/AssignmentOperators.spec.js +15 -15
  326. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  327. package/dist/parser/tests/statement/ConstStatement.spec.js +82 -33
  328. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  329. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  330. package/dist/parser/tests/statement/Continue.spec.js +119 -0
  331. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  332. package/dist/parser/tests/statement/Declaration.spec.js +19 -19
  333. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  334. package/dist/parser/tests/statement/Dim.spec.js +22 -22
  335. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  336. package/dist/parser/tests/statement/Enum.spec.js +98 -302
  337. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  338. package/dist/parser/tests/statement/For.spec.js +9 -10
  339. package/dist/parser/tests/statement/For.spec.js.map +1 -1
  340. package/dist/parser/tests/statement/ForEach.spec.js +8 -9
  341. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -1
  342. package/dist/parser/tests/statement/Function.spec.js +44 -35
  343. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  344. package/dist/parser/tests/statement/Goto.spec.js +5 -5
  345. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  346. package/dist/parser/tests/statement/Increment.spec.js +20 -20
  347. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  348. package/dist/parser/tests/statement/InterfaceStatement.spec.js +30 -196
  349. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -1
  350. package/dist/parser/tests/statement/LibraryStatement.spec.js +11 -11
  351. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  352. package/dist/parser/tests/statement/Misc.spec.js +16 -78
  353. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  354. package/dist/parser/tests/statement/PrintStatement.spec.js +36 -34
  355. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  356. package/dist/parser/tests/statement/ReturnStatement.spec.js +14 -12
  357. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  358. package/dist/parser/tests/statement/Set.spec.js +48 -35
  359. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  360. package/dist/parser/tests/statement/Stop.spec.js +6 -6
  361. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  362. package/dist/parser/tests/statement/Throw.spec.js +6 -6
  363. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  364. package/dist/parser/tests/statement/TryCatch.spec.js +18 -16
  365. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  366. package/dist/preprocessor/Manifest.d.ts +1 -1
  367. package/dist/preprocessor/Manifest.js +2 -2
  368. package/dist/preprocessor/Manifest.js.map +1 -1
  369. package/dist/preprocessor/Manifest.spec.js +8 -8
  370. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  371. package/dist/preprocessor/Preprocessor.d.ts +5 -6
  372. package/dist/preprocessor/Preprocessor.js +5 -5
  373. package/dist/preprocessor/Preprocessor.js.map +1 -1
  374. package/dist/preprocessor/Preprocessor.spec.js +25 -25
  375. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  376. package/dist/preprocessor/PreprocessorParser.d.ts +1 -1
  377. package/dist/preprocessor/PreprocessorParser.js +7 -1
  378. package/dist/preprocessor/PreprocessorParser.js.map +1 -1
  379. package/dist/preprocessor/PreprocessorParser.spec.js +13 -13
  380. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  381. package/dist/roku-types/data.json +5892 -10081
  382. package/dist/roku-types/index.d.ts +622 -1719
  383. package/dist/types/ArrayType.d.ts +10 -9
  384. package/dist/types/ArrayType.js +65 -60
  385. package/dist/types/ArrayType.js.map +1 -1
  386. package/dist/types/ArrayType.spec.js +36 -68
  387. package/dist/types/ArrayType.spec.js.map +1 -1
  388. package/dist/types/AssociativeArrayType.d.ts +11 -0
  389. package/dist/types/AssociativeArrayType.js +52 -0
  390. package/dist/types/AssociativeArrayType.js.map +1 -0
  391. package/dist/types/BaseFunctionType.d.ts +9 -0
  392. package/dist/types/BaseFunctionType.js +25 -0
  393. package/dist/types/BaseFunctionType.js.map +1 -0
  394. package/dist/types/BooleanType.d.ts +8 -5
  395. package/dist/types/BooleanType.js +14 -7
  396. package/dist/types/BooleanType.js.map +1 -1
  397. package/dist/types/BooleanType.spec.js +10 -6
  398. package/dist/types/BooleanType.spec.js.map +1 -1
  399. package/dist/types/BscType.d.ts +32 -21
  400. package/dist/types/BscType.js +118 -21
  401. package/dist/types/BscType.js.map +1 -1
  402. package/dist/types/BscTypeKind.d.ts +25 -0
  403. package/dist/types/BscTypeKind.js +30 -0
  404. package/dist/types/BscTypeKind.js.map +1 -0
  405. package/dist/types/BuiltInInterfaceAdder.d.ts +23 -0
  406. package/dist/types/BuiltInInterfaceAdder.js +171 -0
  407. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  408. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  409. package/dist/types/BuiltInInterfaceAdder.spec.js +116 -0
  410. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  411. package/dist/types/ClassType.d.ts +17 -0
  412. package/dist/types/ClassType.js +58 -0
  413. package/dist/types/ClassType.js.map +1 -0
  414. package/dist/types/ClassType.spec.d.ts +1 -0
  415. package/dist/types/ClassType.spec.js +77 -0
  416. package/dist/types/ClassType.spec.js.map +1 -0
  417. package/dist/types/ComponentType.d.ts +26 -0
  418. package/dist/types/ComponentType.js +83 -0
  419. package/dist/types/ComponentType.js.map +1 -0
  420. package/dist/types/DoubleType.d.ts +8 -5
  421. package/dist/types/DoubleType.js +18 -16
  422. package/dist/types/DoubleType.js.map +1 -1
  423. package/dist/types/DoubleType.spec.js +12 -6
  424. package/dist/types/DoubleType.spec.js.map +1 -1
  425. package/dist/types/DynamicType.d.ts +9 -5
  426. package/dist/types/DynamicType.js +15 -4
  427. package/dist/types/DynamicType.js.map +1 -1
  428. package/dist/types/DynamicType.spec.js +16 -5
  429. package/dist/types/DynamicType.spec.js.map +1 -1
  430. package/dist/types/EnumType.d.ts +30 -12
  431. package/dist/types/EnumType.js +43 -17
  432. package/dist/types/EnumType.js.map +1 -1
  433. package/dist/types/EnumType.spec.d.ts +1 -0
  434. package/dist/types/EnumType.spec.js +33 -0
  435. package/dist/types/EnumType.spec.js.map +1 -0
  436. package/dist/types/FloatType.d.ts +8 -5
  437. package/dist/types/FloatType.js +18 -16
  438. package/dist/types/FloatType.js.map +1 -1
  439. package/dist/types/FloatType.spec.js +4 -6
  440. package/dist/types/FloatType.spec.js.map +1 -1
  441. package/dist/types/FunctionType.d.ts +13 -8
  442. package/dist/types/FunctionType.js +30 -14
  443. package/dist/types/FunctionType.js.map +1 -1
  444. package/dist/types/InheritableType.d.ts +28 -0
  445. package/dist/types/InheritableType.js +152 -0
  446. package/dist/types/InheritableType.js.map +1 -0
  447. package/dist/types/IntegerType.d.ts +8 -5
  448. package/dist/types/IntegerType.js +18 -16
  449. package/dist/types/IntegerType.js.map +1 -1
  450. package/dist/types/IntegerType.spec.js +8 -6
  451. package/dist/types/IntegerType.spec.js.map +1 -1
  452. package/dist/types/InterfaceType.d.ts +12 -13
  453. package/dist/types/InterfaceType.js +20 -48
  454. package/dist/types/InterfaceType.js.map +1 -1
  455. package/dist/types/InterfaceType.spec.js +90 -56
  456. package/dist/types/InterfaceType.spec.js.map +1 -1
  457. package/dist/types/InvalidType.d.ts +7 -5
  458. package/dist/types/InvalidType.js +13 -7
  459. package/dist/types/InvalidType.js.map +1 -1
  460. package/dist/types/InvalidType.spec.js +8 -6
  461. package/dist/types/InvalidType.spec.js.map +1 -1
  462. package/dist/types/LongIntegerType.d.ts +8 -5
  463. package/dist/types/LongIntegerType.js +17 -15
  464. package/dist/types/LongIntegerType.js.map +1 -1
  465. package/dist/types/LongIntegerType.spec.js +10 -6
  466. package/dist/types/LongIntegerType.spec.js.map +1 -1
  467. package/dist/types/NamespaceType.d.ts +12 -0
  468. package/dist/types/NamespaceType.js +28 -0
  469. package/dist/types/NamespaceType.js.map +1 -0
  470. package/dist/types/ObjectType.d.ts +9 -8
  471. package/dist/types/ObjectType.js +21 -11
  472. package/dist/types/ObjectType.js.map +1 -1
  473. package/dist/types/ObjectType.spec.js +3 -3
  474. package/dist/types/ObjectType.spec.js.map +1 -1
  475. package/dist/types/ReferenceType.d.ts +63 -0
  476. package/dist/types/ReferenceType.js +423 -0
  477. package/dist/types/ReferenceType.js.map +1 -0
  478. package/dist/types/ReferenceType.spec.d.ts +1 -0
  479. package/dist/types/ReferenceType.spec.js +137 -0
  480. package/dist/types/ReferenceType.spec.js.map +1 -0
  481. package/dist/types/StringType.d.ts +11 -5
  482. package/dist/types/StringType.js +18 -7
  483. package/dist/types/StringType.js.map +1 -1
  484. package/dist/types/StringType.spec.js +3 -5
  485. package/dist/types/StringType.spec.js.map +1 -1
  486. package/dist/types/TypedFunctionType.d.ts +22 -17
  487. package/dist/types/TypedFunctionType.js +78 -60
  488. package/dist/types/TypedFunctionType.js.map +1 -1
  489. package/dist/types/TypedFunctionType.spec.js +105 -20
  490. package/dist/types/TypedFunctionType.spec.js.map +1 -1
  491. package/dist/types/UninitializedType.d.ts +8 -6
  492. package/dist/types/UninitializedType.js +13 -7
  493. package/dist/types/UninitializedType.js.map +1 -1
  494. package/dist/types/UnionType.d.ts +20 -0
  495. package/dist/types/UnionType.js +123 -0
  496. package/dist/types/UnionType.js.map +1 -0
  497. package/dist/types/UnionType.spec.d.ts +1 -0
  498. package/dist/types/UnionType.spec.js +130 -0
  499. package/dist/types/UnionType.spec.js.map +1 -0
  500. package/dist/types/VoidType.d.ts +8 -5
  501. package/dist/types/VoidType.js +14 -7
  502. package/dist/types/VoidType.js.map +1 -1
  503. package/dist/types/VoidType.spec.js +3 -3
  504. package/dist/types/VoidType.spec.js.map +1 -1
  505. package/dist/types/helper.spec.d.ts +1 -0
  506. package/dist/types/helper.spec.js +145 -0
  507. package/dist/types/helper.spec.js.map +1 -0
  508. package/dist/types/helpers.d.ts +19 -37
  509. package/dist/types/helpers.js +159 -99
  510. package/dist/types/helpers.js.map +1 -1
  511. package/dist/types/index.d.ts +22 -0
  512. package/dist/types/index.js +39 -0
  513. package/dist/types/index.js.map +1 -0
  514. package/dist/util.d.ts +143 -139
  515. package/dist/util.js +864 -385
  516. package/dist/util.js.map +1 -1
  517. package/dist/validators/ClassValidator.d.ts +8 -25
  518. package/dist/validators/ClassValidator.js +99 -179
  519. package/dist/validators/ClassValidator.js.map +1 -1
  520. package/package.json +165 -152
  521. package/dist/astUtils/AstEditor.js.map +0 -1
  522. package/dist/astUtils/AstEditor.spec.js.map +0 -1
  523. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +0 -1
  524. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -32
  525. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
  526. package/dist/parser/SGTypes.spec.js +0 -351
  527. package/dist/parser/SGTypes.spec.js.map +0 -1
  528. package/dist/types/CustomType.d.ts +0 -12
  529. package/dist/types/CustomType.js +0 -44
  530. package/dist/types/CustomType.js.map +0 -1
  531. package/dist/types/LazyType.d.ts +0 -16
  532. package/dist/types/LazyType.js +0 -44
  533. package/dist/types/LazyType.js.map +0 -1
  534. /package/dist/astUtils/{AstEditor.spec.d.ts → Editor.spec.d.ts} +0 -0
  535. /package/dist/bscPlugin/{transpile/BrsFilePreTranspileProcessor.spec.d.ts → completions/CompletionsProcessor.spec.d.ts} +0 -0
  536. /package/dist/{parser/SGTypes.spec.d.ts → bscPlugin/definition/DefinitionProvider.spec.d.ts} +0 -0
@@ -1,351 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const util_1 = require("../util");
4
- const sinon_1 = require("sinon");
5
- const Program_1 = require("../Program");
6
- const testHelpers_spec_1 = require("../testHelpers.spec");
7
- const chai_1 = require("chai");
8
- const TranspileState_1 = require("./TranspileState");
9
- const SGTypes_1 = require("./SGTypes");
10
- const creators_1 = require("../astUtils/creators");
11
- const sinon = (0, sinon_1.createSandbox)();
12
- describe('SGTypes', () => {
13
- let rootDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp/rootDir`;
14
- let program;
15
- const token = { text: '', range: util_1.util.createRange(1, 2, 3, 4) };
16
- beforeEach(() => {
17
- program = new Program_1.Program({ rootDir: rootDir, sourceMap: false });
18
- });
19
- afterEach(() => {
20
- sinon.restore();
21
- program.dispose();
22
- });
23
- describe('SGAttribute', () => {
24
- describe('key and value getters', () => {
25
- it('returns the value of the `key` token', () => {
26
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
27
- <?xml version="1.0" encoding="utf-8" ?>
28
- <component name="Comp">
29
- </component>
30
- `);
31
- (0, chai_1.expect)(file.parser.ast.component.getAttribute('name').key).to.eql('name');
32
- (0, chai_1.expect)(file.parser.ast.component.getAttribute('name').value).to.eql('Comp');
33
- });
34
- });
35
- describe('transpile', () => {
36
- it('skips value when not set', () => {
37
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
38
- <?xml version="1.0" encoding="utf-8" ?>
39
- <component name="Comp" something>
40
- </component>
41
- `);
42
- (0, chai_1.expect)(file.parser.ast.component.getAttribute('something').transpile(new TranspileState_1.TranspileState(null, {})).toString()).to.eql('something');
43
- });
44
- });
45
- });
46
- describe('SGTag', () => {
47
- let tag;
48
- beforeEach(() => {
49
- tag = new SGTypes_1.SGTag(token, token);
50
- });
51
- it('defaults attributes and childNodes to empty arrays if omitted', () => {
52
- (0, chai_1.expect)(tag.attributes).to.exist.and.to.be.lengthOf(0);
53
- (0, chai_1.expect)(tag.childNodes).to.exist.and.to.be.lengthOf(0);
54
- });
55
- describe('range getter', () => {
56
- it('handles null `attributes` prop', () => {
57
- tag.attributes = null;
58
- (0, chai_1.expect)(tag.range).to.exist;
59
- });
60
- it('handles null `childNodes` prop', () => {
61
- tag.childNodes = null;
62
- (0, chai_1.expect)(tag.range).to.exist;
63
- });
64
- });
65
- describe('id setter', () => {
66
- it('creates if missing', () => {
67
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
68
- <?xml version="1.0" encoding="utf-8" ?>
69
- <component name="Comp">
70
- </component>
71
- `);
72
- (0, chai_1.expect)(file.ast.component.getAttribute('id')).not.to.exist;
73
- file.ast.component.id = 'someValue';
74
- (0, chai_1.expect)(file.ast.component.getAttribute('id')).to.exist;
75
- });
76
- });
77
- describe('tagName getter', () => {
78
- it('returns null if missing startTagName', () => {
79
- tag.tokens.startTagName = null;
80
- (0, chai_1.expect)(tag.tagName).not.to.exist;
81
- });
82
- });
83
- describe('removeChild', () => {
84
- it('removes the tag if found', () => {
85
- const child = tag.addChild(new SGTypes_1.SGTag(token, token));
86
- (0, chai_1.expect)(tag.removeChild(child)).to.be.true;
87
- });
88
- it('does nothing if tag is not there', () => {
89
- const child = new SGTypes_1.SGTag(token, token);
90
- (0, chai_1.expect)(tag.removeChild(child)).to.be.false;
91
- });
92
- });
93
- describe('setAttribute', () => {
94
- it('overwrites the attribute information if found', () => {
95
- tag.setAttributeValue('thing', 'firstValue');
96
- (0, chai_1.expect)(tag.getAttribute('thing').value).to.eql('firstValue');
97
- tag.setAttributeValue('thing', 'secondValue');
98
- (0, chai_1.expect)(tag.getAttribute('thing').value).to.eql('secondValue');
99
- });
100
- });
101
- describe('removeAttribute', () => {
102
- it('does nothing when attribute already missing', () => {
103
- (0, chai_1.expect)(tag.removeAttribute('notThere')).to.be.false;
104
- });
105
- it('removes the attribute', () => {
106
- (0, chai_1.expect)(tag.hasAttribute('someAttr')).to.be.false;
107
- tag.setAttributeValue('someAttr', 'someVal');
108
- (0, chai_1.expect)(tag.hasAttribute('someAttr')).to.be.true;
109
- tag.removeAttribute('someAttr');
110
- (0, chai_1.expect)(tag.hasAttribute('someAttr')).to.be.false;
111
- });
112
- });
113
- });
114
- describe('SGScript', () => {
115
- describe('type', () => {
116
- it('getter works', () => {
117
- const tag = (0, creators_1.createSGScript)({ type: 'brightscript' });
118
- (0, chai_1.expect)(tag.type).to.eql('brightscript');
119
- });
120
- it('setter works', () => {
121
- const tag = (0, creators_1.createSGScript)({ type: 'brightscript' });
122
- tag.type = 'brighterscript';
123
- (0, chai_1.expect)(tag.type).to.eql('brighterscript');
124
- });
125
- });
126
- });
127
- describe('SGInterfaceField', () => {
128
- it('value getter works', () => {
129
- const field = (0, creators_1.createSGInterfaceField)('someField', { value: 'someValue' });
130
- (0, chai_1.expect)(field.value).to.eql('someValue');
131
- });
132
- it('value setter works', () => {
133
- const field = (0, creators_1.createSGInterfaceField)('someField');
134
- field.value = 'someValue';
135
- (0, chai_1.expect)(field.value).to.eql('someValue');
136
- });
137
- it('onChange getter works', () => {
138
- const field = (0, creators_1.createSGInterfaceField)('someField', { onChange: 'doSomething' });
139
- (0, chai_1.expect)(field.onChange).to.eql('doSomething');
140
- });
141
- it('alwaysNotify getter works', () => {
142
- const field = (0, creators_1.createSGInterfaceField)('someField', { alwaysNotify: 'true' });
143
- (0, chai_1.expect)(field.alwaysNotify).to.eql('true');
144
- });
145
- });
146
- describe('SGInterfaceFunction', () => {
147
- it('name setter works', () => {
148
- const func = (0, creators_1.createSGInterfaceFunction)('someFunc');
149
- (0, chai_1.expect)(func.name).to.eql('someFunc');
150
- func.name = 'newName';
151
- (0, chai_1.expect)(func.name).to.eql('newName');
152
- });
153
- });
154
- describe('SGComponent', () => {
155
- let comp;
156
- beforeEach(() => {
157
- comp = (0, creators_1.createSGComponent)('comp');
158
- });
159
- describe('setInterfaceField', () => {
160
- it('creates interface node if missing', () => {
161
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
162
- <?xml version="1.0" encoding="utf-8" ?>
163
- <component name="Comp">
164
- </component>
165
- `);
166
- (0, chai_1.expect)(file.parser.ast.component.getChildNodesByTagName('interface')).to.be.empty;
167
- file.parser.ast.component.setInterfaceField('somePublicProp', 'string');
168
- (0, chai_1.expect)(file.parser.ast.component.getChildNodesByTagName('interface')).not.to.be.empty;
169
- });
170
- it('appends to existing interface node if present', () => {
171
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
172
- <?xml version="1.0" encoding="utf-8" ?>
173
- <component name="Comp">
174
- <interface></interface>
175
- </component>
176
- `);
177
- (0, chai_1.expect)(file.parser.ast.component.getChildNodesByTagName('interface')).to.be.lengthOf(1);
178
- file.parser.ast.component.setInterfaceField('somePublicProp', 'string');
179
- (0, chai_1.expect)(file.parser.ast.component.getChildNodesByTagName('interface')).to.be.lengthOf(1);
180
- });
181
- it('appends to first interface node if present', () => {
182
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
183
- <?xml version="1.0" encoding="utf-8" ?>
184
- <component name="Comp">
185
- <interface></interface>
186
- <interface></interface>
187
- </component>
188
- `);
189
- let ifaces = file.parser.ast.component.getChildNodesByTagName('interface');
190
- (0, chai_1.expect)(ifaces[0].childNodes).to.be.lengthOf(0);
191
- (0, chai_1.expect)(ifaces[1].childNodes).to.be.lengthOf(0);
192
- file.parser.ast.component.setInterfaceField('somePublicProp', 'string');
193
- ifaces = file.parser.ast.component.getChildNodesByTagName('interface');
194
- (0, chai_1.expect)(ifaces[0].childNodes).to.be.lengthOf(1);
195
- (0, chai_1.expect)(ifaces[1].childNodes).to.be.lengthOf(0);
196
- });
197
- });
198
- describe('setInterfaceFunction', () => {
199
- it('creates interface node if missing', () => {
200
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
201
- <?xml version="1.0" encoding="utf-8" ?>
202
- <component name="Comp">
203
- </component>
204
- `);
205
- (0, chai_1.expect)(file.parser.ast.component.getChildNodesByTagName('interface')).to.be.empty;
206
- file.parser.ast.component.setInterfaceFunction('someFunc');
207
- (0, chai_1.expect)(file.parser.ast.component.getChildNodesByTagName('interface')).not.to.be.empty;
208
- });
209
- it('appends to existing interface node if present', () => {
210
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
211
- <?xml version="1.0" encoding="utf-8" ?>
212
- <component name="Comp">
213
- <interface></interface>
214
- </component>
215
- `);
216
- (0, chai_1.expect)(file.parser.ast.component.getChildNodesByTagName('interface')).to.be.lengthOf(1);
217
- file.parser.ast.component.setInterfaceFunction('someFunc');
218
- (0, chai_1.expect)(file.parser.ast.component.getChildNodesByTagName('interface')).to.be.lengthOf(1);
219
- });
220
- it('appends to first interface node if present', () => {
221
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
222
- <?xml version="1.0" encoding="utf-8" ?>
223
- <component name="Comp">
224
- <interface></interface>
225
- <interface></interface>
226
- </component>
227
- `);
228
- let ifaces = file.parser.ast.component.getChildNodesByTagName('interface');
229
- (0, chai_1.expect)(ifaces[0].childNodes).to.be.lengthOf(0);
230
- (0, chai_1.expect)(ifaces[1].childNodes).to.be.lengthOf(0);
231
- file.parser.ast.component.setInterfaceFunction('someFunc');
232
- ifaces = file.parser.ast.component.getChildNodesByTagName('interface');
233
- (0, chai_1.expect)(ifaces[0].childNodes).to.be.lengthOf(1);
234
- (0, chai_1.expect)(ifaces[1].childNodes).to.be.lengthOf(0);
235
- });
236
- });
237
- describe('hasInterfaceField', () => {
238
- it('returns false when no children', () => {
239
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
240
- <?xml version="1.0" encoding="utf-8" ?>
241
- <component name="Comp">
242
- <interface></interface>
243
- </component>
244
- `);
245
- (0, chai_1.expect)(file.ast.component.hasInterfaceField('someField')).to.be.false;
246
- });
247
- it('returns false when field is missing', () => {
248
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
249
- <?xml version="1.0" encoding="utf-8" ?>
250
- <component name="Comp">
251
- <interface>
252
- <field id="someField" />
253
- </interface>
254
- </component>
255
- `);
256
- (0, chai_1.expect)(file.ast.component.hasInterfaceField('otherField')).to.be.false;
257
- });
258
- it('finds field in first <interface> node', () => {
259
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
260
- <?xml version="1.0" encoding="utf-8" ?>
261
- <component name="Comp">
262
- <interface>
263
- <field id="someField" />
264
- </interface>
265
- </component>
266
- `);
267
- (0, chai_1.expect)(file.ast.component.hasInterfaceField('someField')).to.be.true;
268
- });
269
- it('finds field in second <interface> node', () => {
270
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
271
- <?xml version="1.0" encoding="utf-8" ?>
272
- <component name="Comp">
273
- <interface></interface>
274
- <interface>
275
- <field id="someField" />
276
- </interface>
277
- </component>
278
- `);
279
- (0, chai_1.expect)(file.ast.component.hasInterfaceField('someField')).to.be.true;
280
- });
281
- });
282
- describe('hasInterfaceFunction', () => {
283
- it('returns false when no children', () => {
284
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
285
- <?xml version="1.0" encoding="utf-8" ?>
286
- <component name="Comp">
287
- <interface></interface>
288
- </component>
289
- `);
290
- (0, chai_1.expect)(file.ast.component.hasInterfaceFunction('someFunc')).to.be.false;
291
- });
292
- it('returns false when func is missing', () => {
293
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
294
- <?xml version="1.0" encoding="utf-8" ?>
295
- <component name="Comp">
296
- <interface>
297
- <function name="someFunc" />
298
- </interface>
299
- </component>
300
- `);
301
- (0, chai_1.expect)(file.ast.component.hasInterfaceFunction('otherFunc')).to.be.false;
302
- });
303
- it('finds func in first <interface> node', () => {
304
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
305
- <?xml version="1.0" encoding="utf-8" ?>
306
- <component name="Comp">
307
- <interface>
308
- <function name="someFunc" />
309
- </interface>
310
- </component>
311
- `);
312
- (0, chai_1.expect)(file.ast.component.hasInterfaceFunction('someFunc')).to.be.true;
313
- });
314
- it('finds func in second <interface> node', () => {
315
- const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
316
- <?xml version="1.0" encoding="utf-8" ?>
317
- <component name="Comp">
318
- <interface></interface>
319
- <interface>
320
- <function name="someFunc" />
321
- </interface>
322
- </component>
323
- `);
324
- (0, chai_1.expect)(file.ast.component.hasInterfaceFunction('someFunc')).to.be.true;
325
- });
326
- });
327
- describe('removeInterfaceField', () => {
328
- it('does not crash when interface missing', () => {
329
- (0, chai_1.expect)(comp.removeInterfaceField('nonExistantField')).to.be.false;
330
- });
331
- it('removes field', () => {
332
- comp.setInterfaceField('someField', 'string');
333
- (0, chai_1.expect)(comp.hasInterfaceField('someField')).to.be.true;
334
- comp.removeInterfaceField('someField');
335
- (0, chai_1.expect)(comp.hasInterfaceField('someField')).to.be.false;
336
- });
337
- });
338
- describe('removeInterfaceFunction', () => {
339
- it('does not crash when interface missing', () => {
340
- (0, chai_1.expect)(comp.removeInterfaceFunction('fakeFunc')).to.be.false;
341
- });
342
- it('removes field', () => {
343
- comp.setInterfaceFunction('someFunc');
344
- (0, chai_1.expect)(comp.hasInterfaceFunction('someFunc')).to.be.true;
345
- comp.removeInterfaceFunction('someFunc');
346
- (0, chai_1.expect)(comp.hasInterfaceFunction('someFunc')).to.be.false;
347
- });
348
- });
349
- });
350
- });
351
- //# sourceMappingURL=SGTypes.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SGTypes.spec.js","sourceRoot":"","sources":["../../src/parser/SGTypes.spec.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { SymbolTable } from '../SymbolTable';
2
- import type { BscType, SymbolContainer, TypeContext } from './BscType';
3
- export declare class CustomType implements BscType, SymbolContainer {
4
- name: string;
5
- memberTable: SymbolTable;
6
- constructor(name: string, memberTable?: SymbolTable);
7
- toString(): string;
8
- toTypeString(): string;
9
- isAssignableTo(targetType: BscType, context?: TypeContext): boolean;
10
- isConvertibleTo(targetType: BscType, context?: TypeContext): boolean;
11
- equals(targetType: BscType, context?: TypeContext): boolean;
12
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomType = void 0;
4
- const reflection_1 = require("../astUtils/reflection");
5
- const BscType_1 = require("./BscType");
6
- class CustomType {
7
- constructor(name, memberTable = null) {
8
- this.name = name;
9
- this.memberTable = memberTable;
10
- }
11
- toString() {
12
- return this.name;
13
- }
14
- toTypeString() {
15
- return 'object';
16
- }
17
- isAssignableTo(targetType, context) {
18
- var _a;
19
- if ((0, reflection_1.isObjectType)(targetType)) {
20
- return true;
21
- }
22
- const ancestorTypes = (_a = context === null || context === void 0 ? void 0 : context.scope) === null || _a === void 0 ? void 0 : _a.getAncestorTypeListByContext(this, context);
23
- if (ancestorTypes === null || ancestorTypes === void 0 ? void 0 : ancestorTypes.find(ancestorType => targetType.equals(ancestorType, context))) {
24
- return true;
25
- }
26
- if (this.memberTable && targetType.memberTable) {
27
- // both have symbol tables, so check if the target is an interface and has all the members of the target
28
- if ((0, BscType_1.checkAssignabilityToInterface)(this, targetType, context)) {
29
- return true;
30
- }
31
- }
32
- return (this.equals(targetType, context) ||
33
- (0, reflection_1.isObjectType)(targetType) ||
34
- (0, reflection_1.isDynamicType)(targetType));
35
- }
36
- isConvertibleTo(targetType, context) {
37
- return this.isAssignableTo(targetType, context);
38
- }
39
- equals(targetType, context) {
40
- return (0, reflection_1.isCustomType)(targetType) && this.toString() === (targetType === null || targetType === void 0 ? void 0 : targetType.toString());
41
- }
42
- }
43
- exports.CustomType = CustomType;
44
- //# sourceMappingURL=CustomType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomType.js","sourceRoot":"","sources":["../../src/types/CustomType.ts"],"names":[],"mappings":";;;AAAA,uDAAmF;AAGnF,uCAA0D;AAE1D,MAAa,UAAU;IAEnB,YAAmB,IAAY,EAAS,cAA2B,IAAI;QAApD,SAAI,GAAJ,IAAI,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAoB;IACvE,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEM,YAAY;QACf,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,cAAc,CAAC,UAAmB,EAAE,OAAqB;;QAC5D,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC;SACf;QACD,MAAM,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE;YAC/E,OAAO,IAAI,CAAC;SACf;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,EAAE;YAC5C,wGAAwG;YACxG,IAAI,IAAA,uCAA6B,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;gBAC1D,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,CACH,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;YAChC,IAAA,yBAAY,EAAC,UAAU,CAAC;YACxB,IAAA,0BAAa,EAAC,UAAU,CAAC,CAC5B,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,UAAmB,EAAE,OAAqB;QAC7D,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,UAAmB,EAAE,OAAqB;QACpD,OAAO,IAAA,yBAAY,EAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAK,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAE,CAAA,CAAC;IAClF,CAAC;CACJ;AAzCD,gCAyCC"}
@@ -1,16 +0,0 @@
1
- import type { BscType, TypeContext } from './BscType';
2
- /**
3
- * A type whose actual type is not computed until requested.
4
- * This is useful when the parser creates types in the middle of the file that depend on items further down in the file that haven't been parsed yet
5
- */
6
- export declare class LazyType implements BscType {
7
- private factory;
8
- constructor(factory: (context?: TypeContext) => BscType);
9
- get type(): BscType;
10
- getTypeFromContext(context?: TypeContext): BscType;
11
- isAssignableTo(targetType: BscType, context?: TypeContext): boolean;
12
- isConvertibleTo(targetType: BscType, context?: TypeContext): boolean;
13
- toString(context?: TypeContext): string;
14
- toTypeString(context?: TypeContext): string;
15
- equals(targetType: BscType, context?: TypeContext): boolean;
16
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LazyType = void 0;
4
- const reflection_1 = require("../astUtils/reflection");
5
- /**
6
- * A type whose actual type is not computed until requested.
7
- * This is useful when the parser creates types in the middle of the file that depend on items further down in the file that haven't been parsed yet
8
- */
9
- class LazyType {
10
- constructor(factory) {
11
- this.factory = factory;
12
- }
13
- get type() {
14
- return this.factory();
15
- }
16
- getTypeFromContext(context) {
17
- return this.factory(context);
18
- }
19
- isAssignableTo(targetType, context) {
20
- if ((0, reflection_1.isObjectType)(targetType)) {
21
- return true;
22
- }
23
- const foundType = this.getTypeFromContext(context);
24
- return foundType === null || foundType === void 0 ? void 0 : foundType.isAssignableTo(targetType, context);
25
- }
26
- isConvertibleTo(targetType, context) {
27
- var _a;
28
- return (_a = this.getTypeFromContext(context)) === null || _a === void 0 ? void 0 : _a.isConvertibleTo(targetType, context);
29
- }
30
- toString(context) {
31
- var _a;
32
- return (_a = this.getTypeFromContext(context)) === null || _a === void 0 ? void 0 : _a.toString(context);
33
- }
34
- toTypeString(context) {
35
- var _a;
36
- return (_a = this.getTypeFromContext(context)) === null || _a === void 0 ? void 0 : _a.toTypeString(context);
37
- }
38
- equals(targetType, context) {
39
- var _a;
40
- return (_a = this.getTypeFromContext(context)) === null || _a === void 0 ? void 0 : _a.equals(targetType, context);
41
- }
42
- }
43
- exports.LazyType = LazyType;
44
- //# sourceMappingURL=LazyType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LazyType.js","sourceRoot":"","sources":["../../src/types/LazyType.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAGtD;;;GAGG;AACH,MAAa,QAAQ;IACjB,YACY,OAA2C;QAA3C,YAAO,GAAP,OAAO,CAAoC;IAEvD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IACM,kBAAkB,CAAC,OAAqB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEM,cAAc,CAAC,UAAmB,EAAE,OAAqB;QAC5D,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC;SACf;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,eAAe,CAAC,UAAmB,EAAE,OAAqB;;QAC7D,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAEM,QAAQ,CAAC,OAAqB;;QACjC,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEM,YAAY,CAAC,OAAqB;;QACrC,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,UAAmB,EAAE,OAAqB;;QACpD,OAAO,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,0CAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;CACJ;AApCD,4BAoCC"}