brighterscript 1.0.0-alpha.47 → 1.0.0-alpha.49

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 (171) hide show
  1. package/README.md +7 -10
  2. package/bsconfig.schema.json +34 -7
  3. package/dist/AstValidationSegmenter.js +21 -3
  4. package/dist/AstValidationSegmenter.js.map +1 -1
  5. package/dist/BsConfig.d.ts +6 -35
  6. package/dist/CrossScopeValidator.d.ts +1 -0
  7. package/dist/CrossScopeValidator.js +28 -4
  8. package/dist/CrossScopeValidator.js.map +1 -1
  9. package/dist/DiagnosticMessages.d.ts +1 -1
  10. package/dist/DiagnosticMessages.js +20 -6
  11. package/dist/DiagnosticMessages.js.map +1 -1
  12. package/dist/LanguageServer.d.ts +22 -6
  13. package/dist/LanguageServer.js +62 -25
  14. package/dist/LanguageServer.js.map +1 -1
  15. package/dist/PluginInterface.js +4 -1
  16. package/dist/PluginInterface.js.map +1 -1
  17. package/dist/Program.d.ts +9 -3
  18. package/dist/Program.js +111 -74
  19. package/dist/Program.js.map +1 -1
  20. package/dist/ProgramBuilder.d.ts +0 -2
  21. package/dist/ProgramBuilder.js +10 -28
  22. package/dist/ProgramBuilder.js.map +1 -1
  23. package/dist/SymbolTable.js +3 -2
  24. package/dist/SymbolTable.js.map +1 -1
  25. package/dist/astUtils/reflection.d.ts +14 -2
  26. package/dist/astUtils/reflection.js +70 -18
  27. package/dist/astUtils/reflection.js.map +1 -1
  28. package/dist/astUtils/visitors.d.ts +2 -1
  29. package/dist/astUtils/visitors.js.map +1 -1
  30. package/dist/bscPlugin/CallExpressionInfo.js +9 -3
  31. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  32. package/dist/bscPlugin/completions/CompletionsProcessor.js +3 -0
  33. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  34. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +34 -1
  35. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  36. package/dist/bscPlugin/hover/HoverProcessor.spec.js +31 -0
  37. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  38. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js +10 -4
  39. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.js.map +1 -1
  40. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +17 -0
  41. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +1 -1
  42. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +5 -0
  43. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +71 -3
  44. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  45. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js +7 -7
  46. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.spec.js.map +1 -1
  47. package/dist/bscPlugin/validation/BrsFileValidator.js +43 -14
  48. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  49. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +99 -0
  50. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  51. package/dist/bscPlugin/validation/ScopeValidator.d.ts +1 -0
  52. package/dist/bscPlugin/validation/ScopeValidator.js +19 -4
  53. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  54. package/dist/bscPlugin/validation/ScopeValidator.spec.js +372 -0
  55. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  56. package/dist/cli.js +11 -18
  57. package/dist/cli.js.map +1 -1
  58. package/dist/files/BrsFile.Class.spec.js +336 -200
  59. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  60. package/dist/files/BrsFile.spec.js +168 -10
  61. package/dist/files/BrsFile.spec.js.map +1 -1
  62. package/dist/files/XmlFile.d.ts +7 -0
  63. package/dist/files/XmlFile.js +36 -0
  64. package/dist/files/XmlFile.js.map +1 -1
  65. package/dist/files/XmlFile.spec.js +7 -9
  66. package/dist/files/XmlFile.spec.js.map +1 -1
  67. package/dist/files/tests/imports.spec.js +3 -3
  68. package/dist/files/tests/imports.spec.js.map +1 -1
  69. package/dist/files/tests/optionalChaning.spec.js +1 -1
  70. package/dist/files/tests/optionalChaning.spec.js.map +1 -1
  71. package/dist/interfaces.d.ts +12 -4
  72. package/dist/interfaces.js.map +1 -1
  73. package/dist/lexer/Lexer.spec.js +12 -2
  74. package/dist/lexer/Lexer.spec.js.map +1 -1
  75. package/dist/lexer/TokenKind.js +6 -3
  76. package/dist/lexer/TokenKind.js.map +1 -1
  77. package/dist/lsp/LspProject.d.ts +17 -9
  78. package/dist/lsp/Project.d.ts +8 -7
  79. package/dist/lsp/Project.js +21 -23
  80. package/dist/lsp/Project.js.map +1 -1
  81. package/dist/lsp/Project.spec.js +44 -12
  82. package/dist/lsp/Project.spec.js.map +1 -1
  83. package/dist/lsp/ProjectManager.d.ts +31 -10
  84. package/dist/lsp/ProjectManager.js +130 -60
  85. package/dist/lsp/ProjectManager.js.map +1 -1
  86. package/dist/lsp/ProjectManager.spec.js +245 -115
  87. package/dist/lsp/ProjectManager.spec.js.map +1 -1
  88. package/dist/lsp/worker/WorkerThreadProject.d.ts +6 -7
  89. package/dist/lsp/worker/WorkerThreadProject.js +27 -21
  90. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
  91. package/dist/lsp/worker/WorkerThreadProject.spec.js +4 -1
  92. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +1 -1
  93. package/dist/lsp/worker/run.d.ts +1 -0
  94. package/dist/lsp/worker/run.js +14 -0
  95. package/dist/lsp/worker/run.js.map +1 -0
  96. package/dist/parser/AstNode.d.ts +8 -1
  97. package/dist/parser/AstNode.js +9 -0
  98. package/dist/parser/AstNode.js.map +1 -1
  99. package/dist/parser/AstNode.spec.js +1 -1
  100. package/dist/parser/AstNode.spec.js.map +1 -1
  101. package/dist/parser/Expression.d.ts +43 -0
  102. package/dist/parser/Expression.js +120 -7
  103. package/dist/parser/Expression.js.map +1 -1
  104. package/dist/parser/Parser.Class.spec.js +25 -0
  105. package/dist/parser/Parser.Class.spec.js.map +1 -1
  106. package/dist/parser/Parser.d.ts +4 -0
  107. package/dist/parser/Parser.js +117 -7
  108. package/dist/parser/Parser.js.map +1 -1
  109. package/dist/parser/Parser.spec.js +200 -1
  110. package/dist/parser/Parser.spec.js.map +1 -1
  111. package/dist/parser/Statement.d.ts +32 -1
  112. package/dist/parser/Statement.js +128 -64
  113. package/dist/parser/Statement.js.map +1 -1
  114. package/dist/parser/tests/statement/ConstStatement.spec.js +238 -0
  115. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  116. package/dist/roku-types/data.json +422 -64
  117. package/dist/roku-types/index.d.ts +50 -0
  118. package/dist/types/ArrayType.js +3 -0
  119. package/dist/types/ArrayType.js.map +1 -1
  120. package/dist/types/BscType.d.ts +4 -3
  121. package/dist/types/BscType.js +2 -4
  122. package/dist/types/BscType.js.map +1 -1
  123. package/dist/types/BscTypeKind.d.ts +2 -0
  124. package/dist/types/BscTypeKind.js +2 -0
  125. package/dist/types/BscTypeKind.js.map +1 -1
  126. package/dist/types/CallFuncableType.d.ts +24 -0
  127. package/dist/types/CallFuncableType.js +91 -0
  128. package/dist/types/CallFuncableType.js.map +1 -0
  129. package/dist/types/ComponentType.d.ts +3 -15
  130. package/dist/types/ComponentType.js +2 -56
  131. package/dist/types/ComponentType.js.map +1 -1
  132. package/dist/types/DoubleType.js +1 -1
  133. package/dist/types/DoubleType.js.map +1 -1
  134. package/dist/types/FloatType.js +1 -1
  135. package/dist/types/FloatType.js.map +1 -1
  136. package/dist/types/InlineInterfaceType.d.ts +5 -0
  137. package/dist/types/InlineInterfaceType.js +17 -0
  138. package/dist/types/InlineInterfaceType.js.map +1 -0
  139. package/dist/types/IntegerType.js +1 -1
  140. package/dist/types/IntegerType.js.map +1 -1
  141. package/dist/types/InterfaceType.d.ts +2 -2
  142. package/dist/types/InterfaceType.js +5 -4
  143. package/dist/types/InterfaceType.js.map +1 -1
  144. package/dist/types/LongIntegerType.js +1 -1
  145. package/dist/types/LongIntegerType.js.map +1 -1
  146. package/dist/types/ObjectType.d.ts +1 -0
  147. package/dist/types/ObjectType.js +3 -0
  148. package/dist/types/ObjectType.js.map +1 -1
  149. package/dist/types/ReferenceType.d.ts +3 -2
  150. package/dist/types/ReferenceType.js +54 -22
  151. package/dist/types/ReferenceType.js.map +1 -1
  152. package/dist/types/TypeStatementType.d.ts +18 -0
  153. package/dist/types/TypeStatementType.js +45 -0
  154. package/dist/types/TypeStatementType.js.map +1 -0
  155. package/dist/types/UnionType.d.ts +3 -0
  156. package/dist/types/UnionType.js +7 -0
  157. package/dist/types/UnionType.js.map +1 -1
  158. package/dist/types/UnionType.spec.js +43 -0
  159. package/dist/types/UnionType.spec.js.map +1 -1
  160. package/dist/types/roFunctionType.d.ts +11 -0
  161. package/dist/types/roFunctionType.js +37 -0
  162. package/dist/types/roFunctionType.js.map +1 -0
  163. package/dist/types/roFunctionType.spec.d.ts +1 -0
  164. package/dist/types/roFunctionType.spec.js +20 -0
  165. package/dist/types/roFunctionType.spec.js.map +1 -0
  166. package/dist/util.d.ts +9 -94
  167. package/dist/util.js +67 -305
  168. package/dist/util.js.map +1 -1
  169. package/dist/validators/ClassValidator.js +1 -1
  170. package/dist/validators/ClassValidator.js.map +1 -1
  171. package/package.json +3 -3
