brighterscript 1.0.0-alpha.5 → 1.0.0-alpha.50

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 (715) hide show
  1. package/README.md +76 -138
  2. package/bsconfig.schema.json +121 -5
  3. package/dist/ActionPipeline.d.ts +10 -0
  4. package/dist/ActionPipeline.js +40 -0
  5. package/dist/ActionPipeline.js.map +1 -0
  6. package/dist/AstValidationSegmenter.d.ts +45 -0
  7. package/dist/AstValidationSegmenter.js +322 -0
  8. package/dist/AstValidationSegmenter.js.map +1 -0
  9. package/dist/BsConfig.d.ts +72 -39
  10. package/dist/BusyStatusTracker.d.ts +61 -0
  11. package/dist/BusyStatusTracker.js +148 -0
  12. package/dist/BusyStatusTracker.js.map +1 -0
  13. package/dist/Cache.d.ts +3 -8
  14. package/dist/Cache.js +9 -14
  15. package/dist/Cache.js.map +1 -1
  16. package/dist/CacheVerifier.d.ts +7 -0
  17. package/dist/CacheVerifier.js +20 -0
  18. package/dist/CacheVerifier.js.map +1 -0
  19. package/dist/CodeActionUtil.d.ts +12 -4
  20. package/dist/CodeActionUtil.js +22 -5
  21. package/dist/CodeActionUtil.js.map +1 -1
  22. package/dist/CommentFlagProcessor.d.ts +7 -6
  23. package/dist/CommentFlagProcessor.js +11 -8
  24. package/dist/CommentFlagProcessor.js.map +1 -1
  25. package/dist/CrossScopeValidator.d.ts +68 -0
  26. package/dist/CrossScopeValidator.js +642 -0
  27. package/dist/CrossScopeValidator.js.map +1 -0
  28. package/dist/DependencyGraph.d.ts +8 -3
  29. package/dist/DependencyGraph.js +49 -16
  30. package/dist/DependencyGraph.js.map +1 -1
  31. package/dist/DiagnosticCollection.d.ts +21 -5
  32. package/dist/DiagnosticCollection.js +77 -24
  33. package/dist/DiagnosticCollection.js.map +1 -1
  34. package/dist/DiagnosticFilterer.d.ts +27 -6
  35. package/dist/DiagnosticFilterer.js +273 -60
  36. package/dist/DiagnosticFilterer.js.map +1 -1
  37. package/dist/DiagnosticManager.d.ts +82 -0
  38. package/dist/DiagnosticManager.js +406 -0
  39. package/dist/DiagnosticManager.js.map +1 -0
  40. package/dist/DiagnosticMessages.d.ts +558 -196
  41. package/dist/DiagnosticMessages.js +870 -340
  42. package/dist/DiagnosticMessages.js.map +1 -1
  43. package/dist/DiagnosticSeverityAdjuster.d.ts +7 -0
  44. package/dist/DiagnosticSeverityAdjuster.js +45 -0
  45. package/dist/DiagnosticSeverityAdjuster.js.map +1 -0
  46. package/dist/FunctionScope.d.ts +28 -0
  47. package/dist/FunctionScope.js +52 -0
  48. package/dist/FunctionScope.js.map +1 -0
  49. package/dist/KeyedThrottler.d.ts +3 -3
  50. package/dist/KeyedThrottler.js +3 -3
  51. package/dist/KeyedThrottler.js.map +1 -1
  52. package/dist/LanguageServer.d.ts +100 -105
  53. package/dist/LanguageServer.js +444 -745
  54. package/dist/LanguageServer.js.map +1 -1
  55. package/dist/Logger.d.ts +17 -13
  56. package/dist/Logger.js +64 -34
  57. package/dist/Logger.js.map +1 -1
  58. package/dist/PluginInterface.d.ts +32 -10
  59. package/dist/PluginInterface.js +117 -7
  60. package/dist/PluginInterface.js.map +1 -1
  61. package/dist/Program.d.ts +241 -98
  62. package/dist/Program.js +1432 -717
  63. package/dist/Program.js.map +1 -1
  64. package/dist/ProgramBuilder.d.ts +47 -23
  65. package/dist/ProgramBuilder.js +224 -178
  66. package/dist/ProgramBuilder.js.map +1 -1
  67. package/dist/Scope.d.ts +149 -109
  68. package/dist/Scope.js +557 -550
  69. package/dist/Scope.js.map +1 -1
  70. package/dist/SemanticTokenUtils.js +5 -1
  71. package/dist/SemanticTokenUtils.js.map +1 -1
  72. package/dist/Stopwatch.d.ts +4 -0
  73. package/dist/Stopwatch.js +8 -1
  74. package/dist/Stopwatch.js.map +1 -1
  75. package/dist/SymbolTable.d.ts +136 -24
  76. package/dist/SymbolTable.js +565 -64
  77. package/dist/SymbolTable.js.map +1 -1
  78. package/dist/SymbolTypeFlag.d.ts +9 -0
  79. package/dist/SymbolTypeFlag.js +14 -0
  80. package/dist/SymbolTypeFlag.js.map +1 -0
  81. package/dist/Throttler.d.ts +12 -0
  82. package/dist/Throttler.js +39 -0
  83. package/dist/Throttler.js.map +1 -1
  84. package/dist/Watcher.d.ts +0 -3
  85. package/dist/Watcher.js +0 -3
  86. package/dist/Watcher.js.map +1 -1
  87. package/dist/XmlScope.d.ts +5 -15
  88. package/dist/XmlScope.js +34 -90
  89. package/dist/XmlScope.js.map +1 -1
  90. package/dist/astUtils/CachedLookups.d.ts +50 -0
  91. package/dist/astUtils/CachedLookups.js +334 -0
  92. package/dist/astUtils/CachedLookups.js.map +1 -0
  93. package/dist/astUtils/CachedLookups.spec.js +39 -0
  94. package/dist/astUtils/CachedLookups.spec.js.map +1 -0
  95. package/dist/astUtils/Editor.d.ts +69 -0
  96. package/dist/astUtils/Editor.js +245 -0
  97. package/dist/astUtils/Editor.js.map +1 -0
  98. package/dist/astUtils/Editor.spec.js +258 -0
  99. package/dist/astUtils/Editor.spec.js.map +1 -0
  100. package/dist/astUtils/creators.d.ts +54 -19
  101. package/dist/astUtils/creators.js +242 -42
  102. package/dist/astUtils/creators.js.map +1 -1
  103. package/dist/astUtils/creators.spec.js +5 -5
  104. package/dist/astUtils/creators.spec.js.map +1 -1
  105. package/dist/astUtils/reflection.d.ts +196 -85
  106. package/dist/astUtils/reflection.js +497 -144
  107. package/dist/astUtils/reflection.js.map +1 -1
  108. package/dist/astUtils/reflection.spec.js +267 -167
  109. package/dist/astUtils/reflection.spec.js.map +1 -1
  110. package/dist/astUtils/stackedVisitor.js.map +1 -1
  111. package/dist/astUtils/stackedVisitor.spec.js +14 -14
  112. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  113. package/dist/astUtils/visitors.d.ts +116 -53
  114. package/dist/astUtils/visitors.js +95 -15
  115. package/dist/astUtils/visitors.js.map +1 -1
  116. package/dist/astUtils/visitors.spec.js +629 -51
  117. package/dist/astUtils/visitors.spec.js.map +1 -1
  118. package/dist/astUtils/xml.d.ts +9 -8
  119. package/dist/astUtils/xml.js +12 -7
  120. package/dist/astUtils/xml.js.map +1 -1
  121. package/dist/bscPlugin/BscPlugin.d.ts +24 -4
  122. package/dist/bscPlugin/BscPlugin.js +88 -4
  123. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  124. package/dist/bscPlugin/CallExpressionInfo.d.ts +36 -0
  125. package/dist/bscPlugin/CallExpressionInfo.js +143 -0
  126. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -0
  127. package/dist/bscPlugin/FileWriter.d.ts +6 -0
  128. package/dist/bscPlugin/FileWriter.js +24 -0
  129. package/dist/bscPlugin/FileWriter.js.map +1 -0
  130. package/dist/bscPlugin/SignatureHelpUtil.d.ts +10 -0
  131. package/dist/bscPlugin/SignatureHelpUtil.js +137 -0
  132. package/dist/bscPlugin/SignatureHelpUtil.js.map +1 -0
  133. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +6 -5
  134. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +173 -27
  135. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  136. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +138 -21
  137. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  138. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +65 -0
  139. package/dist/bscPlugin/completions/CompletionsProcessor.js +633 -0
  140. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -0
  141. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +2512 -0
  142. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  143. package/dist/bscPlugin/definition/DefinitionProvider.d.ts +13 -0
  144. package/dist/bscPlugin/definition/DefinitionProvider.js +212 -0
  145. package/dist/bscPlugin/definition/DefinitionProvider.js.map +1 -0
  146. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +87 -0
  147. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +1 -0
  148. package/dist/bscPlugin/fileProviders/FileProvider.d.ts +9 -0
  149. package/dist/bscPlugin/fileProviders/FileProvider.js +51 -0
  150. package/dist/bscPlugin/fileProviders/FileProvider.js.map +1 -0
  151. package/dist/bscPlugin/hover/HoverProcessor.d.ts +18 -0
  152. package/dist/bscPlugin/hover/HoverProcessor.js +230 -0
  153. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -0
  154. package/dist/bscPlugin/hover/HoverProcessor.spec.js +991 -0
  155. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -0
  156. package/dist/bscPlugin/references/ReferencesProvider.d.ts +12 -0
  157. package/dist/bscPlugin/references/ReferencesProvider.js +57 -0
  158. package/dist/bscPlugin/references/ReferencesProvider.js.map +1 -0
  159. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +1 -0
  160. package/dist/bscPlugin/references/ReferencesProvider.spec.js +51 -0
  161. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +1 -0
  162. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.d.ts +14 -0
  163. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +164 -0
  164. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -0
  165. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +1 -0
  166. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +564 -0
  167. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -0
  168. package/dist/bscPlugin/serialize/BslibInjector.spec.d.ts +1 -0
  169. package/dist/bscPlugin/serialize/BslibInjector.spec.js +33 -0
  170. package/dist/bscPlugin/serialize/BslibInjector.spec.js.map +1 -0
  171. package/dist/bscPlugin/serialize/BslibManager.d.ts +12 -0
  172. package/dist/bscPlugin/serialize/BslibManager.js +46 -0
  173. package/dist/bscPlugin/serialize/BslibManager.js.map +1 -0
  174. package/dist/bscPlugin/serialize/FileSerializer.d.ts +9 -0
  175. package/dist/bscPlugin/serialize/FileSerializer.js +75 -0
  176. package/dist/bscPlugin/serialize/FileSerializer.js.map +1 -0
  177. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.d.ts +7 -0
  178. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js +22 -0
  179. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.js.map +1 -0
  180. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +1 -0
  181. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +291 -0
  182. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +1 -0
  183. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.d.ts +7 -0
  184. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js +26 -0
  185. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.js.map +1 -0
  186. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +1 -0
  187. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +245 -0
  188. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +1 -0
  189. package/dist/bscPlugin/symbols/symbolUtils.d.ts +5 -0
  190. package/dist/bscPlugin/symbols/symbolUtils.js +141 -0
  191. package/dist/bscPlugin/symbols/symbolUtils.js.map +1 -0
  192. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +27 -0
  193. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +418 -0
  194. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -0
  195. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.d.ts +1 -0
  196. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +75 -0
  197. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -0
  198. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.d.ts +12 -0
  199. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js +99 -0
  200. package/dist/bscPlugin/transpile/XmlFilePreTranspileProcessor.js.map +1 -0
  201. package/dist/bscPlugin/validation/BrsFileAfterValidator.d.ts +7 -0
  202. package/dist/bscPlugin/validation/BrsFileAfterValidator.js +18 -0
  203. package/dist/bscPlugin/validation/BrsFileAfterValidator.js.map +1 -0
  204. package/dist/bscPlugin/validation/BrsFileValidator.d.ts +37 -0
  205. package/dist/bscPlugin/validation/BrsFileValidator.js +638 -0
  206. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -0
  207. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +1 -0
  208. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +1517 -0
  209. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -0
  210. package/dist/bscPlugin/validation/ProgramValidator.d.ts +11 -0
  211. package/dist/bscPlugin/validation/ProgramValidator.js +33 -0
  212. package/dist/bscPlugin/validation/ProgramValidator.js.map +1 -0
  213. package/dist/bscPlugin/validation/ScopeValidator.d.ts +141 -0
  214. package/dist/bscPlugin/validation/ScopeValidator.js +1323 -0
  215. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -0
  216. package/dist/bscPlugin/validation/ScopeValidator.spec.d.ts +1 -0
  217. package/dist/bscPlugin/validation/ScopeValidator.spec.js +6135 -0
  218. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -0
  219. package/dist/bscPlugin/validation/XmlFileValidator.d.ts +8 -0
  220. package/dist/bscPlugin/validation/XmlFileValidator.js +36 -0
  221. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -0
  222. package/dist/cli.js +126 -27
  223. package/dist/cli.js.map +1 -1
  224. package/dist/common/Sequencer.d.ts +53 -0
  225. package/dist/common/Sequencer.js +233 -0
  226. package/dist/common/Sequencer.js.map +1 -0
  227. package/dist/common/Sequencer.spec.d.ts +1 -0
  228. package/dist/common/Sequencer.spec.js +75 -0
  229. package/dist/common/Sequencer.spec.js.map +1 -0
  230. package/dist/deferred.d.ts +5 -3
  231. package/dist/deferred.js +10 -0
  232. package/dist/deferred.js.map +1 -1
  233. package/dist/diagnosticUtils.d.ts +10 -3
  234. package/dist/diagnosticUtils.js +64 -25
  235. package/dist/diagnosticUtils.js.map +1 -1
  236. package/dist/examples/plugins/removePrint.d.ts +2 -2
  237. package/dist/examples/plugins/removePrint.js +8 -12
  238. package/dist/examples/plugins/removePrint.js.map +1 -1
  239. package/dist/files/AssetFile.d.ts +24 -0
  240. package/dist/files/AssetFile.js +25 -0
  241. package/dist/files/AssetFile.js.map +1 -0
  242. package/dist/files/BrsFile.Class.spec.js +1213 -259
  243. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  244. package/dist/files/BrsFile.d.ts +145 -87
  245. package/dist/files/BrsFile.js +836 -934
  246. package/dist/files/BrsFile.js.map +1 -1
  247. package/dist/files/BrsFile.spec.js +4226 -902
  248. package/dist/files/BrsFile.spec.js.map +1 -1
  249. package/dist/files/BscFile.d.ts +102 -0
  250. package/dist/files/BscFile.js +15 -0
  251. package/dist/files/BscFile.js.map +1 -0
  252. package/dist/files/Factory.d.ts +25 -0
  253. package/dist/files/Factory.js +22 -0
  254. package/dist/files/Factory.js.map +1 -0
  255. package/dist/files/LazyFileData.d.ts +21 -0
  256. package/dist/files/LazyFileData.js +54 -0
  257. package/dist/files/LazyFileData.js.map +1 -0
  258. package/dist/files/LazyFileData.spec.d.ts +1 -0
  259. package/dist/files/LazyFileData.spec.js +27 -0
  260. package/dist/files/LazyFileData.spec.js.map +1 -0
  261. package/dist/files/XmlFile.d.ts +80 -41
  262. package/dist/files/XmlFile.js +161 -137
  263. package/dist/files/XmlFile.js.map +1 -1
  264. package/dist/files/XmlFile.spec.js +444 -336
  265. package/dist/files/XmlFile.spec.js.map +1 -1
  266. package/dist/files/tests/imports.spec.js +62 -52
  267. package/dist/files/tests/imports.spec.js.map +1 -1
  268. package/dist/files/tests/optionalChaning.spec.d.ts +1 -0
  269. package/dist/files/tests/optionalChaning.spec.js +152 -0
  270. package/dist/files/tests/optionalChaning.spec.js.map +1 -0
  271. package/dist/globalCallables.d.ts +3 -1
  272. package/dist/globalCallables.js +424 -184
  273. package/dist/globalCallables.js.map +1 -1
  274. package/dist/index.d.ts +32 -4
  275. package/dist/index.js +54 -7
  276. package/dist/index.js.map +1 -1
  277. package/dist/interfaces.d.ts +942 -125
  278. package/dist/interfaces.js +21 -0
  279. package/dist/interfaces.js.map +1 -1
  280. package/dist/lexer/Character.spec.js +5 -5
  281. package/dist/lexer/Character.spec.js.map +1 -1
  282. package/dist/lexer/Lexer.d.ts +51 -12
  283. package/dist/lexer/Lexer.js +215 -65
  284. package/dist/lexer/Lexer.js.map +1 -1
  285. package/dist/lexer/Lexer.spec.js +812 -568
  286. package/dist/lexer/Lexer.spec.js.map +1 -1
  287. package/dist/lexer/Token.d.ts +27 -11
  288. package/dist/lexer/Token.js +10 -2
  289. package/dist/lexer/Token.js.map +1 -1
  290. package/dist/lexer/TokenKind.d.ts +40 -2
  291. package/dist/lexer/TokenKind.js +147 -10
  292. package/dist/lexer/TokenKind.js.map +1 -1
  293. package/dist/logging.d.ts +14 -0
  294. package/dist/logging.js +29 -0
  295. package/dist/logging.js.map +1 -0
  296. package/dist/lsp/ActionQueue.d.ts +35 -0
  297. package/dist/lsp/ActionQueue.js +115 -0
  298. package/dist/lsp/ActionQueue.js.map +1 -0
  299. package/dist/lsp/ActionQueue.spec.d.ts +1 -0
  300. package/dist/lsp/ActionQueue.spec.js +80 -0
  301. package/dist/lsp/ActionQueue.spec.js.map +1 -0
  302. package/dist/lsp/DocumentManager.d.ts +63 -0
  303. package/dist/lsp/DocumentManager.js +122 -0
  304. package/dist/lsp/DocumentManager.js.map +1 -0
  305. package/dist/lsp/DocumentManager.spec.d.ts +1 -0
  306. package/dist/lsp/DocumentManager.spec.js +103 -0
  307. package/dist/lsp/DocumentManager.spec.js.map +1 -0
  308. package/dist/lsp/LspProject.d.ts +239 -0
  309. package/dist/lsp/LspProject.js +3 -0
  310. package/dist/lsp/LspProject.js.map +1 -0
  311. package/dist/lsp/PathFilterer.d.ts +75 -0
  312. package/dist/lsp/PathFilterer.js +196 -0
  313. package/dist/lsp/PathFilterer.js.map +1 -0
  314. package/dist/lsp/PathFilterer.spec.d.ts +1 -0
  315. package/dist/lsp/PathFilterer.spec.js +182 -0
  316. package/dist/lsp/PathFilterer.spec.js.map +1 -0
  317. package/dist/lsp/Project.d.ts +168 -0
  318. package/dist/lsp/Project.js +437 -0
  319. package/dist/lsp/Project.js.map +1 -0
  320. package/dist/lsp/Project.spec.d.ts +1 -0
  321. package/dist/lsp/Project.spec.js +267 -0
  322. package/dist/lsp/Project.spec.js.map +1 -0
  323. package/dist/lsp/ProjectManager.d.ts +242 -0
  324. package/dist/lsp/ProjectManager.js +824 -0
  325. package/dist/lsp/ProjectManager.js.map +1 -0
  326. package/dist/lsp/ProjectManager.spec.d.ts +1 -0
  327. package/dist/lsp/ProjectManager.spec.js +913 -0
  328. package/dist/lsp/ProjectManager.spec.js.map +1 -0
  329. package/dist/lsp/ReaderWriterManager.d.ts +21 -0
  330. package/dist/lsp/ReaderWriterManager.js +60 -0
  331. package/dist/lsp/ReaderWriterManager.js.map +1 -0
  332. package/dist/lsp/worker/MessageHandler.d.ts +99 -0
  333. package/dist/lsp/worker/MessageHandler.js +138 -0
  334. package/dist/lsp/worker/MessageHandler.js.map +1 -0
  335. package/dist/lsp/worker/MessageHandler.spec.d.ts +1 -0
  336. package/dist/lsp/worker/MessageHandler.spec.js +64 -0
  337. package/dist/lsp/worker/MessageHandler.spec.js.map +1 -0
  338. package/dist/lsp/worker/WorkerPool.d.ts +38 -0
  339. package/dist/lsp/worker/WorkerPool.js +78 -0
  340. package/dist/lsp/worker/WorkerPool.js.map +1 -0
  341. package/dist/lsp/worker/WorkerPool.spec.d.ts +1 -0
  342. package/dist/lsp/worker/WorkerPool.spec.js +59 -0
  343. package/dist/lsp/worker/WorkerPool.spec.js.map +1 -0
  344. package/dist/lsp/worker/WorkerThreadProject.d.ts +143 -0
  345. package/dist/lsp/worker/WorkerThreadProject.js +189 -0
  346. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -0
  347. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +2 -0
  348. package/dist/lsp/worker/WorkerThreadProject.spec.js +71 -0
  349. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -0
  350. package/dist/lsp/worker/WorkerThreadProjectRunner.d.ts +15 -0
  351. package/dist/lsp/worker/WorkerThreadProjectRunner.js +58 -0
  352. package/dist/lsp/worker/WorkerThreadProjectRunner.js.map +1 -0
  353. package/dist/lsp/worker/run.d.ts +1 -0
  354. package/dist/lsp/worker/run.js +14 -0
  355. package/dist/lsp/worker/run.js.map +1 -0
  356. package/dist/parser/AstNode.d.ts +203 -0
  357. package/dist/parser/AstNode.js +303 -0
  358. package/dist/parser/AstNode.js.map +1 -0
  359. package/dist/parser/AstNode.spec.d.ts +1 -0
  360. package/dist/parser/AstNode.spec.js +1455 -0
  361. package/dist/parser/AstNode.spec.js.map +1 -0
  362. package/dist/parser/BrightScriptDocParser.d.ts +56 -0
  363. package/dist/parser/BrightScriptDocParser.js +294 -0
  364. package/dist/parser/BrightScriptDocParser.js.map +1 -0
  365. package/dist/parser/BrightScriptDocParser.spec.d.ts +1 -0
  366. package/dist/parser/BrightScriptDocParser.spec.js +310 -0
  367. package/dist/parser/BrightScriptDocParser.spec.js.map +1 -0
  368. package/dist/parser/BrsTranspileState.d.ts +22 -3
  369. package/dist/parser/BrsTranspileState.js +19 -0
  370. package/dist/parser/BrsTranspileState.js.map +1 -1
  371. package/dist/parser/Expression.d.ts +553 -221
  372. package/dist/parser/Expression.js +1414 -505
  373. package/dist/parser/Expression.js.map +1 -1
  374. package/dist/parser/Expression.spec.d.ts +1 -0
  375. package/dist/parser/Expression.spec.js +40 -0
  376. package/dist/parser/Expression.spec.js.map +1 -0
  377. package/dist/parser/Parser.Class.spec.js +255 -125
  378. package/dist/parser/Parser.Class.spec.js.map +1 -1
  379. package/dist/parser/Parser.d.ts +117 -124
  380. package/dist/parser/Parser.js +1669 -982
  381. package/dist/parser/Parser.js.map +1 -1
  382. package/dist/parser/Parser.spec.d.ts +3 -1
  383. package/dist/parser/Parser.spec.js +2111 -525
  384. package/dist/parser/Parser.spec.js.map +1 -1
  385. package/dist/parser/SGParser.d.ts +29 -13
  386. package/dist/parser/SGParser.js +85 -56
  387. package/dist/parser/SGParser.js.map +1 -1
  388. package/dist/parser/SGParser.spec.js +30 -45
  389. package/dist/parser/SGParser.spec.js.map +1 -1
  390. package/dist/parser/SGTypes.d.ts +134 -46
  391. package/dist/parser/SGTypes.js +206 -115
  392. package/dist/parser/SGTypes.js.map +1 -1
  393. package/dist/parser/Statement.d.ts +849 -267
  394. package/dist/parser/Statement.js +2412 -625
  395. package/dist/parser/Statement.js.map +1 -1
  396. package/dist/parser/Statement.spec.js +133 -36
  397. package/dist/parser/Statement.spec.js.map +1 -1
  398. package/dist/parser/TranspileState.d.ts +26 -12
  399. package/dist/parser/TranspileState.js +115 -24
  400. package/dist/parser/TranspileState.js.map +1 -1
  401. package/dist/parser/tests/Parser.spec.d.ts +3 -9
  402. package/dist/parser/tests/Parser.spec.js +7 -13
  403. package/dist/parser/tests/Parser.spec.js.map +1 -1
  404. package/dist/parser/tests/controlFlow/For.spec.js +83 -75
  405. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  406. package/dist/parser/tests/controlFlow/ForEach.spec.js +85 -51
  407. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  408. package/dist/parser/tests/controlFlow/If.spec.js +382 -239
  409. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  410. package/dist/parser/tests/controlFlow/While.spec.js +52 -45
  411. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  412. package/dist/parser/tests/expression/Additive.spec.js +51 -43
  413. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  414. package/dist/parser/tests/expression/ArrayLiterals.spec.js +192 -142
  415. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  416. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +236 -160
  417. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  418. package/dist/parser/tests/expression/Boolean.spec.js +41 -34
  419. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  420. package/dist/parser/tests/expression/Call.spec.js +173 -55
  421. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  422. package/dist/parser/tests/expression/Exponential.spec.js +20 -20
  423. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  424. package/dist/parser/tests/expression/Function.spec.js +291 -282
  425. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  426. package/dist/parser/tests/expression/Indexing.spec.js +193 -110
  427. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  428. package/dist/parser/tests/expression/Multiplicative.spec.js +42 -42
  429. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  430. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +260 -115
  431. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  432. package/dist/parser/tests/expression/PrefixUnary.spec.js +58 -52
  433. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  434. package/dist/parser/tests/expression/Primary.spec.js +76 -60
  435. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  436. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +1 -0
  437. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +171 -0
  438. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -0
  439. package/dist/parser/tests/expression/Relational.spec.js +50 -50
  440. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  441. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +31 -31
  442. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  443. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +281 -94
  444. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  445. package/dist/parser/tests/expression/TernaryExpression.spec.js +747 -192
  446. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  447. package/dist/parser/tests/expression/TypeExpression.spec.d.ts +1 -0
  448. package/dist/parser/tests/expression/TypeExpression.spec.js +126 -0
  449. package/dist/parser/tests/expression/TypeExpression.spec.js.map +1 -0
  450. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +1 -0
  451. package/dist/parser/tests/expression/UnaryExpression.spec.js +52 -0
  452. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +1 -0
  453. package/dist/parser/tests/statement/AssignmentOperators.spec.js +44 -44
  454. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  455. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +1 -0
  456. package/dist/parser/tests/statement/ConstStatement.spec.js +500 -0
  457. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -0
  458. package/dist/parser/tests/statement/Continue.spec.d.ts +1 -0
  459. package/dist/parser/tests/statement/Continue.spec.js +119 -0
  460. package/dist/parser/tests/statement/Continue.spec.js.map +1 -0
  461. package/dist/parser/tests/statement/Declaration.spec.js +61 -55
  462. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  463. package/dist/parser/tests/statement/Dim.spec.js +29 -22
  464. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  465. package/dist/parser/tests/statement/Enum.spec.d.ts +1 -0
  466. package/dist/parser/tests/statement/Enum.spec.js +744 -0
  467. package/dist/parser/tests/statement/Enum.spec.js.map +1 -0
  468. package/dist/parser/tests/statement/For.spec.d.ts +1 -0
  469. package/dist/parser/tests/statement/For.spec.js +45 -0
  470. package/dist/parser/tests/statement/For.spec.js.map +1 -0
  471. package/dist/parser/tests/statement/ForEach.spec.d.ts +1 -0
  472. package/dist/parser/tests/statement/ForEach.spec.js +36 -0
  473. package/dist/parser/tests/statement/ForEach.spec.js.map +1 -0
  474. package/dist/parser/tests/statement/Function.spec.js +226 -215
  475. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  476. package/dist/parser/tests/statement/Goto.spec.js +16 -15
  477. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  478. package/dist/parser/tests/statement/Increment.spec.js +64 -61
  479. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  480. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
  481. package/dist/parser/tests/statement/InterfaceStatement.spec.js +110 -0
  482. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
  483. package/dist/parser/tests/statement/LibraryStatement.spec.js +22 -22
  484. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  485. package/dist/parser/tests/statement/Misc.spec.js +127 -168
  486. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  487. package/dist/parser/tests/statement/PrintStatement.spec.js +133 -114
  488. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  489. package/dist/parser/tests/statement/ReturnStatement.spec.js +57 -54
  490. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  491. package/dist/parser/tests/statement/Set.spec.js +131 -117
  492. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  493. package/dist/parser/tests/statement/Stop.spec.js +14 -13
  494. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  495. package/dist/parser/tests/statement/Throw.spec.js +11 -8
  496. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  497. package/dist/parser/tests/statement/TryCatch.spec.js +26 -15
  498. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  499. package/dist/preprocessor/Manifest.d.ts +6 -6
  500. package/dist/preprocessor/Manifest.js +17 -38
  501. package/dist/preprocessor/Manifest.js.map +1 -1
  502. package/dist/preprocessor/Manifest.spec.d.ts +1 -0
  503. package/dist/preprocessor/Manifest.spec.js +78 -103
  504. package/dist/preprocessor/Manifest.spec.js.map +1 -1
  505. package/dist/roku-types/data.json +20347 -0
  506. package/dist/roku-types/index.d.ts +5726 -0
  507. package/dist/roku-types/index.js +11 -0
  508. package/dist/roku-types/index.js.map +1 -0
  509. package/dist/types/ArrayType.d.ts +12 -5
  510. package/dist/types/ArrayType.js +89 -24
  511. package/dist/types/ArrayType.js.map +1 -1
  512. package/dist/types/ArrayType.spec.js +39 -11
  513. package/dist/types/ArrayType.spec.js.map +1 -1
  514. package/dist/types/AssociativeArrayType.d.ts +15 -0
  515. package/dist/types/AssociativeArrayType.js +64 -0
  516. package/dist/types/AssociativeArrayType.js.map +1 -0
  517. package/dist/types/BaseFunctionType.d.ts +10 -0
  518. package/dist/types/BaseFunctionType.js +26 -0
  519. package/dist/types/BaseFunctionType.js.map +1 -0
  520. package/dist/types/BooleanType.d.ts +9 -5
  521. package/dist/types/BooleanType.js +19 -8
  522. package/dist/types/BooleanType.js.map +1 -1
  523. package/dist/types/BooleanType.spec.js +10 -4
  524. package/dist/types/BooleanType.spec.js.map +1 -1
  525. package/dist/types/BscType.d.ts +41 -3
  526. package/dist/types/BscType.js +152 -0
  527. package/dist/types/BscType.js.map +1 -1
  528. package/dist/types/BscTypeKind.d.ts +28 -0
  529. package/dist/types/BscTypeKind.js +33 -0
  530. package/dist/types/BscTypeKind.js.map +1 -0
  531. package/dist/types/BuiltInInterfaceAdder.d.ts +28 -0
  532. package/dist/types/BuiltInInterfaceAdder.js +212 -0
  533. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  534. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  535. package/dist/types/BuiltInInterfaceAdder.spec.js +115 -0
  536. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  537. package/dist/types/CallFuncableType.d.ts +24 -0
  538. package/dist/types/CallFuncableType.js +91 -0
  539. package/dist/types/CallFuncableType.js.map +1 -0
  540. package/dist/types/ClassType.d.ts +17 -0
  541. package/dist/types/ClassType.js +60 -0
  542. package/dist/types/ClassType.js.map +1 -0
  543. package/dist/types/ClassType.spec.d.ts +1 -0
  544. package/dist/types/ClassType.spec.js +76 -0
  545. package/dist/types/ClassType.spec.js.map +1 -0
  546. package/dist/types/ComponentType.d.ts +22 -0
  547. package/dist/types/ComponentType.js +107 -0
  548. package/dist/types/ComponentType.js.map +1 -0
  549. package/dist/types/DoubleType.d.ts +10 -5
  550. package/dist/types/DoubleType.js +21 -17
  551. package/dist/types/DoubleType.js.map +1 -1
  552. package/dist/types/DoubleType.spec.js +12 -4
  553. package/dist/types/DoubleType.spec.js.map +1 -1
  554. package/dist/types/DynamicType.d.ts +13 -5
  555. package/dist/types/DynamicType.js +26 -5
  556. package/dist/types/DynamicType.js.map +1 -1
  557. package/dist/types/DynamicType.spec.js +16 -5
  558. package/dist/types/DynamicType.spec.js.map +1 -1
  559. package/dist/types/EnumType.d.ts +42 -0
  560. package/dist/types/EnumType.js +98 -0
  561. package/dist/types/EnumType.js.map +1 -0
  562. package/dist/types/EnumType.spec.d.ts +1 -0
  563. package/dist/types/EnumType.spec.js +33 -0
  564. package/dist/types/EnumType.spec.js.map +1 -0
  565. package/dist/types/FloatType.d.ts +10 -5
  566. package/dist/types/FloatType.js +21 -17
  567. package/dist/types/FloatType.js.map +1 -1
  568. package/dist/types/FloatType.spec.js +4 -4
  569. package/dist/types/FloatType.spec.js.map +1 -1
  570. package/dist/types/FunctionType.d.ts +8 -22
  571. package/dist/types/FunctionType.js +25 -63
  572. package/dist/types/FunctionType.js.map +1 -1
  573. package/dist/types/InheritableType.d.ts +29 -0
  574. package/dist/types/InheritableType.js +173 -0
  575. package/dist/types/InheritableType.js.map +1 -0
  576. package/dist/types/InlineInterfaceType.d.ts +5 -0
  577. package/dist/types/InlineInterfaceType.js +17 -0
  578. package/dist/types/InlineInterfaceType.js.map +1 -0
  579. package/dist/types/IntegerType.d.ts +10 -5
  580. package/dist/types/IntegerType.js +21 -17
  581. package/dist/types/IntegerType.js.map +1 -1
  582. package/dist/types/IntegerType.spec.js +8 -4
  583. package/dist/types/IntegerType.spec.js.map +1 -1
  584. package/dist/types/InterfaceType.d.ts +14 -6
  585. package/dist/types/InterfaceType.js +30 -15
  586. package/dist/types/InterfaceType.js.map +1 -1
  587. package/dist/types/InterfaceType.spec.d.ts +1 -0
  588. package/dist/types/InterfaceType.spec.js +227 -0
  589. package/dist/types/InterfaceType.spec.js.map +1 -0
  590. package/dist/types/IntersectionType.d.ts +29 -0
  591. package/dist/types/IntersectionType.js +253 -0
  592. package/dist/types/IntersectionType.js.map +1 -0
  593. package/dist/types/IntersectionType.spec.d.ts +1 -0
  594. package/dist/types/IntersectionType.spec.js +150 -0
  595. package/dist/types/IntersectionType.spec.js.map +1 -0
  596. package/dist/types/InvalidType.d.ts +10 -5
  597. package/dist/types/InvalidType.js +21 -9
  598. package/dist/types/InvalidType.js.map +1 -1
  599. package/dist/types/InvalidType.spec.js +8 -4
  600. package/dist/types/InvalidType.spec.js.map +1 -1
  601. package/dist/types/LongIntegerType.d.ts +10 -5
  602. package/dist/types/LongIntegerType.js +21 -17
  603. package/dist/types/LongIntegerType.js.map +1 -1
  604. package/dist/types/LongIntegerType.spec.js +10 -4
  605. package/dist/types/LongIntegerType.spec.js.map +1 -1
  606. package/dist/types/NamespaceType.d.ts +12 -0
  607. package/dist/types/NamespaceType.js +28 -0
  608. package/dist/types/NamespaceType.js.map +1 -0
  609. package/dist/types/ObjectType.d.ts +12 -5
  610. package/dist/types/ObjectType.js +25 -8
  611. package/dist/types/ObjectType.js.map +1 -1
  612. package/dist/types/ObjectType.spec.js +3 -3
  613. package/dist/types/ObjectType.spec.js.map +1 -1
  614. package/dist/types/ReferenceType.d.ts +123 -0
  615. package/dist/types/ReferenceType.js +720 -0
  616. package/dist/types/ReferenceType.js.map +1 -0
  617. package/dist/types/ReferenceType.spec.d.ts +1 -0
  618. package/dist/types/ReferenceType.spec.js +151 -0
  619. package/dist/types/ReferenceType.spec.js.map +1 -0
  620. package/dist/types/StringType.d.ts +12 -5
  621. package/dist/types/StringType.js +23 -8
  622. package/dist/types/StringType.js.map +1 -1
  623. package/dist/types/StringType.spec.js +3 -3
  624. package/dist/types/StringType.spec.js.map +1 -1
  625. package/dist/types/TypeStatementType.d.ts +18 -0
  626. package/dist/types/TypeStatementType.js +45 -0
  627. package/dist/types/TypeStatementType.js.map +1 -0
  628. package/dist/types/TypedFunctionType.d.ts +34 -0
  629. package/dist/types/TypedFunctionType.js +147 -0
  630. package/dist/types/TypedFunctionType.js.map +1 -0
  631. package/dist/types/TypedFunctionType.spec.d.ts +1 -0
  632. package/dist/types/TypedFunctionType.spec.js +122 -0
  633. package/dist/types/TypedFunctionType.spec.js.map +1 -0
  634. package/dist/types/UninitializedType.d.ts +11 -6
  635. package/dist/types/UninitializedType.js +20 -11
  636. package/dist/types/UninitializedType.js.map +1 -1
  637. package/dist/types/UnionType.d.ts +27 -0
  638. package/dist/types/UnionType.js +193 -0
  639. package/dist/types/UnionType.js.map +1 -0
  640. package/dist/types/UnionType.spec.d.ts +1 -0
  641. package/dist/types/UnionType.spec.js +205 -0
  642. package/dist/types/UnionType.spec.js.map +1 -0
  643. package/dist/types/VoidType.d.ts +11 -5
  644. package/dist/types/VoidType.js +22 -8
  645. package/dist/types/VoidType.js.map +1 -1
  646. package/dist/types/VoidType.spec.js +3 -3
  647. package/dist/types/VoidType.spec.js.map +1 -1
  648. package/dist/types/helper.spec.d.ts +1 -0
  649. package/dist/types/helper.spec.js +174 -0
  650. package/dist/types/helper.spec.js.map +1 -0
  651. package/dist/types/helpers.d.ts +51 -0
  652. package/dist/types/helpers.js +323 -0
  653. package/dist/types/helpers.js.map +1 -0
  654. package/dist/types/index.d.ts +22 -0
  655. package/dist/types/index.js +39 -0
  656. package/dist/types/index.js.map +1 -0
  657. package/dist/types/roFunctionType.d.ts +11 -0
  658. package/dist/types/roFunctionType.js +37 -0
  659. package/dist/types/roFunctionType.js.map +1 -0
  660. package/dist/types/roFunctionType.spec.d.ts +1 -0
  661. package/dist/types/roFunctionType.spec.js +20 -0
  662. package/dist/types/roFunctionType.spec.js.map +1 -0
  663. package/dist/util.d.ts +288 -187
  664. package/dist/util.js +2018 -575
  665. package/dist/util.js.map +1 -1
  666. package/dist/validators/ClassValidator.d.ts +9 -15
  667. package/dist/validators/ClassValidator.js +93 -138
  668. package/dist/validators/ClassValidator.js.map +1 -1
  669. package/package.json +185 -138
  670. package/CHANGELOG.md +0 -1188
  671. package/dist/astUtils/index.d.ts +0 -7
  672. package/dist/astUtils/index.js +0 -26
  673. package/dist/astUtils/index.js.map +0 -1
  674. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +0 -7
  675. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +0 -63
  676. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +0 -1
  677. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +0 -45
  678. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +0 -1
  679. package/dist/lexer/index.d.ts +0 -3
  680. package/dist/lexer/index.js +0 -17
  681. package/dist/lexer/index.js.map +0 -1
  682. package/dist/parser/SGTypes.spec.js +0 -351
  683. package/dist/parser/SGTypes.spec.js.map +0 -1
  684. package/dist/parser/index.d.ts +0 -3
  685. package/dist/parser/index.js +0 -16
  686. package/dist/parser/index.js.map +0 -1
  687. package/dist/preprocessor/Chunk.d.ts +0 -82
  688. package/dist/preprocessor/Chunk.js +0 -77
  689. package/dist/preprocessor/Chunk.js.map +0 -1
  690. package/dist/preprocessor/Preprocessor.d.ts +0 -60
  691. package/dist/preprocessor/Preprocessor.js +0 -156
  692. package/dist/preprocessor/Preprocessor.js.map +0 -1
  693. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  694. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  695. package/dist/preprocessor/PreprocessorParser.d.ts +0 -61
  696. package/dist/preprocessor/PreprocessorParser.js +0 -194
  697. package/dist/preprocessor/PreprocessorParser.js.map +0 -1
  698. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  699. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  700. package/dist/preprocessor/index.d.ts +0 -3
  701. package/dist/preprocessor/index.js +0 -16
  702. package/dist/preprocessor/index.js.map +0 -1
  703. package/dist/types/CustomType.d.ts +0 -10
  704. package/dist/types/CustomType.js +0 -35
  705. package/dist/types/CustomType.js.map +0 -1
  706. package/dist/types/FunctionType.spec.js +0 -29
  707. package/dist/types/FunctionType.spec.js.map +0 -1
  708. package/dist/types/LazyType.d.ts +0 -15
  709. package/dist/types/LazyType.js +0 -32
  710. package/dist/types/LazyType.js.map +0 -1
  711. /package/dist/{bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts → astUtils/CachedLookups.spec.d.ts} +0 -0
  712. /package/dist/{parser/SGTypes.spec.d.ts → astUtils/Editor.spec.d.ts} +0 -0
  713. /package/dist/{preprocessor/Preprocessor.spec.d.ts → bscPlugin/completions/CompletionsProcessor.spec.d.ts} +0 -0
  714. /package/dist/{preprocessor/PreprocessorParser.spec.d.ts → bscPlugin/definition/DefinitionProvider.spec.d.ts} +0 -0
  715. /package/dist/{types/FunctionType.spec.d.ts → bscPlugin/hover/HoverProcessor.spec.d.ts} +0 -0
