@angular/compiler-cli 9.1.3 → 9.1.7

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 (74) hide show
  1. package/ngcc/index.d.ts +2 -1
  2. package/ngcc/index.js +1 -1
  3. package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +35 -9
  4. package/ngcc/src/analysis/module_with_providers_analyzer.js +101 -16
  5. package/ngcc/src/dependencies/dts_dependency_host.d.ts +1 -1
  6. package/ngcc/src/dependencies/dts_dependency_host.js +1 -1
  7. package/ngcc/src/dependencies/module_resolver.d.ts +1 -1
  8. package/ngcc/src/dependencies/module_resolver.js +1 -1
  9. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.d.ts +1 -1
  10. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +1 -1
  11. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.d.ts +15 -8
  12. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +86 -54
  13. package/ngcc/src/entry_point_finder/utils.d.ts +10 -1
  14. package/ngcc/src/entry_point_finder/utils.js +78 -28
  15. package/ngcc/src/execution/api.d.ts +3 -2
  16. package/ngcc/src/execution/api.js +1 -1
  17. package/ngcc/src/execution/cluster/api.d.ts +6 -1
  18. package/ngcc/src/execution/cluster/api.js +1 -1
  19. package/ngcc/src/execution/cluster/executor.d.ts +3 -1
  20. package/ngcc/src/execution/cluster/executor.js +4 -3
  21. package/ngcc/src/execution/cluster/master.d.ts +6 -1
  22. package/ngcc/src/execution/cluster/master.js +63 -19
  23. package/ngcc/src/execution/cluster/utils.d.ts +4 -2
  24. package/ngcc/src/execution/cluster/utils.js +13 -7
  25. package/ngcc/src/execution/cluster/worker.js +59 -29
  26. package/ngcc/src/execution/create_compile_function.d.ts +3 -3
  27. package/ngcc/src/execution/create_compile_function.js +14 -16
  28. package/ngcc/src/execution/single_process_executor.js +3 -3
  29. package/ngcc/src/execution/tasks/api.d.ts +10 -1
  30. package/ngcc/src/execution/tasks/api.js +1 -1
  31. package/ngcc/src/execution/tasks/queues/base_task_queue.d.ts +2 -1
  32. package/ngcc/src/execution/tasks/queues/base_task_queue.js +11 -4
  33. package/ngcc/src/execution/tasks/queues/parallel_task_queue.d.ts +1 -1
  34. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +3 -3
  35. package/ngcc/src/host/commonjs_host.js +6 -3
  36. package/ngcc/src/host/delegating_host.d.ts +1 -2
  37. package/ngcc/src/host/delegating_host.js +1 -4
  38. package/ngcc/src/host/esm2015_host.d.ts +96 -24
  39. package/ngcc/src/host/esm2015_host.js +320 -110
  40. package/ngcc/src/host/esm5_host.d.ts +0 -14
  41. package/ngcc/src/host/esm5_host.js +3 -35
  42. package/ngcc/src/host/ngcc_host.d.ts +1 -32
  43. package/ngcc/src/host/ngcc_host.js +1 -1
  44. package/ngcc/src/host/umd_host.js +14 -5
  45. package/ngcc/src/host/utils.d.ts +10 -0
  46. package/ngcc/src/host/utils.js +25 -0
  47. package/ngcc/src/main.js +13 -10
  48. package/ngcc/src/ngcc_options.d.ts +4 -10
  49. package/ngcc/src/ngcc_options.js +10 -18
  50. package/ngcc/src/packages/build_marker.d.ts +1 -1
  51. package/ngcc/src/packages/build_marker.js +1 -1
  52. package/ngcc/src/packages/entry_point_bundle.d.ts +1 -1
  53. package/ngcc/src/packages/entry_point_bundle.js +1 -1
  54. package/ngcc/src/packages/transformer.js +2 -2
  55. package/ngcc/src/path_mappings.d.ts +20 -0
  56. package/ngcc/src/path_mappings.js +34 -0
  57. package/ngcc/src/rendering/esm_rendering_formatter.js +2 -2
  58. package/ngcc/src/writing/file_writer.d.ts +13 -1
  59. package/ngcc/src/writing/file_writer.js +1 -1
  60. package/ngcc/src/writing/in_place_file_writer.d.ts +4 -2
  61. package/ngcc/src/writing/in_place_file_writer.js +28 -2
  62. package/ngcc/src/writing/new_entry_point_file_writer.d.ts +3 -0
  63. package/ngcc/src/writing/new_entry_point_file_writer.js +69 -4
  64. package/package.json +2 -2
  65. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -0
  66. package/src/ngtsc/partial_evaluator/src/interpreter.js +25 -1
  67. package/src/ngtsc/partial_evaluator/src/result.d.ts +2 -2
  68. package/src/ngtsc/partial_evaluator/src/result.js +1 -1
  69. package/src/ngtsc/reflection/src/host.d.ts +32 -0
  70. package/src/ngtsc/reflection/src/host.js +1 -1
  71. package/src/ngtsc/reflection/src/typescript.js +3 -1
  72. package/src/ngtsc/typecheck/src/expression.js +18 -5
  73. package/src/ngtsc/typecheck/src/type_check_block.js +4 -2
  74. package/src/version.js +1 -1
@@ -12,7 +12,7 @@
12
12
  if (v !== undefined) module.exports = v;
13
13
  }
14
14
  else if (typeof define === "function" && define.amd) {
15
- define("@angular/compiler-cli/ngcc/src/execution/cluster/worker", ["require", "exports", "tslib", "cluster", "@angular/compiler-cli/ngcc/src/command_line_options", "@angular/compiler-cli/ngcc/src/logging/console_logger", "@angular/compiler-cli/ngcc/src/logging/logger", "@angular/compiler-cli/ngcc/src/ngcc_options", "@angular/compiler-cli/ngcc/src/execution/create_compile_function", "@angular/compiler-cli/ngcc/src/execution/tasks/utils", "@angular/compiler-cli/ngcc/src/execution/cluster/package_json_updater", "@angular/compiler-cli/ngcc/src/execution/cluster/utils"], factory);
15
+ define("@angular/compiler-cli/ngcc/src/execution/cluster/worker", ["require", "exports", "tslib", "cluster", "@angular/compiler-cli/ngcc/src/command_line_options", "@angular/compiler-cli/ngcc/src/ngcc_options", "@angular/compiler-cli/ngcc/src/execution/create_compile_function", "@angular/compiler-cli/ngcc/src/execution/tasks/utils", "@angular/compiler-cli/ngcc/src/execution/cluster/package_json_updater", "@angular/compiler-cli/ngcc/src/execution/cluster/utils"], factory);
16
16
  }