package/dist/Program.js CHANGED
@@ -43,11 +43,13 @@ const CrossScopeValidator_1 = require("./CrossScopeValidator");
43
43
  const DiagnosticManager_1 = require("./DiagnosticManager");
44
44
  const ProgramValidator_1 = require("./bscPlugin/validation/ProgramValidator");
45
45
  const SymbolTable_1 = require("./SymbolTable");
46
- const types_1 = require("./types");
46
+ const ReferenceType_1 = require("./types/ReferenceType");
47
+ const helpers_1 = require("./types/helpers");
47
48
  const CallExpressionInfo_1 = require("./bscPlugin/CallExpressionInfo");
48
49
  const SignatureHelpUtil_1 = require("./bscPlugin/SignatureHelpUtil");
49
50
  const Sequencer_1 = require("./common/Sequencer");
50
51
  const deferred_1 = require("./deferred");
52
+ const roFunctionType_1 = require("./types/roFunctionType");
51
53
  const bslibNonAliasedRokuModulesPkgPath = (0, util_1.standardizePath) `source/roku_modules/rokucommunity_bslib/bslib.brs`;
52
54
  const bslibAliasedRokuModulesPkgPath = (0, util_1.standardizePath) `source/roku_modules/bslib/bslib.brs`;
53
55
  class Program {
@@ -121,6 +123,12 @@ class Program {
121
123
  scopesToValidate: [],
122
124
  filesToBeValidatedInScopeContext: new Set()
123
125
  };
126
+ this.lastValidationInfo = {
127
+ brsFilesSrcPath: new Set(),
128
+ xmlFilesSrcPath: new Set(),
129
+ scopeNames: new Set(),
130
+ componentsRebuilt: new Set()
131
+ };
124
132
  /**
125
133
  * Counter used to track which validation run is being logged
126
134
  */
@@ -237,28 +245,36 @@ class Program {
237
245
  this.globalScope.symbolTable.addSymbol(callable.name, Object.assign(Object.assign({}, builtInSymbolData), { description: callable.shortDescription }), callable.type, 1 /* SymbolTypeFlag.runtime */);
238
246
  }
239
247
  for (const ifaceData of Object.values(roku_types_1.interfaces)) {
240
- const nodeType = new InterfaceType_1.InterfaceType(ifaceData.name);
241
- nodeType.addBuiltInInterfaces();
242
- nodeType.isBuiltIn = true;
243
- this.globalScope.symbolTable.addSymbol(ifaceData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: ifaceData.description }), nodeType, 2 /* SymbolTypeFlag.typetime */);
248
+ const ifaceType = new InterfaceType_1.InterfaceType(ifaceData.name);
249
+ ifaceType.addBuiltInInterfaces();
250
+ ifaceType.isBuiltIn = true;
251
+ this.globalScope.symbolTable.addSymbol(ifaceData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: ifaceData.description }), ifaceType, 2 /* SymbolTypeFlag.typetime */);
244
252
  }
