brighterscript 1.0.0-alpha.1 → 1.0.0-alpha.13

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 (316) hide show
  1. package/CHANGELOG.md +362 -248
  2. package/README.md +2 -2
  3. package/bsconfig.schema.json +1 -1
  4. package/dist/CodeActionUtil.d.ts +11 -2
  5. package/dist/CodeActionUtil.js +17 -3
  6. package/dist/CodeActionUtil.js.map +1 -1
  7. package/dist/CommentFlagProcessor.d.ts +4 -4
  8. package/dist/CommentFlagProcessor.js +5 -3
  9. package/dist/CommentFlagProcessor.js.map +1 -1
  10. package/dist/DependencyGraph.js.map +1 -1
  11. package/dist/DiagnosticCollection.js +2 -2
  12. package/dist/DiagnosticCollection.js.map +1 -1
  13. package/dist/DiagnosticFilterer.js +3 -3
  14. package/dist/DiagnosticFilterer.js.map +1 -1
  15. package/dist/DiagnosticMessages.d.ts +15 -5
  16. package/dist/DiagnosticMessages.js +19 -9
  17. package/dist/DiagnosticMessages.js.map +1 -1
  18. package/dist/LanguageServer.d.ts +11 -10
  19. package/dist/LanguageServer.js +87 -58
  20. package/dist/LanguageServer.js.map +1 -1
  21. package/dist/Logger.d.ts +2 -0
  22. package/dist/Logger.js +5 -3
  23. package/dist/Logger.js.map +1 -1
  24. package/dist/Program.d.ts +76 -46
  25. package/dist/Program.js +254 -180
  26. package/dist/Program.js.map +1 -1
  27. package/dist/ProgramBuilder.d.ts +7 -7
  28. package/dist/ProgramBuilder.js +37 -43
  29. package/dist/ProgramBuilder.js.map +1 -1
  30. package/dist/Scope.d.ts +33 -23
  31. package/dist/Scope.js +222 -147
  32. package/dist/Scope.js.map +1 -1
  33. package/dist/SemanticTokenUtils.d.ts +14 -0
  34. package/dist/SemanticTokenUtils.js +81 -0
  35. package/dist/SemanticTokenUtils.js.map +1 -0
  36. package/dist/SymbolTable.d.ts +9 -3
  37. package/dist/SymbolTable.js +40 -13
  38. package/dist/SymbolTable.js.map +1 -1
  39. package/dist/XmlScope.d.ts +7 -2
  40. package/dist/XmlScope.js +67 -29
  41. package/dist/XmlScope.js.map +1 -1
  42. package/dist/astUtils/AstEditor.d.ts +27 -0
  43. package/dist/astUtils/AstEditor.js +97 -0
  44. package/dist/astUtils/AstEditor.js.map +1 -0
  45. package/dist/astUtils/AstEditor.spec.d.ts +1 -0
  46. package/dist/astUtils/AstEditor.spec.js +133 -0
  47. package/dist/astUtils/AstEditor.spec.js.map +1 -0
  48. package/dist/astUtils/creators.d.ts +15 -1
  49. package/dist/astUtils/creators.js +39 -9
  50. package/dist/astUtils/creators.js.map +1 -1
  51. package/dist/astUtils/creators.spec.js +4 -4
  52. package/dist/astUtils/creators.spec.js.map +1 -1
  53. package/dist/astUtils/index.js +1 -1
  54. package/dist/astUtils/reflection.d.ts +20 -8
  55. package/dist/astUtils/reflection.js +42 -1
  56. package/dist/astUtils/reflection.js.map +1 -1
  57. package/dist/astUtils/reflection.spec.js +115 -115
  58. package/dist/astUtils/reflection.spec.js.map +1 -1
  59. package/dist/astUtils/stackedVisitor.js.map +1 -1
  60. package/dist/astUtils/stackedVisitor.spec.js +13 -13
  61. package/dist/astUtils/stackedVisitor.spec.js.map +1 -1
  62. package/dist/astUtils/visitors.js +1 -1
  63. package/dist/astUtils/visitors.js.map +1 -1
  64. package/dist/astUtils/visitors.spec.js +28 -28
  65. package/dist/astUtils/visitors.spec.js.map +1 -1
  66. package/dist/astUtils/xml.d.ts +4 -3
  67. package/dist/astUtils/xml.js +8 -3
  68. package/dist/astUtils/xml.js.map +1 -1
  69. package/dist/bscPlugin/BscPlugin.d.ts +2 -1
  70. package/dist/bscPlugin/BscPlugin.js +4 -0
  71. package/dist/bscPlugin/BscPlugin.js.map +1 -1
  72. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +5 -6
  73. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  74. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +30 -30
  75. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +1 -1
  76. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.d.ts +7 -0
  77. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js +63 -0
  78. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.js.map +1 -0
  79. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.d.ts +1 -0
  80. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js +45 -0
  81. package/dist/bscPlugin/semanticTokens/SemanticTokensProcessor.spec.js.map +1 -0
  82. package/dist/diagnosticUtils.d.ts +1 -0
  83. package/dist/diagnosticUtils.js +14 -7
  84. package/dist/diagnosticUtils.js.map +1 -1
  85. package/dist/examples/plugins/removePrint.js +2 -2
  86. package/dist/examples/plugins/removePrint.js.map +1 -1
  87. package/dist/files/BrsFile.Class.spec.js +486 -71
  88. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  89. package/dist/files/BrsFile.d.ts +48 -23
  90. package/dist/files/BrsFile.js +403 -233
  91. package/dist/files/BrsFile.js.map +1 -1
  92. package/dist/files/BrsFile.spec.js +367 -316
  93. package/dist/files/BrsFile.spec.js.map +1 -1
  94. package/dist/files/XmlFile.d.ts +13 -6
  95. package/dist/files/XmlFile.js +27 -21
  96. package/dist/files/XmlFile.js.map +1 -1
  97. package/dist/files/XmlFile.spec.js +274 -228
  98. package/dist/files/XmlFile.spec.js.map +1 -1
  99. package/dist/files/tests/imports.spec.js +49 -49
  100. package/dist/files/tests/imports.spec.js.map +1 -1
  101. package/dist/globalCallables.d.ts +3 -1
  102. package/dist/globalCallables.js +359 -87
  103. package/dist/globalCallables.js.map +1 -1
  104. package/dist/index.js +2 -1
  105. package/dist/index.js.map +1 -1
  106. package/dist/interfaces.d.ts +51 -14
  107. package/dist/lexer/Lexer.d.ts +14 -1
  108. package/dist/lexer/Lexer.js +91 -21
  109. package/dist/lexer/Lexer.js.map +1 -1
  110. package/dist/lexer/Lexer.spec.js +187 -132
  111. package/dist/lexer/Lexer.spec.js.map +1 -1
  112. package/dist/lexer/Token.d.ts +2 -2
  113. package/dist/lexer/TokenKind.d.ts +7 -1
  114. package/dist/lexer/TokenKind.js +51 -3
  115. package/dist/lexer/TokenKind.js.map +1 -1
  116. package/dist/lexer/index.js +2 -1
  117. package/dist/lexer/index.js.map +1 -1
  118. package/dist/parser/BrsTranspileState.d.ts +7 -0
  119. package/dist/parser/BrsTranspileState.js +10 -1
  120. package/dist/parser/BrsTranspileState.js.map +1 -1
  121. package/dist/parser/Expression.d.ts +23 -5
  122. package/dist/parser/Expression.js +124 -75
  123. package/dist/parser/Expression.js.map +1 -1
  124. package/dist/parser/Parser.Class.spec.js +159 -60
  125. package/dist/parser/Parser.Class.spec.js.map +1 -1
  126. package/dist/parser/Parser.d.ts +114 -26
  127. package/dist/parser/Parser.js +471 -126
  128. package/dist/parser/Parser.js.map +1 -1
  129. package/dist/parser/Parser.spec.js +396 -235
  130. package/dist/parser/Parser.spec.js.map +1 -1
  131. package/dist/parser/SGParser.d.ts +41 -4
  132. package/dist/parser/SGParser.js +186 -175
  133. package/dist/parser/SGParser.js.map +1 -1
  134. package/dist/parser/SGParser.spec.js +35 -22
  135. package/dist/parser/SGParser.spec.js.map +1 -1
  136. package/dist/parser/SGTypes.d.ts +206 -38
  137. package/dist/parser/SGTypes.js +470 -161
  138. package/dist/parser/SGTypes.js.map +1 -1
  139. package/dist/parser/SGTypes.spec.d.ts +1 -0
  140. package/dist/parser/SGTypes.spec.js +351 -0
  141. package/dist/parser/SGTypes.spec.js.map +1 -0
  142. package/dist/parser/Statement.d.ts +92 -18
  143. package/dist/parser/Statement.js +287 -58
  144. package/dist/parser/Statement.js.map +1 -1
  145. package/dist/parser/Statement.spec.js +11 -11
  146. package/dist/parser/Statement.spec.js.map +1 -1
  147. package/dist/parser/TranspileState.d.ts +1 -1
  148. package/dist/parser/TranspileState.js +15 -7
  149. package/dist/parser/TranspileState.js.map +1 -1
  150. package/dist/parser/index.js +1 -1
  151. package/dist/parser/tests/Parser.spec.d.ts +8 -7
  152. package/dist/parser/tests/Parser.spec.js +12 -8
  153. package/dist/parser/tests/Parser.spec.js.map +1 -1
  154. package/dist/parser/tests/controlFlow/For.spec.js +50 -50
  155. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  156. package/dist/parser/tests/controlFlow/ForEach.spec.js +31 -31
  157. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  158. package/dist/parser/tests/controlFlow/If.spec.js +174 -156
  159. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  160. package/dist/parser/tests/controlFlow/While.spec.js +32 -32
  161. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  162. package/dist/parser/tests/expression/Additive.spec.js +21 -21
  163. package/dist/parser/tests/expression/Additive.spec.js.map +1 -1
  164. package/dist/parser/tests/expression/ArrayLiterals.spec.js +105 -105
  165. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  166. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +148 -124
  167. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  168. package/dist/parser/tests/expression/Boolean.spec.js +17 -17
  169. package/dist/parser/tests/expression/Boolean.spec.js.map +1 -1
  170. package/dist/parser/tests/expression/Call.spec.js +30 -30
  171. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  172. package/dist/parser/tests/expression/Exponential.spec.js +16 -16
  173. package/dist/parser/tests/expression/Exponential.spec.js.map +1 -1
  174. package/dist/parser/tests/expression/Function.spec.js +247 -247
  175. package/dist/parser/tests/expression/Function.spec.js.map +1 -1
  176. package/dist/parser/tests/expression/Indexing.spec.js +73 -73
  177. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  178. package/dist/parser/tests/expression/Multiplicative.spec.js +36 -36
  179. package/dist/parser/tests/expression/Multiplicative.spec.js.map +1 -1
  180. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +59 -47
  181. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  182. package/dist/parser/tests/expression/PrefixUnary.spec.js +35 -35
  183. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +1 -1
  184. package/dist/parser/tests/expression/Primary.spec.js +26 -26
  185. package/dist/parser/tests/expression/Primary.spec.js.map +1 -1
  186. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +1 -0
  187. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +170 -0
  188. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +1 -0
  189. package/dist/parser/tests/expression/Relational.spec.js +42 -42
  190. package/dist/parser/tests/expression/Relational.spec.js.map +1 -1
  191. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +8 -8
  192. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
  193. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +12 -12
  194. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  195. package/dist/parser/tests/expression/TernaryExpression.spec.js +100 -100
  196. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  197. package/dist/parser/tests/statement/AssignmentOperators.spec.js +35 -35
  198. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +1 -1
  199. package/dist/parser/tests/statement/Declaration.spec.js +39 -39
  200. package/dist/parser/tests/statement/Declaration.spec.js.map +1 -1
  201. package/dist/parser/tests/statement/Dim.spec.js +21 -21
  202. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  203. package/dist/parser/tests/statement/Function.spec.js +192 -192
  204. package/dist/parser/tests/statement/Function.spec.js.map +1 -1
  205. package/dist/parser/tests/statement/Goto.spec.js +11 -11
  206. package/dist/parser/tests/statement/Goto.spec.js.map +1 -1
  207. package/dist/parser/tests/statement/Increment.spec.js +46 -46
  208. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  209. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +1 -0
  210. package/dist/parser/tests/statement/InterfaceStatement.spec.js +61 -0
  211. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +1 -0
  212. package/dist/parser/tests/statement/LibraryStatement.spec.js +10 -10
  213. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +1 -1
  214. package/dist/parser/tests/statement/Misc.spec.js +37 -36
  215. package/dist/parser/tests/statement/Misc.spec.js.map +1 -1
  216. package/dist/parser/tests/statement/PrintStatement.spec.js +30 -30
  217. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  218. package/dist/parser/tests/statement/ReturnStatement.spec.js +43 -43
  219. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  220. package/dist/parser/tests/statement/Set.spec.js +69 -69
  221. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  222. package/dist/parser/tests/statement/Stop.spec.js +9 -9
  223. package/dist/parser/tests/statement/Stop.spec.js.map +1 -1
  224. package/dist/parser/tests/statement/Throw.spec.js +5 -5
  225. package/dist/parser/tests/statement/Throw.spec.js.map +1 -1
  226. package/dist/parser/tests/statement/TryCatch.spec.js +13 -13
  227. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  228. package/dist/preprocessor/Chunk.js.map +1 -1
  229. package/dist/preprocessor/Manifest.d.ts +1 -1
  230. package/dist/preprocessor/Preprocessor.js +1 -1
  231. package/dist/preprocessor/Preprocessor.js.map +1 -1
  232. package/dist/preprocessor/Preprocessor.spec.js +49 -49
  233. package/dist/preprocessor/Preprocessor.spec.js.map +1 -1
  234. package/dist/preprocessor/PreprocessorParser.spec.js +72 -72
  235. package/dist/preprocessor/PreprocessorParser.spec.js.map +1 -1
  236. package/dist/preprocessor/index.js +1 -1
  237. package/dist/types/ArrayType.js +5 -4
  238. package/dist/types/ArrayType.js.map +1 -1
  239. package/dist/types/ArrayType.spec.js +8 -8
  240. package/dist/types/ArrayType.spec.js.map +1 -1
  241. package/dist/types/BooleanType.js +3 -3
  242. package/dist/types/BooleanType.js.map +1 -1
  243. package/dist/types/BooleanType.spec.js +2 -2
  244. package/dist/types/BooleanType.spec.js.map +1 -1
  245. package/dist/types/BscType.d.ts +19 -5
  246. package/dist/types/BscType.js +9 -0
  247. package/dist/types/BscType.js.map +1 -1
  248. package/dist/types/CustomType.d.ts +8 -5
  249. package/dist/types/CustomType.js +17 -6
  250. package/dist/types/CustomType.js.map +1 -1
  251. package/dist/types/DoubleType.js +8 -8
  252. package/dist/types/DoubleType.js.map +1 -1
  253. package/dist/types/DoubleType.spec.js +2 -2
  254. package/dist/types/DoubleType.spec.js.map +1 -1
  255. package/dist/types/DynamicType.js +1 -1
  256. package/dist/types/DynamicType.js.map +1 -1
  257. package/dist/types/DynamicType.spec.js +2 -2
  258. package/dist/types/DynamicType.spec.js.map +1 -1
  259. package/dist/types/FloatType.d.ts +1 -1
  260. package/dist/types/FloatType.js +8 -8
  261. package/dist/types/FloatType.js.map +1 -1
  262. package/dist/types/FloatType.spec.js +2 -2
  263. package/dist/types/FloatType.spec.js.map +1 -1
  264. package/dist/types/FunctionType.d.ts +5 -11
  265. package/dist/types/FunctionType.js +24 -13
  266. package/dist/types/FunctionType.js.map +1 -1
  267. package/dist/types/FunctionType.spec.js +11 -5
  268. package/dist/types/FunctionType.spec.js.map +1 -1
  269. package/dist/types/IntegerType.d.ts +1 -1
  270. package/dist/types/IntegerType.js +8 -8
  271. package/dist/types/IntegerType.js.map +1 -1
  272. package/dist/types/IntegerType.spec.js +2 -2
  273. package/dist/types/IntegerType.spec.js.map +1 -1
  274. package/dist/types/InterfaceType.d.ts +8 -2
  275. package/dist/types/InterfaceType.js +42 -6
  276. package/dist/types/InterfaceType.js.map +1 -1
  277. package/dist/types/InterfaceType.spec.d.ts +1 -0
  278. package/dist/types/InterfaceType.spec.js +174 -0
  279. package/dist/types/InterfaceType.spec.js.map +1 -0
  280. package/dist/types/InvalidType.js +4 -4
  281. package/dist/types/InvalidType.js.map +1 -1
  282. package/dist/types/InvalidType.spec.js +2 -2
  283. package/dist/types/InvalidType.spec.js.map +1 -1
  284. package/dist/types/LazyType.d.ts +9 -7
  285. package/dist/types/LazyType.js +22 -10
  286. package/dist/types/LazyType.js.map +1 -1
  287. package/dist/types/LongIntegerType.d.ts +1 -1
  288. package/dist/types/LongIntegerType.js +8 -8
  289. package/dist/types/LongIntegerType.js.map +1 -1
  290. package/dist/types/LongIntegerType.spec.js +2 -2
  291. package/dist/types/LongIntegerType.spec.js.map +1 -1
  292. package/dist/types/ObjectType.d.ts +7 -4
  293. package/dist/types/ObjectType.js +6 -3
  294. package/dist/types/ObjectType.js.map +1 -1
  295. package/dist/types/ObjectType.spec.js +2 -2
  296. package/dist/types/ObjectType.spec.js.map +1 -1
  297. package/dist/types/StringType.js +3 -3
  298. package/dist/types/StringType.js.map +1 -1
  299. package/dist/types/StringType.spec.js +2 -2
  300. package/dist/types/StringType.spec.js.map +1 -1
  301. package/dist/types/UninitializedType.js +3 -3
  302. package/dist/types/UninitializedType.js.map +1 -1
  303. package/dist/types/VoidType.js +3 -3
  304. package/dist/types/VoidType.js.map +1 -1
  305. package/dist/types/VoidType.spec.js +2 -2
  306. package/dist/types/VoidType.spec.js.map +1 -1
  307. package/dist/types/helpers.d.ts +42 -0
  308. package/dist/types/helpers.js +113 -0
  309. package/dist/types/helpers.js.map +1 -0
  310. package/dist/util.d.ts +77 -17
  311. package/dist/util.js +247 -59
  312. package/dist/util.js.map +1 -1
  313. package/dist/validators/ClassValidator.d.ts +5 -1
  314. package/dist/validators/ClassValidator.js +59 -24
  315. package/dist/validators/ClassValidator.js.map +1 -1
  316. package/package.json +13 -13
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const chai_1 = require("chai");
4
- const path = require("path");
5
4
  const sinonImport = require("sinon");