@@ -1,7 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSGInterfaceFunction = exports.isSGInterfaceField = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = exports.isNumberType = exports.isDynamicType = exports.isObjectType = exports.isArrayType = exports.isInterfaceType = exports.isUninitializedType = exports.isCustomType = exports.isVoidType = exports.isInvalidType = exports.isDoubleType = exports.isFloatType = exports.isLongIntegerType = exports.isIntegerType = exports.isBooleanType = exports.isFunctionType = exports.isStringType = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isNamespacedVariableNameExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isClassFieldStatement = exports.isClassMethodStatement = exports.isImportStatement = exports.isClassStatement = exports.isNamespaceStatement = exports.isLibraryStatement = exports.isIndexedSetStatement = exports.isDottedSetStatement = exports.isWhileStatement = exports.isForEachStatement = exports.isForStatement = exports.isStopStatement = exports.isEndStatement = exports.isReturnStatement = exports.isLabelStatement = exports.isGotoStatement = exports.isPrintStatement = exports.isIncrementStatement = exports.isIfStatement = exports.isFunctionStatement = exports.isExitWhileStatement = exports.isExitForStatement = exports.isCommentStatement = exports.isExpressionStatement = exports.isBlock = exports.isAssignmentStatement = exports.isBody = exports.isStatement = exports.isXmlScope = exports.isXmlFile = exports.isBrsFile = void 0;
3
+ exports.isConditionalCompileConstStatement = exports.isConditionalCompileStatement = exports.isThrowStatement = exports.isCatchStatement = exports.isTryCatchStatement = exports.isContinueStatement = exports.isConstStatement = exports.isEnumMemberStatement = exports.isEnumStatement = exports.isMemberMethod = exports.isMemberField = exports.isInterfaceFieldStatement = exports.isInterfaceMethodStatement = exports.isInterfaceStatement = exports.isFieldStatement = exports.isMethodStatement = exports.isImportStatement = exports.isClassStatement = exports.isNamespaceStatement = exports.isLibraryStatement = exports.isIndexedSetStatement = exports.isDottedSetStatement = exports.isDimStatement = exports.isWhileStatement = exports.isForEachStatement = exports.isForStatement = exports.isStopStatement = exports.isEndStatement = exports.isNullCoalescingExpression = exports.isTernaryExpression = exports.isReturnStatement = exports.isLabelStatement = exports.isGotoStatement = exports.isPrintStatement = exports.isIncrementStatement = exports.isIfStatement = exports.isFunctionStatement = exports.isExitStatement = exports.isExpressionStatement = exports.isBlock = exports.isAssignmentStatement = exports.isBody = exports.isStatement = exports.isProject = exports.isProgram = exports.isXmlScope = exports.isBscFile = exports.isAssetFile = exports.isXmlFile = exports.isBrsFile = void 0;
4
+ exports.isRoLongIntegerType = exports.isLongIntegerType = exports.isIntegerTypeLike = exports.isRoIntType = exports.isIntegerType = exports.isBooleanTypeLike = exports.isRoBooleanType = exports.isBooleanType = exports.isFunctionTypeLike = exports.isRoFunctionType = exports.isFunctionType = exports.isTypedFunctionType = exports.isStringTypeLike = exports.isRoStringType = exports.isStringType = exports.isInlineInterfaceMemberExpression = exports.isInlineInterfaceExpression = exports.isPrintSeparatorExpression = exports.isTypedArrayExpression = exports.isTypecastExpression = exports.isTypeExpression = exports.isTypedefProvider = exports.isAnnotationExpression = exports.isFunctionParameterExpression = exports.isTaggedTemplateStringExpression = exports.isTemplateStringExpression = exports.isTemplateStringQuasiExpression = exports.isCallfuncExpression = exports.isNewExpression = exports.isSourceLiteralExpression = exports.isVariableExpression = exports.isUnaryExpression = exports.isAAMemberExpression = exports.isAALiteralExpression = exports.isArrayLiteralExpression = exports.isEscapedCharCodeLiteralExpression = exports.isLiteralExpression = exports.isGroupingExpression = exports.isIndexedGetExpression = exports.isXmlAttributeGetExpression = exports.isDottedGetExpression = exports.isFunctionExpression = exports.isCallExpression = exports.isBinaryExpression = exports.isExpression = exports.isTypeStatement = exports.isAliasStatement = exports.isTypecastStatement = exports.isAugmentedAssignmentStatement = exports.isConditionalCompileErrorStatement = void 0;
5
+ exports.isIterableType = exports.isCompoundType = exports.isCompoundTypeOf = exports.isIntersectionTypeOf = exports.isUnionTypeOf = exports.isTypeStatementTypeOf = exports.isNativeType = exports.isBuiltInType = exports.isCallFuncableTypeLike = exports.isArrayTypeLike = exports.isAssociativeArrayTypeLike = exports.isPrimitiveTypeLike = exports.isPrimitiveType = exports.isNumberTypeLike = exports.isNumberType = exports.isAnyReferenceType = exports.isCallableType = exports.isCallFuncableType = exports.isInheritableType = exports.isTypeStatementType = exports.isAssociativeArrayType = exports.isArrayType = exports.isUninitializedType = exports.isIntersectionType = exports.isUnionType = exports.isNamespaceType = exports.isReferenceTypeWithDefault = exports.isParamTypeFromValueReferenceType = exports.isArrayDefaultTypeReferenceType = exports.isBinaryOperatorReferenceType = exports.isTypePropertyReferenceType = exports.isEnumMemberType = exports.isEnumType = exports.isReferenceType = exports.isObjectType = exports.isInterfaceType = exports.isDynamicType = exports.isComponentType = exports.isClassType = exports.isVoidType = exports.isInvalidTypeLike = exports.isRoInvalidType = exports.isInvalidType = exports.isDoubleTypeLike = exports.isRoDoubleType = exports.isDoubleType = exports.isFloatTypeLike = exports.isRoFloatType = exports.isFloatType = exports.isLongIntegerTypeLike = void 0;
6
+ exports.isBsDiagnostic = exports.isLiteralDouble = exports.isLiteralFloat = exports.isLiteralLongInteger = exports.isLiteralInteger = exports.isLiteralNumber = exports.isLiteralString = exports.isLiteralBoolean = exports.isLiteralInvalid = void 0;
4
7
  const visitors_1 = require("./visitors");