245
253
  for (const componentData of Object.values(roku_types_1.components)) {
246
- const nodeType = new InterfaceType_1.InterfaceType(componentData.name);
247
- nodeType.addBuiltInInterfaces();
248
- nodeType.isBuiltIn = true;
249
- if (componentData.name !== 'roSGNode') {
254
+ let roComponentType;
255
+ const lowerComponentName = componentData.name.toLowerCase();
256
+ if (lowerComponentName === 'rosgnode') {
250
257
  // we will add `roSGNode` as shorthand for `roSGNodeNode`, since all roSgNode components are SceneGraph nodes
251
- this.globalScope.symbolTable.addSymbol(componentData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: componentData.description }), nodeType, 2 /* SymbolTypeFlag.typetime */);
258
+ continue;
259
+ }
260
+ if (lowerComponentName === 'rofunction') {
261
+ roComponentType = new roFunctionType_1.roFunctionType();
252
262
  }
263
+ else {
264
+ roComponentType = new InterfaceType_1.InterfaceType(componentData.name);
265
+ }
266
+ roComponentType.addBuiltInInterfaces();
267
+ roComponentType.isBuiltIn = true;
268
+ this.globalScope.symbolTable.addSymbol(componentData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: componentData.description }), roComponentType, 2 /* SymbolTypeFlag.typetime */);
253
269
  }