6
5
  const vscode_languageserver_1 = require("vscode-languageserver");
7
6
  const fsExtra = require("fs-extra");
8
7
  const DiagnosticMessages_1 = require("../DiagnosticMessages");
9
8
  const Program_1 = require("../Program");
10
- const BrsFile_1 = require("./BrsFile");
11
9
  const XmlFile_1 = require("./XmlFile");
12
10
  const util_1 = require("../util");
13
11
  const testHelpers_spec_1 = require("../testHelpers.spec");
12
+ const ProgramBuilder_1 = require("../ProgramBuilder");
13
+ const Logger_1 = require("../Logger");
14
14
  describe('XmlFile', () => {
15
- const tempDir = util_1.standardizePath `${process.cwd()}/.tmp`;
16
- const rootDir = util_1.standardizePath `${tempDir}/rootDir`;
17
- const stagingDir = util_1.standardizePath `${tempDir}/stagingDir`;
15
+ const tempDir = (0, util_1.standardizePath) `${process.cwd()}/.tmp`;
16
+ const rootDir = (0, util_1.standardizePath) `${tempDir}/rootDir`;
17
+ const stagingDir = (0, util_1.standardizePath) `${tempDir}/stagingDir`;
18
18
  let program;
19
19
  let sinon = sinonImport.createSandbox();
20
20
  let file;
21
- let testTranspile = testHelpers_spec_1.getTestTranspile(() => [program, rootDir]);
21
+ let testTranspile = (0, testHelpers_spec_1.getTestTranspile)(() => [program, rootDir]);
22
22
  beforeEach(() => {
23
23
  fsExtra.ensureDirSync(tempDir);
24
24
  fsExtra.emptyDirSync(tempDir);
@@ -37,33 +37,33 @@ describe('XmlFile', () => {
37
37
  program.plugins.add({
38
38
  name: 'allows modifying the parsed XML model',
39
39
  afterFileParse: (event) => {
40
- event.file.parser.ast.root.attributes[0].value.text = expected;
40
+ event.file.parser.ast.root.attributes[0].tokens.value.text = expected;
41
41
  }
42
42
  });
43
- file = program.addOrReplaceFile('components/ChildScene.xml', testHelpers_spec_1.trim `
43
+ file = program.setFile('components/ChildScene.xml', (0, testHelpers_spec_1.trim) `
44
44
  <?xml version="1.0" encoding="utf-8" ?>
45
45
  <component name="ChildScene" extends="Scene">
46
46
  <script type="text/brightscript" uri="ChildScene1.brs" /> <script type="text/brightscript" uri="ChildScene2.brs" /> <script type="text/brightscript" uri="ChildScene3.brs" />
47
47
  </component>
48
48
  `);
49
- chai_1.expect(file.componentName.text).to.equal(expected);
49
+ (0, chai_1.expect)(file.componentName.text).to.equal(expected);
50
50
  });
51
51
  it('only removes specified attribute when calling setAttribute', () => {
52
52
  file = new XmlFile_1.XmlFile('abs', 'rel', program);
53
53
  program.plugins.add({
54
54
  name: 'allows modifying the parsed XML model',
55
55
  afterFileParse: () => {
56
- let child = file.parser.ast.component.children.children[0];
57
- chai_1.expect(child.attributes).to.have.lengthOf(4);
58
- child.setAttribute('text', undefined);
59
- chai_1.expect(child.getAttribute('id').value.text).to.equal('one');
60
- chai_1.expect(child.attributes).to.have.lengthOf(3);
61
- child.setAttribute('text3', undefined);
62
- chai_1.expect(child.getAttribute('id').value.text).to.equal('one');
63
- chai_1.expect(child.attributes).to.have.lengthOf(2);
56
+ let child = file.parser.ast.component.children.childNodes[0];
57
+ (0, chai_1.expect)(child.attributes).to.have.lengthOf(4);
58
+ child.setAttributeValue('text', undefined);
59
+ (0, chai_1.expect)(child.id).to.equal('one');
60
+ (0, chai_1.expect)(child.attributes).to.have.lengthOf(3);
61
+ child.setAttributeValue('text3', undefined);
62
+ (0, chai_1.expect)(child.id).to.equal('one');
63
+ (0, chai_1.expect)(child.attributes).to.have.lengthOf(2);
64
64
  }
65
65
  });
66
- file.parse(testHelpers_spec_1.trim `
66
+ file.parse((0, testHelpers_spec_1.trim) `
67
67
  <?xml version="1.0" encoding="utf-8" ?>
68
68
  <component name="ChildScene" extends="Scene">
69
69
  <script type="text/brightscript" uri="ChildScene1.brs" /> <script type="text/brightscript" uri="ChildScene2.brs" /> <script type="text/brightscript" uri="ChildScene3.brs" />
@@ -78,17 +78,17 @@ describe('XmlFile', () => {
78
78
  `);
79
79
  });
80
80
  it('supports importing BrighterScript files', () => {
81
- file = program.addOrReplaceFile({ src: `${rootDir}/components/custom.xml`, dest: 'components/custom.xml' }, testHelpers_spec_1.trim `
81
+ file = program.setFile({ src: `${rootDir}/components/custom.xml`, dest: 'components/custom.xml' }, (0, testHelpers_spec_1.trim) `
82
82
  <?xml version="1.0" encoding="utf-8" ?>
83
83
  <component name="ChildScene" extends="Scene">
84
84
  <script type="text/brightscript" uri="ChildScene.bs" />
85
85
  </component>
86
86
  `);
87
- chai_1.expect(file.scriptTagImports.map(x => x.pkgPath)[0]).to.equal(util_1.standardizePath `components/ChildScene.bs`);
87
+ (0, chai_1.expect)(file.scriptTagImports.map(x => x.pkgPath)[0]).to.equal('pkg:/components/ChildScene.bs');
88
88
  });
89
89
  it('does not include commented-out script imports', () => {
90
90
  var _a, _b;
91
- file = program.addOrReplaceFile({ src: `${rootDir}/components/custom.xml`, dest: 'components/custom.xml' }, testHelpers_spec_1.trim `
91
+ file = program.setFile({ src: `${rootDir}/components/custom.xml`, dest: 'components/custom.xml' }, (0, testHelpers_spec_1.trim) `
92
92
  <?xml version="1.0" encoding="utf-8" ?>
93
93
  <component name="ChildScene" extends="Scene">
94
94
  <script type="text/brightscript" uri="ChildScene.brs" />
@@ -97,40 +97,40 @@ describe('XmlFile', () => {
97
97
  -->
98
98
  </component>
99
99
  `);
100
- chai_1.expect((_b = (_a = file.scriptTagImports) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.pkgPath).to.eql(util_1.standardizePath `components/ChildScene.brs`);
100
+ (0, chai_1.expect)((_b = (_a = file.scriptTagImports) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.pkgPath).to.eql('pkg:/components/ChildScene.brs');
101
101
  });
102
102
  it('finds scripts when more than one per line', () => {
103
103
  file = new XmlFile_1.XmlFile('abs', 'rel', program);
104
- file.parse(testHelpers_spec_1.trim `
104
+ file.parse((0, testHelpers_spec_1.trim) `
105
105
  <?xml version="1.0" encoding="utf-8" ?>
106
106
  <component name="ChildScene" extends="Scene">
107
107
  <script type="text/brightscript" uri="ChildScene1.brs" /> <script type="text/brightscript" uri="ChildScene2.brs" /> <script type="text/brightscript" uri="ChildScene3.brs" />
108
108
  </component>
109
109
  `);
110
- chai_1.expect(file.scriptTagImports).to.be.lengthOf(3);
111
- chai_1.expect(file.scriptTagImports[0]).to.deep.include({
110
+ (0, chai_1.expect)(file.scriptTagImports).to.be.lengthOf(3);
111
+ (0, chai_1.expect)(file.scriptTagImports[0]).to.deep.include({
112
112
  text: 'ChildScene1.brs',
113
113
  filePathRange: vscode_languageserver_1.Range.create(2, 42, 2, 57)
114
114
  });
115
- chai_1.expect(file.scriptTagImports[1]).to.deep.include({
115
+ (0, chai_1.expect)(file.scriptTagImports[1]).to.deep.include({
116
116
  text: 'ChildScene2.brs',
117
117
  filePathRange: vscode_languageserver_1.Range.create(2, 100, 2, 115)
118
118
  });
119
- chai_1.expect(file.scriptTagImports[2]).to.deep.include({
119
+ (0, chai_1.expect)(file.scriptTagImports[2]).to.deep.include({
120
120
  text: 'ChildScene3.brs',
121
121
  filePathRange: vscode_languageserver_1.Range.create(2, 158, 2, 173)
122
122
  });
123
123
  });
124
124
  it('finds component names', () => {
125
125
  file = new XmlFile_1.XmlFile('abs', 'rel', program);
126
- file.parse(testHelpers_spec_1.trim `
126
+ file.parse((0, testHelpers_spec_1.trim) `
127
127
  <?xml version="1.0" encoding="utf-8" ?>
128
128
  <component name="ChildScene" extends="ParentScene">
129
129
  <script type="text/brightscript" uri="ChildScene.brs" />
130
130
  </component>
131
131
  `);
132
- chai_1.expect(file.parentComponentName.text).to.equal('ParentScene');
133
- chai_1.expect(file.componentName.text).to.equal('ChildScene');
132
+ (0, chai_1.expect)(file.parentComponentName.text).to.equal('ParentScene');
133
+ (0, chai_1.expect)(file.componentName.text).to.equal('ChildScene');
134
134
  });
135
135
  it('Adds error when whitespace appears before the prolog', () => {
136
136
  file = new XmlFile_1.XmlFile('abs', 'rel', program);
@@ -139,16 +139,16 @@ describe('XmlFile', () => {
139
139
  <component name="ChildScene" extends="ParentScene">
140
140
  <script type="text/brightscript" uri="ChildScene.brs" />
141
141
  </component>`);
142
- chai_1.expect(file.diagnostics).to.be.lengthOf(2);
143
- chai_1.expect(file.diagnostics[0]).to.deep.include({
142
+ (0, chai_1.expect)(file.diagnostics).to.be.lengthOf(2);
143
+ (0, chai_1.expect)(file.diagnostics[0]).to.deep.include({
144
144
  code: DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('').code,
145
145
  range: vscode_languageserver_1.Range.create(1, 16, 1, 22)
146
146
  });
147
- chai_1.expect(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('Syntax error: whitespace found before the XML prolog')), { range: vscode_languageserver_1.Range.create(0, 0, 1, 16) }));
147
+ (0, chai_1.expect)(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('Syntax error: whitespace found before the XML prolog')), { range: vscode_languageserver_1.Range.create(0, 0, 1, 16) }));
148
148
  });
149
149
  it('Adds error when an unknown tag is found in xml', () => {
150
150
  file = new XmlFile_1.XmlFile('abs', 'rel', program);
151
- file.parse(testHelpers_spec_1.trim `
151
+ file.parse((0, testHelpers_spec_1.trim) `
152
152
  <?xml version="1.0" encoding="utf-8" ?>
153
153
  <component name="ChildScene" extends="ParentScene">
154
154
  <interface>
@@ -157,58 +157,58 @@ describe('XmlFile', () => {
157
157
  <unexpectedToo />
158
158
  </component>
159
159
  `);
160
- chai_1.expect(file.diagnostics).to.be.lengthOf(2);
161
- chai_1.expect(file.diagnostics[0]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('unexpected')), { range: vscode_languageserver_1.Range.create(3, 9, 3, 19) }));
162
- chai_1.expect(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('unexpectedToo')), { range: vscode_languageserver_1.Range.create(5, 5, 5, 18) }));
160
+ (0, chai_1.expect)(file.diagnostics).to.be.lengthOf(2);
161
+ (0, chai_1.expect)(file.diagnostics[0]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('unexpected')), { range: vscode_languageserver_1.Range.create(3, 9, 3, 19) }));
162
+ (0, chai_1.expect)(file.diagnostics[1]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('unexpectedToo')), { range: vscode_languageserver_1.Range.create(5, 5, 5, 18) }));
163
163
  });
164
164
  it('Adds error when no component is declared in xml', () => {
165
- file = program.addOrReplaceFile('components/file.xml', '<script type="text/brightscript" uri="ChildScene.brs" />');
165
+ file = program.setFile('components/file.xml', '<script type="text/brightscript" uri="ChildScene.brs" />');
166
166
  program.validate();
167
- chai_1.expect(file.diagnostics).to.be.lengthOf(2);
168
- chai_1.expect(file.diagnostics[0]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('script')), { range: vscode_languageserver_1.Range.create(0, 1, 0, 7) }));
169
- chai_1.expect(file.diagnostics[1]).to.deep.include(DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingComponentDeclaration());
167
+ (0, chai_1.expect)(file.diagnostics).to.be.lengthOf(2);
168
+ (0, chai_1.expect)(file.diagnostics[0]).to.deep.include(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.xmlUnexpectedTag('script')), { range: vscode_languageserver_1.Range.create(0, 1, 0, 7) }));
169
+ (0, chai_1.expect)(file.diagnostics[1]).to.deep.include(DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingComponentDeclaration());
170
170
  });