17
17
  })(function (require, exports) {
18
18
  "use strict";
@@ -20,8 +20,6 @@
20
20
  var tslib_1 = require("tslib");
21
21
  var cluster = require("cluster");
22
22
  var command_line_options_1 = require("@angular/compiler-cli/ngcc/src/command_line_options");
23
- var console_logger_1 = require("@angular/compiler-cli/ngcc/src/logging/console_logger");
24
- var logger_1 = require("@angular/compiler-cli/ngcc/src/logging/logger");
25
23
  var ngcc_options_1 = require("@angular/compiler-cli/ngcc/src/ngcc_options");
26
24
  var create_compile_function_1 = require("@angular/compiler-cli/ngcc/src/execution/create_compile_function");
27
25
  var utils_1 = require("@angular/compiler-cli/ngcc/src/execution/tasks/utils");
@@ -30,24 +28,25 @@
30
28
  // Cluster worker entry point
31
29
  if (require.main === module) {
32
30
  (function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
33
- var _a, _b, createNewEntryPointFormats, _c, logger, pathMappings, _d, errorOnFailedEntryPoint, _e, enableI18nLegacyMessageIdFormat, fileSystem, tsConfig, pkgJsonUpdater, createCompileFn, e_1;
34
- return tslib_1.__generator(this, function (_f) {
35
- switch (_f.label) {
31
+ var _a, logger, pathMappings, enableI18nLegacyMessageIdFormat, fileSystem, tsConfig, getFileWriter, pkgJsonUpdater, fileWriter, createCompileFn, e_1;
32
+ return tslib_1.__generator(this, function (_b) {
33
+ switch (_b.label) {
36
34
  case 0:
37
35
  process.title = 'ngcc (worker)';
38
- _f.label = 1;
36
+ _b.label = 1;
39
37
  case 1:
40
- _f.trys.push([1, 3, , 4]);
41
- _a = ngcc_options_1.getSharedSetup(command_line_options_1.parseCommandLineOptions(process.argv.slice(2))), _b = _a.createNewEntryPointFormats, createNewEntryPointFormats = _b === void 0 ? false : _b, _c = _a.logger, logger = _c === void 0 ? new console_logger_1.ConsoleLogger(logger_1.LogLevel.info) : _c, pathMappings = _a.pathMappings, _d = _a.errorOnFailedEntryPoint, errorOnFailedEntryPoint = _d === void 0 ? false : _d, _e = _a.enableI18nLegacyMessageIdFormat, enableI18nLegacyMessageIdFormat = _e === void 0 ? true : _e, fileSystem = _a.fileSystem, tsConfig = _a.tsConfig;
38
+ _b.trys.push([1, 3, , 4]);
39
+ _a = ngcc_options_1.getSharedSetup(command_line_options_1.parseCommandLineOptions(process.argv.slice(2))), logger = _a.logger, pathMappings = _a.pathMappings, enableI18nLegacyMessageIdFormat = _a.enableI18nLegacyMessageIdFormat, fileSystem = _a.fileSystem, tsConfig = _a.tsConfig, getFileWriter = _a.getFileWriter;
42
40
  pkgJsonUpdater = new package_json_updater_1.ClusterWorkerPackageJsonUpdater();
43
- createCompileFn = create_compile_function_1.getCreateCompileFn(fileSystem, logger, pkgJsonUpdater, createNewEntryPointFormats, errorOnFailedEntryPoint, enableI18nLegacyMessageIdFormat, tsConfig, pathMappings);
41
+ fileWriter = getFileWriter(pkgJsonUpdater);
42
+ createCompileFn = create_compile_function_1.getCreateCompileFn(fileSystem, logger, fileWriter, enableI18nLegacyMessageIdFormat, tsConfig, pathMappings);
44
43
  return [4 /*yield*/, startWorker(logger, createCompileFn)];
45
44
  case 2:
46
- _f.sent();
45
+ _b.sent();
47
46
  process.exitCode = 0;
48
47
  return [3 /*break*/, 4];
49
48
  case 3:
50
- e_1 = _f.sent();
49
+ e_1 = _b.sent();
51
50
  console.error(e_1.stack || e_1.message);
52
51
  process.exit(1);
53
52
  return [3 /*break*/, 4];
@@ -59,29 +58,60 @@
59
58
  function startWorker(logger, createCompileFn) {
60
59
  return tslib_1.__awaiter(this, void 0, void 0, function () {
61
60
  var compile;
61
+ var _this = this;
62
62
  return tslib_1.__generator(this, function (_a) {
63
63
  if (cluster.isMaster) {
64
64
  throw new Error('Tried to run cluster worker on the master process.');
65
65
  }
66
- compile = createCompileFn(function (_task, outcome, message) { return utils_2.sendMessageToMaster({ type: 'task-completed', outcome: outcome, message: message }); });
66
+ compile = createCompileFn(function (transformedFiles) { return utils_2.sendMessageToMaster({
67
+ type: 'transformed-files',
68
+ files: transformedFiles.map(function (f) { return f.path; }),
69
+ }); }, function (_task, outcome, message) { return utils_2.sendMessageToMaster({ type: 'task-completed', outcome: outcome, message: message }); });
67
70
  // Listen for `ProcessTaskMessage`s and process tasks.
68
- cluster.worker.on('message', function (msg) {
69
- try {
70
- switch (msg.type) {
71
- case 'process-task':
71
+ cluster.worker.on('message', function (msg) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
72
+ var _a, err_1, _b;
73
+ return tslib_1.__generator(this, function (_c) {
74
+ switch (_c.label) {
75
+ case 0:
76
+ _c.trys.push([0, 5, , 10]);
77
+ _a = msg.type;
78
+ switch (_a) {
79
+ case 'process-task': return [3 /*break*/, 1];
80
+ }
81
+ return [3 /*break*/, 3];
82
+ case 1:
72
83
  logger.debug("[Worker #" + cluster.worker.id + "] Processing task: " + utils_1.stringifyTask(msg.task));
73
- return compile(msg.task);
74
- default:
75
- throw new Error("[Worker #" + cluster.worker.id + "] Invalid message received: " + JSON.stringify(msg));
84
+ return [4 /*yield*/, compile(msg.task)];
85
+ case 2: return [2 /*return*/, _c.sent()];
86
+ case 3: throw new Error("[Worker #" + cluster.worker.id + "] Invalid message received: " + JSON.stringify(msg));
87
+ case 4: return [3 /*break*/, 10];
88
+ case 5:
89
+ err_1 = _c.sent();
90
+ _b = err_1 && err_1.code;
91
+ switch (_b) {
92
+ case 'ENOMEM': return [3 /*break*/, 6];
93
+ }
94
+ return [3 /*break*/, 7];
95
+ case 6:
96
+ // Not being able to allocate enough memory is not necessarily a problem with processing
97
+ // the current task. It could just mean that there are too many tasks being processed
98
+ // simultaneously.
99
+ //
100
+ // Exit with an error and let the cluster master decide how to handle this.
101
+ logger.warn("[Worker #" + cluster.worker.id + "] " + (err_1.stack || err_1.message));
102
+ return [2 /*return*/, process.exit(1)];
103
+ case 7: return [4 /*yield*/, utils_2.sendMessageToMaster({
104
+ type: 'error',
105
+ error: (err_1 instanceof Error) ? (err_1.stack || err_1.message) : err_1,
106
+ })];
107
+ case 8:
108
+ _c.sent();
109
+ _c.label = 9;
110
+ case 9: return [3 /*break*/, 10];
111
+ case 10: return [2 /*return*/];
76
112
  }
77
- }
78
- catch (err) {
79
- utils_2.sendMessageToMaster({
80
- type: 'error',
81
- error: (err instanceof Error) ? (err.stack || err.message) : err,
82
- });
83
- }
84
- });
113
+ });
114
+ }); });
85
115
  // Return a promise that is never resolved.
86
116
  return [2 /*return*/, new Promise(function () { return undefined; })];
87
117
  });
@@ -89,4 +119,4 @@
89
119
  }
90
120
  exports.startWorker = startWorker;
91
121
  });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2V4ZWN1dGlvbi9jbHVzdGVyL3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCw4QkFBOEI7Ozs7Ozs7Ozs7Ozs7SUFFOUIsaUNBQW1DO0lBRW5DLDRGQUFtRTtJQUNuRSx3RkFBMkQ7SUFDM0Qsd0VBQXNEO0lBQ3RELDRFQUFrRDtJQUVsRCw0R0FBOEQ7SUFDOUQsOEVBQTZDO0lBRzdDLDhHQUF1RTtJQUN2RSxnRkFBNEM7SUFFNUMsNkJBQTZCO0lBQzdCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7UUFDM0IsQ0FBQzs7Ozs7d0JBQ0MsT0FBTyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7Ozs7d0JBR3hCLEtBUUYsNkJBQWMsQ0FBQyw4Q0FBdUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBUGhFLGtDQUFrQyxFQUFsQywwQkFBMEIsbUJBQUcsS0FBSyxLQUFBLEVBQ2xDLGNBQXlDLEVBQXpDLE1BQU0sbUJBQUcsSUFBSSw4QkFBYSxDQUFDLGlCQUFRLENBQUMsSUFBSSxDQUFDLEtBQUEsRUFDekMsWUFBWSxrQkFBQSxFQUNaLCtCQUErQixFQUEvQix1QkFBdUIsbUJBQUcsS0FBSyxLQUFBLEVBQy9CLHVDQUFzQyxFQUF0QywrQkFBK0IsbUJBQUcsSUFBSSxLQUFBLEVBQ3RDLFVBQVUsZ0JBQUEsRUFDVixRQUFRLGNBQUEsQ0FDeUQ7d0JBSzdELGNBQWMsR0FBRyxJQUFJLHNEQUErQixFQUFFLENBQUM7d0JBR3ZELGVBQWUsR0FBRyw0Q0FBa0IsQ0FDdEMsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQ3ZGLCtCQUErQixFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQzt3QkFFN0QscUJBQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBQTs7d0JBQTFDLFNBQTBDLENBQUM7d0JBQzNDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDOzs7O3dCQUVyQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUMsQ0FBQyxLQUFLLElBQUksR0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOzs7OzthQUVuQixDQUFDLEVBQUUsQ0FBQztLQUNOO0lBRUQsU0FBc0IsV0FBVyxDQUFDLE1BQWMsRUFBRSxlQUFnQzs7OztnQkFDaEYsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO29CQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7aUJBQ3ZFO2dCQUVLLE9BQU8sR0FBRyxlQUFlLENBQzNCLFVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUssT0FBQSwyQkFBbUIsQ0FBQyxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLFNBQUEsRUFBRSxPQUFPLFNBQUEsRUFBQyxDQUFDLEVBQS9ELENBQStELENBQUMsQ0FBQztnQkFHbEcsc0RBQXNEO2dCQUN0RCxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBQyxHQUFvQjtvQkFDaEQsSUFBSTt3QkFDRixRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUU7NEJBQ2hCLEtBQUssY0FBYztnQ0FDakIsTUFBTSxDQUFDLEtBQUssQ0FDUixjQUFZLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSwyQkFBc0IscUJBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFHLENBQUMsQ0FBQztnQ0FDbEYsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUMzQjtnQ0FDRSxNQUFNLElBQUksS0FBSyxDQUNYLGNBQVksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLG9DQUErQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBRyxDQUFDLENBQUM7eUJBQzFGO3FCQUNGO29CQUFDLE9BQU8sR0FBRyxFQUFFO3dCQUNaLDJCQUFtQixDQUFDOzRCQUNsQixJQUFJLEVBQUUsT0FBTzs0QkFDYixLQUFLLEVBQUUsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7eUJBQ2pFLENBQUMsQ0FBQztxQkFDSjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCwyQ0FBMkM7Z0JBQzNDLHNCQUFPLElBQUksT0FBTyxDQUFDLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUyxDQUFDLEVBQUM7OztLQUNyQztJQS9CRCxrQ0ErQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5vZGVcIiAvPlxuXG5pbXBvcnQgKiBhcyBjbHVzdGVyIGZyb20gJ2NsdXN0ZXInO1xuXG5pbXBvcnQge3BhcnNlQ29tbWFuZExpbmVPcHRpb25zfSBmcm9tICcuLi8uLi9jb21tYW5kX2xpbmVfb3B0aW9ucyc7XG5pbXBvcnQge0NvbnNvbGVMb2dnZXJ9IGZyb20gJy4uLy4uL2xvZ2dpbmcvY29uc29sZV9sb2dnZXInO1xuaW1wb3J0IHtMb2dnZXIsIExvZ0xldmVsfSBmcm9tICcuLi8uLi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge2dldFNoYXJlZFNldHVwfSBmcm9tICcuLi8uLi9uZ2NjX29wdGlvbnMnO1xuaW1wb3J0IHtDcmVhdGVDb21waWxlRm59IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQge2dldENyZWF0ZUNvbXBpbGVGbn0gZnJvbSAnLi4vY3JlYXRlX2NvbXBpbGVfZnVuY3Rpb24nO1xuaW1wb3J0IHtzdHJpbmdpZnlUYXNrfSBmcm9tICcuLi90YXNrcy91dGlscyc7XG5cbmltcG9ydCB7TWVzc2FnZVRvV29ya2VyfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge0NsdXN0ZXJXb3JrZXJQYWNrYWdlSnNvblVwZGF0ZXJ9IGZyb20gJy4vcGFja2FnZV9qc29uX3VwZGF0ZXInO1xuaW1wb3J0IHtzZW5kTWVzc2FnZVRvTWFzdGVyfSBmcm9tICcuL3V0aWxzJztcblxuLy8gQ2x1c3RlciB3b3JrZXIgZW50cnkgcG9pbnRcbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICAoYXN5bmMgKCkgPT4ge1xuICAgIHByb2Nlc3MudGl0bGUgPSAnbmdjYyAod29ya2VyKSc7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBjcmVhdGVOZXdFbnRyeVBvaW50Rm9ybWF0cyA9IGZhbHNlLFxuICAgICAgICBsb2dnZXIgPSBuZXcgQ29uc29sZUxvZ2dlcihMb2dMZXZlbC5pbmZvKSxcbiAgICAgICAgcGF0aE1hcHBpbmdzLFxuICAgICAgICBlcnJvck9uRmFpbGVkRW50cnlQb2ludCA9IGZhbHNlLFxuICAgICAgICBlbmFibGVJMThuTGVnYWN5TWVzc2FnZUlkRm9ybWF0ID0gdHJ1ZSxcbiAgICAgICAgZmlsZVN5c3RlbSxcbiAgICAgICAgdHNDb25maWdcbiAgICAgIH0gPSBnZXRTaGFyZWRTZXR1cChwYXJzZUNvbW1hbmRMaW5lT3B0aW9ucyhwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpKTtcblxuICAgICAgLy8gTk9URTogVG8gYXZvaWQgZmlsZSBjb3JydXB0aW9uLCBgbmdjY2AgaW52b2NhdGlvbiBvbmx5IGNyZWF0ZXMgX29uZV8gaW5zdGFuY2Ugb2ZcbiAgICAgIC8vIGBQYWNrYWdlSnNvblVwZGF0ZXJgIHRoYXQgYWN0dWFsbHkgd3JpdGVzIHRvIGRpc2sgKGFjcm9zcyBhbGwgcHJvY2Vzc2VzKS5cbiAgICAgIC8vIEluIGNsdXN0ZXIgd29ya2VycyB3ZSB1c2UgYSBgUGFja2FnZUpzb25VcGRhdGVyYCB0aGF0IGRlbGVnYXRlcyB0byB0aGUgY2x1c3RlciBtYXN0ZXIuXG4gICAgICBjb25zdCBwa2dKc29uVXBkYXRlciA9IG5ldyBDbHVzdGVyV29ya2VyUGFja2FnZUpzb25VcGRhdGVyKCk7XG5cbiAgICAgIC8vIFRoZSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgdGhlIGBjb21waWxlKClgIGZ1bmN0aW9uLlxuICAgICAgY29uc3QgY3JlYXRlQ29tcGlsZUZuID0gZ2V0Q3JlYXRlQ29tcGlsZUZuKFxuICAgICAgICAgIGZpbGVTeXN0ZW0sIGxvZ2dlciwgcGtnSnNvblVwZGF0ZXIsIGNyZWF0ZU5ld0VudHJ5UG9pbnRGb3JtYXRzLCBlcnJvck9uRmFpbGVkRW50cnlQb2ludCxcbiAgICAgICAgICBlbmFibGVJMThuTGVnYWN5TWVzc2FnZUlkRm9ybWF0LCB0c0NvbmZpZywgcGF0aE1hcHBpbmdzKTtcblxuICAgICAgYXdhaXQgc3RhcnRXb3JrZXIobG9nZ2VyLCBjcmVhdGVDb21waWxlRm4pO1xuICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IDA7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlLnN0YWNrIHx8IGUubWVzc2FnZSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICB9KSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRXb3JrZXIobG9nZ2VyOiBMb2dnZXIsIGNyZWF0ZUNvbXBpbGVGbjogQ3JlYXRlQ29tcGlsZUZuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChjbHVzdGVyLmlzTWFzdGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUcmllZCB0byBydW4gY2x1c3RlciB3b3JrZXIgb24gdGhlIG1hc3RlciBwcm9jZXNzLicpO1xuICB9XG5cbiAgY29uc3QgY29tcGlsZSA9IGNyZWF0ZUNvbXBpbGVGbihcbiAgICAgIChfdGFzaywgb3V0Y29tZSwgbWVzc2FnZSkgPT4gc2VuZE1lc3NhZ2VUb01hc3Rlcih7dHlwZTogJ3Rhc2stY29tcGxldGVkJywgb3V0Y29tZSwgbWVzc2FnZX0pKTtcblxuXG4gIC8vIExpc3RlbiBmb3IgYFByb2Nlc3NUYXNrTWVzc2FnZWBzIGFuZCBwcm9jZXNzIHRhc2tzLlxuICBjbHVzdGVyLndvcmtlci5vbignbWVzc2FnZScsIChtc2c6IE1lc3NhZ2VUb1dvcmtlcikgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzd2l0Y2ggKG1zZy50eXBlKSB7XG4gICAgICAgIGNhc2UgJ3Byb2Nlc3MtdGFzayc6XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgW1dvcmtlciAjJHtjbHVzdGVyLndvcmtlci5pZH1dIFByb2Nlc3NpbmcgdGFzazogJHtzdHJpbmdpZnlUYXNrKG1zZy50YXNrKX1gKTtcbiAgICAgICAgICByZXR1cm4gY29tcGlsZShtc2cudGFzayk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgW1dvcmtlciAjJHtjbHVzdGVyLndvcmtlci5pZH1dIEludmFsaWQgbWVzc2FnZSByZWNlaXZlZDogJHtKU09OLnN0cmluZ2lmeShtc2cpfWApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2VuZE1lc3NhZ2VUb01hc3Rlcih7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIGVycm9yOiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpID8gKGVyci5zdGFjayB8fCBlcnIubWVzc2FnZSkgOiBlcnIsXG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFJldHVybiBhIHByb21pc2UgdGhhdCBpcyBuZXZlciByZXNvbHZlZC5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHVuZGVmaW5lZCk7XG59Il19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2V4ZWN1dGlvbi9jbHVzdGVyL3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCw4QkFBOEI7Ozs7Ozs7Ozs7Ozs7SUFFOUIsaUNBQW1DO0lBRW5DLDRGQUFtRTtJQUduRSw0RUFBa0Q7SUFFbEQsNEdBQThEO0lBQzlELDhFQUE2QztJQUc3Qyw4R0FBdUU7SUFDdkUsZ0ZBQTRDO0lBRTVDLDZCQUE2QjtJQUM3QixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1FBQzNCLENBQUM7Ozs7O3dCQUNDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDOzs7O3dCQUd4QixLQU9GLDZCQUFjLENBQUMsOENBQXVCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQU5oRSxNQUFNLFlBQUEsRUFDTixZQUFZLGtCQUFBLEVBQ1osK0JBQStCLHFDQUFBLEVBQy9CLFVBQVUsZ0JBQUEsRUFDVixRQUFRLGNBQUEsRUFDUixhQUFhLG1CQUFBLENBQ29EO3dCQUs3RCxjQUFjLEdBQUcsSUFBSSxzREFBK0IsRUFBRSxDQUFDO3dCQUN2RCxVQUFVLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUczQyxlQUFlLEdBQUcsNENBQWtCLENBQ3RDLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLCtCQUErQixFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQzt3QkFFN0YscUJBQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsRUFBQTs7d0JBQTFDLFNBQTBDLENBQUM7d0JBQzNDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDOzs7O3dCQUVyQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUMsQ0FBQyxLQUFLLElBQUksR0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOzs7OzthQUVuQixDQUFDLEVBQUUsQ0FBQztLQUNOO0lBRUQsU0FBc0IsV0FBVyxDQUFDLE1BQWMsRUFBRSxlQUFnQzs7Ozs7Z0JBQ2hGLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtvQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO2lCQUN2RTtnQkFFSyxPQUFPLEdBQUcsZUFBZSxDQUMzQixVQUFBLGdCQUFnQixJQUFJLE9BQUEsMkJBQW1CLENBQUM7b0JBQ3RDLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFOLENBQU0sQ0FBQztpQkFDekMsQ0FBQyxFQUhrQixDQUdsQixFQUNGLFVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUssT0FBQSwyQkFBbUIsQ0FBQyxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLFNBQUEsRUFBRSxPQUFPLFNBQUEsRUFBQyxDQUFDLEVBQS9ELENBQStELENBQUMsQ0FBQztnQkFHbEcsc0RBQXNEO2dCQUN0RCxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBTyxHQUFvQjs7Ozs7O2dDQUU1QyxLQUFBLEdBQUcsQ0FBQyxJQUFJLENBQUE7O3lDQUNULGNBQWMsQ0FBQyxDQUFmLHdCQUFjOzs7O2dDQUNqQixNQUFNLENBQUMsS0FBSyxDQUNSLGNBQVksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLDJCQUFzQixxQkFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUcsQ0FBQyxDQUFDO2dDQUMzRSxxQkFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFBO29DQUE5QixzQkFBTyxTQUF1QixFQUFDO29DQUUvQixNQUFNLElBQUksS0FBSyxDQUNYLGNBQVksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLG9DQUErQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBRyxDQUFDLENBQUM7Ozs7Z0NBR25GLEtBQUEsS0FBRyxJQUFJLEtBQUcsQ0FBQyxJQUFJLENBQUE7O3lDQUNoQixRQUFRLENBQUMsQ0FBVCx3QkFBUTs7OztnQ0FDWCx3RkFBd0Y7Z0NBQ3hGLHFGQUFxRjtnQ0FDckYsa0JBQWtCO2dDQUNsQixFQUFFO2dDQUNGLDJFQUEyRTtnQ0FDM0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFZLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFLLEtBQUcsQ0FBQyxLQUFLLElBQUksS0FBRyxDQUFDLE9BQU8sQ0FBRSxDQUFDLENBQUM7Z0NBQzFFLHNCQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUM7b0NBRXZCLHFCQUFNLDJCQUFtQixDQUFDO29DQUN4QixJQUFJLEVBQUUsT0FBTztvQ0FDYixLQUFLLEVBQUUsQ0FBQyxLQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEtBQUssSUFBSSxLQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUc7aUNBQ2pFLENBQUMsRUFBQTs7Z0NBSEYsU0FHRSxDQUFDOzs7Ozs7cUJBR1YsQ0FBQyxDQUFDO2dCQUVILDJDQUEyQztnQkFDM0Msc0JBQU8sSUFBSSxPQUFPLENBQUMsY0FBTSxPQUFBLFNBQVMsRUFBVCxDQUFTLENBQUMsRUFBQzs7O0tBQ3JDO0lBOUNELGtDQThDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibm9kZVwiIC8+XG5cbmltcG9ydCAqIGFzIGNsdXN0ZXIgZnJvbSAnY2x1c3Rlcic7XG5cbmltcG9ydCB7cGFyc2VDb21tYW5kTGluZU9wdGlvbnN9IGZyb20gJy4uLy4uL2NvbW1hbmRfbGluZV9vcHRpb25zJztcbmltcG9ydCB7Q29uc29sZUxvZ2dlcn0gZnJvbSAnLi4vLi4vbG9nZ2luZy9jb25zb2xlX2xvZ2dlcic7XG5pbXBvcnQge0xvZ2dlciwgTG9nTGV2ZWx9IGZyb20gJy4uLy4uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7Z2V0U2hhcmVkU2V0dXB9IGZyb20gJy4uLy4uL25nY2Nfb3B0aW9ucyc7XG5pbXBvcnQge0NyZWF0ZUNvbXBpbGVGbn0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7Z2V0Q3JlYXRlQ29tcGlsZUZufSBmcm9tICcuLi9jcmVhdGVfY29tcGlsZV9mdW5jdGlvbic7XG5pbXBvcnQge3N0cmluZ2lmeVRhc2t9IGZyb20gJy4uL3Rhc2tzL3V0aWxzJztcblxuaW1wb3J0IHtNZXNzYWdlVG9Xb3JrZXJ9IGZyb20gJy4vYXBpJztcbmltcG9ydCB7Q2x1c3RlcldvcmtlclBhY2thZ2VKc29uVXBkYXRlcn0gZnJvbSAnLi9wYWNrYWdlX2pzb25fdXBkYXRlcic7XG5pbXBvcnQge3NlbmRNZXNzYWdlVG9NYXN0ZXJ9IGZyb20gJy4vdXRpbHMnO1xuXG4vLyBDbHVzdGVyIHdvcmtlciBlbnRyeSBwb2ludFxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIChhc3luYyAoKSA9PiB7XG4gICAgcHJvY2Vzcy50aXRsZSA9ICduZ2NjICh3b3JrZXIpJztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGxvZ2dlcixcbiAgICAgICAgcGF0aE1hcHBpbmdzLFxuICAgICAgICBlbmFibGVJMThuTGVnYWN5TWVzc2FnZUlkRm9ybWF0LFxuICAgICAgICBmaWxlU3lzdGVtLFxuICAgICAgICB0c0NvbmZpZyxcbiAgICAgICAgZ2V0RmlsZVdyaXRlcixcbiAgICAgIH0gPSBnZXRTaGFyZWRTZXR1cChwYXJzZUNvbW1hbmRMaW5lT3B0aW9ucyhwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpKTtcblxuICAgICAgLy8gTk9URTogVG8gYXZvaWQgZmlsZSBjb3JydXB0aW9uLCBgbmdjY2AgaW52b2NhdGlvbiBvbmx5IGNyZWF0ZXMgX29uZV8gaW5zdGFuY2Ugb2ZcbiAgICAgIC8vIGBQYWNrYWdlSnNvblVwZGF0ZXJgIHRoYXQgYWN0dWFsbHkgd3JpdGVzIHRvIGRpc2sgKGFjcm9zcyBhbGwgcHJvY2Vzc2VzKS5cbiAgICAgIC8vIEluIGNsdXN0ZXIgd29ya2VycyB3ZSB1c2UgYSBgUGFja2FnZUpzb25VcGRhdGVyYCB0aGF0IGRlbGVnYXRlcyB0byB0aGUgY2x1c3RlciBtYXN0ZXIuXG4gICAgICBjb25zdCBwa2dKc29uVXBkYXRlciA9IG5ldyBDbHVzdGVyV29ya2VyUGFja2FnZUpzb25VcGRhdGVyKCk7XG4gICAgICBjb25zdCBmaWxlV3JpdGVyID0gZ2V0RmlsZVdyaXRlcihwa2dKc29uVXBkYXRlcik7XG5cbiAgICAgIC8vIFRoZSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgdGhlIGBjb21waWxlKClgIGZ1bmN0aW9uLlxuICAgICAgY29uc3QgY3JlYXRlQ29tcGlsZUZuID0gZ2V0Q3JlYXRlQ29tcGlsZUZuKFxuICAgICAgICAgIGZpbGVTeXN0ZW0sIGxvZ2dlciwgZmlsZVdyaXRlciwgZW5hYmxlSTE4bkxlZ2FjeU1lc3NhZ2VJZEZvcm1hdCwgdHNDb25maWcsIHBhdGhNYXBwaW5ncyk7XG5cbiAgICAgIGF3YWl0IHN0YXJ0V29ya2VyKGxvZ2dlciwgY3JlYXRlQ29tcGlsZUZuKTtcbiAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSAwO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZS5zdGFjayB8fCBlLm1lc3NhZ2UpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfSkoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0V29ya2VyKGxvZ2dlcjogTG9nZ2VyLCBjcmVhdGVDb21waWxlRm46IENyZWF0ZUNvbXBpbGVGbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoY2x1c3Rlci5pc01hc3Rlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignVHJpZWQgdG8gcnVuIGNsdXN0ZXIgd29ya2VyIG9uIHRoZSBtYXN0ZXIgcHJvY2Vzcy4nKTtcbiAgfVxuXG4gIGNvbnN0IGNvbXBpbGUgPSBjcmVhdGVDb21waWxlRm4oXG4gICAgICB0cmFuc2Zvcm1lZEZpbGVzID0+IHNlbmRNZXNzYWdlVG9NYXN0ZXIoe1xuICAgICAgICB0eXBlOiAndHJhbnNmb3JtZWQtZmlsZXMnLFxuICAgICAgICBmaWxlczogdHJhbnNmb3JtZWRGaWxlcy5tYXAoZiA9PiBmLnBhdGgpLFxuICAgICAgfSksXG4gICAgICAoX3Rhc2ssIG91dGNvbWUsIG1lc3NhZ2UpID0+IHNlbmRNZXNzYWdlVG9NYXN0ZXIoe3R5cGU6ICd0YXNrLWNvbXBsZXRlZCcsIG91dGNvbWUsIG1lc3NhZ2V9KSk7XG5cblxuICAvLyBMaXN0ZW4gZm9yIGBQcm9jZXNzVGFza01lc3NhZ2VgcyBhbmQgcHJvY2VzcyB0YXNrcy5cbiAgY2x1c3Rlci53b3JrZXIub24oJ21lc3NhZ2UnLCBhc3luYyAobXNnOiBNZXNzYWdlVG9Xb3JrZXIpID0+IHtcbiAgICB0cnkge1xuICAgICAgc3dpdGNoIChtc2cudHlwZSkge1xuICAgICAgICBjYXNlICdwcm9jZXNzLXRhc2snOlxuICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYFtXb3JrZXIgIyR7Y2x1c3Rlci53b3JrZXIuaWR9XSBQcm9jZXNzaW5nIHRhc2s6ICR7c3RyaW5naWZ5VGFzayhtc2cudGFzayl9YCk7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IGNvbXBpbGUobXNnLnRhc2spO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFtXb3JrZXIgIyR7Y2x1c3Rlci53b3JrZXIuaWR9XSBJbnZhbGlkIG1lc3NhZ2UgcmVjZWl2ZWQ6ICR7SlNPTi5zdHJpbmdpZnkobXNnKX1gKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHN3aXRjaCAoZXJyICYmIGVyci5jb2RlKSB7XG4gICAgICAgIGNhc2UgJ0VOT01FTSc6XG4gICAgICAgICAgLy8gTm90IGJlaW5nIGFibGUgdG8gYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBpcyBub3QgbmVjZXNzYXJpbHkgYSBwcm9ibGVtIHdpdGggcHJvY2Vzc2luZ1xuICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHRhc2suIEl0IGNvdWxkIGp1c3QgbWVhbiB0aGF0IHRoZXJlIGFyZSB0b28gbWFueSB0YXNrcyBiZWluZyBwcm9jZXNzZWRcbiAgICAgICAgICAvLyBzaW11bHRhbmVvdXNseS5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIEV4aXQgd2l0aCBhbiBlcnJvciBhbmQgbGV0IHRoZSBjbHVzdGVyIG1hc3RlciBkZWNpZGUgaG93IHRvIGhhbmRsZSB0aGlzLlxuICAgICAgICAgIGxvZ2dlci53YXJuKGBbV29ya2VyICMke2NsdXN0ZXIud29ya2VyLmlkfV0gJHtlcnIuc3RhY2sgfHwgZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgcmV0dXJuIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBhd2FpdCBzZW5kTWVzc2FnZVRvTWFzdGVyKHtcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICBlcnJvcjogKGVyciBpbnN0YW5jZW9mIEVycm9yKSA/IChlcnIuc3RhY2sgfHwgZXJyLm1lc3NhZ2UpIDogZXJyLFxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gUmV0dXJuIGEgcHJvbWlzZSB0aGF0IGlzIG5ldmVyIHJlc29sdmVkLlxuICByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4gdW5kZWZpbmVkKTtcbn1cbiJdfQ==
@@ -2,10 +2,10 @@
2
2
  import { FileSystem } from '../../../src/ngtsc/file_system';
3
3
  import { ParsedConfiguration } from '../../../src/perform_compile';
4
4
  import { Logger } from '../logging/logger';
5
- import { PathMappings } from '../ngcc_options';
6
- import { PackageJsonUpdater } from '../writing/package_json_updater';
5
+ import { PathMappings } from '../path_mappings';
6
+ import { FileWriter } from '../writing/file_writer';
7
7
  import { CreateCompileFn } from './api';
8
8
  /**
9
9
  * The function for creating the `compile()` function.
10
10
  */
11
- export declare function getCreateCompileFn(fileSystem: FileSystem, logger: Logger, pkgJsonUpdater: PackageJsonUpdater, createNewEntryPointFormats: boolean, errorOnFailedEntryPoint: boolean, enableI18nLegacyMessageIdFormat: boolean, tsConfig: ParsedConfiguration | null, pathMappings: PathMappings | undefined): CreateCompileFn;
11
+ export declare function getCreateCompileFn(fileSystem: FileSystem, logger: Logger, fileWriter: FileWriter, enableI18nLegacyMessageIdFormat: boolean, tsConfig: ParsedConfiguration | null, pathMappings: PathMappings | undefined): CreateCompileFn;
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/ngcc/src/execution/create_compile_function", ["require", "exports", "typescript", "@angular/compiler-cli/src/ngtsc/diagnostics", "@angular/compiler-cli/ngcc/src/packages/entry_point", "@angular/compiler-cli/ngcc/src/packages/entry_point_bundle", "@angular/compiler-cli/ngcc/src/writing/in_place_file_writer", "@angular/compiler-cli/ngcc/src/writing/new_entry_point_file_writer"], factory);
7
+ define("@angular/compiler-cli/ngcc/src/execution/create_compile_function", ["require", "exports", "typescript", "@angular/compiler-cli/src/ngtsc/diagnostics", "@angular/compiler-cli/ngcc/src/packages/entry_point", "@angular/compiler-cli/ngcc/src/packages/entry_point_bundle"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -20,14 +20,11 @@
20
20
  var diagnostics_1 = require("@angular/compiler-cli/src/ngtsc/diagnostics");
21
21
  var entry_point_1 = require("@angular/compiler-cli/ngcc/src/packages/entry_point");
22
22
  var entry_point_bundle_1 = require("@angular/compiler-cli/ngcc/src/packages/entry_point_bundle");
23
- var in_place_file_writer_1 = require("@angular/compiler-cli/ngcc/src/writing/in_place_file_writer");
24
- var new_entry_point_file_writer_1 = require("@angular/compiler-cli/ngcc/src/writing/new_entry_point_file_writer");
25
23
  /**
26
24
  * The function for creating the `compile()` function.
27
25
  */
28
- function getCreateCompileFn(fileSystem, logger, pkgJsonUpdater, createNewEntryPointFormats, errorOnFailedEntryPoint, enableI18nLegacyMessageIdFormat, tsConfig, pathMappings) {
29
- return function (onTaskCompleted) {
30
- var fileWriter = getFileWriter(fileSystem, logger, pkgJsonUpdater, createNewEntryPointFormats, errorOnFailedEntryPoint);
26
+ function getCreateCompileFn(fileSystem, logger, fileWriter, enableI18nLegacyMessageIdFormat, tsConfig, pathMappings) {
27
+ return function (beforeWritingFiles, onTaskCompleted) {
31
28
  var Transformer = require('../packages/transformer').Transformer;
32
29
  var transformer = new Transformer(fileSystem, logger, tsConfig);
33
30
  return function (task) {
@@ -46,16 +43,22 @@
46
43
  throw new Error("Invariant violated: No format-path or format for " + entryPoint.path + " : " +
47
44
  (formatProperty + " (formatPath: " + formatPath + " | format: " + format + ")"));
48
45
  }
49
- var bundle = entry_point_bundle_1.makeEntryPointBundle(fileSystem, entryPoint, formatPath, isCore, format, processDts, pathMappings, true, enableI18nLegacyMessageIdFormat);
50
46
  logger.info("Compiling " + entryPoint.name + " : " + formatProperty + " as " + format);
47
+ var bundle = entry_point_bundle_1.makeEntryPointBundle(fileSystem, entryPoint, formatPath, isCore, format, processDts, pathMappings, true, enableI18nLegacyMessageIdFormat);
51
48
  var result = transformer.transform(bundle);
52
49
  if (result.success) {
53
50
  if (result.diagnostics.length > 0) {
54
51
  logger.warn(diagnostics_1.replaceTsWithNgInErrors(ts.formatDiagnosticsWithColorAndContext(result.diagnostics, bundle.src.host)));
55
52
  }
56
- fileWriter.writeBundle(bundle, result.transformedFiles, formatPropertiesToMarkAsProcessed);
57
- logger.debug(" Successfully compiled " + entryPoint.name + " : " + formatProperty);
58
- onTaskCompleted(task, 0 /* Processed */, null);
53
+ var writeBundle = function () {
54
+ fileWriter.writeBundle(bundle, result.transformedFiles, formatPropertiesToMarkAsProcessed);
55
+ logger.debug(" Successfully compiled " + entryPoint.name + " : " + formatProperty);
56
+ onTaskCompleted(task, 0 /* Processed */, null);
57
+ };
58
+ var beforeWritingResult = beforeWritingFiles(result.transformedFiles);
59
+ return (beforeWritingResult instanceof Promise) ?
60
+ beforeWritingResult.then(writeBundle) :
61
+ writeBundle();
59
62
  }
60
63
  else {
61
64
  var errors = diagnostics_1.replaceTsWithNgInErrors(ts.formatDiagnosticsWithColorAndContext(result.diagnostics, bundle.src.host));
@@ -65,10 +68,5 @@
65
68
  };
66
69
  }
67
70
  exports.getCreateCompileFn = getCreateCompileFn;
68
- function getFileWriter(fs, logger, pkgJsonUpdater, createNewEntryPointFormats, errorOnFailedEntryPoint) {
69
- return createNewEntryPointFormats ?
70
- new new_entry_point_file_writer_1.NewEntryPointFileWriter(fs, logger, errorOnFailedEntryPoint, pkgJsonUpdater) :
71
- new in_place_file_writer_1.InPlaceFileWriter(fs, logger, errorOnFailedEntryPoint);
72
- }
73
71
  });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2NvbXBpbGVfZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvZXhlY3V0aW9uL2NyZWF0ZV9jb21waWxlX2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQ0E7Ozs7OztPQU1HO0lBQ0gsK0JBQWlDO0lBRWpDLDJFQUF1RTtJQUt2RSxtRkFBNEQ7SUFDNUQsaUdBQW9FO0lBRXBFLG9HQUFrRTtJQUNsRSxrSEFBK0U7SUFNL0U7O09BRUc7SUFDSCxTQUFnQixrQkFBa0IsQ0FDOUIsVUFBc0IsRUFBRSxNQUFjLEVBQUUsY0FBa0MsRUFDMUUsMEJBQW1DLEVBQUUsdUJBQWdDLEVBQ3JFLCtCQUF3QyxFQUFFLFFBQWtDLEVBQzVFLFlBQW9DO1FBQ3RDLE9BQU8sVUFBQSxlQUFlO1lBQ3BCLElBQU0sVUFBVSxHQUFHLGFBQWEsQ0FDNUIsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUN0RixJQUFBLDREQUFXLENBQXVDO1lBQ3pELElBQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFbEUsT0FBTyxVQUFDLElBQVU7Z0JBQ1QsSUFBQSw0QkFBVSxFQUFFLG9DQUFjLEVBQUUsMEVBQWlDLEVBQUUsNEJBQVUsQ0FBUztnQkFFekYsSUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsQ0FBRSxxQ0FBcUM7Z0JBQzFGLElBQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7Z0JBQzNDLElBQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0MsSUFBTSxNQUFNLEdBQUcsaUNBQW1CLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFFM0UsMEZBQTBGO2dCQUMxRiw2RkFBNkY7Z0JBQzdGLDZDQUE2QztnQkFDN0Msd0ZBQXdGO2dCQUN4Riw0REFBNEQ7Z0JBQzVELElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQzFCLDRCQUE0QjtvQkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FDWCxzREFBb0QsVUFBVSxDQUFDLElBQUksUUFBSzt5QkFDckUsY0FBYyxzQkFBaUIsVUFBVSxtQkFBYyxNQUFNLE1BQUcsQ0FBQSxDQUFDLENBQUM7aUJBQzFFO2dCQUVELElBQU0sTUFBTSxHQUFHLHlDQUFvQixDQUMvQixVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUNsRiwrQkFBK0IsQ0FBQyxDQUFDO2dCQUVyQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWEsVUFBVSxDQUFDLElBQUksV0FBTSxjQUFjLFlBQU8sTUFBUSxDQUFDLENBQUM7Z0JBRTdFLElBQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDbEIsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUNBQXVCLENBQy9CLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNwRjtvQkFDRCxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztvQkFFM0YsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBMkIsVUFBVSxDQUFDLElBQUksV0FBTSxjQUFnQixDQUFDLENBQUM7b0JBRS9FLGVBQWUsQ0FBQyxJQUFJLHFCQUFtQyxJQUFJLENBQUMsQ0FBQztpQkFDOUQ7cUJBQU07b0JBQ0wsSUFBTSxNQUFNLEdBQUcscUNBQXVCLENBQ2xDLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDbEYsZUFBZSxDQUFDLElBQUksa0JBQWdDLDBCQUF3QixNQUFRLENBQUMsQ0FBQztpQkFDdkY7WUFDSCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDO0lBdkRELGdEQXVEQztJQUVELFNBQVMsYUFBYSxDQUNsQixFQUFjLEVBQUUsTUFBYyxFQUFFLGNBQWtDLEVBQ2xFLDBCQUFtQyxFQUFFLHVCQUFnQztRQUN2RSxPQUFPLDBCQUEwQixDQUFDLENBQUM7WUFDL0IsSUFBSSxxREFBdUIsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDbEYsSUFBSSx3Q0FBaUIsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7cmVwbGFjZVRzV2l0aE5nSW5FcnJvcnN9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9kaWFnbm9zdGljcyc7XG5pbXBvcnQge0ZpbGVTeXN0ZW19IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge1BhcnNlZENvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uLy4uL3NyYy9wZXJmb3JtX2NvbXBpbGUnO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7UGF0aE1hcHBpbmdzfSBmcm9tICcuLi9uZ2NjX29wdGlvbnMnO1xuaW1wb3J0IHtnZXRFbnRyeVBvaW50Rm9ybWF0fSBmcm9tICcuLi9wYWNrYWdlcy9lbnRyeV9wb2ludCc7XG5pbXBvcnQge21ha2VFbnRyeVBvaW50QnVuZGxlfSBmcm9tICcuLi9wYWNrYWdlcy9lbnRyeV9wb2ludF9idW5kbGUnO1xuaW1wb3J0IHtGaWxlV3JpdGVyfSBmcm9tICcuLi93cml0aW5nL2ZpbGVfd3JpdGVyJztcbmltcG9ydCB7SW5QbGFjZUZpbGVXcml0ZXJ9IGZyb20gJy4uL3dyaXRpbmcvaW5fcGxhY2VfZmlsZV93cml0ZXInO1xuaW1wb3J0IHtOZXdFbnRyeVBvaW50RmlsZVdyaXRlcn0gZnJvbSAnLi4vd3JpdGluZy9uZXdfZW50cnlfcG9pbnRfZmlsZV93cml0ZXInO1xuaW1wb3J0IHtQYWNrYWdlSnNvblVwZGF0ZXJ9IGZyb20gJy4uL3dyaXRpbmcvcGFja2FnZV9qc29uX3VwZGF0ZXInO1xuXG5pbXBvcnQge0NyZWF0ZUNvbXBpbGVGbn0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtUYXNrLCBUYXNrUHJvY2Vzc2luZ091dGNvbWV9IGZyb20gJy4vdGFza3MvYXBpJztcblxuLyoqXG4gKiBUaGUgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIHRoZSBgY29tcGlsZSgpYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENyZWF0ZUNvbXBpbGVGbihcbiAgICBmaWxlU3lzdGVtOiBGaWxlU3lzdGVtLCBsb2dnZXI6IExvZ2dlciwgcGtnSnNvblVwZGF0ZXI6IFBhY2thZ2VKc29uVXBkYXRlcixcbiAgICBjcmVhdGVOZXdFbnRyeVBvaW50Rm9ybWF0czogYm9vbGVhbiwgZXJyb3JPbkZhaWxlZEVudHJ5UG9pbnQ6IGJvb2xlYW4sXG4gICAgZW5hYmxlSTE4bkxlZ2FjeU1lc3NhZ2VJZEZvcm1hdDogYm9vbGVhbiwgdHNDb25maWc6IFBhcnNlZENvbmZpZ3VyYXRpb258bnVsbCxcbiAgICBwYXRoTWFwcGluZ3M6IFBhdGhNYXBwaW5nc3x1bmRlZmluZWQpOiBDcmVhdGVDb21waWxlRm4ge1xuICByZXR1cm4gb25UYXNrQ29tcGxldGVkID0+IHtcbiAgICBjb25zdCBmaWxlV3JpdGVyID0gZ2V0RmlsZVdyaXRlcihcbiAgICAgICAgZmlsZVN5c3RlbSwgbG9nZ2VyLCBwa2dKc29uVXBkYXRlciwgY3JlYXRlTmV3RW50cnlQb2ludEZvcm1hdHMsIGVycm9yT25GYWlsZWRFbnRyeVBvaW50KTtcbiAgICBjb25zdCB7VHJhbnNmb3JtZXJ9ID0gcmVxdWlyZSgnLi4vcGFja2FnZXMvdHJhbnNmb3JtZXInKTtcbiAgICBjb25zdCB0cmFuc2Zvcm1lciA9IG5ldyBUcmFuc2Zvcm1lcihmaWxlU3lzdGVtLCBsb2dnZXIsIHRzQ29uZmlnKTtcblxuICAgIHJldHVybiAodGFzazogVGFzaykgPT4ge1xuICAgICAgY29uc3Qge2VudHJ5UG9pbnQsIGZvcm1hdFByb3BlcnR5LCBmb3JtYXRQcm9wZXJ0aWVzVG9NYXJrQXNQcm9jZXNzZWQsIHByb2Nlc3NEdHN9ID0gdGFzaztcblxuICAgICAgY29uc3QgaXNDb3JlID0gZW50cnlQb2ludC5uYW1lID09PSAnQGFuZ3VsYXIvY29yZSc7ICAvLyBBcmUgd2UgY29tcGlsaW5nIHRoZSBBbmd1bGFyIGNvcmU/XG4gICAgICBjb25zdCBwYWNrYWdlSnNvbiA9IGVudHJ5UG9pbnQucGFja2FnZUpzb247XG4gICAgICBjb25zdCBmb3JtYXRQYXRoID0gcGFja2FnZUpzb25bZm9ybWF0UHJvcGVydHldO1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RW50cnlQb2ludEZvcm1hdChmaWxlU3lzdGVtLCBlbnRyeVBvaW50LCBmb3JtYXRQcm9wZXJ0eSk7XG5cbiAgICAgIC8vIEFsbCBwcm9wZXJ0aWVzIGxpc3RlZCBpbiBgcHJvcGVydGllc1RvUHJvY2Vzc2AgYXJlIGd1YXJhbnRlZWQgdG8gcG9pbnQgdG8gYSBmb3JtYXQtcGF0aFxuICAgICAgLy8gKGkuZS4gdGhleSBhcmUgZGVmaW5lZCBpbiBgZW50cnlQb2ludC5wYWNrYWdlSnNvbmApLiBGdXJ0aGVybW9yZSwgdGhleSBhcmUgYWxzbyBndWFyYW50ZWVkXG4gICAgICAvLyB0byBiZSBhbW9uZyBgU1VQUE9SVEVEX0ZPUk1BVF9QUk9QRVJUSUVTYC5cbiAgICAgIC8vIEJhc2VkIG9uIHRoZSBhYm92ZSwgYGZvcm1hdFBhdGhgIHNob3VsZCBhbHdheXMgYmUgZGVmaW5lZCBhbmQgYGdldEVudHJ5UG9pbnRGb3JtYXQoKWBcbiAgICAgIC8vIHNob3VsZCBhbHdheXMgcmV0dXJuIGEgZm9ybWF0IGhlcmUgKGFuZCBub3QgYHVuZGVmaW5lZGApLlxuICAgICAgaWYgKCFmb3JtYXRQYXRoIHx8ICFmb3JtYXQpIHtcbiAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW52YXJpYW50IHZpb2xhdGVkOiBObyBmb3JtYXQtcGF0aCBvciBmb3JtYXQgZm9yICR7ZW50cnlQb2ludC5wYXRofSA6IGAgK1xuICAgICAgICAgICAgYCR7Zm9ybWF0UHJvcGVydHl9IChmb3JtYXRQYXRoOiAke2Zvcm1hdFBhdGh9IHwgZm9ybWF0OiAke2Zvcm1hdH0pYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJ1bmRsZSA9IG1ha2VFbnRyeVBvaW50QnVuZGxlKFxuICAgICAgICAgIGZpbGVTeXN0ZW0sIGVudHJ5UG9pbnQsIGZvcm1hdFBhdGgsIGlzQ29yZSwgZm9ybWF0LCBwcm9jZXNzRHRzLCBwYXRoTWFwcGluZ3MsIHRydWUsXG4gICAgICAgICAgZW5hYmxlSTE4bkxlZ2FjeU1lc3NhZ2VJZEZvcm1hdCk7XG5cbiAgICAgIGxvZ2dlci5pbmZvKGBDb21waWxpbmcgJHtlbnRyeVBvaW50Lm5hbWV9IDogJHtmb3JtYXRQcm9wZXJ0eX0gYXMgJHtmb3JtYXR9YCk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRyYW5zZm9ybWVyLnRyYW5zZm9ybShidW5kbGUpO1xuICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgIGlmIChyZXN1bHQuZGlhZ25vc3RpY3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGxvZ2dlci53YXJuKHJlcGxhY2VUc1dpdGhOZ0luRXJyb3JzKFxuICAgICAgICAgICAgICB0cy5mb3JtYXREaWFnbm9zdGljc1dpdGhDb2xvckFuZENvbnRleHQocmVzdWx0LmRpYWdub3N0aWNzLCBidW5kbGUuc3JjLmhvc3QpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZmlsZVdyaXRlci53cml0ZUJ1bmRsZShidW5kbGUsIHJlc3VsdC50cmFuc2Zvcm1lZEZpbGVzLCBmb3JtYXRQcm9wZXJ0aWVzVG9NYXJrQXNQcm9jZXNzZWQpO1xuXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgICBTdWNjZXNzZnVsbHkgY29tcGlsZWQgJHtlbnRyeVBvaW50Lm5hbWV9IDogJHtmb3JtYXRQcm9wZXJ0eX1gKTtcblxuICAgICAgICBvblRhc2tDb21wbGV0ZWQodGFzaywgVGFza1Byb2Nlc3NpbmdPdXRjb21lLlByb2Nlc3NlZCwgbnVsbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSByZXBsYWNlVHNXaXRoTmdJbkVycm9ycyhcbiAgICAgICAgICAgIHRzLmZvcm1hdERpYWdub3N0aWNzV2l0aENvbG9yQW5kQ29udGV4dChyZXN1bHQuZGlhZ25vc3RpY3MsIGJ1bmRsZS5zcmMuaG9zdCkpO1xuICAgICAgICBvblRhc2tDb21wbGV0ZWQodGFzaywgVGFza1Byb2Nlc3NpbmdPdXRjb21lLkZhaWxlZCwgYGNvbXBpbGF0aW9uIGVycm9yczpcXG4ke2Vycm9yc31gKTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRGaWxlV3JpdGVyKFxuICAgIGZzOiBGaWxlU3lzdGVtLCBsb2dnZXI6IExvZ2dlciwgcGtnSnNvblVwZGF0ZXI6IFBhY2thZ2VKc29uVXBkYXRlcixcbiAgICBjcmVhdGVOZXdFbnRyeVBvaW50Rm9ybWF0czogYm9vbGVhbiwgZXJyb3JPbkZhaWxlZEVudHJ5UG9pbnQ6IGJvb2xlYW4pOiBGaWxlV3JpdGVyIHtcbiAgcmV0dXJuIGNyZWF0ZU5ld0VudHJ5UG9pbnRGb3JtYXRzID9cbiAgICAgIG5ldyBOZXdFbnRyeVBvaW50RmlsZVdyaXRlcihmcywgbG9nZ2VyLCBlcnJvck9uRmFpbGVkRW50cnlQb2ludCwgcGtnSnNvblVwZGF0ZXIpIDpcbiAgICAgIG5ldyBJblBsYWNlRmlsZVdyaXRlcihmcywgbG9nZ2VyLCBlcnJvck9uRmFpbGVkRW50cnlQb2ludCk7XG59XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2NvbXBpbGVfZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvZXhlY3V0aW9uL2NyZWF0ZV9jb21waWxlX2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQ0E7Ozs7OztPQU1HO0lBQ0gsK0JBQWlDO0lBRWpDLDJFQUF1RTtJQUl2RSxtRkFBNEQ7SUFDNUQsaUdBQW9FO0lBT3BFOztPQUVHO0lBQ0gsU0FBZ0Isa0JBQWtCLENBQzlCLFVBQXNCLEVBQUUsTUFBYyxFQUFFLFVBQXNCLEVBQzlELCtCQUF3QyxFQUFFLFFBQWtDLEVBQzVFLFlBQW9DO1FBQ3RDLE9BQU8sVUFBQyxrQkFBa0IsRUFBRSxlQUFlO1lBQ2xDLElBQUEsNERBQVcsQ0FBdUM7WUFDekQsSUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUVsRSxPQUFPLFVBQUMsSUFBVTtnQkFDVCxJQUFBLDRCQUFVLEVBQUUsb0NBQWMsRUFBRSwwRUFBaUMsRUFBRSw0QkFBVSxDQUFTO2dCQUV6RixJQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxDQUFFLHFDQUFxQztnQkFDMUYsSUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztnQkFDM0MsSUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMvQyxJQUFNLE1BQU0sR0FBRyxpQ0FBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUUzRSwwRkFBMEY7Z0JBQzFGLDZGQUE2RjtnQkFDN0YsNkNBQTZDO2dCQUM3Qyx3RkFBd0Y7Z0JBQ3hGLDREQUE0RDtnQkFDNUQsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDMUIsNEJBQTRCO29CQUM1QixNQUFNLElBQUksS0FBSyxDQUNYLHNEQUFvRCxVQUFVLENBQUMsSUFBSSxRQUFLO3lCQUNyRSxjQUFjLHNCQUFpQixVQUFVLG1CQUFjLE1BQU0sTUFBRyxDQUFBLENBQUMsQ0FBQztpQkFDMUU7Z0JBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFhLFVBQVUsQ0FBQyxJQUFJLFdBQU0sY0FBYyxZQUFPLE1BQVEsQ0FBQyxDQUFDO2dCQUU3RSxJQUFNLE1BQU0sR0FBRyx5Q0FBb0IsQ0FDL0IsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLElBQUksRUFDbEYsK0JBQStCLENBQUMsQ0FBQztnQkFFckMsSUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO29CQUNsQixJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQ0FBdUIsQ0FDL0IsRUFBRSxDQUFDLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3BGO29CQUVELElBQU0sV0FBVyxHQUFHO3dCQUNsQixVQUFVLENBQUMsV0FBVyxDQUNsQixNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLGlDQUFpQyxDQUFDLENBQUM7d0JBRXhFLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTJCLFVBQVUsQ0FBQyxJQUFJLFdBQU0sY0FBZ0IsQ0FBQyxDQUFDO3dCQUMvRSxlQUFlLENBQUMsSUFBSSxxQkFBbUMsSUFBSSxDQUFDLENBQUM7b0JBQy9ELENBQUMsQ0FBQztvQkFFRixJQUFNLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUV4RSxPQUFPLENBQUMsbUJBQW1CLFlBQVksT0FBTyxDQUFDLENBQUMsQ0FBQzt3QkFDN0MsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBMEMsQ0FBQSxDQUFDO3dCQUMvRSxXQUFXLEVBQUUsQ0FBQztpQkFDbkI7cUJBQU07b0JBQ0wsSUFBTSxNQUFNLEdBQUcscUNBQXVCLENBQ2xDLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDbEYsZUFBZSxDQUFDLElBQUksa0JBQWdDLDBCQUF3QixNQUFRLENBQUMsQ0FBQztpQkFDdkY7WUFDSCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDO0lBN0RELGdEQTZEQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7cmVwbGFjZVRzV2l0aE5nSW5FcnJvcnN9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9kaWFnbm9zdGljcyc7XG5pbXBvcnQge0ZpbGVTeXN0ZW19IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge1BhcnNlZENvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uLy4uL3NyYy9wZXJmb3JtX2NvbXBpbGUnO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7Z2V0RW50cnlQb2ludEZvcm1hdH0gZnJvbSAnLi4vcGFja2FnZXMvZW50cnlfcG9pbnQnO1xuaW1wb3J0IHttYWtlRW50cnlQb2ludEJ1bmRsZX0gZnJvbSAnLi4vcGFja2FnZXMvZW50cnlfcG9pbnRfYnVuZGxlJztcbmltcG9ydCB7UGF0aE1hcHBpbmdzfSBmcm9tICcuLi9wYXRoX21hcHBpbmdzJztcbmltcG9ydCB7RmlsZVdyaXRlcn0gZnJvbSAnLi4vd3JpdGluZy9maWxlX3dyaXRlcic7XG5cbmltcG9ydCB7Q3JlYXRlQ29tcGlsZUZufSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge1Rhc2ssIFRhc2tQcm9jZXNzaW5nT3V0Y29tZX0gZnJvbSAnLi90YXNrcy9hcGknO1xuXG4vKipcbiAqIFRoZSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgdGhlIGBjb21waWxlKClgIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRlQ29tcGlsZUZuKFxuICAgIGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW0sIGxvZ2dlcjogTG9nZ2VyLCBmaWxlV3JpdGVyOiBGaWxlV3JpdGVyLFxuICAgIGVuYWJsZUkxOG5MZWdhY3lNZXNzYWdlSWRGb3JtYXQ6IGJvb2xlYW4sIHRzQ29uZmlnOiBQYXJzZWRDb25maWd1cmF0aW9ufG51bGwsXG4gICAgcGF0aE1hcHBpbmdzOiBQYXRoTWFwcGluZ3N8dW5kZWZpbmVkKTogQ3JlYXRlQ29tcGlsZUZuIHtcbiAgcmV0dXJuIChiZWZvcmVXcml0aW5nRmlsZXMsIG9uVGFza0NvbXBsZXRlZCkgPT4ge1xuICAgIGNvbnN0IHtUcmFuc2Zvcm1lcn0gPSByZXF1aXJlKCcuLi9wYWNrYWdlcy90cmFuc2Zvcm1lcicpO1xuICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gbmV3IFRyYW5zZm9ybWVyKGZpbGVTeXN0ZW0sIGxvZ2dlciwgdHNDb25maWcpO1xuXG4gICAgcmV0dXJuICh0YXNrOiBUYXNrKSA9PiB7XG4gICAgICBjb25zdCB7ZW50cnlQb2ludCwgZm9ybWF0UHJvcGVydHksIGZvcm1hdFByb3BlcnRpZXNUb01hcmtBc1Byb2Nlc3NlZCwgcHJvY2Vzc0R0c30gPSB0YXNrO1xuXG4gICAgICBjb25zdCBpc0NvcmUgPSBlbnRyeVBvaW50Lm5hbWUgPT09ICdAYW5ndWxhci9jb3JlJzsgIC8vIEFyZSB3ZSBjb21waWxpbmcgdGhlIEFuZ3VsYXIgY29yZT9cbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gZW50cnlQb2ludC5wYWNrYWdlSnNvbjtcbiAgICAgIGNvbnN0IGZvcm1hdFBhdGggPSBwYWNrYWdlSnNvbltmb3JtYXRQcm9wZXJ0eV07XG4gICAgICBjb25zdCBmb3JtYXQgPSBnZXRFbnRyeVBvaW50Rm9ybWF0KGZpbGVTeXN0ZW0sIGVudHJ5UG9pbnQsIGZvcm1hdFByb3BlcnR5KTtcblxuICAgICAgLy8gQWxsIHByb3BlcnRpZXMgbGlzdGVkIGluIGBwcm9wZXJ0aWVzVG9Qcm9jZXNzYCBhcmUgZ3VhcmFudGVlZCB0byBwb2ludCB0byBhIGZvcm1hdC1wYXRoXG4gICAgICAvLyAoaS5lLiB0aGV5IGFyZSBkZWZpbmVkIGluIGBlbnRyeVBvaW50LnBhY2thZ2VKc29uYCkuIEZ1cnRoZXJtb3JlLCB0aGV5IGFyZSBhbHNvIGd1YXJhbnRlZWRcbiAgICAgIC8vIHRvIGJlIGFtb25nIGBTVVBQT1JURURfRk9STUFUX1BST1BFUlRJRVNgLlxuICAgICAgLy8gQmFzZWQgb24gdGhlIGFib3ZlLCBgZm9ybWF0UGF0aGAgc2hvdWxkIGFsd2F5cyBiZSBkZWZpbmVkIGFuZCBgZ2V0RW50cnlQb2ludEZvcm1hdCgpYFxuICAgICAgLy8gc2hvdWxkIGFsd2F5cyByZXR1cm4gYSBmb3JtYXQgaGVyZSAoYW5kIG5vdCBgdW5kZWZpbmVkYCkuXG4gICAgICBpZiAoIWZvcm1hdFBhdGggfHwgIWZvcm1hdCkge1xuICAgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbnZhcmlhbnQgdmlvbGF0ZWQ6IE5vIGZvcm1hdC1wYXRoIG9yIGZvcm1hdCBmb3IgJHtlbnRyeVBvaW50LnBhdGh9IDogYCArXG4gICAgICAgICAgICBgJHtmb3JtYXRQcm9wZXJ0eX0gKGZvcm1hdFBhdGg6ICR7Zm9ybWF0UGF0aH0gfCBmb3JtYXQ6ICR7Zm9ybWF0fSlgKTtcbiAgICAgIH1cblxuICAgICAgbG9nZ2VyLmluZm8oYENvbXBpbGluZyAke2VudHJ5UG9pbnQubmFtZX0gOiAke2Zvcm1hdFByb3BlcnR5fSBhcyAke2Zvcm1hdH1gKTtcblxuICAgICAgY29uc3QgYnVuZGxlID0gbWFrZUVudHJ5UG9pbnRCdW5kbGUoXG4gICAgICAgICAgZmlsZVN5c3RlbSwgZW50cnlQb2ludCwgZm9ybWF0UGF0aCwgaXNDb3JlLCBmb3JtYXQsIHByb2Nlc3NEdHMsIHBhdGhNYXBwaW5ncywgdHJ1ZSxcbiAgICAgICAgICBlbmFibGVJMThuTGVnYWN5TWVzc2FnZUlkRm9ybWF0KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gdHJhbnNmb3JtZXIudHJhbnNmb3JtKGJ1bmRsZSk7XG4gICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgaWYgKHJlc3VsdC5kaWFnbm9zdGljcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgbG9nZ2VyLndhcm4ocmVwbGFjZVRzV2l0aE5nSW5FcnJvcnMoXG4gICAgICAgICAgICAgIHRzLmZvcm1hdERpYWdub3N0aWNzV2l0aENvbG9yQW5kQ29udGV4dChyZXN1bHQuZGlhZ25vc3RpY3MsIGJ1bmRsZS5zcmMuaG9zdCkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdyaXRlQnVuZGxlID0gKCkgPT4ge1xuICAgICAgICAgIGZpbGVXcml0ZXIud3JpdGVCdW5kbGUoXG4gICAgICAgICAgICAgIGJ1bmRsZSwgcmVzdWx0LnRyYW5zZm9ybWVkRmlsZXMsIGZvcm1hdFByb3BlcnRpZXNUb01hcmtBc1Byb2Nlc3NlZCk7XG5cbiAgICAgICAgICBsb2dnZXIuZGVidWcoYCAgU3VjY2Vzc2Z1bGx5IGNvbXBpbGVkICR7ZW50cnlQb2ludC5uYW1lfSA6ICR7Zm9ybWF0UHJvcGVydHl9YCk7XG4gICAgICAgICAgb25UYXNrQ29tcGxldGVkKHRhc2ssIFRhc2tQcm9jZXNzaW5nT3V0Y29tZS5Qcm9jZXNzZWQsIG51bGwpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGJlZm9yZVdyaXRpbmdSZXN1bHQgPSBiZWZvcmVXcml0aW5nRmlsZXMocmVzdWx0LnRyYW5zZm9ybWVkRmlsZXMpO1xuXG4gICAgICAgIHJldHVybiAoYmVmb3JlV3JpdGluZ1Jlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpID9cbiAgICAgICAgICAgIGJlZm9yZVdyaXRpbmdSZXN1bHQudGhlbih3cml0ZUJ1bmRsZSkgYXMgUmV0dXJuVHlwZTx0eXBlb2YgYmVmb3JlV3JpdGluZ0ZpbGVzPjpcbiAgICAgICAgICAgIHdyaXRlQnVuZGxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSByZXBsYWNlVHNXaXRoTmdJbkVycm9ycyhcbiAgICAgICAgICAgIHRzLmZvcm1hdERpYWdub3N0aWNzV2l0aENvbG9yQW5kQ29udGV4dChyZXN1bHQuZGlhZ25vc3RpY3MsIGJ1bmRsZS5zcmMuaG9zdCkpO1xuICAgICAgICBvblRhc2tDb21wbGV0ZWQodGFzaywgVGFza1Byb2Nlc3NpbmdPdXRjb21lLkZhaWxlZCwgYGNvbXBpbGF0aW9uIGVycm9yczpcXG4ke2Vycm9yc31gKTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xufVxuIl19
@@ -26,14 +26,14 @@
26
26
  this.logger.debug("Running ngcc on " + this.constructor.name + ".");
27
27
  var taskQueue = analyzeEntryPoints();
28
28
  var onTaskCompleted = this.createTaskCompletedCallback(taskQueue);
29
- var compile = createCompileFn(onTaskCompleted);
29
+ var compile = createCompileFn(function () { }, onTaskCompleted);
30
30
  // Process all tasks.
31
31
  this.logger.debug('Processing tasks...');
32
32
  var startTime = Date.now();
33
33
  while (!taskQueue.allTasksCompleted) {
34
34
  var task = taskQueue.getNextTask();
35
35
  compile(task);
36
- taskQueue.markTaskCompleted(task);
36
+ taskQueue.markAsCompleted(task);
37
37
  }
38
38
  var duration = Math.round((Date.now() - startTime) / 1000);
39
39
  this.logger.debug("Processed tasks in " + duration + "s.");
@@ -87,4 +87,4 @@
87
87
  }(SingleProcessorExecutorBase));
88
88
  exports.SingleProcessExecutorAsync = SingleProcessExecutorAsync;
89
89
  });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlX3Byb2Nlc3NfZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvZXhlY3V0aW9uL3NpbmdsZV9wcm9jZXNzX2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQVNIO1FBQ0UscUNBQ1ksTUFBYyxFQUFVLDJCQUF3RDtZQUFoRixXQUFNLEdBQU4sTUFBTSxDQUFRO1lBQVUsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUFHLENBQUM7UUFFaEcsK0NBQVMsR0FBVCxVQUFVLGtCQUF3QyxFQUFFLGVBQWdDO1lBRWxGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFtQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksTUFBRyxDQUFDLENBQUM7WUFFL0QsSUFBTSxTQUFTLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztZQUN2QyxJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEUsSUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRWpELHFCQUFxQjtZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3pDLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUU3QixPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO2dCQUNuQyxJQUFNLElBQUksR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFHLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDZCxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkM7WUFFRCxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUFzQixRQUFRLE9BQUksQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDSCxrQ0FBQztJQUFELENBQUMsQUF6QkQsSUF5QkM7SUF6QnFCLGtFQUEyQjtJQTJCakQ7O09BRUc7SUFDSDtRQUErQyxxREFBMkI7UUFDeEUsbUNBQ0ksTUFBYyxFQUFVLFFBQW9CLEVBQzVDLDJCQUF3RDtZQUY1RCxZQUdFLGtCQUFNLE1BQU0sRUFBRSwyQkFBMkIsQ0FBQyxTQUMzQztZQUgyQixjQUFRLEdBQVIsUUFBUSxDQUFZOztRQUdoRCxDQUFDO1FBQ0QsMkNBQU8sR0FBUCxVQUFRLGtCQUF3QyxFQUFFLGVBQWdDO1lBQWxGLGlCQUVDO1lBREMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLEVBQW5ELENBQW1ELENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0gsZ0NBQUM7SUFBRCxDQUFDLEFBVEQsQ0FBK0MsMkJBQTJCLEdBU3pFO0lBVFksOERBQXlCO0lBV3RDOztPQUVHO0lBQ0g7UUFBZ0Qsc0RBQTJCO1FBQ3pFLG9DQUNJLE1BQWMsRUFBVSxRQUFxQixFQUM3QywyQkFBd0Q7WUFGNUQsWUFHRSxrQkFBTSxNQUFNLEVBQUUsMkJBQTJCLENBQUMsU0FDM0M7WUFIMkIsY0FBUSxHQUFSLFFBQVEsQ0FBYTs7UUFHakQsQ0FBQztRQUNLLDRDQUFPLEdBQWIsVUFBYyxrQkFBd0MsRUFBRSxlQUFnQzs7Ozs7Z0NBRXRGLHFCQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dDQUFZLHNCQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLEVBQUE7cUNBQUEsQ0FBQyxFQUFBOzs0QkFBekYsU0FBeUYsQ0FBQzs7Ozs7U0FDM0Y7UUFDSCxpQ0FBQztJQUFELENBQUMsQUFWRCxDQUFnRCwyQkFBMkIsR0FVMUU7SUFWWSxnRUFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QXN5bmNMb2NrZXJ9IGZyb20gJy4uL2xvY2tpbmcvYXN5bmNfbG9ja2VyJztcbmltcG9ydCB7U3luY0xvY2tlcn0gZnJvbSAnLi4vbG9ja2luZy9zeW5jX2xvY2tlcic7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2luZy9sb2dnZXInO1xuXG5pbXBvcnQge0FuYWx5emVFbnRyeVBvaW50c0ZuLCBDcmVhdGVDb21waWxlRm4sIEV4ZWN1dG9yfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge0NyZWF0ZVRhc2tDb21wbGV0ZWRDYWxsYmFja30gZnJvbSAnLi90YXNrcy9hcGknO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2luZ2xlUHJvY2Vzc29yRXhlY3V0b3JCYXNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLCBwcml2YXRlIGNyZWF0ZVRhc2tDb21wbGV0ZWRDYWxsYmFjazogQ3JlYXRlVGFza0NvbXBsZXRlZENhbGxiYWNrKSB7fVxuXG4gIGRvRXhlY3V0ZShhbmFseXplRW50cnlQb2ludHM6IEFuYWx5emVFbnRyeVBvaW50c0ZuLCBjcmVhdGVDb21waWxlRm46IENyZWF0ZUNvbXBpbGVGbik6XG4gICAgICB2b2lkfFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBSdW5uaW5nIG5nY2Mgb24gJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LmApO1xuXG4gICAgY29uc3QgdGFza1F1ZXVlID0gYW5hbHl6ZUVudHJ5UG9pbnRzKCk7XG4gICAgY29uc3Qgb25UYXNrQ29tcGxldGVkID0gdGhpcy5jcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2sodGFza1F1ZXVlKTtcbiAgICBjb25zdCBjb21waWxlID0gY3JlYXRlQ29tcGlsZUZuKG9uVGFza0NvbXBsZXRlZCk7XG5cbiAgICAvLyBQcm9jZXNzIGFsbCB0YXNrcy5cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnUHJvY2Vzc2luZyB0YXNrcy4uLicpO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICB3aGlsZSAoIXRhc2tRdWV1ZS5hbGxUYXNrc0NvbXBsZXRlZCkge1xuICAgICAgY29uc3QgdGFzayA9IHRhc2tRdWV1ZS5nZXROZXh0VGFzaygpITtcbiAgICAgIGNvbXBpbGUodGFzayk7XG4gICAgICB0YXNrUXVldWUubWFya1Rhc2tDb21wbGV0ZWQodGFzayk7XG4gICAgfVxuXG4gICAgY29uc3QgZHVyYXRpb24gPSBNYXRoLnJvdW5kKChEYXRlLm5vdygpIC0gc3RhcnRUaW1lKSAvIDEwMDApO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBQcm9jZXNzZWQgdGFza3MgaW4gJHtkdXJhdGlvbn1zLmApO1xuICB9XG59XG5cbi8qKlxuICogQW4gYEV4ZWN1dG9yYCB0aGF0IHByb2Nlc3NlcyBhbGwgdGFza3Mgc2VyaWFsbHkgYW5kIGNvbXBsZXRlcyBzeW5jaHJvbm91c2x5LlxuICovXG5leHBvcnQgY2xhc3MgU2luZ2xlUHJvY2Vzc0V4ZWN1dG9yU3luYyBleHRlbmRzIFNpbmdsZVByb2Nlc3NvckV4ZWN1dG9yQmFzZSBpbXBsZW1lbnRzIEV4ZWN1dG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBsb2dnZXI6IExvZ2dlciwgcHJpdmF0ZSBsb2NrRmlsZTogU3luY0xvY2tlcixcbiAgICAgIGNyZWF0ZVRhc2tDb21wbGV0ZWRDYWxsYmFjazogQ3JlYXRlVGFza0NvbXBsZXRlZENhbGxiYWNrKSB7XG4gICAgc3VwZXIobG9nZ2VyLCBjcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2spO1xuICB9XG4gIGV4ZWN1dGUoYW5hbHl6ZUVudHJ5UG9pbnRzOiBBbmFseXplRW50cnlQb2ludHNGbiwgY3JlYXRlQ29tcGlsZUZuOiBDcmVhdGVDb21waWxlRm4pOiB2b2lkIHtcbiAgICB0aGlzLmxvY2tGaWxlLmxvY2soKCkgPT4gdGhpcy5kb0V4ZWN1dGUoYW5hbHl6ZUVudHJ5UG9pbnRzLCBjcmVhdGVDb21waWxlRm4pKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGBFeGVjdXRvcmAgdGhhdCBwcm9jZXNzZXMgYWxsIHRhc2tzIHNlcmlhbGx5LCBidXQgc3RpbGwgY29tcGxldGVzIGFzeW5jaHJvbm91c2x5LlxuICovXG5leHBvcnQgY2xhc3MgU2luZ2xlUHJvY2Vzc0V4ZWN1dG9yQXN5bmMgZXh0ZW5kcyBTaW5nbGVQcm9jZXNzb3JFeGVjdXRvckJhc2UgaW1wbGVtZW50cyBFeGVjdXRvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgbG9nZ2VyOiBMb2dnZXIsIHByaXZhdGUgbG9ja0ZpbGU6IEFzeW5jTG9ja2VyLFxuICAgICAgY3JlYXRlVGFza0NvbXBsZXRlZENhbGxiYWNrOiBDcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2spIHtcbiAgICBzdXBlcihsb2dnZXIsIGNyZWF0ZVRhc2tDb21wbGV0ZWRDYWxsYmFjayk7XG4gIH1cbiAgYXN5bmMgZXhlY3V0ZShhbmFseXplRW50cnlQb2ludHM6IEFuYWx5emVFbnRyeVBvaW50c0ZuLCBjcmVhdGVDb21waWxlRm46IENyZWF0ZUNvbXBpbGVGbik6XG4gICAgICBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvY2tGaWxlLmxvY2soYXN5bmMgKCkgPT4gdGhpcy5kb0V4ZWN1dGUoYW5hbHl6ZUVudHJ5UG9pbnRzLCBjcmVhdGVDb21waWxlRm4pKTtcbiAgfVxufVxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlX3Byb2Nlc3NfZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvZXhlY3V0aW9uL3NpbmdsZV9wcm9jZXNzX2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQVNIO1FBQ0UscUNBQ1ksTUFBYyxFQUFVLDJCQUF3RDtZQUFoRixXQUFNLEdBQU4sTUFBTSxDQUFRO1lBQVUsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUFHLENBQUM7UUFFaEcsK0NBQVMsR0FBVCxVQUFVLGtCQUF3QyxFQUFFLGVBQWdDO1lBRWxGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFtQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksTUFBRyxDQUFDLENBQUM7WUFFL0QsSUFBTSxTQUFTLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztZQUN2QyxJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEUsSUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGNBQU8sQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRTNELHFCQUFxQjtZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3pDLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUU3QixPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO2dCQUNuQyxJQUFNLElBQUksR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFHLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDZCxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pDO1lBRUQsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBc0IsUUFBUSxPQUFJLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0gsa0NBQUM7SUFBRCxDQUFDLEFBekJELElBeUJDO0lBekJxQixrRUFBMkI7SUEyQmpEOztPQUVHO0lBQ0g7UUFBK0MscURBQTJCO1FBQ3hFLG1DQUNJLE1BQWMsRUFBVSxRQUFvQixFQUM1QywyQkFBd0Q7WUFGNUQsWUFHRSxrQkFBTSxNQUFNLEVBQUUsMkJBQTJCLENBQUMsU0FDM0M7WUFIMkIsY0FBUSxHQUFSLFFBQVEsQ0FBWTs7UUFHaEQsQ0FBQztRQUNELDJDQUFPLEdBQVAsVUFBUSxrQkFBd0MsRUFBRSxlQUFnQztZQUFsRixpQkFFQztZQURDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxFQUFuRCxDQUFtRCxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNILGdDQUFDO0lBQUQsQ0FBQyxBQVRELENBQStDLDJCQUEyQixHQVN6RTtJQVRZLDhEQUF5QjtJQVd0Qzs7T0FFRztJQUNIO1FBQWdELHNEQUEyQjtRQUN6RSxvQ0FDSSxNQUFjLEVBQVUsUUFBcUIsRUFDN0MsMkJBQXdEO1lBRjVELFlBR0Usa0JBQU0sTUFBTSxFQUFFLDJCQUEyQixDQUFDLFNBQzNDO1lBSDJCLGNBQVEsR0FBUixRQUFRLENBQWE7O1FBR2pELENBQUM7UUFDSyw0Q0FBTyxHQUFiLFVBQWMsa0JBQXdDLEVBQUUsZUFBZ0M7Ozs7O2dDQUV0RixxQkFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQ0FBWSxzQkFBQSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxFQUFBO3FDQUFBLENBQUMsRUFBQTs7NEJBQXpGLFNBQXlGLENBQUM7Ozs7O1NBQzNGO1FBQ0gsaUNBQUM7SUFBRCxDQUFDLEFBVkQsQ0FBZ0QsMkJBQTJCLEdBVTFFO0lBVlksZ0VBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0FzeW5jTG9ja2VyfSBmcm9tICcuLi9sb2NraW5nL2FzeW5jX2xvY2tlcic7XG5pbXBvcnQge1N5bmNMb2NrZXJ9IGZyb20gJy4uL2xvY2tpbmcvc3luY19sb2NrZXInO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dpbmcvbG9nZ2VyJztcblxuaW1wb3J0IHtBbmFseXplRW50cnlQb2ludHNGbiwgQ3JlYXRlQ29tcGlsZUZuLCBFeGVjdXRvcn0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtDcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2t9IGZyb20gJy4vdGFza3MvYXBpJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNpbmdsZVByb2Nlc3NvckV4ZWN1dG9yQmFzZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlciwgcHJpdmF0ZSBjcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2s6IENyZWF0ZVRhc2tDb21wbGV0ZWRDYWxsYmFjaykge31cblxuICBkb0V4ZWN1dGUoYW5hbHl6ZUVudHJ5UG9pbnRzOiBBbmFseXplRW50cnlQb2ludHNGbiwgY3JlYXRlQ29tcGlsZUZuOiBDcmVhdGVDb21waWxlRm4pOlxuICAgICAgdm9pZHxQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgUnVubmluZyBuZ2NjIG9uICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfS5gKTtcblxuICAgIGNvbnN0IHRhc2tRdWV1ZSA9IGFuYWx5emVFbnRyeVBvaW50cygpO1xuICAgIGNvbnN0IG9uVGFza0NvbXBsZXRlZCA9IHRoaXMuY3JlYXRlVGFza0NvbXBsZXRlZENhbGxiYWNrKHRhc2tRdWV1ZSk7XG4gICAgY29uc3QgY29tcGlsZSA9IGNyZWF0ZUNvbXBpbGVGbigoKSA9PiB7fSwgb25UYXNrQ29tcGxldGVkKTtcblxuICAgIC8vIFByb2Nlc3MgYWxsIHRhc2tzLlxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdQcm9jZXNzaW5nIHRhc2tzLi4uJyk7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgIHdoaWxlICghdGFza1F1ZXVlLmFsbFRhc2tzQ29tcGxldGVkKSB7XG4gICAgICBjb25zdCB0YXNrID0gdGFza1F1ZXVlLmdldE5leHRUYXNrKCkhO1xuICAgICAgY29tcGlsZSh0YXNrKTtcbiAgICAgIHRhc2tRdWV1ZS5tYXJrQXNDb21wbGV0ZWQodGFzayk7XG4gICAgfVxuXG4gICAgY29uc3QgZHVyYXRpb24gPSBNYXRoLnJvdW5kKChEYXRlLm5vdygpIC0gc3RhcnRUaW1lKSAvIDEwMDApO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBQcm9jZXNzZWQgdGFza3MgaW4gJHtkdXJhdGlvbn1zLmApO1xuICB9XG59XG5cbi8qKlxuICogQW4gYEV4ZWN1dG9yYCB0aGF0IHByb2Nlc3NlcyBhbGwgdGFza3Mgc2VyaWFsbHkgYW5kIGNvbXBsZXRlcyBzeW5jaHJvbm91c2x5LlxuICovXG5leHBvcnQgY2xhc3MgU2luZ2xlUHJvY2Vzc0V4ZWN1dG9yU3luYyBleHRlbmRzIFNpbmdsZVByb2Nlc3NvckV4ZWN1dG9yQmFzZSBpbXBsZW1lbnRzIEV4ZWN1dG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBsb2dnZXI6IExvZ2dlciwgcHJpdmF0ZSBsb2NrRmlsZTogU3luY0xvY2tlcixcbiAgICAgIGNyZWF0ZVRhc2tDb21wbGV0ZWRDYWxsYmFjazogQ3JlYXRlVGFza0NvbXBsZXRlZENhbGxiYWNrKSB7XG4gICAgc3VwZXIobG9nZ2VyLCBjcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2spO1xuICB9XG4gIGV4ZWN1dGUoYW5hbHl6ZUVudHJ5UG9pbnRzOiBBbmFseXplRW50cnlQb2ludHNGbiwgY3JlYXRlQ29tcGlsZUZuOiBDcmVhdGVDb21waWxlRm4pOiB2b2lkIHtcbiAgICB0aGlzLmxvY2tGaWxlLmxvY2soKCkgPT4gdGhpcy5kb0V4ZWN1dGUoYW5hbHl6ZUVudHJ5UG9pbnRzLCBjcmVhdGVDb21waWxlRm4pKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGBFeGVjdXRvcmAgdGhhdCBwcm9jZXNzZXMgYWxsIHRhc2tzIHNlcmlhbGx5LCBidXQgc3RpbGwgY29tcGxldGVzIGFzeW5jaHJvbm91c2x5LlxuICovXG5leHBvcnQgY2xhc3MgU2luZ2xlUHJvY2Vzc0V4ZWN1dG9yQXN5bmMgZXh0ZW5kcyBTaW5nbGVQcm9jZXNzb3JFeGVjdXRvckJhc2UgaW1wbGVtZW50cyBFeGVjdXRvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgbG9nZ2VyOiBMb2dnZXIsIHByaXZhdGUgbG9ja0ZpbGU6IEFzeW5jTG9ja2VyLFxuICAgICAgY3JlYXRlVGFza0NvbXBsZXRlZENhbGxiYWNrOiBDcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2spIHtcbiAgICBzdXBlcihsb2dnZXIsIGNyZWF0ZVRhc2tDb21wbGV0ZWRDYWxsYmFjayk7XG4gIH1cbiAgYXN5bmMgZXhlY3V0ZShhbmFseXplRW50cnlQb2ludHM6IEFuYWx5emVFbnRyeVBvaW50c0ZuLCBjcmVhdGVDb21waWxlRm46IENyZWF0ZUNvbXBpbGVGbik6XG4gICAgICBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvY2tGaWxlLmxvY2soYXN5bmMgKCkgPT4gdGhpcy5kb0V4ZWN1dGUoYW5hbHl6ZUVudHJ5UG9pbnRzLCBjcmVhdGVDb21waWxlRm4pKTtcbiAgfVxufVxuIl19
@@ -96,13 +96,22 @@ export interface TaskQueue {
96
96
  *
97
97
  * @param task The task to mark as completed.
98
98
  */
99
- markTaskCompleted(task: Task): void;
99
+ markAsCompleted(task: Task): void;
100
100
  /**
101
101
  * Mark a task as failed.
102
102
  *
103
103
  * Do not process the tasks that depend upon the given task.
104
104
  */
105
105
  markAsFailed(task: Task): void;
106
+ /**
107
+ * Mark a task as not processed (i.e. add an in-progress task back to the queue).
108
+ *
109
+ * This removes the task from the internal list of in-progress tasks and adds it back to the list
110
+ * of pending tasks.
111
+ *
112
+ * @param task The task to mark as not processed.
113
+ */
114
+ markAsUnprocessed(task: Task): void;
106
115
  /**
107
116
  * Return a string representation of the task queue (for debugging purposes).
108
117
  *
@@ -11,4 +11,4 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TaskDependencies = Map;
13
13
  });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2V4ZWN1dGlvbi90YXNrcy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUF5RGEsUUFBQSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0VudHJ5UG9pbnQsIEVudHJ5UG9pbnRKc29uUHJvcGVydHksIEpzb25PYmplY3R9IGZyb20gJy4uLy4uL3BhY2thZ2VzL2VudHJ5X3BvaW50JztcbmltcG9ydCB7UGFydGlhbGx5T3JkZXJlZExpc3R9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdW5pdCBvZiB3b3JrIHRvIGJlIHVuZGVydGFrZW4gYnkgYW4gYEV4ZWN1dG9yYC5cbiAqXG4gKiBBIHRhc2sgY29uc2lzdHMgb2YgcHJvY2Vzc2luZyBhIHNwZWNpZmljIGZvcm1hdCBwcm9wZXJ0eSBvZiBhbiBlbnRyeS1wb2ludC5cbiAqIFRoaXMgbWF5IG9yIG1heSBub3QgYWxzbyBpbmNsdWRlIHByb2Nlc3NpbmcgdGhlIHR5cGluZ3MgZm9yIHRoYXQgZW50cnktcG9pbnQsIHdoaWNoIG9ubHkgbmVlZHMgdG9cbiAqIGhhcHBlbiBvbmNlIGFjcm9zcyBhbGwgdGhlIGZvcm1hdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFzayBleHRlbmRzIEpzb25PYmplY3Qge1xuICAvKiogVGhlIGBFbnRyeVBvaW50YCB3aGljaCBuZWVkcyB0byBiZSBwcm9jZXNzZWQgYXMgcGFydCBvZiB0aGUgdGFzay4gKi9cbiAgZW50cnlQb2ludDogRW50cnlQb2ludDtcblxuICAvKipcbiAgICogVGhlIGBwYWNrYWdlLmpzb25gIGZvcm1hdCBwcm9wZXJ0eSB0byBwcm9jZXNzIChpLmUuIHRoZSBwcm9wZXJ0eSB3aGljaCBwb2ludHMgdG8gdGhlIGZpbGUgdGhhdFxuICAgKiBpcyB0aGUgcHJvZ3JhbSBlbnRyeS1wb2ludCkuXG4gICAqL1xuICBmb3JtYXRQcm9wZXJ0eTogRW50cnlQb2ludEpzb25Qcm9wZXJ0eTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgYWxsIGZvcm1hdCBwcm9wZXJ0aWVzIChpbmNsdWRpbmcgYHRhc2suZm9ybWF0UHJvcGVydHlgKSB0aGF0IHNob3VsZCBiZSBtYXJrZWQgYXNcbiAgICogcHJvY2Vzc2VkIG9uY2UgdGhlIHRhc2sgaGFzIGJlZW4gY29tcGxldGVkLCBiZWNhdXNlIHRoZXkgcG9pbnQgdG8gdGhlIGZvcm1hdC1wYXRoIHRoYXQgd2lsbCBiZVxuICAgKiBwcm9jZXNzZWQgYXMgcGFydCBvZiB0aGUgdGFzay5cbiAgICovXG4gIGZvcm1hdFByb3BlcnRpZXNUb01hcmtBc1Byb2Nlc3NlZDogRW50cnlQb2ludEpzb25Qcm9wZXJ0eVtdO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGFsc28gcHJvY2VzcyB0eXBpbmdzIGZvciB0aGlzIGVudHJ5LXBvaW50IGFzIHBhcnQgb2YgdGhlIHRhc2suICovXG4gIHByb2Nlc3NEdHM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHBhcnRpYWxseSBvcmRlcmVkIGxpc3Qgb2YgdGFza3MuXG4gKlxuICogVGhlIG9yZGVyaW5nL3ByZWNlZGVuY2Ugb2YgdGFza3MgaXMgZGV0ZXJtaW5lZCBieSB0aGUgaW50ZXItZGVwZW5kZW5jaWVzIGJldHdlZW4gdGhlaXIgYXNzb2NpYXRlZFxuICogZW50cnktcG9pbnRzLiBTcGVjaWZpY2FsbHksIHRoZSB0YXNrcycgb3JkZXIvcHJlY2VkZW5jZSBpcyBzdWNoIHRoYXQgdGFza3MgYXNzb2NpYXRlZCB0b1xuICogZGVwZW5kZW50IGVudHJ5LXBvaW50cyBhbHdheXMgY29tZSBhZnRlciB0YXNrcyBhc3NvY2lhdGVkIHdpdGggdGhlaXIgZGVwZW5kZW5jaWVzLlxuICpcbiAqIEFzIHJlc3VsdCBvZiB0aGlzIG9yZGVyaW5nLCBpdCBpcyBndWFyYW50ZWVkIHRoYXQgLSBieSBwcm9jZXNzaW5nIHRhc2tzIGluIHRoZSBvcmRlciBpbiB3aGljaFxuICogdGhleSBhcHBlYXIgaW4gdGhlIGxpc3QgLSBhIHRhc2sncyBkZXBlbmRlbmNpZXMgd2lsbCBhbHdheXMgaGF2ZSBiZWVuIHByb2Nlc3NlZCBiZWZvcmUgcHJvY2Vzc2luZ1xuICogdGhlIHRhc2sgaXRzZWxmLlxuICpcbiAqIFNlZSBgRGVwZW5kZW5jeVJlc29sdmVyI3NvcnRFbnRyeVBvaW50c0J5RGVwZW5kZW5jeSgpYC5cbiAqL1xuZXhwb3J0IHR5cGUgUGFydGlhbGx5T3JkZXJlZFRhc2tzID0gUGFydGlhbGx5T3JkZXJlZExpc3Q8VGFzaz47XG5cbi8qKlxuICogQSBtYXBwaW5nIGZyb20gVGFza3MgdG8gdGhlIFRhc2tzIHRoYXQgZGVwZW5kIHVwb24gdGhlbSAoZGVwZW5kZW50cykuXG4gKi9cbmV4cG9ydCB0eXBlIFRhc2tEZXBlbmRlbmNpZXMgPSBNYXA8VGFzaywgU2V0PFRhc2s+PjtcbmV4cG9ydCBjb25zdCBUYXNrRGVwZW5kZW5jaWVzID0gTWFwO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgVGFza0NvbXBsZXRlZENhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2sgPSAodGFza1F1ZXVlOiBUYXNrUXVldWUpID0+IFRhc2tDb21wbGV0ZWRDYWxsYmFjaztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbmNlIGEgdGFzayBoYXMgYmVlbiBwcm9jZXNzZWQuXG4gKi9cbmV4cG9ydCB0eXBlIFRhc2tDb21wbGV0ZWRDYWxsYmFjayA9XG4gICAgKHRhc2s6IFRhc2ssIG91dGNvbWU6IFRhc2tQcm9jZXNzaW5nT3V0Y29tZSwgbWVzc2FnZTogc3RyaW5nfG51bGwpID0+IHZvaWQ7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgb3V0Y29tZSBvZiBwcm9jZXNzaW5nIGEgYFRhc2tgLlxuICovXG5leHBvcnQgY29uc3QgZW51bSBUYXNrUHJvY2Vzc2luZ091dGNvbWUge1xuICAvKiogU3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCB0aGUgdGFyZ2V0IGZvcm1hdCBwcm9wZXJ0eS4gKi9cbiAgUHJvY2Vzc2VkLFxuICAvKiogRmFpbGVkIHRvIHByb2Nlc3MgdGhlIHRhcmdldCBmb3JtYXQuICovXG4gIEZhaWxlZCxcbn1cblxuLyoqXG4gKiBBIHdyYXBwZXIgYXJvdW5kIGEgbGlzdCBvZiB0YXNrcyBhbmQgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3IgZ2V0dGluZyB0aGUgbmV4dCB0YXNrIG9mXG4gKiBpbnRlcmVzdCBhbmQgZGV0ZXJtaW5pbmcgd2hlbiBhbGwgdGFza3MgaGF2ZSBiZWVuIGNvbXBsZXRlZC5cbiAqXG4gKiAoVGhpcyBhbGxvd3MgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyB0byBpbXBvc2UgZGlmZmVyZW50IGNvbnN0cmFpbnRzIG9uIHdoZW4gYSB0YXNrJ3NcbiAqIHByb2Nlc3NpbmcgY2FuIHN0YXJ0LilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrUXVldWUge1xuICAvKiogV2hldGhlciBhbGwgdGFza3MgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gKi9cbiAgYWxsVGFza3NDb21wbGV0ZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmV4dCB0YXNrIHdob3NlIHByb2Nlc3NpbmcgY2FuIHN0YXJ0IChpZiBhbnkpLlxuICAgKlxuICAgKiBUaGlzIGltcGxpY2l0bHkgbWFya3MgdGhlIHRhc2sgYXMgaW4tcHJvZ3Jlc3MuXG4gICAqIChUaGlzIGluZm9ybWF0aW9uIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYWxsIHRhc2tzIGhhdmUgYmVlbiBjb21wbGV0ZWQuKVxuICAgKlxuICAgKiBAcmV0dXJuIFRoZSBuZXh0IHRhc2sgYXZhaWxhYmxlIGZvciBwcm9jZXNzaW5nIG9yIGBudWxsYCwgaWYgbm8gdGFzayBjYW4gYmUgcHJvY2Vzc2VkIGF0IHRoZVxuICAgKiAgICAgICAgIG1vbWVudCAoaW5jbHVkaW5nIGlmIHRoZXJlIGFyZSBubyBtb3JlIHVucHJvY2Vzc2VkIHRhc2tzKS5cbiAgICovXG4gIGdldE5leHRUYXNrKCk6IFRhc2t8bnVsbDtcblxuICAvKipcbiAgICogTWFyayBhIHRhc2sgYXMgY29tcGxldGVkLlxuICAgKlxuICAgKiBUaGlzIHJlbW92ZXMgdGhlIHRhc2sgZnJvbSB0aGUgaW50ZXJuYWwgbGlzdCBvZiBpbi1wcm9ncmVzcyB0YXNrcy5cbiAgICogKFRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBhbGwgdGFza3MgaGF2ZSBiZWVuIGNvbXBsZXRlZC4pXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrIFRoZSB0YXNrIHRvIG1hcmsgYXMgY29tcGxldGVkLlxuICAgKi9cbiAgbWFya1Rhc2tDb21wbGV0ZWQodGFzazogVGFzayk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIE1hcmsgYSB0YXNrIGFzIGZhaWxlZC5cbiAgICpcbiAgICogRG8gbm90IHByb2Nlc3MgdGhlIHRhc2tzIHRoYXQgZGVwZW5kIHVwb24gdGhlIGdpdmVuIHRhc2suXG4gICAqL1xuICBtYXJrQXNGYWlsZWQodGFzazogVGFzayk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdGFzayBxdWV1ZSAoZm9yIGRlYnVnZ2luZyBwdXJwb3NlcykuXG4gICAqXG4gICAqIEByZXR1cm4gQSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHRhc2sgcXVldWUuXG4gICAqL1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2V4ZWN1dGlvbi90YXNrcy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUF5RGEsUUFBQSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0VudHJ5UG9pbnQsIEVudHJ5UG9pbnRKc29uUHJvcGVydHksIEpzb25PYmplY3R9IGZyb20gJy4uLy4uL3BhY2thZ2VzL2VudHJ5X3BvaW50JztcbmltcG9ydCB7UGFydGlhbGx5T3JkZXJlZExpc3R9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdW5pdCBvZiB3b3JrIHRvIGJlIHVuZGVydGFrZW4gYnkgYW4gYEV4ZWN1dG9yYC5cbiAqXG4gKiBBIHRhc2sgY29uc2lzdHMgb2YgcHJvY2Vzc2luZyBhIHNwZWNpZmljIGZvcm1hdCBwcm9wZXJ0eSBvZiBhbiBlbnRyeS1wb2ludC5cbiAqIFRoaXMgbWF5IG9yIG1heSBub3QgYWxzbyBpbmNsdWRlIHByb2Nlc3NpbmcgdGhlIHR5cGluZ3MgZm9yIHRoYXQgZW50cnktcG9pbnQsIHdoaWNoIG9ubHkgbmVlZHMgdG9cbiAqIGhhcHBlbiBvbmNlIGFjcm9zcyBhbGwgdGhlIGZvcm1hdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFzayBleHRlbmRzIEpzb25PYmplY3Qge1xuICAvKiogVGhlIGBFbnRyeVBvaW50YCB3aGljaCBuZWVkcyB0byBiZSBwcm9jZXNzZWQgYXMgcGFydCBvZiB0aGUgdGFzay4gKi9cbiAgZW50cnlQb2ludDogRW50cnlQb2ludDtcblxuICAvKipcbiAgICogVGhlIGBwYWNrYWdlLmpzb25gIGZvcm1hdCBwcm9wZXJ0eSB0byBwcm9jZXNzIChpLmUuIHRoZSBwcm9wZXJ0eSB3aGljaCBwb2ludHMgdG8gdGhlIGZpbGUgdGhhdFxuICAgKiBpcyB0aGUgcHJvZ3JhbSBlbnRyeS1wb2ludCkuXG4gICAqL1xuICBmb3JtYXRQcm9wZXJ0eTogRW50cnlQb2ludEpzb25Qcm9wZXJ0eTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgYWxsIGZvcm1hdCBwcm9wZXJ0aWVzIChpbmNsdWRpbmcgYHRhc2suZm9ybWF0UHJvcGVydHlgKSB0aGF0IHNob3VsZCBiZSBtYXJrZWQgYXNcbiAgICogcHJvY2Vzc2VkIG9uY2UgdGhlIHRhc2sgaGFzIGJlZW4gY29tcGxldGVkLCBiZWNhdXNlIHRoZXkgcG9pbnQgdG8gdGhlIGZvcm1hdC1wYXRoIHRoYXQgd2lsbCBiZVxuICAgKiBwcm9jZXNzZWQgYXMgcGFydCBvZiB0aGUgdGFzay5cbiAgICovXG4gIGZvcm1hdFByb3BlcnRpZXNUb01hcmtBc1Byb2Nlc3NlZDogRW50cnlQb2ludEpzb25Qcm9wZXJ0eVtdO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGFsc28gcHJvY2VzcyB0eXBpbmdzIGZvciB0aGlzIGVudHJ5LXBvaW50IGFzIHBhcnQgb2YgdGhlIHRhc2suICovXG4gIHByb2Nlc3NEdHM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHBhcnRpYWxseSBvcmRlcmVkIGxpc3Qgb2YgdGFza3MuXG4gKlxuICogVGhlIG9yZGVyaW5nL3ByZWNlZGVuY2Ugb2YgdGFza3MgaXMgZGV0ZXJtaW5lZCBieSB0aGUgaW50ZXItZGVwZW5kZW5jaWVzIGJldHdlZW4gdGhlaXIgYXNzb2NpYXRlZFxuICogZW50cnktcG9pbnRzLiBTcGVjaWZpY2FsbHksIHRoZSB0YXNrcycgb3JkZXIvcHJlY2VkZW5jZSBpcyBzdWNoIHRoYXQgdGFza3MgYXNzb2NpYXRlZCB0b1xuICogZGVwZW5kZW50IGVudHJ5LXBvaW50cyBhbHdheXMgY29tZSBhZnRlciB0YXNrcyBhc3NvY2lhdGVkIHdpdGggdGhlaXIgZGVwZW5kZW5jaWVzLlxuICpcbiAqIEFzIHJlc3VsdCBvZiB0aGlzIG9yZGVyaW5nLCBpdCBpcyBndWFyYW50ZWVkIHRoYXQgLSBieSBwcm9jZXNzaW5nIHRhc2tzIGluIHRoZSBvcmRlciBpbiB3aGljaFxuICogdGhleSBhcHBlYXIgaW4gdGhlIGxpc3QgLSBhIHRhc2sncyBkZXBlbmRlbmNpZXMgd2lsbCBhbHdheXMgaGF2ZSBiZWVuIHByb2Nlc3NlZCBiZWZvcmUgcHJvY2Vzc2luZ1xuICogdGhlIHRhc2sgaXRzZWxmLlxuICpcbiAqIFNlZSBgRGVwZW5kZW5jeVJlc29sdmVyI3NvcnRFbnRyeVBvaW50c0J5RGVwZW5kZW5jeSgpYC5cbiAqL1xuZXhwb3J0IHR5cGUgUGFydGlhbGx5T3JkZXJlZFRhc2tzID0gUGFydGlhbGx5T3JkZXJlZExpc3Q8VGFzaz47XG5cbi8qKlxuICogQSBtYXBwaW5nIGZyb20gVGFza3MgdG8gdGhlIFRhc2tzIHRoYXQgZGVwZW5kIHVwb24gdGhlbSAoZGVwZW5kZW50cykuXG4gKi9cbmV4cG9ydCB0eXBlIFRhc2tEZXBlbmRlbmNpZXMgPSBNYXA8VGFzaywgU2V0PFRhc2s+PjtcbmV4cG9ydCBjb25zdCBUYXNrRGVwZW5kZW5jaWVzID0gTWFwO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgVGFza0NvbXBsZXRlZENhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDcmVhdGVUYXNrQ29tcGxldGVkQ2FsbGJhY2sgPSAodGFza1F1ZXVlOiBUYXNrUXVldWUpID0+IFRhc2tDb21wbGV0ZWRDYWxsYmFjaztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbmNlIGEgdGFzayBoYXMgYmVlbiBwcm9jZXNzZWQuXG4gKi9cbmV4cG9ydCB0eXBlIFRhc2tDb21wbGV0ZWRDYWxsYmFjayA9XG4gICAgKHRhc2s6IFRhc2ssIG91dGNvbWU6IFRhc2tQcm9jZXNzaW5nT3V0Y29tZSwgbWVzc2FnZTogc3RyaW5nfG51bGwpID0+IHZvaWQ7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgb3V0Y29tZSBvZiBwcm9jZXNzaW5nIGEgYFRhc2tgLlxuICovXG5leHBvcnQgY29uc3QgZW51bSBUYXNrUHJvY2Vzc2luZ091dGNvbWUge1xuICAvKiogU3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCB0aGUgdGFyZ2V0IGZvcm1hdCBwcm9wZXJ0eS4gKi9cbiAgUHJvY2Vzc2VkLFxuICAvKiogRmFpbGVkIHRvIHByb2Nlc3MgdGhlIHRhcmdldCBmb3JtYXQuICovXG4gIEZhaWxlZCxcbn1cblxuLyoqXG4gKiBBIHdyYXBwZXIgYXJvdW5kIGEgbGlzdCBvZiB0YXNrcyBhbmQgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3IgZ2V0dGluZyB0aGUgbmV4dCB0YXNrIG9mXG4gKiBpbnRlcmVzdCBhbmQgZGV0ZXJtaW5pbmcgd2hlbiBhbGwgdGFza3MgaGF2ZSBiZWVuIGNvbXBsZXRlZC5cbiAqXG4gKiAoVGhpcyBhbGxvd3MgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyB0byBpbXBvc2UgZGlmZmVyZW50IGNvbnN0cmFpbnRzIG9uIHdoZW4gYSB0YXNrJ3NcbiAqIHByb2Nlc3NpbmcgY2FuIHN0YXJ0LilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrUXVldWUge1xuICAvKiogV2hldGhlciBhbGwgdGFza3MgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gKi9cbiAgYWxsVGFza3NDb21wbGV0ZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmV4dCB0YXNrIHdob3NlIHByb2Nlc3NpbmcgY2FuIHN0YXJ0IChpZiBhbnkpLlxuICAgKlxuICAgKiBUaGlzIGltcGxpY2l0bHkgbWFya3MgdGhlIHRhc2sgYXMgaW4tcHJvZ3Jlc3MuXG4gICAqIChUaGlzIGluZm9ybWF0aW9uIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYWxsIHRhc2tzIGhhdmUgYmVlbiBjb21wbGV0ZWQuKVxuICAgKlxuICAgKiBAcmV0dXJuIFRoZSBuZXh0IHRhc2sgYXZhaWxhYmxlIGZvciBwcm9jZXNzaW5nIG9yIGBudWxsYCwgaWYgbm8gdGFzayBjYW4gYmUgcHJvY2Vzc2VkIGF0IHRoZVxuICAgKiAgICAgICAgIG1vbWVudCAoaW5jbHVkaW5nIGlmIHRoZXJlIGFyZSBubyBtb3JlIHVucHJvY2Vzc2VkIHRhc2tzKS5cbiAgICovXG4gIGdldE5leHRUYXNrKCk6IFRhc2t8bnVsbDtcblxuICAvKipcbiAgICogTWFyayBhIHRhc2sgYXMgY29tcGxldGVkLlxuICAgKlxuICAgKiBUaGlzIHJlbW92ZXMgdGhlIHRhc2sgZnJvbSB0aGUgaW50ZXJuYWwgbGlzdCBvZiBpbi1wcm9ncmVzcyB0YXNrcy5cbiAgICogKFRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBhbGwgdGFza3MgaGF2ZSBiZWVuIGNvbXBsZXRlZC4pXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrIFRoZSB0YXNrIHRvIG1hcmsgYXMgY29tcGxldGVkLlxuICAgKi9cbiAgbWFya0FzQ29tcGxldGVkKHRhc2s6IFRhc2spOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBNYXJrIGEgdGFzayBhcyBmYWlsZWQuXG4gICAqXG4gICAqIERvIG5vdCBwcm9jZXNzIHRoZSB0YXNrcyB0aGF0IGRlcGVuZCB1cG9uIHRoZSBnaXZlbiB0YXNrLlxuICAgKi9cbiAgbWFya0FzRmFpbGVkKHRhc2s6IFRhc2spOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBNYXJrIGEgdGFzayBhcyBub3QgcHJvY2Vzc2VkIChpLmUuIGFkZCBhbiBpbi1wcm9ncmVzcyB0YXNrIGJhY2sgdG8gdGhlIHF1ZXVlKS5cbiAgICpcbiAgICogVGhpcyByZW1vdmVzIHRoZSB0YXNrIGZyb20gdGhlIGludGVybmFsIGxpc3Qgb2YgaW4tcHJvZ3Jlc3MgdGFza3MgYW5kIGFkZHMgaXQgYmFjayB0byB0aGUgbGlzdFxuICAgKiBvZiBwZW5kaW5nIHRhc2tzLlxuICAgKlxuICAgKiBAcGFyYW0gdGFzayBUaGUgdGFzayB0byBtYXJrIGFzIG5vdCBwcm9jZXNzZWQuXG4gICAqL1xuICBtYXJrQXNVbnByb2Nlc3NlZCh0YXNrOiBUYXNrKTogdm9pZDtcblxuICAvKipcbiAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0YXNrIHF1ZXVlIChmb3IgZGVidWdnaW5nIHB1cnBvc2VzKS5cbiAgICpcbiAgICogQHJldHVybiBBIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdGFzayBxdWV1ZS5cbiAgICovXG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbn1cbiJdfQ==
@@ -24,8 +24,9 @@ export declare abstract class BaseTaskQueue implements TaskQueue {
24
24
  constructor(logger: Logger, tasks: PartiallyOrderedTasks, dependencies: TaskDependencies);
25
25
  protected abstract computeNextTask(): Task | null;
26
26
  getNextTask(): Task | null;
27
+ markAsCompleted(task: Task): void;
27
28
  markAsFailed(task: Task): void;
28
- markTaskCompleted(task: Task): void;
29
+ markAsUnprocessed(task: Task): void;
29
30
  toString(): string;
30
31
  /**
31
32
  * Mark the given `task` as to be skipped, then recursive skip all its dependents.
@@ -39,13 +39,19 @@
39
39
  break;
40
40
  }
41
41
  // We are skipping this task so mark it as complete
42
- this.markTaskCompleted(nextTask);
42
+ this.markAsCompleted(nextTask);
43
43
  var failedTask = this.tasksToSkip.get(nextTask);
44
44
  this.logger.warn("Skipping processing of " + nextTask.entryPoint.name + " because its dependency " + failedTask.entryPoint.name + " failed to compile.");
45
45
  nextTask = this.computeNextTask();
46
46
  }
47
47
  return nextTask;
48
48
  };
49
+ BaseTaskQueue.prototype.markAsCompleted = function (task) {
50
+ if (!this.inProgressTasks.has(task)) {
51
+ throw new Error("Trying to mark task that was not in progress as completed: " + utils_1.stringifyTask(task));
52
+ }
53
+ this.inProgressTasks.delete(task);
54
+ };
49
55
  BaseTaskQueue.prototype.markAsFailed = function (task) {
50
56
  var e_1, _a;
51
57
  if (this.dependencies.has(task)) {
@@ -64,11 +70,12 @@
64
70
  }
65
71
  }
66
72
  };
67
- BaseTaskQueue.prototype.markTaskCompleted = function (task) {
73
+ BaseTaskQueue.prototype.markAsUnprocessed = function (task) {
68
74
  if (!this.inProgressTasks.has(task)) {
69
- throw new Error("Trying to mark task that was not in progress as completed: " + utils_1.stringifyTask(task));
75
+ throw new Error("Trying to mark task that was not in progress as unprocessed: " + utils_1.stringifyTask(task));
70
76
  }
71
77
  this.inProgressTasks.delete(task);
78
+ this.tasks.unshift(task);
72
79
  };
73
80
  BaseTaskQueue.prototype.toString = function () {
74
81
  var inProgTasks = Array.from(this.inProgressTasks);
@@ -109,4 +116,4 @@
109
116
  }());
110
117
  exports.BaseTaskQueue = BaseTaskQueue;
111
118
  });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV90YXNrX3F1ZXVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2V4ZWN1dGlvbi90YXNrcy9xdWV1ZXMvYmFzZV90YXNrX3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVNBLDhFQUF1QztJQUd2Qzs7T0FFRztJQUNIO1FBV0UsdUJBQ2MsTUFBYyxFQUFZLEtBQTRCLEVBQ3RELFlBQThCO1lBRDlCLFdBQU0sR0FBTixNQUFNLENBQVE7WUFBWSxVQUFLLEdBQUwsS0FBSyxDQUF1QjtZQUN0RCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7WUFUbEMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBUSxDQUFDO1lBRTVDOztlQUVHO1lBQ0ssZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO1FBSUcsQ0FBQztRQVpoRCxzQkFBSSw0Q0FBaUI7aUJBQXJCO2dCQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7OztXQUFBO1FBY0QsbUNBQVcsR0FBWDtZQUNFLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0QyxPQUFPLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDbkMsTUFBTTtpQkFDUDtnQkFDRCxtREFBbUQ7Z0JBQ25ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakMsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUEwQixRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksZ0NBQy9ELFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSx3QkFBcUIsQ0FBQyxDQUFDO2dCQUNyRCxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ25DO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUVELG9DQUFZLEdBQVosVUFBYSxJQUFVOztZQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFOztvQkFDL0IsS0FBNEIsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFBLGdCQUFBLDRCQUFFO3dCQUFyRCxJQUFNLGFBQWEsV0FBQTt3QkFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztxQkFDOUM7Ozs7Ozs7OzthQUNGO1FBQ0gsQ0FBQztRQUVELHlDQUFpQixHQUFqQixVQUFrQixJQUFVO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FDWCxnRUFBOEQscUJBQWEsQ0FBQyxJQUFJLENBQUcsQ0FBQyxDQUFDO2FBQzFGO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELGdDQUFRLEdBQVI7WUFDRSxJQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUVyRCxPQUFVLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxPQUFJO2lCQUMvQiw0QkFBMEIsSUFBSSxDQUFDLGlCQUFpQixPQUFJLENBQUE7aUJBQ3BELDBCQUF3QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sV0FBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQUksQ0FBQTtpQkFDMUYsMEJBQXdCLFdBQVcsQ0FBQyxNQUFNLFdBQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFHLENBQUEsQ0FBQztRQUNqRyxDQUFDO1FBRUQ7Ozs7O1dBS0c7UUFDTywwQ0FBa0IsR0FBNUIsVUFBNkIsSUFBVSxFQUFFLFVBQWdCOztZQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTs7b0JBQy9CLEtBQTRCLElBQUEsS0FBQSxpQkFBQSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQSxnQkFBQSw0QkFBRTt3QkFBckQsSUFBTSxhQUFhLFdBQUE7d0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7cUJBQ3BEOzs7Ozs7Ozs7YUFDRjtRQUNILENBQUM7UUFFUyxzQ0FBYyxHQUF4QixVQUF5QixLQUFhLEVBQUUsV0FBbUI7WUFDekQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsT0FBSyxXQUFXLFVBQUsscUJBQWEsQ0FBQyxJQUFJLENBQUcsRUFBMUMsQ0FBMEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0gsb0JBQUM7SUFBRCxDQUFDLEFBN0VELElBNkVDO0lBN0VxQixzQ0FBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi8uLi8uLi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1BhcnRpYWxseU9yZGVyZWRUYXNrcywgVGFzaywgVGFza0RlcGVuZGVuY2llcywgVGFza1F1ZXVlfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtzdHJpbmdpZnlUYXNrfSBmcm9tICcuLi91dGlscyc7XG5cblxuLyoqXG4gKiBBIGJhc2UgYFRhc2tRdWV1ZWAgaW1wbGVtZW50YXRpb24gdG8gYmUgdXNlZCBhcyBiYXNlIGZvciBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlVGFza1F1ZXVlIGltcGxlbWVudHMgVGFza1F1ZXVlIHtcbiAgZ2V0IGFsbFRhc2tzQ29tcGxldGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy50YXNrcy5sZW5ndGggPT09IDApICYmICh0aGlzLmluUHJvZ3Jlc3NUYXNrcy5zaXplID09PSAwKTtcbiAgfVxuICBwcm90ZWN0ZWQgaW5Qcm9ncmVzc1Rhc2tzID0gbmV3IFNldDxUYXNrPigpO1xuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiB0YXNrcyB0aGF0IHNob3VsZCBiZSBza2lwcGVkLCBtYXBwZWQgdG8gdGhlIHRhc2sgdGhhdCBjYXVzZWQgdGhlbSB0byBiZSBza2lwcGVkLlxuICAgKi9cbiAgcHJpdmF0ZSB0YXNrc1RvU2tpcCA9IG5ldyBNYXA8VGFzaywgVGFzaz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlciwgcHJvdGVjdGVkIHRhc2tzOiBQYXJ0aWFsbHlPcmRlcmVkVGFza3MsXG4gICAgICBwcm90ZWN0ZWQgZGVwZW5kZW5jaWVzOiBUYXNrRGVwZW5kZW5jaWVzKSB7fVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjb21wdXRlTmV4dFRhc2soKTogVGFza3xudWxsO1xuXG4gIGdldE5leHRUYXNrKCk6IFRhc2t8bnVsbCB7XG4gICAgbGV0IG5leHRUYXNrID0gdGhpcy5jb21wdXRlTmV4dFRhc2soKTtcbiAgICB3aGlsZSAobmV4dFRhc2sgIT09IG51bGwpIHtcbiAgICAgIGlmICghdGhpcy50YXNrc1RvU2tpcC5oYXMobmV4dFRhc2spKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gV2UgYXJlIHNraXBwaW5nIHRoaXMgdGFzayBzbyBtYXJrIGl0IGFzIGNvbXBsZXRlXG4gICAgICB0aGlzLm1hcmtUYXNrQ29tcGxldGVkKG5leHRUYXNrKTtcbiAgICAgIGNvbnN0IGZhaWxlZFRhc2sgPSB0aGlzLnRhc2tzVG9Ta2lwLmdldChuZXh0VGFzaykhO1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgU2tpcHBpbmcgcHJvY2Vzc2luZyBvZiAke25leHRUYXNrLmVudHJ5UG9pbnQubmFtZX0gYmVjYXVzZSBpdHMgZGVwZW5kZW5jeSAke1xuICAgICAgICAgIGZhaWxlZFRhc2suZW50cnlQb2ludC5uYW1lfSBmYWlsZWQgdG8gY29tcGlsZS5gKTtcbiAgICAgIG5leHRUYXNrID0gdGhpcy5jb21wdXRlTmV4dFRhc2soKTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHRUYXNrO1xuICB9XG5cbiAgbWFya0FzRmFpbGVkKHRhc2s6IFRhc2spIHtcbiAgICBpZiAodGhpcy5kZXBlbmRlbmNpZXMuaGFzKHRhc2spKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVudFRhc2sgb2YgdGhpcy5kZXBlbmRlbmNpZXMuZ2V0KHRhc2spISkge1xuICAgICAgICB0aGlzLnNraXBEZXBlbmRlbnRUYXNrcyhkZXBlbmRlbnRUYXNrLCB0YXNrKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBtYXJrVGFza0NvbXBsZXRlZCh0YXNrOiBUYXNrKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmluUHJvZ3Jlc3NUYXNrcy5oYXModGFzaykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVHJ5aW5nIHRvIG1hcmsgdGFzayB0aGF0IHdhcyBub3QgaW4gcHJvZ3Jlc3MgYXMgY29tcGxldGVkOiAke3N0cmluZ2lmeVRhc2sodGFzayl9YCk7XG4gICAgfVxuXG4gICAgdGhpcy5pblByb2dyZXNzVGFza3MuZGVsZXRlKHRhc2spO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCBpblByb2dUYXNrcyA9IEFycmF5LmZyb20odGhpcy5pblByb2dyZXNzVGFza3MpO1xuXG4gICAgcmV0dXJuIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX1cXG5gICtcbiAgICAgICAgYCAgQWxsIHRhc2tzIGNvbXBsZXRlZDogJHt0aGlzLmFsbFRhc2tzQ29tcGxldGVkfVxcbmAgK1xuICAgICAgICBgICBVbnByb2Nlc3NlZCB0YXNrcyAoJHt0aGlzLnRhc2tzLmxlbmd0aH0pOiAke3RoaXMuc3RyaW5naWZ5VGFza3ModGhpcy50YXNrcywgJyAgICAnKX1cXG5gICtcbiAgICAgICAgYCAgSW4tcHJvZ3Jlc3MgdGFza3MgKCR7aW5Qcm9nVGFza3MubGVuZ3RofSk6ICR7dGhpcy5zdHJpbmdpZnlUYXNrcyhpblByb2dUYXNrcywgJyAgICAnKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhlIGdpdmVuIGB0YXNrYCBhcyB0byBiZSBza2lwcGVkLCB0aGVuIHJlY3Vyc2l2ZSBza2lwIGFsbCBpdHMgZGVwZW5kZW50cy5cbiAgICpcbiAgICogQHBhcmFtIHRhc2sgVGhlIHRhc2sgdG8gc2tpcFxuICAgKiBAcGFyYW0gZmFpbGVkVGFzayBUaGUgdGFzayB0aGF0IGZhaWxlZCwgY2F1c2luZyB0aGlzIHRhc2sgdG8gYmUgc2tpcHBlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHNraXBEZXBlbmRlbnRUYXNrcyh0YXNrOiBUYXNrLCBmYWlsZWRUYXNrOiBUYXNrKSB7XG4gICAgdGhpcy50YXNrc1RvU2tpcC5zZXQodGFzaywgZmFpbGVkVGFzayk7XG4gICAgaWYgKHRoaXMuZGVwZW5kZW5jaWVzLmhhcyh0YXNrKSkge1xuICAgICAgZm9yIChjb25zdCBkZXBlbmRlbnRUYXNrIG9mIHRoaXMuZGVwZW5kZW5jaWVzLmdldCh0YXNrKSEpIHtcbiAgICAgICAgdGhpcy5za2lwRGVwZW5kZW50VGFza3MoZGVwZW5kZW50VGFzaywgZmFpbGVkVGFzayk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHN0cmluZ2lmeVRhc2tzKHRhc2tzOiBUYXNrW10sIGluZGVudGF0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0YXNrcy5tYXAodGFzayA9PiBgXFxuJHtpbmRlbnRhdGlvbn0tICR7c3RyaW5naWZ5VGFzayh0YXNrKX1gKS5qb2luKCcnKTtcbiAgfVxufVxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV90YXNrX3F1ZXVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2V4ZWN1dGlvbi90YXNrcy9xdWV1ZXMvYmFzZV90YXNrX3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVNBLDhFQUF1QztJQUd2Qzs7T0FFRztJQUNIO1FBV0UsdUJBQ2MsTUFBYyxFQUFZLEtBQTRCLEVBQ3RELFlBQThCO1lBRDlCLFdBQU0sR0FBTixNQUFNLENBQVE7WUFBWSxVQUFLLEdBQUwsS0FBSyxDQUF1QjtZQUN0RCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7WUFUbEMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBUSxDQUFDO1lBRTVDOztlQUVHO1lBQ0ssZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO1FBSUcsQ0FBQztRQVpoRCxzQkFBSSw0Q0FBaUI7aUJBQXJCO2dCQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7OztXQUFBO1FBY0QsbUNBQVcsR0FBWDtZQUNFLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0QyxPQUFPLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDbkMsTUFBTTtpQkFDUDtnQkFDRCxtREFBbUQ7Z0JBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9CLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBRSxDQUFDO2dCQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBMEIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLGdDQUMvRCxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksd0JBQXFCLENBQUMsQ0FBQztnQkFDckQsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUNuQztZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCx1Q0FBZSxHQUFmLFVBQWdCLElBQVU7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLElBQUksS0FBSyxDQUNYLGdFQUE4RCxxQkFBYSxDQUFDLElBQUksQ0FBRyxDQUFDLENBQUM7YUFDMUY7WUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsb0NBQVksR0FBWixVQUFhLElBQVU7O1lBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7O29CQUMvQixLQUE0QixJQUFBLEtBQUEsaUJBQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUEsZ0JBQUEsNEJBQUU7d0JBQXJELElBQU0sYUFBYSxXQUFBO3dCQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO3FCQUM5Qzs7Ozs7Ozs7O2FBQ0Y7UUFDSCxDQUFDO1FBRUQseUNBQWlCLEdBQWpCLFVBQWtCLElBQVU7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLElBQUksS0FBSyxDQUNYLGtFQUFnRSxxQkFBYSxDQUFDLElBQUksQ0FBRyxDQUFDLENBQUM7YUFDNUY7WUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsZ0NBQVEsR0FBUjtZQUNFLElBQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRXJELE9BQVUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQUk7aUJBQy9CLDRCQUEwQixJQUFJLENBQUMsaUJBQWlCLE9BQUksQ0FBQTtpQkFDcEQsMEJBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxXQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBSSxDQUFBO2lCQUMxRiwwQkFBd0IsV0FBVyxDQUFDLE1BQU0sV0FBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUcsQ0FBQSxDQUFDO1FBQ2pHLENBQUM7UUFFRDs7Ozs7V0FLRztRQUNPLDBDQUFrQixHQUE1QixVQUE2QixJQUFVLEVBQUUsVUFBZ0I7O1lBQ3ZELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN2QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFOztvQkFDL0IsS0FBNEIsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFBLGdCQUFBLDRCQUFFO3dCQUFyRCxJQUFNLGFBQWEsV0FBQTt3QkFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztxQkFDcEQ7Ozs7Ozs7OzthQUNGO1FBQ0gsQ0FBQztRQUVTLHNDQUFjLEdBQXhCLFVBQXlCLEtBQWEsRUFBRSxXQUFtQjtZQUN6RCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxPQUFLLFdBQVcsVUFBSyxxQkFBYSxDQUFDLElBQUksQ0FBRyxFQUExQyxDQUEwQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDSCxvQkFBQztJQUFELENBQUMsQUF2RkQsSUF1RkM7SUF2RnFCLHNDQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uLy4uLy4uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7UGFydGlhbGx5T3JkZXJlZFRhc2tzLCBUYXNrLCBUYXNrRGVwZW5kZW5jaWVzLCBUYXNrUXVldWV9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQge3N0cmluZ2lmeVRhc2t9IGZyb20gJy4uL3V0aWxzJztcblxuXG4vKipcbiAqIEEgYmFzZSBgVGFza1F1ZXVlYCBpbXBsZW1lbnRhdGlvbiB0byBiZSB1c2VkIGFzIGJhc2UgZm9yIGNvbmNyZXRlIGltcGxlbWVudGF0aW9ucy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VUYXNrUXVldWUgaW1wbGVtZW50cyBUYXNrUXVldWUge1xuICBnZXQgYWxsVGFza3NDb21wbGV0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnRhc2tzLmxlbmd0aCA9PT0gMCkgJiYgKHRoaXMuaW5Qcm9ncmVzc1Rhc2tzLnNpemUgPT09IDApO1xuICB9XG4gIHByb3RlY3RlZCBpblByb2dyZXNzVGFza3MgPSBuZXcgU2V0PFRhc2s+KCk7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIHRhc2tzIHRoYXQgc2hvdWxkIGJlIHNraXBwZWQsIG1hcHBlZCB0byB0aGUgdGFzayB0aGF0IGNhdXNlZCB0aGVtIHRvIGJlIHNraXBwZWQuXG4gICAqL1xuICBwcml2YXRlIHRhc2tzVG9Ta2lwID0gbmV3IE1hcDxUYXNrLCBUYXNrPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyLCBwcm90ZWN0ZWQgdGFza3M6IFBhcnRpYWxseU9yZGVyZWRUYXNrcyxcbiAgICAgIHByb3RlY3RlZCBkZXBlbmRlbmNpZXM6IFRhc2tEZXBlbmRlbmNpZXMpIHt9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNvbXB1dGVOZXh0VGFzaygpOiBUYXNrfG51bGw7XG5cbiAgZ2V0TmV4dFRhc2soKTogVGFza3xudWxsIHtcbiAgICBsZXQgbmV4dFRhc2sgPSB0aGlzLmNvbXB1dGVOZXh0VGFzaygpO1xuICAgIHdoaWxlIChuZXh0VGFzayAhPT0gbnVsbCkge1xuICAgICAgaWYgKCF0aGlzLnRhc2tzVG9Ta2lwLmhhcyhuZXh0VGFzaykpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICAvLyBXZSBhcmUgc2tpcHBpbmcgdGhpcyB0YXNrIHNvIG1hcmsgaXQgYXMgY29tcGxldGVcbiAgICAgIHRoaXMubWFya0FzQ29tcGxldGVkKG5leHRUYXNrKTtcbiAgICAgIGNvbnN0IGZhaWxlZFRhc2sgPSB0aGlzLnRhc2tzVG9Ta2lwLmdldChuZXh0VGFzaykhO1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgU2tpcHBpbmcgcHJvY2Vzc2luZyBvZiAke25leHRUYXNrLmVudHJ5UG9pbnQubmFtZX0gYmVjYXVzZSBpdHMgZGVwZW5kZW5jeSAke1xuICAgICAgICAgIGZhaWxlZFRhc2suZW50cnlQb2ludC5uYW1lfSBmYWlsZWQgdG8gY29tcGlsZS5gKTtcbiAgICAgIG5leHRUYXNrID0gdGhpcy5jb21wdXRlTmV4dFRhc2soKTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHRUYXNrO1xuICB9XG5cbiAgbWFya0FzQ29tcGxldGVkKHRhc2s6IFRhc2spOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5Qcm9ncmVzc1Rhc2tzLmhhcyh0YXNrKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUcnlpbmcgdG8gbWFyayB0YXNrIHRoYXQgd2FzIG5vdCBpbiBwcm9ncmVzcyBhcyBjb21wbGV0ZWQ6ICR7c3RyaW5naWZ5VGFzayh0YXNrKX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLmluUHJvZ3Jlc3NUYXNrcy5kZWxldGUodGFzayk7XG4gIH1cblxuICBtYXJrQXNGYWlsZWQodGFzazogVGFzayk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlcGVuZGVuY2llcy5oYXModGFzaykpIHtcbiAgICAgIGZvciAoY29uc3QgZGVwZW5kZW50VGFzayBvZiB0aGlzLmRlcGVuZGVuY2llcy5nZXQodGFzaykhKSB7XG4gICAgICAgIHRoaXMuc2tpcERlcGVuZGVudFRhc2tzKGRlcGVuZGVudFRhc2ssIHRhc2spO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1hcmtBc1VucHJvY2Vzc2VkKHRhc2s6IFRhc2spOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5Qcm9ncmVzc1Rhc2tzLmhhcyh0YXNrKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUcnlpbmcgdG8gbWFyayB0YXNrIHRoYXQgd2FzIG5vdCBpbiBwcm9ncmVzcyBhcyB1bnByb2Nlc3NlZDogJHtzdHJpbmdpZnlUYXNrKHRhc2spfWApO1xuICAgIH1cblxuICAgIHRoaXMuaW5Qcm9ncmVzc1Rhc2tzLmRlbGV0ZSh0YXNrKTtcbiAgICB0aGlzLnRhc2tzLnVuc2hpZnQodGFzayk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGluUHJvZ1Rhc2tzID0gQXJyYXkuZnJvbSh0aGlzLmluUHJvZ3Jlc3NUYXNrcyk7XG5cbiAgICByZXR1cm4gYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfVxcbmAgK1xuICAgICAgICBgICBBbGwgdGFza3MgY29tcGxldGVkOiAke3RoaXMuYWxsVGFza3NDb21wbGV0ZWR9XFxuYCArXG4gICAgICAgIGAgIFVucHJvY2Vzc2VkIHRhc2tzICgke3RoaXMudGFza3MubGVuZ3RofSk6ICR7dGhpcy5zdHJpbmdpZnlUYXNrcyh0aGlzLnRhc2tzLCAnICAgICcpfVxcbmAgK1xuICAgICAgICBgICBJbi1wcm9ncmVzcyB0YXNrcyAoJHtpblByb2dUYXNrcy5sZW5ndGh9KTogJHt0aGlzLnN0cmluZ2lmeVRhc2tzKGluUHJvZ1Rhc2tzLCAnICAgICcpfWA7XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGUgZ2l2ZW4gYHRhc2tgIGFzIHRvIGJlIHNraXBwZWQsIHRoZW4gcmVjdXJzaXZlIHNraXAgYWxsIGl0cyBkZXBlbmRlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gdGFzayBUaGUgdGFzayB0byBza2lwXG4gICAqIEBwYXJhbSBmYWlsZWRUYXNrIFRoZSB0YXNrIHRoYXQgZmFpbGVkLCBjYXVzaW5nIHRoaXMgdGFzayB0byBiZSBza2lwcGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgc2tpcERlcGVuZGVudFRhc2tzKHRhc2s6IFRhc2ssIGZhaWxlZFRhc2s6IFRhc2spIHtcbiAgICB0aGlzLnRhc2tzVG9Ta2lwLnNldCh0YXNrLCBmYWlsZWRUYXNrKTtcbiAgICBpZiAodGhpcy5kZXBlbmRlbmNpZXMuaGFzKHRhc2spKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVudFRhc2sgb2YgdGhpcy5kZXBlbmRlbmNpZXMuZ2V0KHRhc2spISkge1xuICAgICAgICB0aGlzLnNraXBEZXBlbmRlbnRUYXNrcyhkZXBlbmRlbnRUYXNrLCBmYWlsZWRUYXNrKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RyaW5naWZ5VGFza3ModGFza3M6IFRhc2tbXSwgaW5kZW50YXRpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRhc2tzLm1hcCh0YXNrID0+IGBcXG4ke2luZGVudGF0aW9ufS0gJHtzdHJpbmdpZnlUYXNrKHRhc2spfWApLmpvaW4oJycpO1xuICB9XG59XG4iXX0=
@@ -22,7 +22,7 @@ export declare class ParallelTaskQueue extends BaseTaskQueue {
22
22
  private blockedTasks;
23
23
  constructor(logger: Logger, tasks: PartiallyOrderedTasks, dependencies: TaskDependencies);
24
24
  computeNextTask(): Task | null;
25
- markTaskCompleted(task: Task): void;
25
+ markAsCompleted(task: Task): void;
26
26
  toString(): string;
27
27
  private stringifyBlockedTasks;
28
28
  }
@@ -36,9 +36,9 @@
36
36
  this.inProgressTasks.add(nextTask);
37
37
  return nextTask;
38
38
  };
39
- ParallelTaskQueue.prototype.markTaskCompleted = function (task) {
39
+ ParallelTaskQueue.prototype.markAsCompleted = function (task) {
40
40
  var e_1, _a;
41
- _super.prototype.markTaskCompleted.call(this, task);
41
+ _super.prototype.markAsCompleted.call(this, task);
42
42
  if (!this.dependencies.has(task)) {
43
43
  return;
44
44
  }
@@ -83,4 +83,4 @@
83
83
  }(base_task_queue_1.BaseTaskQueue));
84
84
  exports.ParallelTaskQueue = ParallelTaskQueue;
85
85
  });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWxfdGFza19xdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9uZ2NjL3NyYy9leGVjdXRpb24vdGFza3MvcXVldWVzL3BhcmFsbGVsX3Rhc2tfcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBU0EsOEVBQTZFO0lBQzdFLHlHQUFnRDtJQUVoRDs7O09BR0c7SUFDSDtRQUF1Qyw2Q0FBYTtRQVFsRCwyQkFBWSxNQUFjLEVBQUUsS0FBNEIsRUFBRSxZQUE4QjtZQUF4RixZQUNFLGtCQUFNLE1BQU0sRUFBRSwyQkFBbUIsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEVBQUUsWUFBWSxDQUFDLFNBRXRFO1lBREMsS0FBSSxDQUFDLFlBQVksR0FBRyx1QkFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDOztRQUNwRCxDQUFDO1FBRUQsMkNBQWUsR0FBZjtZQUFBLGlCQVlDO1lBWEMsd0RBQXdEO1lBQ3hELDBGQUEwRjtZQUMxRixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQTVCLENBQTRCLENBQUMsQ0FBQztZQUMvRSxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFcEMsZ0dBQWdHO1lBQ2hHLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRW5DLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCw2Q0FBaUIsR0FBakIsVUFBa0IsSUFBVTs7WUFDMUIsaUJBQU0saUJBQWlCLFlBQUMsSUFBSSxDQUFDLENBQUM7WUFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoQyxPQUFPO2FBQ1I7O2dCQUVELG1EQUFtRDtnQkFDbkQsS0FBNEIsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFBLGdCQUFBLDRCQUFFO29CQUFyRCxJQUFNLGFBQWEsV0FBQTtvQkFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTt3QkFDeEMsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUM7d0JBQzVELDBFQUEwRTt3QkFDMUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDM0IsSUFBSSxhQUFhLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTs0QkFDNUIseUVBQXlFOzRCQUN6RSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQzt5QkFDekM7cUJBQ0Y7aUJBQ0Y7Ozs7Ozs7OztRQUNILENBQUM7UUFFRCxvQ0FBUSxHQUFSO1lBQ0UsT0FBVSxpQkFBTSxRQUFRLFdBQUUsT0FBSTtpQkFDMUIsc0JBQW9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxXQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUcsQ0FBQSxDQUFDO1FBQzNGLENBQUM7UUFFTyxpREFBcUIsR0FBN0IsVUFBOEIsV0FBbUI7WUFBakQsaUJBT0M7WUFOQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztpQkFDL0IsR0FBRyxDQUNBLFVBQUMsRUFBcUI7b0JBQXJCLDBCQUFxQixFQUFwQixZQUFJLEVBQUUscUJBQWE7Z0JBQ2pCLE9BQUEsT0FBSyxXQUFXLFVBQUsscUJBQWEsQ0FBQyxJQUFJLENBQUMsVUFBSyxhQUFhLENBQUMsSUFBSSxRQUFLO29CQUNwRSxLQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUssV0FBVyxTQUFNLENBQUM7WUFEcEUsQ0FDb0UsQ0FBQztpQkFDNUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFDSCx3QkFBQztJQUFELENBQUMsQUE3REQsQ0FBdUMsK0JBQWEsR0E2RG5EO0lBN0RZLDhDQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi8uLi8uLi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQge1BhcnRpYWxseU9yZGVyZWRUYXNrcywgVGFzaywgVGFza0RlcGVuZGVuY2llc30gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7Z2V0QmxvY2tlZFRhc2tzLCBzb3J0VGFza3NCeVByaW9yaXR5LCBzdHJpbmdpZnlUYXNrfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge0Jhc2VUYXNrUXVldWV9IGZyb20gJy4vYmFzZV90YXNrX3F1ZXVlJztcblxuLyoqXG4gKiBBIGBUYXNrUXVldWVgIGltcGxlbWVudGF0aW9uIHRoYXQgYXNzdW1lcyB0YXNrcyBhcmUgcHJvY2Vzc2VkIGluIHBhcmFsbGVsLCB0aHVzIGhhcyB0byBlbnN1cmUgYVxuICogdGFzaydzIGRlcGVuZGVuY2llcyBoYXZlIGJlZW4gcHJvY2Vzc2VkIGJlZm9yZSBwcm9jZXNzaW5nIHRoZSB0YXNrLlxuICovXG5leHBvcnQgY2xhc3MgUGFyYWxsZWxUYXNrUXVldWUgZXh0ZW5kcyBCYXNlVGFza1F1ZXVlIHtcbiAgLyoqXG4gICAqIEEgbWFwIGZyb20gVGFza3MgdG8gdGhlIFRhc2tzIHRoYXQgaXQgZGVwZW5kcyB1cG9uLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSByZXZlcnNlIG1hcHBpbmcgb2YgYFRhc2tEZXBlbmRlbmNpZXNgLlxuICAgKi9cbiAgcHJpdmF0ZSBibG9ja2VkVGFza3M6IE1hcDxUYXNrLCBTZXQ8VGFzaz4+O1xuXG4gIGNvbnN0cnVjdG9yKGxvZ2dlcjogTG9nZ2VyLCB0YXNrczogUGFydGlhbGx5T3JkZXJlZFRhc2tzLCBkZXBlbmRlbmNpZXM6IFRhc2tEZXBlbmRlbmNpZXMpIHtcbiAgICBzdXBlcihsb2dnZXIsIHNvcnRUYXNrc0J5UHJpb3JpdHkodGFza3MsIGRlcGVuZGVuY2llcyksIGRlcGVuZGVuY2llcyk7XG4gICAgdGhpcy5ibG9ja2VkVGFza3MgPSBnZXRCbG9ja2VkVGFza3MoZGVwZW5kZW5jaWVzKTtcbiAgfVxuXG4gIGNvbXB1dGVOZXh0VGFzaygpOiBUYXNrfG51bGwge1xuICAgIC8vIExvb2sgZm9yIHRoZSBmaXJzdCBhdmFpbGFibGUgKGkuZS4gbm90IGJsb2NrZWQpIHRhc2suXG4gICAgLy8gKE5PVEU6IFNpbmNlIHRhc2tzIGFyZSBzb3J0ZWQgYnkgcHJpb3JpdHksIHRoZSBmaXJzdCBhdmFpbGFibGUgb25lIGlzIHRoZSBiZXN0IGNob2ljZS4pXG4gICAgY29uc3QgbmV4dFRhc2tJZHggPSB0aGlzLnRhc2tzLmZpbmRJbmRleCh0YXNrID0+ICF0aGlzLmJsb2NrZWRUYXNrcy5oYXModGFzaykpO1xuICAgIGlmIChuZXh0VGFza0lkeCA9PT0gLTEpIHJldHVybiBudWxsO1xuXG4gICAgLy8gUmVtb3ZlIHRoZSB0YXNrIGZyb20gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHRhc2tzIGFuZCBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgaW4tcHJvZ3Jlc3MgdGFza3MuXG4gICAgY29uc3QgbmV4dFRhc2sgPSB0aGlzLnRhc2tzW25leHRUYXNrSWR4XTtcbiAgICB0aGlzLnRhc2tzLnNwbGljZShuZXh0VGFza0lkeCwgMSk7XG4gICAgdGhpcy5pblByb2dyZXNzVGFza3MuYWRkKG5leHRUYXNrKTtcblxuICAgIHJldHVybiBuZXh0VGFzaztcbiAgfVxuXG4gIG1hcmtUYXNrQ29tcGxldGVkKHRhc2s6IFRhc2spOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrVGFza0NvbXBsZXRlZCh0YXNrKTtcblxuICAgIGlmICghdGhpcy5kZXBlbmRlbmNpZXMuaGFzKHRhc2spKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVW5ibG9jayB0aGUgdGFza3MgdGhhdCBhcmUgZGVwZW5kZW50IHVwb24gYHRhc2tgXG4gICAgZm9yIChjb25zdCBkZXBlbmRlbnRUYXNrIG9mIHRoaXMuZGVwZW5kZW5jaWVzLmdldCh0YXNrKSEpIHtcbiAgICAgIGlmICh0aGlzLmJsb2NrZWRUYXNrcy5oYXMoZGVwZW5kZW50VGFzaykpIHtcbiAgICAgICAgY29uc3QgYmxvY2tpbmdUYXNrcyA9IHRoaXMuYmxvY2tlZFRhc2tzLmdldChkZXBlbmRlbnRUYXNrKSE7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY29tcGxldGVkIHRhc2sgZnJvbSB0aGUgbGlzdHMgb2YgdGFza3MgYmxvY2tpbmcgb3RoZXIgdGFza3MuXG4gICAgICAgIGJsb2NraW5nVGFza3MuZGVsZXRlKHRhc2spO1xuICAgICAgICBpZiAoYmxvY2tpbmdUYXNrcy5zaXplID09PSAwKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIGRlcGVuZGVudCB0YXNrIGlzIG5vdCBibG9ja2VkIGFueSBtb3JlLCBtYXJrIGl0IGZvciB1bmJsb2NraW5nLlxuICAgICAgICAgIHRoaXMuYmxvY2tlZFRhc2tzLmRlbGV0ZShkZXBlbmRlbnRUYXNrKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3N1cGVyLnRvU3RyaW5nKCl9XFxuYCArXG4gICAgICAgIGAgIEJsb2NrZWQgdGFza3MgKCR7dGhpcy5ibG9ja2VkVGFza3Muc2l6ZX0pOiAke3RoaXMuc3RyaW5naWZ5QmxvY2tlZFRhc2tzKCcgICAgJyl9YDtcbiAgfVxuXG4gIHByaXZhdGUgc3RyaW5naWZ5QmxvY2tlZFRhc2tzKGluZGVudGF0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuYmxvY2tlZFRhc2tzKVxuICAgICAgICAubWFwKFxuICAgICAgICAgICAgKFt0YXNrLCBibG9ja2luZ1Rhc2tzXSkgPT5cbiAgICAgICAgICAgICAgICBgXFxuJHtpbmRlbnRhdGlvbn0tICR7c3RyaW5naWZ5VGFzayh0YXNrKX0gKCR7YmxvY2tpbmdUYXNrcy5zaXplfSk6IGAgK1xuICAgICAgICAgICAgICAgIHRoaXMuc3RyaW5naWZ5VGFza3MoQXJyYXkuZnJvbShibG9ja2luZ1Rhc2tzKSwgYCR7aW5kZW50YXRpb259ICAgIGApKVxuICAgICAgICAuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWxfdGFza19xdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9uZ2NjL3NyYy9leGVjdXRpb24vdGFza3MvcXVldWVzL3BhcmFsbGVsX3Rhc2tfcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBU0EsOEVBQTZFO0lBQzdFLHlHQUFnRDtJQUVoRDs7O09BR0c7SUFDSDtRQUF1Qyw2Q0FBYTtRQVFsRCwyQkFBWSxNQUFjLEVBQUUsS0FBNEIsRUFBRSxZQUE4QjtZQUF4RixZQUNFLGtCQUFNLE1BQU0sRUFBRSwyQkFBbUIsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEVBQUUsWUFBWSxDQUFDLFNBRXRFO1lBREMsS0FBSSxDQUFDLFlBQVksR0FBRyx1QkFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDOztRQUNwRCxDQUFDO1FBRUQsMkNBQWUsR0FBZjtZQUFBLGlCQVlDO1lBWEMsd0RBQXdEO1lBQ3hELDBGQUEwRjtZQUMxRixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQTVCLENBQTRCLENBQUMsQ0FBQztZQUMvRSxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFcEMsZ0dBQWdHO1lBQ2hHLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRW5DLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCwyQ0FBZSxHQUFmLFVBQWdCLElBQVU7O1lBQ3hCLGlCQUFNLGVBQWUsWUFBQyxJQUFJLENBQUMsQ0FBQztZQUU1QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU87YUFDUjs7Z0JBRUQsbURBQW1EO2dCQUNuRCxLQUE0QixJQUFBLEtBQUEsaUJBQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUEsZ0JBQUEsNEJBQUU7b0JBQXJELElBQU0sYUFBYSxXQUFBO29CQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO3dCQUN4QyxJQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUUsQ0FBQzt3QkFDNUQsMEVBQTBFO3dCQUMxRSxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMzQixJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFOzRCQUM1Qix5RUFBeUU7NEJBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3lCQUN6QztxQkFDRjtpQkFDRjs7Ozs7Ozs7O1FBQ0gsQ0FBQztRQUVELG9DQUFRLEdBQVI7WUFDRSxPQUFVLGlCQUFNLFFBQVEsV0FBRSxPQUFJO2lCQUMxQixzQkFBb0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLFdBQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBRyxDQUFBLENBQUM7UUFDM0YsQ0FBQztRQUVPLGlEQUFxQixHQUE3QixVQUE4QixXQUFtQjtZQUFqRCxpQkFPQztZQU5DLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2lCQUMvQixHQUFHLENBQ0EsVUFBQyxFQUFxQjtvQkFBckIsMEJBQXFCLEVBQXBCLFlBQUksRUFBRSxxQkFBYTtnQkFDakIsT0FBQSxPQUFLLFdBQVcsVUFBSyxxQkFBYSxDQUFDLElBQUksQ0FBQyxVQUFLLGFBQWEsQ0FBQyxJQUFJLFFBQUs7b0JBQ3BFLEtBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBSyxXQUFXLFNBQU0sQ0FBQztZQURwRSxDQUNvRSxDQUFDO2lCQUM1RSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNILHdCQUFDO0lBQUQsQ0FBQyxBQTdERCxDQUF1QywrQkFBYSxHQTZEbkQ7SUE3RFksOENBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uLy4uLy4uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7UGFydGlhbGx5T3JkZXJlZFRhc2tzLCBUYXNrLCBUYXNrRGVwZW5kZW5jaWVzfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtnZXRCbG9ja2VkVGFza3MsIHNvcnRUYXNrc0J5UHJpb3JpdHksIHN0cmluZ2lmeVRhc2t9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7QmFzZVRhc2tRdWV1ZX0gZnJvbSAnLi9iYXNlX3Rhc2tfcXVldWUnO1xuXG4vKipcbiAqIEEgYFRhc2tRdWV1ZWAgaW1wbGVtZW50YXRpb24gdGhhdCBhc3N1bWVzIHRhc2tzIGFyZSBwcm9jZXNzZWQgaW4gcGFyYWxsZWwsIHRodXMgaGFzIHRvIGVuc3VyZSBhXG4gKiB0YXNrJ3MgZGVwZW5kZW5jaWVzIGhhdmUgYmVlbiBwcm9jZXNzZWQgYmVmb3JlIHByb2Nlc3NpbmcgdGhlIHRhc2suXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXJhbGxlbFRhc2tRdWV1ZSBleHRlbmRzIEJhc2VUYXNrUXVldWUge1xuICAvKipcbiAgICogQSBtYXAgZnJvbSBUYXNrcyB0byB0aGUgVGFza3MgdGhhdCBpdCBkZXBlbmRzIHVwb24uXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIHJldmVyc2UgbWFwcGluZyBvZiBgVGFza0RlcGVuZGVuY2llc2AuXG4gICAqL1xuICBwcml2YXRlIGJsb2NrZWRUYXNrczogTWFwPFRhc2ssIFNldDxUYXNrPj47XG5cbiAgY29uc3RydWN0b3IobG9nZ2VyOiBMb2dnZXIsIHRhc2tzOiBQYXJ0aWFsbHlPcmRlcmVkVGFza3MsIGRlcGVuZGVuY2llczogVGFza0RlcGVuZGVuY2llcykge1xuICAgIHN1cGVyKGxvZ2dlciwgc29ydFRhc2tzQnlQcmlvcml0eSh0YXNrcywgZGVwZW5kZW5jaWVzKSwgZGVwZW5kZW5jaWVzKTtcbiAgICB0aGlzLmJsb2NrZWRUYXNrcyA9IGdldEJsb2NrZWRUYXNrcyhkZXBlbmRlbmNpZXMpO1xuICB9XG5cbiAgY29tcHV0ZU5leHRUYXNrKCk6IFRhc2t8bnVsbCB7XG4gICAgLy8gTG9vayBmb3IgdGhlIGZpcnN0IGF2YWlsYWJsZSAoaS5lLiBub3QgYmxvY2tlZCkgdGFzay5cbiAgICAvLyAoTk9URTogU2luY2UgdGFza3MgYXJlIHNvcnRlZCBieSBwcmlvcml0eSwgdGhlIGZpcnN0IGF2YWlsYWJsZSBvbmUgaXMgdGhlIGJlc3QgY2hvaWNlLilcbiAgICBjb25zdCBuZXh0VGFza0lkeCA9IHRoaXMudGFza3MuZmluZEluZGV4KHRhc2sgPT4gIXRoaXMuYmxvY2tlZFRhc2tzLmhhcyh0YXNrKSk7XG4gICAgaWYgKG5leHRUYXNrSWR4ID09PSAtMSkgcmV0dXJuIG51bGw7XG5cbiAgICAvLyBSZW1vdmUgdGhlIHRhc2sgZnJvbSB0aGUgbGlzdCBvZiBhdmFpbGFibGUgdGFza3MgYW5kIGFkZCBpdCB0byB0aGUgbGlzdCBvZiBpbi1wcm9ncmVzcyB0YXNrcy5cbiAgICBjb25zdCBuZXh0VGFzayA9IHRoaXMudGFza3NbbmV4dFRhc2tJZHhdO1xuICAgIHRoaXMudGFza3Muc3BsaWNlKG5leHRUYXNrSWR4LCAxKTtcbiAgICB0aGlzLmluUHJvZ3Jlc3NUYXNrcy5hZGQobmV4dFRhc2spO1xuXG4gICAgcmV0dXJuIG5leHRUYXNrO1xuICB9XG5cbiAgbWFya0FzQ29tcGxldGVkKHRhc2s6IFRhc2spOiB2b2lkIHtcbiAgICBzdXBlci5tYXJrQXNDb21wbGV0ZWQodGFzayk7XG5cbiAgICBpZiAoIXRoaXMuZGVwZW5kZW5jaWVzLmhhcyh0YXNrKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFVuYmxvY2sgdGhlIHRhc2tzIHRoYXQgYXJlIGRlcGVuZGVudCB1cG9uIGB0YXNrYFxuICAgIGZvciAoY29uc3QgZGVwZW5kZW50VGFzayBvZiB0aGlzLmRlcGVuZGVuY2llcy5nZXQodGFzaykhKSB7XG4gICAgICBpZiAodGhpcy5ibG9ja2VkVGFza3MuaGFzKGRlcGVuZGVudFRhc2spKSB7XG4gICAgICAgIGNvbnN0IGJsb2NraW5nVGFza3MgPSB0aGlzLmJsb2NrZWRUYXNrcy5nZXQoZGVwZW5kZW50VGFzaykhO1xuICAgICAgICAvLyBSZW1vdmUgdGhlIGNvbXBsZXRlZCB0YXNrIGZyb20gdGhlIGxpc3RzIG9mIHRhc2tzIGJsb2NraW5nIG90aGVyIHRhc2tzLlxuICAgICAgICBibG9ja2luZ1Rhc2tzLmRlbGV0ZSh0YXNrKTtcbiAgICAgICAgaWYgKGJsb2NraW5nVGFza3Muc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIC8vIElmIHRoZSBkZXBlbmRlbnQgdGFzayBpcyBub3QgYmxvY2tlZCBhbnkgbW9yZSwgbWFyayBpdCBmb3IgdW5ibG9ja2luZy5cbiAgICAgICAgICB0aGlzLmJsb2NrZWRUYXNrcy5kZWxldGUoZGVwZW5kZW50VGFzayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzdXBlci50b1N0cmluZygpfVxcbmAgK1xuICAgICAgICBgICBCbG9ja2VkIHRhc2tzICgke3RoaXMuYmxvY2tlZFRhc2tzLnNpemV9KTogJHt0aGlzLnN0cmluZ2lmeUJsb2NrZWRUYXNrcygnICAgICcpfWA7XG4gIH1cblxuICBwcml2YXRlIHN0cmluZ2lmeUJsb2NrZWRUYXNrcyhpbmRlbnRhdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmJsb2NrZWRUYXNrcylcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAgIChbdGFzaywgYmxvY2tpbmdUYXNrc10pID0+XG4gICAgICAgICAgICAgICAgYFxcbiR7aW5kZW50YXRpb259LSAke3N0cmluZ2lmeVRhc2sodGFzayl9ICgke2Jsb2NraW5nVGFza3Muc2l6ZX0pOiBgICtcbiAgICAgICAgICAgICAgICB0aGlzLnN0cmluZ2lmeVRhc2tzKEFycmF5LmZyb20oYmxvY2tpbmdUYXNrcyksIGAke2luZGVudGF0aW9ufSAgICBgKSlcbiAgICAgICAgLmpvaW4oJycpO1xuICB9XG59XG4iXX0=