254
270
  for (const nodeData of Object.values(roku_types_1.nodes)) {
255
271
  this.recursivelyAddNodeToSymbolTable(nodeData);
256
272
  }
257
273
  for (const eventData of Object.values(roku_types_1.events)) {
258
- const nodeType = new InterfaceType_1.InterfaceType(eventData.name);
259
- nodeType.addBuiltInInterfaces();
260
- nodeType.isBuiltIn = true;
261
- this.globalScope.symbolTable.addSymbol(eventData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: eventData.description }), nodeType, 2 /* SymbolTypeFlag.typetime */);
274
+ const eventType = new InterfaceType_1.InterfaceType(eventData.name);
275
+ eventType.addBuiltInInterfaces();
276
+ eventType.isBuiltIn = true;
277
+ this.globalScope.symbolTable.addSymbol(eventData.name, Object.assign(Object.assign({}, builtInSymbolData), { description: eventData.description }), eventType, 2 /* SymbolTypeFlag.typetime */);
262
278
  }
263
279
  }
264
280
  addFileSymbolInfo(file) {
@@ -442,7 +458,7 @@ class Program {
442
458
  // There is a component that can be added,
443
459
  if (!this.componentsTable.hasSymbol(symbolName, 2 /* SymbolTypeFlag.typetime */)) {
444
460
  // it doesn't already exist in the table
445
- const componentRefType = new types_1.ReferenceType(symbolName, symbolName, 2 /* SymbolTypeFlag.typetime */, () => this.componentsTable);
461
+ const componentRefType = new ReferenceType_1.ReferenceType(symbolName, symbolName, 2 /* SymbolTypeFlag.typetime */, () => this.componentsTable);
446
462
  if (componentRefType) {
447
463
  this.componentsTable.addSymbol(symbolName, {}, componentRefType, 2 /* SymbolTypeFlag.typetime */);
448
464
  }
@@ -838,28 +854,13 @@ class Program {
838
854
  program: this
839
855
  });
840
856
  })