171
171
  it('adds error when component does not declare a name', () => {
172
- file = program.addOrReplaceFile('components/ParentScene.xml', testHelpers_spec_1.trim `
172
+ file = program.setFile('components/ParentScene.xml', (0, testHelpers_spec_1.trim) `
173
173
  <?xml version="1.0" encoding="utf-8" ?>
174
174
  <component extends="ParentScene">
175
175
  <script type="text/brightscript" uri="ChildScene.brs" />
176
176
  </component>
177
177
  `);
178
178
  program.validate();
179
- chai_1.expect(file.diagnostics).to.be.lengthOf(1);
180
- chai_1.expect(file.diagnostics[0]).to.deep.include({
179
+ (0, chai_1.expect)(file.diagnostics).to.be.lengthOf(1);
180
+ (0, chai_1.expect)(file.diagnostics[0]).to.deep.include({
181
181
  message: DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingNameAttribute().message,
182
182
  range: vscode_languageserver_1.Range.create(1, 1, 1, 10)
183
183
  });
184
184
  });
185
185
  it('catches xml parse errors', () => {
186
- file = program.addOrReplaceFile('components/ParentScene.xml', testHelpers_spec_1.trim `
186
+ file = program.setFile('components/ParentScene.xml', (0, testHelpers_spec_1.trim) `
187
187
  <?xml version="1.0" encoding="utf-8" ?>
188
188
  <component 1extends="ParentScene">
189
189
  </component>
190
190
  `);
191
191
  program.validate();
192
- chai_1.expect(file.diagnostics).to.be.lengthOf(2);
193
- chai_1.expect(file.diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('').code); //unexpected character '1'
194
- chai_1.expect(file.diagnostics[1]).to.deep.include({
192
+ (0, chai_1.expect)(file.diagnostics).to.be.lengthOf(2);
193
+ (0, chai_1.expect)(file.diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.xmlGenericParseError('').code); //unexpected character '1'
194
+ (0, chai_1.expect)(file.diagnostics[1]).to.deep.include({
195
195
  code: DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingNameAttribute().code,
196
196
  range: vscode_languageserver_1.Range.create(1, 1, 1, 10)
197
197
  });
198
198
  });
199
199
  it('finds script imports', () => {
200
200
  file = new XmlFile_1.XmlFile('abspath/components/cmp1.xml', 'components/cmp1.xml', program);
201
- file.parse(testHelpers_spec_1.trim `
201
+ file.parse((0, testHelpers_spec_1.trim) `
202
202
  <?xml version="1.0" encoding="utf-8" ?>
203
203
  <component name="Cmp1" extends="Scene">
204
204
  <script type="text/brightscript" uri="pkg:/components/cmp1.brs" />
205
205
  </component>
206
206
  `);
207
- chai_1.expect(file.scriptTagImports.length).to.equal(1);
208
- chai_1.expect(file.scriptTagImports[0]).to.deep.include({
207
+ (0, chai_1.expect)(file.scriptTagImports.length).to.equal(1);
208
+ (0, chai_1.expect)(file.scriptTagImports[0]).to.deep.include({
209
209
  sourceFile: file,
210
210
  text: 'pkg:/components/cmp1.brs',
211
- pkgPath: `components${path.sep}cmp1.brs`,
211
+ pkgPath: `pkg:/components/cmp1.brs`,
212
212
  filePathRange: vscode_languageserver_1.Range.create(2, 42, 2, 66)
213
213
  });
214
214
  });
@@ -224,153 +224,156 @@ describe('XmlFile', () => {
224
224
  }
225
225
  });
226
226
  it('resolves relative paths', () => {
227
- file = program.addOrReplaceFile({
227
+ file = program.setFile({
228
228
  src: `${rootDir}/components/comp1.xml`,
229
229
  dest: 'components/comp1.xml'
230
- }, testHelpers_spec_1.trim `
230
+ }, (0, testHelpers_spec_1.trim) `
231
231
  <?xml version="1.0" encoding="utf-8" ?>
232
232
  <component name="Cmp1" extends="Scene">
233
233
  <script type="text/brightscript" uri="cmp1.brs" />
234
234
  </component>
235
235
  `);
236
- chai_1.expect(file.scriptTagImports.length).to.equal(1);
237
- chai_1.expect(file.scriptTagImports[0]).to.deep.include({
236
+ (0, chai_1.expect)(file.scriptTagImports.length).to.equal(1);
237
+ (0, chai_1.expect)(file.scriptTagImports[0]).to.deep.include({
238
238
  text: 'cmp1.brs',
239
- pkgPath: `components${path.sep}cmp1.brs`
239
+ pkgPath: `pkg:/components/cmp1.brs`
240
240
  });
241
241
  });
242
242
  it('finds correct position for empty uri in script tag', () => {
243
243
  var _a;
244
- file = program.addOrReplaceFile({
244
+ file = program.setFile({
245
245
  src: `${rootDir}/components/comp1.xml`,
246
246
  dest: 'components/comp1.xml'
247
- }, testHelpers_spec_1.trim `
247
+ }, (0, testHelpers_spec_1.trim) `
248
248
  <?xml version="1.0" encoding="utf-8" ?>
249
249
  <component name="Cmp1" extends="Scene">
250
250
  <script type="text/brightscript" uri="" />
251
251
  </component>
252
252
  `);
253
- chai_1.expect(file.scriptTagImports.length).to.equal(1);
254
- chai_1.expect((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.filePathRange).to.eql(vscode_languageserver_1.Range.create(2, 42, 2, 42));
253
+ (0, chai_1.expect)(file.scriptTagImports.length).to.equal(1);
254
+ (0, chai_1.expect)((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.filePathRange).to.eql(vscode_languageserver_1.Range.create(2, 42, 2, 42));
255
255
  });
256
256
  });
257
257
  describe('doesReferenceFile', () => {
258
258
  it('compares case insensitive', () => {
259
- let xmlFile = program.addOrReplaceFile({
259
+ let xmlFile = program.setFile({
260
260
  src: `${rootDir}/components/comp1.xml`,
261
261
  dest: 'components/comp1.xml'
262
- }, testHelpers_spec_1.trim `
262
+ }, (0, testHelpers_spec_1.trim) `
263
263
  <?xml version="1.0" encoding="utf-8" ?>
264
264
  <component name="Cmp1" extends="Scene">
265
265
  <script type="text/brightscript" uri="HeroGrid.brs" />
266
266
  </component>
267
267
  `);
268
- let brsFile = program.addOrReplaceFile({
268
+ let brsFile = program.setFile({
269
269
  src: `${rootDir}/components/HEROGRID.brs`,
270
270
  dest: `components/HEROGRID.brs`
271
271
  }, ``);
272
- chai_1.expect(xmlFile.doesReferenceFile(brsFile)).to.be.true;
272
+ (0, chai_1.expect)(xmlFile.doesReferenceFile(brsFile)).to.be.true;
273
273
  });
274
274
  });
275
275
  describe('autoImportComponentScript', () => {
276
276
  it('is not enabled by default', () => {
277
- program.addOrReplaceFile({ src: `${rootDir}/components/comp1.xml`, dest: 'components/comp1.xml' }, testHelpers_spec_1.trim `
277
+ program.setFile({ src: `${rootDir}/components/comp1.xml`, dest: 'components/comp1.xml' }, (0, testHelpers_spec_1.trim) `
278
278
  <?xml version="1.0" encoding="utf-8" ?>
279
279
  <component name="ParentScene" extends="GrandparentScene">
280
280
  <script type="text/brightscript" uri="./lib.brs" />
281
281
  </component>
282
282
  `);
283
- program.addOrReplaceFile({ src: `${rootDir}/components/lib.brs`, dest: 'components/lib.brs' }, `
283
+ program.setFile({ src: `${rootDir}/components/lib.brs`, dest: 'components/lib.brs' }, `
284
284
  function libFunc()
285
285
  end function
286
286
  `);
287
- program.addOrReplaceFile({ src: `${rootDir}/components/comp1.bs`, dest: 'components/comp1.bs' }, `
287
+ program.setFile({ src: `${rootDir}/components/comp1.bs`, dest: 'components/comp1.bs' }, `
288
288
  function init()
289
289
  libFunc()
290
290
  end function
291
291
  `);
292
292
  program.validate();
293
- chai_1.expect(program.getDiagnostics().map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.fileNotReferencedByAnyOtherFile().message);
293
+ (0, chai_1.expect)(program.getDiagnostics().map(x => x.message)).to.include(DiagnosticMessages_1.DiagnosticMessages.fileNotReferencedByAnyOtherFile().message);
294
294
  });
295
295
  it('is not enabled by default', () => {
296
296
  program = new Program_1.Program({
297
297
  rootDir: rootDir,
298
298
  autoImportComponentScript: true
299
299
  });
300
- program.addOrReplaceFile({ src: `${rootDir}/components/comp1.xml`, dest: 'components/comp1.xml' }, testHelpers_spec_1.trim `
300
+ program.setFile({ src: `${rootDir}/components/comp1.xml`, dest: 'components/comp1.xml' }, (0, testHelpers_spec_1.trim) `
301
301
  <?xml version="1.0" encoding="utf-8" ?>
302
302
  <component name="ParentScene" extends="GrandparentScene">
303
303
  <script type="text/brightscript" uri="./lib.brs" />
304
304
  </component>
305
305
  `);
306
- program.addOrReplaceFile({ src: `${rootDir}/components/lib.brs`, dest: 'components/lib.brs' }, `
306
+ program.setFile({ src: `${rootDir}/components/lib.brs`, dest: 'components/lib.brs' }, `
307
307
  function libFunc()
308
308
  end function
309
309
  `);
310
- program.addOrReplaceFile({ src: `${rootDir}/components/comp1.bs`, dest: 'components/comp1.bs' }, `
310
+ program.setFile({ src: `${rootDir}/components/comp1.bs`, dest: 'components/comp1.bs' }, `
311
311
  function init()
312
312
  libFunc()
313
313
  end function
314
314
  `);
315
315
  program.validate();
316
316
  //there should be no errors
317
- chai_1.expect(program.getDiagnostics().map(x => x.message)[0]).not.to.exist;
317
+ (0, chai_1.expect)(program.getDiagnostics().map(x => x.message)[0]).not.to.exist;
318
318
  });
319
319
  });
320
320
  describe('getCompletions', () => {
321
321
  it('formats completion paths with proper slashes', () => {
322
- let scriptPath = util_1.standardizePath `C:/app/components/component1/component1.brs`;
323
- program.files[scriptPath] = new BrsFile_1.BrsFile(scriptPath, util_1.standardizePath `components/component1/component1.brs`, program);
324
- let xmlFile = new XmlFile_1.XmlFile(util_1.standardizePath `${rootDir}/components/component1/component1.xml`, util_1.standardizePath `components/component1/component1.xml`, program);
322
+ program.setFile('pkg:/components/component1/component1.brs', '');
323
+ const xmlFile = program.setFile('components/component1/component1.xml', (0, testHelpers_spec_1.trim) `
324
+ <?xml version="1.0" encoding="utf-8" ?>
325
+ <component name="Component1" extends="Group">
326
+ </component
327
+ `);
325
328
  xmlFile.parser.references.scriptTagImports.push({
326
- pkgPath: util_1.standardizePath `components/component1/component1.brs`,
329
+ pkgPath: 'pkg:/components/component1/component1.brs',
327
330
  text: 'component1.brs',
328
331
  filePathRange: vscode_languageserver_1.Range.create(1, 1, 1, 1)
329
332
  });
330
- chai_1.expect(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[0]).to.include({
333
+ (0, chai_1.expect)(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[0]).to.include({
331
334
  label: 'component1.brs',
332
335
  kind: vscode_languageserver_1.CompletionItemKind.File
333
336
  });
334
- chai_1.expect(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[1]).to.include({
337
+ (0, chai_1.expect)(xmlFile.getCompletions(vscode_languageserver_1.Position.create(1, 1))[1]).to.include({
335
338
  label: 'pkg:/components/component1/component1.brs',
336
339
  kind: vscode_languageserver_1.CompletionItemKind.File
337
340
  });
338
341
  });
339
342
  it('returns empty set when out of range', () => {
340
- program.addOrReplaceFile({ src: `${rootDir}/components/Component1.brs`, dest: 'components/component1.brs' }, ``);
341
- chai_1.expect(file.getCompletions(vscode_languageserver_1.Position.create(99, 99))).to.be.empty;
343
+ program.setFile({ src: `${rootDir}/components/Component1.brs`, dest: 'components/component1.brs' }, ``);
344
+ (0, chai_1.expect)(file.getCompletions(vscode_languageserver_1.Position.create(99, 99))).to.be.empty;
342
345
  });
343
346
  //TODO - refine this test once cdata scripts are supported
344
347
  it('prevents scope completions entirely', () => {
345
- program.addOrReplaceFile({ src: `${rootDir}/components/Component1.brs`, dest: 'components/component1.brs' }, ``);
346
- let xmlFile = program.addOrReplaceFile({ src: `${rootDir}/components/Component1.xml`, dest: 'components/component1.xml' }, testHelpers_spec_1.trim `
348
+ program.setFile({ src: `${rootDir}/components/Component1.brs`, dest: 'components/component1.brs' }, ``);
349
+ let xmlFile = program.setFile({ src: `${rootDir}/components/Component1.xml`, dest: 'components/component1.xml' }, (0, testHelpers_spec_1.trim) `
347
350
  <?xml version="1.0" encoding="utf-8" ?>
348
351
  <component name="ParentScene" extends="GrandparentScene">
349
352
  <script type="text/brightscript" uri="./Component1.brs" />
350
353
  </component>
351
354
  `);
352
- chai_1.expect(program.getCompletions(xmlFile.pathAbsolute, vscode_languageserver_1.Position.create(1, 1))).to.be.empty;
355
+ (0, chai_1.expect)(program.getCompletions(xmlFile.srcPath, vscode_languageserver_1.Position.create(1, 1))).to.be.empty;
353
356
  });
354
357
  });
355
358
  describe('getAllDependencies', () => {
356
359
  it('returns own imports', () => {
357
- file = program.addOrReplaceFile('components/comp1.xml', testHelpers_spec_1.trim `
360
+ file = program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
358
361
  <?xml version="1.0" encoding="utf-8" ?>
359
362
  <component name="ChildScene" extends="BaseScene">
360
363
  <script type="text/brightscript" uri="pkg:/source/lib.brs" />
361
364
  </component>
362
365
  `);
363
- chai_1.expect(file.getOwnDependencies().sort()).to.eql([
364
- util_1.standardizePath `source/lib.brs`,
365
- util_1.standardizePath `source/lib.d.bs`
366
+ (0, chai_1.expect)(file.getOwnDependencies().sort()).to.eql([
367
+ 'pkg:/source/lib.brs',
368
+ 'pkg:/source/lib.d.bs'
366
369
  ]);
367
370
  });
368
371
  });
369
372
  it('invalidates dependent scopes on change', () => {
370
- let xmlFile = program.addOrReplaceFile({
373
+ let xmlFile = program.setFile({
371
374
  src: `${rootDir}/components/comp1.xml`,
372
375
  dest: `components/comp1.xml`
373
- }, testHelpers_spec_1.trim `
376
+ }, (0, testHelpers_spec_1.trim) `
374
377
  <?xml version="1.0" encoding="utf-8" ?>
375
378
  <component name="ChildScene" extends="BaseScene">
376
379
  <script type="text/brightscript" uri="pkg:/source/lib.bs" />
@@ -379,68 +382,68 @@ describe('XmlFile', () => {
379
382
  program.validate();
380
383
  let scope = program.getScopesForFile(xmlFile)[0];
381
384
  //scope should be validated
382
- chai_1.expect(scope.isValidated);
385
+ (0, chai_1.expect)(scope.isValidated);
383
386
  //add lib1
384
- program.addOrReplaceFile({
387
+ program.setFile({
385
388
  src: `${rootDir}/source/lib.bs`,
386
389
  dest: `source/lib.bs`
387
390
  }, ``);
388
391
  //adding a dependent file should have invalidated the scope
389
- chai_1.expect(scope.isValidated).to.be.false;
392
+ (0, chai_1.expect)(scope.isValidated).to.be.false;
390
393
  program.validate();
391
- chai_1.expect(scope.isValidated).to.be.true;
394
+ (0, chai_1.expect)(scope.isValidated).to.be.true;
392
395
  //update lib1 to include an import
393
- program.addOrReplaceFile({
396
+ program.setFile({
394
397
  src: `${rootDir}/source/lib.bs`,
395
398
  dest: `source/lib.bs`
396
399
  }, `
397
400
  import "lib2.bs"
398
401
  `);
399
402
  //scope should have been invalidated again
400
- chai_1.expect(scope.isValidated).to.be.false;
403
+ (0, chai_1.expect)(scope.isValidated).to.be.false;
401
404
  program.validate();
402
- chai_1.expect(scope.isValidated).to.be.true;
405
+ (0, chai_1.expect)(scope.isValidated).to.be.true;
403
406
  //add the lib2 imported from lib
404
- program.addOrReplaceFile({
407
+ program.setFile({
405
408
  src: `${rootDir}/source/lib2.bs`,
406
409
  dest: `source/lib2.bs`
407
410
  }, ``);
408
411
  //scope should have been invalidated again because of chained dependency
409
- chai_1.expect(scope.isValidated).to.be.false;
412
+ (0, chai_1.expect)(scope.isValidated).to.be.false;
410
413
  program.validate();
411
- chai_1.expect(scope.isValidated).to.be.true;
414
+ (0, chai_1.expect)(scope.isValidated).to.be.true;
412
415
  program.removeFile(`${rootDir}/source/lib.bs`);
413
- chai_1.expect(scope.isValidated).to.be.false;
416
+ (0, chai_1.expect)(scope.isValidated).to.be.false;
414
417
  });
415
418
  it('does not invalidate unrelated scopes on change', () => {
416
- let xmlFile1 = program.addOrReplaceFile({
419
+ let xmlFile1 = program.setFile({
417
420
  src: `${rootDir}/components/comp1.xml`,
418
421
  dest: `components/comp1.xml`
419
- }, testHelpers_spec_1.trim `
422
+ }, (0, testHelpers_spec_1.trim) `
420
423
  <?xml version="1.0" encoding="utf-8" ?>
421
424
  <component name="ChildScene1" extends="BaseScene">
422
425
  <script type="text/brightscript" uri="pkg:/source/lib.brs" />
423
426
  </component>
424
427
  `);
425
- let xmlFile2 = program.addOrReplaceFile({
428
+ let xmlFile2 = program.setFile({
426
429
  src: `${rootDir}/components/comp2.xml`,
427
430
  dest: `components/comp2.xml`
428
- }, testHelpers_spec_1.trim `
431
+ }, (0, testHelpers_spec_1.trim) `
429
432
  <?xml version="1.0" encoding="utf-8" ?>
430
433
  <component name="ChildScene2" extends="BaseScene">
431
434
  </component>
432
435
  `);
433
436
  program.validate();
434
437
  //scope should be validated
435
- chai_1.expect(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.true;
436
- chai_1.expect(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
438
+ (0, chai_1.expect)(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.true;
439
+ (0, chai_1.expect)(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
437
440
  //add the lib file
438
- program.addOrReplaceFile({
441
+ program.setFile({
439
442
  src: `${rootDir}/source/lib.brs`,
440
443
  dest: `source/lib.brs`
441
444
  }, ``);
442
- chai_1.expect(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.false;
443
- chai_1.expect(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
445
+ (0, chai_1.expect)(program.getScopesForFile(xmlFile1)[0].isValidated).to.be.false;
446
+ (0, chai_1.expect)(program.getScopesForFile(xmlFile2)[0].isValidated).to.be.true;
444
447
  });
445
448
  it('allows adding diagnostics', () => {
446
449
  const expected = [{
@@ -450,54 +453,54 @@ describe('XmlFile', () => {
450
453
  }];
451
454
  file.addDiagnostics(expected);
452
455
  const actual = file.getDiagnostics();
453
- chai_1.expect(actual).deep.equal(expected);
456
+ (0, chai_1.expect)(actual).deep.equal(expected);
454
457
  });
455
458
  describe('component extends', () => {
456
459
  it('works for single-line', () => {
457
- file = program.addOrReplaceFile({
460
+ file = program.setFile({
458
461
  src: `${rootDir}/components/comp1.xml`,
459
462
  dest: `components/comp1.xml`
460
- }, testHelpers_spec_1.trim `
463
+ }, (0, testHelpers_spec_1.trim) `
461
464
  <?xml version="1.0" encoding="utf-8" ?>
462
465
  <component name="ChildScene" extends="BaseScene">
463
466
  </component>
464
467
  `);
465
- chai_1.expect(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(1, 38, 1, 47));
468
+ (0, chai_1.expect)(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(1, 38, 1, 47));
466
469
  });
467
470
  it('works for multi-line', () => {
468
- file = program.addOrReplaceFile({
471
+ file = program.setFile({
469
472
  src: `${rootDir}/components/comp1.xml`,
470
473
  dest: `components/comp1.xml`
471
- }, testHelpers_spec_1.trim `
474
+ }, (0, testHelpers_spec_1.trim) `
472
475
  <?xml version="1.0" encoding="utf-8" ?>
473
476
  <component name="ChildScene"
474
477
  extends="BaseScene">
475
478
  </component>
476
479
  `);
477
- chai_1.expect(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(2, 13, 2, 22));
480
+ (0, chai_1.expect)(file.parentComponentName.range).to.eql(vscode_languageserver_1.Range.create(2, 13, 2, 22));
478
481
  });
479
482
  it('does not throw when unable to find extends', () => {
480
- file = program.addOrReplaceFile({
483
+ file = program.setFile({
481
484
  src: `${rootDir}/components/comp1.xml`,
482
485
  dest: `components/comp1.xml`
483
- }, testHelpers_spec_1.trim `
486
+ }, (0, testHelpers_spec_1.trim) `
484
487
  <?xml version="1.0" encoding="utf-8" ?>
485
488
  <component name="ChildScene">
486
489
  </component>
487
490
  `);
488
- chai_1.expect(file.parentComponentName).to.not.exist;
491
+ (0, chai_1.expect)(file.parentComponentName).to.not.exist;
489
492
  });
490
493
  it('adds warning when no "extends" attribute is found', () => {
491
- file = program.addOrReplaceFile({
494
+ file = program.setFile({
492
495
  src: `${rootDir}/components/comp1.xml`,
493
496
  dest: `components/comp1.xml`
494
- }, testHelpers_spec_1.trim `
497
+ }, (0, testHelpers_spec_1.trim) `
495
498
  <?xml version="1.0" encoding="utf-8" ?>
496
499
  <component name="ChildScene">
497
500
  </component>
498
501
  `);
499
502
  program.validate();
500
- chai_1.expect(file.getDiagnostics()[0]).to.include({
503
+ (0, chai_1.expect)(file.getDiagnostics()[0]).to.include({
501
504
  severity: vscode_languageserver_1.DiagnosticSeverity.Warning,
502
505
  message: DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute().message
503
506
  });
@@ -509,23 +512,55 @@ describe('XmlFile', () => {
509
512
  autoImportComponentScript: true,
510
513
  rootDir: rootDir
511
514
  });
512
- program.addOrReplaceFile({
515
+ program.setFile({
513
516
  src: `${rootDir}/components/SimpleScene.bs`,
514
517
  dest: `components/SimpleScene.bs`
515
518
  }, '');
516
- program.addOrReplaceFile({
519
+ program.setFile({
517
520
  src: `${rootDir}/components/SimpleScene.xml`,
518
521
  dest: `components/SimpleScene.xml`
519
- }, testHelpers_spec_1.trim `
522
+ }, (0, testHelpers_spec_1.trim) `
520
523
  <?xml version="1.0" encoding="utf-8" ?>
521
524
  <component name="SimpleScene" extends="Scene">
522
525
  <script type="text/brighterscript" uri="SimpleScene.bs" />
523
526
  </component>
524
527
  `);
525
528
  program.validate();
526
- chai_1.expect((_a = program.getDiagnostics()[0]) === null || _a === void 0 ? void 0 : _a.message).to.equal(DiagnosticMessages_1.DiagnosticMessages.unnecessaryCodebehindScriptImport().message);
529
+ (0, chai_1.expect)((_a = program.getDiagnostics()[0]) === null || _a === void 0 ? void 0 : _a.message).to.equal(DiagnosticMessages_1.DiagnosticMessages.unnecessaryCodebehindScriptImport().message);
527
530
  });
528
531
  describe('transpile', () => {
532
+ it('supports instantresume <customization> elements', async () => {
533
+ fsExtra.outputFileSync(`${rootDir}/manifest`, '');
534
+ fsExtra.outputFileSync(`${rootDir}/source/main.brs`, `sub main()\nend sub`);
535
+ fsExtra.outputFileSync(`${rootDir}/components/MainScene.xml`, (0, testHelpers_spec_1.trim) `
536
+ <?xml version="1.0" encoding="utf-8" ?>
537
+ <component name="MainScene" extends="Scene">
538
+ <customization resumehandler="customResume" />
539
+ <customization suspendhandler="customSuspend" />
540
+ <children>
541
+ <Rectangle width="1920" height="1080" />
542
+ </children>
543
+ </component>
544
+ `);
545
+ const builder = new ProgramBuilder_1.ProgramBuilder();
546
+ await builder.run({
547
+ cwd: rootDir,
548
+ retainStagingFolder: true,
549
+ stagingFolderPath: stagingDir,
550
+ logLevel: Logger_1.LogLevel.off
551
+ });
552
+ (0, chai_1.expect)(fsExtra.readFileSync(`${stagingDir}/components/MainScene.xml`).toString()).to.eql((0, testHelpers_spec_1.trim) `
553
+ <?xml version="1.0" encoding="utf-8" ?>
554
+ <component name="MainScene" extends="Scene">
555
+ <customization resumehandler="customResume" />
556
+ <customization suspendhandler="customSuspend" />
557
+ <children>
558
+ <Rectangle width="1920" height="1080" />
559
+ </children>
560
+ <script type="text/brightscript" uri="pkg:/source/bslib.brs" />
561
+ </component>
562
+ `);
563
+ });
529
564
  it(`honors the 'needsTranspiled' flag when set in 'afterFileParse'`, () => {
530
565
  program.plugins.add({
531
566
  name: 'test',
@@ -534,19 +569,19 @@ describe('XmlFile', () => {
534
569
  event.file.needsTranspiled = true;
535
570
  }
536
571
  });
537
- const file = program.addOrReplaceFile('components/file.xml', testHelpers_spec_1.trim `
572
+ const file = program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
538
573
  <?xml version="1.0" encoding="utf-8" ?>
539
574
  <component name="Comp" extends="Group">
540
575
  </component>
541
576
  `);
542
- chai_1.expect(file.needsTranspiled).to.be.true;
577
+ (0, chai_1.expect)(file.needsTranspiled).to.be.true;
543
578
  });
544
579
  it('includes bslib script', () => {
545
- testTranspile(testHelpers_spec_1.trim `
580
+ testTranspile((0, testHelpers_spec_1.trim) `
546
581
  <?xml version="1.0" encoding="utf-8" ?>
547
582
  <component name="Comp" extends="Group">
548
583
  </component>
549
- `, testHelpers_spec_1.trim `
584
+ `, (0, testHelpers_spec_1.trim) `
550
585
  <?xml version="1.0" encoding="utf-8" ?>
551
586
  <component name="Comp" extends="Group">
552
587
  <script type="text/brightscript" uri="pkg:/source/bslib.brs" />
@@ -554,12 +589,12 @@ describe('XmlFile', () => {
554
589
  `, 'none', 'components/Comp.xml');
555
590
  });
556
591
  it('does not include additional bslib script if already there ', () => {
557
- testTranspile(testHelpers_spec_1.trim `
592
+ testTranspile((0, testHelpers_spec_1.trim) `
558
593
  <?xml version="1.0" encoding="utf-8" ?>
559
594
  <component name="Comp" extends="Group">
560
595
  <script type="text/brightscript" uri="pkg:/source/bslib.brs" />
561
596
  </component>
562
- `, testHelpers_spec_1.trim `
597
+ `, (0, testHelpers_spec_1.trim) `
563
598
  <?xml version="1.0" encoding="utf-8" ?>
564
599
  <component name="Comp" extends="Group">
565
600
  <script type="text/brightscript" uri="pkg:/source/bslib.brs" />
@@ -567,16 +602,16 @@ describe('XmlFile', () => {
567
602
  `, 'none', 'components/child.xml');
568
603
  });
569
604
  it('does not include bslib script if already there from ropm', () => {
570
- program.addOrReplaceFile('source/roku_modules/bslib/bslib.brs', ``);
571
- program.addOrReplaceFile('source/lib.bs', ``);
605
+ program.setFile('source/roku_modules/bslib/bslib.brs', ``);
606
+ program.setFile('source/lib.bs', ``);
572
607
  //include a bs file to force transpile for the xml file
573
- testTranspile(testHelpers_spec_1.trim `
608
+ testTranspile((0, testHelpers_spec_1.trim) `
574
609
  <?xml version="1.0" encoding="utf-8" ?>
575
610
  <component name="Comp" extends="Group">
576
611
  <script type="text/brightscript" uri="pkg:/source/lib.bs" />
577
612
  <script type="text/brightscript" uri="pkg:/source/roku_modules/bslib/bslib.brs" />
578
613
  </component>
579
- `, testHelpers_spec_1.trim `
614
+ `, (0, testHelpers_spec_1.trim) `
580
615
  <?xml version="1.0" encoding="utf-8" ?>
581
616
  <component name="Comp" extends="Group">
582
617
  <script type="text/brightscript" uri="pkg:/source/lib.brs" />
@@ -585,28 +620,28 @@ describe('XmlFile', () => {
585
620
  `, 'none', 'components/child.xml');
586
621
  });
587
622
  it('does not transpile xml file when bslib script is already present', () => {
588
- const file = program.addOrReplaceFile('components/comp.xml', testHelpers_spec_1.trim `
623
+ const file = program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
589
624
  <?xml version="1.0" encoding="utf-8" ?>
590
625
  <component name="Comp" extends="Group">
591
626
  <script type="text/brightscript" uri="pkg:/source/bslib.brs" />
592
627
  </component>
593
628
  `);
594
629
  program.validate();
595
- testHelpers_spec_1.expectZeroDiagnostics(program);
596
- chai_1.expect(file.needsTranspiled).to.be.false;
630
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
631
+ (0, chai_1.expect)(file.needsTranspiled).to.be.false;
597
632
  });
598
633
  /**
599
634
  * There was a bug that would incorrectly replace one of the script paths on the second or third transpile, so this test verifies it doesn't do that anymore
600
635
  */
601
636
  it('does not mangle scripts on multiple transpile', async () => {
602
- program.addOrReplaceFile('components/SimpleScene.bs', ``);
603
- program.addOrReplaceFile(`components/SimpleScene.xml`, testHelpers_spec_1.trim `
637
+ program.setFile('components/SimpleScene.bs', ``);
638
+ program.setFile(`components/SimpleScene.xml`, (0, testHelpers_spec_1.trim) `
604
639
  <?xml version="1.0" encoding="utf-8" ?>
605
640
  <component name="SimpleScene" extends="Scene">
606
641
  <script type="text/brightscript" uri="SimpleScene.bs" />
607
642
  </component>
608
643
  `);
609
- const expected = testHelpers_spec_1.trim `
644
+ const expected = (0, testHelpers_spec_1.trim) `
610
645
  <?xml version="1.0" encoding="utf-8" ?>
611
646
  <component name="SimpleScene" extends="Scene">
612
647
  <script type="text/brightscript" uri="SimpleScene.brs" />
@@ -614,18 +649,18 @@ describe('XmlFile', () => {
614
649
  </component>
615
650
  `;
616
651
  await program.transpile([], stagingDir);
617
- chai_1.expect(fsExtra.readFileSync(`${stagingDir}/components/SimpleScene.xml`).toString()).to.eql(expected);
652
+ (0, chai_1.expect)(fsExtra.readFileSync(`${stagingDir}/components/SimpleScene.xml`).toString()).to.eql(expected);
618
653
  //clear the output folder
619
654
  fsExtra.emptyDirSync(stagingDir);
620
655
  await program.transpile([], stagingDir);
621
- chai_1.expect(fsExtra.readFileSync(`${stagingDir}/components/SimpleScene.xml`).toString()).to.eql(expected);
656
+ (0, chai_1.expect)(fsExtra.readFileSync(`${stagingDir}/components/SimpleScene.xml`).toString()).to.eql(expected);
622
657
  });
623
658
  it('keeps all content of the XML', () => {
624
- program.addOrReplaceFile(`components/SimpleScene.bs`, `
659
+ program.setFile(`components/SimpleScene.bs`, `
625
660
  sub b()
626
661
  end sub
627
662
  `);
628
- testTranspile(testHelpers_spec_1.trim `
663
+ testTranspile((0, testHelpers_spec_1.trim) `
629
664
  <?xml version="1.0" encoding="utf-8" ?>
630
665
  <component
631
666
  name="SimpleScene" extends="Scene"
@@ -643,7 +678,7 @@ describe('XmlFile', () => {
643
678
  </aa>
644
679
  </children>
645
680
  </component>
646
- `, testHelpers_spec_1.trim `
681
+ `, (0, testHelpers_spec_1.trim) `
647
682
  <?xml version="1.0" encoding="utf-8" ?>
648
683
  <component name="SimpleScene" extends="Scene" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://devtools.web.roku.com/schema/RokuSceneGraph.xsd">
649
684
  <interface>
@@ -651,26 +686,26 @@ describe('XmlFile', () => {
651
686
  <function name="b" />
652
687
  </interface>
653
688
  <script type="text/brightscript" uri="SimpleScene.brs" />
654
- <script type="text/brightscript" uri="pkg:/source/bslib.brs" />
655
689
  <children>
656
690
  <aa id="aa">
657
691
  <bb id="bb" />
658
692
  </aa>
659
693
  </children>
694
+ <script type="text/brightscript" uri="pkg:/source/bslib.brs" />
660
695
  </component>
661
696
  `, 'none', 'components/SimpleScene.xml');
662
697
  });
663
698
  it('changes file extensions from bs to brs', () => {
664
- program.addOrReplaceFile(`components/SimpleScene.bs`, `
699
+ program.setFile(`components/SimpleScene.bs`, `
665
700
  import "pkg:/source/lib.bs"
666
701
  `);
667
- program.addOrReplaceFile('source/lib.bs', ``);
668
- testTranspile(testHelpers_spec_1.trim `
702
+ program.setFile('source/lib.bs', ``);
703
+ testTranspile((0, testHelpers_spec_1.trim) `
669
704
  <?xml version="1.0" encoding="utf-8" ?>
670
705
  <component name="SimpleScene" extends="Scene">
671
706
  <script type="text/brighterscript" uri="SimpleScene.bs"/>
672
707
  </component>
673
- `, testHelpers_spec_1.trim `
708
+ `, (0, testHelpers_spec_1.trim) `
674
709
  <?xml version="1.0" encoding="utf-8" ?>
675
710
  <component name="SimpleScene" extends="Scene">
676
711
  <script type="text/brightscript" uri="SimpleScene.brs" />
@@ -680,13 +715,13 @@ describe('XmlFile', () => {
680
715
  `, 'none', 'components/SimpleScene.xml');
681
716
  });
682
717
  it('does not fail on missing script type', () => {
683
- program.addOrReplaceFile('components/SimpleScene.brs', '');
684
- testTranspile(testHelpers_spec_1.trim `
718
+ program.setFile('components/SimpleScene.brs', '');
719
+ testTranspile((0, testHelpers_spec_1.trim) `
685
720
  <?xml version="1.0" encoding="utf-8" ?>
686
721
  <component name="SimpleScene" extends="Scene">
687
722
  <script uri="SimpleScene.brs"/>
688
723
  </component>
689
- `, testHelpers_spec_1.trim `
724
+ `, (0, testHelpers_spec_1.trim) `
690
725
  <?xml version="1.0" encoding="utf-8" ?>
691
726
  <component name="SimpleScene" extends="Scene">
692
727
  <script uri="SimpleScene.brs" type="text/brightscript" />
@@ -695,7 +730,7 @@ describe('XmlFile', () => {
695
730
  `, null, 'components/comp.xml');
696
731
  });
697
732
  it('returns the XML unmodified if needsTranspiled is false', () => {
698
- let file = program.addOrReplaceFile({ src: util_1.standardizePath `${rootDir}/components/SimpleScene.xml`, dest: 'components/SimpleScene.xml' }, testHelpers_spec_1.trim `
733
+ let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
699
734
  <?xml version="1.0" encoding="utf-8" ?>
700
735
  <!-- should stay as-is -->
701
736
  <component name="SimpleScene" extends="Scene" >
@@ -704,7 +739,7 @@ describe('XmlFile', () => {
704
739
  `);
705
740
  //prevent the default auto-imports to ensure no transpilation from AST
706
741
  file.getMissingImportsForTranspile = () => [];
707
- chai_1.expect(testHelpers_spec_1.trimMap(file.transpile().code)).to.equal(testHelpers_spec_1.trim `
742
+ (0, chai_1.expect)((0, testHelpers_spec_1.trimMap)(file.transpile().code)).to.equal((0, testHelpers_spec_1.trim) `
708
743
  <?xml version="1.0" encoding="utf-8" ?>
709
744
  <!-- should stay as-is -->
710
745
  <component name="SimpleScene" extends="Scene" >
@@ -713,26 +748,26 @@ describe('XmlFile', () => {
713
748
  `);
714
749
  });
715
750
  it('needsTranspiled is false by default', () => {
716
- let file = program.addOrReplaceFile({ src: util_1.standardizePath `${rootDir}/components/SimpleScene.xml`, dest: 'components/SimpleScene.xml' }, testHelpers_spec_1.trim `
751
+ let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
717
752
  <?xml version="1.0" encoding="utf-8" ?>
718
753
  <component name="SimpleScene" extends="Scene" >
719
754
  </component>
720
755
  `);
721
- chai_1.expect(file.needsTranspiled).to.be.false;
756
+ (0, chai_1.expect)(file.needsTranspiled).to.be.false;
722
757
  });
723
758
  it('needsTranspiled is true if an import is brighterscript', () => {
724
- let file = program.addOrReplaceFile({ src: util_1.standardizePath `${rootDir}/components/SimpleScene.xml`, dest: 'components/SimpleScene.xml' }, testHelpers_spec_1.trim `
759
+ let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
725
760
  <?xml version="1.0" encoding="utf-8" ?>
726
761
  <component name="SimpleScene" extends="Scene" >
727
762
  <script type="text/brightscript" uri="SimpleScene.bs"/>
728
763
  </component>
729
764
  `);
730
765
  program.validate();
731
- chai_1.expect(file.needsTranspiled).to.be.true;
766
+ (0, chai_1.expect)(file.needsTranspiled).to.be.true;
732
767
  });
733
768
  it('simple source mapping includes sourcemap reference', () => {
734
769
  program.options.sourceMap = true;
735
- let file = program.addOrReplaceFile({ src: util_1.standardizePath `${rootDir}/components/SimpleScene.xml`, dest: 'components/SimpleScene.xml' }, testHelpers_spec_1.trim `
770
+ let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
736
771
  <?xml version="1.0" encoding="utf-8" ?>
737
772
  <component name="SimpleScene" extends="Scene">
738
773
  </component>
@@ -740,18 +775,18 @@ describe('XmlFile', () => {
740
775
  //prevent the default auto-imports to ensure no transpilation from AST
741
776
  file.getMissingImportsForTranspile = () => [];
742
777
  const code = file.transpile().code;
743
- chai_1.expect(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
778
+ (0, chai_1.expect)(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
744
779
  });
745
780
  it('AST-based source mapping includes sourcemap reference', () => {
746
781
  program.options.sourceMap = true;
747
- let file = program.addOrReplaceFile({ src: util_1.standardizePath `${rootDir}/components/SimpleScene.xml`, dest: 'components/SimpleScene.xml' }, testHelpers_spec_1.trim `
782
+ let file = program.setFile('components/SimpleScene.xml', (0, testHelpers_spec_1.trim) `
748
783
  <?xml version="1.0" encoding="utf-8" ?>
749
784
  <component name="SimpleScene" extends="Scene">
750
785
  </component>
751
786
  `);
752
787
  file.needsTranspiled = true;
753
788
  const code = file.transpile().code;
754
- chai_1.expect(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
789
+ (0, chai_1.expect)(code.endsWith(`<!--//# sourceMappingURL=./SimpleScene.xml.map -->`)).to.be.true;
755
790
  });
756
791
  });
757
792
  describe('Transform plugins', () => {
@@ -764,7 +799,7 @@ describe('XmlFile', () => {
764
799
  name: 'Transform plugins',
765
800
  afterFileParse: (event) => validateXml(event.file)
766
801
  });
767
- return program.addOrReplaceFile('components/Cmp1.xml', testHelpers_spec_1.trim `
802
+ return program.setFile('components/Cmp1.xml', (0, testHelpers_spec_1.trim) `
768
803
  <?xml version="1.0" encoding="utf-8" ?>
769
804
  <component name="Cmp1" extends="Scene">
770
805
  </component>
@@ -773,15 +808,15 @@ describe('XmlFile', () => {
773
808
  it('Calls XML file validation plugins', () => {
774
809
  const validateXml = sinon.spy();
775
810
  const file = parseFileWithPlugins(validateXml);
776
- chai_1.expect(validateXml.callCount).to.equal(1);
777
- chai_1.expect(validateXml.calledWith(file)).to.be.true;
811
+ (0, chai_1.expect)(validateXml.callCount).to.equal(1);
812
+ (0, chai_1.expect)(validateXml.calledWith(file)).to.be.true;
778
813
  });
779
814
  });
780
815
  it('plugin diagnostics work for xml files', () => {
781
816
  program.plugins.add({
782
817
  name: 'Xml diagnostic test',
783
818
  afterFileParse: ({ file }) => {
784
- if (file.pathAbsolute.endsWith('.xml')) {
819
+ if (file.srcPath.endsWith('.xml')) {
785
820
  file.addDiagnostics([{
786
821
  file: file,
787
822
  message: 'Test diagnostic',
@@ -791,13 +826,13 @@ describe('XmlFile', () => {
791
826
  }
792
827
  }
793
828
  });
794
- program.addOrReplaceFile('components/comp.xml', testHelpers_spec_1.trim `
829
+ program.setFile('components/comp.xml', (0, testHelpers_spec_1.trim) `
795
830
  <?xml version="1.0" encoding="utf-8" ?>
796
831
  <component name="Cmp1" extends="Scene">
797
832
  </component>
798
833
  `);
799
834
  program.validate();
800
- chai_1.expect(program.getDiagnostics().map(x => ({ message: x.message, code: x.code }))).to.eql([{
835
+ (0, chai_1.expect)(program.getDiagnostics().map(x => ({ message: x.message, code: x.code }))).to.eql([{
801
836
  message: 'Test diagnostic',
802
837
  code: 9999
803
838
  }]);
@@ -805,86 +840,86 @@ describe('XmlFile', () => {
805
840
  describe('typedef', () => {
806
841
  it('loads d.bs files from parent scope', () => {
807
842
  var _a;
808
- program.addOrReplaceFile('components/ParentComponent.xml', testHelpers_spec_1.trim `
843
+ program.setFile('components/ParentComponent.xml', (0, testHelpers_spec_1.trim) `
809
844
  <?xml version="1.0" encoding="utf-8" ?>
810
845
  <component name="ParentComponent" extends="Scene">
811
846
  <script uri="ParentComponent.brs" />
812
847
  </component>
813
848
  `);
814
- program.addOrReplaceFile('components/ParentComponent.d.bs', `
849
+ program.setFile('components/ParentComponent.d.bs', `
815
850
  import "Lib.brs"
816
851
  namespace Parent
817
852
  sub log()
818
853
  end sub
819
854
  end namespace
820
855
  `);
821
- program.addOrReplaceFile('components/ParentComponent.brs', `
856
+ program.setFile('components/ParentComponent.brs', `
822
857
  sub Parent_log()
823
858
  end sub
824
859
  `);
825
- program.addOrReplaceFile('components/Lib.d.bs', `
860
+ program.setFile('components/Lib.d.bs', `
826
861
  namespace Lib
827
862
  sub log()
828
863
  end sub
829
864
  end namespace
830
865
  `);
831
- program.addOrReplaceFile('components/Lib.brs', `
866
+ program.setFile('components/Lib.brs', `
832
867
  sub Lib_log()
833
868
  end sub
834
869
  `);
835
- program.addOrReplaceFile('components/ChildComponent.xml', testHelpers_spec_1.trim `
870
+ program.setFile('components/ChildComponent.xml', (0, testHelpers_spec_1.trim) `
836
871
  <?xml version="1.0" encoding="utf-8" ?>
837
872
  <component name="ChildComponent" extends="ParentComponent">
838
873
  <script uri="ChildComponent.bs" />
839
874
  </component>
840
875
  `);
841
- program.addOrReplaceFile('components/ChildComponent.bs', `
876
+ program.setFile('components/ChildComponent.bs', `
842
877
  sub init()
843
878
  Parent.log()
844
879
  Lib.log()
845
880
  end sub
846
881
  `);
847
882
  program.validate();
848
- chai_1.expect((_a = program.getDiagnostics()[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
883
+ (0, chai_1.expect)((_a = program.getDiagnostics()[0]) === null || _a === void 0 ? void 0 : _a.message).not.to.exist;
849
884
  const scope = program.getComponentScope('ChildComponent');
850
- chai_1.expect(Object.keys(scope.namespaceLookup).sort()).to.eql([
885
+ (0, chai_1.expect)([...scope.namespaceLookup.keys()].sort()).to.eql([
851
886
  'lib',
852
887
  'parent'
853
888
  ]);
854
889
  });
855
890
  it('loads `d.bs` files into scope', () => {
856
- const xmlFile = program.addOrReplaceFile('components/Component1.xml', testHelpers_spec_1.trim `
891
+ const xmlFile = program.setFile('components/Component1.xml', (0, testHelpers_spec_1.trim) `
857
892
  <?xml version="1.0" encoding="utf-8" ?>
858
893
  <component name="Component1" extends="Scene">
859
894
  <script uri="Component1.brs" />
860
895
  </component>
861
896
  `);
862
- program.addOrReplaceFile('components/Component1.d.bs', `
897
+ program.setFile('components/Component1.d.bs', `
863
898
  sub logInfo()
864
899
  end sub
865
900
  `);
866
- chai_1.expect(program.getScopesForFile(xmlFile)[0].getAllCallables().map(x => x.callable.name)).to.include('logInfo');
901
+ (0, chai_1.expect)(program.getScopesForFile(xmlFile)[0].getAllCallables().map(x => x.callable.name)).to.include('logInfo');
867
902
  });
868
903
  it('does not include `d.bs` script during transpile', () => {
869
- program.addOrReplaceFile('source/logger.d.bs', `
904
+ program.setFile('source/logger.d.bs', `
870
905
  sub logInfo()
871
906
  end sub
872
907
  `);
873
- program.addOrReplaceFile('source/logger.brs', `
908
+ program.setFile('source/logger.brs', `
874
909
  sub logInfo()
875
910
  end sub
876
911
  `);
877
- program.addOrReplaceFile('components/Component1.bs', `
912
+ program.setFile('components/Component1.bs', `
878
913
  import "pkg:/source/logger.brs"
879
914
  sub init()
880
915
  end sub
881
916
  `);
882
- testTranspile(testHelpers_spec_1.trim `
917
+ testTranspile((0, testHelpers_spec_1.trim) `
883
918
  <?xml version="1.0" encoding="utf-8" ?>
884
919
  <component name="Component1" extends="Scene">
885
920
  <script type="text/brighterscript" uri="Component1.bs" />
886
921
  </component>
887
- `, testHelpers_spec_1.trim `
922
+ `, (0, testHelpers_spec_1.trim) `
888
923
  <?xml version="1.0" encoding="utf-8" ?>
889
924
  <component name="Component1" extends="Scene">
890
925
  <script type="text/brightscript" uri="Component1.brs" />
@@ -894,7 +929,7 @@ describe('XmlFile', () => {
894
929
  `, 'none', 'components/Component1.xml');
895
930
  });
896
931
  it('does not load .brs information into scope if related d.bs is in scope', () => {
897
- const xmlFile = program.addOrReplaceFile('components/Component1.xml', testHelpers_spec_1.trim `
932
+ const xmlFile = program.setFile('components/Component1.xml', (0, testHelpers_spec_1.trim) `
898
933
  <?xml version="1.0" encoding="utf-8" ?>
899
934
  <component name="Component1" extends="Scene">
900
935
  <script uri="Component1.brs" />
@@ -902,27 +937,27 @@ describe('XmlFile', () => {
902
937
  `);
903
938
  const scope = program.getScopesForFile(xmlFile)[0];
904
939
  //load brs file
905
- program.addOrReplaceFile('components/Component1.brs', `
940
+ program.setFile('components/Component1.brs', `
906
941
  sub logInfo()
907
942
  end sub
908
943
  sub logWarning()
909
944
  end sub
910
945
  `);
911
946
  let functionNames = scope.getAllCallables().map(x => x.callable.name);
912
- chai_1.expect(functionNames).to.include('logInfo');
913
- chai_1.expect(functionNames).to.include('logWarning');
947
+ (0, chai_1.expect)(functionNames).to.include('logInfo');
948
+ (0, chai_1.expect)(functionNames).to.include('logWarning');
914
949
  //load d.bs file, which should shadow out the .brs file
915
- program.addOrReplaceFile('components/Component1.d.bs', `
950
+ program.setFile('components/Component1.d.bs', `
916
951
  sub logError()
917
952
  end sub
918
953
  `);
919
954
  functionNames = scope.getAllCallables().map(x => x.callable.name);
920
- chai_1.expect(functionNames).to.include('logError');
921
- chai_1.expect(functionNames).not.to.include('logInfo');
922
- chai_1.expect(functionNames).not.to.include('logWarning');
955
+ (0, chai_1.expect)(functionNames).to.include('logError');
956
+ (0, chai_1.expect)(functionNames).not.to.include('logInfo');
957
+ (0, chai_1.expect)(functionNames).not.to.include('logWarning');
923
958
  });
924
959
  it('updates xml scope when typedef disappears', () => {
925
- const xmlFile = program.addOrReplaceFile('components/Component1.xml', testHelpers_spec_1.trim `
960
+ const xmlFile = program.setFile('components/Component1.xml', (0, testHelpers_spec_1.trim) `
926
961
  <?xml version="1.0" encoding="utf-8" ?>
927
962
  <component name="Component1" extends="Scene">
928
963
  <script uri="Component1.brs" />
@@ -930,134 +965,145 @@ describe('XmlFile', () => {
930
965
  `);
931
966
  const scope = program.getScopesForFile(xmlFile)[0];
932
967
  //load brs file
933
- program.addOrReplaceFile('components/Component1.brs', `
968
+ program.setFile('components/Component1.brs', `
934
969
  sub logBrs()
935
970
  end sub
936
971
  `);
937
972
  //load d.bs file, which should shadow out the .brs file
938
- const typedef = program.addOrReplaceFile('components/Component1.d.bs', `
973
+ const typedef = program.setFile('components/Component1.d.bs', `
939
974
  sub logTypedef()
940
975
  end sub
941
976
  `);
942
977
  program.validate();
943
978
  let functionNames = scope.getOwnCallables().map(x => x.callable.name);
944
- chai_1.expect(functionNames).to.include('logTypedef');
945
- chai_1.expect(functionNames).not.to.include('logBrs');
979
+ (0, chai_1.expect)(functionNames).to.include('logTypedef');
980
+ (0, chai_1.expect)(functionNames).not.to.include('logBrs');
946
981
  //remove the typdef file
947
- program.removeFile(typedef.pathAbsolute);
982
+ program.removeFile(typedef.srcPath);
948
983
  program.validate();
949
984
  functionNames = scope.getOwnCallables().map(x => x.callable.name);
950
- chai_1.expect(functionNames).not.to.include('logTypedef');
951
- chai_1.expect(functionNames).to.include('logBrs');
985
+ (0, chai_1.expect)(functionNames).not.to.include('logTypedef');
986
+ (0, chai_1.expect)(functionNames).to.include('logBrs');
952
987
  });
953
988
  });
954
989
  it('finds script imports for single-quoted script tags', () => {
955
990
  var _a;
956
- const file = program.addOrReplaceFile('components/file.xml', testHelpers_spec_1.trim `
991
+ const file = program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
957
992
  <?xml version="1.0" encoding="utf-8" ?>
958
993
  <component name="Cmp1" extends="Scene">
959
994
  <script uri='SingleQuotedFile.brs' />
960
995
  </component>
961
996
  `);
962
- chai_1.expect((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.text).to.eql('SingleQuotedFile.brs');
997
+ (0, chai_1.expect)((_a = file.scriptTagImports[0]) === null || _a === void 0 ? void 0 : _a.text).to.eql('SingleQuotedFile.brs');
963
998
  });
964
999
  describe('commentFlags', () => {
965
1000
  it('ignores warning from previous line comment', () => {
966
1001
  //component without a name attribute
967
- program.addOrReplaceFile('components/file.xml', testHelpers_spec_1.trim `
1002
+ program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
968
1003
  <?xml version="1.0" encoding="utf-8" ?>
969
1004
  <!--bs:disable-next-line-->
970
1005
  <component>
971
1006
  </component>
972
1007
  `);
973
1008
  program.validate();
974
- testHelpers_spec_1.expectZeroDiagnostics(program);
1009
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
975
1010
  });
976
1011
  it('ignores warning from previous line just for the specified code', () => {
977
1012
  //component without a name attribute
978
- program.addOrReplaceFile('components/file.xml', testHelpers_spec_1.trim `
1013
+ program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
979
1014
  <?xml version="1.0" encoding="utf-8" ?>
980
1015
  <!--bs:disable-next-line 1006-->
981
1016
  <component>
982
1017
  </component>
983
1018
  `);
984
1019
  program.validate();
985
- chai_1.expect(program.getDiagnostics().map(x => x.message)).to.eql([
1020
+ (0, chai_1.expect)(program.getDiagnostics().map(x => x.message)).to.eql([
986
1021
  DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute().message
987
1022
  ]);
988
1023
  });
989
1024
  it('ignores warning from previous line comment', () => {
990
1025
  //component without a name attribute
991
- program.addOrReplaceFile('components/file.xml', testHelpers_spec_1.trim `
1026
+ program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
992
1027
  <?xml version="1.0" encoding="utf-8" ?>
993
1028
  <component> <!--bs:disable-line-->
994
1029
  </component>
995
1030
  `);
996
1031
  program.validate();
997
- testHelpers_spec_1.expectZeroDiagnostics(program);
1032
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
998
1033
  });
999
1034
  it('ignores warning from previous line just for the specified code', () => {
1000
1035
  //component without a name attribute
1001
- program.addOrReplaceFile('components/file.xml', testHelpers_spec_1.trim `
1036
+ program.setFile('components/file.xml', (0, testHelpers_spec_1.trim) `
1002
1037
  <?xml version="1.0" encoding="utf-8" ?>
1003
1038
  <component> <!--bs:disable-line 1006-->
1004
1039
  </component>
1005
1040
  `);
1006
1041
  program.validate();
1007
- chai_1.expect(program.getDiagnostics().map(x => x.message)).to.eql([
1042
+ (0, chai_1.expect)(program.getDiagnostics().map(x => x.message)).to.eql([
1008
1043
  DiagnosticMessages_1.DiagnosticMessages.xmlComponentMissingExtendsAttribute().message
1009
1044
  ]);
1010
1045
  });
1011
1046
  });
1047
+ it('includes single quotes in transpiled output', () => {
1048
+ testTranspile((0, testHelpers_spec_1.trim) `
1049
+ <?xml version="1.0" encoding="utf-8" ?>
1050
+ <component name="Cmp1" extends="Scene">
1051
+ <interface>
1052
+ <field id="test" type="assocarray" value='{"testA":"testA"}' />
1053
+ </interface>
1054
+ <script type="text/brightscript" uri="pkg:/source/bslib.brs" />
1055
+ </component>
1056
+ `, undefined, 'none', 'components/file.xml');
1057
+ });
1012
1058
  describe('duplicate components', () => {
1013
1059
  it('more gracefully handles multiple components with the same name', () => {
1014
- program.addOrReplaceFile('components/comp1.brs', ``);
1015
- program.addOrReplaceFile('components/comp1.xml', testHelpers_spec_1.trim `
1060
+ program.setFile('components/comp1.brs', ``);
1061
+ program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
1016
1062
  <?xml version="1.0" encoding="utf-8" ?>
1017
1063
  <component name="comp1" extends="Group">
1018
1064
  <script uri="comp1.brs" />
1019
1065
  </component>
1020
1066
  `);
1021
1067
  //add another component with the same name
1022
- program.addOrReplaceFile('components/comp2.brs', ``);
1023
- program.addOrReplaceFile('components/comp2.xml', testHelpers_spec_1.trim `
1068
+ program.setFile('components/comp2.brs', ``);
1069
+ program.setFile('components/comp2.xml', (0, testHelpers_spec_1.trim) `
1024
1070
  <?xml version="1.0" encoding="utf-8" ?>
1025
1071
  <component name="comp1" extends="Group">
1026
1072
  <script uri="comp2.brs" />
1027
1073
  </component>
1028
1074
  `);
1029
1075
  program.validate();
1030
- chai_1.expect(program.getDiagnostics().map(x => x.message).sort()).to.eql([
1076
+ (0, chai_1.expect)(program.getDiagnostics().map(x => x.message).sort()).to.eql([
1031
1077
  DiagnosticMessages_1.DiagnosticMessages.duplicateComponentName('comp1').message,
1032
1078
  DiagnosticMessages_1.DiagnosticMessages.duplicateComponentName('comp1').message
1033
1079
  ]);
1034
1080
  });
1035
1081
  it('maintains consistent component selection', () => {
1036
1082
  //add comp2 first
1037
- const comp2 = program.addOrReplaceFile('components/comp2.xml', testHelpers_spec_1.trim `
1083
+ const comp2 = program.setFile('components/comp2.xml', (0, testHelpers_spec_1.trim) `
1038
1084
  <?xml version="1.0" encoding="utf-8" ?>
1039
1085
  <component name="comp1">
1040
1086
  </component>
1041
1087
  `);
1042
- chai_1.expect(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
1088
+ (0, chai_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
1043
1089
  //add comp1. it should become the main component with this name
1044
- const comp1 = program.addOrReplaceFile('components/comp1.xml', testHelpers_spec_1.trim `
1090
+ const comp1 = program.setFile('components/comp1.xml', (0, testHelpers_spec_1.trim) `
1045
1091
  <?xml version="1.0" encoding="utf-8" ?>
1046
1092
  <component name="comp1" extends="Group">
1047
1093
  </component>
1048
1094
  `);
1049
- chai_1.expect(program.getComponent('comp1').file.pkgPath).to.equal(comp1.pkgPath);
1095
+ (0, chai_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp1.pkgPath);
1050
1096
  //remove comp1, comp2 should be the primary again
1051
- program.removeFile(util_1.standardizePath `${rootDir}/components/comp1.xml`);
1052
- chai_1.expect(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
1097
+ program.removeFile((0, util_1.standardizePath) `${rootDir}/components/comp1.xml`);
1098
+ (0, chai_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
1053
1099
  //add comp3
1054
- program.addOrReplaceFile('components/comp3.xml', testHelpers_spec_1.trim `
1100
+ program.setFile('components/comp3.xml', (0, testHelpers_spec_1.trim) `
1055
1101
  <?xml version="1.0" encoding="utf-8" ?>
1056
1102
  <component name="comp1">
1057
1103
  </component>
1058
1104
  `);
1059
1105
  //...the 2nd file should still be main
1060
- chai_1.expect(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
1106
+ (0, chai_1.expect)(program.getComponent('comp1').file.pkgPath).to.equal(comp2.pkgPath);
1061
1107
  });
1062
1108
  });
1063
1109
  });