8
+ const AstNode_1 = require("../parser/AstNode");
9
+ const BscTypeKind_1 = require("../types/BscTypeKind");
10
+ const TokenKind_1 = require("../lexer/TokenKind");
5
11
  // File reflection
6
12
  function isBrsFile(file) {
7
13
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'BrsFile';
@@ -11,13 +17,29 @@ function isXmlFile(file) {
11
17
  return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'XmlFile';
12
18
  }
13
19
  exports.isXmlFile = isXmlFile;
20
+ function isAssetFile(file) {
21
+ return (file === null || file === void 0 ? void 0 : file.constructor.name) === 'AssetFile';
22
+ }
23
+ exports.isAssetFile = isAssetFile;
24
+ function isBscFile(file) {
25
+ return isBrsFile(file) || isXmlFile(file) || isAssetFile(file);
26
+ }
27
+ exports.isBscFile = isBscFile;
14
28
  function isXmlScope(scope) {
15
29
  return (scope === null || scope === void 0 ? void 0 : scope.constructor.name) === 'XmlScope';
16
30
  }
17
31
  exports.isXmlScope = isXmlScope;
32
+ function isProgram(arg) {
33
+ return (arg === null || arg === void 0 ? void 0 : arg.constructor.name) === 'Program';
34
+ }
35
+ exports.isProgram = isProgram;
36
+ function isProject(arg) {
37
+ return (arg === null || arg === void 0 ? void 0 : arg.constructor.name) === 'Project';
38
+ }
39
+ exports.isProject = isProject;
18
40
  // Statements reflection
19
41
  /**
20
- * Determine if the variable is a descendent of the Statement base class.
42
+ * Determine if the variablvalue is a descendent of the Statement base class.
21
43
  * Due to performance restrictions, this expects all statements to
22
44
  * directly extend Statement or FunctionStatement,
23
45
  * so it only checks the immediate parent's class name.
@@ -33,8 +55,7 @@ function isBody(element) {
33
55
  }
34
56
  exports.isBody = isBody;
35
57
  function isAssignmentStatement(element) {
36
- var _a;
37
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'AssignmentStatement';
58
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AssignmentStatement;
38
59
  }
39
60
  exports.isAssignmentStatement = isAssignmentStatement;
40
61
  function isBlock(element) {
@@ -43,126 +64,190 @@ function isBlock(element) {
43
64
  }
44
65
  exports.isBlock = isBlock;
45
66
  function isExpressionStatement(element) {
46
- var _a;
47
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExpressionStatement';
67
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExpressionStatement;
48
68
  }
49
69
  exports.isExpressionStatement = isExpressionStatement;
50
- function isCommentStatement(element) {
51
- var _a;
52
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'CommentStatement';
70
+ function isExitStatement(element) {
71
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ExitStatement;
53
72
  }
54
- exports.isCommentStatement = isCommentStatement;
55
- function isExitForStatement(element) {
56
- var _a;
57
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExitForStatement';
58
- }
59
- exports.isExitForStatement = isExitForStatement;
60
- function isExitWhileStatement(element) {
61
- var _a;
62
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ExitWhileStatement';
63
- }
64
- exports.isExitWhileStatement = isExitWhileStatement;
73
+ exports.isExitStatement = isExitStatement;
65
74
  function isFunctionStatement(element) {
66
- var _a;
67
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'FunctionStatement';
75
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionStatement;
68
76
  }
69
77
  exports.isFunctionStatement = isFunctionStatement;
70
78
  function isIfStatement(element) {
71
- var _a;
72
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IfStatement';
79
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IfStatement;
73
80
  }
74
81
  exports.isIfStatement = isIfStatement;
75
82
  function isIncrementStatement(element) {
76
- var _a;
77
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IncrementStatement';
83
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IncrementStatement;
78
84
  }
79
85
  exports.isIncrementStatement = isIncrementStatement;
80
86
  function isPrintStatement(element) {
81
- var _a;
82
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'PrintStatement';
87
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintStatement;
83
88
  }
84
89
  exports.isPrintStatement = isPrintStatement;
85
90
  function isGotoStatement(element) {
86
- var _a;
87
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'GotoStatement';
91
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GotoStatement;
88
92
  }
89
93
  exports.isGotoStatement = isGotoStatement;
90
94
  function isLabelStatement(element) {
91
- var _a;
92
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'LabelStatement';
95
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LabelStatement;
93
96
  }
94
97
  exports.isLabelStatement = isLabelStatement;
95
98
  function isReturnStatement(element) {
96
- var _a;
97
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ReturnStatement';
99
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ReturnStatement;
98
100
  }
99
101
  exports.isReturnStatement = isReturnStatement;
100
- function isEndStatement(element) {
102
+ function isTernaryExpression(element) {
101
103
  var _a;
102
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'EndStatement';
104
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'TernaryExpression';
105
+ }
106
+ exports.isTernaryExpression = isTernaryExpression;
107
+ function isNullCoalescingExpression(element) {
108
+ var _a;
109
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'NullCoalescingExpression';
110
+ }
111
+ exports.isNullCoalescingExpression = isNullCoalescingExpression;
112
+ function isEndStatement(element) {
113
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EndStatement;
103
114
  }
104
115
  exports.isEndStatement = isEndStatement;
105
116
  function isStopStatement(element) {
106
- var _a;
107
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'StopStatement';
117
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.StopStatement;
108
118
  }
109
119
  exports.isStopStatement = isStopStatement;
110
120
  function isForStatement(element) {
111
- var _a;
112
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ForStatement';
121
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForStatement;
113
122
  }
114
123
  exports.isForStatement = isForStatement;
115
124
  function isForEachStatement(element) {
116
- var _a;
117
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ForEachStatement';
125
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ForEachStatement;
118
126
  }
119
127
  exports.isForEachStatement = isForEachStatement;
120
128
  function isWhileStatement(element) {
121
- var _a;
122
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'WhileStatement';
129
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.WhileStatement;
123
130
  }
124
131
  exports.isWhileStatement = isWhileStatement;
125
- function isDottedSetStatement(element) {
132
+ function isDimStatement(element) {
126
133
  var _a;
127
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'DottedSetStatement';
134
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'DimStatement';
135
+ }
136
+ exports.isDimStatement = isDimStatement;
137
+ function isDottedSetStatement(element) {
138
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedSetStatement;
128
139
  }
129
140
  exports.isDottedSetStatement = isDottedSetStatement;
130
141
  function isIndexedSetStatement(element) {
131
- var _a;
132
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'IndexedSetStatement';
142
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedSetStatement;
133
143
  }
134
144
  exports.isIndexedSetStatement = isIndexedSetStatement;
135
145
  function isLibraryStatement(element) {
136
- var _a;
137
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'LibraryStatement';
146
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LibraryStatement;
138
147
  }
139
148
  exports.isLibraryStatement = isLibraryStatement;
140
149
  function isNamespaceStatement(element) {
141
- var _a;
142
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'NamespaceStatement';
150
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NamespaceStatement;
143
151
  }
144
152
  exports.isNamespaceStatement = isNamespaceStatement;
145
153
  function isClassStatement(element) {
146
- var _a;
147
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ClassStatement';
154
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ClassStatement;
148
155
  }
149
156
  exports.isClassStatement = isClassStatement;
150
157
  function isImportStatement(element) {
151
- var _a;
152
- return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'ImportStatement';
158
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ImportStatement;
153
159
  }
154
160
  exports.isImportStatement = isImportStatement;
155
- function isClassMethodStatement(element) {
156
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ClassMethodStatement';
161
+ function isMethodStatement(element) {
162
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.MethodStatement;
163
+ }
164
+ exports.isMethodStatement = isMethodStatement;
165
+ function isFieldStatement(element) {
166
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FieldStatement;
167
+ }
168
+ exports.isFieldStatement = isFieldStatement;
169
+ function isInterfaceStatement(element) {
170
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceStatement;
171
+ }
172
+ exports.isInterfaceStatement = isInterfaceStatement;
173
+ function isInterfaceMethodStatement(element) {
174
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceMethodStatement;
175
+ }
176
+ exports.isInterfaceMethodStatement = isInterfaceMethodStatement;
177
+ function isInterfaceFieldStatement(element) {
178
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InterfaceFieldStatement;
179
+ }
180
+ exports.isInterfaceFieldStatement = isInterfaceFieldStatement;
181
+ function isMemberField(element) {
182
+ return isFieldStatement(element) || isInterfaceFieldStatement(element);
183
+ }
184
+ exports.isMemberField = isMemberField;
185
+ function isMemberMethod(element) {
186
+ return isMethodStatement(element) || isInterfaceMethodStatement(element);
187
+ }
188
+ exports.isMemberMethod = isMemberMethod;
189
+ function isEnumStatement(element) {
190
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumStatement;
191
+ }
192
+ exports.isEnumStatement = isEnumStatement;
193
+ function isEnumMemberStatement(element) {
194
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EnumMemberStatement;
195
+ }
196
+ exports.isEnumMemberStatement = isEnumMemberStatement;
197
+ function isConstStatement(element) {
198
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConstStatement;
199
+ }
200
+ exports.isConstStatement = isConstStatement;
201
+ function isContinueStatement(element) {
202
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ContinueStatement;
157
203
  }
158
- exports.isClassMethodStatement = isClassMethodStatement;
159
- function isClassFieldStatement(element) {
160
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ClassFieldStatement';
204
+ exports.isContinueStatement = isContinueStatement;
205
+ function isTryCatchStatement(element) {
206
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TryCatchStatement;
161
207
  }
162
- exports.isClassFieldStatement = isClassFieldStatement;
208
+ exports.isTryCatchStatement = isTryCatchStatement;
209
+ function isCatchStatement(element) {
210
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CatchStatement;
211
+ }
212
+ exports.isCatchStatement = isCatchStatement;
213
+ function isThrowStatement(element) {
214
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ThrowStatement;
215
+ }
216
+ exports.isThrowStatement = isThrowStatement;
217
+ function isConditionalCompileStatement(element) {
218
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileStatement;
219
+ }
220
+ exports.isConditionalCompileStatement = isConditionalCompileStatement;
221
+ function isConditionalCompileConstStatement(element) {
222
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileConstStatement;
223
+ }
224
+ exports.isConditionalCompileConstStatement = isConditionalCompileConstStatement;
225
+ function isConditionalCompileErrorStatement(element) {
226
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ConditionalCompileErrorStatement;
227
+ }
228
+ exports.isConditionalCompileErrorStatement = isConditionalCompileErrorStatement;
229
+ function isAugmentedAssignmentStatement(element) {
230
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AugmentedAssignmentStatement;
231
+ }
232
+ exports.isAugmentedAssignmentStatement = isAugmentedAssignmentStatement;
233
+ function isTypecastStatement(element) {
234
+ var _a;
235
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'TypecastStatement';
236
+ }
237
+ exports.isTypecastStatement = isTypecastStatement;
238
+ function isAliasStatement(element) {
239
+ var _a;
240
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'AliasStatement';
241
+ }
242
+ exports.isAliasStatement = isAliasStatement;
243
+ function isTypeStatement(element) {
244
+ var _a;
245
+ return ((_a = element === null || element === void 0 ? void 0 : element.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'TypeStatement';
246
+ }
247
+ exports.isTypeStatement = isTypeStatement;
163
248
  // Expressions reflection
164
249
  /**
165
- * Determine if the variable is a descendent of the Expression base class.
250
+ * Determine if the variablvalue is a descendent of the Expression base class.
166
251
  * Due to performance restrictions, this expects all statements to directly extend Expression,
167
252
  * so it only checks the immediate parent's class name. For example:
168
253
  * this will work for StringLiteralExpression -> Expression,
@@ -174,188 +259,456 @@ function isExpression(element) {
174
259
  }
175
260
  exports.isExpression = isExpression;
176
261
  function isBinaryExpression(element) {
177
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'BinaryExpression';
262
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.BinaryExpression;
178
263
  }
179
264
  exports.isBinaryExpression = isBinaryExpression;
180
265
  function isCallExpression(element) {
181
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallExpression';
266
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallExpression;
182
267
  }
183
268
  exports.isCallExpression = isCallExpression;
184
269
  function isFunctionExpression(element) {
185
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionExpression';
270
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionExpression;
186
271
  }
187
272
  exports.isFunctionExpression = isFunctionExpression;
188
- function isNamespacedVariableNameExpression(element) {
189
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'NamespacedVariableNameExpression';
190
- }
191
- exports.isNamespacedVariableNameExpression = isNamespacedVariableNameExpression;
192
273
  function isDottedGetExpression(element) {
193
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'DottedGetExpression';
274
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.DottedGetExpression;
194
275
  }
195
276
  exports.isDottedGetExpression = isDottedGetExpression;
196
277
  function isXmlAttributeGetExpression(element) {
197
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'XmlAttributeGetExpression';
278
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.XmlAttributeGetExpression;
198
279
  }
199
280
  exports.isXmlAttributeGetExpression = isXmlAttributeGetExpression;
200
281
  function isIndexedGetExpression(element) {
201
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'IndexedGetExpression';
282
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.IndexedGetExpression;
202
283
  }
203
284
  exports.isIndexedGetExpression = isIndexedGetExpression;
204
285
  function isGroupingExpression(element) {
205
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'GroupingExpression';
286
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.GroupingExpression;
206
287
  }
207
288
  exports.isGroupingExpression = isGroupingExpression;
208
289
  function isLiteralExpression(element) {
209
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'LiteralExpression';
290
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.LiteralExpression;
210
291
  }
211
292
  exports.isLiteralExpression = isLiteralExpression;
212
293
  function isEscapedCharCodeLiteralExpression(element) {
213
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'EscapedCharCodeLiteralExpression';
294
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.EscapedCharCodeLiteralExpression;
214
295
  }
215
296
  exports.isEscapedCharCodeLiteralExpression = isEscapedCharCodeLiteralExpression;
216
297
  function isArrayLiteralExpression(element) {
217
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'ArrayLiteralExpression';
298
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.ArrayLiteralExpression;
218
299
  }
219
300
  exports.isArrayLiteralExpression = isArrayLiteralExpression;
220
301
  function isAALiteralExpression(element) {
221
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AALiteralExpression';
302
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AALiteralExpression;
222
303
  }
223
304
  exports.isAALiteralExpression = isAALiteralExpression;
305
+ function isAAMemberExpression(element) {
306
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AAMemberExpression;
307
+ }
308
+ exports.isAAMemberExpression = isAAMemberExpression;
224
309
  function isUnaryExpression(element) {
225
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'UnaryExpression';
310
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.UnaryExpression;
226
311
  }
227
312
  exports.isUnaryExpression = isUnaryExpression;
228
313
  function isVariableExpression(element) {
229
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'VariableExpression';
314
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.VariableExpression;
230
315
  }
231
316
  exports.isVariableExpression = isVariableExpression;
232
317
  function isSourceLiteralExpression(element) {
233
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'SourceLiteralExpression';
318
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.SourceLiteralExpression;
234
319
  }
235
320
  exports.isSourceLiteralExpression = isSourceLiteralExpression;
236
321
  function isNewExpression(element) {
237
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'NewExpression';
322
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.NewExpression;
238
323
  }
239
324
  exports.isNewExpression = isNewExpression;
240
325
  function isCallfuncExpression(element) {
241
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'CallfuncExpression';
326
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.CallfuncExpression;
242
327
  }
243
328
  exports.isCallfuncExpression = isCallfuncExpression;
244
329
  function isTemplateStringQuasiExpression(element) {
245
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringQuasiExpression';
330
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringQuasiExpression;
246
331
  }
247
332
  exports.isTemplateStringQuasiExpression = isTemplateStringQuasiExpression;
248
333
  function isTemplateStringExpression(element) {
249
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TemplateStringExpression';
334
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TemplateStringExpression;
250
335
  }
251
336
  exports.isTemplateStringExpression = isTemplateStringExpression;
252
337
  function isTaggedTemplateStringExpression(element) {
253
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'TaggedTemplateStringExpression';
338
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TaggedTemplateStringExpression;
254
339
  }
255
340
  exports.isTaggedTemplateStringExpression = isTaggedTemplateStringExpression;
256
341
  function isFunctionParameterExpression(element) {
257
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'FunctionParameterExpression';
342
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.FunctionParameterExpression;
258
343
  }
259
344
  exports.isFunctionParameterExpression = isFunctionParameterExpression;
260
345
  function isAnnotationExpression(element) {
261
- return (element === null || element === void 0 ? void 0 : element.constructor.name) === 'AnnotationExpression';
346
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.AnnotationExpression;
262
347
  }
263
348
  exports.isAnnotationExpression = isAnnotationExpression;
349
+ function isTypedefProvider(element) {
350
+ return 'getTypedef' in element;
351
+ }
352
+ exports.isTypedefProvider = isTypedefProvider;
353
+ function isTypeExpression(element) {
354
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypeExpression;
355
+ }
356
+ exports.isTypeExpression = isTypeExpression;
357
+ function isTypecastExpression(element) {
358
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypecastExpression;
359
+ }
360
+ exports.isTypecastExpression = isTypecastExpression;
361
+ function isTypedArrayExpression(element) {
362
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.TypedArrayExpression;
363
+ }
364
+ exports.isTypedArrayExpression = isTypedArrayExpression;
365
+ function isPrintSeparatorExpression(element) {
366
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.PrintSeparatorExpression;
367
+ }
368
+ exports.isPrintSeparatorExpression = isPrintSeparatorExpression;
369
+ function isInlineInterfaceExpression(element) {
370
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InlineInterfaceExpression;
371
+ }
372
+ exports.isInlineInterfaceExpression = isInlineInterfaceExpression;
373
+ function isInlineInterfaceMemberExpression(element) {
374
+ return (element === null || element === void 0 ? void 0 : element.kind) === AstNode_1.AstNodeKind.InlineInterfaceMemberExpression;
375
+ }
376
+ exports.isInlineInterfaceMemberExpression = isInlineInterfaceMemberExpression;
264
377
  // BscType reflection
265
- // Note: these are Hardcoded to avoid circular dependencies
266
378
  function isStringType(value) {
267
- return (value === null || value === void 0 ? void 0 : value.constructor.name) === 'StringType';
379
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.StringType;
268
380
  }
269
381
  exports.isStringType = isStringType;
270
- function isFunctionType(e) {
271
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'FunctionType';
382
+ function isRoStringType(value) {
383
+ return isBuiltInType(value, 'roString');
384
+ }
385
+ exports.isRoStringType = isRoStringType;
386
+ function isStringTypeLike(value) {
387
+ return isStringType(value) || isRoStringType(value) || isCompoundTypeOf(value, isStringTypeLike);
388
+ }
389
+ exports.isStringTypeLike = isStringTypeLike;
390
+ function isTypedFunctionType(value) {
391
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.TypedFunctionType;
392
+ }
393
+ exports.isTypedFunctionType = isTypedFunctionType;
394
+ function isFunctionType(value) {
395
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FunctionType;
272
396
  }
273
397
  exports.isFunctionType = isFunctionType;
274
- function isBooleanType(e) {
275
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'BooleanType';
398
+ function isRoFunctionType(value) {
399
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.RoFunctionType || isBuiltInType(value, 'roFunction');
400
+ }
401
+ exports.isRoFunctionType = isRoFunctionType;
402
+ function isFunctionTypeLike(value) {
403
+ return isFunctionType(value) || isRoFunctionType(value) || isCompoundTypeOf(value, isFunctionTypeLike);
404
+ }
405
+ exports.isFunctionTypeLike = isFunctionTypeLike;
406
+ function isBooleanType(value) {
407
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.BooleanType;
276
408
  }
277
409
  exports.isBooleanType = isBooleanType;
278
- function isIntegerType(e) {
279
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'IntegerType';
410
+ function isRoBooleanType(value) {
411
+ return isBuiltInType(value, 'roBoolean');
412
+ }
413
+ exports.isRoBooleanType = isRoBooleanType;
414
+ function isBooleanTypeLike(value) {
415
+ return isBooleanType(value) || isRoBooleanType(value) || isCompoundTypeOf(value, isBooleanTypeLike);
416
+ }
417
+ exports.isBooleanTypeLike = isBooleanTypeLike;
418
+ function isIntegerType(value) {
419
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.IntegerType;
280
420
  }
281
421
  exports.isIntegerType = isIntegerType;
282
- function isLongIntegerType(e) {
283
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'LongIntegerType';
422
+ function isRoIntType(value) {
423
+ return isBuiltInType(value, 'roInt');
424
+ }
425
+ exports.isRoIntType = isRoIntType;
426
+ function isIntegerTypeLike(value) {
427
+ return isIntegerType(value) || isRoIntType(value) || isCompoundTypeOf(value, isIntegerTypeLike);
428
+ }
429
+ exports.isIntegerTypeLike = isIntegerTypeLike;
430
+ function isLongIntegerType(value) {
431
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.LongIntegerType;
284
432
  }
285
433
  exports.isLongIntegerType = isLongIntegerType;
286
- function isFloatType(e) {
287
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'FloatType';
434
+ function isRoLongIntegerType(value) {
435
+ return isBuiltInType(value, 'roLongInteger');
436
+ }
437
+ exports.isRoLongIntegerType = isRoLongIntegerType;
438
+ function isLongIntegerTypeLike(value) {
439
+ return isLongIntegerType(value) || isRoLongIntegerType(value) || isCompoundTypeOf(value, isLongIntegerTypeLike);
440
+ }
441
+ exports.isLongIntegerTypeLike = isLongIntegerTypeLike;
442
+ function isFloatType(value) {
443
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.FloatType;
288
444
  }
289
445
  exports.isFloatType = isFloatType;
290
- function isDoubleType(e) {
291
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'DoubleType';
446
+ function isRoFloatType(value) {
447
+ return isBuiltInType(value, 'roFloat');
448
+ }
449
+ exports.isRoFloatType = isRoFloatType;
450
+ function isFloatTypeLike(value) {
451
+ return isFloatType(value) || isRoFloatType(value) || isCompoundTypeOf(value, isFloatTypeLike);
452
+ }
453
+ exports.isFloatTypeLike = isFloatTypeLike;
454
+ function isDoubleType(value) {
455
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DoubleType;
292
456
  }
293
457
  exports.isDoubleType = isDoubleType;
294
- function isInvalidType(e) {
295
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'InvalidType';
458
+ function isRoDoubleType(value) {
459
+ return isBuiltInType(value, 'roDouble');
460
+ }
461
+ exports.isRoDoubleType = isRoDoubleType;
462
+ function isDoubleTypeLike(value) {
463
+ return isDoubleType(value) || isRoDoubleType(value) || isCompoundTypeOf(value, isDoubleTypeLike);
464
+ }
465
+ exports.isDoubleTypeLike = isDoubleTypeLike;
466
+ function isInvalidType(value) {
467
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InvalidType;
296
468
  }
297
469
  exports.isInvalidType = isInvalidType;
298
- function isVoidType(e) {
299
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'VoidType';
470
+ function isRoInvalidType(value) {
471
+ return isBuiltInType(value, 'roInvalid');
472
+ }
473
+ exports.isRoInvalidType = isRoInvalidType;
474
+ function isInvalidTypeLike(value) {
475
+ return isInvalidType(value) || isRoInvalidType(value) || isCompoundTypeOf(value, isInvalidTypeLike);
476
+ }
477
+ exports.isInvalidTypeLike = isInvalidTypeLike;
478
+ function isVoidType(value) {
479
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.VoidType;
300
480
  }
301
481
  exports.isVoidType = isVoidType;
302
- function isCustomType(e) {
303
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'CustomType';
482
+ function isClassType(value) {
483
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ClassType;
304
484
  }
305
- exports.isCustomType = isCustomType;
306
- function isUninitializedType(e) {
307
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'UninitializedType';
485
+ exports.isClassType = isClassType;
486
+ function isComponentType(value) {
487
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ComponentType;
308
488
  }
309
- exports.isUninitializedType = isUninitializedType;
310
- function isInterfaceType(e) {
311
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'InterfaceType';
489
+ exports.isComponentType = isComponentType;
490
+ function isDynamicType(value) {
491
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.DynamicType;
492
+ }
493
+ exports.isDynamicType = isDynamicType;
494
+ function isInterfaceType(value) {
495
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.InterfaceType;
312
496
  }
313
497
  exports.isInterfaceType = isInterfaceType;
314
- function isArrayType(e) {
315
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'ArrayType';
498
+ function isObjectType(value) {
499
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ObjectType;
500
+ }
501
+ exports.isObjectType = isObjectType;
502
+ function isReferenceType(value) {
503
+ var _a;
504
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ReferenceType';
505
+ }
506
+ exports.isReferenceType = isReferenceType;
507
+ function isEnumType(value) {
508
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumType;
509
+ }
510
+ exports.isEnumType = isEnumType;
511
+ function isEnumMemberType(value) {
512
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.EnumMemberType;
513
+ }
514
+ exports.isEnumMemberType = isEnumMemberType;
515
+ function isTypePropertyReferenceType(value) {
516
+ var _a;
517
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'TypePropertyReferenceType';
518
+ }
519
+ exports.isTypePropertyReferenceType = isTypePropertyReferenceType;
520
+ function isBinaryOperatorReferenceType(value) {
521
+ var _a;
522
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'BinaryOperatorReferenceType';
523
+ }
524
+ exports.isBinaryOperatorReferenceType = isBinaryOperatorReferenceType;
525
+ function isArrayDefaultTypeReferenceType(value) {
526
+ var _a;
527
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ArrayDefaultTypeReferenceType';
528
+ }
529
+ exports.isArrayDefaultTypeReferenceType = isArrayDefaultTypeReferenceType;
530
+ function isParamTypeFromValueReferenceType(value) {
531
+ var _a;
532
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ParamTypeFromValueReferenceType';
533
+ }
534
+ exports.isParamTypeFromValueReferenceType = isParamTypeFromValueReferenceType;
535
+ function isReferenceTypeWithDefault(value) {
536
+ var _a;
537
+ return ((_a = value === null || value === void 0 ? void 0 : value.__reflection) === null || _a === void 0 ? void 0 : _a.name) === 'ReferenceTypeWithDefault';
538
+ }
539
+ exports.isReferenceTypeWithDefault = isReferenceTypeWithDefault;
540
+ function isNamespaceType(value) {
541
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.NamespaceType;
542
+ }
543
+ exports.isNamespaceType = isNamespaceType;
544
+ function isUnionType(value) {
545
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UnionType;
546
+ }
547
+ exports.isUnionType = isUnionType;
548
+ function isIntersectionType(value) {
549
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.IntersectionType;
550
+ }
551
+ exports.isIntersectionType = isIntersectionType;
552
+ function isUninitializedType(value) {
553
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.UninitializedType;
554
+ }
555
+ exports.isUninitializedType = isUninitializedType;
556
+ function isArrayType(value) {
557
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ArrayType;
316
558
  }
317
559
  exports.isArrayType = isArrayType;
318
- function isObjectType(e) {
319
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'ObjectType';
560
+ function isAssociativeArrayType(value) {
561
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.AssociativeArrayType;
320
562
  }
321
- exports.isObjectType = isObjectType;
322
- function isDynamicType(e) {
323
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'DynamicType';
563
+ exports.isAssociativeArrayType = isAssociativeArrayType;
564
+ function isTypeStatementType(value) {
565
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.TypeStatementType;
324
566
  }
325
- exports.isDynamicType = isDynamicType;
326
- const numberConstructorNames = [
327
- 'IntegerType',
328
- 'LongIntegerType',
329
- 'FloatType',
330
- 'DoubleType'
331
- ];
332
- function isNumberType(e) {
333
- return numberConstructorNames.includes(e === null || e === void 0 ? void 0 : e.constructor.name);
567
+ exports.isTypeStatementType = isTypeStatementType;
568
+ function isInheritableType(target) {
569
+ return isClassType(target) || isInterfaceType(target) || isComponentType(target);
570
+ }
571
+ exports.isInheritableType = isInheritableType;
572
+ function isCallFuncableType(target) {
573
+ return isInterfaceType(target) || isComponentType(target) || isCompoundTypeOf(target, isCallFuncableType);
574
+ }
575
+ exports.isCallFuncableType = isCallFuncableType;
576
+ function isCallableType(target) {
577
+ return isFunctionTypeLike(target) || isTypedFunctionType(target) || isObjectType(target) || (isDynamicType(target) && !isAnyReferenceType(target));
578
+ }
579
+ exports.isCallableType = isCallableType;
580
+ function isAnyReferenceType(target) {
581
+ var _a;
582
+ const name = (_a = target === null || target === void 0 ? void 0 : target.__reflection) === null || _a === void 0 ? void 0 : _a.name;
583
+ return name === 'ReferenceType' || name === 'TypePropertyReferenceType' || name === 'BinaryOperatorReferenceType' || name === 'ArrayDefaultTypeReferenceType' || name === 'ParamTypeFromValueReferenceType' || name === 'ReferenceTypeWithDefault';
584
+ }
585
+ exports.isAnyReferenceType = isAnyReferenceType;
586
+ function isNumberType(value) {
587
+ return isIntegerType(value) ||
588
+ isLongIntegerType(value) ||
589
+ isFloatType(value) ||
590
+ isDoubleType(value);
334
591
  }
335
592
  exports.isNumberType = isNumberType;
593
+ function isNumberTypeLike(value) {
594
+ return isIntegerTypeLike(value) ||
595
+ isLongIntegerTypeLike(value) ||
596
+ isFloatTypeLike(value) ||
597
+ isDoubleTypeLike(value) ||
598
+ isCompoundTypeOf(value, isNumberTypeLike);
599
+ }
600
+ exports.isNumberTypeLike = isNumberTypeLike;
601
+ function isPrimitiveType(value = false) {
602
+ return isNumberType(value) ||
603
+ isBooleanType(value) ||
604
+ isStringType(value);
605
+ }
606
+ exports.isPrimitiveType = isPrimitiveType;
607
+ function isPrimitiveTypeLike(value = false) {
608
+ return isNumberTypeLike(value) ||
609
+ isBooleanTypeLike(value) ||
610
+ isStringTypeLike(value) ||
611
+ isTypeStatementTypeOf(value, isPrimitiveTypeLike);
612
+ }
613
+ exports.isPrimitiveTypeLike = isPrimitiveTypeLike;
614
+ function isAssociativeArrayTypeLike(value) {
615
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.AssociativeArrayType || isBuiltInType(value, 'roAssociativeArray') || isCompoundTypeOf(value, isAssociativeArrayTypeLike);
616
+ }
617
+ exports.isAssociativeArrayTypeLike = isAssociativeArrayTypeLike;
618
+ function isArrayTypeLike(value) {
619
+ return (value === null || value === void 0 ? void 0 : value.kind) === BscTypeKind_1.BscTypeKind.ArrayType || isBuiltInType(value, 'roArray') || isCompoundTypeOf(value, isArrayTypeLike);
620
+ }
621
+ exports.isArrayTypeLike = isArrayTypeLike;
622
+ function isCallFuncableTypeLike(target) {
623
+ return isCallFuncableType(target) || isCompoundTypeOf(target, isCallFuncableTypeLike);
624
+ }
625
+ exports.isCallFuncableTypeLike = isCallFuncableTypeLike;
626
+ function isBuiltInType(value, name) {
627
+ return (isInterfaceType(value) && value.name.toLowerCase() === name.toLowerCase() && value.isBuiltIn) ||
628
+ (isTypeStatementType(value) && isBuiltInType(value.wrappedType, name));
629
+ }
630
+ exports.isBuiltInType = isBuiltInType;
631
+ const nativeTypeKinds = [
632
+ BscTypeKind_1.BscTypeKind.DynamicType,
633
+ BscTypeKind_1.BscTypeKind.ObjectType,
634
+ BscTypeKind_1.BscTypeKind.VoidType,
635
+ BscTypeKind_1.BscTypeKind.FunctionType
636
+ ];
637
+ function isNativeType(value) {
638
+ return isPrimitiveType(value) || nativeTypeKinds.includes(value === null || value === void 0 ? void 0 : value.kind);
639
+ }
640
+ exports.isNativeType = isNativeType;
641
+ function isTypeStatementTypeOf(value, typeGuard) {
642
+ return isTypeStatementType(value) && typeGuard(value.wrappedType);
643
+ }
644
+ exports.isTypeStatementTypeOf = isTypeStatementTypeOf;
645
+ function isUnionTypeOf(value, typeGuard) {
646
+ return isUnionType(value) && value.types.every(typeGuard);
647
+ }
648
+ exports.isUnionTypeOf = isUnionTypeOf;
649
+ function isIntersectionTypeOf(value, typeGuard) {
650
+ return isIntersectionType(value) && value.types.some(typeGuard);
651
+ }
652
+ exports.isIntersectionTypeOf = isIntersectionTypeOf;
653
+ function isCompoundTypeOf(value, typeGuard) {
654
+ return isTypeStatementTypeOf(value, typeGuard) ||
655
+ isUnionTypeOf(value, typeGuard) ||
656
+ isIntersectionTypeOf(value, typeGuard);
657
+ }
658
+ exports.isCompoundTypeOf = isCompoundTypeOf;
659
+ function isCompoundType(value) {
660
+ return isUnionType(value) || isIntersectionType(value);
661
+ }
662
+ exports.isCompoundType = isCompoundType;
663
+ function isIterableType(value) {
664
+ if (isDynamicType(value) || isObjectType(value)) {
665
+ return true;
666
+ }
667
+ if (isArrayTypeLike(value) || isAssociativeArrayTypeLike(value)) {
668
+ return true;
669
+ }
670
+ if (isBuiltInType(value, 'roByteArray') || isBuiltInType(value, 'roList') || isBuiltInType(value, 'roXMLList') || isBuiltInType(value, 'roMessagePort')) {
671
+ return true;
672
+ }
673
+ return false;
674
+ }
675
+ exports.isIterableType = isIterableType;
336
676
  // Literal reflection
337
- function isLiteralInvalid(e) {
338
- return isLiteralExpression(e) && isInvalidType(e.type);
677
+ function isLiteralInvalid(value) {
678
+ return isLiteralExpression(value) && value.tokens.value.kind === TokenKind_1.TokenKind.Invalid;
339
679
  }
340
680
  exports.isLiteralInvalid = isLiteralInvalid;
341
- function isLiteralBoolean(e) {
342
- return isLiteralExpression(e) && isBooleanType(e.type);
681
+ function isLiteralBoolean(value) {
682
+ return isLiteralExpression(value) && isBooleanType(value.getType());
343
683
  }
344
684
  exports.isLiteralBoolean = isLiteralBoolean;
345
- function isLiteralString(e) {
346
- return isLiteralExpression(e) && isStringType(e.type);
685
+ function isLiteralString(value) {
686
+ return isLiteralExpression(value) && isStringType(value.getType());
347
687
  }
348
688
  exports.isLiteralString = isLiteralString;
349
- function isLiteralNumber(e) {
350
- return isLiteralExpression(e) && isNumberType(e.type);
689
+ function isLiteralNumber(value) {
690
+ return isLiteralExpression(value) && isNumberType(value.getType());
351
691
  }
352
692
  exports.isLiteralNumber = isLiteralNumber;
353
- function isSGInterfaceField(e) {
354
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'SGInterfaceField';
693
+ function isLiteralInteger(value) {
694
+ return isLiteralExpression(value) && isIntegerType(value.getType());
695
+ }
696
+ exports.isLiteralInteger = isLiteralInteger;
697
+ function isLiteralLongInteger(value) {
698
+ return isLiteralExpression(value) && isLongIntegerType(value.getType());
699
+ }
700
+ exports.isLiteralLongInteger = isLiteralLongInteger;
701
+ function isLiteralFloat(value) {
702
+ return isLiteralExpression(value) && isFloatType(value.getType());
703
+ }
704
+ exports.isLiteralFloat = isLiteralFloat;
705
+ function isLiteralDouble(value) {
706
+ return isLiteralExpression(value) && isDoubleType(value.getType());
355
707
  }
356
- exports.isSGInterfaceField = isSGInterfaceField;
357
- function isSGInterfaceFunction(e) {
358
- return (e === null || e === void 0 ? void 0 : e.constructor.name) === 'SGInterfaceFunction';
708
+ exports.isLiteralDouble = isLiteralDouble;
709
+ // Diagnostics
710
+ function isBsDiagnostic(value) {
711
+ return value.message;
359
712
  }
360
- exports.isSGInterfaceFunction = isSGInterfaceFunction;
713
+ exports.isBsDiagnostic = isBsDiagnostic;
361
714
  //# sourceMappingURL=reflection.js.map