841
- //handle some component symbol stuff
842
- .forEach('addDeferredComponentTypeSymbolCreation', () => {
857
+ .once('get files to be validated', () => {
843
858
  filesToProcess = Object.values(this.files).sort((0, thenby_1.firstBy)(x => x.srcPath)).filter(x => !x.isValidated);
844
859
  for (const file of filesToProcess) {
845
860
  filesToBeValidatedInScopeContext.add(file);
846
861
  }
847
- //return the list of files that need to be processed
848
- return filesToProcess;
849
- }, (file) => {
850
- // cast a wide net for potential changes in components
851
- if ((0, reflection_1.isXmlFile)(file)) {
852
- this.addDeferredComponentTypeSymbolCreation(file);
853
- }
854
- else if ((0, reflection_1.isBrsFile)(file)) {
855
- for (const scope of this.getScopesForFile(file)) {
856
- if ((0, reflection_1.isXmlScope)(scope)) {
857
- this.addDeferredComponentTypeSymbolCreation(scope.xmlFile);
858
- }
859
- }
860
- }
861
862
  })
862
- .once('addComponentReferenceTypes', () => {
863
+ .once('add component reference types', () => {
863
864
  // Create reference component types for any component that changes
864
865
  for (let [componentKey, componentName] of this.componentSymbolsToUpdate.entries()) {
865
866
  this.addComponentReferenceType(componentKey, componentName);
@@ -893,9 +894,27 @@ class Program {
893
894
  file: file
894
895
  });
895
896
  })
896
- .once('Build component types for any component that changes', () => {
897
+ .forEach('do deferred component creation', () => [...brsFilesValidated, ...xmlFilesValidated], (file) => {
898
+ if ((0, reflection_1.isXmlFile)(file)) {
899
+ this.addDeferredComponentTypeSymbolCreation(file);
900
+ }
901
+ else if ((0, reflection_1.isBrsFile)(file)) {
902
+ const fileHasChanges = file.providedSymbols.changes.get(1 /* SymbolTypeFlag.runtime */).size > 0 || file.providedSymbols.changes.get(2 /* SymbolTypeFlag.typetime */).size > 0;
903
+ if (fileHasChanges) {
904
+ for (const scope of this.getScopesForFile(file)) {
905
+ if ((0, reflection_1.isXmlScope)(scope) && this.doesXmlFileRequireProvidedSymbols(scope.xmlFile, file.providedSymbols.changes)) {
906
+ this.addDeferredComponentTypeSymbolCreation(scope.xmlFile);
907
+ }
908
+ }
909
+ }
910
+ }
911
+ })
912
+ .once('build component types for any component that changes', () => {
897
913
  this.logger.time(logging_1.LogLevel.info, ['Build component types'], () => {
914
+ this.logger.debug(`Component Symbols to update:`, [...this.componentSymbolsToUpdate.entries()].sort());
915
+ this.lastValidationInfo.componentsRebuilt = new Set();
898
916
  for (let [componentKey, componentName] of this.componentSymbolsToUpdate.entries()) {
917
+ this.lastValidationInfo.componentsRebuilt.add(componentName === null || componentName === void 0 ? void 0 : componentName.toLowerCase());
899
918
  if (this.updateComponentSymbolInGlobalScope(componentKey, componentName)) {
900
919
  changedComponentTypes.push(util_1.util.getSgNodeTypeName(componentName).toLowerCase());
901
920
  }
@@ -967,20 +986,26 @@ class Program {
967
986
  }
968
987
  } while (foundDependentTypes);
969
988
  changedSymbols.set(2 /* SymbolTypeFlag.typetime */, new Set([...changedSymbols.get(2 /* SymbolTypeFlag.typetime */), ...changedTypeSymbols, ...dependentTypesChanged]));
989
+ this.lastValidationInfo.brsFilesSrcPath = new Set(this.validationDetails.brsFilesValidated.map(f => { var _a, _b; return (_b = (_a = f.srcPath) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : ''; }));
990
+ this.lastValidationInfo.xmlFilesSrcPath = new Set(this.validationDetails.xmlFilesValidated.map(f => { var _a, _b; return (_b = (_a = f.srcPath) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : ''; }));
970
991
  // can reset filesValidatedList, because they are no longer needed
971
992
  this.validationDetails.brsFilesValidated = [];
972
993
  this.validationDetails.xmlFilesValidated = [];
973
994
  })
974
- .once('tracks changed symbols and prepares files and scopes for validation.', () => {
995
+ .once('tracks changed symbols and prepares files and scopes for validation', () => {
975
996
  if (this.options.logLevel === logging_1.LogLevel.debug) {
976
997
  const changedRuntime = Array.from(changedSymbols.get(1 /* SymbolTypeFlag.runtime */)).sort();
977
998
  this.logger.debug('Changed Symbols (runTime):', changedRuntime.join(', '));
978
999
  const changedTypetime = Array.from(changedSymbols.get(2 /* SymbolTypeFlag.typetime */)).sort();
979
1000
  this.logger.debug('Changed Symbols (typeTime):', changedTypetime.join(', '));
980
1001
  }
981
- const scopesToCheck = this.getScopesForCrossScopeValidation(changedComponentTypes.length > 0);
1002
+ const didComponentChange = changedComponentTypes.length > 0;
1003
+ const didProvidedSymbolChange = changedSymbols.get(1 /* SymbolTypeFlag.runtime */).size > 0 || changedSymbols.get(2 /* SymbolTypeFlag.typetime */).size > 0;
1004
+ const scopesToCheck = this.getScopesForCrossScopeValidation(didComponentChange, didProvidedSymbolChange);
982
1005
  this.crossScopeValidation.buildComponentsMap();
983
- this.crossScopeValidation.addDiagnosticsForScopes(scopesToCheck);
1006
+ this.logger.time(logging_1.LogLevel.info, ['addDiagnosticsForScopes'], () => {
1007
+ this.crossScopeValidation.addDiagnosticsForScopes(scopesToCheck);
1008
+ });
984
1009
  const filesToRevalidate = this.crossScopeValidation.getFilesRequiringChangedSymbol(scopesToCheck, changedSymbols);
985
1010
  for (const file of filesToRevalidate) {
986
1011
  filesToBeValidatedInScopeContext.add(file);
@@ -1002,20 +1027,23 @@ class Program {
1002
1027
  }
1003
1028
  }
1004
1029
  })
1005
- .forEach('validate scopes', () => this.getSortedScopeNames(), (scopeName) => {
1030
+ .once('checking scopes to validate', () => {
1006
1031
  //sort the scope names so we get consistent results
1007
- let scope = this.scopes[scopeName];
1008
- if (scope.shouldValidate(this.currentScopeValidationOptions)) {
1009
- scopesToValidate.push(scope);
1010
- this.plugins.emit('beforeScopeValidate', {
1011
- program: this,
1012
- scope: scope
1013
- });
1032
+ for (const scopeName of this.getSortedScopeNames()) {
1033
+ let scope = this.scopes[scopeName];
1034
+ if (scope.shouldValidate(this.currentScopeValidationOptions)) {
1035
+ scopesToValidate.push(scope);
1036
+ }
1014
1037
  }
1038
+ this.lastValidationInfo.scopeNames = new Set(scopesToValidate.map(s => { var _a, _b; return (_b = (_a = s.name) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : ''; }));
1015
1039
  })
1016
- .forEach('validate scope', () => this.getSortedScopeNames(), (scopeName) => {
1017
- //sort the scope names so we get consistent results
1018
- let scope = this.scopes[scopeName];
1040
+ .forEach('beforeScopeValidate', () => scopesToValidate, (scope) => {
1041
+ this.plugins.emit('beforeScopeValidate', {
1042
+ program: this,
1043
+ scope: scope
1044
+ });
1045
+ })
1046
+ .forEach('validate scope', () => scopesToValidate, (scope) => {
1019
1047
  scope.validate(this.currentScopeValidationOptions);
1020
1048
  })
1021
1049
  .forEach('afterScopeValidate', () => scopesToValidate, (scope) => {
@@ -1068,23 +1096,32 @@ class Program {
1068
1096
  return sequencer.runSync();
1069
1097
  }
1070
1098
  }
1071
- logValidationMetrics(metrics) {
1072
- let logs = [];
1073
- for (const key in metrics) {
1074
- logs.push(`${key}=${chalk_1.default.yellow(metrics[key].toString())}`);
1075
- }
1076
- this.logger.info(`Validation Metrics: ${logs.join(', ')}`);
1077
- }
1078
- getScopesForCrossScopeValidation(someComponentTypeChanged = false) {
1099
+ getScopesForCrossScopeValidation(someComponentTypeChanged, didProvidedSymbolChange) {
1079
1100
  const scopesForCrossScopeValidation = [];
1080
1101
  for (let scopeName of this.getSortedScopeNames()) {
1081
1102
  let scope = this.scopes[scopeName];
1082
- if (this.globalScope !== scope && (someComponentTypeChanged || !scope.isValidated)) {
1103
+ if (this.globalScope === scope) {
1104
+ continue;
1105
+ }
1106
+ if (someComponentTypeChanged) {
1107
+ scopesForCrossScopeValidation.push(scope);
1108
+ }
1109
+ if (didProvidedSymbolChange && !scope.isValidated) {
1083
1110
  scopesForCrossScopeValidation.push(scope);
1084
1111
  }
1085
1112
  }
1086
1113
  return scopesForCrossScopeValidation;
1087
1114
  }
1115
+ doesXmlFileRequireProvidedSymbols(file, providedSymbolsByFlag) {
1116
+ for (const required of file.requiredSymbols) {
1117
+ const symbolNameLower = required.name.toLowerCase();
1118
+ const requiredSymbolIsProvided = providedSymbolsByFlag.get(required.flags).has(symbolNameLower);
1119
+ if (requiredSymbolIsProvided) {
1120
+ return true;
1121
+ }
1122
+ }
1123
+ return false;
1124
+ }
1088
1125
  /**
1089
1126
  * Flag all duplicate component names
1090
1127
  */
@@ -1515,14 +1552,14 @@ class Program {
1515
1552
  /**
1516
1553
  * Get the absolute output path for a file
1517
1554
  */
1518
- getOutputPath(file, stagingDir = this.getStagingDir()) {
1519
- return (0, util_1.standardizePath) `${stagingDir}/${file.pkgPath}`;
1555
+ getOutputPath(file, outDir = this.getOutDir()) {
1556
+ return (0, util_1.standardizePath) `${outDir}/${file.pkgPath}`;
1520
1557
  }
1521
- getStagingDir(stagingDir) {
1558
+ getOutDir(outDir) {
1522
1559
  var _a, _b;
1523
- let result = (_a = stagingDir !== null && stagingDir !== void 0 ? stagingDir : this.options.stagingDir) !== null && _a !== void 0 ? _a : this.options.stagingDir;
1560
+ let result = (_a = outDir !== null && outDir !== void 0 ? outDir : this.options.outDir) !== null && _a !== void 0 ? _a : this.options.outDir;
1524
1561
  if (!result) {
1525
- result = roku_deploy_1.rokuDeploy.getOptions(this.options).stagingDir;
1562
+ result = roku_deploy_1.rokuDeploy.getOptions(this.options).outDir;
1526
1563
  }
1527
1564
  result = (0, util_1.standardizePath) `${path.resolve((_b = this.options.cwd) !== null && _b !== void 0 ? _b : process.cwd(), result !== null && result !== void 0 ? result : '/')}`;
1528
1565
  return result;
@@ -1558,7 +1595,7 @@ class Program {
1558
1595
  });
1559
1596
  await this.plugins.emitAsync('beforePrepareProgram', programEvent);
1560
1597
  await this.plugins.emitAsync('prepareProgram', programEvent);
1561
- const stagingDir = this.getStagingDir();
1598
+ const outDir = this.getOutDir();
1562
1599
  const entries = [];
1563
1600
  for (const file of files) {
1564
1601
  const scope = this.getFirstScopeForFile(file);
@@ -1573,7 +1610,7 @@ class Program {
1573
1610
  file: file,
1574
1611
  editor: file.editor,
1575
1612
  scope: scope,
1576
- outputPath: this.getOutputPath(file, stagingDir)
1613
+ outputPath: this.getOutputPath(file, outDir)
1577
1614
  };
1578
1615
  await this.plugins.emitAsync('beforePrepareFile', event);
1579
1616
  await this.plugins.emitAsync('prepareFile', event);
@@ -1630,14 +1667,14 @@ class Program {
1630
1667
  /**
1631
1668
  * Write the entire project to disk
1632
1669
  */
1633
- async write(stagingDir, files) {
1670
+ async write(outDir, files) {
1634
1671
  const programEvent = await this.plugins.emitAsync('beforeWriteProgram', {
1635
1672
  program: this,
1636
1673
  files: files,
1637
- stagingDir: stagingDir
1674
+ outDir: outDir
1638
1675
  });
1639
- //empty the staging directory
1640
- await fsExtra.emptyDir(stagingDir);
1676
+ //empty the out directory
1677
+ await fsExtra.emptyDir(outDir);
1641
1678
  const serializedFiles = [...files]
1642
1679
  .map(([, serializedFiles]) => serializedFiles)
1643
1680
  .flat();
@@ -1646,7 +1683,7 @@ class Program {
1646
1683
  const event = await this.plugins.emitAsync('beforeWriteFile', {
1647
1684
  program: this,
1648
1685
  file: file,
1649
- outputPath: this.getOutputPath(file, stagingDir),
1686
+ outputPath: this.getOutputPath(file, outDir),
1650
1687
  processedFiles: new Set()
1651
1688
  });
1652
1689
  await this.plugins.emitAsync('writeFile', event);
@@ -1662,7 +1699,7 @@ class Program {
1662
1699
  //run a single build at a time
1663
1700
  await this.buildPipeline.run(async () => {
1664
1701
  var _a;
1665
- const stagingDir = this.getStagingDir(options === null || options === void 0 ? void 0 : options.stagingDir);
1702
+ const outDir = this.getOutDir(options === null || options === void 0 ? void 0 : options.outDir);
1666
1703
  const event = await this.plugins.emitAsync('beforeBuildProgram', {
1667
1704
  program: this,
1668
1705
  editor: this.editor,
@@ -1672,7 +1709,7 @@ class Program {
1672
1709
  event.files = await this.prepare(event.files);
1673
1710
  //stage the entire program
1674
1711
  const serializedFilesByFile = await this.serialize(event.files);
1675
- await this.write(stagingDir, serializedFilesByFile);
1712
+ await this.write(outDir, serializedFilesByFile);
1676
1713
  await this.plugins.emitAsync('afterBuildProgram', event);
1677
1714
  //undo all edits for the program
1678
1715
  this.editor.undoAll();
@@ -1681,11 +1718,11 @@ class Program {
1681
1718
  file.editor.undoAll();
1682
1719
  }
1683
1720
  });
1684
- this.logger.debug('Types Created', types_1.TypesCreated);
1721
+ this.logger.debug('Types Created', helpers_1.TypesCreated);
1685
1722
  let totalTypesCreated = 0;
1686
- for (const key in types_1.TypesCreated) {
1687
- if (types_1.TypesCreated.hasOwnProperty(key)) {
1688
- totalTypesCreated += types_1.TypesCreated[key];
1723
+ for (const key in helpers_1.TypesCreated) {
1724
+ if (helpers_1.TypesCreated.hasOwnProperty(key)) {
1725
+ totalTypesCreated += helpers_1.TypesCreated[key];
1689
1726
  }
1690
1727
  }
1691
1728
  this.logger.info('Total Types Created', totalTypesCreated);
@@ -1 +1 @@
1
- {"version":3,"file":"Program.js","sourceRoot":"","sources":["../src/Program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Program.js","sourceRoot":"","sources":["../src/Program.ts"],"names":[],"mappings":"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"}